基于GNN的矩阵分解推荐算法

2021-10-14 06:34王英博孙永荻
计算机工程与应用 2021年19期
关键词:向量社交神经网络

王英博,孙永荻

1.辽宁工程技术大学 创新实践学院,辽宁 阜新 123000

2.辽宁工程技术大学 软件学院,辽宁 葫芦岛 125105

在信息爆炸的时代,推荐系统因其在缓解信息过载上的特殊能力受到越来越多的关注,被电子商务、在线新闻、社交媒体网站等众多在线服务机构广泛采用[1]。推荐系统利用用户和项目之间的交互信息来深入挖掘用户的行为偏好,从而预测用户的兴趣偏好,并向需要该项目的特定用户推荐最合适的项目,这类方法被称为协同过滤[2-3]。在众多协同过滤推荐算法中,矩阵分解(MF)[4-5]已成为最受欢迎的推荐算法之一,并引起了广泛关注。它主要是将用户和项目嵌入到一个共享的潜在空间中,将用户和项目用特征潜在向量表示。之后,用户和项目之间的交互被建模为其潜在特征向量的内积。受Netflix奖的影响,MF 已经成为潜在因素模型推荐的实际方法。许多研究工作致力于改进MF,SoRec[6]提出了一种协因子分解方法,该方法通过评分和社会关系来共享一个共同的潜在用户特征矩阵。SocialMF[7]通过分解社会信任网络,将用户映射到两个低维空间:信任者空间和受托者空间。近年来,深度神经网络模型对学习各个领域的有效特征表示产生了很大的影响,如语音识别、计算机视觉(Computer Vision,CV)和自然语言处理(Natural Language Processing,NLP)。最近的一些研究已经将深度神经网络应用于推荐任务,并取得了令人满意的结果[8-9],但大多数研究都使用深度神经网络来建模音乐的音频特征,项目的文本描述,以及图像的视觉内容。此外,NeuMF[10]提出了一个神经协作过滤框架来学习用户和项目之间的非线性交互作用。DLMF[11]在评级上使用自动编码器来学习初始化现有矩阵分解的表示。提出了一种两阶段的信任感知推荐过程,利用深层神经网络对矩阵分解进行初始化,综合用户的兴趣和信任朋友的兴趣以及基于矩阵分解的社区效应的影响。DeepSoR[12]将用户社会关系的神经网络集成到概率矩阵分解中,首先使用预先训练的节点嵌入技术来表示用户,并进一步利用k近邻来连接用户嵌入特征和神经网络。最近,图神经网络(GNN)已经被证明能够学习图结构数据[13-14]。在推荐系统的任务中,用户-项目交互包含了用户对推荐项目的评价,是一种典型的图形数据。因此,有人提出了GNN 来解决推荐问题[15-16]。sRMGCNN[17]采用GNN提取用户和项目的图嵌入,然后结合递归神经网络进行扩散过程。尽管先前的工作取得了令人瞩目的成功,但人们对GNN 的社会推荐关注甚少。本文提出了一种用于社会推荐的图神经网络来填补这一空白。

在本文中,探讨了如何利用GNN 建模学习用户潜在特征。这项工作的主要贡献如下:

(1)提出一种神经网络架构来建模学习用户潜在特征,通过用户项目图和社交网络图发现其内在联系,并集成到概率矩阵分解上形成推荐。

(2)提出一种在用户项目图中将用户意见和项目交互联系在一起的方法。

(3)在两个真实数据集中进行了广泛的实验数据集来证明GNN与MF结合的有效性和可行性。

1 相关工作

1.1 矩阵分解

2006 年,在著名的Netflix 大赛[18]中,采用矩阵分解法处理评分预测问题的推荐算法大放异彩。与考虑用户和项目之间的相似度的基于近邻协同过滤推荐算法相比,矩阵分解推荐方法更节省内存,更精确。与奇异值分解(SVD)类似,矩阵分解将用户项目评分矩阵分解为两个低秩矩阵的乘法,其中可以存储用户和项目的潜在因素。因此,矩阵分解可以发现具有相似内容和隐含特征的项目。用户u和项目i的矩阵分解推荐系统将分别产生用户向量pu∈Rf和项目向量qi∈Rf,其捕捉用户u和项目i之间的交互。

矩阵分解的主要难题是在因子向量中找到用户和项目之间的映射。为了学习因子向量pu和qi,将评级矩阵R中的值作为训练数据,并分解为,其目标函数:

其中,Iui是指示函数,有评分为1,否则为0。rui为真实评分,为预测评分。λ为防止过拟合的正则化参数。

1.2 图神经网络

随着互联网技术的快速发展,大量的图结构数据已经遍布各个领域。例如,微博用户之间形成社交网络,淘宝用户与商品构成电子商务网络,生物分子网络以及交通网络等等[19]。与图像、文本不同,图结构是复杂多变的不规则领域。近年来,图形数据的深度神经网络技术有了长足的发展。这些深层神经网络结构被称为图神经网络(GNN)[20],它被提出学习有意义的图形数据表示。他们的主要思想是如何使用神经网络迭代地从局部图邻域聚集特征信息。同时,节点信息经过转换和聚合后可以通过图来传播。因此,GNN 自然地整合了节点信息和拓扑结构,并被证明在表示学习方面具有强大的能力。另一方面,社会推荐中的数据可以用两个图来表示。这两个图包括表示用户之间关系的社交图和表示用户与项目之间交互的用户项图。用户同时参与到这两个图中。此外,社交推荐的自然方式是将社交网络信息纳入用户和项目潜在因素学习。学习项目和用户的表征是建立推荐系统的关键。因此,鉴于GNN 的优势,GNN为促进社交推荐提供了前所未有的机会。

2 本文算法

2.1 问题描述

设U={u1,u2,…,un}和V={v1,v2,…,vm}分别是用户集和项目集,其中n是用户数,m是项目数。假设R∈ℝn×m是评分矩阵,也称为用户项目图。如果ui给vj评分,rij为评分得分,否则用0 表示从ui到vj的未知评分,即rij=0。观察到的评分rij可以看作是用户ui对项目vj的意见。设O={|rij≠0}为已知意见集合,Γ={|rij=0}为未知意见集合。设N(i)为ui直接连接的用户集,C(i)为ui已交互的项集。此外,用户之间还可以建立社交关系。用T∈Rn×n表示用户-用户社会关系图,如果uj与ui有关系,则Tij=1,否则为0。在给定用户项目图R和社交图T的情况下,目标是预测R中缺失的评分值。用嵌入向量pi∈Rf表示用户ui特征,用嵌入向量qj∈Rf来表示项目vj特征,其中f是嵌入向量的长度。

2.2 GNN_MF框架

图1显示了GNN_MF概率模型的整体视图。GNN_MF的目标是找到用户和项目的潜在模型(U∈Rf×n和V∈Rf×m,其中f是维数),通过(UTV)重建评级矩阵R预测评分。其条件分布可以定义为:

图1 GNN_MF图形框架Fig.1 GNN_MF graphics framework

对于概率矩阵分解中的用户潜在特征向量,有神经图生成的用户潜在特征向量向量来近似,如下所示:

其中xi是用户i的偏好信息,稍后将进行描述。将Netu和噪声ς中的内部权重W(权重和偏差)分别建模为方差为σW2和σU2的零均值高斯分布。因此,定义一个给定W和X的U的条件分布来建模用户潜在模型,如下所示:

2.3 用户潜在特征模型

图2 用户潜在特征模型Fig.2 User latent feature model

2.3.1 项目聚集

项目聚合的目的是通过考虑用户ui交互过的项目和用户对这些项目的评分意见,来学习项目空间用户潜在因素具体聚合函数如下:

其中C(i)是用户ui与之交互的项目集,oia是表示用户ui和项目va之间的意见交互的表示向量,而αia表示历史交互项目的权重,W和b是神经网络的权值和偏差。接下来将讨论如何定义意见交互向量oia和权重αia。

在用户-项目交互过程中,用户可以表达他/她的观点(或评分分数),用r表示。这些对项目的看法可以捕捉到用户对项目的偏好,有助于对项目空间用户潜在因素进行建模。为了建立观点模型,对于每一类意见r,引入一个意见嵌入向量er∈Rd,它将每个意见r表示为一个稠密向量表示。针对用户ui与项目va之间的意见r交互,通过多层感知器(MLP)将意见交互表示xia建模为项目嵌入qa和意见嵌入er的组合。

其中⊕表示两个向量之间的串联操作。

将项目权重αia参数化为一个两层神经网络,称之为注意网络。注意力网络的输入是交互的意见表示oia和目标用户ui的嵌入pi。形式上,注意力网络被定义为:

最后的注意权重通过使用Softmax函数对上述注意得分进行归一化得到:

2.3.2 社会聚集

根据社会相关理论[6,8],用户的偏好与他/她直接联系的社交朋友相似或受其影响。因此应该结合社会信息来进一步模拟用户的潜在因素。同时,用户之间的联系强度可以从社交图中进一步影响用户的行为。换言之,学习社会空间目标用户的潜在因素应考虑社会关系的异质性优势。因此,引入了一种注意机制来选择具有代表性的社交好友来表征用户的社交信息,并对其信息进行聚合。

为了从这个社会化的角度来表达用户的潜在因素,提出了社交空间用户潜在因素,即从社交图中聚合相邻用户的项目空间用户潜在因素。具体而言,ui的社交空间用户潜因子是将用户在ui的邻居N(i)中的项目空间用户潜因子聚合起来,如下所示:

如前所述,强关系和弱关系在一个社交网络中是混合在一起的,用户可能会与强关系而不是弱关系分享更多相似的偏好。因此,用一个双层神经网络来执行一个注意力机制,通过将社会注意力βik与和目标用户嵌入pi相关联,提取出这些对ui有重要影响的用户,并对其关联强度进行建模,如下所示:

其中βik可以看作是用户之间的优势,值越高代表其意见对目标用户的影响越大。

为了更好地了解用户潜在因素,需要将项目空间用户潜在因素和社会空间用户潜在因素结合起来考虑,因为社会图和用户项目图从不同的角度提供了关于用户的信息。通过一个标准的MLP将这两个潜在因素结合成最终用户潜在因素,其中项目空间用户潜在因素和社交空间用户潜在因素在输入MLP 之前被连接起来。形式上,用户潜在因素定义为:

2.4 优化GNN_MF模型

为了优化GNN 的用户潜在模型、权重和偏差变量等变量,使用最大后验概率(MAP)估计如下:

对于变量ui和vj,使用坐标上升法迭代优化潜在变量,同时固定剩余变量:

2.5 算法步骤

输入:用户项目图、社交网络图;

输出:预测评分。

1.利用矩阵分解生成用户、项目潜向量U、V。

2.根据公式(6),生成用户交互意见向量。

3.根据公式(5)(9),生成项目空间和社会空间的用户特征。

4.根据公式(11),输出用户潜在特征。

5.结合步骤1 的物品隐向量和步骤5 的用户潜在特征向量,最后得到优化函数,式(12)。

6.根据公式(13),更新ui和vj。

7.预测评分。

3 实验

3.1 数据集

实验采用两个具有代表性的数据集Ciao和Epinions,它们来自于社交网站。每个社交网络都允许用户对项目进行评分、浏览/撰写评论,并将朋友添加到他们的“朋友圈”中。因此,它们提供了大量的评级信息和社会信息。评分范围是从1到5。根据{1,2,3,4,5}中的5个分数,用5个不同的嵌入向量随机初始化意见嵌入。这两个数据集的统计数据如表1所示。

表1 实验数据集描述Table 1 Experimental data sets description

3.2 评价指标

为了更加公平地对比算法性能,采用五折交叉验证来对推荐模型进行训练与测试。把数据集中用户对项目的评分数据平均分成5等份,在每次实验中,随机选取1组作为测试集,其余4组作为训练集。5次实验确保每一组都被测试,最终实验结果为5次实验结果的平均值。

利用两个指标来衡量预测精度,即均方根误差(RMSE)和平均绝对误差(MAE),定义为:

从计算公式可以看出,MAE和RMSE越小,预测精度越高,算法越有效。

3.3 结果分析

3.3.1 参数设置

对于所有的神经网络方法,batch size 和学习率分别在[32,64,128,512],[0.000 5,0.001,0.005,0.01,0.05,0.1]中搜索。此外,根据经验将隐藏层的大小设置为嵌入大小,并将激活函数设置为ReLU。随机初始化模型参数为高斯分布,其中平均值和标准差分别为0和0.1。

对于嵌入大小f,测试[8,16,32,64,128,256]的值。从图3和图4可以看出,当为64时效果最好。

图3 Epinions数据集下不同f 的RMSEFig.3 RMSE of different f under Epinions data set

图4 Ciao数据集下不同f 的RMSEFig.4 RMSE of different f under Ciao data set

图5和图6显示了不同的λU取值在Epinion数据集和Ciao数据集上RMSE的变化。

图5 Epinions数据集下λU 的RMSEFig.5 RMSE of λU under Epinions data set

图6 Ciao数据集下λU 的RMSEFig.6 RMSE of λU under Epinion data set

从图中可以看出,RMSE 随λU的变化呈现先减小后增大的趋势。当λU=10 时RMSE 取得最小值,性能最优,因此将λU设置为10。

图7和图8分别给出了在Epinions数据集和Ciao数据集上,λV的取值对本文提出的GNN_MF算法在RMSE上的影响。

图7 Epinion数据集下λV 的RMSEFig.7 RMSE of λV under Epinion dataset

图8 Ciao数据集下λV 的RMSEFig.8 RMSE of λV under Ciao data set

从图7 和图可以看出,随λV的增大,RMSE 呈现先减小后增大的趋势,且在λV=10 的时候取得最小值。故,将λV设置为10。

对比算法的参数采用文献中的配置,然后仔细地调整以达到最佳性能

3.3.2 算法性能对比

为了验证基于GNN_MF推荐算法的性能,将本文所提出的算法和PMF、SocislMF、NeuMF 以及DeepSoR 等经典推荐算法进行比较,并对得到的实验结果进行分析。

PMF[7]:一个典型的潜在因子模型,它对公共子空间[18]中的用户和项进行因子分解。

SocialMF[6]:它考虑信任信息和信任信息传播到推荐系统的矩阵分解模型中。

NeuMF[10]:这种方法是一种最先进的神经网络结构矩阵分解模型,最初的实现是针对推荐排名任务,将其损失调整为损失的平方来进行评级预测。

DeepSoR[13]:该模型利用深度神经网络从社会关系中学习每个用户的表示,并集成到概率矩阵因子分解中进行评级预测。

比较了各种方法的推荐性能。表2 显示了Ciao 和Epinions数据集推荐方法中的总体评级预测误差RMSE和MAE。

表2 不同推荐推荐算法的性能比较Table 2 Performance comparison of different recommendation algorithms

分析表2,有以下主要发现:

SocialMF 和DeepSoR 的表现总是优于PMF。所有这些方法都是基于矩阵分解的。SocialMF和DeepSoR同时利用评级和社交网络信息;而PMF只使用评级信息。这些结果支持社会网络信息是对推荐的评级信息的补充。

NeuMF的性能比PMF好得多。两种方法都只利用评级信息。然而,NeuMF是基于神经网络结构的,这表明了神经网络模型在推荐系统中的强大作用。

DeepSoR的性能优于SocialMF。它们都利用了评级和社交网络信息。然而,DeepSoR是基于神经网络体系结构的,这进一步表明了神经网络模型在推荐中的作用。

本文方法GNN_MF 始终优于所有对比方法。与DeepSoR 相比,GNN_MF 提供了先进的模型组件来集成评级和社会网络信息。此外,还提供了一种在用户项图中同时考虑交互和意见的方法。

4 结束语

本文提出了一种融合PMF 和GNN 的GNN_MF 算法。在PMF的基础上,通过神经网络,在用户项目图以及社交图中学习用户潜在特征,将其与PMF 学习的项目潜在特征进行结合,对推荐系统中的数据稀疏以及冷启动问题有很大的改善。特别提出一种在用户项目图上融合意见和交互的方法。在数据量和稀疏性均不同的Epinions和Ciao数据集上的实验结果表明,本文算法能有效地提高推荐系统的性能。

目前仅将社交图纳入推荐,而现实世界中的许多行业都与用户和商品相关的丰富的其他方面的信息。例如,用户和项目与丰富的属性相关联。因此,探索具有属性的图神经网络推荐将是一个有趣的未来方向。除此之外,本文假设评级和社会信息都是静态的。然而,评级和社会信息自然是动态的,因此,在未来将考虑建立基于动态图神经网络的社会动态推荐。

猜你喜欢
向量社交神经网络
社交牛人症该怎么治
向量的分解
聪明人 往往很少社交
聚焦“向量与三角”创新题
社交距离
神经网络抑制无线通信干扰探究
你回避社交,真不是因为内向
向量垂直在解析几何中的应用
基于神经网络的拉矫机控制模型建立
向量五种“变身” 玩转圆锥曲线