基于动态邻域采样的社交推荐模型

2024-03-28 15:15蔡晓东周青松叶青
关键词:邻域向量社交

蔡晓东 周青松 叶青

(桂林电子科技大学 信息与通信学院,广西 桂林 541004)

推荐系统是一种能够帮助用户发现感兴趣项目、有效解决信息过载的工具[1]。然而,推荐系统普遍面临着数据稀疏问题,特别是当采用协同过滤这类传统推荐算法时,仅通过用户-项目的交互记录来给用户对项目的偏好建模,很容易受到数据稀疏的困扰,导致预测效果不够理想[2]。

为了解决数据稀疏的问题,研究者们提出了各种解决办法[2],主要思路是通过引入一些辅助信息来进一步提高推荐精度。随着各种基于社交网络的服务和应用蓬勃发展,获取用户的社交关系成为可能。于是,许多研究者开始将目光投向了社交网络和推荐算法的结合上,形成了一个热门研究课题——社交推荐。

事实上,引入社交关系是科学的,因为在社交网络中,有互动的朋友之间存在信息流,用户能够通过具有信任关系的社交好友获取和传播信息。于是,用户的偏好就会受到周围好友的影响,这一点已被社会关联理论证明[3]。因此,用户的社交关系有助于推荐系统分析其对项目的偏好和过滤信息。

早期的社交推荐研究主要采用基于矩阵分解的方法[4-7]。后来,图神经网络(GNN)[8-9]凭借对图结构数据强大的建模能力,能够自然地集成节点信息和拓扑结构,得到了快速发展并已广泛应用于各类领域[10]。由于社交网络(用户-用户关系)和用户交互记录(用户-项目关系)都可自然地表示为图结构数据,因此GNN也被研究者用于社交推荐[11-21]及评分预测任务中[11,14-17],以更好地学习用户和项目的特征表示。2019 年,Fan 等[11]提出了GraphRec 模型,最早利用GNN 联合捕获用户-项目交互图和用户-用户社交图中节点的表示进行社交推荐;Wu等[12]提出了DANSER模型,同时考虑朋友之间的静态和动态影响,利用双图注意力网络来协作地学习具有两种社交影响的嵌入表示;Xiao 等[13]提出了MGNN模型,通过构建相互社交嵌入层聚合来自用户-项目评分图和社交图的信息;Fan 等[14]在GraphRec基础上提出了GraphRec+模型,增加了项目-项目间关系的捕获来完成评分预测任务。随后,Zhang等[15]指出,现有基于GNN 的社交推荐方法很少考虑到利用单一的异构全局图去同时捕获用户-用户关系、用户-项目相互作用和项目-项目相似性。这可能导致在基于GNN 对用户和项目进行编码时缺乏复杂的语义信息和丰富的拓扑信息,于是提出了一个端到端的异构全局图学习框架GLHGNN 用于社交推荐,取得了更好的效果。Yu等[16]针对传统的社交推荐算法在学习用户和项目的潜在表示时忽略了高阶协同信号或仅考虑了一阶协同信号,导致推荐性能不佳的问题,提出了Light_NGSR 模型,利用GNN 框架在学习用户和项目的潜在表示过程中捕捉高阶协作信号。最近,Chen 等[17]针对用户(项目)隐藏在评分统计信息中的偏差问题,提出了一种基于图的分散式协同过滤模型GDSRec,有效提升了预测性能。

虽然现有基于GNN 的社交推荐模型都取得了不错的效果,但还存在不足:其默认聚合目标节点的所有邻居节点的信息,忽略了被查询的目标用户和项目与其邻居节点间可能存在特征不匹配的问题,导致噪声的引入而降低了模型性能。为了解决该问题,本文提出了一种基于动态邻域采样的社交推荐模型(DNSSR)。首先,构造一个包含用户和项目间多元关系的关系图谱(RG),使其比单一的图结构拥有更丰富的拓扑结构和关联信息;然后,利用动态邻域采样机制(DNSM)选择出与目标查询对的特征更一致的邻居,以减少噪声干扰;最后,为了进一步提升模型预测性能,利用所设计的增强型图神经网络(E-GNN)来对采样后得到的关系子图进行建模,区分不同邻居节点的重要性并选择更可靠的信息源,同时将目标节点和其邻域聚合特征自适应融合,得到更鲁棒的用户和项目嵌入向量用于评分预测。

1 问题定义与符号表示

令U={u1,u2,…,um}和V={v1,v2,…,vn}分别表示用户集合和项目集合,其中m和n分别为用户和项目的总数。R∈Rm×n为用户-项目评分矩阵,rij∈R表示用户ui对项目vj的评分,其值越大表示喜爱度越高。S∈Rm×m为用户-用户信任矩阵,其值为1 表示两个用户间存在社交关系,为0 则表示不存在社交关系。GR={U,V,εR}为用户-项目交互图,εR为用户-项目边集合;GS={U,εS}为用户-用户社交图,εS为用户-用户边集合;GI={V,εI}为项目-项目相似图,εI为项目-项目边集合。其中U、V、GR均由R中的数据生成,GS由S中的数据生成,GI由本文方法单独构成。

另外,令u∗和v∗分别泛指用户和项目节点,ui和vj分别为目标用户和项目节点,并将它们共同视为一组查询对象,简称目标查询对Q(ui,vj)。U(ui)表示与ui具有社交关系的用户集合,R(ui)表示ui点评过的项目集合,C(vj)表示点评过项目vj的用户集合,I(vj)表示与vj高度相似/相关的项目集合。

本文的目标是给定R、S等信息,建立模型精准预测出ui对vj的评分̂。

2 DNSSR模型

2.1 整体框架

DNSSR模型的整体框架如图1所示。首先,对于目标查询对Q(ui,vj),先为其生成一个表征目标用户和项目联合特征的查询向量,然后利用动态邻域采样机制在关系图谱中自适应地选择出与查询向量特征的一致性分数较高的邻居节点,得到采样后的关系子图。接着,利用E-GNN 对关系子图进行建模,得到包含全局协同信息的用户和项目全局嵌入向量后,再送入预测层进行最终的评分预测。

图1 DNSSR模型的整体框架图Fig.1 Framework of DNSSR model

2.2 基于用户项目多元关系的关系图谱构造

为了捕获到更加丰富的关联信息以增强用户和项目节点的嵌入向量表示,受Fan等[14-15,21]的启发,本文设计了一种新的图结构——关系图谱,其构造过程如图2所示。

图2 关系图谱的构造过程Fig.2 Construction process of relational graph

首先,考虑到相似或相关的项目对用户也存在一定的吸引力,它们之间的潜在联系可用于丰富项目的特征表示[18]。基于此,在Huang 等[18-19]的启发下,本文提出从评分相似和共现相似两个角度来共同计算不同项目间的协同相似度Vsim,过程如下:

式中,Rsim(·)为两个项目间的评分相似度,它们的交互用户对它们的评分越接近则两者越相似,e∗∈Rm为R中第∗列向量,Csim(·)为两个项目间的共现相似度,它们拥有的共同交互用户数量越多则越相似。

计算出每个项目与其他项目的协同相似度后,将得到协同相似度矩阵I∈Rn×n。然后从I中为每个项目选出N个相似度最高的项目作为其相似邻居,并在项目集合图GV中构建一条项目-项目边的关系,于是得到项目-项目相似图GI。最后,将GI和由R和S生成的GR、GS进行节点和边的合并,即可得到关系图谱GH。

与传统的图组织方式(仅含GR和GS且各自独立)不同,GH包含用户和项目两类节点(U,V),具有用户-用户、用户-项目、项目-项目3种类型的无向边(εS,εR,εI),因此拓扑结构和关联信息更丰富。另外,GH在信息传递上将拥有更大的潜力:①对用户节点来说,它可通过不同的类型边同时聚合到可反映自身偏好的来自相邻项目节点的信息,以及可反映社交影响的来自相邻用户节点的信息;同样,项目节点也可同时聚合来自相邻用户和项目节点的信息;②有助于节点间信息的跨阶传递,例如相邻的项目节点可更快捷地将信息传递给其他用户节点。

2.3 基于动态邻域采样的一致性邻居选择

现有社交推荐模型在利用GNN 聚合邻居节点信息时大多都忽略了一个重要问题,即被查询的目标用户和项目节点与其邻居节点间可能存在特征不匹配。以图3 为例,当前目标查询对为Q(u2,v2),表示预测u2对v2的评分,以目标用户u2为例,它存在以下两种与Q(u2,v2)的特征不一致的邻居。

图3 特征不一致邻居的示例Fig.3 An example of neighbors with inconsistent features

(1)偏好特征不一致的用户邻居:从u2和u1、u3的交互项目上看,由于要预测u2对v2的评分,其用户邻居u1的历史交互中并没有出现过电影类项目(即v1、v2、v3),但u3交互过(即v2、v3)。从模型学习的角度上考虑,显然u1的偏好特征与u2不一致,来自u3的信息对Q(u2,v2)更有帮助。

(2)属性特征不一致的项目邻居:从u2自身的交互历史上看,预测u2对v2的评分应重点考虑u2对v1而不是v4、v5的评分,因为v1与v2都属于电影类,而v4、v5属于书籍类。显然v4、v5的属性特征与v2不一致,来自v1的信息对Q(u2,v2)更有帮助。

上述例子只是目标用户角度下关于特征不一致邻居的简单举例,目标项目也存在类似情况。为了表示方便,本文统一将与目标查询对Q(ui,vj)的特征不一致的邻居节点定义为“特征不一致邻居”。

为了解决现有方法对上述问题意识的不足,在Yang 等[20]的启发下,提出了动态邻域采样机制(DNSM)以自适应地在GH中选择与目标查询对特征一致性高的邻居,以减少噪声干扰。DNSM 的设计思路和计算步骤如下。

首先,从上面的讨论可知,要区分特征不一致的邻居节点,需要考虑项目的类别信息,但实际上现有工作大多都忽略了这一因素的影响。因此,本文先将项目的类别信息转化为类别特征,再将其并入到项目的初始嵌入向量当中。

式中:v∗∈V;和分别为v∗的初始嵌入向量和所属类别的嵌入向量; 为引入类别特征后的嵌入向量,d为向量的维度;⊕表示向量拼接;σ(·) 为ReLU 激活函数;W1∈Rd×2d和W2,b1,b2∈Rd均为可学习的参数。

为了计算邻居节点与目标节点的一致性分数,先为Q(ui,vj)生成一个包含ui和vj联合特征的查询向量qui,vj:

式中,eui∈Rd为ui的嵌入向量,为vj的包含类别特征的嵌入向量,Wq∈Rd×2d为可学习的参数。

接着,计算目标节点的各个邻居节点t与qui,vj的一致性分数:

式中,et∈Rd为t的嵌入向量,对于ui,t∈U(ui) ∪R(ui),对于vj,t∈C(vj) ∪I(vj)。

另外,考虑到在关系图谱中,不同用户(项目)的邻居数目不同,特别是对于高活跃度用户(流行项目)来说,它们的邻居数量非常多,但对于那些不活跃用户(冷门项目)来说其邻居数量很少。这导致了针对不同的用户或项目,若采用固定阈值的方式来采样邻居并不公平。于是,利用一种邻居数目动态分配方法来自适应地计算出目标节点需要采样的邻居节点数目,具体如下:

式中,x为目标节点(ui或vj),Nneighbor(x)为x要采样的邻居节点数目,Nx为GH中x的邻居节点总数,Mx为x所在集合空间(U或V)中所有节点的邻居节点数目分布的中位数,min(·)表示取较小值,以缓解邻居采样时的不公平问题,p为采样比例系数,取值为0.1~0.9,其值越小则过滤掉的邻居节点越多。

最后,根据一致性分数S(·)的大小采样出分数最高的前Nneighbor(·)个邻居,对于未采样到的邻居节点和相邻边将被消除,由此可得到采样后的关系子图。这样可使得中将只保留与Q(ui,vj)的特征具有较高一致性的邻居节点。

通过上述步骤即可实现基于动态邻域采样的一致性邻居选择,减少特征不一致邻居的噪声干扰。

2.4 基于增强型图神经网络的关系子图建模

在采样了高一致性的邻居节点后,还需要利用GNN 对关系子图进行建模来完成信息的传递和聚合。不过,应注意到两个潜在问题:

(1)来自相邻的用户邻居节点和项目邻居节点的信息所表征的特征内涵和数量分布都不同,目标节点应该对不同来源的信息加以区分,并且同一信息源的各个邻居节点对目标用户或项目节点来说重要性是不一样的,也应该予以区分;

(2)目标节点自身特征与邻域聚合特征的融合方式对最后节点的特征表达有着较为重要的影响,常见的向量相加或拼接的方法或许不是最佳的。

基于以上考虑,为了进一步提高模型预测性能,在Fan等[14,21-22]的启发下,设计了增强型图神经网络(E-GNN)来对进行建模。它由邻域聚合网络(NAN)和自适应特征融合网络(AFFN)组成。具体地,先以NAN为目标节点选择更可靠的信息源,并区分各邻居节点的重要性得到邻域聚合特征后,再通过AFFN将其与目标节点的自身特征进行信息聚合,得到包含全局协同信息的用户和项目全局嵌入向量。

2.4.1 邻域聚合网络

首先,为了提取目标用户ui对不同项目评分所反映的偏好特征,先将用户对项目的评分信息转化为评分特征,并引入到项目邻居节点的嵌入向量(含类别特征)当中:

式中,vn(ui) 为中ui的某项目邻居节点,和分别为vn(ui)的嵌入向量(含类别特征)和对应的评分嵌入向量,W3∈Rd×2d和W4,b3,b4∈Rd均为可学习的参数。

类似地,对目标项目vj来说,为了提取不同用户对其评分所反映的吸引力特征,将评分特征引入到用户邻居节点的嵌入向量当中:

式中,um(vj) 为中vj的某用户邻居节点,和分别为um(vj)的嵌入向量和对应的评分嵌入向量,W5∈Rd×2d和W6,b5,b6∈Rd均为可学习的参数。

然后,利用式(10)-(12)聚合各邻居节点的信息,得到邻域聚合特征eN(x):

式中,ex∈Rd和ey∈Rd分别为x的嵌入向量和其邻居节点y的嵌入向量。特别地,当y为ui的项目邻居时,y为vj的用户邻居时。s(·)为sigmoid激活函数,q∈Rd和Wα∈Rd×2d为可学习的参数,Te(x,y)∈Rd为一个表示信息源来自x与y之间边的可学习特定向量,为目标节点选择更可靠的信息源,αxy用于区分各邻居节点的重要性。

2.4.2 自适应特征融合网络

对于目标节点的自身特征和其邻域聚合特征,现有方法基本都是通过向量拼接或简单相加的方式进行融合以更新节点的嵌入向量。然而,它们都是静态的融合方法,节点的自身特征和邻域聚合特征难以根据不同情况进行动态调整,容易导致最终的预测效果欠佳。本文利用AFFN 来克服这一限制,具体如下:

2.5 模型预测与训练

式中,MLP(·)为一个具有2层结构的多层感知机。

为了完成模型的训练,采用评分预测任务中广泛使用的损失函数(L):

式中,R′为已观察到的用户项目评分集合,rij为用户ui对项目vj的真实评分。

为了方便读者快速梳理本文思路和复现,将DNSSR模型的伪代码进行了介绍,具体如下所示。

输入:用户-项目评分矩阵R、用户-用户信任矩阵S输出:目标用户ui对预测项目vj的评分r̂ij开始1. 利用R和S生成GR、GS,并初始化用户和项目节点的嵌入向量2. 计算项目间的协同相似度Vsim得到协同相似度矩阵I 3. 根据I生成项目-项目相似图GI 4. 组合GR、GS、GI得到关系图谱GH 5. 将项目的类别信息引入到其初始嵌入向量中6. 生成包含ui和vj联合特征的查询向量qui,vj 7. 计算各邻居节点t与qui,vj的一致性分数S(·)8. 利用邻居数目动态分配方法自适应计算邻居节点采样数目Nneighbor(·)9. 根据S(·)和Nneighbor(·)的值进行动态邻域采样,得到关系子图GSH 10. 将评分信息引入到GSH中用户(项目)邻居节点的嵌入向量中11. 聚合GSH中目标节点各邻居节点的特征,得到邻域聚合特征eN(x)

3 实验结果与分析

3.1 数据集

为了验证本文所提模型在评分预测任务上的有效性,选择了两个具有代表性的数据集Ciao 和Epinions 进行实验。它们都来源于真实的社交网络平台,允许用户对项目进行评分,并将朋友添加到自己的“信任圈”中。因此,它们提供了大量的评级信息和社交信息,评级范围从1 到5。这两个数据集的统计信息如表1所示。

表1 实验数据集的统计信息Table 1 Statistical information of experimental datasets

3.2 评价指标及参数设置

为了评估所提出模型的推荐性能,采用平均绝对误差(MAE)和均方根误差(RMSE)作为本文实验的评价指标。其中MAE和RMSE的值越小表示预测准确性越好。

对于每个数据集,选择其中80%作为训练集来学习参数,验证集和测试集则各占10%。经过超参数搜索,批次大小设为128,学习率设为0.001,嵌入维度设为16,项目相似邻居数量N默认设为20。模型利用Adam 优化器进行训练,并采用早停法来提前终止训练过程,即当验证集上的RMSE 指标在连续5个训练轮数后都不继续下降时,认为模型已经收敛,模型训练结束。

3.3 对比模型

为了证明本文所提模型的优越性,选择了一些当前主流的社交推荐模型进行了对比,分别如下:①PMF[4],仅利用用户-项目评分矩阵进行概率矩阵分解;②SoRec[5],通过同时分解评分矩阵和社交关系矩阵来学习用户的特征向量;③TrustMF[7],根据信任的方向,通过矩阵分解将用户映射到信任者空间和被信任者空间;④DeepSoR[23],采用深度神经网络从用户的社交关系中学习用户的特征表示,然后将其集成到概率矩阵分解中以进行评分预测;⑤GraphRec[11],利用GNN 从社交关系图和用户-项目交互图中对用户和项目的特征表示建模;⑥GraphRec+[14],在GraphRec的基础上增加了项目-项目图来聚合相似项目之间的信息;⑦GDSRec[17],针对用户(项目)隐藏在评分统计信息中的偏差问题,提出了一种基于图的分散式协同过滤模型用于社交推荐。

3.4 实验结果比较

表2 展示了DNSSR 与各个对比模型在Ciao 和Epinions 数据集上的实验结果比较。由其中的结果可以发现:在基于矩阵分解的模型中,加入了社交网络信息的SoRec 和TrustMF 始终优于只有评级信息的PMF,说明了利用社交网络中的用户信任信息可以有效提升推荐性能;DeepSoR 是基于深度神经网络架构的模型,效果优于所有基于矩阵分解的模型,说明了神经网络对用户社交关系和用户-项目交互具有更强的学习能力;GraphRec、GraphRec+和GDSRec 则是基于GNN 的模型,效果显著优于DeepSoR,这充分说明了GNN在图结构数据的表示学习方面具有强大的能力,能进一步提升推荐性能;相比所有对比模型,本文所提出的DNSSR 模型在两个数据集上的RMSE 和MAE 都有明显降低。与各对比模型的实现方式不同,DNSSR先是通过构建关系图谱使得图结构中拥有了更多上下文信息,然后利用动态邻域采样机制去采样出特征一致性高的邻居,解决了在信息聚合时产生的噪声干扰问题,另外还利用增强型图神经网络对采样后得到的关系子图进行建模,获得了更鲁棒的包含全局特征的用户和项目嵌入向量,最终有效降低了预测误差。另外,Koren[24]曾指出,RMSE 和MAE 的微小改进会对top-N 推荐的质量产生重大影响,所以DNSSR具备很强的应用价值。

表2 各模型实验结果对比Table 2 Comparison of experimental results of models

3.5 消融实验

为了证明本文所提各个关键组件的有效性,利用控制变量法设计了以下扩展消融实验。

3.5.1 RG和DNSM中关键组件的有效性

首先,为了验证在RG 中引入GS和GI是有效的,设计了DNSSR-S和DNSSR-I变体模型,分别表示去掉GH中的GS和GI。其次,为了验证DNSM 的有效性,设计了DNSSR-D 变体模型,即不进行动态邻域采样,E-GNN将直接聚合所有邻居节点的信息。为了验证引入类别特征的有效性,还设计了DNSSR-C变体模型,即不对项目节点进行类别特征的引入。它们的实现结果如图4所示。

图4 关于关系图谱和动态邻域采样机制中关键组件的有效性分析Fig.4 Effectiveness analysis of key components in relational graph and dynamic neighborhood sampling mechanism

由图4可知,DNSSR的RMSE和MAE始终保持最小,即拥有最佳的推荐性能,表明了各个组件都是产生最佳结果所必需的。各变体模型与DNSSR相比:DNSSR-D 的误差最高,在Ciao 数据集上其RMSE 和MAE 分别上升6.05%和7.31%,在Epinions 数据集上则分别上升3.49%和5.41%。这表明对邻居节点进行动态采样是非常有必要的,否则会引入大量噪声。DNSSR-S和DNSSR-I的整体误差也较高,这验证了用户的社交关系和项目的相似关系能够增强用户和项目的特征向量表示,进一步提升预测性能;DNSSR-C的误差也上升不少,表明引入类别信息是有效的,有助于项目邻居的过滤并增强项目的特征向量表示。

3.5.2 E-GNN中NAN和AFFN的有效性

为了验证E-GNN 中NAN 和AFFN 的有效性,设计了3 个相关变体:DNSSR-nan,即不采用NAN的方式进行信息聚合,而是直接相加;DNSSR-cat,即特征融合采用向量拼接方式;DNSSR-add,即特征融合采用向量相加方式。对比实验结果见表3。

表3 邻域聚合网络和自适应特征融合网络的有效性分析Table 3 Effectiveness analysis of neighborhood aggregation network and adaptive feature fusion network

由表3 可知,DNSSR 在两个数据集上的RMSE和MAE 结果始终优于3 个变体。通过DNSSR 与DNSSR-nan的比较,发现在执行聚合操作时,区分图中各邻居节点的重要性和选择更可靠的信息源有助于提高预测准确性,从而验证了NAN 的有效性。通过DNSSR 与DNSSR-cat、DNSSR-add 的比较,发现对节点自身和邻域聚合特征进行自适应融合的方案有助于提高其特征向量的鲁棒性,从而验证了AFFN的有效性。

3.5.3 DNSM中采样比例系数的影响

在利用DNSM 计算目标节点要采样的邻居数目时,其中的采样比例系数p是一个可调节的超参数。为了观察不同p值的设置对模型最终预测性能的影响,设计了相关实验,结果如图5所示。

图5 不同的采样比例系数对模型性能的影响Fig.5 Effects of different sampling scale factors on model performance

通过图5可以发现,当p设为0.2时,在两个数据集上关于RMSE 和MAE 的综合预测性能最佳。p设为0.1至0.4时的整体误差都很小,0.5至0.9时的误差都较大。这表明了较高的p值容易导致GNN聚合过多特征不一致邻居节点的信息,由于受到噪声干扰而使模型的预测性能降低,较小的p值则可以有效过滤掉大多特征不一致的邻居节点,减少噪声的引入。

4 结论

本文提出了一种基于动态邻域采样的社交推荐模型DNSSR。通过构造用户-项目间多元关系的关系图谱,使其比传统的图结构拥有更丰富的拓扑结构和关联信息,且有利于节点间信息的跨阶传递。通过为项目引入类别信息,并采用动态邻域采样机制选择出与目标查询对象的特征更一致的邻居节点,解决了现有方法忽略被查询的目标用户和项目与其邻居节点间可能存在特征不匹配,导致噪声引入使模型性能降低的问题。本文还提出了增强型异构图神经网络,对采样得到的关系子图进行更为有效的建模,使获得的用户和项目嵌入向量更加鲁棒。最后通过在两个真实公开数据集上的实验结果表明,本文所提模型与同类先进模型相比具有更好的预测性能。由于推荐的可解释性也是用户关心的问题,未来将考虑建立更加丰富的关系图谱并进行深入探讨,以进一步拓展模型的可解释性。

猜你喜欢
邻域向量社交
社交之城
社交牛人症该怎么治
向量的分解
聚焦“向量与三角”创新题
稀疏图平方图的染色数上界
社交距离
你回避社交,真不是因为内向
基于邻域竞赛的多目标优化算法
关于-型邻域空间
向量垂直在解析几何中的应用