融合信任关系与评论文本的矩阵分解推荐算法

2021-03-13 06:00李昆仑翟利娜赵佳耀王萌萌
小型微型计算机系统 2021年2期
关键词:矩阵维度信任

李昆仑,翟利娜,赵佳耀,王萌萌

(河北大学 电子信息工程学院,河北 保定 071000)

1 引 言

随着互联网上信息的爆炸式增长,用户面临着严重的信息过载问题,推荐系统可以帮助用户过滤掉一些冗余信息,使用户能在众多信息中快速的找到自己满意的内容.推荐系统是网络应用的一个重要组成部分,被广泛的应用在电子商务中.当前主流的推荐系统模型大多基于协同过滤算法,该方法根据用户历史行为相似性对目标用户进行推荐,主要分为两种类型:基于记忆的算法和基于模型的算法[1,2].其中,矩阵分解模型(Matrix Factorization,MF)因其卓越的表现引起了人们的关注,成为协同过滤中的经典算法之一[3].电子商务的崛起使得用户和项目的数量急剧增长,但是用户评分数据稀疏性却制约了矩阵分解模型的推荐效果[4].

融合用户信任可以改善推荐算法中评分数据稀疏性问题.Guibing G等人同时将评分信息以及主动用户的显示信任影响和被信任用户的隐式影响融合在矩阵分解中完成推荐[5].Deng S等人考虑社区效应对信任感知社交建议初始化,同时用深度学习模型学习用户及其信任朋友的兴趣,然后将信任关系融合到矩阵分解中[6].Yin S等人根据用户的浏览记录、标签等信息,建立用户的兴趣特征向量,改进信任度和相似性测度[7].但是,仍然存在社交网络中直接信任矩阵稀疏的问题.

近年来,深度学习十分火热.深度学习因其可以更好的捕捉深层次的特征而被广泛的应用于处理评论文本以缓解推荐系统评分数据稀疏性问题.Kim D等人提出的ConvMF方法用卷积神经网络(Convolutional Neural Network,CNN)对文档上下文信息进行处理,获取其中的局部上下文信息,将卷积神经网络集成在概率矩阵分解模型中[8].Zheng L等人提出的DeepCoNN方法以双CNN结构分别对用户的评论集与商品的评论集进行特征提取,改善了推荐质量[9].Tabrizi N等人用潜在的狄利克雷分配删除评论中与产品类别设定的特性词汇表不相关的术语,然后用卷积神经网络对评论文本进行特征提取,评估用户的相似性[10].但是,仍然存在没有联系上下文充分挖掘有效评论文本信息的问题.

针对推荐系统中用户评分数据稀疏所导致推荐结果不精确的问题,本文尝试将用户评分、信任关系和项目评论文本信息融合在概率矩阵分解方法中以缓解评分数据稀疏性问题.该算法主要利用改进的信任传播模型得到用户间的潜在特征;然后通过BERT模型提取项目的评论文本,构造项目的评论文本潜在特征;最后在应用概率矩阵分解模型的同时利用用户之间的信任信息和项目的评论文本信息完成推荐.

2 相关工作

2.1 概率矩阵分解

基于模型的协同过滤方法主要以矩阵分解算法、聚类算法以及回归算法等方法对历史数据训练并建模,用模型预测未知评分[11].其中,概率矩阵分解算法(Probabilistic Matrix Factorization,PMF)是基于模型的协同过滤方法中最有效的算法之一,该方法以分解后的用户特征矩阵U和物品特征矩阵V的内积表示用户-评分矩阵.假设m个用户对n个项目的评分矩阵用R∈Rm×n表示,其元素Rij表示用户i对项目j的评分.则真实评分值Rij服从均值为UiTVj,方差为σR2的高斯分布,如公式(1)所示:

(1)

其中,N(x|μ,σ2)表示均值为μ,方差为σ2的高斯分布函数;g(x)=1/(1+e-x)为logistic函数,将UiTVj的值映射到[0,1]上;Iij是指示函数,若用户i对项目j有评分,则Iij=1,否则为0.

其中,用户与项目的特征矩阵均服从高斯先验分布:

(2)

(3)

由贝叶斯定理,推得特征矩阵的后验分布:

(4)

2.2 BERT预训练模型

2018年,Jacob Devlin等人针对自然语言处理(NLP)中无法联系上下文预测当前词和句的问题率先提出了BERT(Pre-training of Deep Bidirectional Transformers for Language Understanding)预训练模型[12].其结构如图1所示.

BERT模型的最大特点采用双向的Transformer编码器.图1中E1,E2,…,EN表示文本的输入,中间经过双向Transformer编码器,T1,T2,…,TN为输出的文本向量化表示,它可以接多种下游任务.BERT模型训练过程中包含两个任务“Masked Language Model, MLM”和“Next Sentence Prediction”.MLM是指在训练模型时随机遮避输入文本语句的一些词,然后通过当前词的上下文联系去预测这个词,Next Sentence Prediction是指对句子是否是上下连续的两句进行预测.已有的模型,如ConvMF、DeepCoNN在生成模型时都没有联系当前词的上下文信息,word2vec或glove预训练词向量时会对词汇表的每个词汇生成一个“单词嵌入”表示[13],造成bank在bank card和river bank中是不同的意思却有相同的表达.BERT模型则根据句子中其它词汇来生成每个单词的表示.因此,本文尝试将BERT模型与基于概率矩阵分解的协同过滤方法结合,用BERT模型提取评论文本的特征向量以改善推荐系统的质量.

图1 BERT模型结构图Fig.1 BERT model structure diagram

3 融合信任关系与评论文本的矩阵分解模型

传统的协同过滤推荐方法存在用户评分数据稀疏性问题.因此,引入辅助信息来改善推荐算法的性能.构建信任模型时,充分考虑项目流行度、公共好友数目等影响因子对用户偏好相似程度的影响,且考虑用户间所有信任传播路径构建信任模型;然后用BERT模型提取项目的评论文本的特征向量构建评论文本模型;最后基于PMF模型融合用户信任关系与项目评论文本信息.

3.1 构建信任模型

社交网络可以表示为图G=(U,T),U为用户集,T为用户间的信任关系,图G中的链接关系表示用户之间的信任关系,有链接时,表示两用户间的信任值为1.定义两个用户之间的信任路径p,用户间的路径数目定义为d(p),当d(p)=1时,称这两个用户为直接信任关系,当d(p)>1时,称这两个用户为间接信任关系.为降低复杂度,信任路径最大值设为3.

如图2所示为一个简单的用户间接信任网络.用户u与v之间有两条信任路径,分别是p1:u→a→v,p2:u→c→e→v,路径长度分别为d(p1)=2,d(p2)=3.用户u与a间的信任关系Tua为直接信任.

图2 简单的用户间接信任网络图Fig.2 Simple user indirect trust network diagram

Hassan H等人在考虑信任传播时仅考虑最短信任路径,且认为计算间接信任值时两个用户的共同评价项目越多,他们的信任越可靠[14],而忽略了不同路径对用户信任的影响,因此,本文在其基础上做出了改进,充分考虑用户间所有路径的影响,改进信任度量方法,如式(5)所示,这样使得间接信任测度更加准确可信.

(5)

其中,Tuv是用户u与v之间的信任度,puv是用户u与v之间信任路径小于4的所有路径,而pl是用户u与v所有信任路径中的一条.Im与In分别是用户m与用户n的评价项目.Tmn是信任路径上用户间的直接信任.

传统的推荐算法以皮尔逊相似度(PCC,Pearson correlation coefficient)衡量用户u与v之间的用户偏好相似程度并将其作为用户的直接信任值,如式(6)所示:

(6)

社交网络的信任关系一般为二元的,即有信任关系的用户间信任值均为1,从而忽略了信任用户的不同偏好导致推荐结果不精确[15].共同好友数目及项目流行度是影响用户偏好相似程度即用户直接信任的影响因子.首先,共同好友数目越多,说明用户的兴趣爱好越相似.用PCC衡量用户的直接信任往往会得到相等的信任值,却不代表两组用户间的直接信任值完全一样,假设用户u与v以及用户u与l间的信任值均为0.85,但是用户u与v有10个共同好友,而u与l只有2个共同好友,那么用户u与v之间的共同好友数目较多,他们间的信任值更可靠.其次,项目的流行度影响着用户偏好相似程度且成反比.因此,本文对 PCC用户偏好相似程度做出改进,如式(8)所示:

(7)

(8)

其中,式(7)为权重,com(u,v)是用户u与v间的共同好友数目,Iuv是用户u与v的共同评分项,Ni是项目i的评分次数.式(7)的前一部分用来衡量共同好友数目对用户偏好相似程度的影响,共同好友越多,这两个用户的偏好相似程度越大,信任越可靠,反之亦然;后一部分用来衡量项目流行度对用户偏好相似程度的影响.评价次数越多,这个项目越流行,偏好相似程度越低,信任值就越小,反之亦然.

用式(8)计算用户间的直接信任度,并在此基础上用公式(5)确定用户间的信任值.m个用户的信任矩阵用T∈Tm×m表示,其元素Tik表示用户i与k的信任值,假定信任值Tik服从均值为UiTZk,方差为σT2的高斯分布,如式(9)所示:

(9)

(10)

由贝叶斯定理,推得用户特征矩阵U与信任特征矩阵Z的后验分布,如式(11)所示:

(11)

3.2 构建评论文本信息模型

为了对评论文本建模,需要对项目的评论文本信息进行特征提取.而BERT模型可以根据当前词的左右两侧信息预测当前词.因此,本文采用BERT模型提取评论文本特征.由于BERT模型是一种通用的预训练模型,只需将目标数据集的数据对模型进一步预训练,故将项目的评论文本作为BERT模型的输入,经过双向的Transformer编码器会输出评论文本的特征向量.假定某项目i的评论集表示为{R1i,R2i,…,Rmi},其中m是模型输入的最大用户数,通过BERT模型处理后,每条评论映射为s维的表达,得到BERT模型的输出表达{H1i,H2i,…,Hmi},由于每个项目会有多条评论,所以本文以BERT模型输出向量的均值作为项目i的评论特征向量.由此,n个项目的m个s维评论特征向量就构成了评论特征向量矩阵Hn×s.为使BERT模型输出列表长度为m,需将小于m个用户评论的项目评论集逐一经过BERT模型映射,然后填充若干条s维的零向量,而大于m个用户评论的项目仅需将该项目的前m条评论通过BERT模型映射.

将项目的评论文本矩阵HHn×s类比评分矩阵分解模型分解为物品特征矩阵V与评论特征矩阵C,他们之间的内积即为未分解前的评论文本矩阵.项目评论文本矩阵元素用Hjp表示,Hjp服从均值为VjTCp,方差为σH2的高斯分布,如式(12)所示.

(12)

评论文本矩阵与评分矩阵共享项目矩阵,评论特征矩阵C服从均值为0,方差为σC2的高斯分布:

(13)

由贝叶斯定理,可以推得项目特征矩阵与评论特征矩阵的后验分布:

(14)

3.3 融合信任与评论内容的模型

本文提出的模型将评分矩阵、改进的信任矩阵和项目的评论文本矩阵融合在一起.融合式(4)、式(11)和式(14)可以得到本文算法的整体后验分布,如式(15)所示:

在特征分类方面,本文选用了高斯混合模型(GMM)对训练样本进行训练,并划分样本空间,完成分类器的设计。其实现过程如图3所示。

(15)

对上式取对数,得目标函数:

(16)

其中,λU=σR2/σU2,λV=σR2/σV2,λT=σR2/σT2,λZ=σR2/σZ2,λC=σR2/σC2,假定λU=λV,本文以梯度下降法更新U、V、Z、C以获得E的极小值.

(17)

(18)

(19)

(20)

其中,g′(x)为logistic函数的导数.本文算法的步骤如表1所示.

表1 本文算法步骤Table 1 Algorithm steps in this paper

3.4 时间复杂度分析

计算用户、项目、评论、信任特征矩阵的偏导数所需的时间复杂度为:

由此可见,本文算法的时间复杂度与用户数m、项目数n、特征向量维度d正相关.

4 实验结果与分析

4.1 数据集

本文选用公开且真实的Yelp(1)https://www.yelp.com数据集,Yelp数据集是一个包含用户信息(用户id、属性等)、用户社交信息(朋友关系、关注等)、兴趣点信息(签到次数、经纬度等)、评分、用户分享的图像以及用户发表的评论等综合性的数据集.由于原始数据集过于庞大,所以本文对该数据集进行了预处理,预处理后的数据集包含16478个用户,34932个项目,1014146条评分,19453个朋友关系,13796条评论.

4.2 评价指标

本文以平均绝对误差(Mean Absolute Error,MAE)和均方根误差(Root Mean Squared Error,RMSE)为评价指标,RMSE反映真实评分与预测评分之间的误差,MAE反映预测值误差的实际情况.当这两个值越小时,推荐结果越准确.

4.3 对比实验和参数的设置

为衡量本文算法的性能,采用3个推荐算法作为对照算法,如下:

TrustPMF:基于概率矩阵分解的扩展模型,不仅考虑评分信息,还以信任传播关系对局部和全局信任建模,然后融合相似度与信任度,最后将用户信任融入到基础模型中[16].

ConvMF:基于概率矩阵分解的扩展模型,不仅考虑评分信息,还用卷积神经网络(CNN)抽取项目文档特征,将CNN与概率矩阵分解融合完成推荐.

IeMF:基于概率矩阵分解的改进模型,以潜在的Dirichlet探索用户兴趣的分布,然后将其融合到概率矩阵分解模型中[17].

SimTrustMF:基于概率矩阵分解的扩展模型,不仅考虑评分信息,还根据信任用户的影响力重新构建信任网络,然后以相似度与信任度改进用户特征向量,从而得到融合信任关系的矩阵分解算法[18].

经过不断的实验验证,本文算法参数的设定:λU=λV=0.001,λT=0.1,λH=0.05.

4.4 实验结果

本文在不同的向量特征维度下进行了实验,但是对比算法均在向量特征维度5与10下做出实验,故为保持和对比算法的一致性,本文在实验中同样选取向量特征维度为5和10,同时实验结果表明在两种特征维度下各算法得到的推荐效果较好.

实验 1.本文算法参数λT、λH的选取

参数λT、λH的不同取值影响着推荐算法的性能.实验结果如图3、图4所示.针对本文算法选用Yelp数据集,抽取80%作训练集,在向量特征维度为5与10下,以评价指标RMSE为例讨论λT、λH的取值对本文算法性能的影响.

图3 λT对RMSE的影响Fig.3 Effect of λT on RMSE

图4 λH对RMSE的影响Fig.4 Effect of λH on RMSE

参数λT控制着引入用户间的信任关系在推荐过程中所占的比重,在两种特征维度下,RMSE的值均是先减小,到达阈值0.1后开始增大,反映了λT的取值对推荐结果有影响且当λT=0.1时,推荐结果最佳.

λH控制着引入评论文本信息在推荐过程中所占的比重,根据图4可以发现,在两种特征维度下,λH均先急速降低,达到阈值0.05时值最低,超过阈值后RMSE值开始增大,反映了λH的取值对推荐结果有影响且当λH=0.1时,推荐结果最佳.

实验 2.不同特征维度下的对比实验

特征维度是影响推荐算法的一个重要因素,因此,本文在向量特征维度为0、5、10、15、20下对各个算法进行实验对比,如图5、图6所示.

图5、图6显示了不同特征维度下MAE与RMSE值的变化.可以看出,特征维度对不同算法的影响不同.但是各算法的MAE与RMSE值从维度为0到5时均下降,到达某一阈值后开始上升.其原因是:相对较大的特征维度能更好的描述用户项目间的隐特性,但维数过高时有过拟合的风险.以本文方法为例,评价指标MAE与RMSE在特征维度为5时值最小,之后随着向量特征维度的增大而增大,推荐算法性能退化.结果表明,本文算法的MAE和 RMSE均比相同维度下对照算法的值低,证明了本文提出算法的有效性.

图5 不同特征维度下的MAE值Fig.5 MAE values in different feature dimensions

图6 不同特征维度下的RMSE值Fig.6 RMSE values in different feature dimensions

实验 3.不同训练集比例下的对比实验

为考察本文算法在不同稀疏程度训练集下的推荐性能,与TrustPMF、ConvMF、IeMF、SimTrustMF等算法分别在不同的训练集比例下进行比较,即将原始数据集以不同的训练集比例(10%、20%、30%、40%、50%、 60%、70%、80%)进行划分,并且在特征维度为5与10时进行对比实验,结果如图7所示.

图7 各算法的MAE与RMSE值Fig.7 Evaluation index values of each algorithm

可以看出,在两种向量特征维度下,随训练集比例的增大,各算法的MAE与RMSE值均降低,但是本文算法在相同的训练集比例下优于对比算法.其原因是:TrustPMF算法和SimTrustMF算法融合了用户信任和评分信息,在一定程度上提高了推荐效果.IeMF算法在考虑评分信息的基础上融合了用户的兴趣提高了推荐精度.ConvMF算法在利用评分信息的同时以深度模型CNN挖掘评论文本信息改善了推荐结果.但是,这几个模型单一的运用用户信任关系与评论文本信息而没能融合更多信息以改善推荐结果.而本文提出的算法考虑了用户信任关系的同时结合了项目的评论文本信息有效的缓解了评分数据稀疏性问题,故在不同的训练集比例下本文算法的推荐性能均优于对比算法.

5 结 论

针对推荐系统中用户评分数据稀疏所导致推荐结果不精确的问题,本文尝试将用户评分、信任关系和项目评论文本信息融合在概率矩阵分解方法中以缓解评分数据稀疏性问题.该算法改进信任度量公式,以共同好友数目和项目流行度加权的皮尔逊用户偏好相似程度度量用户的直接信任,同时改进用户间接信任度量方式.然后用BERT模型抽取评论文本特征向量,有效的缓解了评分数据稀疏性问题.通过在真实的数据集上实验,并与已有的推荐系统中的3个算法进行实验对比,本文方法的推荐精度有明显的提高.但是还未考虑矩阵分解推荐过程中评分数据、用户信任、评论文本之间的关联关系和更多辅助信息.下一步工作将考虑3者之间的关系以及融合更多的辅助信息,如时间、用户位置,进一步的提高推荐的精度.

猜你喜欢
矩阵维度信任
理解“第三次理论飞跃”的三个维度
认识党性的五个重要维度
浅论诗中“史”识的四个维度
多项式理论在矩阵求逆中的应用
嘤嘤嘤,人与人的信任在哪里……
矩阵
矩阵
矩阵
信任
人生三维度