论文标题:Graph Neural Networks in Recommender Systems: A Survey
发表于:2021 ACM Computing Surveys (CSUR)
作者:SHIWEN WU, FEI SUN, WENTAO ZHANG, BIN CUI
论文地址:https://arxiv.org/pdf/2011.02260.pdf
摘要
- 能够自然融合节点信息和拓扑结构的图神经网络(GNN)技术引起了广泛关注。
- 在推荐系统中,主要挑战是从交互和辅助信息(如果有的话)中学习有效的用户/项目表示
介绍
-
推荐系统中的主流建模范式已经从邻域方法 [3、35、64、89] 发展到基于表示学习的框架 [13、50、51、90、110]。
-
基于项目的邻域方法 [3, 64, 89] 直接向用户推荐与他们交互过的历史项目相似的项目。
- 通过直接使用他们的历史交互项目来表示用户的偏好
-
基于表示学习的方法,尝试将用户和项目编码为共享空间中的连续向量(也称为嵌入),从而使它们直接可比较。
- 从矩阵分解 [50, 51] 到深度学习模型 [13, 33, 90, 153],已经提出了各种方法来学习用户和项目的表示,以更好地估计用户对项目的偏好。
-
推荐应用程序中的交互数据可以由用户和项目节点之间的二分图表示,观察到的交互由链接表示。甚至用户行为序列中的项目转换也可以构建为图。当结合结构化的外部信息(例如,用户之间的社交关系 [17, 132] 和与项目相关的知识图谱 [113, 150])时,将推荐公式化为图上的任务的好处变得尤为明显。通过这种方式,GNN 提供了一个统一的视角来对推荐系统中丰富的异构数据进行建模。
-
GNN的优势:
- 提供一个统一的框架来对推荐应用程序中的大量数据进行建模
- 与仅隐式捕获协作信号(即使用用户-项目交互作为模型训练的监督信号)的传统方法不同,GNN 可以自然而明确地将关键协作信号(即拓扑结构)编码为改进用户和项目的表示
- 早期的工作,例如 SVD++ [49] 和 FISM [43],已经证明了交互项目在用户表示学习中的有效性。鉴于用户-项目交互图,这些先前的工作可以看作是使用一跳邻居来改进用户表示学习。 GNN 的优势在于它提供了强大且系统的工具来探索多跳关系,
-
工作贡献
- 新分类。提出了一个系统的分类模式来组织现有的基于 GNN 的推荐模型。
- 首先根据他们处理的任务将现有作品分为一般推荐和顺序推荐。
- 然后,进一步将这两个任务中的现有模型分为三类:仅交互信息、社交网络增强和知识图增强。
- 全面审查。对于每个类别,展示了要处理的主要问题。简要介绍了代表性模型并说明它们如何解决这些问题。
- 未来研究。讨论了当前方法的局限性,并提出了六个潜在的未来方向
- 新分类。提出了一个系统的分类模式来组织现有的基于 GNN 的推荐模型。
背景和分类
-
推荐系统:两种基本类型的任务,从配对交互中建模用户的静态偏好或从顺序行为中建模用户的动态偏好。
-
一般推荐
- 通常假设用户具有静态偏好,并基于隐式(例如,点击、阅读或购买)或显式(即,评分)反馈对其进行建模。
- 通用推荐模型的一个常见范式是通过用户和项目的表示来重构用户的历史交互
- 问题描述:
- 给定用户集 U,项目集 I,以及观察到的用户和项目 R 之间的交互:U×I,对于任何用户表示 h u ∗ ℎ^∗_u hu∗ 和项目表示 h i ∗ ℎ^∗_i hi∗
- y u , i = f ( h u ∗ , h i ∗ ) y_{u,i} = f(ℎ^∗_u,ℎ^∗_i) yu,i=f(hu∗,hi∗)
- 评分函数f(·)可以是点积、余弦、多层感知等, y u , i y_{u,i} yu,i表示用户u对项目i的偏好得分,通常以概率表示
- 给定用户集 U,项目集 I,以及观察到的用户和项目 R 之间的交互:U×I,对于任何用户表示 h u ∗ ℎ^∗_u hu∗ 和项目表示 h i ∗ ℎ^∗_i hi∗
- 研究现状
- 早期研究以矩阵的形式考虑用户-项目交互,并将推荐制定为矩阵完成任务[52]。
- 矩阵分解 (MF) 将用户和项目投影到共享向量空间中,以重建整个用户-项目交互矩阵,即估计用户对其未见项目的偏好 [52、54、87]。
- 最近的深度学习工作,其中一项研究旨在通过将辅助信息与深度学习的力量相结合来提高推荐性能,
- 例如文本 [47, 110] 和图像 [44, 115]。
- 另一个研究方向试图使用更强大的模型架构来代替传统的矩阵分解,多层感知机MLP[33]和自动编码[90, 138]
- 早期研究以矩阵的形式考虑用户-项目交互,并将推荐制定为矩阵完成任务[52]。
-
顺序推荐
- 旨在通过探索她/他的历史交互中的顺序模式来预测用户可能与之交互的连续项目
- 根据用户是否匿名以及行为是否被细分为会话,该领域的工作可以进一步分为顺序推荐和基于会话的推荐
- 基于会话的推荐可以被视为具有匿名和会话假设的顺序推荐的子类型[84]。
- 在顺序推荐中,用户的历史交互按时间顺序组织成序列。我们用 s u s^u su = [ i s , 1 , i s , 2 , . . , i s , n i_{s,1}, i_{s,2}, . . , i_{s,n} is,1,is,2,..,is,n]来表示用户 u 的交互序列,其中 i s , t i_{s,t} is,t表示用户 u 在时间步长 t 交互的项目,n 表示交互序列的长度。
- 顺序推荐的任务是在给定她/他的历史交互序列或辅助信息(如果有)的情况下,预测用户 u 在下一个时间步 t+1 将与之交互的最可能的项目。它可以表述如下:
- i s , n + 1 ∗ = a r g m a x i ∈ I P ( i s , n + 1 = i ∣ s u ) \large i^{*}_{s,n+1} = arg\ max_{i∈I}\ P(i_{s,n+1} = i | s^u) is,n+1∗=arg maxi∈I P(is,n+1=i∣su)
- 顺序推荐的主要挑战是学习反映用户当前偏好的有效序列表示
- 研究现状
- 早期的工作采用马尔可夫链(MC)[29, 86] 来捕捉项目到项目的转换,假设最近点击的项目反映了用户的动态偏好。
- 由于循环神经网络 (RNN) 在序列建模中的优势,一些工作使用 RNN 单元来捕获序列模式 [36, 102],为了进一步增强会话表示,
- 除了最近的项目 [57, 68] 之外,还利用注意力机制来整合整个序列。受到 Transformer [128] 在 NLP 任务中的出色表现的启发,SASRec [45] 和 BERT4Rec [96] 利用自我注意技术对项目交互进行建模,从而为项目到项目的转换提供了更大的灵活性
-
-
图神经网络
-
GNN 的主要思想是迭代地聚合来自邻居的特征信息,并在传播过程中将聚合的信息与当前的中心节点表示相结合 [139, 161]。
- 从网络架构的角度来看,GNN 是堆叠多个传播层,由聚合和更新操作组成。
- “聚合”是指从邻域收集信息作为邻域的聚合表示;
- “更新”是指将中心节点表示和聚合表示整合为最新的中心节点表示;
- “传播”是指“聚合”和“更新”的组合。
- 在聚合步骤中,现有工作要么通过均值池操作 [28, 60] 平等对待每个邻居,要么通过注意力机制区分邻居的重要性[105].
- 在更新步骤中,中心节点和聚合邻域的表示将被整合到中心节点的更新表示中。
- 为了适应不同的场景,提出了各种策略来更好地整合这两种表示,例如 GRU 机制 [60]、非线性变换的串联 [28] 和求和运算 [105]
- 从网络架构的角度来看,GNN 是堆叠多个传播层,由聚合和更新操作组成。
-
根据架构设计,GNN 模型可分为循环 GNN(RecGNN)、卷积 GNN(ConvGNN)、时空 GNN(STGNN)和图自动编码器(GAE)[139]。
- RecGNN 旨在学习具有循环神经结构的高级节点表示,即在节点上循环应用相同的参数集。
- ConvGNN 在每一层中堆叠多个具有不同参数的传播层。ConvGNN 与其他神经网络的组合更加灵活方便,现有的基于 GNN 推荐的大部分工作都采用 ConvGNN 来模拟传播过程。
- STGNN 是为时空图设计的,它可以同时捕获图的空间和时间依赖关系。
- GAE 广泛用于在无监督学习框架中学习图嵌入
-
4个简要框架
- GCN [48] 近似图拉普拉斯算子的一阶特征分解,以迭代地聚合来自邻居的信息。具体来说,它通过以下方式更新嵌入
- H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) ) \large H^{(l+1)} = \sigma(\widetilde D^{-\frac 1 2}\widetilde A\widetilde D^{-\frac 1 2}H^{(l)}W^{(l)}) H(l+1)=σ(D −21A D −21H(l)W(l))
- GraphSage [28] 为每个节点采样一个固定大小的邻域,提出 mean/sum/maxpooling 聚合器并采用连接操作进行更新,
- n v ( l ) = A G G R E G A T E l ( h u l , ∀ u ∈ N v ) , h
- GCN [48] 近似图拉普拉斯算子的一阶特征分解,以迭代地聚合来自邻居的信息。具体来说,它通过以下方式更新嵌入
-