评论情感分析增强的深度推荐模型
2022-09-06田添星
田 添 星
(复旦大学软件学院 上海 201203)(数据分析与安全实验室 上海 201203)
0 引 言
随着互联网的发展,网络平台上信息也呈爆炸性增长,但是用户的关注程度却并不随之增长,主要原因在于用户依赖搜索技术和系统难以从繁多信息中寻找到自己所需要的。为了解决该问题,推荐系统应运而生。推荐系统通过分析用户历史行为数据,理解用户需求和兴趣,为用户及时提供最可能接受的信息。
协同过滤[1]是推荐系统领域最早也最成功的技术之一,该方法假定历史上具有相同兴趣的用户,在未来也会有类似的喜好。传统协同过滤方法通过矩阵分解[2]模型实现。这类模型使用用户对物品的评分作为训练数据。评分数据能直观地体现用户对物品的态度。但是,这类方法存在数据稀疏、冷启动[3]等问题。研究者们尝试利用其他数据作为补充来解决问题,比如商品的元属性[4]、用户地理位置[5]等。
随着人工智能、机器学习和自然语言处理等领域的发展,计算机逐渐能够自动地分析文本并从中提取有价值的信息,研究者也随之开始探索用户评论数据作为一种新的补充数据的可能性。比如,McAuley等[5]就利用主题模型,从物品的评论中提取出物品的属性作为矩阵分解方法的补充,提升了推荐的准确性。另外一方面,情感分析是分析用户生成的文本内容的重要手段,该技术可以有效帮助商品或服务的提供者理解用户们在网上留下的评论。近些年来,情感分析作为比较基础的自然语言处理任务,可以使用各种前沿的深度学习技术来完成,比如根据文本的局部性对文本进行分析的TextCNN[7]、根据语言的连续性对文本进行从左到右和从右到左两个方向分析的双向LSTM网络[8]。近些年来,研究者意识到在深度学习任务中,学习过程里的众多信息对当前任务目标的重要程度是不同的,因此提出了注意力机制[9]。该机制也随后被运用到了各个模型及各个任务中,情感分析任务自然也可以运用到该技术,比如李松如等[10]提出一种采用循环神经网络的情感分析注意力模型。
推荐系统和情感分析技术都在尝试从评论中提取用户的意见。尽管它们提取用户意见用于不同的目标:前者目标是补充用户和物品的特征,帮助预测用户对物品的喜好度;后者根据一段文字判断其中隐藏的情感。显而易见的是,这两种技术都需要对文本有准确的理解。事实上,目前已有的推荐系统大多欠缺对评论的良好理解,这是由这类推荐系统的学习模式决定。对于利用主题模型理解文本的系统,它仅会从评论中提取最显著的词,而不关注提取主题词与推荐之间的关系。对于利用深度学习技术理解文本的系统,它会根据用户或物品的全部评论综合理解用户,对用户已有属性或物品特征进行补充,而后进行评分预测。这种模式虽然使得文本中提取的信息与推荐高度相关,但在低层却缺乏对单篇评论文本的准确理解,从而影响高层对用户和物品的理解。与此同时,情感分析能够有效地对每篇评论进行分析,是一种更专注于语言理解的技术。
因此,本文提出SERS,该模型通过情感分析技术帮助推荐系统理解评论文本,从而有效提高推荐性能。SERS使用两个同结构不同参数的基于多头注意力的循环神经网络进行用户偏好和物品特征的提取,同时进行情感分析任务(以用户评分作为指示器)。对于每个用户-物品对,提取的文本特征会与用户和物品固有的特征向量结合得到新的特征向量。而后通过神经网络,对用户和物品的交互建模,进行评分预测。本文在真实数据集上与现有模型进行对比,证明了该模型拥有强大的推荐性能。
1 相关工作
隐因子模型是在推荐系统中广泛使用的一种协同过滤技术的实践成果。隐因子模型从已有的评分数据中观察用户的偏好和商品特征,将每个用户和商品表征为固定维度的向量,并依此向用户推荐新商品。
在众多隐因子模型中,矩阵分解方法[2]无疑是最经典的一种,它将推荐任务转变为一个矩阵补全问题。至今,众多的先进模型都是构建在矩阵分解的技术基础上的。比如,概率矩阵分解[11]方法就是一个拥有可靠性能,被广泛采纳的推荐框架。该方法从概率的角度实现了矩阵分解方法,并且在大型稀疏数据集上取得了很好的成绩。
纯粹的矩阵分解方法有一定的问题。没有观测到的用户-物品的评分对与用户数量和物品数量的乘积成线性相关,而已知的评分数据一般只与用户数量成线性相关。因此,随着如今网络平台商品数量的快速增长,数据的稀疏性也不断增长,这成为了限制传统模型推荐性能的关键问题。
解决稀疏问题的一个办法是利用有价值的用户生产的内容,如用户评论、电影插图和物品使用指南等。比如,HFT(Hidden Factors and Hidden Topics)模型[6]使用主题模型LDA[12]从评论中抽取特征,然后矩阵分解方法可以从中获取到分布参数的先验知识。基于传统主题模型的方法存在的一个问题是,无法为推荐任务针对性地从评论中提取属性,只能提取文本中通用的高价值主题。
近些年来,深度学习网络结构开始被应用于自然语言处理。这股热潮源自深度网络结构在学习表示性词向量上的成功,最著名的有Word2Vec[13]和Glove[14]。这些方法通过训练模型中的词嵌入层,将数据集中的词知识存储在对应的词向量中。通过使用有意义的词嵌入向量,几乎所有被用于阅读理解、机器翻译、语音识别的技术都能被无缝地应用到自然语言处理当中。基于评论的推荐系统也得益于自然语言技术的进步,将深度学习技术运用到了对评论文本的处理当中,获得了很大的进步。
Kim等[15]首先在推荐系统领域使用了深度卷积网络,以N-gram的方式对评论文本进行建模,抽取出有价值的特征。该方法的一个局限在于,只对物品的评论文本进行建模提取属性,而没有意识到用户的评论同样可以为用户提供属性上的补充。
Lu等[16]进一步使用双向循环神经网络以及注意力机制从评论中抽取出主题性的文本特征,并将其引入到概率矩阵分解方法中。该方法同时对用户和物品评论,并且运用了更前沿的自然语言处理技术,因此取得很好的成绩。但是该方法没有真正对语言知识进行很好的建模,缺乏对评论的准确理解。
与此同时,He等[17]将神经网络技术应用到了推荐系统核心的用户-物品交互上,提出了神经协同过滤框架,验证了深度学习在该方面的有效性。本文在该方法基础上,通过情感分析任务引入了用户和物品的补充特征,提高了其预测性能。另一个常见的推荐模型是分解机(Factorization Machines,FM)[18],该方法在模型中手动添加特征的多阶交叉交互,是一种简单有效的模型。
2 模型设计
2.1 问题定义
给定一个数据集D,数据集中每个初始样本为(i,j,di,j,ri,j),包含用户i对物品j的一条评论di,j及对应评分ri,j。对于情感分析任务,需要根据评论文本di,j预测对应的评分ri,j,这里,本文将评分数据作为评论文本的情感指示器。对于推荐系统的评分预测任务,则需要根据用户u、物品v及用户u和物品v拥有的全部评论,对未知的用户-物品对进行评分预测。在这里,两个任务都利用评分数据作为指示器,但是情感分析任务利用语言知识对当前的评论进行评分;而推荐任务则是利用评分和评论数据学习到每个用户和物品的属性,然后对给定的用户-物品对进行评分预测。
2.2 基于多头注意力的循环神经网络
本文设计一种基于多头注意力的循环神经网络进行评论文本的情感分析模型,并且为推荐任务提供文本特征,网络结构如图1所示。该网络结构的输入为评论文本,输出有两个:该段评论的情感分数s和文本特征向量f。值得注意的是,对用户和物品使用两个结构相同但参数不同的网络来处理。因为,用户和物品对评论的关注点是不同的,需要用不同的方式去从评论中提取观点。比如,如果一个用户频繁提到“价格”,那么说明该用户对价格非常敏感,一般而言更偏好高性价比的物品;而对于一个物品而言,评论中经常出现“价格”一词本身代表不了什么,更需要关注的是“价格高”或者“价格低”。
图1 基于注意力的循环神经网络结构
(1) 词嵌入层。在输入模型之前,一段文本会先通过预处理步骤变成一个词的id序列(x1,x2,…,xn),每个id都对应着建立的词典里的一个单词。词id序列先通过词嵌入层,转变为稠密词向量(w1,w2,…,wn),词向量中包含着单词的信息。本文通过使用Word2Vec对使用的数据集进行训练,得到预训练的词向量。该词向量用以初始化词嵌入层,随后词嵌入层随着模型一起微调。这样的词向量训练方式,比起直接使用网络上利用其他数据集已经训练好的词向量,拥有更好的性能。因为根据使用的数据集训练的词向量拥有更多领域知识,对在对应数据集上的特定任务更有帮助。比如,“经理”在通用知识中是一个中性词,而在商品评论中出现时,通常是贬义词:一般只有用户在抱怨时才会提到“经理”。
(1)
(2)
ut=Sigmoid(Wuxxt+Wuhht-1+bu)
(3)
rt=Sigmoid(Wrxxt+Wrhht-1+br)
(4)
式中:⊙是元素点乘操作;tanh和Sigmoid是两种不同的非线性激活函数;W和b分别是参数矩阵与计算偏置项;更新门ut决定了过去信息将有多少被新的信息所取代;而重置门rt则决定了上一步的激活单元将为当前候选激活单元提供多少的信息。在时刻t,单词向量wt通过前馈GRU和反向GRU可以获得两个不同的语义向量,将两者拼接后得到最终的语义向量ht。直到这一步,模型已经得到了对文本本身的理解,接下来需要根据任务对抽取出的语义向量序列做进一步处理。换言之,以上已经介绍的结构是情感分析任务与推荐任务共享参数的部分,因为它们都需要对模型的基本语义进行准确的建模。
(3) 注意力层。得到了文本的动态语义信息后,模型通过两个不同参数的注意力结构,分别为情感分析任务与推荐任务,寻找文本中值得注意的信息。事实上,用户对物品会有不同的关注角度,同时一条评论最终的情感分数也是从多个角度综合得出的,而普通的注意力机制难以解决处理这类问题,因此本文参考了Transformer[9]中的多头注意力机制,多角度地寻找文本信息与对应任务的相关性。首先是对已有的语义向量进行转换,同时对向量进行降维,得到:
zt=tanh(Wht+b)
(5)
然后,将转换后的语义向量与语境向量v相乘得到注意力分布,并通过Softmax函数进行归一化,得到:
(6)
将该注意力分布向量与转换后的语义向量序列进行加权和就得到了文本的语义信息摘要,表示为:
(7)
假设共有k个头,则总的信息摘要为:
c=[c1,c2,…,ck]
(8)
即总的信息摘要向量为各个不同头的信息摘要的拼接向量。
通过两个不同参数的注意力网络,可以分别得到情感语义摘要cs和推荐语义摘要cf。
(4) 映射层。在得到了针对两个不同任务的文本信息摘要后,需要通过映射层做进一步处理。对于情感分析任务,可以直接根据摘要进行情感分数s的预测。对于推荐任务,则需要根据对应用户和物品的属性的维度,通过映射得到文本特征f。这些操作都可以通过全连接层(Fully Connected Layer,FC)完成。
s=tanh(Wcscs+bs)
(9)
f=tanh(Wcfcf+bf)
(10)
情感分数s作为辅助任务的结果加入到模型的损失函数中,帮助模型理解评论;而用户和物品都可以根据其评论文本得到文本特征,在与其固有属性e融合后进行评分预测。
2.3 文本特征扩展的神经协同过滤网络
通过情感分析任务,每篇文档都可以得到一个特征表示。本文对属于特定用户或者特定物品的全部评论的特征表示取均值,作为该用户或特征的文本特征,并将该步骤记为encoder以便后文表示。本节介绍如何利用这些提取的特征进行推荐任务。
推荐部分的算法流程如图2所示。
图2 文本特征扩展的神经协同过滤算法模型
模型主要包括三个部分:特征获取、特征融合和评分预测。
(1) 在特征获取部分,模型将输入值转换为稠密向量。具体而言,用户根据其id在嵌入层得到固有的属性eu,i,并且通过encoder流程从其全部评论中提取出文本特征fu,i。物品通过类似的步骤得到属性ev,j和文本特征fv,j。
(2) 在特征融合步骤,需要将固定特征e与文本特征f结合,以便用户和物品的特征交互。为了提高性能,研究者提出了不同的特征融合方式,比如相加、拼接。参考已有的相关工作[20-21],本文采用了相加的方式将从评论中提取的特征与固有特征相结合得到新的用户特征Fu,i与物品特征Fv,j,具体计算公式为:
Fu,i=eu,i+fu,i
(11)
Fv,j=ev,j+fv,j
(12)
(3) 在评分预测阶段,则是根据用户和物品的属性,模拟它们之间的属性交互,以此推测用户对物品的看法,即评分。最传统的评分预测方式是矩阵分解法,但这种方式存在线性的限制。随着深度学习的发展,Rendle[18]和He等[17]分别提出了经典的分解机器模型(FM)和神经协同过滤框架(NCF),这两种方法都能很好地模拟用户和物品的复杂交互,进行准确的推荐预测。本文参考NCF的框架,这一阶段的输入值为用户融合特征Fu,i和物品融合特征Fv,j,两者拼接后通过多层的全连接层和tanh激活函数,以计算交互向量,最后一层使用ReLU作为激活函数得到最终的预测分数:
(13)
式中:σ(x)=tanh(Wx+b)。
2.4 模型优化方式
(14)
(15)
ltotal=(1-γ)lrec+γlsen
(16)
训练时,本文采用Adam[22]作为优化器,Adam可以根据训练过程迭代地更新神经网络的权重,有效减少学习率的调整难度。另外,本文使用余弦退火(Cosine Annealing Learning Rate)[23]的学习率衰减控制机制,利用cosine曲线更新学习率,更容易找到参数中的最优点。
3 实 验
3.1 数据集与评估方式
为了分析模型在不同数据集上的表现,在四个真实世界的数据集上进行了实验。数据集为公开可下载的亚马逊产品数据集[24]中的“Sports and Outdoors”“Grocery and Gourmet Food”“Baby”“Home and Kitchen”。在完整的数据集中,部分用户只有一两条的评论,这使得模型难以从评论中抽取出意见。为此,本文使用5-核的数据集:只保留评论数量大于等于5的物品和用户以及对应的评论数据。实验数据集的细节如表1所示。
表1 数据集统计信息
为了验证本文提出模型的性能,采用了在评分预测相关工作中被广泛采用的均方差(Mean Square Error,MSE)作为模型评价指标:
(17)
MSE分数越低,代表预测评分越接近真实值,推荐性能就越高。模型在测试集上以不同随机种子计算5次结果,取均值作为最后分数。
3.2 基准模型
为了评估SERS的推荐性能,本文选择了若干经典推荐模型作为对比模型,包括:PMF[11]、HFT[6]、ConvMF[7]和TARMF[16]。
(1) PMF:概率矩阵分解法(Probabilistic Matrix Factorization)是矩阵分解方法从概率的角度出发的一个经典的实现。它在大型的稀疏数据集上表现优秀。
(2) HFT:隐因子主题模型(Hidden Factor as Topics)将LDA(Latent Dirichlet Allocation)主题模型并入了矩阵分解中。它是利用主题模型进行推荐任务中文本分析的经典模型。
(3) ConvMF:卷积矩阵分解法(Convolutional Matrix Factorization)是首个引入神经网络以处理评论文本的推荐模型,它通过应用卷积神经网络从物品的评论中抽取物品的特征,并以此扩展矩阵分解方法。
(4) TARMF:此模型通过基于注意力机制的循环神经网络从评论中提取主题信息,并将该信息引入传统矩阵分解方法中。
3.3 超参数调整
参照对比模型,本文对数据集按8 ∶1 ∶1的比例进行训练集/验证集/测试集的划分。各个模型在训练集上进行训练,并根据验证集挑选最优参数,最后在测试集上进行性能评估。每个分数都会以5个不同的随机种子进行测试后取均值。
在实验中,为避免过度调参,参数搜索范围被限制在较小的范围内,并且将在不同数据集上拥有较好性能的超参固定。模型中词向量维度固定为256维,GRU编码层维度固定为128维,注意力层的状态变量维度为16维,共有4个头。这些参数都属于情感分析部分,在不同数据集上都拥有接近最佳的性能,这是因为不同数据集的评论是类似的,其语法结构、包含的语言知识都比较接近。
物品和用户的嵌入层向量维度取相同的值,记为m,取值范围为:[4,8,16,32]。SERS中神经协同过滤网络的多层全连接层可以调试的范围极大,但通过多次实验,发现固定为4层,每层维度为(8m,4m,2m,m)即可得到较优的结果。
训练时,批大小固定为64就可以得到较优的结果,该参数过小会影响最终收敛结果,而参数过大则会导致训练效率低下;学习率的设置则对结果影响较大,该参数的搜索范围为:[1e-2,5e-3,3e-3,1e-3]。
调节系数γ的搜索范围为0.1到0.9,间隔0.1。通过在不同数据集上的测试,发现情感损失与推荐评分损失的调节系数γ为0.5时,推荐任务的评分预测损失最低。
3.4 性能比较
SERS模型与基准模型在四个数据集的测试集上的评估分数如表2所示,粗体表示在对应数据集上的最佳结果。
表2 各模型测试结果
可以看出,SERS的MSE分数超过了对比模型,说明了SERS拥有强大的推荐性能。
通过观察可以发现,利用评论信息的模型的表现都大幅优于只能接触到评分数据的模型PMF。这说明评论信息中,确实包含了能够指导推荐的信息,因此如何从评论中更好地提取信息是一个值得研究的问题。
HFT模型通过传统主题模型LDA,从评论文本中提取出重要的主题信息,用以解决评分数据稀疏问题,比起只利用评分数据的模型PMF取得了很大的进步。但基于概率的传统主题模型无法动态地捕捉推荐所需要的信息,容易提取与用户偏好或者物品属性无关的特征。
模型ConvMF采用了神经网络模型,通过卷积神经网络建模物品的评论文本,根据推荐任务的评分指示器动态地为矩阵分解方法补充特征,因此性能超过了HFT。该方法的问题在于,仅仅考虑了物品的评论,而忽视了利用评论来补充用户的属性。
模型TARMF一方面提出利用两个不同的编码器处理用户评论文本和物品评论文本,同时为用户和物品提供动态特征;另一方面通过基于注意力的循环神经网络,捕捉评论中的主题信息,该网络结构优于传统的卷积神经网络,因此其性能超过了ConvMF。但是该方法没有对语言通用知识的训练,因此难以准确理解文本信息。
参考了以上模型的优缺点,SERS采用了基于多头注意力的循环神经网络,同时为用户和物品从其评论文本中抽取推荐所需要的特征;并且增加了对文本进行评分预测的任务辅助推荐模型对语言进行更精确的理解。因此,SERS在测试的四个数据集中稳定超过了其他模型。
3.5 情感分析任务的影响
本文在MSE比较接近的Food和Sport数据集上调节损失函数中的平衡系数γ,以观察SERS中情感分析任务对推荐任务的影响。γ越接近0,训练目标越偏向推荐系统,当γ为0时,情感分析任务不起作用。实验结果如图3所示。
图3 推荐任务的MSE随平衡系数变化而变化的过程
可以发现,当γ从0变化至0.5的过程中,推荐模型的损失是逐渐降低的,而后快速上升。这说明,当情感分析任务在所占比重合适时,确实能够对推荐任务有所帮助。这是因为,这两个任务的进行都需要从评论中挖掘观点,因此两者底层的语言知识一定程度上可以互通。在其他数据集上也可以观察到与图中类似的趋势。当γ系数过高时,模型更关注情感分析任务,因此推荐任务的性能有所下降。
4 结 语
以往的基于评论的推荐系统中,通常直接利用从评论中提取的特征以补充用户和物品属性,缺乏对评论文本的准确理解。因此,本文提出一种利用情感分析任务辅助推荐系统理解语言的方法。在4个公开数据集上进行了测试,验证了该方法的有效性。
未来的工作方向有两个。首先是增强用户属性与物品属性的交互建模。本文的重心在于增强对评论文本的理解,而未对用户和物品之间的属性交互做进一步探索,其中存在很大的进步空间,比如利用注意力机制帮助用户更好地关注物品的重要属性。其次,则是加强对评论文本的理解。ELMO[25]和BERT[26]等的“预训练+下游任务”的模式在自然语言领域取得了重大的进步,该如何有效地利用这种模式帮助推荐系统理解评论文本是一个值得探索的问题。