考虑评论质量的自注意力胶囊网络评分预测模型

2022-01-04 09:35梁顺攀尤殿龙刘泽谦张付志
电子与信息学报 2021年12期
关键词:细粒度文档胶囊

梁顺攀 刘 伟 尤殿龙② 刘泽谦 张付志②

①(燕山大学信息科学与工程学院 秦皇岛 066004)

②(燕山大学河北省软件工程重点实验室 秦皇岛 066004)

1 引言

近年来,许多网站允许用户以评论的形式表达对目标项目的态度。用户的评论中包含了丰富的用户喜好信息以及商品特性信息。使用评论文档作为辅助信息的推荐模型可以缓解评分矩阵的数据稀疏问题。

根据基础结构,将基于评论的推荐模型分为两类,分别是基于主题模型的方法和基于深度模型的方法。基于主题模型的方法[1,2]使用LDA(Latent Dirichlet Allocation)模型[3]抽取评论文本的主题,再根据主题预测评分。由于主题模型会丢失文本词序,并且学习到的是浅层特征,所以这类方法逐渐被基于深度模型的方法所替代。在基于深度模型的推荐算法中,ConvMF(Convolutional Matrix Factorization)模型[4]使用卷积神经网络(Convolutional Neural Networks, CNN)处理项目评论文档;DeepCoNN(Deep Cooperative Neural Networks)模型[5]使用两个CNN并行处理用户和商品评论,通过融合层计算用户对项目的评分;NARRE(Neural Attentional Regression model with Review-level Explanations )模型[6]在DeepCoNN的基础上考虑了评论的质量,使预测精度进一步上升。TARMF(Topical Attention Regularized Matrix Factorization)[7]采用基于注意力的循环神经网络(Recurrent Neural Network, RNN)提取主题信息,可以将词序信息保留,更大程度地理解文本。

CNN存在“不变性”、RNN常会出现梯度消失或者梯度爆炸问题,它们均不能准确地提取评论文本的细粒度特征,影响预测精度。胶囊网络[8]将神经网络中的神经元扩展成“胶囊”向量,胶囊的长度代表某个属性是否存在,胶囊的方向代表属性的具体描述,这些特性使其可以保存细粒度文本语义,在关系提取[9,10]和文本分类[11,12]任务中有效地改善了CNN的缺点。此外,胶囊网络仅通过少量迭代就可以获得较好的结果,避免了RNN的训练缓慢和梯度问题。使用胶囊网络的推荐模型

CARP(CApsule network based model for Rating Prediction with user reviews)[13]仅将胶囊网络设置在模型预测层, MIND(Multi-Interest Network with Dynamic routing)[14]忽略了项目文档中隐含的项目特性信息,它们都没有准确地提取出文本的细粒度特征。

在推荐系统中,有些用户对项目要求过高,习惯给出负面评论,甚至对项目恶意评论,这样的评论内容是低质量的。目前已经出现了一些使用数据集中用户对评论的“有用/无用”标记来预测每条评论的有用性的研究[15],但当数据集中不存在这样的标记时,现有的基于评论文档的推荐算法[1,2,4,5,7,13,14,16]都无法考虑到评论质量的因素,低质量评论混在大量的评论文档中会降低挖掘出语义特征的质量,进而影响预测的精度。

为解决CNN挖掘文本特征不准确以及低质量评论影响结果精度的问题,本文提出考虑评论质量的自注意力胶囊网络评分预测模型SACR。本文模型的主要贡献总结如下:

(1)本文使用自注意力胶囊网络同时挖掘用户和项目评论文档,并且改进了胶囊的挤压函数,可以获取到细粒度级别的用户偏好和项目特性,解决了使用CNN挖掘文本特征不准确的问题。

(2)为了解决低质量评论会对预测精度产生影响的问题,本文模型使用用户和项目的编号信息标记那些质量不高的评论,在模型学习时可以避免其带来的负面影响,从而提升模型的评分预测精度。

(3)将本文模型和基准模型在8个不同规模的现实世界数据集进行实验,结果证明了SACR避免低质量评论影响的能力以及在评分预测上的准确性。

2 模型结构

为充分挖掘用户的细粒度偏好以及项目的细粒度特性,SACR设置了一个双塔结构网络,分别用来处理用户评论文档和项目评论文档,并通过融合层将两个网络的输出和评论质量表示融合,从而预测用户对项目的评分。SACR模型的3层结构分别是:(1)将评论文档嵌入表示,并挖掘文本注意力表示的编码注意力层;(2)挖掘细粒度级别的用户偏好和项目特性的卷积胶囊层;(3)将评论质量表示与上层输出连接、变换后预测评分的融合层。本文提出的SACR模型结构如图1所示。SACR模型中主要用到的符号及其定义如表1所示。由于用户网络和项目网络在前两层的结构相同,所以以下文主要叙述用户网络的详细结构。

表1 模型符号定义

图1 SACR模型结构

2.1 编码注意力层

第1层是编码注意力层,本层首先对评论文档进行词嵌入,然后依据自注意力权重对词嵌入矩阵重新赋权,得到用户或项目文本注意力表示矩阵。以用户i的评论文档为例,模型的输入为用户i对所有项目的评论文本序列:Ri=[Ri1,...,Rik,...,RiL],其中Rik是第k个单词在字典中的索引,L是评论文档的长度。词嵌入模型输出得到词嵌入矩阵Xi=[Xi1,...,Xik,...,XiL],其中Xik ∈Rd是第k个词向量。词嵌入矩阵并不能表示出用户的表达重点,则需要继续对词嵌入矩阵进行自注意力变换,获取表达重点。

2.2 卷积胶囊层

第2层是卷积胶囊层。胶囊网络可以挖掘出文本中的细粒度语义,该层使用胶囊网络改进传统的CNN。本层改进了传统胶囊网络[8]的挤压函数,可得到更准确的上层胶囊,进而获取细粒度的用户偏好和项目特性。

本文对胶囊网络[8]的挤压函数进行了改进,挤压函数第1项的作用是将sj单位化,第2项的作用是将sj挤压到[0,1]区间,即当sj很长时,将其拉长为1,当sj很短时,将其压扁为0。第2项分母的数字1代表挤压程度,挤压程度越大总体数值越小,胶囊就会获得更大的挤压效果。图片分类任务中,模型需要扩大特征之间的差别,但在推荐任务中,体现出特征的相似性有助于学习用户和项目的特征,故本文将其第2 项的挤压程度1 改为了0.5:0.5+||sj||2,使第2项的权重扩大,胶囊网络可以更多保留胶囊间的相似性。

经过λ次迭代的路由过程,胶囊网络输出得到D个高层胶囊,拼接组成用户i的胶囊矩阵:Oi=[o1,...,ok,...,oD],Oi ∈RD×e编码了文本的细粒度特征信息。为了在融合层将细粒度特征与评论质量信息融合,还需计算每个胶囊的长度,将胶囊矩阵映射到与编号嵌入同维度的向量空间,最终,得到卷积胶囊层的输出:ui=[||o1||,...,||ok||,...,||oD||],ui ∈RD,同理可得项目j在卷积胶囊层的输出vj ∈RD。

2.3 融合层

在融合层中,本文使用用户和项目编号的嵌入对评论质量进行建模,将编号嵌入分别与用户偏好胶囊和项目特性胶囊相融合,在模型训练时通过这样的融合标记可以给恶意用户和受害项目的胶囊赋予较低的权重,从而降低低质量评论对模型的影响。为了使上文得到的用户偏好胶囊和项目特性胶囊中包含表示评论质量的因素,将用户编号嵌入表示αi、项目编号嵌入表示βj与卷积胶囊层获得的ui,vj相加,公式为

其中,si,tj为融合了评论质量的用户i的细粒度偏好和项目j的细粒度特性。对si和tj再次进行变换映射,计算用户i的偏好与项目j的特征的相关程度r˜ij。

其中,⊙代表逐元素相乘,Wpre为权重矩阵。计算评分的偏置项,并将以上结果进行整合为

其中,ηi和θj为用户偏置和项目偏置,bpre为全局偏置,rˆij为模型输出:用户i对项目j的预测评分。

2.4 模型训练及优化

本文将SACR模型训练过程的损失函数设置为

模型使用Adam[17]优化器对目标函数进行优化,Adam优化器可以在训练过程中自动调整各个参数的学习速率,并且比普通的SGD优化器更准确、收敛更快。

本文在SACR的融合层使用Dropout[18]方法,Dropout可以在模型训练时随机删除ρ百分比的神经元,在每次模型训练只更新Dropout保留的部分参数,可以缓解模型产生过拟合的问题,提高模型的性能。

3 实验

3.1 数据集和评估标准

本文实验使用来自Amazon5-core[19]的不同领域的8个数据集。数据集中包含用户编号、项目编号、评分、评论、评论有用性等9种属性,本文使用其中的用户编号、项目编号、评分和评论。Amazon已将数据设置为每个用户和项目都至少有5条评论,保证了足够的评论文档用以提取特征。数据集统计如表2所示。

表2 对每个数据集的统计

对每个数据集随机以8:1:1的比率构建训练集、验证集和测试集,在实验过程中选取均方误差(Mean Square Error,MSE)作为模型实验效果的评判标准。为了验证模型的有效性,实验选取以下5个模型与SACR进行对比:

(1) PMF[20]:概率矩阵分解模型,仅使用评分矩阵进行矩阵分解预测用户对项目的评分。

(2) ConvMF[4]:使用项目评论文档作为辅助,利用CNN挖掘项目特征,结合PMF进行预测评分。

(3) DeepCoNN[5]:使用CNN分析项目评论和用户评论的深度模型。

(4) NARRE[6]:使用CNN分析项目评论和用户评论,并考虑了评论质量的深度模型。

(5) CARP[13]:使用注意力机制细粒度分析评论文档,并利用胶囊网络预测评分的深度学习模型。

3.2 超参数设置与调整

3.2.1 胶囊数量和胶囊维度

输入胶囊的通道数C和维度e1决定了胶囊网络处理文本特征的范围和方向,输出胶囊的数量D和维度e决定了特征的维度和细粒度。为确定以上参数,本文在Musical Instruments数据集上测试了使用不同参数的情况下模型预测评分误差的变化。由于胶囊网络的动态路由是一个逐步求精的过程,故输出胶囊的数量和维度要少于输入胶囊的数量和维度,在研究某个参数时,将其他参数设定为固定值。实验结果如图2所示。从图2(a)和图2(c)观察到,当胶囊数量取值较小时,胶囊网络能处理的特征数目相应较少,挖掘到的用户偏好和项目特性不完整,导致误差较大,当胶囊数量取值过大时,又会使特征产生冗余,同样会增高模型误差;从图2(b)和图2(d)观察到,当胶囊维度取值较小时,特征细节体现得不完整,取值过大会使胶囊的细粒度信息产生冗余。根据结果,本文在实验中设定使模型MSE达到最小的参数值:C=4,e1=16,D=64,e=4。

图2 不同数量和维度的胶囊对模型均方误差的影响

3.2.2 动态路由迭代次数

胶囊网络中动态路由的迭代次数λ决定了胶囊网络输出特征的精度。本文在Musical Instruments,Office Products数据集上测试了模型使用不同动态路由的迭代次数时MSE的变化情况。实验结果如图3所示,当迭代次数从1次增加到3次时,模型在两个数据集上的MSE均明显降低,且当λ=3时模型的MSE达到最低,说明胶囊网络在超过两次迭代之后,就已经找到了较精确的高层胶囊。由于迭代次数选为3次时已经可以挖掘出准确的细粒度特征,所以在继续迭代后,MSE并没有继续降低,反而在升高后趋于平滑。根据结果,本文在实验中选择使模型MSE最低时的迭代次数:λ=3。

图3 不同的迭代次数在两个数据集上对模型均方误差的影响

3.2.3 挤压函数调整

为证明本文改进的挤压函数可以学习胶囊间的相似性,进而更易学习用户的偏好和项目的特性,本节将挤压程度作为参数,设置挤压程度为1.00,0.75, 0.50, 0.25, 0,并将模型在Musical Instruments, Office Products数据集上进行实验。由于挤压程度设置为0可能会造成挤压函数中分母为0的错误,故使用极小值1e-7替代。实验结果如图4所示。当挤压程度为0时,挤压函数就变成了普通的归一化函数,失去了挤压的作用,模型误差最高;挤压率为0.25时,函数具有一定的压扁和拉长胶囊的效果,模型误差降低;挤压程度为0.50时模型误差最低;挤压程度增加到0.75和1.00时,挤压效果最强,但扩大了胶囊的差别,忽略了胶囊的相似性,故学习到的特征间联系变小,模型误差反而上升。实验证明使用本文挤压函数挖掘的特征更准确。

图4 不同的挤压程度在两个数据集上对模型均方误差的影响

3.3 模型对比

本文同时在Amazon5-cores的8个数据集上对SACR以及基准模型进行实验,结果如表3所示。

表3 各模型实验结果对比

首先,PMF仅使用评分矩阵学习用户和项目的特征,在评分数据稀疏时模型受影响较大,所以相对于其他基于评论文档的模型性能是最差的;在基于评论文档的基准模型中,ConvMF引入了评论文档作为辅助信息,并且在PMF的基础上使用CNN处理项目评论,得到的项目特征更加完整,模型性能也较PMF有较大的提升,但其用户特征还不准确,故与其他模型相比性能较差;Deep-CoNN使用CNN处理用户和项目评论,并且使用全连接层代替矩阵分解模型,模型的性能显著高于基于矩阵分解的ConvMF,但CNN不能准确挖掘评论中的细粒度特征,模型性能仍不是基准模型中最高的;NARRE在DeepCoNN的基础上使用了注意力机制,并考虑了评论质量因素,在其工作[6]中选取的Toys and Games, Kindle Store, Movies and TV上模型性能是基准模型中最高的,但在其他的数据集上仅强于PMF,说明模型基于CNN挖掘特征不够准确,在稀疏的数据集上泛化能力较弱;CARP使用注意力机制挖掘评论文档的细粒度特征,并使用胶囊网络进一步分析用户项目交互的情感,在前5个数据集中的表现是基准模型中最高的,在后3个数据集中性能与NARRE持平,但其使用注意力挖掘到的特征仍有限,且模型没有考虑到评论质量对结果的影响;本文模型SACR在各个数据集的平均MSE显著低于其他模型,且在Office Products, Digital Music, Movies and TV上相对于CARP取得了6.5%,10.5%,6.7%的显著改进,在Musical Instruments中性能与CARP持平的原因是设置了不同于其他数据集的迭代次数和特征维度,虽然准确率提高,但结果导致模型泛化能力降低。在其他数据集中SACR的性能显著高于CARP。

综上所述,在使用相同评论数据集的情况下,本文模型SACR与使用CNN的其他模型相比取得了最低的预测误差,这说明胶囊网络在模型训练的过程中可以比CNN挖掘出更准确的文本特征,由于挖掘出的特征更准确,故可以获得更高的准确率。

3.4 模型有效性分析

为了验证SACR避免低质量评论影响的有效性以及使用胶囊网络进行细粒度特征挖掘的合理性,使用SACR的两个子模型进行对比实验,两个子模型的定义如下:

(1) SACR-base:不包含SACR的融合层中结合评论质量的部分,用于证明SACR可以消除低质量评论对预测结果的负面影响。

(2) SACR-cnn:将SACR的卷积胶囊层替换为连续3次卷积和池化操作的CNN,用于证明SACR的自注意力胶囊网络可以更细粒度地提取特征。

SACR-cnn相当于在DeepCoNN的基础上增加了考虑评论质量的融合层,SACR-base相当于将DeepCoNN的CNN替换成本文的卷积胶囊层。分别将SACR-base和SACR-cnn在Amazon5-cores的5个数据集进行实验,并与SACR以及基准模型DeepCoNN进行对比。实验结果如表4所示。

表4 子模型预测准确率实验结果对比

首先,使用胶囊网络的SACR和SACR-base的性能均高于使用CNN的SACR-cnn和DeepCoNN,说明将神经元扩展成“胶囊”的方式使模型在训练过程中能比CNN携带更丰富的信息,证明SACR能捕获用户和项目的细粒度特征,解决了CNN挖掘文本特征不准确的问题。其次,融入编号信息标记评论质量的SACR和SACR-cnn的性能均高于没有考虑评论质量的DeepCoNN,证明SACR通过对用户项目进行标记,在模型训练时可以赋予恶意用户和受害项目的评论较低权重,进而消除低质量评论对预测结果的负面影响。

本节实验证明了SACR可以解决使用CNN挖掘文本特征不准确以及低质量评论影响结果精度的问题,SACR可以给用户生成更加准确的推荐结果。

4 结束语

本文提出了一种考虑评论质量的自注意力胶囊网络评分预测模型SACR。使用自注意力胶囊网络处理评论文档,并改进了胶囊的挤压函数,使其能更准确地获取评论文本中的细粒度特征,通过将用户、项目标识信息与细粒度特征相融合,进一步消除低质量评论对特征挖掘的负面影响。经过与各种基准模型的实验对照,证明SACR可以更有效地提升评分预测的准确率。此外,本文还通过SACR与子模型的对比实验,证明了使用自注意力胶囊网络挖掘特征可以解决使用CNN挖掘文本特征不准确的问题,将用户和项目信息标记评论可以避免低质量评论对结果的负面影响。

在未来的工作中考虑将时间因素加入到模型中,分析模型在用户评论的时间分布不同的情况下,对应的细粒度特征的变化;考虑通过其他上下文信息完善模型对推荐结果的可解释性。

猜你喜欢
细粒度文档胶囊
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
Shugan Jieyu capsule (舒肝解郁胶囊) improve sleep and emotional disorder in coronavirus disease 2019 convalescence patients: a randomized,double-blind,placebo-controlled trial
浅谈Matlab与Word文档的应用接口
Shumian capsule(舒眠胶囊)improves symptoms of sleep mood disorder in convalescent patients of Corona Virus Disease 2019
有人一声不吭向你扔了个文档
基于SVM多分类的超分辨图像细粒度分类方法
基于web粒度可配的编辑锁设计
基于RI码计算的Word复制文档鉴别
支持细粒度权限控制且可搜索的PHR云服务系统
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat