1. 引言
近年来,尽管推荐算法 [1] [2] 在很多方面都取得了成功,但冷启动和数据稀疏问题仍然是影响算法性能的重要因素。为了解决这些问题,许多学者开始研究社会化推荐方法 [3] [4],根据用户间的社交关系构建社交网络,并结合用户兴趣偏好进行推荐。但传统的社会化推荐只考虑了社交朋友关系,停留在一种粗糙层次水平上。社交朋友关系通常不能表示用户兴趣相似性,需要对用户相似性进行深层次的分析。影响用户兴趣相似性因素有很多种,例如社交网络子图拓扑结构、用户交互信息和用户评分信息等。
为解决上述存在的问题,本文提出了一种融合社交网络用户相似度的社会化算法SRSUS (Social Recommendation with Social network User Similarity),即融合用户的评分信息和用户间社交网络信息,对传统的矩阵分解技术进行优化。首先使用图卷积神经网络学习得到具有用户社交关系和兴趣特征的用户节点在低维向量空间的潜在特征,然后利用社会信任网络、用户评分矩阵和用户潜在特征来计算用户间相似度,最后将相似用户的信息融入矩阵分解模型中,以预测用户对项目的评分。在Epinions、Filmtrust和Ciao三个公开数据集上实验分析表明:本文算法的推荐性能要优于以往基于社交网络的推荐模型,有效缓解了数据稀疏性对推荐结果的影响。
2. 相关工作
随着社交网络的快速发展,基于社交网络的推荐算法已然成为了推荐领域中一个有前景的研究热点。基于矩阵分解的推荐算法因其不受数据稀疏的影响、灵活性高且推荐性能好等特点,成为许多研究者在其基础上融入社交信息的推荐模型的重要原因。Yang等人 [5] 提出了TrustMF模型,该算法同时考虑用户信任和被信任信息,从这两方面进行建模学习得到两个不同的特征向量。SoRec算法 [6] 提出了一种基于概率矩阵分解的因子分析方法,通过同时使用用户的社交网络信息和评分记录来解决数据稀疏和预测准确性差的问题。随后Ma等人又提出了RSTE算法 [7],该算法假设用个人偏好和好友影响来共同决定目标用户的评分。SoReg算法 [8] 在SoRec算法的基础上进行改进提出了一种具有社交正则化的矩阵分解框架。Zhang等人 [9] 以社交网络为辅助信息,提出了一种基于社交推荐算法的矩阵分解算法,系统地说明了如何利用社交规则化设计矩阵分解目标函数。吴清春等人 [10] 构建了加权社会信任网络,使用用户评分信息和社会信任关系两部分信息来计算用户间相似度。
上述提到的基于社交网络的推荐模型已被证明能够有效的提升传统推荐模型的性能,但仍然存在着一些缺陷。近年来,深度学习技术在推荐系统中取得巨大成功 [11]。Kipf等人 [12] 提出的图卷积神经网络(Graph Convolutional Neural Networks, GCN)因其理论上的优雅性和相对较高的性能而备受关注。Van den Berg等人 [13] 提出了GraphSAGE模型,该模型通过学习节点邻居的特性来生成嵌入。Leskovec等人 [14] 将卷积神经网络应用到推荐系统中提出一种图卷积网络模型PinSage,该模型对商品节点生成包含图结构和节点特征信息的节点嵌入表示。He等人 [15] 提出了LightGCN模型,通过在用户–项目交互图上线性传播用户和项目嵌入来学习用户和项目嵌入,并将在所有层上学习到的嵌入的加权总和用作最终嵌入。上述研究表明图卷积神经网络能够很好的建模图的结构属性和节点的特征信息,然后融入推荐算法中以提升推荐效率。相比于传统的方法,图卷积神经网络之所以能够在推荐任务上引起研究人员的关注就是因为其能够更好的利用推荐系统中用户和商品的属性信息。
3. 社交网络用户相似度计算
3.1. 社交网络用户潜在特征计算
在现实中,每个用户不仅会受到自己朋友的影响,还会受到朋友的朋友的影响。因此,我们需要挖掘这种社交网络的隐性关系信息 [16]。图卷积神经网络是一种可以处理图数据的模型,例如社交网络、通信网络、知识图谱、蛋白分子网络等。在图卷积神经网络中,每个节点通过聚合邻居的信息来更新其自身的嵌入表示,同样地,邻居的信息又来自各自邻居的邻居。使用图卷积可以把节点在图中的高维信息降维到低维的向量表示,且保持在图中原有的结构。模型传播过程如图1所示。模型的输入包括:1) 用户节点的特征向量表示X,本文采用用户的历史行为信息作为用户的特征向量输入,可用一个
的矩阵表示,n为用户数、m为项目数,若用户u对项目i进行了评分则视为1,否则为0;2) 矩阵形式的社交网络图结构,一般用邻接矩阵A表示。输出是包含用户潜在特征和图结构信息的节点向量表示。
Figure 1. Graph convolutional neural network propagation process
图1. 图卷积神经网络传播过程
隐藏层中每一层都会使用(1)式的传播规则将信息聚合起来,从而形成下一层的特征:
(1)
其中
是激活函数,
是具有自连接的邻接矩阵,
是单位矩阵。
是
的对角节点度矩阵,
是对
进行对称归一化,防止发生梯度消失或爆炸。
是第l层的输出,
为用户特征矩阵。
是第l层的权重矩阵,模型训练前随机初始化参数,随着训练不断更新。
经过(1)式训练得到一个
的用户特征矩阵,每一行向量代表的就是每一个用户,因此可以采用余弦相似性函数计算用户
和
的相似度,如(2)式所示:
(2)
、
为用户
、
的第d维向量值。
3.2. 社交网络用户信任度计算
随着社交网络的不断发展,研究人员开始将用户间的社交关系融入到推荐算法中以提高推荐的准确率 [17]。在现有的一些社交网络数据集中,数据大部分都为二值型数据,即用户间若有社交关系则为1,否则为0。但是这种二值型数据无法充分描述用户间的信任程度,从而导致融入了社交关系的推荐算法准确度上升的空间有限。本文通过用户间的社交关系构建一个社交网络,然后使用用户–项目评分矩阵的信息来计算用户间的信任度。
在关系图
中,U为用户的集合,E为边的集合,W为边的权重。若用户u和用户v具有社交关系,则节点u与节点v间可以连成边
。同时,若用户u和用户v对同一个项目进行了评分,则其边
的权重
就增加1,遍历完其他所有的项目求出最后的边权重
。根据此网络图,直接信任度
可由公式(3)获得:
(3)
其中
为用户u到用户v的边权重,
为用户u和用户v共同评分项目的并集。例如用户A和用户B对同样的10个项目进行了评分且他们评分的项目并集数为100,那么用户A和用户B之间的直接信任度为
。
假设用户u和用户v之间存在至少一条路径,那么路径的集合可以表示为
,则每条路径为
。每条路径信任值随路径长度d的增加而减少,且
。计算方式如公式(4)所示:
(4)
最终得到的用户u和用户v之间的信任度通过式(5)取平均值的方式计算得出:
(5)
其中n表示用户u可以到达用户v的路径总数。
3.3. 用户评分相似度计算
用户的行为数据可以反映出用户的兴趣偏好,即从物品方面来对用户进行归类。基于用户的协同过滤算法正是利用了这一点。根据用户对物品的历史行为信息即评分数据来计算用户间相似度,然后将最相似用户的偏好物品作为推荐。用户对物品的行为数据可以有很多种类,本文使用最常见的评分信息作为用户向量化表示的依据。
假设推荐系统中包含m个用户
和n个物品
,那么用户对物品的评分信息可以表示为一个
的矩阵
:
那么我们可以将用户
表示为一个n维的向量,其在每一维上的值为对应用户对物品的评分值:
。我们采用余弦相似度公式得到用户评分相似度,公式如下式(6):
(6)
该式的计算结果越大,说明用户
和用户
的相似度越大,当这个值为1时,我们认为这两个用户是相同的;当这个值为0时,代表这两个用户完全不同。特别地,当用户u未对物品i进行评分时,认为其
的值为0。
4. 社会化推荐算法SRSUS
4.1. 算法原理
在现实生活中,总会存在相似的人或物,即“物以类聚,人以群分”。由于一些传统的社交推荐模型只对用户的直接邻居计算相似度来改进评分预测,且忽略了用户间存在的信任关系,因此考虑利用用户间的社交关系、信任关系和评分相似性即用户的兴趣偏好来计算用户间的相似度并融入矩阵分解方法中,提出了一个全新的推荐模型,其最小化目标函数为:
(7)
上述目标函数的第一项是矩阵分解模型,其中
表示用户i对项目j是否有评分,若有评分则为1,
为真实评分,
为预测评分;第二和第三项是用户和项目特征向量的正则化项以防止过拟合的产生;第四项表示相似用户之间的特征也应该相似,即使得相似度大的用户之间的特征向量相似性尽可能大。其中
表示用户
相似的k个近邻用户集合,用户间的相似度
定义如下(8)式所示:
(8)
其中融合因子
为控制用户相似度的权重参数,且
。
本文通过梯度下降法最小化目标函数(7)式可以计算出用户和项目的特征矩阵,令
,
和
的求解如下式(9) (10):
(9)
(10)
4.2. 算法步骤
5. 实验结果与分析
5.1. 数据集
本文主要使用FilmTrust、Ciao和Epinions三个数据集进行实验,它们都包含有用户评分和用户社交关系信息。FilmTrust是一个电影资源网站,用户可以对各类电影进行评分,也可以和其他用户构建信任关系;Ciao和Epinions都是关于用户对物品进行打分和评论的网站,同时还可以添加对其他用户的信任。数据集的基本信息如下表1所示。
Table 1. Dataset information statistics
表1. 数据集信息统计
5.2. 评价指标
为了验证推荐算法的性能,本文采用两种常用的评价指标:平均绝对误差(MAE)和均方根误差(RSME),其公式如(9) (10)所示。
(11)
(12)
其中,N表示待测评分集合,
表示用户
对项目
的真实评分,
表示预测的评分。它们的值越小,推荐的精度越高。
5.3. 实验结果与分析
在本文提出的模型中,参数
会对推荐结果产生不同的影响。
用来控制社交网络相似度的比重;
用来控制社交信任度的比重;
用来控制用户评分相似度的比重。因此,我们研究这些参数对FilmTrust、Ciao、Epinions数据集上SRSUS模型性能的影响。
Figure 2. RMSE and MAE values in different parameter
图2. 参数
对RMSE、MAE值的影响
图2显示了
对我们模型中RMSE和MAE的影响。图2中,
为0时表示用户相似度仅考虑社交信任度和用户评分相似度,
为1时表示用户相似度仅考虑社交网络相似度。由图2可见,当
为0.8时MAE和RMSE的值最小。经过后续实验得知,当
时模型效果最佳。因此本文提出的算法参数设置如下:用户特征向量维度设置为10维,
设置为0.8,0.1,0.1,
设置为0.01。
算法在融合用户社交网络中,用户相似近邻数目k也会对推荐性能产生不同程度的影响。因此本文还针对不同的个数k对SRSUS算法进行了实验。结果如图3所示。
Figure 3. RMSE and MAE values in different number of similar users
图3. 不同近邻用户数目对RMSE、MAE值的影响
从上面的结果图中可以看出,不同的相似用户数目会对推荐效果产生不同的影响。当相似用户的数目为20时,算法在上述三个数据集中的MAE值和RMSE值均为最低。
最后,为了充分证明SRSUS算法的有效性,我们选取了推荐系统领域中经典的矩阵分解相关模型进行对比,如概率矩阵分解的社会化推荐算法SoRec [6]、社会信任集成推荐算法RSTE [7]、社会正则化推荐算法SoReg [8]、融合社交关系的矩阵分解推荐模型SoRegIM [10] 和融合用户潜在因子的社会化推荐模型SGCNMF [16]。
从表2中可以看出SRSUS算法在推荐效果上优于其他几种算法。这是因为SRSUS不仅考虑了用户的评分偏好,而且还考虑了融合用户间信任度和用户社交网络潜在特征。充分说明了使用用户评分、用户潜在特征、用户社会信任关系三部分信息计算用户间的相似度有利于提高评分预测的准确性。
Table 2. Performance comparison of different algorithms
表2. 不同算法的性能对比
6. 总结与展望
随着社交网络技术的快速发展,用户规模不断扩大,融合社交信息的推荐模型在推荐系统性能上有很大的提升。本文在现有社会化推荐系统的基础上,提出了一种融合用户潜在特征的社会化推荐算法。该算法在计算相似度时,不仅利用了用户对项目的评分偏好,还考虑了用户社交特征和社会信任关系。本文将这三者融入矩阵分解模型中,提升了模型的推荐性能。除了用户的潜在关系之外,项目的潜在关系也会对推荐系统的性能造成影响,因此该算法仍有提升的空间。未来会在本算法基础上研究如何利用知识图谱来约束项目潜在特征等多个方面加以改进。
基金项目
广东省科技计划项目(2020B1010010010, 2019B101001021);广东省自然科学基金项目(2019A1515010700)。