Graph Neural Networks in Recommender Systems A Survey-2022
ACM-2022
论文地址:https://dl.acm.org/doi/abs/10.1145/3535101
代码仓库:https://github.com/wusw14/GNN-in-RS
文章目录
- Graph Neural Networks in Recommender Systems A Survey-2022
- Abstract
- Introduction
- Backgrouds and Categorization
- Categorization
- Datasets
- Evaluation Metrics
- Applications
- Future Research Directions and Open Issues
- Conclusion
- Conclusion
Abstract
-
研究现状
随着网络信息的爆炸式增长,推荐系统在缓解这种信息过载方面发挥着关键作用。
近年来,图神经网络(GNN)技术在推荐系统中得到了广泛的应用,因为推荐系统中的大部分信息本质上都是图结构,而GNN在图表示学习方面具有优越性。
-
现有领域存在的问题 ⚠️重点关注
很少有全面的评论来定位 GNN 在推荐系统中应用的现有工作和当前进展
-
针对现有问题的解决方案 ⚠️重点关注
对基于GNN的推荐系统的最新研究成果进行了全面回顾。
-
具体解决方案
根据所使用的信息类型和推荐任务,给出了一个基于GNN的推荐模型分类。
系统地分析了在不同类型的数据上应用GNN的挑战,并讨论了该领域现有的工作如何解决这些挑战。
对该领域的发展提出了新的观点。
-
实验结果,超过SoTA多少
收集代表性论文及其开源实现 https://github.com/wusw14/GNN-in-RS
论文时间较老18,19,20,21年的
Introduction
-
研究现状
广义地说,在过去的几十年中,推荐系统中的主流建模范式已经从邻域方法(neighborhood methods)发展到基于表征学习(representation learning )的框架。
基于item的邻域方法直接向用户推荐他们历史交互过的items相似的items。通过直接使用用户的历史交互items来表示用户的偏好。
基于表征学习的方法,其将users和items两者编码为连续向量(即嵌入embedding),从而使它们可以直接比较。
受GNN在图结构数据上的优越学习能力的启发,近年来涌现了大量基于GNN的推荐模型。
-
核心问题
很少有全面的评论来定位 GNN 在推荐系统中应用的现有工作和当前进展。
-
解决方案
本调查总结了基于GNN的推荐研究进展的文献,并讨论了该领域存在的问题和未来的发展方向。
contribution
-
新分类方法
提出了一种系统的分类模式来组织现有的基于GNN的推荐模型。
根据使用的信息类型和推荐任务,将现有工作分为五类:
user-item collaborative filtering,
sequential recommendation,social recommendation,
knowledge graph-based recommendation,
and other tasks (including POI recommendation, multimedia recommendation, etc.). -
全面的回顾
说明要处理的主要问题。介绍了具有代表性的模型,并说明了它们如何解决这些问题。
-
未来研究
讨论了当前方法的局限性,并提出9种可能的未来的方向。
Backgrouds and Categorization
介绍了推荐系统和图神经网络的基础知识。 然后,讨论了在推荐系统中应用GNN的动机,并对现有的基于GNN的推荐模型进行了分类。
推荐系统基础知识
user representation ℎ∗𝑢
item representation ℎ∗i
score function 𝑓(·) can be dot product, cosine, multi-layer perceptions
分类
-
user-item collaborative filtering recommendation: user-item交互
-
sequential recommendation:历史行为
根据用户是否匿名以及行为是否分段为会话,基于时间顺序的推荐工作可以进一步分为顺序推荐(sequential recommendation)和基于会话的推荐(session-based recommendation)。
-
social recommendation:增强用户表征
-
knowledge graph-based recommender systems:增强item表征
GNN基础知识
在给定图数据的情况下,GNN的主要思想是迭代地聚集来自邻居的特征信息,并在传播过程中将聚集的信息与当前中心节点表示相结合。
图的分类:
-
有向图、无向图
-
同构图、异构图
同构图由一种类型的节点和边组成,异构图由多种类型的节点或边组成。
-
超图
超图是图的推广,其中一条边可以连接任意数量的顶点。
推荐领域广泛采用的五种典型 GNN 框架的聚合和更新操作
GCN(Graph Convolutional Network)
近似图拉普拉斯的一阶特征分解以迭代地聚集来自邻居的信息。
该公式描述了GCN中的一个传播步骤。在第 L
层中:
- 聚合阶段:每个节点从其邻居节点聚合特征,通过归一化邻接矩阵进行加权求和。
- 更新阶段:将聚合后的特征经过线性变换和激活函数,生成第
L+1
层的节点特征。
这个机制使得每个节点的特征能够逐层地融合其邻域的结构信息,从而学习到整个图的局部到全局的特征。
GraphSAGE(Graph Sample and Aggregate)
对每个节点采样固定大小的邻域,提出均值、总和、最大池化聚合器并采用串联拼接操作进行更新。
GraphSAGE的聚合与更新过程如下:
- 采样邻居:在每一层对每个节点 v 采样固定数量的邻居节点,以减少计算成本。
- 聚合邻居信息:使用指定的聚合函数对邻居节点的特征进行聚合。
- 更新节点特征:将节点自身特征与聚合的邻居特征拼接,通过线性变换和激活函数得到新的特征。
通过这种机制,GraphSAGE能够高效地对大规模图进行学习和推理,同时保证模型能够利用邻居节点的信息来更新节点特征。
GAT(Graph Attention Network)
假设邻居的影响既不相同也不是图结构预先确定的,因此它通过利用注意力机制来区分邻居的贡献,并通过关注每个节点的邻居来更新向量。
GAT中的聚合和更新过程如下:
- 计算注意力系数:通过注意力机制计算节点 v 和邻居节点 j 的相似度,生成注意力系数 αvj。
- 聚合邻居特征:利用注意力系数对邻居节点的特征进行加权求和,从而聚合邻居信息。
- 更新节点特征:通过线性变换和激活函数更新节点特征。
这种注意力机制能够自适应地调整邻居节点的重要性,使得GAT在处理复杂的图结构时更加灵活。
GGNN(Gated Graph Neural Network):在更新步骤中采用门控循环单元,使得节点特征能够有效地捕捉序列信息。GGNN 在所有节点上多次执行递归函数,当应用于大型图时可能会面临可扩展性问题。
GGNN的特征更新过程如下:
- 聚合邻居信息:节点 vvv 通过均值聚合的方式收集邻居节点的特征。
- 使用GRU更新节点特征:将节点自身的特征和聚合特征输入GRU,以得到更新后的节点特征。
GGNN的这种结构适用于处理带有序列依赖的图数据,但由于需要在每一层对所有节点应用GRU,可能会在大规模图中面临扩展性问题。
HGNN(Hypergraph Neural Network):一种典型的超图神经网络,它在超图结构中编码高阶数据相关性。 超边缘卷积层的公式如下:
HGNN的聚合与更新过程如下:
- 聚合节点和超边信息:通过超图结构将节点和超边的关系编码到特征矩阵中,进行归一化并聚合信息。
- 更新节点特征:通过线性变换和激活函数,更新节点特征以捕捉高阶的关联信息。
HGNN能够捕捉节点之间的高阶关系,因此在复杂图结构的任务中具有很好的表现。
[!NOTE]
为什么要做归一化?
在图神经网络(GNN)及其变体(例如HGNN)中,归一化是一个关键步骤,目的是确保信息在传播过程中保持稳定,并且避免节点或边的度数不均匀对结果产生不良影响。归一化在图网络中的作用如下:
1. 平衡不同节点的影响力
- 在图结构中,不同节点的度数(即连接的边数)可能差异很大。如果不进行归一化,度数较大的节点将会过度影响特征聚合结果,使得高连接度的节点特征主导了整个模型的训练,导致偏差。
- 归一化处理可以有效减小这种影响,使得每个节点的贡献趋于均衡,使特征聚合过程更加合理。
2. 避免数值爆炸和梯度消失
- 在深层GNN中,每一层都会聚合邻居节点的特征,度数大的节点在多层聚合后特征值可能增长非常快,导致数值不稳定,甚至可能发生数值爆炸(特征值过大)。
- 通过对特征进行归一化,能够将特征值的增长控制在合理的范围内,避免数值爆炸问题,并确保梯度的传播更加稳定,从而加速训练收敛。
3. 保持特征尺度一致性
- 归一化使得每层聚合后的特征具有一致的尺度。这种一致性有助于模型学习,避免特征值在多层传播过程中不断放大或缩小,导致训练难以收敛或性能下降。
- 一致的特征尺度也便于应用激活函数,因为大多数激活函数(如ReLU、tanh等)在输入值在特定范围内时表现最佳。
4. 增强泛化能力
- 归一化后的特征能够减少图结构差异的影响,使得模型在不同图结构上具有更好的泛化能力。尤其在节点度数分布差异较大的图中,归一化处理可以使模型更具鲁棒性,提高在训练数据和测试数据之间的性能一致性。
常用的归一化方法
- 对称归一化(如在GCN中使用):通过
这种方法对邻接矩阵进行对称归一化,使得信息可以更均匀地在图上传播。
- 随机游走归一化:通过
对邻接矩阵进行归一化,这种方式在模拟随机游走的过程中特别有效。
- 超图中的归一化(如HGNN中):不仅对节点的度进行归一化,还对超边的度进行归一化,确保在复杂的超图结构中信息传播的平衡性。
总结
归一化是图神经网络中的一个重要步骤,通过控制信息传播过程中的尺度,平衡节点的影响力,防止数值不稳定,进而提升模型的训练稳定性和泛化能力。
在推荐系统中使用GNN的动机
- 从图的角度考虑推荐系统中的信息,可以使用统一的GNN框架来处理所有这些任务。
- 节点表示和图表示都可以通过GNN学习。
- 此外,与非图模型相比,加入附加信息更加方便和灵活。
- GNN 可以显式编码user-item交互的关键协作信号,以通过传播过程增强user/item表征。
- 与非图模型相比,GNN 更灵活、更方便地对user-item交互的多跳连接进行建模,并且捕获的高跳邻居中的 CF 信号已被证明对于推荐是有效的。
[!TIP]
在推荐系统中,CF 通常指的是 协同过滤(Collaborative Filtering),这是一种基于用户行为数据(如评分、浏览、点击等)进行推荐的方法。协同过滤主要分为两种类型:基于用户的协同过滤(User-based CF) 和 基于物品的协同过滤(Item-based CF)。
CF 信号的含义
CF 信号(Collaborative Filtering Signals)指的是在协同过滤中用于识别用户偏好、理解物品相似性的数据信息。CF 信号通常来自于用户和物品之间的交互数据,比如:
显式反馈(Explicit Feedback):用户对物品的直接评分,例如电影评分、商品打分等。显式反馈通常以明确的评分值(如1到5星)表示,能直接反映用户对物品的喜欢程度。
隐式反馈(Implicit Feedback):用户对物品的间接交互,例如点击、浏览、收藏、购买、停留时长等。隐式反馈没有直接的评分,但可以通过用户的行为来推测其偏好。隐式反馈信息通常比显式反馈更丰富,尤其是在用户未提供评分的情况下,隐式反馈可以弥补显式反馈的不足。
CF 信号的类型
在协同过滤中,不同的信号可以帮助推荐系统学习用户偏好:
用户-物品信号(User-Item Signals):描述用户对某个物品的偏好程度(例如评分或购买次数)。这些信号可以用来找到与用户偏好相似的其他用户或物品。
用户-用户信号(User-User Signals):通过分析用户之间的相似性找到类似的用户,从而基于“相似用户喜欢的物品”来进行推荐。这类信号常用于基于用户的协同过滤。
物品-物品信号(Item-Item Signals):通过分析物品之间的相似性找到类似的物品,从而向用户推荐与他们曾经喜欢的物品相似的其他物品。这类信号常用于基于物品的协同过滤。
CF 信号的应用
在协同过滤推荐系统中,CF 信号被广泛应用于以下几个方面:
推荐计算:基于 CF 信号,推荐系统可以计算用户和物品之间的相似性,将与用户偏好相关的物品推荐给用户。例如,用户喜欢某一类电影,系统会推荐给他其他类似的电影。
矩阵分解:通过隐式和显式信号,矩阵分解方法(如 SVD、SVD++)可以将用户和物品映射到同一个潜在空间,从而实现推荐。这些方法利用用户和物品之间的互动信号来学习潜在特征。
冷启动问题:对于新用户或新物品,系统可以利用隐式信号(如点击、浏览等)来弥补显式评分的缺失,从而缓解冷启动问题。
混合信号的利用:现代的推荐系统会同时利用显式和隐式的 CF 信号,以提高推荐精度。例如,Netflix 会利用用户的评分(显式信号)以及观看记录(隐式信号)来推荐电影。
总结
CF 信号在推荐系统中非常重要,通过显式和隐式的用户行为数据,系统能够更好地了解用户的偏好并进行个性化推荐。这些信号不仅帮助系统计算相似性,还能用于构建复杂的推荐模型,提高推荐的精准度和用户满意度。
Categorization
总结了每个类别中模型的主要问题以及现有工作如何应对这些挑战,并分析了它们的优势和局限性。
user-item collaborative filtering
在给定user-item交互数据的情况下,user-item协同过滤的基本思想实质上是使用用户交互的项目来增强用户表示,使用用户曾经与项目交互的用户来丰富项目表示。
基于user-item的协同过滤有以下四个主要问题需要处理
Graph Construction
问题:
是否在异构二部图上应用GNN,还是基于两跳邻居构建同构图?
考虑到计算效率,如何为图传播选取有代表性的邻居节点而不是遍历整个图?
解决方案:
在原始user-item二部图上直接应用GNN有两个问题:一是原图结构可能不足以学习用户/项目表示;二是聚集所有节点邻域的信息需要很高的计算代价,特别是对于大规模图。
解决第一个问题的一种策略是通过添加边来丰富原始图结构,例如两跳邻居和超边之间的链接。另一种策略是引入虚拟节点来丰富user-item的交互。
针对第二个问题,提出了采样策略,使 GNN 高效且可扩展至大规模基于图的推荐任务。采样是原始图形信息和计算效率之间的权衡。
Neighbor Aggregation
问题:
如何聚合来自邻节点的信息?
具体来说,是否需要区分邻节点的重要性,建模中心节点与邻节点之间的亲和力,或者邻节点之间的交互作用?
解决方案:
聚合步骤对于图结构的信息传播至关重要,它决定了应该传播多少邻居的信息。
Mean-Pooling
最直接的聚合操作之一,它平等对待邻居节点信息。Mean-Pooling很容易实现,但当邻居的重要性显着不同时可能不合适。
Random-Walk Sampling
遵循传统的 GCN,一些工作采用了“度归一化”,它根据图结构为节点分配权重。由于随机游走采样策略,PinSage在聚合邻居的向量表示时采用归一化访问计数作为邻居的重要性。 然而,这些聚合函数根据图结构确定邻居的重要性,而忽略了连接节点之间的关系。
Attention Mechanism
出于常识,符合用户兴趣的items嵌入应该更多地传递给用户(与items类似),MCCF 和 DisenHAN 利用注意力机制来学习邻居的权重。 NGCF元素级乘积来增强用户关心的项目的功能或用户对项目所具有的功能的偏好。 以用户节点为例,聚合邻居表示计算如上。
NIA-GCN认为现有的聚集函数不能保持邻域内的关系信息,因此提出了两两邻域聚集方法来显式地捕捉邻域之间的交互。具体地说,它在每两个邻居之间应用元素相乘来建模user-user/item-item关系。
Information Update
问题:
如何集成中心节点表示和相邻节点的聚合表示?
解决方案:
一种是完全丢弃user或item节点的原始信息,并使用邻居的聚合表示作为新的中心节点表示,这可能会忽略内在的user偏好或内在的item属性。
另一种是同时考虑节点本身及其邻域消息来更新节点表示。
Final Node Representation
问题:
预测用户对项目的偏好需要整体的user/item表示。是使用最后一层中的节点表示还是所有层中的节点表示的组合作为最终的节点表示?
解决方案:
主流的做法是使用最后一层的节点向量作为最终的表示。
然而,在不同层中获得的表征强调通过不同连接传递的消息。
具体来说,较低层中的表征更多地反映个体特征,而较高层中的表征更多地反映邻居特征。 为了利用不同层的输出所表达的连接,最近的研究采用不同的方法来集成来自不同层的消息。
需要注意的是,mean-pooling和sum-pooling可以被视为weighted pooling的两种特殊情况。与平均池化和求和池化相比,加权池化允许更灵活地区分不同层的贡献。这四种方法中,前三种都属于线性操作,只有拼接(concatenation)操作保留了所有层的信息。
总结
sequential recommendation
顺序推荐根据用户最近的活动来预测用户的下一个偏好,旨在对连续项目之间的顺序模式进行建模,并为用户生成准确的推荐。
受 GNN 优势的启发,利用 GNN 通过将用户的顺序行为转换为序列图来捕获转换模式变得越来越流行。
Graph Construction
问题:为了在序列推荐中应用GNN,序列数据需要被转换为序列图。是否仅仅为每个序列独立构建一个子图就足够了?与仅在相邻的两个项目之间添加边相比,在多个连续项目之间添加边会更好吗?
解决方案:基于用户序列行为构建序列图是GNN应用于序列推荐的必要条件。
通过将序列中的每个项视为节点并在两个连续单击的项之间添加边来构建每个序列的有向图是最直接的方法。然而大多数场景下,用户序列的长度都很短,从单一且较短的序列构建的序列图包含的节点和连接数量较少,且某些节点可能只有一个邻居,这样的图包含的信息太有限,无法反映用户的动态偏好,且无法充分发挥 GNN 在图学习中的优势。
一种主流是利用额外的序列来丰富item到item的转换。
另一种主流做法是调整当前序列的图结构。
受到超图在建模超越成对关系方面优势的启发,超图已被用来捕捉item之间的高阶关系以及跨会话的信息。
Information Propagation
问题:为了捕捉转换模式,哪种传播机制更为合适?是否需要区分链接项的顺序?
解决方案:
GGNN(Gated Graph Neural Network,门控图神经网络) 框架被广泛采用来传播有向图上的信息。 具体来说,它采用均值池分别聚合前一项和后一项的信息,结合两个聚合表示,并利用GRU组件来整合邻居和中心节点的信息。
与池化操作不同,GRU中的门机制决定哪些信息被保留和丢弃。
与 GGNN 平等对待邻居不同,注意力机制(attention mechanism)区分邻居的重要性。
上述方法在消息传递过程中都采用了排列不变的聚集函数,忽略了邻域内条目的顺序,可能会导致信息的丢失。
为了解决这个问题,LESSR保留了图构造中项目的顺序,并利用 GRU 组件按顺序聚合邻居。
Sequential Preference
问题:为了获取用户的时间偏好,序列中的项目表示应被整合。是仅简单地应用注意力池化,还是利用 RNN 结构来增强连续的时间模式呢?
由于有限的传播迭代,GNN不能有效地捕获项之间的远程依赖关系。
因此,序列中最后一项(或任何项)的表示不足以反映用户的顺序偏好。
此外,大多数将序列转化为图的图构建方法都会丢失部分序列信息。
解决方案:
为了获得有效的序列表示,现有的工作提出了几种将item表征集成到序列中的策略。
- 考虑到序列中的item具有不同的优先级,因此广泛采用注意力机制进行集成。
- 除了利用注意机制进行序列整合外,序列信号还被明确地合并到整合过程中
- 所有上述工作都将项目表征整合到用户的行为序列中,以生成顺序偏好的表征。除了这些方法外,DHCN和COTREC在图的构造步骤中通过会话到会话图丰富了序列图。因此,它们将从会话到会话图中学习的顺序表示和在此步骤中从项聚集的顺序表示结合在一起。
总结
图结构:最简单的构造是在两个连续的项目之间添加边。当序列长度较短时,利用附加序列可以丰富序列图,并且如果附加序列与原始序列更相似则将是优选的。另一行是调整行为序列的图形结构。关于哪种方法更好,没有公认的说法。此外,将会话到会话图合并到序列图中也用于获得进一步的改进。
信息传播:大多数传播方法是传统GNN框架中传播方法的变体,且目前尚未达成共识,无法判断哪种方法更优。一些复杂的传播方法,如LESSR ,通过增加计算量来实现性能提升。是否在实际应用中采用复杂的传播方法,取决于计算成本与性能提升之间的权衡。
序列偏好:为了获得序列偏好,广泛采用注意机制来整合序列中项目的表示。除此之外,添加位置嵌入可以增强项目的相对顺序,并带来一些改进。利用RNN结构是否可以提高所有顺序推荐任务的性能需要进一步研究。
social recommendation
问题:从图学习的角度来看,早期工作可以看作是对每个用户的一阶邻居进行建模。然而,在实践中,用户可能受到她/他的朋友的朋友的影响。在以前的工作中忽略高阶影响扩散可能会导致次优的推荐性能。要利用GNN将用户之间的关系纳入交互行为,需要处理两个主要问题。
Influence of Friends:朋友有同等的影响力吗?如果没有,如何区分不同朋友的影响力?
Preference Integration:用户涉及两种类型的关系,即,与朋友的社交关系以及与物品的交互。如何从社会影响力和交互行为的角度整合用户表征?
Influence of Friends
DiffNet通过利用平均池操作平等对待朋友的影响。然而,同等影响力的假设不符合实际情况,并且用户的影响力不适合简单地由她/他的朋友的数量来确定。因此,注意力机制被广泛利用来区分邻居的影响。与平均池操作相比,注意力机制提高了整体性能,进一步验证了不同朋友具有不同影响力的假设。
此外,最近一项名为ESRF的研究认为,社交关系并非总是可靠的。社交信息的不可靠性体现在两个方面:一方面,拥有明确社交连接的用户可能并不具备影响力;另一方面,获取的社交关系可能是不完整的。考虑到不加区分地将不可靠的社交关系纳入推荐系统可能导致性能较差,ESRP利用自编码器机制通过过滤无关的关系并探索新的邻居,来修改观察到的社交关系。类似地,DiffNetLG 通过引入隐式的局部影响来预测未观察到的社交关系,然后利用显式和隐式社交关系共同进行推荐。
Preference Integration
社交网络中的用户涉及两种类型的关系,一种是用户-项目交互,另一种是社交图。为了通过利用社交信息来增强用户偏好表示,有两种策略用于组合来自这两个网络的信息,
-
分别从这两个网络学习用户表示,然后将它们整合到最终的偏好向量中,如图a所示;
-
将这两个网络合并为一个统一的网络 [171],并应用图神经网络(GNN)进行信息传播,如图b所示。
第一种策略的优势体现在两个方面:一方面,由于两个网络是分别处理的,因此我们可以区分它们的扩散过程深度;另一方面,任何适用于用户-物品二分图的先进方法都可以直接应用,而对于社交网络,作为齐次图的GNN技术特别适合模拟影响过程,因为它们最初就是为齐次图设计的。至于如何整合从两个关系中学习到的用户表示,主要有两种机制:线性组合和非线性组合。在线性组合中,DiffNet将来自两个空间的用户表示视为相等,并通过求和池化操作将它们结合在一起。与平等加权组合不同,DANSER根据用户-物品配对特征动态分配权重。在非线性组合中,广泛采用基于连接向量的多层感知机(MLP)来增强特征交互 。
第二种策略,将这两个图合并为一个统一的网络的优势在于,社交网络中的高阶社交影响扩散和用户-物品二分图中的兴趣扩散可以在一个统一的模型中进行模拟,这两种信息可以同时反映用户的偏好。DiffNet++ 设计了一个两层注意力网络,用于在每一层更新用户节点。具体而言,它首先分别利用GAT机制聚合来自二分图(即互动物品)和社交网络(即朋友)的邻居信息。考虑到不同用户在平衡这两种关系时可能有不同的偏好,它进一步利用另一个注意力网络来融合两个邻居的隐藏状态。类似地,SEFrame利用异质图网络融合社交关系、用户-物品交互和物品转移的信息,并采用两层注意力网络进行信息传播。到目前为止,尚无证据表明哪种策略始终能获得更好的性能。
总结
朋友的影响:与给朋友赋予相等权重相比,区分不同朋友的影响力更为合适。一个新兴的方向是自动调整社交关系,这可以从社交网络中的噪声中获益。社交网络中的噪声通常意味着不可靠的或不完全的社交信息,因此通过调整社交关系,可以更准确地捕捉到真正的影响力,从而提高模型的性能。
偏好整合:结合这两种信息源的策略取决于是否将这两张图分开考虑,还是将它们统一为一张图。如果是分开的图,则用户偏好是通过这两张图学习到的整体表示的整合。而对于统一图,常见的策略是分层聚合架构(hierarchical aggregation schema)。在这种架构中,信息在多个层次上被聚合,从而能够综合不同关系源的信息,更好地捕捉用户的多样化偏好。
knowledge graph-based recommendation
利用反映用户之间关系的社交网络来增强用户表示,利用通过属性表达项目之间关系的知识图谱来增强项目表示。将知识图谱整合到推荐中可以带来两方面的好处:
(1)知识图谱中项目之间丰富的语义关系有助于探索它们之间的联系,提高项目的表示;
(2)知识图谱将用户的历史交互项目与推荐项目连接起来,增强了结果的可解释性。
问题:由于知识图谱的图结构复杂,即多类型实体和多类型关系,因此在推荐中使用知识图是相当具有挑战性的。
图构建:如何有效地将用户-物品交互的协同信号与知识图谱中的语义信息进行整合?是将用户节点显式地纳入知识图谱,还是通过隐式方式使用用户节点来区分不同关系的重要性?
关系感知聚合:知识图谱的一个特点是实体之间存在多种类型的关系。如何设计一个关系感知的聚合函数,以聚合来自关联实体的信息?
解决方案:
Graph Construction
一个方向是将用户节点合并到知识图谱中。
KGAT、MKGAT和CKAN将用户节点作为一种实体,将用户与项目之间的关系作为“交互”,将用户-项目二部图和知识图谱合并为一个统一的图。
最近的工作集中在与用户-项目对相关的实体和关系上。因此,他们在知识图谱中构建了将用户-项目对与用户历史交互项目和相关语义联系起来的子图。
AKGE基于两个节点之间的路径越短,连接越可靠的假设,通过以下步骤构建子图:TransR对知识图谱中实体的嵌入进行预训练;计算两个相连实体之间的成对欧几里得距离;选择目标用户与项目节点之间距离最近的路径𝐾。潜在的限制是子图结构依赖于预训练的实体嵌入和距离测量的定义。
ATBRG[35]在多层实体邻居中穷尽搜索目标项和用户历史行为项,并通过多个重叠的实体恢复用户行为与目标项之间的连接路径。为了强调信息密集的实体,ATBRG进一步对带有单个链接的实体进行了修剪,这也有助于控制图的尺度。虽然这些方法可以获得与用户-项目对更相关的子图,但预训练实体嵌入或彻底搜索和修剪路径非常耗时。一种有效的子图构建策略值得进一步研究。
另一个方向是隐式地使用用户节点来区分不同关系的重要性。
KGCN[147]和KGNN-LS[145]将用户节点作为查询,为不同的关系分配权重。在图的构建方面,这条研究路线强调用户对关系的偏好,而不是用户-物品交互中的协作信号。
Relation-aware Aggregation
由于GAT在基于连接节点的自适应分配权重方面的优势,现有的工作大多是将传统GAT的变体应用于知识图谱,即通过链接实体的加权平均更新中心节点,并根据得分函数。关键的挑战是设计一个合理有效的评分功能。但是这些工作没有明确地模拟用户在关系中的兴趣,而是通过连接的节点及其关系来区分实体的影响。例如,KGAT受知识图谱中的过渡关系的启发,根据关联空间中关联实体之间的距离分配权重:
对于那些没有将两种图的来源结合起来的研究,这些研究通过根据连接关系和特定用户为关系分配权重,明确地刻画了用户在关系中的兴趣。例如,KGCN采用的评分函数是用户嵌入和关系嵌入的点积,即:
通过这种方式,那些与用户兴趣更一致的关系的实体将向中心节点传播更多的信息。
总结
Summary of representative works in knowledge graph based recommendation.
图的构造。现有的工作要么将用户节点视为一种实体,要么隐式地使用用户节点来区分关系。第一个方向可以进一步划分为整体统一图或用户项对的特定子图。与整体统一图相比,用户项子图具有关注更多相关实体和关系的优点,但需要更多的计算时间,性能取决于子图的构造,这还有待进一步研究。
关系感知聚合。GAT(图注意力网络)的变种广泛用于从连接的实体中聚合信息,同时考虑到它们之间的关系。对于那些没有明确包含用户节点的图,采用用户表示来为关系分配权重。
other tasks
Points-of-interest(POI)
兴趣点(POI)推荐在基于位置的服务中起着关键作用,它利用地理信息来捕捉兴趣点之间的地理影响以及用户历史签到信息,以建模用户的转移模式。在POI推荐领域,存在几种不同类型的图数据,例如用户-POI二分图、基于签到的序列图和地理图——即在一定距离内的POI之间存在连接,边的权重取决于POI之间的距离。SGRec通过引入与其他签到相关的POI,丰富了签到序列,这使得协同信号可以在序列之间传播。Chang等人认为,用户越是连续访问两个POI,它们之间的地理影响就越大。因此,签到不仅反映了用户的动态偏好,还指示了POI之间的地理影响。为了明确地将POI之间的地理分布信息纳入模型,序列图中的边权重取决于POI之间的距离。
Group recommendation
群体推荐(Group Recommendation)旨在根据群体用户的历史行为,为一组用户推荐物品,而不是单个用户。在群体推荐中,存在三种关系:用户-物品关系,每个用户与多个物品互动;用户-群体关系,一个群体由多个用户组成;以及群体-物品关系,一组用户共同选择同一物品。这里的“群体”可以视为连接用户与物品的桥梁,且它可以作为图的一部分或不作为图的一部分。
以下是两种策略的代表性工作,分别对应这两种方法:
- **GAME ** 引入了图中的“群体节点”,并应用图注意力网络(GAT)为每个互动邻居分配适当的权重。在传播扩散的过程中,群体表示可以通过与物品和用户的互动不断更新。然而,这种方法无法直接应用于群体动态变化和新群体不断形成的任务中。
- GLS-GRL与前者的传导式方法不同,它采用归纳式方法来学习群体代表。对于每个群体,GLS-GRL 会专门构建相应的图,并通过整合参与群体的用户表示来生成群体表示,这样可以有效解决新群体形成的问题。
Bundle recommendation
捆绑推荐(Bundle Recommendation)旨在为用户推荐一组作为整体的物品。捆绑推荐中存在三种关系:用户-物品关系,每个用户与多个物品互动;用户-捆绑关系,用户选择捆绑包;以及捆绑-物品关系,一个捆绑包包含多个物品。对于群体推荐,"群体"指的是由多个用户组成的群体;而对于捆绑推荐,"群体"指的是由多个物品组成的集合。类似地,捆绑推荐的关键挑战是如何获取捆绑包的表示。
BGCN将这三种关系统一到一个图中,并从用户的角度设计了物品层和捆绑层的传播机制。HFGN将捆绑包视为用户与物品之间互动的桥梁。相应地,HFGN 构建了一个基于用户-捆绑互动和捆绑-物品映射的层次结构,并进一步捕捉捆绑包内物品之间的交互关系。
Click-through rate (CTR) prediction
点击率(CTR)预测是大规模工业应用中推荐系统的关键任务,旨在基于多种特征预测点击率。CTR预测的主要挑战在于建模特征之间的交互关系并捕捉用户兴趣。受到图神经网络(GNN)信息传播过程的启发,最近的研究工作 Fi-GNN利用 GNN 来捕捉特征之间的高阶交互。具体而言,Fi-GNN 构建了一个特征图,其中每个节点对应一个特征字段,不同字段通过边相互连接。因此,特征交互任务被转化为在图中传播节点信息的过程。尽管Fi-GNN 在性能上表现良好,但它忽略了用户行为中隐含的协同信号。
为了进一步解决这一问题,DG-ENN 设计了属性图和用户-项目协同图,并利用 GNN 技术来捕捉高阶特征交互和协同信号。为了缓解用户-项目交互的稀疏性问题,DG-ENN 还通过引入用户-用户相似关系和项目-项目过渡关系,丰富了原始的用户-项目交互关系。
Multimedia Recommendation
多媒体推荐一直是帮助用户发现感兴趣的多媒体内容的核心服务。其主要特点是内容具有多模态性,例如文本、图片和视频。近年来,研究人员开始采用图神经网络(GNN)来捕捉用户与多模态内容交互中的协同信号。例如,MMGCN 为每种模态构建了一个用户-项目二分图,并分别对每个图应用GNN以传播信息。总体的用户/项目表示是不同模态下用户/项目表示的加和。GRCN 利用多模态内容来优化用户-项目交互的连接性。在每一层传播中,GRCN 采用不同模态下用户-项目相似性的最大值作为用户-项目交互边的权重,并利用相应的权重来聚合邻居信息。MKGAT将用户节点和多模态知识图谱统一为一个图,并采用关系感知图注意力网络进行信息传播。考虑到实体的多模态特性,MKGAT 设计了实体编码器,将每种特定的数据类型映射为一个凝聚的向量。
Datasets
总结主流基准(benchmark)数据集,广泛采用的评估指标和实际应用
MovieLens数据集是从 MovieLens 网站收集的,其中三个具有不同规模的评分对的稳定基准数据集最常用,即 MovieLens-100K、MovieLens-1M 和 MovieLens-20M 。每个数据集包含用户-项目评分对、时间戳、电影的属性和标签以及用户的人口统计特征。评分范围为 1 到 5,最小间隔为 1。MovieLens 数据集广泛用于用户-项目协同过滤任务和基于知识图谱的推荐。
Amazon数据集包括评论(评分、文本、帮助投票)、产品元数据(描述、类别信息、价格、品牌和图片特征)以及链接(如“也看过”“也购买”图谱)。完整的数据集按类别拆分为子数据集,例如 Amazon-Books、Amazon-Instant Video 和 Amazon-Electronics。Amazon 中的子数据集通常用于测试用户-项目协同过滤和顺序推荐的性能。
Yelp 数据集包含用户签到信息,并且仍在不断更新。Yelp 数据集广泛用于用户-项目协同过滤和兴趣点(POI)推荐任务。现有的研究通常选择一年的数据进行实验,例如,NGCF 使用了 2018 版的 Yelp 数据集。
Gowalla 数据集是从 Gowalla 获取的签到数据集,用户通过签到分享自己的位置。除了签到信息外,Gowalla 数据集还包含用户之间的社交关系。Gowalla 是一个经典的兴趣点(POI)推荐数据集,也被广泛应用于用户-项目协同过滤和顺序推荐任务。
Yoochoose 数据集来自 RecSys Challenge 2015,包含用户在一个电子商务网站上 6 个月内的点击流数据。大多数最新的研究使用的是该数据集的最新部分,分别为 1/64 和 1/4 的序列,作为实验数据集,称为 Yoochoose1/64 和 Yoochoose1/4。
Diginetica 数据集由 CIKM Cup 2016 提供,包含按时间顺序排列的交易数据。Diginetica 通常用于基于会话的推荐任务。
RetailR