摘要——基于 user-item interactions和user-user social relations生成推荐是基于 web 的系统中的常见用例。这些联系可以自然地表示为图结构数据,因此利用图神经网络(GNN)进行社会推荐已成为一个有前景的研究方向。然而,现有的基于图的方法无法考虑用户(项目)的偏差偏移。
例如,挑剔用户的低评级可能并不意味着对该项目持负面态度,因为用户在常见情况下倾向于给予低评级。
在图形建模过程中应考虑此类统计数据。虽然过去的一些工作考虑了这种偏差,但我们认为,这些提出的方法仅将偏差视为标量,无法捕获隐藏在数据中的完整偏差信息。此外,用户之间的社交关系也应该是可区分的,以便具有相似项目偏好的用户能够对彼此产生更大的影响。为此,我们提出了基于图的分布式协作过滤社交推荐(GDSRec)。
GDSRec 将偏差视为向量,并将其融合到学习用户和项目表示的过程中。通过分散的邻域聚集来捕获统计偏差偏移,而根据偏好相似性来定义社会连接强度,然后将其纳入模型设计中。
代码参考:https://github.com/MEICRS/GDSRec
面对大量的网络用户和信息爆炸,推荐系统至关重要,它可以缓解信息过载,为用户提供更高效和高质量的服务。有效的推荐系统可以通过从大量信息中获取用户偏好的内容(例如电影、音乐、商品)而使用户受益,并通过降低促销成本使服务提供商受益。因此,近年来,推荐系统引起了广泛的兴趣。同时,随着社交媒体的发展,利用社交关系来提高推荐绩效也越来越受欢迎[1]–[3]。在社交网络中,连接的朋友之间存在信息流。用户的偏好与他/她周围的人相似或受其影响,这已被社会关联理论证明[4],[5]。
最近,深度学习由于其高表达性和模型保真度而表现出了实现良好性能的强大能力。对于社交推荐领域,用户-项目交互和用户-用户友谊可以自然地表示为图形,其中用户和项目是节点,而交互(友谊)是边缘。基于这些观察,利用 GNN 的最新进展进行社会推荐已成为一个有前景的研究方向。
然而,几乎基于 GNN 的推荐方法都是从原始交互图中学习的,很少关注图的统计信息,这可能导致对真实用户偏好的误解。例如,从用户的角度来看,挑剔的用户可能倾向于对他观看的每一部电影给予低评级,那么 5 分之 3 的评级实际上可能表示该用户的积极偏好。从项目的角度来看,如果该项目的平均评分可以达到高分(例如 4.5 分),则评分为5 分之 4 也可以表示消极态度。这是隐藏在数据中的偏见,会误导用户和项目表示的培训。
基于这一观点,提出了 FunkSVD 和 SVD++,将这些用户和项目偏差建模为评分预测中的标量。然而,我们认为这些方法很简单,但没有捕捉到实践中隐藏的真正偏见。首先,我们认为使用标量不足以完全模拟用户和项目的真实偏差。其次,现有的方法没有明确地构建数据中的偏差,而是使用原始数据进行学习。这也导致无法很好地学习偏见。此外,社会联系强度也应该是可区分的。从[11]中可以看出,与那些关系薄弱的用户相比,拥有强大关系的用户更有可能分享相似的口味,从而平等对待所有社会关系也会导致次优解。
在本文中,我们设计了一个新的基于 GNN 的模型来解决上述社会推荐问题(GDSRec)。更准确地说,我们将偏差视为向量,并将其融合到所提出的模型中的用户/项目表示中。这种设计有助于我们了解真正的用户偏好。为此,我们设计了一个分散的交互图,以考虑用户(项目)的统计偏差偏移。该图通过显式提取偏差信息来构建,并帮助模型学习更好的表示。此外,我们根据偏好相似性对用户-用户连接重新加权,这有助于模型关注有用的友谊连接,同时对冗余聚集进行降噪。
我们的主要贡献总结如下:
对于一般推荐任务,有两种主要类型的算法:基于内容的算法[12]和协作过滤算法[13],[14]。。在这些方法中,协作过滤因其有效性和可扩展性而被广泛使用。
矩阵分解[15]–[17]是最重要的协作过滤方法之一,在各种场景中取得了巨大成功[18],[19]。它将用户和项目映射到共享的潜在因素空间,用户和项目之间的交互由其潜在因素的内积建模。在[10]中,SVD++考虑了扩展矩阵分解模型的用户和项目偏差。此外,社交网络推荐的探索已被证明是有效的。在[20]中,作者发现,与两个随机选择的用户相比,具有以下关系的用户更有可能在主题上分享相似的兴趣。因此,社会关系在帮助用户过滤信息方面发挥着重要作用。基于这种观察,已经提出了许多基于社会的推荐算法[1],[21]-[25]。在[21]中,提出了一种因子分解方法,通过使用用户的社交网络信息和评级记录来解决评级预测问题。
TrustMF[23]是通过使用社交互动中用户之间的信任网络的矩阵分解进行评级预测而引入的。TrustSVD[26]利用扩展 SVD++的信任信息。[24]和[25]中的作者利用贾卡德系数来计算社会关系的强度,但没有考虑评级。此外,一些其他工作利用辅助信息来改进推荐质量,例如[27],[28]。最近,SREPS[29]学习了用户在不同场景中的多重偏好。
深度学习模型也被用来增强推荐的模型表达能力。由于推荐数据可以自然地组织为图表,因此也开展了利用 GNN[30]–[33]进行推荐的研究。GNN 的关键洞察力是通过聚集来自邻域的特征信息来学习节点的表示。这符合协作过滤的本质。
在[34]中,作者提出了一种称为图卷积矩阵完成(GCMC)的图自动编码器框架,该框架基于在用户-项目交互图上传递的可微消息,而不使用社交关系。提出了神经图协同过滤(NGCF)[35],以将用户-项目交互集成到嵌入过程中。
引入知识图注意推荐网络(KGAT)[36]来显式建模知识图中的高阶连接性。
DiffNet[37]是通过使用分层影响扩散部分来建模用户的潜在偏好如何被可信用户递归影响而提出的。
[38]中引入了一种基于 GNN 的社交推荐算法 GraphRec。它提供了一种联合捕获交互和评级的方法,用于学习用户和项目的表示。此外,社交网络信息在 GraphRec 中用于学习用户的更好表示。
DANSER[39]提出了两个双图注意网络,以学习推荐系统中社会效果的深度表示。
Diffnet++[40]通过注入反映在用户项目图中的高阶用户潜在兴趣和反映 在用户- 用户图中的高阶用户影响促进用户和项目表示 。
LightGCN[41]通过去除图卷积 网络中的非线性激活和特征变 换简化了NGCF,并提高了推荐的性能。
ESRF[42]开发了一个基于图卷积网络的深度对抗框架,以应对社交推荐的挑战。
FBNE[43]通过折叠用户-项目二分 图 来 改 进 社 交 推 荐 的 性 能 , 探索了隐含的高阶用户 -用户关系 。
HOSR[44]是通过沿高阶社交邻居执行嵌入传播来生成用户嵌入。
然而,大多数这些方法没有考虑到图形数据中存在的统计偏移,同时也缺乏有效而简单的强度设计社会关系。
用户集合,R(ui)是用户 ui 交互的项目集合。设 N(ui)是用户ui在社交网络中直接连接的用户集∈ RD 表示用户 ui 的嵌入,qvj∈ RD表示项目 vj 的嵌入,其中 D 是嵌入大小。E(ui)和 E(vj)分别表示用户 ui 和项目 vj 的平均评分。⌈ ·⌉ 和|·|分别是整数值函数和绝对值函数。⊕ 表示两个向量之间的连接操作。⟨ ·⟩ 用于获取数据集中的条目数。
我们首先给出了问题的公式,然后介绍了分散图和所提出的框架。稍后,我们详细介绍了如何获得预测的评分,并从所提出的模型中学习用户/项目潜在因素偏移。最后,我们解释了如何训练模型。
假设有 N 个用户 U={u1,u2,···,uN},M 个项目 V={v1,v2,···,vM}。如图 1(a)所示,每个用户对一些项目进行评分。如果可以观察到评级,则评级得分大于 0,否则存在缺失值。用户项目评级矩阵由 R∈RN×M。任务是预测 R 中未观察到的评分,然后返回项目的排序列表以供推荐。为此,使用用户的评级历史和社交关系来解决这个问题。
例如,我们假设项目 v2 和 v4 由图 1(a)中的用户 u1 评分,并且用户u1 直接与用户 u2 和 u4 有社交关系,如图 1(b)所示。图 1(b)的左侧部分包含用户和项目之间的交互,称为用户项目图,右侧部分包含用户之间的交互称为社交图。对于用户项目图边缘的值,它表示用户 ui对项目 vj 的评分 rij。对于社交图中的值,我们将其定义为用户 ui 和uj 之间的关系系数。
其中,当满足 x 时 I(x)=1,否则为零,δ是评估两个用户是否喜欢同一个项目的阈值。关系系数 Tij 表示用户之间的显式关系强度,并表示用户 ui 与社交连接用户 uj 的相似程度。关系系数越高,两个用户喜欢或不喜欢的共同项目就越多,换句话说,两个使用者之间的相似性就越高。为了预测用户 u1 对项目 v1、v3 的评分,我们使用图 1(b)中描述的数据,预测的评分可以通过使用 GDSRec 获得。
通常,原始数据(如图 1)可以被视为二分图,如图 2 中的左侧,其中用户与其他用户有关系,与项目有交互。然而,直接从这些图中学习可能会导致对真实用户偏好的误解。考虑到来自挑剔用户的低评级可能并不表示对此项目的负面态度,因为用户倾向于将低评级分配给所有项目。这种现象并不少见。如果我们只使用原始数据来学习用户和项目的表示,这种偏差可能会导致次优解。为了缓解由于这些用户行为导致的上述问题,我们相信统计信息可以用于解决用户和项目的偏差偏移。出于这个想法,原始的二分图可以被处理为分散图,如图 2 右侧所示。对于每个用户-项目交互,我们从集中平均值中减去它。然后,利用分散图来训练我们的模型。我们将在下文中提供更多有关社会关系的细节。
在图 3 中,我们展示了所提出模型的概述。该模型包括四个部分:用户建模、项目建模、社交建模和偏好评级预测。对于用户建模,其目的是学习用户的潜在因素偏移。社交建模的功能类似于用户建模。两种建模的区别在于,用户建模只对一个用户建模,而社交建模需要同时集成对用户社交关系的学习。项目建模用于学习项目的潜在因素。
图 3:拟议框架概述。它包含四个组件:用户建模、项目建模、社交建模和偏好评级预测。
如前所述,我们通过利用由分散用户项目图和社交图组成的分散图数据来解决评分预测问题。直观地获得用户 ui 和项目 vj 之间的最终预测评级ˆrij,包括三个分量:用户 ui 的平均评级 E(ui)、项目 vj 的平均评级 E(vj)以及用户 ui 与项目 vj 间的最终偏好评级。
其中 E(ui)和 E(vj)为预测设置基准,f(ui,vj)计算用户 ui和项目 vj 之间的最终偏好评级。函数 f(ui,vj)可以表示为:
其中 rp-ij 是用户 ui 和项目 vj 之间的偏好评级。最终的预测偏好评级可以理解为包括用户自己的意见和对其社交用户评级的参考。由于很容易从原始数据中获得 E(ui)和 E(vj),因此关键问题是如何导出用户 ui 和项目 vj 之间的偏好评级 rp-ij。为此,我们利用分散的用户-项目图来学习用户和项目的表示。这些表示被称为潜在因素偏移,因为所提出的模型通过利用分散的图形数据将用户和项目映射到潜在因素空间中。为了获得用户和项目的潜在因素补偿,使用不同的数据来实现不同的目标。
在图 1 中的示例中,与用户交互的项目(即,v2 和v4 的项目聚合)用于学习用户 u1 的潜在因素偏移。对于项目 v4 的潜在因素,从与项目交互的用户处学习(即,u1 和 u2 的用户聚合)。通过在与 u1 社交连接的用户(即 u2 和 u4)之间执行社交聚合来学习 u1 的社交偏移。偏好评级预测组件是通过集成用户、项目和社交建模组件,通过预测来学习模型参数。应该注意的是,如果存在没有交互记录的新用户或项目,则该用户或项目的平均评级可以被全局平均值替换。下面讨论这些模型组件的细节。
在本小节中,我们将详细介绍如何从项目聚合中建模用户ui的潜在因子偏移量(表示为hui∈RD)。
可以看出,去中心化的用户项目图包含用户和项目之间的交互历史,以及用户对这些项目的评分。在[38]中,作者提供了一种获取交互和评分的方法,用于学习用户界面的潜在因素。然而,这种方法并不能反映ui 和其他用户之间的统计差异。因此,我们不是直接使用评级,而是**在用户建模中利用评级差异r¯ij,**即,
我们创建了一个嵌入查找表,将每个差异映射到表中,我们可以很容易地获得该表中的差异表示r¯ij。我们不直接使用rij−E(vj)的原因是由于小数的原因,在代码中使用嵌入方法不方便。我们相信定量方法可以用来解决这个问题,我们将其留给未来的工作。
为了从数学上获得用户 ui 的潜在因子偏移量 hui,我们使用以下函数:
其中xil为表示用户ui与项目vl之间感知交互的表示向量,GI为项目聚合函数,W和b分别为神经网络的权重和偏差。
评分差异感知交互的目的是捕捉用户的偏好差异,这可以帮助我们对用户的潜在因素抵消进行建模。这与过去直接获取用户偏好不同[34],[38]. 对于用户 ui 和具有评分差异的项目 vl 之间的交互,我们将该交互表示xil 建模为
其中 Lu 是多层感知器(MLP)。如引言中所述,该方法将偏差视为向量,并将其融合到学习用户表示的过程中。这样,我们可以更好地捕捉隐藏在用户交互记录中的偏见。
考虑到一个用户和交互项目之间的每次交互对用户潜在因素偏移的贡献是不同的。受注意力机制[45]、[46]的启发,我们将项目聚合函数 GI 定义为
其中,ηil是用户ui和项目vl之间交互的注意权重。这样,该模型就可以更好地捕捉到用户偏好中的差异。其核心问题是如何获得注意力的权重。我们采用以下的关注网络来解决这个问题。
这个网络的输入是交互表示 xil 和用户 ui 的嵌入向量 pui。根据[38],我们开发了两层神经网络
其中 ReLU 是整流线性单位。注意力权重ηil 是通过使用 Softmax函数对上述注意力得分进行归一化而获得的。
最后,对用户ui的潜在因子偏移hui可以写为
本部分旨在从分散用户项目图中的用户聚集中学习项目 vj 的潜在因素偏移 hvj。用户聚合包含与项目 vj 交互的所有用户,以及用户对vj 的评分。不同的用户可能对同一物品表达不同的态度。这可以在一定程度上帮助我们描述项目。为了描述项目在不同用户上的不同特征,我们修改了用户建模中使用评级的方式。用户ui和项目vj之间的新的评级差异r~ij定义为
利用这种类型的评分差异,我们使用该模型来学习来自不同用户的一个项目的潜在因素抵消。以下整个过程类似于用户建模。对于用户 uk和项目 vj 之间的交互评级差异r~kj,我们提出了一个由用户嵌入puk和评级差异嵌入s˜kj组成的评级差异感知交互表示yjk,即:
其中,LI是一个与LU相同的MLP,获得sr˜kj的方法与用户建模中的sr¯ij相同。为了学习潜在因子偏移量hvj,我们引入了该函数
其中,GU为用户聚合函数。在引入了区分用户交互对yjk的贡献的注意机制之后,我们就有了
其中,ξjk为使用以yjk和qvj为输入的双层神经注意网络获得的注意权值。它可以被写成
社会建模的功能与用户建模相似。当用户建模学习用户ui的潜在因素偏移时,该社会建模旨在学习ui的社会关联用户的潜在因素偏移。例如,在图3中,当用户建模学习用户u1的潜在因子偏移量时,社会建模分别以用户建模的方式学习u2和u4的潜在因子偏移量。因此,我们可以直接得到{huk,∀uk∈N(ui)}。需要注意的是,在这个模块中,数据仍然是分散的图数据。本模块的主要目的是帮助目标用户通过其社交用户来校准他们的评分。当计算用户和项目之间的评级时,该用户的社会联系用户的偏好是一个重要的参考。它可以帮助模型获得更准确的评级。
在获得潜在因素补偿后,hui,hvj 和{huk,uk∈ N(ui)}的用户ui、项目 vj 和 ui 的社交连接用户,可以使用三层神经网络获得偏好评级。对于偏好评级 rp-ij,我们使用以下过程来获得它:
对于 ui 的社交用户,他们的偏好评级{rp-kj,∀Uk∈ N(ui)}以相同的方式导出。然后使用(2)–(4)中的表达式,我们可以获得用户 ui 和项目 vj 之间的最终评级预测。需要注意的是,在测试阶段,用户和项目的平均评分与培训阶段一致。
我们从两个角度评估我们提出的模型,包括评级预测和排名预测。对于评级预测任务,有一个常用的目标函数:
其中 rij 是由用户 ui 对项目 vj 进行评级的地面真实评级。
学习排名的重点是为最终用户提供一个排名的项目列表,并在不同类型的推荐场景中广泛存在,如top-k推荐,顺序推荐[48],[49]。在这个任务中,对于每个用户,如果评级等于或大于F,则交互项被标记为1(即正样本),如果评级不等于F,则标记为0(即负样本)。也就是说,用户想要点击或浏览评级等于或大于F的项目。由于我们实验中的两个数据集包含从1到5的评级,我们在实验中设置了两种情况,包括F = 3和F = 4。所有模型的输出预测分数都使用s型函数进行调整。对于排序任务,我们选择二元交叉熵损失作为目标函数。
其中,yij是一个样本的地面真实标签,yˆij是一个介于模型预测的(0,1)之间的值。
在目标函数的优化中,我们采用 RMSprop[50]作为优化器。它随机选择一个训练实例,并沿负梯度方向更新每个模型参数。所有嵌入向量都是随机初始化的,并在训练阶段学习。对于评级差异嵌入,它取决于评级规模。在我们的实验中,每个等级都在{1,2,3,4,5}。因此,可以将嵌入的输入维度设置为 5。
为了减少过拟合的影响并提高泛化性能,我们应用了丢弃策略[51]。特别是,我们引入了一种节点退出策略。
节点丢失
在分散的用户-项目图和社交图中,每个用户或项目都有不同数量的交互。
例如,一个用户可能与十几个项目进行了交互,但另一个用户只与几个项目进行了互动。为了防止过多交互对表征学习的过度拟合影响,我们需要在训练阶段减少一些交互。基于上述思想,提出了节点丢失。在[34]中,作者介绍了一种以概率丢弃节点的方法交互记录很少的节点。因此,在学习用户和项目的潜在因素偏移的过程中,我们为每个节点随机保留多达 K 个交互节点,这样我们可以保护学习资源较少的节点。
在下一节中,我们将在两个真实世界数据集上验证所提出的模型的性能。
如第3.1节所述,有N个用户、M个项目和O个训练样本。我们使用节点退出,并为每个节点保留多达K个交互节点。在每个模块上,我们需要计算两个具有小层(例如,双层)的mlp。因此,三个建模模块的时间成本约为O((N + M)KD)。对于评级预测模块,时间成本约为O(OD)。因此,总时间成本约为O(((N+M)K+O)D)。在实际应用中,如K≪{N,M},因此总时间复杂度是可以接受的。
在本节中,我们进行了实验以验证所提出的 GDSRec 的有效性。我们旨在回答以下研究问题:
我们在两个 benckmark 数据集 Ciao 和 Epinions1 上评估我们的模型。它们取自流行的社交网站。这两个数据集包含用户、项目、评分和社交关系。评分从 1 到 5。Ciao 和 Epinions 的统计数据如表1 所示。
为了评估所提出模型的评级预测性能,我们采用了两个众所周知的指标,即平均绝对误差(MAE)和均方根以评估推荐算法的预测准确性。这两个指标定义为 出于比较目的,考虑了以下方法。我们选择了四组具有代表性的方法,包括: 我们提出的模型是在Pytorch2的基础上实现的。对于两个数据集,我们选择80%或60%作为训练集来学习参数,其余的数据集平均分为验证集和测试集。这个数据分割与[38]相一致。验证集用于调优超参数,而测试集用于最终的性能比较。阈值δ可以在{0、1、2、3}中进行选择。我们测试了Ciao上{16、32、64、128、256、512}中嵌入大小D的值,以及Ciao上{5、10、15、20}和{15、20、25、30}上的交互节点保留K。学习速率和批处理大小分别在{10−6、10−5、10−4、5×10−4}和{64、128、256}中进行搜索。如果MAE和RMSE的和在验证集上连续增加了10个时期,我们就停止训练。模型参数和所有嵌入向量默认初始化,在Pytorch中呈均匀分布。对于LightGCN [41]和Diffnet++ [40],我们采用了两层图卷积的设置。这些方法的超参数可以通过网格搜索进行了调整。 表 2 显示了针对评级预测任务的不同模型之间的性能比较。比较方法的部分结果摘自[38]。据我们所知,带下划线的值表示基线之间的最佳性能。从表中可以看出,FunkSVD 优于 PMF,这表明在实践中存在用户和项目偏差。我们可以看到,传统方法 TrustMF 优于 PMF 和 FunkSVD。当 PMF 和 FunkSVD 仅使用评级信息时,传统的社交推荐算法表明,评级和社交信息的结合可以有效地提高推荐性能。这些结果支持,当我们使用深度神经网络解决评级预测问题时,可以利用社交网络信息。 从表 2 可以看出,我们的模型 GDSRec 优于所有其他基线方法。**与GraphRec 和 Diffnet++相比,我们的模型利用了用户和项目统计数据,这有助于获得评级预测基准。**然后通过学习用户和项目的潜在因素偏移来寻求偏好评级预测。此外,与 GraphRec 和 Diffnet++使用社交网络信息学习用户表示不同,我们的模型使用社交网络的信息作为校正最终评级预测的方法。 当训练集占 数据 集的 60%时 ,可看出我 们的 模 型比Diffnet++的平均性能提高了 1.75%。当训练数据是数据集的 80%时,我们的模型可以获得更多的性能改进。尽管相对改进的百分比很小,但Koren 在[55]中指出,即使是 MAE 和 RMSE 的微小改进也可能导致实践中建议的显著差异。 在这一部分中,我们评估了所提出模型的项目排序性能。为了进行比较,我们选择了传统算法 PMF 和 FunkSVD、经典深度算法 NeuMF、基于 GNN 的模型(包括 LightGCN、GraphRec 和 Diffnet++)与我们的 GDSRec进行比较。结果如图 4 和图 5 所示。从图中我们可以看出,四种模型在召回评估指标上表现出相似的高性能。这是因为阳性标记在两个数据集中占据了很大的比例。这些模型的预测自然是有偏差的,对于负样本给出了高概率的正结果。这使得很难判断模型的性能。相比之下,NDCG上的模型性能不同。这表明四种模型的排名能力存在差异。总而言之,在 NDCG 方面, GDSRec 比其他 同行表现 更好,这 进一步证明 了 GDSRec更有效地将积极的项目推向高排名位置。 在本小节中,我们进一步研究了拟议 GDSRec 的模型组件的影响。 本小节介绍了拟议模型的有效性。我们的模型包含三个因素: 为了简单起见,我们在表 3 中总结了这些变体。在下文中,我们将这些变体的性能与 GDSRec 的性能进行了比较。 在本小节中,我们将评估注意网络的有效性。提出的GDSRec使用softmax来标准化注意力分数。在这里,我们设计了两种注意力权重的变体。一种变体是将(10)和(16)重写为 根据(2),最终预测取决于平均评级(即 e(ui)和 e(vj))。在这里,我们讨论了如果平均收视率发生变化,表现会如何。为此,我们改变了最终预测中平均评分的权重,表达式(2)改写为 现在,我们分析节点丢失对推荐性能的影响。节点丢失用于避免由于节点的交互过多而导致的过拟合问题。对于有限数量的 K 个交互节点,我们在图 7 中显示了结果,其中训练集占数据集的 60%,D=256。在数据集 Ciao 上,当 K 从 5 增加到 20 时,GDSRec 在 K=10 时达到最佳性能。对于数据集 Epinions,结果有些不同。当 K 从 15 到 30 时,我们可以清楚地看到 MAE 和 RMSE 在 K=25 时都是最小的。它验证了交互节点数 K影响所提出模型的性能。对于一个新的数据集,需要对有限数量的交互节点 K 进行实验测试。 在表 5 中,我们给出了不同δ阈值的两个数据集的 MAE 和 RMSE 结果。通常,当δ为 1 时,Ciao 和 Epinions 的性能最好。当δ=0 时,社会关系的数据非常稀疏。因此,它不能帮助模型更好地学习。当δ大于1 时,它可能会在社会关系数据中引入一些噪声,并导致性能不佳。 在本文中,我们提出了一个新的框架GDSRec,用于社会推荐中的评级预测问题。GDSRec将评级偏差视为向量,并将它们融合到学习用户和项目表示的过程中。最后,我们利用统计信息将原始图处理到分散图中,并明确地在图上提取偏差信息。它提供了一个分散的视角来学习潜在的因素抵消的用户和项目。
其中 T 是测试数据集。MAE 和 RMSE 值越小,预测精度越高。
为了进一步验证评分预测的性能,我们将其扩展到项目排名评估。测试集包含两个积极的(即得分≥ F)和阴性样本(得分4.3 基线
4.4 参数设置
4.5 性能比较(RQ1)
4.5.1 评级预测
NeuMF 利用神经网络架构来解决这个问题,它比 PMF 性能更好。这表明了神经网络模型在推荐算法中的威力。
DeepSoR 在神经网络的基础上结合了社会信息,表现比 NeuMF 更好。此外,比较 GCMC 和 GCMC+SN,也可以观察到社会信息的重要性。LightGCN 是最先进的基于 GNN 的推荐模型,具有隐式反馈,它对高阶用户项目交互进行建模,但不利用社交信息。一般来说,它的表现优于 GCMC,但不如 GCMC+SN。GraphRec 和Diffnet++都利用了 GNN,并将其与社交网络信息相结合以获得推荐。这两种方法表明,GNN 具有良好的表示学习能力。4.5.2 项目排名
4.6 消融研究(RQ2)
4.6.1 社交网络和用户评分的影响
1)增加社会关系的关系系数;
2) 使用社会关系来调整评级预测;
3) 通过使用用户和项目的统计来学习潜在因素偏移。
为了更好地理解所提出的模型,我们制作了模型的几个变体,并比较了它们之间的性能。这些变量定义为:
GDSRec与三个变量之间关于评级预测的性能比较如图6所示。
这些模型中的超参数被设置为相同的。从图中所示的结果中,我们可以得出以下结论:
4.6.2 注意力网络的效果
各自地另一个是,
我们分别使用GDSRec-avg和GDSRec-max来表示这两个变体。请注意,没有其他类似于GDSRec-max的变体,它用最大值替换最大值(27)。这是因为,如果有一个注意权重接近于零,它可能会导致注意网络的输出非常小。
关于评级预测的性能比较如表4所示。我们可以观察到,GDSRecavg在MAE上实现了与GDSRec相同的性能。GDSRec-max的性能总是最差的。我们可以将GDSRec-avg和GDSRec-max放在同一个类别中,因为这两个变体对于不同的输入注意分数都具有相同的输出权重。我们认为GDSRec-avg比GDSRec-max表现更好,因为GDSRec-avg的调整更为温和。总之,GDSRec在学习表示时为用户或项目分配不同的权重,因此具有更好的性能。4.6.3 平均评级的影响
其中α是超参数。
我们测试了{0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6}中的α值,并给出了图 8 中的结果。从图中我们可以看到,随着α从 1 降至0,性能显著下降。很容易解释,模型可以被认为是对分散训练数据的拟合。因此,一旦平均评分发生变化,最终预测将直接失去这些信息。这不可避免地会导致性能下降。随着α变大,性能相对恶化。这些结果表明了用户个性化偏好在预测中的重要性.
4.7 节点脱落的影响(RQ3)
在表 5 中,我们给出了不同δ阈值的两个数据集的 MAE 和 RMSE 结果。通常,当δ为 1 时,Ciao 和 Epinions 的性能最好。当δ=0 时,社会关系的数据非常稀疏。因此,它不能帮助模型更好地学习。当δ大于1 时,它可能会在社会关系数据中引入一些噪声,并导致性能不佳。4.8 阈值δ(RQ4)的影响
5 结论
而统计信息也为评级预测提供了重要的基准。此外,我们还为用户区分了社会关系的明确优势,并将这些优势添加到最终的预测中。已经在两个真实世界的数据集上进行了实验。结果表明,该方法具有更好的评分预测性能。此外,我们还进行了实验,以验证了所提模型的排序能力。结果表明,该模型在评分预测和项目排名方面均有较好的性能。
代码参考链接: GitHub