APP下载

基于评论特征提取和隐因子模型的评分预测推荐系统

2021-06-03罗莘涛伍少梅

关键词:特征提取局部卷积

罗莘涛, 陈 黎, 伍少梅, 王 昊

(1.四川大学计算机学院, 成都 610065; 2.西澳大学, 珀斯 6009)

1 引 言

根据2016年公布的数据显示,Amazon 35%的销售额都来自于推荐系统,良好的推荐系统还能改善用户的购物体验.提高推荐系统的精度对商家、电商平台和用户具有重要的商业价值和使用价值.

传统的推荐系统[1]通常利用用户对商品的评分信息,按照电商平台数以万计甚至上百万计的商品种类和用户群体来计算,这样的信息十分稀疏.为此,越来越多的研究人员开始尝试使用其他信息[2]来弥补数据稀疏问题.而用户在购买商品时会选择性地给某些商品进行评论,这些评论体现了用户购买的商品的某些特征属性.如“质量很好,价格适中,综合性价比高,值得购买”这条评论包含了对商品质量、价格、性价比方面的特征描述,并且我们可以推断出用户在购物时对商品质量、价格、性价比等方面的偏好.而单一的评论不能完整地体现用户的整体偏好和商品完整的特征属性,为此将用户和商品的所有评论作为额外的信息来弥补数据的稀疏性问题.最近的一些研究也表明了评论文本对解决推荐系统中数据稀疏性[3-9]以及提高推荐的准确率有着积极的作用.

由于深度学习[10-16]的词嵌入表示模型,能够简单有效地将不同的数据通过深度神经网络表示到同一个向量空间中,可以同时构建用户和物品的嵌入表示信息,因此当前基于评论的推荐工作大部分采用深度学习的方法.ConvMF[3]只使用卷积神经网络提取评论特征来对商品进行建模,没有考虑用户本身也可以作为对象建模.NARRE[4]在DeepCoNN[5]使用卷积神经网络模型提取特征和用户和商品平行建模的基础上增加了对单个评论的重要性评估.TARMF[6]和NARRE类似,使用基于注意力机制[17]的GRU模型[18]对单个评论进行建模之后平均得到用户和商品的特征向量,提取了全局特征但是忽略了局部特征.虽然卷积神经网络通过固定感受野对局部特征的提取有很好的效果,但是对提取文本全局特征却没有循环神经网络有效,导致评论特征提取不充分.此外,固定感受野的卷积神经网络只能关注单一的局部特征,但是并不是所有的特征都能被一个感受野完全提取出来,因此只使用单一感受野的卷积神经网络对局部特征的提取也是有限的.

本文提出基于评论特征提取的复合神经网络模型,使用自适应感受野的卷积神经网络,根据模型训练自适应的选择不同感受野下卷积神经网络提取的局部特征.结合门控循环单元提取全局特征,解决了局部特征提取单一以及评论特征提取不全面的问题.实验证明,该模型可以有效利用评论中的特征信息,并在5个Amazon公开的数据集上取得了较好的效果.

本文的主要贡献有以下两点:(1) 提出了自适应感受野的卷积神经网络提取局部特征,解决了局部特征提取单一问题;(2) 提出了将全局和局部特征融合表示的方法对用户和商品建模,兼顾局部特征和全局特征,丰富特征提取方式.

2 相关工作

当前基于评论的推荐系统按照评论使用方式分为两种:(1) 将用户的每条评论首尾拼接形成一个大文档,使用这个包含了用户所有评论信息的文档进行建模;(2) 基于单个评论的建模方式,将用户的评论一条一条的单独进行建模,最后再将特征融合到一起表示.

基于多个评论拼接在一起统一进行建模中具有代表性的工作是ConvMF、DeepCoNN、D-Attn[7].较早将用户评论信息引入到推荐系统的工作ConvMF结合卷积神经网络和概率矩阵分解模型进行用户的评分预测,但是在建模过程中只使用了用户对物品的评论进行建模.DeepCoNN设计了经典的双塔模型,使用卷积神经网络对用户和物品分别进行特征提取.分别得到用户和商品的特征表示之后使用因子分解机进行评分预测.该方法中用户和商品平行使用深度学习建模的方式是后面许多工作的基础.D-Attn在DeepCoNN的基础上引入了词级别的注意力机制,表示评论中不同的单词对于用户和物品建模的重要性是不一样的.并且引入了局部和全局注意力两种注意力机制来寻找富含更丰富语义信息的单词,为这些单词赋予更高的权重.

基于单个评论建模的工作有NARRE,作者认为用户写的每条评论对用户和商品的特征建模贡献是不一样的,有的评论具有丰富的语义信息,有的评论可能只是简单的复制粘贴.为衡量每条评论对建模的贡献程度,提出了评论级的注意力机制,使用用户名和商品名信息嵌入表示来刻画每条评论的权重.通过softmax得到每条评论的不同权重之后聚合在一起对用户和商品进行特征建模,并在特征表示层将隐因子模型(LFM)[19]引入到该模型中,共同学习用户和商品的特征表示之后进行评分预测.类似的工作还有TARMF,TARMF使用双向GRU来建模单个评论单词的隐藏单元表示,使用注意力机制来计算单词的权重信息,得到k个注意力模块的输出.将用户和商品的每个评论使用同样的平行方式建模得到评论的特征信息,通过优化概率矩阵分解评分矩阵来相互学习用户和商品的特征表示.但是单一的GRU模型没有充分挖掘评论中存在的局部特征,并且对提取出来的全局特征也没有进行任何处理.

3 本文方法

本文模型采用单个评论建模的方式.首先在嵌入层通过Embedding的方式将评论文本表示成句向量;再通过特征提取层提取当前评论的局部特征和全局特征,在评论注意力层结合用户名或商品名信息对用户评论进行权重计算,归一化处理之后相加得到用户的特征表示;最后结合隐因子模型预测用户评分.具体模型结构如图1所示.

图1 本文模型结构Fig.1 Structure of the model

3.1 嵌入层

嵌入层的功能主要是将用户的评论文本通过词嵌入表示成为可输入神经网络训练的向量.本文采用谷歌公开的glove词向量模型,将用户历史评论逐条进行词嵌入表示,得到评论向量Ui∈RT×d和Ij∈RT×d,Ui表示用户的第i条评论,Ij表示商品的第j条评论,其中,T为句子填充之后的长度,d为词嵌入维度.再将评论向量馈入神经网络模型进行训练.

3.2 特征提取层

特征提取层的主要功能是提取评论的局部特征和全局特征.其中局部特征提取使用2个不同感受野的卷积神经网络结合注意力机制自适应选择特征。全局特征提取使用门控神经单元进行.

3.2.1 局部特征提取 局部特征提取模块采用a,b两组不同感受野的卷积核提取局部特征,由于不同感受野提取的局部特征不相同,因此通过注意力机制自适应的选择更有用的局部特征来进行建模.整体流程如图2.

图2 局部特征提取模型

Cj=ReLU(Ui*Kj+bj),1≤j≤k

(1)

式(1)中,*为卷积操作;Kj∈Rw*d为第j个卷积核;w为卷积核的窗口大小;d表示嵌入的向量维度.bj为第j个卷积核的偏置项.采用修正线性单元(ReLU)作为神经网络的激活函数.Cj表示第j个卷积核提取的局部特征.通过最大池化得到第一组卷积核的局部特征信息Ua.

Ua=max{0,C}

(2)

其中,C=[C1...Cj...Ck],k为模型中每组卷积核的个数.类似的我们可以得到另外一组卷积核的特征Ub.这里,Ua∈Rk,Ub∈Rk,在本文模型中,通过平均池化不同卷积核的融合信息,得到评论文本中局部特征关系.类似人眼在阅读时,总是会先关注局部的信息,然而不同的局部特征重要性也是不一样的.因此使用注意力机制来选择不同重要性的特征.首先,将提取的特征Ua,Ub融合在一起进行平均池化得到评论局部融合特征U,经过全连接层Wa,Wb∈Rk和一层softmax得到各组卷积核提取的特征权重.注意力机制公式如下.

U=avg(Ua⊕Ub)

(3)

a=U⊗Wa

(4)

b=U⊗Wb

(5)

local=aUa+bUb

(6)

其中,a∈Rk,b∈Rk,ai=1-bi,i∈[1,k].a,b的分量ai,bi表示a,b两组卷积核提取的第i个局部特征的权重,通过权重大小自适应的选择局部特征,最终得到整个评论的局部特征.模型可以通过训练自适应的选择不同感受野的卷积核提取的局部特征,不再局限于单一的感受野,具备很强的可扩展性.可采用多个不同大小窗口的卷积核来提取特征,也可以使用不同的卷积方式相互交叉来达到模型增强的效果.

3.2.2 全局特征提取 GRU和长短期记忆网络(LSTM)是循环神经网络的一种,通过门控机制解决了长期记忆和反向传播中的梯度等问题,但是GRU相比LSTM在效果相当的情况下更容易进行训练,提高了训练的效率.整个模块流程如图3所示.

图3 GRU模型Fig.3 GRU model

本文通过GRU提取用户评论的全局特征,rt,zt分别代表重置门和更新门,计算公式如下.

rt=σWr[ht-1,xt],0≤t≤T

(7)

zt=σWz[ht-1,xt],0≤t≤T

(8)

(9)

(10)

*表示矩阵乘法.整个评论文本经过GRU得到的最终状态信息ht作为整个评论文本的全局特征,与上一个模块提取的局部特征拼接在一起,作为用户和商品的评论特征提取表示.

fu=[Ulocal,Uglobal]

(11)

fi=[Ilocal,Iglobal]

(12)

由于每个评论对建模的贡献是不同的[4],因此使用多层感知机的方式对用户建模嵌入用户名信息来衡量用户评论的重要性,对商品建模采用嵌入商品名信息来衡量.具体公式如下.

(13)

(14)

(15)

(16)

(17)

(18)

其中,fu,fi表示用户和商品提取的评论文本特征;n,m是用户和商品的评论数量,最后结合隐因子模型(LFM)学习用户自身的特征偏好和商品的潜在特征.传统LFM模型的公式如下.

L(u,i)=puqiT+bu+bi+μ

(19)

其中,pu,qi∈Rt表示LFM模型中用户的特征偏好和商品的潜在特征属性,bu,bi,μ分别表示用户偏置项,商品偏置项以及用户对商品的全部评分的平均值,将该模型需要学习的pu,qi特征矩阵与上述两个模块提取的特征矩阵融合后得到用户和商品的最终表示Pu,Qi,最后馈入神经网络进行评分预测.

Pu=Wru[fu⊕pu]

(20)

Qi=Wri[fi⊕qi]

(21)

其中,Wr∈Rt表示权重参数;t是根据实验设置的潜在特征数量.

3.3 评分预测层

评分预测层的工作是将下层模型提取的用户特征偏好和商品特征属性进行交互,计算预测评分值.如图1所示,我们得到融合局部和全局特征的用户偏好和商品属性,通过神经网络计算得到预测评分,公式如下.

(22)

其中,bias表示评分预测计算中用户和商品的偏置项.模型训练通过反向传播最小化损失函数来学习模型参数,本文采用平方损失函数进行训练,公式如下.

(23)

其中,u,i∈Γ表示训练集中所有的用户和商品.

4.1 数据集及评价指标

本文采用Amazon电商评论数据集[20]Musical Instruments、Office Products、Grocery and Gourmet Food、Video Games 和Movies,所有数据集都包含用户、商品及用户对商品的评论和评分,数据集中的每个用户都至少在该平台上发表5条以上的评论.数据集详细信息如表1. 每个数据集按照8∶1∶1的比例分为训练集、测试集和验证集.采用平均绝对误差(MAE)作为评价指标,公式如下.

表1 数据集

(24)

其中,N是测试集中数据的个数.通过测试集的平均绝对误差来检验模型的效果.误差越小表示模型效果越好.

4.2 基线模型

为了验证本文模型的有效性,我们采用了以下5个模型作为基线模型进行对比实验.

(1) ConvMF(RecSys'16)[3]:该模型将卷积神经网络(CNNs)提取评论特征,与概率矩阵分解模型(PMF)结合起来进行评分预测;

(2) DeepCoNN(WSDM'17)[5]:该模型完全使用深度学习的方法进行建模,采用两个平行的卷积神经网络来分别建模用户和商品的评论,最后使用因子分解机(FM)进行评分预测;

(3) D-Attn(RecSys'17)[7]:该模型在DeepCoNN模型的基础上引入了词级别的注意力机制,表示评论中不同单词对用户和商品的建模作用是不一样的;

(4) NARRE(WWW'18)[4]:该模型认为,用户写的每一条评论对用户和商品建模的贡献是不一样的,有的可能更加有用,有的可能几乎没有作用,因此提出了评论级别的注意力机制来衡量每条评论的重要性;

(5) CARL(TOIS'19)[8]:这篇文章认为同一个用户对不同商品的偏好是不同的.因此为每个用户和商品的评论文档学习不同的词权重,用卷积神经网络和多层感知机抽象表示用户和商品特征.

4.3 参数设置

在模型实验中,本文将评论用Glove词向量[21]对文本中的单词进行初始化,对没有在Glove词向量中的单词进行随机初始化,整个模型的迭代次数为40,Batchsize大小设置为64,用户名和商品名嵌入维度为32,模型神经网络采用dropout方法对神经网络的节点进行随机丢失,丢失概率为0.5.学习率设置为0.001,采用Adam优化算法进行优化.

在局部特征提取模块中,卷积神经网络采用的窗口大小分别为3和5,卷积核个数k为50.融合信息后卷积窗口为3,得到融合的提取特征之后采用两层全连接层的方式对特征先进行缩放然后再还原,以此来增加融合特征之间的交互.在全连接层中,本文使用的神经单元为50个.在全局特征提取模块中,我们使用的GRU单元为50维,长度为评论文本填充后文本长度.

4.4 实验结果

我们对基线模型使用的用户和商品信息以及评论的使用方式进行了分析,结果如表2所示.其中,ID嵌入栏表示该模型在训练时是否使用了用户名和商品名信息,评论处理方式中聚合属性表示该模型将用户和商品下的所有评论信息拼接成一个大文档进行建模,而单独属性表示将评论逐条进行建模.可以看出,本文模型使用了ID嵌入信息,并衡量每条评论对模型建模的贡献.对比NARRE模型,本文使用了特征选择注意力机制来选择贡献大的特征,并增加了全局特征提取模块来弥补卷积神经网络无法兼顾整个评论文本特征的缺陷.

表2 数据使用信息

为了验证模型的有效性,我们将从以下两个方面来进行验证,一是对比基线模型在不同数据集上的对比实验;二是本文模型改进部分对实验结果的影响的消融实验.

(1) 对比实验.为验证本文模型的有效性,我们将本文模型与5个基线模型进行对比,对比结果如表3,表中下划线的结果表示基线模型中最好效果.

表3 对比实验结果

从表3对比实验结果可以看出,同时建模用户和商品特征的DeepCoNN模型比只建模商品特征的ConvMF模型提升较大,提升了3.56%.DeepCoNN模型是第一个完全使用深度学习的方法,开创性的设计了端到端的深度学习模型,为基于评论评分预测推荐系统提供了一个经典的基线模型.在DeepCoNN的基础上,D-attn, NARRE, CARL使用不同的注意力方式对DeepCoNN进行了改进,其中,D-attn使用基于单词级别的注意力机制,给每个用户和商品的评论文档中的单词进行权重评估,找到对特征建模更重要的单词,对比效果提升了1.70%.CARL模型在单词级别注意力机制的基础上再使用了一层卷积神经网络提取更高级的特征,对比DeepCoNN和D-attn效果分别提升了10.7%和8.68%.而NARRE另辟蹊径,提出了经典的评论有用性机制,引入了基于评论级别的注意力机制来衡量每条评论对用户建模的贡献,效果相较于DeepCoNN提升了8.44%,对比NARRE和CARL两个模型,NARRE使用了一层卷积神经网络和基于评论级别的注意力机制,CARL使用了两层卷积神经网络和基于单词级别注意力机制,对于特征提取的能力更强.通过对比实验也可以发现,CARL模型的效果普遍比NARRE模型更好.而我们的模型在基于评论级别的注意力机制上,提出了自适应感受野的卷积神经网络提取局部特征,并考虑到卷积神经网络在捕捉长距离依赖关系上的不足之处,补充了门控循环单元对全局特征进行提取,弥补了模型的不足之处,在不同数据集上对比效果最好的基线模型均有提升,其中提升最高为Musical Instruments数据集,效果对比基线模型提升了5.76%,效果提升最低的数据集为Office Products,提升了1.82%.

(2) 消融实验.为了验证本文模型中改进的各模块对实验的有效性,我们利用消融实验分别验证局部特征提取和全局特征提取的效果,具体如下.Local+Att:只采用局部特征提取模块,使用自适应感受野的卷积神经网络提取特征;Globa:只采用全局特征提取模块;我们在5个数据集上将消融实验与最终实验结果进行对比,结果如表4.

表4 消融实验结果

我们可以从表4看出,自适应感受野的卷积神经网络可以根据模型训练自适应的选择特征,对比只使用单一感受野的卷积核NARRE效果分别提升了7.12%,6.14%,1.64%,1.02%,4.13%,对局部特征建模有比较好的提升作用.消融实验Globa在没有局部特征提取模块时,模型效果与本文模型相比下降了2%,1.87%,0.6%,2.8%,1.62%,结合消融实验和本文实验结果说明,全局特征提取模块对本文模型的效果提升是有积极作用的,从而验证了本文模型的各个模块对模型效果提升均有积极作用.更直观的结果如图4所示.

图4 消融实验结果Fig.4 Results of ablation experiment

本文在现有模型的基础上提出了自适应感受野的卷积神经网络,结合局部和全局特征提取对评论文本特征进行了深度挖掘,结合现有模型使得模型效果得到进一步提升.在未来的工作中,我们不应该仅仅关注评分和评论信息,还应该关注用户的社会性和商品的周期性.针对多源数据来进行特征融合建模.此外,由于神经网络的不可解释性,对神经网络提取的特征存在更多疑虑.为了解决这个问题,可以对神经网络提取的特征进行可视化表达,使对影响每个用户产生购买行为的偏好特征具有可解释性.

猜你喜欢

特征提取局部卷积
基于全卷积神经网络的猪背膘厚快速准确测定
日常的神性:局部(随笔)
《瑞雪》(局部)
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
凡·高《夜晚露天咖啡座》局部[荷兰]
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案