Graph Neural Networks in Recommender Systems: A Survey

Graph Neural Networks in Recommender Systems: A Survey

在推荐系统中主要的挑战是从用户的交互和可以得到的辅助信息中学到有效的用户/物品的表示;很多信息基本上都存在图结构(用户之间的社交关系和物品的知识图谱,用户和物品之间的交互可视为二部图,序列中物品的转移同样可被构建为图结构)且GNN在表示学习上具有优越性(图神经网络可以捕捉用户物品关系之间的高阶连接通过迭代的信息传播),所以在推荐系统中使用图神经网络的工作大量的涌现。有效的推荐系统:准确的捕捉用户的偏好并提出用户可能感兴趣的物品的建议提升用户对于平台的满意度和用户的留存。该文主要的贡献有:

  • 将推荐模型中的图神经网络进行系统的分类
  • 每个类别下模型整体框架和它们如何解决问题的介绍
  • 当前模型的限制及未来的研究方向

在图神经网络框架中四种模型被广泛的使用:

在这里插入图片描述

基于图神经网络模型的分类:

在这里插入图片描述

代表性的工作:

在这里插入图片描述

普通的推荐:

在二部图上使用GNN方法时有四个主要的问题去解决:

在这里插入图片描述

代表性的方法:

GC-MC:(有代码) 解决评分预测问题,用户和物品的交互数据由用户物品二部图表示,其边上的标签表示观察到的评分,GCMC使用用户(物品)交互过的(物品)用户作为其表示而忽视了其自身原本的表示,它采用平均池化结合邻居节点并假定所有的邻居节点对于反映用户的偏好来说有相同的贡献。GC-MC仅仅考虑了一跳的邻居所以并未全面的利用图结构的信息传播,且抛弃用户/物品原始的节点信息可能会忽视内在的用户偏好/物品属性。

STAR-GCN:(有代码) GCN块的堆叠且每一个块的结构是独一无二的,堆叠GCN块而不是直接堆叠多层的GCN是堆叠多个卷积层可能容易带来过平滑的问题,为了连接邻接的块,STAR-GCN引入了重构机制其目的是从拼接的表示中恢复最初的输入节点向量且恢复的表示作为下一个块的输入。STAR-GCN在训练过程中关注于标签leaky问题,它在训练阶段去遮盖一些节点并在哪些遮盖的节点处添加重构损失,模型整体的损失是预测损失和重构损失之和。STAR-GCN利用重构策略去减轻过平滑问题并联合的优化预测任务和重构任务因此其性能优于GCMC,GCMC和STAR-GCN另所有的邻居有同等的影响且信息传播仅仅依赖于邻居节点,两者均使用最后一层的表示进行评分预测。

NGCF:(有代码) 在图结构和中心节点的仿射处进行信息传播,它利用不同层我的表示去得到最终节点的embedding,其利用了残差网络的优点。其动机是:1)和用户的兴趣一致的物品embedding应该传递给用户更多的信息;2)不同层得到的表示强调了不同链接得到的信息。NGCF利用元素级别的乘积去增强用户关心的物品的特征,以用户节点为例:

在这里插入图片描述

节点的embedding通过自身的表示和它的邻居求和之后通过LeakyRelU激活进行更新:在这里插入图片描述

较低层的表示更多的反映了独立的特征而较高层的表示更多的反映了邻居的特征,NGCF采取拼接策略去利用不同层的表示:在这里插入图片描述

上面提到的方法是在整个图上应用GNN而没有邻居的采样,一方面它保留了原始的图结构;另一方面它不能被应用于大规模的的有更多节点度的图上,它依赖于整体的图结构有较低的泛化能力。

PinSage: 结合随机游走策略和图卷积去学习节点的embedding,其采用基于随机游走的方法去采样固定数量的邻居(从特定的节点出发并计算遍历数量的 L 1 L_{1} L1正则化,节点 u u u的邻居是遍历数量正则化的top N N N个节点),通过这种方式节点 u u u的非直接邻接节点也可能成为其邻居,且在聚合邻居的表示时其正则化值被用于邻居的重要性。PinSage将聚合的邻居向量 n u ( l ) n_{u}^{(l)} nu(l) u u u的当前表示 h u ( l ) h_{u}^{(l)} hu(l)进行拼接,拼接之后的非线性转换允许更加灵活的特征结合,正则化操作控制了节点embedding的规模并使训练更加稳定。在这里插入图片描述

最终的节点embedding表示是是最后一层表示的非线性转换:

在这里插入图片描述
实验结果表明重要性池化策略相较于平均池化执行的好,即表示邻居对于中心节点的贡献可能并不相同。由于随机游走采样策略,PinSage可以扩展到百万级别用户和物品的网络规模的推荐任务中,邻居的采样策略可能影响模型的性能。

IG-MC:(有代码) 关注于归纳的矩阵填充方法并相较于转换的方法达到了相似的甚至更好的性能,它首先基于用户物品对构建了一跳的子图,该子图抽取设计降低了对于原始图结构的依赖,减轻了数据稀疏对性能下降带来的影响并增强了转向其它数据集的泛化能力。

总结:

图的构建:

  • GNN依赖于层与层之间的一跳邻居迭代的传递信息,其节点数量随着层数量的增加指数的增加,为了在大规模的图上应用信息,有必要对邻居进行采样,模型的性能依赖于采样策略,更加有效的用于邻居的构建的采样策略值得进一步研究

邻居的聚合:

  • 聚合函数可以被分为四类:平均池化;度正则化;注意力池化;中心节点增强。后两种方法相较于前两种性能普遍的有所提升,因为用户交互过的物品并不能反映用户同等的偏好

信息的更新:

  • 一些工作使用邻居的聚合表示作为新的中心节点的表示/结合中心节点和其邻居的表示,最常见的结合有:平均池化/相加池化/拼接,拼接允许更多的特征交互,但当特征交融是不必要时平均池化和相加池化已经表现的足够好

最终的节点表示:

  • 1)使用GNN中最后一层的节点向量作为最终的表示;2)使用权重池化/拼接操作结合所有层的表示。因为不同的层表达不同的连接,利用所有曾的表示可能会执行的更好。

使用社交网络增强的方法:

社交图有两个特别的特征:

1)用户之间的边表示其社交关系且社交关系的强度总是未知的

2)对于推荐系统,从社交关系图中学到的知识补足了用户物品的交互从而增强了用户的表示

基于社交图的特征,有两个主要的问题去解决:

1)朋友的影响, 朋友带来的影响是相同的么?如果不是,如何去判别不同朋友带来的影响呢?

2)偏好的结合, 用户和朋友之间存在社交关系,他们同样和物品之间存在交互,如何去结合社交影响和交互行为相关的用户的表示?

代表性的工作:

DiffNet:(有代码) 从用户的社交关系和历史行为建模用户的偏好,它采用graphSage模拟用户如何被社交影响。DiffNet假定所有的朋友都有相同的影响力因此采用平均池化去结合朋友的表示。受SVD++启发,DiffNet 在历史的交互物品上采用平均池化得到用户的表示,并使用当前的用户表示去替换原始的用户表示在这里插入图片描述

GraphRec: 考虑用户的社交网络图和用户物品的二部图,并使用图注意力网络在这两个图上独立的学习用户的embeddding 表示,在社交图上朋友的影响依赖于隐向量之间的相似度,在用户-物品的二部图上考虑用户交互过的物品及其连接的评分,用户最终的表示是这两个图上结果的拼接之后应用多层感知机的结果。在这里插入图片描述

注意力机制因为考虑了朋友和交互过的物品的不同影响从而提升了性能,然而因为其使用的是单层的GAT建模社交影响因此社交的影响可能并没有被全面的利用

DANSER:(有代码) 考虑用户到用户的社交关系和物品到物品的关系,不像其它工作中假定社交中朋友带来的影响是静态的,DANSER利用图注意力网络协同学习表示用于两折的社交影响,一个是通过用户特定的注意力权重建模,另一个是通过动态和基于上下文的注意力权重,朋友带来的静态的影响通过传播内在的用户偏好向量进行捕捉,朋友带来的动态的影响通过传播基于上下文的用户向量进行捕捉,这依赖于目标物品。基于上下文的用户向量通过以下方式计算:在这里插入图片描述

DiffNet++: 使用联合的框架建模影响力融合和兴趣融合,对于用户的节点,它首先结合二部图中邻居的信息并利用GAT结合社交网络中的信息,注意力机制融合邻居的两个隐藏状态,用户的表示通过添加融合的向量进行更新,为了捕捉不同深度的社交关系,Diff++拼接不同GNN层的隐状态作为整体节点的

总结:

影响力建模:

很多现存的工作利用注意力机制去区分朋友的影响,其结果普遍的好于平均池化操作,其合理性在于用户和不同的朋友有着不同的社交连接,考虑到朋友的影响可能随着其交互的物品而变化,DANSER依据特定的物品建模动态的用户表示,当交互过的物品是多样的时候动态的朋友表示可能会提供很多的帮助。

偏好结合:

用户经常涉及两种类型的网络,一个是用户物品尾部图另一个是社交图,现存的工作结合着两个网络的信息去增强用户的偏好表示,一些工作独立的从两个网络中学习用户的表示之后结合他们成为最终的偏好向量,这种策略的优点在于其邻居是同质的。还有工作结合两个网络到一个统一的网络中并使用GNN学习偏好表示,其优点在于每一层用户的表示会根据两种类型的信息同时的更新。

知识图谱增强:

将知识图谱结合到推荐中会带来三点好处:

1)知识图谱中物品之间的丰富的语义会帮助探索他们的潜在的连接并提升结果的准确度;2)知识图谱中各种类型的关系可以帮助扩种用户的兴趣并增加推荐物品的多样性;

3)知识图谱连接用户的历史喜欢的和推荐的物品,因此为推荐系统带来可解释性;

考虑到知识图谱的复杂结构,需解决三个相关的问题:

1)图的简化 考虑到知识图谱结构的高复杂性,如何去简化图结构从而进行有效的传播?

2)多关系传播 为了从链接实体传播信息,实体和关系都应该被考虑

3)用户的结合 为了在推荐中利用知识图谱,最基本的是将用户融合到知识图谱结构中,如用户特定的物品-物品之间的相关性

代表性的方法:

KGCN:(有代码) 利用用户特定基于关系的图神经网络去结合邻居实体的信息,该工作利用知识图谱去获得基于语义的物品表示。为了高效地计算,它对于每个实体均匀的采样固定大小的邻居作为它们的接受域。用户的偏好假定是静态的并使用隐向量集合表示,其用于测量用户在关系中的兴趣,邻居依赖于连接的关系和特定的用户进行分数加权。其动机是不同的用户对于不同的关系有着不同的重要性。在这里插入图片描述

物品的表示和用户的表示类似,最终的预测是用户偏好向量和总的物品表示的函数

KGNN-LS:(有代码) 致力于通过对于给定的用户识别重要的知识图谱关系去学习用户特定的物品embedding,该工作的创新性是标签平滑正则化,其假定知识图谱中邻接的物品很可能有相似的用户相关性标签。KGNN-LS使用一个用户特定的关系分数函数对于用户u提供重要性关系r,给定用户特定的关系分数函数,知识图谱中的多个关系可以用用户特定的邻接矩阵表示,该邻接矩阵的构建将复杂的知识图谱结构转换为传统的图,其使得图卷积网络得以应用,用户个性化的权重图使经典的GCN类似于GAT

在这里插入图片描述

KGNN-LS提出一个标签平滑正则化帮助更加有效的泛化到未观察到的交互上

在这里插入图片描述

KGAT:(有代码)

IntentGC:

AKGE:

总结:

图的简化:

知识图谱包含多个实体和关系,其增加了使用GNN的挑战,为了解决该挑战,一些工作在第一阶段简化图结构,如AKGE基于最短路算法重构子图,IntentGC仅仅使用单个节点分离保留用户到用户的关系和物品到物品关系,图的简化可以在损失一些图的信息下提升计算效率,因此有效的简化策略值得进一步的调研

多关系传播:

知识图谱一个特点是包含多个关系,为了区分不同关系的重要性,注意力机制被广泛的使用去结合邻居的信息,为了判别邻居的影响,一些工作(KGCN/KGNN-LS)考虑用户和节点之间的关系,一些工作(KGAT/AKGE)考虑连接的节点和它们的关系

用户的结合:

知识图谱的规模往往比用户物品的二部图交互规模大,一些工作采取GNN去学习物品的表示并假定用户有着静态的表示其用于测量用户在关系中的兴趣,一些工作结合两个图到一个中并考虑用户作为知识图谱中的实体类型。

【结合知识图谱的工作通过综述并不能直接的看明白,之后还需要详细的读对应的论文】

序列的推荐:

为了在序列推荐中使用GNN,有以下的问题需要解决:

  • 图的构建 为了在序列推荐中应用GNN,序列数据应该被转换为序列图,GNN模型的性能依赖于构建的图序列。
  • 信息传播 给定序列图,最基本的是去设计一个有效的传播机制去捕捉转移模式
  • 序列偏好 为了得到用户的序列偏好,序列中的表示应该被结合

代表性的工作:

SR-GNN:(有代码) 为每一个会话序列构建一个有向的会话图,其在两个连续的点击项之间存在一个有向边。对于有向图,SR-GNN定义两个邻接矩阵去分别的表示会话图中的出去的 A s o u t A_{s}^{out} Asout 和 输入 A s i n A_{s}^{in} Asin ,在传播过程中,物品的embedding通过两个权重参数分别的映射到输入和输出的表示上,先前点击的物品和下一个点击的物品通过以下形式被传播到当前的物品上:在这里插入图片描述

为了更新当前物品的embedding SR-GNN利用GRU去决定邻居的什么信息会被传播和当前节点的什么信息会被保留:在这里插入图片描述

为了更好的预测用户的下一个点击项,最基本的是去学习会话的embedding用于反映用户的最近的偏好,SR-GNN结合当前的兴趣和通过会话建模的通用的兴趣,具体的,它第L层的最后一个点击项作为会话s的局部embedding s l s_{l} sl,会话s的全局embedding s g s_{g} sg是会话s中所有物品通过软注意力机制得到的结果:

在这里插入图片描述

【其会话的表示就i是用户的表示?】

GC-SAN: 和SR-GNN采取相同的图结构和信息传播策略,GC-SAN采用自注意力机制去生成会话的表示,其捕捉序列中物品之间更多的表示,其推荐结果反映了基于GNN的推荐模型偏向于推荐流行的物品且不易推荐长尾物品,为了处理流行度偏差问题,NISER在物品和会话的embedding上应用L2正则化,消融实验证明了正则化操作有效的减轻了流行度偏差,此外,为了增强物品交互的序列信息,位置embedding被添加到物品的embedding中。

A-PGNN: 使用用户所有的会话行为构建用户的行为图,其丰富了物品到物品的连接。为了结合用户的影响,每个物品的embedding拼接上了用户的embedding,其消融实验证明了结合用户的向量仅仅带来很小的性能提升。原因可能在于序列行为已经能充分的反映用户的时序偏好。物品之间的共现次数作为边权的表示。A-PGNN采用GGNN捕捉物品之间的信息转移。其创新型在于当前的会话表示通过结合包含历史会话的信息之后得到增强。‘

FGNN: 利用GAT 捕捉序列图中物品的转移 在这里插入图片描述

MA-GNN:

总结:

图的构建:

为了在序列推荐中应用GNN第一步是基于用户的行为序列构建序列图,SR-GNN在两个连续点击的物品之间构建边,MG-GNN抽取三个子序列物品并在它们之间添加边。此外现存工作忽视了连续项之间的时间间隔,这可能会进一步地提升性能。

信息传播:

一些研究利用平均池化去聚合邻居信息而一些利用注意力机制去区分邻居到来的影响,因为GRU在序列建模方面的有效性,很多工作采取GRU去更新中心节点的表示去结合中心节点和邻居的信息。

序列偏好:

GNN组件的输出是节点的表示,序列中的节点的表示需要被结合到序列的表示中,MA-GNN使用平均池化去聚合,SR-GNN/GC-SAN/A-PGNN采用注意力机制,FGNN结合GRU和注意力机制。

社交网络增强的:

在序列推荐中用户的兴趣是动态的且用户会受朋友的影响,在社交网络增强的序列推荐中通常存在两种策略,其代表性的工作是DGRec

DGRec:(有代码) 仅仅考虑社交网络作为图数据,每个用户的动态兴趣从他们最近的会话行为中使用LSTM进行抽取。考虑到社交的影响因为上下文的不同而不同,DGRec利用GAT去区分朋友的影响,其消融实验的结果证明了在序列推荐中考虑动态社交影响的合理性。

将来的研究方向:

  • 在异构图上建立高效的GNN
  • 多个图信息结合
  • 推荐中GNN的可扩展性
  • 序列推荐上的序列图的构建
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值