APP下载

融合信任隐含相似度与评分相似度的社会化推荐

2022-12-18周寅莹章梦怡余敦辉

计算机应用 2022年12期
关键词:社会化信任社交

周寅莹,章梦怡,余敦辉,2,朱 明*

(1.湖北大学 计算机与信息工程学院,武汉 430062;2.湖北省教育信息化工程技术研究中心(湖北大学),武汉 430062)

0 引言

随着互联网与信息技术的高速发展以及移动终端设备的广泛使用,信息过载问题日趋严重。如何从爆炸式增长的数据中,有效筛选对用户有用的信息,满足用户的个性化需求,成为当下研究的重点与难点。推荐系统的出现,凭借其优秀的数据挖掘能力,有效解决了信息过载问题[1],并被广泛应用于电商、社交媒体等领域。

然而,传统的推荐系统只依赖评分数据,存在数据稀疏和冷启动问题[2]。为了缓解这些问题,社会化推荐通常将社交网络数据和评分数据结合起来,以提高预测结果的准确性。事实表明,比起缺乏说服力的广告推荐,用户更倾向于相信与自身关系密切的社交群体[3]。因此,与传统推荐算法相比,融合了社交信息的社会化推荐能够有效改善用户冷启动问题,并显著提高推荐的准确性和可解释性。

社会化推荐的核心理念就是充分结合用户评分和信任数据来分析用户(项目)间的潜在关系,但现有方法对社交信息的利用过于简单,很难得到理想的推荐效果;因此,本文提出一种融合信任隐含相似度与评分相似度的社会化推荐算法(Social recommendation algorithm combing Trust implicit similarity and Score similarity,SocialTS),借助信任关系矫正用户、项目间的关联关系,借助近邻用户、项目约束矩阵分解(Matrix Factorization,MF),从而学习到用户更准确的特征表示,提高推荐的准确度。

1 相关工作

社会化推荐,又称社交推荐,旨在利用社交网络中的信任关系来辅助评分数据更好地完成推荐任务[4-5]。现有的许多研究均倾向于将信任关系纳入MF 模型,从而得到改进的社会化推荐模型[6-7]。根据信任关系与MF 模型结合机制的不同,可将社会化推荐分为三大类[8]:

1)基于正则化约束的社会化推荐[9-14]。这类方法将社会关系以正则项的形式结合到用户潜在特征矩阵的学习当中,通常认为用户与其社交朋友具有相似的特征偏好。比如,Jamali 等[9]提出的SocialMF(Social Matrix Factorization)算法,认为目标用户的特征完全由其信任邻居共同决定;然而,相互信任的用户未必具有相似的行为习惯和兴趣偏好,需要联合评分 数据进 行分析,Ma 等[10]提出了SocialReg(Social Regularization)算法,不再强制要求用户与其朋友的偏好一致,而是使用评分相似度衡量用户与其信任人的关系;潘一腾等[11]以SocialMF 为基础,从信任与被信任两个角度对用户信任关系进行建模,并综合用户评分偏好和信任隐含相似度计算得到最终的信任矩阵,但该方法对信任关系的利用仅限于参与模型训练的用户,损失了较多的边缘信息。

文献[12-14]中均通过网络嵌入技术来分析用户(项目)的相似关系。Zhang 等[12]针对用户显式社交信息存在数据稀疏和可靠性低等问题,提出了基于用户隐式社交网络嵌入的社会化推荐CUNE(Collaborative User Network Embedding)算法;但该算法仅依据用户的反馈信息构建社交网络,未考虑用户间的信任关系,导致无法解决冷启动问题。Xu 等[13]综合考虑了用户与项目,但在构建同构网络时仅考虑共同打高分的评分记录,并且未将信任关系融入项目的相似度计算中。张青博等[14]联合评分与信任关系构建异构网络,但最终只利用了相似用户正则化约束模型。

网络嵌入技术的首要任务在于交互网络的构建。交互网络虽然能够直观展现用户、项目间的交互关系,利于信息的传递,但同样会损失部分重要信息,导致无法根据评分差异准确区分积极对象与消极对象。因此本文选用传统的相似度计算方法来衡量用户(项目)间的相关性。

2)基于特征矩阵共享的社会化推荐[15-18]。这类方法同时对评分矩阵和信任矩阵进行分解,旨在得到兼顾用户评分偏好与社交特征的向量表示。比如,Ma 等[15]提出的SoRec(Social Recommendation)算法,以共享特征向量的形式利用社交信息;但在对社交信息进行融合时,忽略了用户间信任关系的传递。随后,Guo 等[16]通过分析用户间的信任数据得出结论,影响用户对物品评分的因素,除用户的显式评分数据之外,还包括用户自身的隐式行为数据与信任关系,于是在SVD++(Singular Value Decomposition++)模型的基础上引入了社交信息,提出TrustSVD(Trust-based Singular Value Decomposition)算法。Xiong 等[17]在TrustSVD 的基础上,从信息传播的角度衡量用户对项目的隐式行为。郎亚坤等[18]认为简单的二值信任数据并不足以反映用户间影响力的大小,于是在TrustSVD 的基础上,利用评分相似度作为隐式信任度,克服了二值信任关系的过于粗糙的弊端;但仅从用户自身入手,对解决用户的冷启动问题是远远不够的。

3)基于信任集成的社会化推荐[19-21]。这类方法利用目标用户与信任朋友的评分组合来预测评分矩阵中的缺失值。比如:Ma 等[19]首次依据信任权重将信任用户的评分结合到目标用户的评分预测上,提出RSTE(Recommend with Social Trust Ensemble)算法。Shi 等[20]依据评分矩阵和信任矩阵构建异构网络,通过提取特定的元路径分析用户(项目)间的相似关系,并将学习到的同类型嵌入向量进行融合,集成到评分预测函数中;但该方法同样难以准确区分积极用户与消极用户。田保军等[21]则分别从全局与局部的角度出发,计算用户间的信任值,并与评分相似度进行融合,来衡量信任用户对目标用户评分的影响;但信任用户未必就是积极用户,不应该过度依赖信任关系。

通过对上述主流推荐算法的研究与认识,发现现有的社会化推荐算法普遍存在两个问题:一是关注重点大都聚焦于用户,忽略了物品间关联关系对推荐精度的影响,并且信任关系多体现在用户间的相关性分析上,未能融入项目间的相关性分析;二是过度依赖信任关系,简单认为信任用户对目标用户的影响都是积极的,未能将用户评分与信任数据进行有效结合,进而打破显示信任朋友的局限,得到更可靠的相似朋友。

融合信任隐含相似度与评分相似度的社会化推荐算法(SocialTS)通过改进的余弦公式计算用户间的评分相似度,进而有效区分积极用户与消极用户;又利用用户间的信任隐含相似度对相似关系进行修正,得到用户更为可靠的相似朋友。为了进一步改善冷启动问题,SocialTS 还考虑了项目间相似关系对推荐效果的影响,并将信任关系融入项目的相似度计算中,认为被相互信任的用户购买过的项目也具有较高的相似性,以最大匹配用户组集的形式对信任关系进行适当利用。最后通过近邻用户、项目约束矩阵分解,不仅保证了相似用户(项目)间具有相似的特征向量,还获取了用户(项目)更为准确的行为偏好,得到更精确的预测结果。

本文主要工作有:

1)给出一种联合评分与信任数据来计算用户(项目)间相似度的方法。对于用户,将评分相似度与信任隐含相似度进行线性组合;对于项目,首次将信任关系融入项目的相似度计算中,在公共评分用户的基础上通过最大匹配策略适当补充信任用户间的交互,使得信任数据与评分数据得到有效结合。

2)提出一种融合用户、项目相似约束的MF 模型,既保证了相似用户或项目具有相似的潜在特征向量,又提升了评分预测的准确度,从而获得更为理想的推荐效果。

3)在两个真实数据集FilmTrust 和CiaoDVD 上的实验结果表明,与现有的主流社会化推荐算法TrustSVD 相比,SocialTS 具有更好的准确性和鲁棒性,两个数据集上的均方根误差(Root Mean Square Error,RMSE)分别降低了4.23%和8.38%,平均绝对误差(Mean Absolute Error,MAE)分别降低了4.66%和6.88%。

2 本文算法

在社会化推荐系统中,假设存在m个用户U={u1,u2,…,um}和n个项目I={i1,i2,…,in}。用户u对项目i的评分rui组成评分矩阵R∈Rm×n,用户u对用户v的信任关系tuv组成信任矩阵T∈Rm×m。若用户u信任用户v,则tuv=1;否则tuv=0。为了能够获取用户、项目间可靠的相似关系并计算出用户复杂的行为偏好,本文提出一种融合信任隐含相似度与评分相似度的社会化推荐算法。该算法整体框架如图1 所示。

图1 本文算法整体框架Fig.1 Overall framework of the proposed algorithm

2.1 融合信任关系与评分差异的相似度计算

2.1.1 用户间相似度的计算

已有的相关工作[22-24]表明,用户的历史评分记录和用户间的信任关系都能在一定程度上反映用户间的相似强度。然而,这些工作大多仅从单一角度出发,并未综合考虑两者对用户间相似程度的影响,或者仅通过简单的相似度计算来衡量用户间的相关性。为了更加准确地评估用户间的相似程度,本文提出了一种综合考虑信任隐含相似度和评分相似度的相似度计算方法。

首先,计算用户u和v之间的信任隐含相似度STrustuv。陈婷等[3]认为用户间的局部信任可通过用户间的最短距离来计算,但忽略了用户间的信任关系并不会无限制传递,即在一定传播范围内,用户间的信任度会随距离的增加而减小,但超过一定范围,用户间将不存在信任关系,这一点在现实生活中也可以得到验证。因此,本文给定一个阈值θ来限制信任的传递:

其中:θ表示信任的传递范围(本文取θ=5);Dis(u,v)表示用户u和用户v之间的最短距离,可通过迪杰斯特拉(Dijkstra)算法进行计算。本文通过社交网络中的节点距离来计算用户间的信任隐含相似度,能够最大限度覆盖系统中的每一个用户,而不是仅关注参与评分的用户[11]。

接着,计算用户u和v之间的评分相似度。常见的相似度计算方法主要有杰卡德(Jaccard)相似度、余弦相似度、皮尔逊相关系数和修正的余弦相似度。其中,余弦相似度侧重于从方向上进行区分,对绝对的数值并不敏感,因此需要额外考虑用户间的评分差异对相似度的影响。首先计算用户u和用户v在公共评分项目集Iuv上的评分绝对差异:

得到用户间的评分绝对差异后,评分差异因子diffuv的计算公式为:

将评分差异因子与余弦相似度结合,可以得到用户间的评分相似度为:

其中,权重α∈(0,1),大小在实验中确定,α越大,则表明信任关系在社会化推荐中的重要性越大。

2.1.2 项目间相似度的计算

在真实的互联网应用场景下,用户数往往远大于项目数,并且当用户行为过于稀疏时,即便存在用户间的信任关系,也很难找到可靠的相似用户;因此从项目间的相似度入手,也是改善冷启动的一种有效途径[25-27]。然而现有的大多数工作均偏向于用户间相关性的挖掘[9-14],极少数考虑了项目间的相关性,但也只是做了简单的处理[13,28],比如吴宾等[28]在计算项目间相似度时,仅考虑公共评分用户,而未考虑信任用户带来的影响。

在社会化推荐中,项目间的相关性主要来自两个方面:1)若用户u同时评价了项目i和项目j,则项目i与项目j之间存在相关性;2)若用户u评价了项目i,用户v评价了项目j,因为用户u和用户v相互信任,则项目i与项目j之间同样存在相关性。因此,本文定义项目i和项目j的公共评分用户组集为,由信任关系产生的用户组集为:

由于用户间的信任关系存在一对多或多对多的情况,为了避免信任关系的滥用,本文规定在计算过程中每个用户仅被考虑一次,最后得到项目i和j间的最大匹配用户组集为:

图2 最大用户组匹配Fig.2 Maximum user group matching

最后,将最大匹配用户组集G(i,j)与组间的评分差异diffG结合到Jaccard 相似度计算公式中,得到融合用户信任与评分差异的综合相似度

其中:|Ui|和|Uj|分别表示项目i和项目j的评分用户数;|G(i,j)|表示项目i和j的最大匹配用户组数;diffG表示用户组间的评分差异,可通过式(2)(3)计算得到。

2.2 融合相似约束的模型优化

MF 旨在将原本高维且稀疏的评分矩阵R分解为低维且稠密的用户特征矩阵P∈Rm×k和项目特征矩阵Q∈Rn×k,使得于是用户u对项目i的预测评分可以表示为:

其中:pu表示用户u的潜在特征向量,qi表示项目i的潜在特征向量。矩阵分解的最终目标是要使得预测值尽可能接近于真实值,所以定义损失函数为:

其中:λ为正则化参数,‖· ‖2表示正则化项。考虑用户和项目的偏置后,预测评分公式和损失函数可更新为:

其中:μ表示全局均值,bu表示用户u的偏置,bi表示项目i的偏置。

相似的用户或项目往往具有更接近的特征偏好,因此,假设用户u的TopK相似用户集为Nu,项目i的TopK相似项目集为Ni,在保证评分预测准确度的同时,利用相似用户、项目间的约束关系来优化损失函数:

本文采用随机梯度下降(Stochastic Gradient Descent,SGD)法对损失函数进行求解,pu、qi、bu和bi的一阶求导公式如下所示:

2.3 算法总体描述

SocialTS 算法使用SGD 求解矩阵分解模型的参数,具体描述如下:

算法1 SocialTS 算法。

3 实验与结果分析

3.1 数据集

为了验证算法的有效性,本文选择两个独立的数据集FilmTrust[29]和CiaoDVD[30]进行算法验证,两个数据集均含有用户的评分和信任数据,详细信息见表1。

表1 实验数据集统计信息Tab.1 Experimental datasets statistics

3.2 评价指标

为了准确评估各算法的准确性和鲁棒性,减少偶然因素带来的影响,本文选用5 折交叉验证,并取5 次实验结果的平均值作为最终的实验结果。实验选用两个具有代表性的精度指标RMSE 和MAE 来对各算法进行评估。RMSE 和MAE的计算方式见式(19)(20):

其中:RTest表示测试集,|RTest|表示测试集中的用户-项目评分记录数。实验中,RMSE 和MAE 的值越小,表示预测结果与真实结果越接近,算法的推荐准确性也就越高。

3.3 对比算法

对比实验采用的算法如下:

1)SoRec[15]。在共享用户特征向量的前提下,使用概率矩阵分解(Probabilistic Matrix Factorization,PMF)模型同时对评分矩阵和信任矩阵进行分解。

2)RSTE[19]。将评分矩阵和信任矩阵分解后得到的模型进行线性组合。

3)SocialMF[9]。使用正则化项约束MF 模型,使用户的特征向量与其社交朋友的特征向量相似。

4)SocialReg[10]。认为目标用户与其信任人具有相似的特征向量,但每个信任人对用户的影响力取决于他们的皮尔逊评分相似度。

5)TrustSVD[16]。在SVD++的基础上,增加了用户间显式信任对评分预测的影响。

6)CUNE[12]。依据评分矩阵构建用户同构网络来分析用户间的相关性,并利用相似用户正则化来约束MF 模型。

3.4 实验结果分析

3.4.1 参数确定

为了分析SocialTS 算法的参数对预测准确度的影响,本文以数据集FilmTrust 为例,设定权重α的取值为0.1,0.2,0.3,0.4,0.5,0.6;近邻数量TopK的取值为10,20,30,40,50;潜在特征维度k的取值为5,10,…,75,80。分别记录各参数下的实验结果。

1)权重α的确定。

α控制着用户间信任隐含相似度与评分相似度线性组合的比重,α取值越大,则表示信任关系在社会化推荐中的重要性越大。图3 展示了α的变化对RMSE 和MAE 的影响,可以看到,随着α的不断增加,预测误差先下降后上升,说明将信任关系以一定的比重结合到推荐系统中,是可以提高推荐精度的,并且当α=0.4 时,推荐效果最佳。

图3 不同α下的实验结果Fig.3 Experimental results under different α values

2)近邻数量TopK的确定

TopK控制着矩阵分解过程中用户或项目的近邻数量。图4 显示了TopK的变化对RMSE 和MAE 的影响,可以看到,随着TopK的不断增加,预测误差先下降后上升,说明近邻数量的取值并非越大越好,超过了阈值30,用户或项目间的关联程度将会大幅度降低,从而干扰目标用户特征向量的学习。因此,当TopK=30 时,推荐效果最佳。

图4 不同TopK下的实验结果Fig.4 Experimental results under different TopK values

3)潜在特征维度k的确定

k控制着矩阵分解的潜在特征维度。图5 显示了k的变化对RMSE 和MAE 的影响,可以看到,随着k的不断增加,预测误差整体呈下降趋势,下降速度先快后慢,并逐渐趋于稳定;但k越大,对计算资源的消耗也越大,故当k=20 或k=30 时,整体推荐效果最佳。

图5 不同k下的实验结果Fig.5 Experimental results under different k values

3.4.2 不同算法实验结果对比

为保持与其他对比算法的一致性,得出更为可靠的实验结果,除学习率均为0.005,迭代次数均为100 外,其他参数均依据文献中给定的参数值进行设置。在SocialTS 算法中,取α=0.4,λ=0.1,β1=β2=0.001,TopK=30 来进行对比试验,实验效果最好。潜在特征维度k也会影响算法的推荐精度,但本文仅考虑在潜在特征维度k为5 和10 时验证各算法的性能。

表2 中展示了各算法在FilmTrust 和CiaoDVD 数据集上的实验结果,最后一行表示与TrustSVD 算法相比,SocialTS算法在RMSE 和MAE 上的误差降低百分比。通过对表2 中数据进行分析,可以得到以下结论:

表2 不同算法的实验结果对比Tab.2 Experimental results comparison of different algorithms

1)SocialMF、SocialReg 和CUNE 算法都是在分解评分矩阵的基础上增加了相似用户的正则化约束,因此整体表现比较接近。

2)在仅考虑用户间显式信任的算法中,TrustSVD 算法的准确度要高于SoRec、RSTE、SocialMF 和SocialReg 等社会化推荐算法,这是因为TrustSVD 算法额外考虑了用户间的显式信任对评分预测的影响,所以具有较高的推荐精度。

3)SoRec 和RSTE 算法在CiaoDVD 数据集上的效果并没有在FilmTrust 数据集上的效果好,因为SoRec 和RSTE 算法在训练模型参数时对用户间的信任关系依赖较大,而CiaoDVD 数据集上的社交关系较为复杂,存在的噪声也就更多,最终导致MF 学习到的用户特征向量存在偏差。

4)相较于其他算法,本文所提出的SocialTS 算法在准确度上得到了明显提升,主要是因为SocialTS 算法在考虑用户相关性的同时,还增加了对项目相关性的分析,从而获得了更准确的预测结果。

3.4.3 不同评分数量实验结果对比

为了验证各算法在不同用户评分数量下的鲁棒性,本文将训练集中的用户依据评分数量划分到[0,5]、[6,10]、[11,20]、[21,40]、[41,100]和[101,∞)这6 个组;由于5 折验证中的用户分布基本一致,因此仅取第1 折数据中的评分数量分布进行展示。图6 展示了两个数据集上每组用户所占的百分比,可以看到,在FilmTrust 数据集上,评分数量位于[21,40]的用户占大部分;在CiaoDVD 数据集上,评分数量少于6 个的用户占大部分。

图6 不同评分数量下的用户分布Fig.6 Distribution of users under different numbers of ratings

依据用户的评分数量对训练集中的用户进行划分后,分别统计两个数据集在6 组用户上的准确度表现,结果如图7所示。

图7 不同评分数量下的实验结果对比Fig.7 Comparison of experimental results under different numbers of ratings

从2 个数据集上的实验结果可以看出:

1)当用户评分数量小于10 时,各算法的推荐精度都比较低,这是因为仅有的评分数据不足以支撑模型学习到用户可靠的潜在特征向量。而SocialTS 算法的表现显著优于其他算法,是因为SocialTS 额外考虑了项目间的相关性对推荐精度的影响。

2)当用户评分数量大于100 时,各算法的推荐精度也会大幅下降,这是因为用户兴趣发散导致无法准确学习到用户可靠的潜在特征向量。因为SocialTS 算法能有效借助社交网络信息和项目间的相关性来修正预测结果,所以具有较好的推荐精度。

3)在不同用户评分数量下,SocialTS 算法的推荐精度始终优于其他对比算法,这说明SocialTS 算法对拥有不同评分数量的用户都具有较好的鲁棒性。

4 结语

为解决数据稀疏和冷启动问题给传统协同过滤推荐带来的困扰,本文提出了融合信任隐含相似度与评分相似度的社会化推荐算法(SocialTS)。SocialTS 利用用户间的信任关系来辅助评分数据更好地挖掘、矫正用户、项目间可靠的相似关系,进而通过近邻用户、项目约束矩阵分解,不仅保证了相似用户(项目)间具有相似的特征向量,还获取了用户(项目)更为准确的向量表示,提高了算法推荐的准确度。在FilmTrust 和CiaoDVD 两个数据上的实验结果表明,与已有的主流社会化推荐算法相比,SocialTS 具有更高的准确性和更好的鲁棒性。

在推荐系统中,从用户和项目两个角度出发对评分数据和信任关系进行综合考虑,有利于修正对象间的相似关系并获得更可靠的相似对象,进而显著提高算法的推荐效果。但是,传统的相似度计算存在一个缺点,那就是只能得到两个对象间的直接相关性。正如社交网络中用户间信任关系的传递,用户间的相似关系也同样具有传递性,即便两个用户没有直接交互,但他们却共同拥有一定数量的相似朋友,那么这两个用户之间无疑是存在一定的间接相关性的。因此,下一阶段将尝试从网络嵌入的角度出发分析用户(项目)间相关性,一方面增加对积极对象与消极对象的区分,构建具有正向相关性的交互网络;另一方面利用随机游走对相关性进行传递,最后通过网络嵌入技术更好地挖掘网络中结构信息,确保在提高推荐算法准确性的同时,增加算法的可解释性。

猜你喜欢

社会化信任社交
社交牛人症该怎么治
企业退休人员移交社会化管理的探讨
聪明人 往往很少社交
牵手校外,坚持少先队社会化
社交距离
行政权社会化之生成动因阐释
你回避社交,真不是因为内向
嘤嘤嘤,人与人的信任在哪里……
高校学生体育组织社会化及路径分析
信任