周 双,宾 晟,孙更新
(青岛大学数据科学与软件工程学院,山东 青岛 266071)
随着互联网上的信息呈指数型增长,推荐系统等信息过滤技术成为研究人员们的研究热点。推荐系统就是根据用户的兴趣偏好、需求信息、行为信息等,将用户可能感兴趣而又没有获取过的物品或信息推荐给用户[1-3]。相关的推荐技术在信息检索、机器学习和数据挖掘等研究领域得到了广泛的研究。由于它巨大的商业价值,推荐系统也已成功应用于多个行业,如淘宝的商品推荐,网易云的音乐推荐,Netflix的电影推荐等。
协同过滤推荐[4-6]是目前应用比较广泛的一种推荐方法,基于矩阵分解的协同过滤算法因其在Netflix Prize比赛上表现优异而受到学术界的广泛关注。传统的矩阵分解推荐方法是将用户商品评分矩阵分解成两个低维的用户矩阵和商品矩阵,并通过用户、商品向量间的内积来反映用户商品之间的关联性。
尽管推荐系统已在一些商业领域被广泛应用,但传统的推荐系统往往忽略了用户之间的社交关系。而在现实世界中,人们的喜好很容易受到其信任的朋友的影响。因此,纯粹挖掘用户项目评分矩阵的传统推荐系统不能为用户提供准确的推荐。因此,社会化推荐系统引起了更为广泛的关注[7-8]。
Li[9]等人将用户的传播和奇异值分解结合到推荐算法中,显著地提高了推荐的质量。Deng[10]等人通过将社交网络和用户—商品二部图融合为耦合网络,并在此基础上提出了一种基于物质扩散动力过程的推荐算法,该算法将社交网络的朋友信息和用户选择商品的信息进行融合。郭兰杰[11]等人利用朋友信息填充评分矩阵的信息,提出了融合社交网络信息的协同过滤推荐算法。胡惠成[12]等人提出一种融合隐式信任关系的推荐算法,通过融合皮尔逊相关系数和信任因子,计算用户间的隐式信任关系,然后将隐式信任数据融入矩阵分解模型进行评分预测。上述研究都在一定程度上提高了推荐结果的准确度,但是大多数方法都只是基于某一种社交关系,用户间存在多种社交关系,多种关系之间存在着一致性或者排斥性。单纯只引入某一种社交关系,一定会对推荐准确率有影响。因此,本文通过分解用户商品评分矩阵,并对得到的用户特征矩阵进行重组,引入用户间的多种一致性的关系,提出了一种融合用户间多种关系的矩阵分解社会化推荐算法。
对于m个用户和n个商品,假设用户对商品的评分矩阵为Rm×n=[Ri,j]m×n,如图1所示,其中元素Rij表示用户ui对商品vj的评分。Rij∈[1,5],评分值为空表示用户没有对该商品打分。通常Rm×n中有许多元素为空,所以用户商品评分矩阵是一个稀疏矩阵。
只通过分析用户商品评分矩阵来对用户进行推荐,数据源单一,容易导致推荐结果不准确。在现实世界中,用户的喜好很容易受到其信任的朋友的影响。如果一个用户对某一个商品的评分比较高,那么信任他的用户购买这个商品的可能性会比较大。因而,引入用户之间的社交关系,可以提高推荐的准确率。
社交网络中,用户间的社交关系可以矩阵S表示:S=[Si,j]m×m,Si,j的值为0或1,0表示用户之间没有社交关系,1表示用户之间有社交关系,如图2所示。
图1 用户商品评分矩阵Fig.1 The score matrix of user-object
图2 用户社交关系矩阵Fig.2 The matrix of user′s social relationship
为了方便研究,通过使用函数f(x)=1/Rmax把用户对商品的评分映射到区间[0,1],其中,Rmax是用户对商品的最大评分。传统的基于矩阵分解模型的协同过滤方法利用简单的线性模型R=UTI近似拟合评分矩阵,容易造成预测评分过分偏离真实评分,使预测失真[14]。本文通过引用非线性logistic函数g(x)=1/(1+e-x),把预测的用户对商品的评分映射在区间[0,1]内。因此,可观测评分的条件概率分布可定义为
(1)
(2)
(3)
经过贝叶斯推理,可以得到U与V的联合后验概率分布:
(4)
图3 推荐算法模型图Fig.3 Illustration of the recommendation algorithm
传统的概率矩阵分解算法(Probabilistic Matrix Factorization,PMF)只是依据用户对商品的评分信息进行推荐,并没有考虑用户间的关系对推荐的影响,因此,本文提出一种基于多关系的矩阵分解算法(Probabilistic Matrix Factorization based on Multiple Social Relationship,PMFS)。本文采用矩阵特征重表示的方法,通过用户的社交关系修正用户特征向量,从而在矩阵分解过程中引入社交关系。如图1所示,用户u1没有对v1进行评分,但是u1的朋友u2和u4对v1的评分为4和5,受朋友关系的影响,u1购买v1的可能性也很大。假设用户之间只存在一种社交关系,根据用户的社交关系矩阵,可观测评分的条件概率分布可定义为
(5)
(6)
假设S与低维矩阵U和V无关,则式(6)可以改为
(7)
预测用户对某一商品的评分不仅需要用户对商品的历史评分数据,还要考虑用户社交关系对推荐结果的影响,综合这两项因素,可观测评分的条件概率分布可定义为
(8)
其中α为可调节参数,α∈[0,1],用于调节用户历史评分数据和社交关系对推荐结果的影响比重。PMFS1算法推荐模型如图3c所示。α=1,则融合一种用户关系的矩阵分解算法(PMFS1)退化为传统的矩阵分解算法(PMF)。当α=0时,用户评分矩阵所占比重为0。此时,PMFS算法退化为基于信任的推荐算法(Trust-aware Recommendation, TR),该算法只考虑了用户之间的关系,并没有考虑用户的历史评分信息对推荐的影响,TR算法的推荐模型图如图3b。
对U、V的后验分布取对数可得:
(9)
其中,C是一个不依赖于超参数的常数。
最大化的后验分布函数等价于最小化的目标函数:
(10)
(11)
采用梯度下降算法对目标函数进行求解:
(12)
(13)
为了评估本文所提的算法性能,本文采用了推荐系统常用的两个数据集:Epinions和FilmTrust。Epinions数据是从评价网站Epinions上获取的。Epinions提供了各种用户对商品的评分信息,同时,用户能够添加他的朋友用户来构建社交网络。FilmTrust数据集是从FilmTrust网站上爬取出来的数据。FilmTrust是一个电影推荐网站,用户根据自己的喜好对电影打分,同时构建信任关系。Epinions数据集由40 163用户组成,他们总共给139 738个不同的项目打分,总评分为664 823。Epinions同时也包含了487 182条信任关系。FilmTrust数据集由1 050用户、2 071个不同的项目以及用户给35 497个不同的项目的评分组成,FilmTrust也包含了1 853条信任关系。
采用五折交叉验证来对推荐模型进行训练与测试。把数据集中用户对商品的评分数据平均分成5等份,在每次实验中,随机选取1组作为测试集,其余4组作为训练集。5次实验确保每一组都被测试,最终实验结果为5次实验结果的平均值。
为了衡量推荐结果的准确度,本文采用了两种评价指标:平均绝对误差(Mean Absolute Error, MAE)和均方根误差[16](Root Mean Squared Error, RMSE)。这两种评价指标均是通过计算预测评分与真实评分之间的误差来衡量推荐算法的准确度,他们的值越小,推荐准确度越高。
假设rij是用户i对商品j的真实评分,r′ij是用户i对商品j的预测评分,EP表示测试集,那么MAE、RMSE的定义分别为
(14)
(15)
依据文献中参数的设定规则,所有算法中用户特征个数k=5,迭代次数为1 000次,λU=λV=0.001。参数α用于调节用户评分矩阵和社交关系矩阵的比重,参数β用于调节不同的用户关系所占的比重,α、β不同,推荐的结果也是不一样的。采用仿真实验的方法确定α和β的取值。当β=1时,即只引入一种社交关系时,当α取不同的值,平均排序分MAE的值分别在Epinions和FilmTrust数据集上的变化如图4所示。
图4 参数α的影响Fig.4 The influence of α
由图4可知,在Epinions数据集中,当α=0.4时,MAE的值最小,即PMFS1算法在α=0.4时,推荐准确率最高。同理,在FilmTrust数据集中,PMFS1算法在α=0.7时,推荐准确率最高。
用Ou、Ov分别表示用户u和v评价过的商品集,用户u和v评分的相同商品越多,那么表明他们可能有相同的兴趣并且彼此互相影响,具体定义为
(16)
当fuv>0.2,则代表用户u和v兴趣相似,设满足这个条件的用户之间的关系为r2关系。继续加载r2关系,当α、β取不同的值时,平均排序分MAE值分别在Epinions和FilmTrust数据集上的变化如图5所示。
图5 参数α、β的影响Fig.5 The influence of α and β
由图5可知,在Epinions数据集中,当α=0.4,β=0.6时,MAE的值最小,即PMFS2算法在α=0.4,β=0.6时,推荐准确率最高。同理可知,在FilmTrust数据集中,PMFS2算法在α=0.7,β=0.5时,推荐准确率最高。
为了验证本文所提的算法的性能以及多种社交关系对推荐的影响,分别在Epinions和FilmTrust数据集上采用基于信任的推荐算法(TR)、传统矩阵分解算法(PMF)以及SoReg算法(该算法使用了用户的社交关系信息,并提出了一种具有社会正则化的矩阵分解框架[17])进行比较。不同算法的实验结果如表1所示。
表1 不同算法实验结果
由表1可知,在Epinions和FilmTrust数据集中,TR算法的MAE值和RMSE值最高,这表明TR算法推荐准确率最低。由此可见,单纯的依据用户间关系进行推荐是不准确的。PMFS2算法的MAE值和RMSE值最低,引入两种一致性的社交关系的PMFS2算法比传统的矩阵分解算法和只引入一种用户间关系的PMFS1算法准确率要高。这表明引入用户间的多种一致性的关系可以有效地提高推荐的准确率,并且用户之间的一致性关系越多,推荐准确率越高。
本文分解用户商品评分矩阵,通过多子网复合复杂网络,对用户特征矩阵进行重组,将用户间的多种一致性的社交关系引入用户特征矩阵。通过在真实数据集上的实验证明了本文所提的基于多关系的矩阵分解算法有效提高了推荐的准确率。这说明引入用户间的多种一致性关系可以更好地为用户做个性化推荐,且引入的用户间关系越多,推荐效果越好。在今后的研究中,需要挖掘用户间的间接社交关系,并进一步探讨这些社交关系对推荐结果的影响。