基于用户长短期兴趣的自注意力序列推荐
2023-07-07冯健
冯 健
(苏州大学计算机科学与技术学院 江苏 苏州 215006)
0 引 言
随着互联网的快速发展与普及,各式各样的电子商务网站和基于位置的社交网站变得越来越成熟,吸引了很多用户进行访问、浏览、购买和观看等一系列操作。因此产生了海量的用户与物品交互数据。推荐系统通过分析用户历史交互数据,从中挖掘用户潜在兴趣并个性化推荐物品,已经成为人们日常生活中不可或缺的一部分。其中,序列推荐将用户的历史行为看成一个时间序列,然后从这个序列中挖掘有意义的序列模式,从而为用户推荐下一时刻可能交互的项目。
序列推荐早期使用的方法基于马尔可夫链模型,它假设用户的下一次交互取决于前一个或前几个交互[1-3]。正是由于基于这种假设,马尔可夫链模型通常很难捕捉用户历史交互数据中复杂的序列关系。近几年,基于深度学习的模型被提出。Hidasi等[4]在用户会话中学习循环神经网络模型,以在每个时间步获得隐藏状态,并使用最后一个隐藏状态来预测用户在下一刻可能交互的物品。除此之外,考虑到不同会话之间的用户动态兴趣,Quadrana等[5]提出了一种用于个性化会话推荐的分层循环神经网络,通过分别学习用户级的表示和物品级的表示来提高推荐性能。然而,这类方法倾向于将用户的历史交互数据压缩编码成一个固定大小的隐藏状态向量,不能显式地捕捉用户与物品之间交互,也不能区分出用户长期兴趣和短期兴趣。
最近,Vaswani等[6]提出了一种用于序列到序列建模的自注意网络,在编码用户交互序列时只使用注意力机制,与循环神经网络等模型相比,在序列长度方面具有更大的灵活性。自注意力网络在整个序列上计算注意力只需要矩阵乘法,与循环神经网络的顺序计算相比,矩阵乘法可以是完全并行的。此外,自注意力网络已经用于序列推荐,并取得了令人满意的成果。然而,由于自注意力机制在建模时不考虑序列物品之间的位置关系,导致了时间序列信息的丢失。所以这类模型在建模用户短期偏好方面表现优异,但是丢失了用户长期兴趣,而这类信息往往对序列推荐模型至关重要。
用户的历史交互序列往往时间跨度很长,可能包含了用户几年来的交互数据。在用户的长期序列中,用户在近期内的交互行为最能代表用户当前兴趣。例如用户在近期购买一件卫衣,那么反映了用户当前兴趣在购买衣物上,因而可以向用户推荐长裤和鞋等相关商品。所以,用户的短期兴趣很大程度上决定了用户的下次交互行为。但仅仅依靠用户近期数据并不足以完全建模用户的意图,可能用户在很久之前交互的物品,隐藏着用户的长期兴趣。这类长期兴趣反映了用户个体倾向相对稳定,与个人的成长背景、学历、人生观和价值观等因素相关联。例如,用户在很久前购买过篮球,反映了用户的长期兴趣是运动用品,那么结合上述短期兴趣,可以向用户推荐运动裤和运动鞋等商品,进一步缩小推荐候选集的范围。然而,现有的模型都仅考虑用户的短期兴趣或者长期兴趣,并没有把这两种信息有效结合起来。
为了解决上述问题,本文提出一个新的模型同时考虑用户长期和短期兴趣进行推荐。首先,Gated Recurrent Unit(GRU)作为循环神经网络的一种变体,在保持了Long-Short-Term-Memories (LSTM)更新和遗忘的机制的同时简化了网络结构,利用更新门使每个单元学习长短期特征,已被广泛应用到序列学习领域。本文将用户的完整序列输入到GRU来捕获用户长期兴趣。其次,为了获得用户的短期兴趣,截取用户序列中最近交互的子序列,将其输入到自注意力网络中获得不同物品的注意力得分,累加起来作为用户的短期表示。接着,本文将从GRU中获得的隐藏状态向量作为自注意力网络的查询向量输入到其中,得到一个融合了长期和短期兴趣的用户表示。最后,通过一个全连接层来计算用户在下一时刻对所有物品兴趣的概率分布。大量实验表明本文模型性能优于当前先进模型,在三个现实数据集上,Hit Ratio(HR)指标提高了7%~30%,Normalized Discounted Cumulative Gain(NDCG)指标提高了12%~40%,The Mean Average Precision(MAP)指标提高了30%~40%。
综上,本文的主要贡献如下:
(1) 提出一个新的模型来进行序列推荐。所提出的模型将用户历史交互序列区分为长期序列和短期序列,并分别使用GRU和自注意力网络来建模用户长期和短期兴趣。
(2) 引入一种新的融合机制。将GRU中获得的长期兴趣表示作为查询向量输入到自注意力网络中,可以使自注意力网络在预测用户下一次交互时同时考虑用户长期和短期兴趣。
(3) 在三个现实数据集上进行了大量实验。实验结果表明本文模型在使用HR、NDCG和MAP评估指标的情况下,均优于当前先进的模型。
1 相关工作
1.1 传统推荐
推荐系统中的早期工作通常应用协作过滤根据用户的历史数据(如签入、评级等)提出建议[7-9]。例如,矩阵分解模型将用户项矩阵分解为两个低秩矩阵,每个矩阵都表示用户的偏好或项的属性[9]。另一项工作是基于项目的邻域方法,其中项目相似性是根据会话中项目的共同发生来计算的[10]。此外,贝叶斯个性化排序是一种著名的隐式协同过滤的成对学习算法,在许多相关领域得到了广泛的应用[11]。但这些方法都没有考虑用户历史交互的序列信息,因此不适合序列建模。
1.2 序列推荐
由于用户的历史交互数据包含丰富的用户兴趣的时序信息,序列推荐逐渐引起研究者的注意。Rendle等[2]提出了一种为每个用户生成个性化转移矩阵的模型,它结合了矩阵因式分解模型和马尔可夫链模型分别捕捉用户的长期偏好和短期偏好,并且其表现均优于矩阵分解和马尔可夫链。但是由于其状态数量会随着问题的规模的增大而变得巨大,因此面临着参数过多的问题。当前最先进的方法是深度神经网络模型[12-16]。Hidasi等[4]将循环神经网络应用于基于会话的推荐,验证了循环神经网络在序列推荐任务中的有效性。Quadrana等[5]提出了一种分层循环神经网络模型,该模型可以描述会话中用户的个人偏好变化,并提出用户个性化会话建议。虽然这些方法可以对相邻行为进行建模,但不能捕获联合级和跳级序列模式,这极大地限制了序列预测和推荐的灵活性。因此,卷积神经网络由于其捕获局部特征的能力而被提出来解决这一困难。
Tang等[12]将一组用户最近的交互项序列嵌入表示为与时间相关图像,并使用卷积滤波器学习序列模式作为图像的局部特征,该方法为提取长期兴趣和序列模式提供了一个统一简洁的网络结构。
1.3 注意力机制
注意机制起源于计算机视觉的研究,然后广泛应用于自然语言处理、机器翻译和推荐系统等领域。它通过选择性地关注整幅图像或整个句子的某些部分,而忽略了不重要的信息,从而模仿人类的认知过程。Chen等[13]提出了一种用于多媒体推荐的双层注意力机制,分别计算项目属性和用户历史交互的权重分布。Tay等[14]提出了一种潜在关系度量学习方法,该方法利用注意力机制来学习每对用户和项目之间的潜在关系。Cao等[15]在组推荐中引入了一种注意力机制,并对组的每个成员进行加权,以便更准确地描述组的细粒度偏好,从而为组推荐餐厅。最近,Vaswani等[6]提出了一种新的序列建模框架,名为Transformer。这种类型的体系结构完全放弃了循环结构,仅仅依赖注意力机制来挖掘输入和输出之间的关系。这样做的最大优点是可以并行计算,极大地减少了训练模型所需的时间。受Transformer模型的启发,Zhang等[16]使用自注意力机制,利用用户与项目之间的距离来计算兴趣程度,可以学习用户长期和短期的序列表示。Zhou等[17]将用户行为表示投影到多个潜在空间中,然后利用自注意力网络对其他行为带来的影响进行建模。Kang等[18]将自注意力机制应用于推荐,并证明其性能优于以前的模型。
本文的工作不同于上述方法,因为引入了一个统一的用户长期和短期行为建模框架,基于循环神经网络和自注意力网络进行顺序推荐。提出的模型首先利用循环神经网络将用户的完整的历史交互序列编码为固定长度的隐藏向量,作为用户的长期兴趣表示。然后,截取用户交互序列的最近固定长度的子序列,利用自注意力网络获得用户短期兴趣表示。最后,将长期兴趣表示作为查询输入到自注意力网络中,获得综合了用户长短期兴趣的潜在向量。本文工作的重点是结合了循环神经网络处理变长序列和长期记忆功能,以及自注意力网络可以自适应地学习用户的长短期顺序行为的相应依赖关系,显式地建模用户的长期和短期兴趣。同时使用将循环神经网络的输出作为查询向量的方式,将两者紧密结合起来。
2 问题定义
本节中,先定义本文使用的符号,然后形式化描述所要解决的问题。让U={u1,u2,…,u|U|}表示用户集合,I={i1,i2,…,i|I|}表示物品集合,其中|U|和|I|分别表示用户数和物品数。对于每个用户u,他的历史交互序列定义为Su={it1,it2,…,it3},其中itj表示用户u在tj时刻交互的物品,|Su|表示用户历史交互序列长度。
本文模型的任务是提供用户u的历史交互序列Su,预测用户在下一时刻会交互的物品。
3 模 型
如引言中所述,用户的历史交互序列包含了用户的长期兴趣和短期兴趣,因此在设计推荐系统时需要将这两种模式分别建模。本文提出一种新的模型分别建模用户长期兴趣和短期兴趣,并使用自注意力框架将两者紧密结合起来。如图1所示,模型分为四部分:嵌入层、长期记忆层、短期记忆层和预测层。具体而言,模型首先将物品的稀疏表示投影到低维密集向量中;接着使用循环神经网络将用户序列编码成固定长度的隐藏向量,作为用户的长期兴趣表示;然后取用户最近m(图1以m=4为例)个物品,使用自注意力网络自适应学习物品之间的关联,得到用户短期兴趣表示;最后,本文将两种不同类型的兴趣表示综合至一个自注意力框架中,并通过全连接层得到用户在下一时刻对所有物品兴趣的概率分布。
图1 本文模型架构
3.1 嵌入层
用户交互过的物品通常为离散的索引表示,这些索引仅仅代表某一个物品,实际数值不具有任何含义。因此本文先将物品的离散索引转换为n维的独热编码[0,0,…,1,0,0],n代表物品数目总量,其中只有第i个值为1,其余为0,代表索引为i的物品的向量表示。独热编码具有非常高的维度和稀疏性,因此本文进一步将其输入到神经网络编码成d维的嵌入表示,得到物品嵌入矩阵R={e1,e2,…,en}。
3.2 长期记忆层
本文使用循环神经网络来捕捉用户的长期兴趣。门控单元(GRU)作为长短期记忆(LSTM)的变体,保留了长短期记忆可以记忆序列中的长期依赖的优点,并且相比之下更容易进行训练,很大程度上提高了训练效率,因此本文使用门控单元来建模用户的长期兴趣,其公式如下:
zt=σ(Wzet+Uzht-1)
(1)
rt=σ(Wret+Urht-1)
(2)
ct=tanh(Wcet+Uc(rt·ht-1))
(3)
ht=(1-zt)·ht-1+zt·ct
(4)
式中:et代表在t时刻用户交互的物品的向量表示;σ代表Sigmoid激活函数;·代表点积操作;zt和rt分别代表更新门和重置门,负责保留和忽略当前时刻之前的历史信息;Wz和Uz是更新门参数矩阵;Wr和Ur是重置门参数矩阵;Wc和Uc是候选门参数矩阵;ct代表候选门,综合历史信息和当前输入生成新的记忆;ht代表当前时刻输出的隐藏状态。
通过将用户的完整序列输入到GRU中,将在每一时间步综合考虑历史交互信息和当期输入获得相应的隐藏状态,作为用户的长期兴趣表示。
3.3 短期记忆层
为了捕获用户的短期兴趣,截取用户序列中最近交互的m个物品作为子序列,然后输入到自注意力网络中自适应学习物品之间的关联,得到用户的短期兴趣表示。自注意力网络如图2所示,模型首先将用户序列矩阵映射到三个不同的向量Q、K和V,向量Q和K经过缩放的点积注意力操作得到注意力得分,再与向量V相乘得到用户兴趣表示;之后进行层归一化(LayerNorm)和残差连接(Residual Connect)操作增强模型训练效果;重复上述自注意力模块操作,得到用户的短期兴趣表示。
图2 自注意力网络模型
首先,用户序列长度不一,有些用户的历史交互物品数量可能小于m,因此采用零填充的方法来将交互数目不足m的用户序列补齐,具体做法是在用户序列前面添加物品0直至序列长度为m。其中物品0仅仅代表填充项,不具有其他含义,也不会影响训练过程。
其次,自注意力网络本身不具有捕捉序列信息的功能,因此加入额外的位置向量矩阵P来使自注意力网络融入序列信息。因此,用户交互序列向量M更新为:
(5)
式中:P=[p1,p2,…,pm]代表位置向量矩阵;pi代表序列中第i个物品的位置向量。
接着执行缩放的点积注意力操作,简称为SDPA,以获得序列中不同项之间的关系。SDPA定义如下:
(6)
式中:d代表向量维度;Qu、Ku和Vu分别代表查询向量(Query)、键向量(Key)和值向量(Value)。Qu、Ku、Vu计算公式如下:
Qu=MuWQ
(7)
Ku=MuWK
(8)
Vu=MuWV
(9)
式中:WQ、WK、WV是待学习的参数。因此,自注意力模块输出公式为:
Hu=SDPA(MuWQ,MuWK,MuWV)
(10)
在执行缩放的点积注意力操作之后,计算了序列中不同项之间的相似性。此外,还使用计算出的相似性自适应地分析了每个物品对预测用户下一次交互的重要性程度。这样综合起来可以获得用户短期兴趣表示。
为了使模型能够在不同的位置上共同处理来自不同表示子空间的信息,自注意力网络采用多头注意力机制,公式定义如下:
Hu=Concat(h1,h2,…,hhead)
(11)
(12)
Hu=LayerNorm(Hu+Mu)
(13)
Ou=ReLU(HuW1+b1)
(14)
Ou=Ou+Hu
(15)
式中:W1和b1是模型参数。为了简单起见,将整个自注意力模块定义如下:
Ou=SAB(Mu)
(16)
在完成第一个自注意力模块之后,Ou本质上已经聚集了所有历史交互项的信息。然而,可能需要使用另一个基于Ou的自注意力模块来捕获更复杂的转换关系。因此,叠加自注意力模块,第b块定义如下:
(17)
3.4 预测层
在获得了用户的长期兴趣和短期兴趣表示后,设计了一个独特的方式将其融合。具体做法是,使用另外一层注意力网络,以用户的长期兴趣表示作为查询向量,用户短期查询作为键和值向量。这样做的好处是,在计算用户下一时刻的兴趣分布时,可以既完整地挖掘了用户的短期兴趣,又以用户的长期兴趣为额外的辅助向量帮助模型探寻更多的可能。公式如下:
yu=SDPA(HuWQ,OuWK,OuWV)
(18)
最后,通过一个全连接层得到最终的用户兴趣分布。
3.5 模型训练
为了有效地进行训练过程,采用二元交叉熵损失作为模型的优化目标函数。 损失函数定义如下:
(19)
式中:U和I分别表示用户集和项集。此外,对于交互序列中的每个目标项i,随机抽取一个负样例j。训练时使用Adam优化器来更新模型参数。
4 实 验
本节对三个真实世界的数据集进行了实验,以评估本文方法的性能。首先简要介绍了数据集和基线方法,然后对比了本文方法和基线方法。最后详细分析了实验结果。
4.1 数据集
本文评估了本文方法在不同领域和稀疏性的三个真实世界数据集上的有效性,例如Gowalla数据集、MovieLens数据集和Foursquare数据集。Gowalla和Foursquare数据集是广泛使用的LBSN数据集,其中包含基于位置的社交站点中的用户的兴趣点签到信息。MovieLens数据集是一个流行的电影评级数据集,使用的10 MB的版本,其中包括从1995年1月至2009年8月共1 000万用户的评级数据。对于Gowalla数据集,将重点放在过去7个月生成的数据上。对于MovieLens数据集,取一个从2005年到2009年的子集。对于Foursquare数据集,选择自2010年1月至2011年2月家住加州用户的签到数据。
根据以往的工作,对于所有数值评级的数据集,将它们转换为隐式反馈。为了支持的序列推荐,丢弃交互项目少于20个的用户数据。每个数据集留取用户最近的交互项作为测试集,其余作为训练集。数据集详细数据如表1所示。
表1 数据集信息
4.2 基线模型
将本文提出的模型标记为LSGS(Long term+Short term+GRU+Self-attention )。同时选取了目前比较流行的几种算法进行对比:
(1) Pop。一个简单的基线模型,根据训练数据中的流行程度推荐排名前N的项目,其中流行程度是由项目的重复度决定的。
(2) BPR。非序列推荐的最先进的方法,结合了矩阵分解和贝叶斯个性化排序损失函数[11]。
(3) FPMC。一种经典的混合模型,结合矩阵因式分解和一阶马尔可夫链进行下个篮子推荐,它分别捕捉用户长期偏好和序列信息[2]。
(4) TransRec。一种先进的一阶顺序推荐模型,将项目嵌入到转换空间中,并将用户建模为翻译向量[10]。
(5) GRU4Rec。一种基于循环神经网络的会话推荐深度学习模型[4]。
(6) RUM。首次提出利用记忆增强神经网络来改进序列推荐[21]。
(7) SHAN。提出采用两层分层注意力网络,同时考虑用户的动态长期和短期偏好,以进行序列推荐[22]。
(8) SASRec。第一个被提出的基于自注意网络的序列推荐模型,在每个时间步骤中自适应地为以前的项目分配权重,而不使用循环或者卷积[18]。
4.3 评估指标和参数设置
本文使用以下指标来评估所有模型的性能,这些指标在其他相关工作中得到了广泛的应用。
(1) HR@N: Hit-Ratio(HR)在排名最高的N位中计算出目标项目的分数[23-24]。HR@N评分计算为:
(20)
式中:Su(N)是对所有物品进行排序后的前N项的集合;Tu是测试集里的交互物品集合;I(x)是指示函数,当x大于0时等于1,否则等于0。
(2) NDCG@N: NDCG通过考虑正确项目的位置来评估排名绩效[25-26],定义如下:
(21)
(3) MAP: MAP是所有用户的平均精度(AP)的平均值[27-28]。AP是排序中找到相关项目的平均精度。公式定义如下:
(22)
式中:p(j)是排名从1到j的精确率,如果排名j的项目在测试集中,则rel(j)=1,否则为0。
本文中HR@N是对未排序检索结果的评价,而NDCG@N和MAP是对排序的评价。实验选择N={10,20}来获得不同的评价结果,学习率设置为0.001,丢弃率设置为0.5,嵌入维度设置为100,批处理大小设置为128,最近交互序列长度l设置为50。基线模型均采用原作者论文中推荐使用的参数。
4.4 结果分析
本节将本文模型与8个基线模型的性能进行了比较,评估指标分别为HR@N、NDCG@N和MAP,N取值为10和20。表2显示了这些模型在三个现实数据集上的总体实验结果,对于每项指标,加粗标识所有模型中的最高数值,下划线标识基线模型中的最高数值。实验分析总结如下。
表2 不同模型排序效果
首先,在所有的基线模型中,Pop在几乎所有的情况下性能最差,从而证明了个性化推荐方法的有效性。通过对用户进行单独分析,并采用矩阵因式分解作为具有成对排序损失函数的内部预测器,在大多数情况下,BPR的性能优于Pop。但非序列推荐模型(例如BPR)通常在所有数据集上比序列推荐模型(例如FPMC、TransRec和GRU4Rec)表现差,这表明了用户交互行为的序列信息可以帮助提高现实世界推荐系统的性能。
其次,基于一阶的马尔可夫链模型(TransRec和FPMC)取得了良好的性能。它们都考虑了用户的最后一次的交互。这表明了用户的最近交互行为对序列推荐的重要性。具体而言,TransRec将翻译嵌入的思想应用于序列推荐,它假设下一个项目是由前面的操作加上用户的翻译向量来预测的。这一假设可能适用于稀疏数据集(即Gowalla和Foursquare),因为它们的交互间隔非常离散,因此过渡空间很容易区分,但当用户的交互频繁时可能不成立(即ML-10M数据集)。另一方面,FPMC在密集和稀疏数据集上都取得了稳定的性能。它还表明,精心设计但简单的非神经方法通常在大多数情况下是有效的。
第三,GRU4Rec和RUM都使用深度神经网络作为推荐系统,该系统考虑所有(或多个)以前访问过的项目。RUM是一种集成了协同过滤和记忆增强神经网络的序列推荐模型。可以发现RUM产生了相当好的性能,仅次于最强基线SASRec。特别是在Gowalla数据集上,RUM和SASRec的性能几乎是相同的。
第四,最后两个基线SHAN和SASREC是基于注意力机制的推荐方法,没有循环结构或神经网络的卷积操作。SASRec是大多数数据集上最强的基线,这表明了自注意力网络对提高推荐准确性的重要性。另一方面,基于神经网络的方法(例如RUM)在大多数情况下比SHAN应用普通注意力机制结果更好,显示了神经网络对用户的一般兴趣及其序列行为建模的能力。
最后,本文方法LSGS在所有数据集和评估指标上总是达到最佳的性能,并且相比于最强的基线模型SASRec,HR平均提高了36%,NDCG平均提高了33%,MAP平均提高了30%。LSGS分别使用循环神经网络和自注意力网络来捕获用户的长期兴趣和短期兴趣并取得不错的性能,这表明了在序列建模时,使用单独的一种架构同时建模用户的长期和短期兴趣是不够的,必须先区分开来。另外,使用额外的一层自注意力网络,使得模型能自适应地学习长短期之间的关系,更加准确地为用户推荐物品。
4.5 模型成分分析
本节进行一系列实验检验获取和利用了用户长期和短期的兴趣特征对推荐模型效果的提升作用。将原模型移除长期兴趣层或者短期兴趣层,分别记为LSGS_rl和LSGS_rs。另外,在保持长期记忆层和短期记忆层不变的情况下,以向量拼接的方式来代替预测层的自注意力模块,记为LSGS_con。实验结果如表3所示。
可以看到,在移除长期兴趣层或者短期兴趣层后,模型表现都有所下降,这表明同时考虑用户的长期兴趣和短期兴趣是有必要的。其中,移除短期兴趣层对模型的影响更大,表明了用户短期内的交互更能反映用户的兴趣。将预测层的融合机制改变为普通的向量拼接操作,在不同的数据集上对模型有着不同的负面影响,其中在Foursquare数据集上影响最大,这可能是因为Foursquare数据集稀疏,普通的向量拼接操作不足以表现用户长期兴趣和短期兴趣之间复杂的关系,进一步验证了用自注意力网络来融合用户两种不同兴趣的有效性。
4.6 超参数影响分析
研究嵌入维度d的超参数和用户最近交互子序列长度l的影响。由于空间限制,这里只给出了N=10的实验结果。
(1) 嵌入维度d的影响: 从{20,40,60,80,100,120}中选择嵌入维度大小,以此来提高模型性能。如图3所示,更高的维度通常表现更好,这是因为高维度可以为项目建模更多的信息。然而,当嵌入维度高于100时,模型表现开始下降。这种性能下降的现象表明,当模型的隐式因子维数过高时,可能会发生过拟合。
图3 嵌入大小d对不同数据集性能的影响
(2) 用户最近交互子序列长度l的影响: 从{10,30,50,100}中选择截取用户最近交互子序列长度大小,以此来提高模型性能。如图4所示,在Gowalla数据集和Foursquare数据集上,当l取值为50时即可得到最优结果,这是因为这两个数据集的用户交互比较稀疏,选取小一些长度更能体现用户的近期兴趣。在MovieLens数据集上,当l取值100时得到最优结果,这是因为MovieLens数据集的用户交互密集,所以选取更大的长度能获得更多用户兴趣信息。
图4 用户最近交互子序列长度l对不同数据集性能的影响
5 结 语
本文设计一个新的模型,使用循环神经网络和自注意力网络分别捕捉用户的长期兴趣和短期兴趣。具体而言,将用户历史交互序列分离为用户完整序列和最近交互序列两种类型,并且从两种类型序列中分别捕捉用户的长期和短期兴趣。最后,使用一层额外的自注意力网络将用户的两种类型兴趣融合起来获得最终推荐。在三个现实生活的数据集上的实验表明本文模型比当前先进的模型表现更好。