马 宁,付 伟,季伟东,丁云鸿,朱海龙,严武尉,李 超,杨 耀
(哈尔滨师范大学 计算机科学与信息工程学院,哈尔滨 150025)
推荐系统是解决信息过载问题的重要技术,已经成为数据挖掘领域的研究热点[1].基于矩阵分解的推荐方法是一种经典方法,通过分解评分矩阵获得用户和物品的潜在隐特征向量,然后根据两者的乘积预测用户对物品的偏好程度,实现评分矩阵的重构[2].评分数据的稀疏性问题严重制约了矩阵分解推荐方法的性能.为了解决数据稀疏问题,常用方法是向推荐模型中融入更多辅助信息来指导模型学习出更为合理的参数,进而提高模型的预测精度.评论文本是一种内容丰富的辅助信息,能够较为直观的刻画用户的偏好特征和物品的属性特征[3].Kim等人提出了ConvMF推荐模型,该模型利用CNN提取物品评论文本的深层隐表达[4].冯兴杰等人提出了DeepCLFM推荐模型,从用户评论和物品评论中提取深层非线性特征[5].Chen等人提出了NARRE推荐模型,利用深度神经网络提取评论文本的上下文特征[6].Wu等人提出了DRMF推荐模型,将深度神经网络融合到对偶正则化矩阵分解模型,同时从用户和物品的评论文本中获得相互独立的上下文特征[7].王海艳等人提出了DPMFM-CNN推荐模型,设计了基于CNN的文本表示方法获取服务潜在特征[8].Zheng等人提出了DeepCoNN推荐模型,设计了两个并行的CNN分别从用户和物品的评论文本中提取特征[9].虽然融入评论文本的推荐方法取得了令人瞩目的成果,但是仍存在一些局限性:1)此类方法通常假设用户是独立存在的,忽略了用户之间的社交关系.现实世界中用户的行为与喜好往往会受到其信任好友的影响[10,11];2)现有方法在提取文本特征时通常采用词袋模型(Bag of Words,BOW)或卷积神经网络模型(Convolutional Neural Networks,CNN).BOW无法有效保留词序信息,忽略了评论文本中语义的上下文关系.CNN采用局部卷积核提取特征,造成文本的长距离特征丢失[5];3)现有方法将每条评论文本对用户或物品特征建模的贡献视为同等重要,但在实际应用场景中每条评论文本的贡献度存在差异[6].为了解决上述局限性,本文提出了一种融合评论文本和社交网络的矩阵分解推荐方法RSPMF,将评论文本和社交网络两种辅助信息有机融合注入概率矩阵分解推荐模型,提升模型的推荐性能.本文的主要贡献可以总结为以下3点:
1.融合评论文本和社交网络提出了一种新颖的推荐方法RSPMF,该方法能够将评论文本的深度神经网络模型和社交网络的信任传播模型融合到评分矩阵的概率矩阵分解模型中,共同学习出用户和物品的潜在隐特征,提升模型的推荐效果.
2.设计了一种结合CNN、双向门控循环单元(Bidirectional Gated Recurrent Unit,Bi-GRU)和注意力机制的深度神经网络模型,用于提取评论文本的上下文特征.该模型能够较准确的理解评论文本中的语义及情感信息,有效刻画用户的偏好特征和物品的属性特征,提升模型的推荐效果.
3.在公开的真实数据集Yelp上进行对比实验,结果表明RSPMF不仅能利用评论文本和社交网络来缓解评分数据稀疏性的影响,而且预测结果的精度高于目前多个优秀的推荐方法.
表1 主要符号定义及其含义Table 1 Definition and meaning of main symbols
图1 RSPMF方法的总体框架Fig.1 Framework of RSPMF method
RSPMF方法的生成模型的概率图模型如图2所示,包括4个组成部分:中间点线框为概率矩阵分解模型(Probabilistic Matrix Factorization,PMF),本文以PMF为基础进行生成模型的构建.左右线框分别为用户和物品评论文本的深度神经网络模型(Deep Neural Networks,DNN),用于从评论文本集X和Y中学习上下文特征分布向量,并作为PMF模型中用户和物品隐特征元素生成的条件概率.上线框为信任传播模型(Trust Propagation,TP),利用信任矩阵对用户的隐特征向量进行修正.RSPMF通过概率矩阵分解方式利用评论文本集X和Y,以及信任矩阵T训练得到用户和物品的潜在隐特征模型U与V,通过U与V的乘积重构评分矩阵实现评分数据的预测.
图2 RSPMF方法的生成模型Fig.2 Model of RSPMF
(1)
(2)
(3)
(4)
虽然PMF模型可以利用式(4)分解已有评分数据R获得用户和物品的潜在隐特征并实现评分预测,但是在数据稀疏的情况下PMF模型的预测精度会严重下降.因此本文提出的RSPMF的生成模型在PMF的基础上,分别构建了评论文本的深度神经网络模型(DNN)和社交网络的信任传播模型(TP),融合辅助信息来提高模型的预测精度.
模型的作用是将评论文本表示为上下文特征,并将其作为RSPMF中隐特征元素生成的条件概率,其结构如图3所示,包括:Embedding层,CNN层,Bi-GRU层和输出层.由于用户和物品的评论文本集建模方式相同,因此本节只介绍用户评论文本建模的方法,物品评论文本建模同理.
图3 评论文本的深度神经网络模型Fig.3 Deep neural networks model of review text
3.2.1 Embedding层
(5)
3.2.2 CNN层
(6)
(7)
池化层采用最大池化与全连接方式将NC组卷积映射属性生成定长的局部文本特征:
(8)
3.2.3 Bi-GRU层
Bi-GRU层的作用是从局部文本特征中获取初始的上下文特征.由于CNN层仅采用局部卷积窗提取文本特征,易造成长距离特征的丢失,忽略了各条评论之间的内在联系,无法有效提取评论文本的上下文特征.因此,本文将局部文本特征(c1,c2,…,ct,…,cω)作为序列数据,文本集的第t条评论作为序列中的第t时刻数据,设计了Bi-GRU模型,结合前向隐藏层和后向隐藏层实现了评论文本的初始上下文特征提取.GRU单元在t时刻更新过程如式(9)-式(12)所示:
rt=sigmoid(Wrct+Mrht-1+br)
(9)
zt=sigmoid(Wzct+Mzht-1+bz)
(10)
(11)
(12)
(13)
(14)
(15)
式中,⊕表示拼接操作.对于ω条评论文本的局部文本特征(c1,c2,…,ct,…,cω),经过Bi-GRU层的处理可以获得由ω条评论隐藏状态向量组成的矩阵Hui作为初始上下文特征:
Hui=[H1,H2,…,Ht,…,Hω]
(16)
至此,Bi-GRU层实现了评论文本的初始上下文特征提取.用户ui的评论文本集Xi被表示为初始上下文特征向量Hui,作为输出层的输入数据.
3.2.4 输出层
输出层的任务是利用注意力机制识别各初始上下文特征的重要度,以重要度权值为系数融合特征,并将融合后的特征映射为k维空间上下文特征.首先,为了区分每条评论文本对用户特征建模的贡献度差异,设计了Attention隐藏层采用注意力机制对初始上下文特征Hui进行融合.注意力机制是一种资源分配机制,对于重要的内容分配较多的注意力.注意力权值向量α∈R1×ω计算如下:
(17)
式中,WA∈R1×g,WB∈Rg×2NG为权重矩阵,g是可设置为任意维度的超参数,softmax(x)函数用于将注意力权值进行归一化处理.利用注意力权值向量α与初始上下文特征Hui中的各隐藏状态向量进行加权求和,可以得到评论集Xi的整体特征表达ai∈R1×2NG:
ai=αHui
(18)
为了防止模型过拟合,在Attention层后添加Dropout层,令di∈Rkd×1为Dropout层的输出向量:
(19)
式中,Wdrop∈Rkd×2NG为权重矩阵,bdrop∈Rkd×1为偏置,kd为Dropout后的特征向量维度,rdrop∈R2NG×1为Dropout丢弃控制向量,其元素服从伯努利分布.最后,将融合的特征映射到PMF模型的k维空间得到上下文特征向量θi∈Rk×1,映射过程如下:
θi=tanh(Wθdi+bθ)
(20)
式中,Wθ∈Rk×kd为权重矩阵,bθ∈Rk×1为偏置向量.
(21)
通过式(21)可以看出,用户隐特征U的生成与参数集W1和评论集X有关,因此可以将评论文本的深度神经网络模型融合到PMF模型中.在评分数据稀疏的情况下,通过充分挖掘评论文本来提高用户隐特征向量的预测精度.
在社交网络中,由于用户ui的隐特征通常会受到其信任好友uj∈Γ(ui)的影响,因此来自信任好友的推荐更容易被用户接受[12].信任传播模型的作用是利用ui信任好友的隐特征Uj来修正ui的隐特征Ui,以此提高Ui的预测精度.信任好友uj对ui隐特征的影响作用可表示为:
(22)
(23)
(24)
通过式(24)可知,Ui的生成与信任矩阵T和好友的特征向量Uj有关,因此可以将信任传播模型融合到PMF模型中.在评分数据稀疏的情况下,通过挖掘信任好友对用户ui特征的影响来提高Ui的预测精度.
本文提出的RSPMF方法的生成模型以PMF模型为基础,融合3.2节的深度神经网络模型和3.3节的信任传播模型,综合利用评分矩阵,评论文本和社交网络实现推荐.根据贝叶斯推断可知,已知评分矩阵R,全体用户和物品的评论文本集X,Y,以及用户信任矩阵T的条件下,用户和物品的隐特征模型U,V,用户和物品评论文本的深度神经网络参数集W1和W2的联合后验概率分布可以表示为:
(25)
通过对式(25)取负对数可以获得RSPMF的最终目标损失函数:
(26)
(27)
(28)
式中,g′(x)为Logistic函数的导数.利用式(27)与式(28)同时更新用户和物品的隐特征向量,计算更新后的目标损失函数直到函数收敛.不同于更新用户和物品的隐特征向量U和V,W1和W2是与评论文本的深度神经网络模型中每一层密切相关的参数(包括各层的权重和偏置),因此W1和W2无法采用梯度下降法优化.当U和V是暂时恒定时,目标损失函数L可以被看作W1和W2的带有如下L2正则化项的平方误差损失函数:
(29)
(30)
本文采用反向传播算法训练模型参数W1和W2.深度神经网络模型的训练过程分为两个阶段,第1个阶段是数据由低层次向高层次传播的前向传播阶段.第2个阶段是当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传播训练的反向传播阶段.训练过程为:
Step1.随机初始化网络权值;
Step2.利用Embedding层将文本数据转化为词向量,经过CNN层,Bi-GRU层和输出层的向前传播得到输出值;
Step3.利用公式(29)或公式(30)计算网络的输出值与目标值之间的误差;
Step4.将误差传回网络中,依次求得输出层,Bi-GRU层,CNN层和Embedding层的误差;
Step5.根据求得误差进行权值更新.如果达到收敛条件则结束训练,否则返回Step 2.
完整的L(U,V,W1,W2)中模型参数的学习过程如算法1所示.重复整个优化过程,交替更新U,V,W1和W2直到收敛.
算法1.RSPMF算法
输入:用户-物品评分矩阵R,用户和物品的评论文本集X,Y,用户信任矩阵T,正则化系数λU、λV、λT,最大迭代次数Itermax
输出:用户和物品的隐特征模型U,V,深度神经网络模型参数集W1和W2
BEGIN
1.随机初始化U,V,W1和W2;
2.WHILEIter≤ItermaxDo:
3.FOReach useruiDo:
4. Getθifrom user DNN model;
5. UpdateUiaccording to Eq.(27);
6.ENDFOR
7.FOReach itemvjDo:
8. Getφjfrom item DNN model;
9. UpdateVjaccording to Eq.(28);
10.ENDFOR
11.UpdateW1according to Eq.(29);
12.UpdateW2according to Eq.(30);
13. Compute Loss according to Eq.(26);
14.Iter←Iter+1;
15.ENDWHILE
16.ReturnU,V,W1,W2;
END
为了验证本文提出的RSPMF方法的有效性,本节将其与现有优秀的推荐方法在真实公开的数据集Yelp上进行对比实验,实验还对模型中所涉及的参数进行验证实验.
本文采用Yelp数据集作为实验数据,以用户评论数大于3和5为过滤条件将其划分为2个不同稀疏度的数据集,稀疏度的定义如式(31)所示,式中rn为评分矩阵中已被评分的元素数,m和n分别为用户数和物品数.稀疏度越高,表明评分数据越少,算法在进行物品推荐时难度越大;反之,稀疏度越低,表明评分数据越多,算法在进行物品推荐时难度越小.从这2个数据集中各随机选取10000名用户作为2组实验数据,如表2所示,2组实验数据均非常稀疏.由于发表评论数目越多的用户,也表明其购买了更多的物品,给出了更多的物品评分,因此评论数大于5的数据集稀疏度低于评论数大于3的数据集稀疏度.将每组数据集随机划分为训练集(80%),验证集(10%),测试集(10%),在验证集上进行超参数选取,使用测试集进行性能评估.采用均方根误差RMSE(Root Mean Squared Error)和平均绝对误差MAE(Mean Absolute Error)作为算法性能的评价指标.
表2 实验数据集Table 2 Experimental data set
sparsity=1-rn/(m×n)
(31)
本文的实验环境是CPU为Intel酷睿i7 9750H处理器,GPU为Nvidia GTX1650独立显卡.实验细节如下:
参数设置:针对2组数据集Yelp3和Yelp5均采用相同的参数设置.设置潜在隐特征模型U与V的特征维度k=50,正则化参数λU=100,λV=100,λT=10,梯度下降算法的学习率为0.01,最大迭代次数为200.
实验数据预处理:1)设置每条评论文本的最大文档长度为300;2)计算各单词的tf-idf值;3)去除停顿词(tf-idf值大于0.5);4)选取剩余词汇中tf-idf值取值前8000个单词作为词汇表;5)设置评论文本集包含20条评论文本,对于少于20条评论的文本集,采用填充零向量的方式使得其长度达到20条评论,对于评论数大于20条的文本集,选取单词数最多的前20条评论作为文本集.
评论文本的深度神经网络训练:1)Embedding层设置词向量维度为200,采用GloVe模型的预训练结果作为词向量的初始化输入;2)CNN层设置3组不同宽度的卷积窗口,宽度分别为3,4和5,每组卷积窗口的个数设置为50;3)Bi-GRU层中的GRU隐藏单元数为200;4)输出层中Dropout比率经多次实验调试后设置为0.5.
4.3.1 算法性能对比实验
为了对比评估本文提出的RSPMF方法的评分预测性能,选取了9种现已公开发表的较为先进的推荐算法与本文RSPMF方法进行对比实验,将评分预测结果与本文方法进行对比.其中PMF[2]为传统概率矩阵分解方法,ConvMF[4],DeepCoNN[9]和NARRE[6]为融合评论文本的推荐方法,SoRec[13],SocialMF[14],TrustMF[15]和TrustSVD[16]为融合社交网络的推荐方法,SRCMF[3]为融合评论与社交网络的方法.表3展示了各种算法的实验对比结果.分析实验结果我们有如下结论:
1)仅依赖用户评分的概率矩阵分解算法PMF在2组数据集的RMSE和MAE均高于其他算法,这表明充分利用评论文本信息或社交关系信息可以有效提升推荐算法的精度.
2)观察4种社会化推荐算法:SoRec,SocialMF,TrustMF和TrustSVD,在2组数据集的RMSE和MAE都低于PMF算法,这表明社交网络中信任关系可以作为评分数据的有效补充,融合二者可以提高用户隐特征的表达质量.相对于4种社会化推荐算法中精度最高的TrustSVD算法,本文的RSPMF方法在2组数据集的RMSE分别降低3.5%和4.6%,MAE分别降低3.5%和4.5%,这表明同时融入社交网络信息和评论文本信息可以进一步提升推荐算法的精度.
3)观察3种融入评论文本的推荐算法:ConvMF,DeepCoNN和NARRE,ConvMF算法的推荐精度最低,这是由于该算法仅提取了物品评论文本中的局部上下文特征用于推荐,而其他两种算法均从用户评论文本和物品评论文本两个方面进行上下文特征的提取.NARRE在2组数据集的RMSE和MAE均低于DeepCoNN,这表明引入注意力机制来识别具有更高贡献度的评论文本有助于提升推荐算法的精度.相对于3种融入评论文本的推荐算法中精度最高的NARRE,本文RSPMF方法在2组数据集的RMSE分别降低0.7%和2.0%,MAE分别降低0.6%和1.8%,这表明同时融入评论文本和社交网络作为辅助信息可以进一步提升推荐算法的精度.
4)SRCMF算法与本文提出的RSPMF方法都融合了评论文本和社交网络信息进行推荐评分预测,因此推荐精度优于其他算法,这表明融合评论文本和社交网络作为辅助信息获得的推荐效果要胜于单独使用其中一种辅助信息.从表3的最后两行数据的比较可以看出,本文RSPMF方法比SRCMF获得的推荐精度略有提高,在2组数据集的RMSE分别降低0.4%和1.4%,MAE分别降低0.1%和0.8%.这是由于SRCMF方法是采用CNN网络来提取用户与物品评论文本的上下文特征,CNN仅采用局部卷积核进行文本特征提取,因此会丢失文本的长距离上下文特征.此外,SRCMF方法将每条评论对用户或物品建模的贡献度视为同等重要,但在实际场景中每条评论的贡献度是存在差异的.本文的RSPMF方法结合CNN、Bi-GRU和注意力机制设计了深度神经网络模型用于提取用户与物品评论文本的上下文特征,克服了局部卷积核的局限性,且可以对每条文本的贡献度进行了差异化处理,因此获得更高的推荐精度.
表3 实验结果比较Table 3 Comparison of experimental results
4.3.2 参数的影响实验
对比模型中参数λU、λV和λT分别在RMSE和MAE度量下不同取值的推荐效果.3个参数的取值范围均为{0.01,0.1,1,10,100,1000}.
1)社交网络中的信任关系对推荐结果的影响
为了评估社交网络中的信任关系对推荐结果的影响,我们对λT的取值进行动态调节,统计本文RSPMF方法在λT不同取值时的推荐精度.参数λT的本质是用于调节社交网络信息融入推荐模型的比例,当λT的取值为0时,RSPMF方法仅利用评论文本建模用户的隐特征,当λT的取值为∞时,RSPMF方法仅利用社交网络建模用户的隐特征.首先固定参数λU和λV的取值,然后调节λT的取值并统计算法在2组数据集的RMSE和MAE,图4展示了λT的变化对模型的影响.
图4 正则化参数λT对算法精度的影响Fig.4 Influence of regularization parameters λT
从图4的对比结果可以看出,社交网络中的信任关系在2组数据集中均对推荐结果产生了影响.初始条件下,算法的评分预测误差随着λT的增加而降低,当λT的取值为10时预测误差达到最低,然后算法的评分预测误差随着λT的增加而增加.这个实验结果说明融合社交网络信息和评论文本信息获得的推荐效果优于单独依靠社交网络信息或评论文本信息获得的推荐效果.
2)评论文本对推荐结果的影响
首先我们评估了物品的评论文本对推荐结果的影响.实验通过对λV的取值进行动态调节,统计本文RSPMF方法在λV不同取值时的推荐精度.参数λV的本质是用于调节物品的评论文本信息融入推荐模型的比例,当λV的取值为0时,RSPMF方法仅利用社交网络信息和用户评论文本信息建立推荐模型,当λV的取值为∞时,RSPMF方法仅利用物品评论文本信息建立推荐模型.固定正则化参数λU和λT的取值后,通过调节λV的取值计算RSPMF方法在2组数据集的RMSE和MAE,实验结果如图5所示.
图5 正则化参数λV对算法精度的影响Fig.5 Influence of regularization parameters λV
从图5的对比结果可以明显看出,物品的评论文本在2组数据集中均对推荐结果产生了影响.初始条件下,算法的评分预测误差随着λV的增加而降低,当λV的取值为100时预测误差达到最低,然后算法的评分预测误差随着λV的增加而增加.这个实验结果说明融合物品的评论文本信息可以提高模型的预测精度.
然后我们评估了用户的评论文本对推荐结果的影响.实验通过对λU的取值进行动态调节,统计本文RSPMF方法在λU不同取值时的推荐精度.参数λU的本质是用于调节用户的评论文本信息融入推荐模型的比例,当λU的取值为0时,RSPMF方法仅利用社交网络信息和物品评论文本信息建立推荐模型,当λU的取值为∞时,RSPMF方法仅利用用户评论文本信息建立推荐模型.固定正则化参数λV和λT的取值后,通过调节λU的取值计算RSPMF方法在2组数据集的RMSE和MAE,实验结果如图6所示.
图6 正则化参数λU对算法精度的影响Fig.6 Influence of regularization parameters λU
从图6的对比结果可以明显看出,用户的评论文本在2组数据集中均对推荐结果产生了影响.初始条件下,算法的评分预测误差随着λU的增加而降低,当λU的取值为100时预测误差达到最低,然后算法的评分预测误差随着λU的增加而增加.这个实验结果说明融合用户的评论文本信息可以提高模型的预测精度.
本文基于评论文本、社交网络和评分矩阵,提出了能够预测用户评分的RSPMF推荐方法.该方法能够将评论文本的深度神经网络模型和社交网络的信任传播模型融合到评分矩阵的概率矩阵分解模型中,共同学习出用户和物品的潜在隐特征.各种对比实验表明本文方法能进一步降低预测评分的误差,解决推荐系统中的数据稀疏性问题.对今后的工作有如下两个方向有待探索:1)本文提出的RSPMF方法主要关注用户的显式评分数据而忽略了用户的隐式反馈,隐式反馈数据同样可以表征用户偏好特征且易于获取,因此融入用户隐式反馈数据的推荐方法是我们待探索的一个方向;2)在RSPMF方法中,我们仅关注了评论文本和社交网络作为辅助数据,忽略了推荐系统中现已存在的其他辅助数据,因此融合更多类型辅助数据分析用户偏好特征也是我们的一个关注方向.