图神经网络在推荐系统中的应用

释放双眼,带上耳机,听听看~!
本文介绍了图神经网络在推荐系统中的应用,包括处理图数据、学习用户和项目的embedding,以及解决推荐系统中的主要挑战。

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天,doi.org/10.1145/112…

推荐系统中的数据大多数是图数据,图神经网络处理图数据具有天然优势,所以在推荐系统中引入图神经网络。

在推荐系统中,主要挑战是从用户/项目的交互和附带信息(如果可用)中学习有效的用户/项目 embedding.

引言

推荐系统成为很多企业不可或缺的工具,如电子商务网站、音乐、视频网站等。

早期和现在两种方法对比:

  • 基于项目的邻域方法:直接向用户推荐与他们交互过的历史项目相似的项目。简单、搞笑在早期取得成功。

  • 基于表示学习的方法:它试图将用户和项目编码为共享空间中的连续向量(embedding),从而使它们直接具有可比性。

推荐系统根据用户的兴趣和项目属性评估用户对项目的偏好,用户的兴趣和物品的属性都用压缩的矢量表示。

原文中有,现在删掉了这段描述)主要挑战:如何学习具有历史互动和其他附带信息(如社会关系和知识图)的用户/物品embedding

图结构数据举例:

  • 用户之间的社交关系和与项目相关的知识图自然是图数据

  • 用户和项目之间的交互可以被视为二部图

  • 序列中的项目转换也可以被构造为图

使用GNN的好处:

  • 推荐系统中有大量的图结构数据,使用一个统一的框架GNN来建模丰富的数据,利用图学习方法来获得用户/物品的embedding 效果好。

  • 图神经网络能够通过迭代传播捕获用户项关系中的高阶交互。而且,如果社会关系或知识图谱的信息可用,则能够使得将这样的辅助信息有效地集成到网络结构中。

学术界和工业界成就:

  • 术研究中,大量工作表明,基于GNN的模型优于以往的方法,GNN许多变体被提出并应用于各种推荐任务,如基于会话的推荐、兴趣点(Points-of-interest, POI)推荐、群体推荐和捆绑推荐。

  • 在行业中,GNN也被部署在网络规模的推荐系统中,以产生高质量的推荐结果。例如,Pinterest在一个拥有30亿个节点和180亿个边的图上开发并部署了一个基于随机行走的GCN算法模型,名为PinSage,在在线A /B测试中,用户参与度得到了大幅提升。

文章主要贡献:

  • 新的分类法:对现有的基于图神经网络的推荐模型分类。根据所处理的任务,分为一般推荐和序列推荐。进一步将这两个任务中已有的模型分为三类:仅有交互信息的模型、社交网络增强的模型和知识图谱增强的模型。

  • 全面审查:对每个类别的主要问题和模型框架进行总结

  • 未来研究:四个方面:效率、多图集成、可伸缩性和序列图构造方面,原本是前面四个,现在变为六个(引言部分没提是哪六个)

后续内容

  • 第2节介绍了推荐系统和图神经网络的初步内容,并介绍了分类框架。

  • 第3节和第4节分别总结了每个类别的主要问题,以及现有工作如何应对一般性建议和序列建议的这些挑战。

  • 第5节介绍了应用GNN的其他推荐任务。

  • 第6节讨论了该领域面临的挑战,并指出了未来的发展方向。最后,我们在第7节中总结调查。

背景和分类

推荐系统

推荐系统的两类任务:

  • 从成对的交互中建模用户的静态偏好。

  • 从连续的行为中建模用户的动态偏好。

一般推荐 General recommendation

实际上,它通常被称为协同过滤任务,这里只是为了和序列推荐区分。

一般推荐通常假设用户有静态的偏好,并基于隐式(如点击、阅读或购买)或显式(如评分)反馈对其进行建模。

常见范式:

一般推荐模型的一个常见范式是通过用户和项目的表示来重构用户的历史交互。公式表述如下:

图神经网络在推荐系统中的应用

h_u、h_i分别是最终学习到的用户表示和项目表示,f 是评分函数,可以是点积、余弦相似度、多层感知器等,y_u,i表示用户u对第i项的偏好得分,通常以概率表示。

研究说明:

大多数早期研究以矩阵的形式考虑用户-物品的交互,并将推荐表述为矩阵完成任务。利用矩阵分解(Matrix Factorization, MF)将用户和物品投射到一个共享的向量空间中,重构整个用户-物品交互矩阵,即估计用户对其未见物品的偏好

最近,利用深度学习极大地改变了推荐系统。①一个方向是通过整合辅助信息和深度学习的力量来提高推荐性能,例如文本和图像。②另一项研究试图使用更强大的模型架构来取代传统的矩阵分解,例如,多层感知器和自动编码。

序列推荐 Sequential recommendation

序列推荐认为用户的偏好是动态的、不断演变的。它试图通过探索用户历史交互中的顺序模式来预测用户可能与之交互的连续条目。

序列推荐中,用户的历史交互是按照时间顺序组织成序列的。

根据用户是否匿名及行为划分为两种类型:

  • 序列推荐

  • 会话推荐,基于会话的推荐可以看作是具有匿名和会话假设的序列推荐的一种子类型

下文通常上述两种类型统一描述为为序列推荐。

二者的区别?序列长度(会话推荐长度短?)不同?是否匿名?

序列说明:

图神经网络在推荐系统中的应用

对于用户 u 上述 s_u 是用户U的一个历史序列,i_s,1 表示用户 u 在第1个时间步点击了项目i,n是整个序列的长度。

这里点击实际上是用户和项目之间的交互,使用“点击”简单代替,方便描述。

序列推荐的任务:

是预测最可能的用户 u 在下一个时间步 n+1最有可能点击的项目。公式描述:

图神经网络在推荐系统中的应用

找到候选项目中是第n+1次点击项目的概率最大的一个。

***序列推荐的主要挑战:***是学习一种反映用户当前偏好的高效序列表示。应对这一挑战不同时期有不同的做法:

  • 早期采用马尔可夫链(Markov Chain, MC)来捕获物品到物品的转换,假设最近点击的物品反映了用户的动态偏好。

  • 循环神经网络(RNN)在序列建模方面的优势,一些工作使用RNN单元来捕获序列模式。

  • 为了进一步增强会话表示,除了最近的条目外,还利用注意机制整合了整个序列。

  • 受Transformer(基于自注意力机制的一个深度学习模型)在NLP任务中的出色表现的启发,SASRec和BERT4Rec利用自注意力技术来建模物品交互,这使得物品之间的转换更具灵活性。

  • 随着GNN的出现,利用GNN获取复杂的项目转换模式在序列推荐中越来越流行。

图神经网络技术

图神经网络简介

***GNN的主要思想:***是在传播过程中对来自邻居的特征信息进行迭代聚合,并将聚合的信息与当前的中心节点表示进行集成。

***从网络架构的角度看:***GNN是将多个传播层叠加在一起,这些传播层由聚合和更新操作组成。

在论文中,“聚合”是指从邻居处收集信息,作为邻居的聚合表示;“更新”是指将中心节点表示和聚合表示集成为最新的中心节点表示;“传播”指的是“聚合”和“更新”的结合。

在聚合步骤中,既有工作要么通过均值池操作平等对待每个邻居,要么通过注意机制区分邻居的重要性。

在更新步骤中,中心节点的表示和聚合的邻居将被集成到中心节点的更新表示中。

GNN的核心实际上也在于这两个操作:聚合和更新。无论怎么变换,实际上都是对这两个步骤的改进,采用不同的函数适用于不同场景。如GRU机制、带非线性变换的级联和求和运算等。

图神经网络模型分类(根据结构设计分类)

根据结构设计,GNN模型可以分为:循环GNN (recurrent GNN, RecGNN)、卷积GNN (convolutional GNN, ConvGNN)、时空GNN (spatial-temporal, STGNN)和图自动编码器(graph autoencoder, GAE)。

  • RecGNN的目标是学习具有循环神经结构的高级节点表示,即相同的一组参数被反复应用于节点。

  • ConvGNN在每一层中叠加多个具有不同参数的传播层。由于卷积神经网络与其他神经网络的复合更加灵活和方便,使得卷积神经网络近年来得到了极大的普及。现有的基于gnn的推荐工作大多采用ConvGNN来模拟传播过程。

  • STGNN是针对时空图设计的,它可以同时捕获一个图的空间和时间依赖关系。

  • 在无监督学习框架中,GAEs被广泛用于学习图embedding

推荐领域广泛采用的四种典型的GNN框架:

**1、GCN:**近似于图拉普拉斯算子的一阶特征分解,迭代地聚集来自邻居的信息。具体地说,它更新embedding:

图神经网络在推荐系统中的应用

A~为添加自连接的无向图的邻接矩阵,D是一个对角矩阵,D_ii表示v_i节点的度。

2、GraphSage:]为每个节点抽样一个固定大小的邻域,提出mean/sum/maxpooling聚合器,并采用拼接操作进行更新。先聚合,在更新,公式如下:

图神经网络在推荐系统中的应用

**3、GAT:**假设邻居对中心节点的影响既不相同也不是由图结构预先决定的,因此它通过利用注意机制来区分邻居的贡献,并通过关注其邻居来更新每个节点的向量。公式如下:

图神经网络在推荐系统中的应用

**4、GGNN:**是一种典型的RecGNN方法,它在更新步骤中采用门控循环单元(GRU),其优点是:GGNN确保收敛,但对于大型图来说可能存在问题,因为GGNN在所有节点上多次运行递归函数。公式如下:

图神经网络在推荐系统中的应用

上述四种模型看似不同,实际上核心思想是相同的,都是“聚合”–>”更新”,只不过采用的聚合方式、更新方式不同。

推荐系统中代表性图结构

图神经网络在推荐系统中的应用

为什么将图神经网络用于推荐

**最直观且核心的原因是:**GNN技术已被证明在各个领域的图数据表示学习中具有强大的能力,推荐中的大多数数据本质上都是图结构,如图1所示。

另外的原因:

  • 数据统一处理问题。传统模型需要根据不同的数据类型设计不同的模型,而图的角度考虑推荐中的信息,可以使用统一的GNN框架来解决所有这些任务。

一般推荐的任务是学习有效的节点表示,即用户/项表示,并进一步预测用户偏好。

序列推荐的任务是学习信息图表示,即序列表示。节点表示和图表示都可以通过GNN学习。

  • 图神经网络能够通过迭代传播捕获用户项关系中的高阶交互。

序列模型严格遵循序列的时间顺序,而GNN由于其循环结构,可以捕获序列行为中隐含的复杂用户偏好。

基于图神经网络推荐的分类

分类的基本原理在于两个方面:(1)不同类型的信息具有不同的图结构特征,需要相应的GNN策略;(2)一般推荐和序列推荐背后的假设是不同的,前者考虑的是静态用户偏好,而后者考虑的是动态用户偏好。

分类结果:

图神经网络在推荐系统中的应用

**一般推荐:**在这些类别中,模型假设用户的偏好随时间不变。根据所使用的信息类型将它们进一步分类为三个子类。

  • 如果没有辅助信息,现有的模型将用户项关系视为用户项二部图。

  • 通过社交关系信息,GNN技术被用于挖掘社交影响,以增强用户的表示。

  • 利用知识图谱信息,利用GNN方法获取项与项之间的相关性,增强项的表示。

**序列推荐:**对于顺序推荐,核心思想是为下一个项目推荐捕获序列中的转换模式。现有的大多数研究只基于序列捕捉用户的动态首选项。他们首先构建序列图,然后利用GNN方法捕获转换模式。

一般推荐 General recommendation

一般推荐旨在通过利用用户-项交互数据来建模用户偏好,从而提供一个反映每个用户静态长期兴趣的推荐列表。除了用户-项交互的信息之外,辅助信息(如果可用)通常被用来增强用户/项的表示。两种典型的辅助信息类型是社交网络和知识图谱。

值得注意的是,不同类型的信息具有不同的图结构特征。具体来说,用户-项二部图有两种类型的节点,并且每个节点的邻居都是同构的;社交网络是一个同构图;知识图谱具有多种实体和关系。考虑到图结构的不同特征需要相应的GNN策略,我们根据所使用的信息类型对其进行分类。

图神经网络在推荐系统中的应用

Bi表示二部图

用户项目交互信息

算法框架

图神经网络在推荐系统中的应用

GNN基本思想本质上是利用用户交互的项目来增强用户表示,利用用户曾经与项目交互过的项目来丰富项目表示。多层GNN方法可以模拟信息扩散过程,更有效地利用用户-物品交互中的高阶连通性。

对于用户-项目二部图(二部图中相邻的节点不同类型),关键的挑战是如何将交互项目/用户的信息传播到用户/项目(最终的用户/项目),并学习最终的用户/项目表示来进行预测。要充分利用GNN方法在二部图上的优势,主要需要解决四个问题:

  • 图构造。图结构对于信息传播的范围和类型至关重要。

原始的二部图由一组用户/项目节点以及它们之间的交互组成。是在异构二部图上应用GNN,还是基于两跳邻居重构同构图?考虑到计算效率,如何抽样具有代表性的邻居来进行图的传播,而不是在整个图上操作?

  • 邻居聚合。如何聚集来自邻居节点的信息?具体来说,是区分邻居的重要性,模型中心节点和邻居之间的亲和力,还是邻居之间的交互?

  • 信息更新。如何将中心节点表示与相邻节点的聚合表示结合起来?

  • 最终节点表示。预测用户对项目的偏好需要整体的用户/项目表示。是使用最后一层的节点表示还是所有层节点表示的组合作为最终的节点表示?

图构造

在原始图中存在两个问题:

  • 一个是有效性,即原始图结构可能不足以学习用户/项目表示。

  • 另一个是效率,在拥有数百万甚至数十亿节点的图上传播信息是不切实际的。

为了解决第一个问题,现有的作品通过增加边或虚拟节点来丰富原有的图结构。

除了user-item图外,Multi-GCCF和DGCF还在原始图的两跳邻居之间添加边,从而得到user-user图和item-item图。通过这种方式,用户之间、项目之间的接近信息可以显式地合并到用户-项目交互中。

考虑到之前的作品忽略了用户采用项目的意图,DGCF引入了虚拟意图节点,将原始图分解为每个意图对应的子图。在不同意图独立性的约束下,通过在意图感知子图之间迭代传播信息,可以学习不同意图下的解耦表示。最后的表示是将这些解耦表示进行整合,从不同的方面来表示节点,具有更好的表达能力。

针对第二个问题,提出了采样策略,使GNN高效并可扩展到大规模的基于图的推荐任务。

PinSage设计了一种基于随机游走的采样方法,以获得访问次数最高的邻域的固定大小。这样,那些不直接与中心节点相邻的节点也可能成为它的邻居。

为了进行归纳推荐,IG-MC使用目标用户/项目及其单跳邻居作为节点来构造子图。封闭子图设计减少了对原始图结构的依赖,增强了将模型转移到另一个数据集的泛化能力。

采样是原始图信息和计算效率之间的权衡。PinSage包含更多的随机性,而IG-MC牺牲了更多的图信息。在转移方面,IG-MC抽样方法较好;否则,PinSage的策略可能会更好。该模型的性能取决于采样策略,而更有效的采样策略在社区建设中的应用值得进一步研究。

邻居聚合

汇聚步骤是图结构中信息传播的重要环节,它决定了需要传播多少邻居信息。均值池化是最直接的聚合操作之一,它平等对待邻居:

图神经网络在推荐系统中的应用

均值池很容易实现,但当相邻节点的重要性显著不同时,可能就不合适了。在传统GCN的基础上,一些研究采用了“度归一化”方法,根据图结构给节点赋权:

图神经网络在推荐系统中的应用

PinSage由于采用随机游走抽样策略,在聚合邻居的向量表示时,采用归一化访问计数作为邻居的重要性。然而,这些聚合函数根据图结构来确定邻居的重要性,而忽略了连接节点之间的关系。

考虑到交互项目在反映用户偏好方面并不具有同等代表性,研究者利用注意机制来区分邻居的重要性。基于一个常识,即符合用户兴趣的嵌入物品应该更多地传递给用户(类似于物品),NGCF采用基于元素的产品来增加用户关心的物品的特征,或者用户对物品特征的偏好。以用户节点为例,邻域表示计算如下:

图神经网络在推荐系统中的应用

NIA-GCN认为现有的聚合函数不能保存邻居内部的关系信息,因此提出了成对的邻居聚合方法来显式捕获邻居之间的交互。具体地说,它在每两个邻居之间应用元素相乘来建模用户-用户/项-项关系。

尽管这些方法很有效,但对于浏览、点击等多种交互类型的情况,他们没有给予足够的重视。针对用户与物品之间的多类型关系,研究人员设计了一种分层聚合策略,并观察效果收益。例如,MBGCN首先将属于每个行为的交互项分别聚合起来,然后将不同的聚合行为进一步集成起来。

信息更新

在聚合邻居表示和中心节点表示的情况下,如何更新中心节点表示是信息迭代传播的关键。

一些研究使用邻居的聚合表示作为新的中心节点表示,即完全丢弃用户或项目节点的原始信息,这可能会忽略用户内在偏好或内在项目属性。

***其他的则同时考虑中心节点本身和它的邻居消息来更新节点表示。***一些研究将这两种表示线性地结合在和池或平均池操作。受到GraphSage的启发,一些研究采用带非线性变换的串联函数将这两种表示法整合如下(拼接后做非线性变换):

图神经网络在推荐系统中的应用

其中最外层为激活函数,如ReLU、LeakyReLU、sigmoid。与线性组合相比,结合特征变换的串联操作允许更复杂的特征交互。

值得注意的是,一些研究观察到非线性激活对整体性能的贡献很小,它们通过消除非线性来简化更新操作,从而保持甚至提高性能和提高计算效率。例如,为了进一步简化GNN结构,LightGCN去掉了特征变换,实验结果证明了其有效性。

最终节点表示

逐层应用聚合和更新操作生成节点对GNN每个深度的表示。最终的预测任务需要用户和项目的总体表示。一些研究使用GNN的最后一层的节点向量作为最终表示。

然而,在不同层中获得的表示强调通过不同连接传递的消息。具体来说,较低层次的表征更多地反映个体特征,而较高层次的表征更多地反映邻居特征。为了利用不同层输出所表示的连接,近年来的研究采用了不同的表示集成方法。

1、连接:h=h_0+h_1+···+h_n,将每一层的表示拼接在一起:

图神经网络在推荐系统中的应用

2、均值池化:对所有层的表示求均值:

图神经网络在推荐系统中的应用

3、求和池化:对所有层的表示求和,不求均值:

图神经网络在推荐系统中的应用

4、平均数池或总和池集成都平等地对待来自不同层的表示。有些将所有层的表示与按层加权池集成在一起

图神经网络在推荐系统中的应用

通过叠加多个GNN层来实现信息传播,有助于捕获长依赖关系,增强具有足够邻域信息的节点表示。然而,堆叠太多层也会导致过平滑问题。最近有研究正在寻找这种平衡。

社交网络增强

社交网络主要用于增强用户表示。

理论:“有联系的人会相互影响”

两种使用方式:

  • 一些直接使用这种关系作为正则化器来约束最终的用户表示

  • 另一些利用这种关系作为输入来增强原始用户嵌入。

早期只是简单地考虑每个用户的一阶邻居来建模社会影响,即忽略了影响在社会网络中的递归扩散。

在实践中,用户可能会受到她朋友的朋友的影响。在以往的研究中,忽视高阶影响扩散可能会导致推荐性能不佳。

由于能够模拟用户如何受到递归的社会扩散过程的影响,GNN已成为一种在推荐来建模社会信息的流行的选择。要利用GNN将用户之间的关系整合到交互行为中,主要需要解决两个问题

  • 朋友的影响。朋友也有同样的影响力吗?如果不是,如何区分不同朋友的影响?

  • 偏好集成。用户参与两种类型的关系,即与好友的社交关系和与项目的互动(在类似的项目上产生交互)。如何从社会影响的角度整合用户表现与互动行为?

朋友的影响

一般来说,社交图只包含用户是否是朋友的信息,但社交关系的强度通常是未知的。要传播朋友的信息,就必须确定朋友的影响力。

DiffNet 利用均值池操作平等对待朋友的影响。

但是,等量影响的假设并不符合实际情况,用户的影响也不适合简单地用好友的数量来确定。事实上,用户更有可能受到有强烈社会关系或相似偏好的朋友的影响。

因此,大多数研究通过测量有联系的朋友之间的注意力机制来区分邻居的影响。

相对于平均池操作,注意机制提高了整体绩效,这进一步验证了不同朋友有不同影响力的假设。

ESRP利用自动编码器机制,通过过滤不相关的关系并调查新的邻居来修改观察到的社会关系。

此外,最近的一项名为ESRF的研究认为,社会关系并不总是可靠的。社会信息的不可靠性表现在两个方面:一方面,具有明确社会联系的用户可能没有影响力;另一方面,所获得的社会关系可能是不完整的。考虑到不加选择地将不可靠的社会关系纳入推荐可能会导致较差的性能。

偏好集成

社交增强推荐系统中的用户涉及两种类型的网络,一种是用户-项目二部图,另一种是社交图。

社交增强用于一般推荐的两种策略:

图神经网络在推荐系统中的应用

为了通过利用社会信息来增强用户偏好表征,有两种策略可以将来自这两个网络的信息结合起来:

  • 一是分别从这两个网络中学习用户表示,然后将其整合到最终的偏好向量中,如图3a所示

  • 另一种方法是将两个网络合并为一个统一的网络,利用GNN传播信息,如图3b所示。

两种策略的各自优势:

1、第一种策略的优势在于两个方面:一方面,我们可以区分两个网络的扩散过程的深度,因为它们是分开处理的;另一方面,任何用户-项二部图的高级方法都可以直接应用,而对于同构图的社交网络,GNN技术最初是针对同构图提出的,因此非常适合模拟影响过程。这里有两种有代表性的方法。

1、DiffNet遵循SVD++框架,将来自两个空间的用户表示结合和池化操作,其中通过对历史项目应用均值池化获得项目空间中的用户偏好,并通过利用GNN学习社交网络中的用户表示。

注意,将交互项目嵌入的平均表示作为项目空间中的用户偏好,在GNN视图中相当于聚合用户向量的单跳邻居。DiffNet简单地将两个图的用户表示与线性加法结合起来。

2、为了充分整合这两个潜在因素,GraphRec在连接的矢量上应用多层MLPs,通过利用非线性操作增强特征交互。

2、将这两种图整合到一个统一的网络中,其优点是可以在一个统一的模型中模拟社交网络中的高阶社会影响扩散和用户-物品二部图中的兴趣扩散,这两种信息同时反映用户的偏好。

在每一层,diffnet++设计了一个多层次的注意力网络来更新用户节点。具体来说,首先利用GAT机制分别聚合二部图中的邻居(即交互项)和社交网络(即好友)的信息。考虑到不同的用户在平衡这两种关系时可能有不同的偏好,它进一步利用另一个注意力网络来融合邻居的两种隐藏状态(在聚合邻居节点时,这两种状态的权重不同)。到目前为止,还没有证据表明哪种策略会取得更好的绩效。

知识图谱增强

参考:什么是只是图谱?

利用反映用户之间关系的社交网络增强用户表示,利用知识图谱通过属性表达项目之间的关系,增强项目表示。

将知识图引入推荐可以带来两个方面的好处:

  • 知识图谱中条目之间丰富的语义关联有助于挖掘它们之间的联系,提高条目的表示能力

  • 知识图谱连接用户的历史交互项目和推荐项目,增强了结果的可解释性。

**挑战:**由于知识图的图结构复杂,即多类型实体和多类型关系,利用知识图进行推荐具有相当大的挑战性。

以往的工作是通过知识图嵌入(KGE)方法对知识图进行预处理,以学习实体和关系的嵌入。常用的KGE方法的局限性在于,它们侧重于用过渡约束建模严格的语义关联,更适合于与图相关的任务,如链接预测,而不是推荐。一些研究设计元路径来聚合邻居信息。它们很大程度上依赖于手动定义的元路径,这需要领域知识,对于复杂的知识图来说是相当劳动密集型的。

知识图增强推荐在拥有用户-项交互信息和知识图的情况下,充分利用知识图中丰富的信息,通过显式捕获物品之间的相关性,帮助估计用户对物品的偏好。为了提高知识图增强推荐的有效性,主要需要解决两个问题

  • 图构建。考虑到知识图的复杂性和知识图与用户-项目图信息融合的必要性,一些研究首先构造了知识图。如何平衡简单和信息(想要信息但不想图复杂)?如何有效地将用户整合到知识图谱中?

  • 关系感知聚合。知识图的一个特点是实体之间有多种关系。如何设计一个关系感知的聚合功能来聚合来自链接实体的信息?

图构建

有的工作直接在原有的知识图上应用GNN,而有的工作则基于知识图和用户-项二部图的信息,在第一阶段简化图结构或构造子图。

简化动机来自两个方面:一是知识图包含多个实体和关系,且总是大规模的,这增加了将GNN应用于图表示学习的挑战;

二是为了充分利用知识图进行推荐,必须将用户角色纳入知识图中,单纯将用户节点作为知识图中的另一种实体可能会引入不相关的信息,不够有效。

图简化的一种典型方法是IntentGC,它将多实体知识图中的一阶邻近性转换为二阶邻近性,即保持只有一个节点的项与项之间的关系,从而简化图的结构。

具体来说,如果物品i1和i2都是通过一个辅助节点连接,辅助节点的类型表示为这两个项目之间的关系。这种转换的优点是,从节点类型的角度来看,它将多实体图转换为同构图。但该策略不适用于大多数项目节点都是多跳(超过两跳)邻居的图,因为它极大地简化了图结构,但代价是损失了两个项节点之间的链接信息。

为了关注与用户-项目交互相关的实体和关系,一些研究首先自动提取高阶子图,将目标用户和目标项目 与 用户的历史交互项目及其在知识图中的语义联系起来。

AKGE假设两个节点之间的路径越短,连接越可靠,通过以下步骤构建子图:通过TransR预训练知识图中实体的嵌入;计算两个连接实体之间的成对欧氏距离;选取目标用户到项目节点之间距离最短的k条路径。潜在的限制是子图结构依赖于预先训练的实体嵌入和距离度量的定义。

ATBRG穷尽搜索多层实体邻居的目标项和用户历史行为中的项,并通过多个重叠实体恢复连接用户行为和目标项的路径。为了强调信息密集的实体,ATBRG进一步用单个链接对实体进行了删减,这也有助于控制图的规模。虽然这些方法可以获得与目标用户-项对更相关的子图,但无论是预训练实体嵌入还是穷尽搜索和剪枝路径,都是相当耗时的。一种有效、高效的子图构建策略值得进一步研究。

关系感知聚合

为了充分捕获知识图中的语义信息,在传播过程中既要考虑链接实体(即ei,ej),又要考虑它们之间的关系(即r_ei,r_ej)。此外,从推荐系统的角度来看,用户的作用也可能有影响。由于GAT在根据连接节点自适应分配权重方面的优势,大多数现有的工作在知识图谱上应用了传统GAT的变体,即中心节点由连接实体的加权平均值更新,并根据得分函数分配权重,表示为a(ei,ej,r_ei,r_ej,u) 。关键的挑战是如何设计一个合理有效的分数函数。

对于将用户节点视为一种实体的工作来说,在传播过程中,用户的偏好预计会溢出到知识图谱中的实体,因为项目节点会根据互动用户和相关属性的信息进行更新,然后其他实体会随着迭代扩散包含用户的偏好。因此,这些工作没有明确地对用户的兴趣关系进行建模,而是通过连接的节点和它们的关系来区分实体的影响。例如,受知识图谱中过渡关系的启发,KGAT根据关系空间中链接实体之间的距离来分配权重。

实体链接参考:https://zhuanlan.zhihu.com/p/100248426

图神经网络在推荐系统中的应用

其中,Wr是关系的转换矩阵,它将实体映射到关系空间。这样一来,距离较近的实体会向中心节点传递更多信息。这些方法更适合于包含用户节点的构造子图,因为通过堆叠有限的GNN层,用户的兴趣很难扩展到所有的相关实体。

对于不结合两个图源的工作,这些研究通过根据连接关系和特定用户分配权重,明确地表征用户对关系的兴趣。例如,KGCN采用的评分函数是用户嵌入和关系嵌入的点积,即。

图神经网络在推荐系统中的应用

这样,关系更符合用户利益的实体就会向中心节点传播更多的信息。

序列推荐 Sequential recommendation

序列推荐根据用户最近的活动预测用户的下一个偏好,试图在连续的条目之间建模顺序模式,为用户生成准确的推荐]。

在GNN优势的启发下,利用GNN将用户的序列行为转化为序列图来获取转换模式的方法越来越流行。

大多数现有的工作只关注于从序列中推断出时间上的偏好。边信息也可以用来增强序列信息,但这方面的研究还很少。这里简要总结了表3中将要讨论的工作。

表3 基于图神经网络的序列推荐。“in & out相邻矩阵”的注释意味着将序列图视为有向图。

图神经网络在推荐系统中的应用

这里和一般推荐类似,分别从只有序列信息、使用社交网络增强、使用知识图谱增强三个方面分析。

序列信息

从项目之间的邻接关系来看,项目序列可以建模为图形结构数据。GNN基于序列图,通过迭代传播获取项目的变迁,并学习有代表性的项目embedding。

序列推荐中GNN的总体框架:

图神经网络在推荐系统中的应用

注意:这里并没有使用GNN来学习序列的embedding

为了在顺序推荐中充分利用GNN,需要处理三个主要问题:

  • 图构建。要将GNN应用到序列推荐中,需要将序列数据转化为序列图。为每个序列单独构造一个子图是否足够?在几个连续的项之间添加边是否比只在两个连续的项之间添加边更好?

  • 信息传播。要捕获转换模式,哪种传播机制更合适?有必要区分链接项目的顺序(比如上图中的2先到3还是先到4)吗?

  • 序列偏好。为了获得用户的时间偏好,应该集成序列中的表示。是简单地运用注意力池化还是利用RNN结构来增强连续时间模式?

图构建

与本质上具有二部图结构的用户-项交互不同,传统顺序推荐中的顺序行为自然地以时间顺序表示,即序列,而不是序列图。基于用户的序列行为构建序列图是将GNN应用于序列推荐的必要条件。

大多数作品通过将序列中的每个项作为一个节点,并在连续点击的两个项之间添加边来构造每个序列的有向图。但存在一定的挑战:

  • 在大多数情况下,用户序列的长度较短,包含的信息有限,无法反映用户的动态偏好,在图学习中不能充分利用GNN。

针对挑战提出了一些策略:

最直接的方法是利用额外的序列,主要研究如下:

  • HetGNN(Heterogeneous Graph Neural Network,异质图神经网路)采用其他行为序列来丰富目标行为。

  • A-PGNN处理已知用户的情况,因此将用户的历史序列与当前序列合并,以丰富项-项连接。

  • DGTN基于相似序列可能反映相似的转换模式的假设,将当前序列及其相邻(相似)会话整合到一个图中。

  • GCE-GNN利用所有会话中的项目转换来帮助当前序列中的转换模式,该模式利用了本地上下文和全局上下文。这些方法都在原始序列图中引入了更多的信息,与单一序列图相比性能得到了提高。

另一种主流方法是调整当前序列的图结构:

  • 假设当前节点对多个连续项有直接影响,MA-GNN提取三个后续项并在它们之间添加边。

  • SGNN-HN 考虑到仅在连续项之间添加边可能会忽略遥远项之间的关系,因此引入一个虚拟的“星”节点作为序列的中心,与当前序列中的所有项相连接。“星”节点的向量表示反映了整个序列的整体特征。因此,每个项目都可以通过“星型”节点获得不直接连接的一些项目的知识。

  • Chen和Wong指出,现有的图构造方法忽略了邻域的序列信息,导致了无效的长期捕获问题。因此,他们提出 LESSR,它从一个序列构造两个图:一个区分相邻的顺序,另一个允许从项到其后所有项的快捷路径。

LESSR图构建参考:https://zhuanlan.zhihu.com/p/283108100,图和序列唯一对应

消息传播

在给定序列图的情况下,设计一种有效的传播机制来捕获项目之间的转换模式是非常必要的。一些研究调整了GGNN框架在有向图上传播。它利用均值池将前项和后项的信息分别进行聚合,并将两种聚合表示进行组合,利用GRU组件将邻居和中心节点的信息进行集成。传播函数如下:

图神经网络在推荐系统中的应用

N表示对应的邻居的集合,GRU(·)表示GRU组件。与池操作不同,GRU中的门机制决定哪些信息被保留和丢弃。与平等对待邻居的GGNN不同,一些作品利用注意机制来区分邻居的重要性。

上述方法在消息传递过程中都采用了排列不变的聚合函数,但忽略了邻域内项的顺序,这可能会导致信息的丢失。为了解决这个问题,LESSR在图结构中保留了条目的顺序,并利用GRU组件按顺序聚合邻居,如下所示:

图神经网络在推荐系统中的应用

h_i_s,t_k表示i_s,t邻域中按时间排序的第k个项目,n是聚合k个项目之后的邻域表示。对于用户感知的顺序推荐,A-PGNN和GAGA用用户表示法增强了邻域中项目的表示。

顺序偏好

由于传播迭代的局限性,GNN不能有效地捕获项目之间的长期依赖关系。因此,序列中的最后一项(或任何一项)的表示不足以反映用户的顺序偏好。大多数将序列转化为图的图构造方法都失去了部分序列信息。

为了获得有效的序列表示,已有的研究提出了几种整合序列中项目表示的策略:

  • 考虑到序列中的项目具有不同的优先级,因此广泛采用注意力机制进行整合。

一些作品计算序列中最后一项与所有项之间的注意权重,并将项表示聚合为全局偏好,并将其与局部偏好(即最后一项表示)合并为总体偏好。这样,总体首选项在很大程度上依赖于最后一项与用户首选项的相关性。

受多层自我注意策略在序列建模中的优势启发,GC-SAN在GNN生成的项目表示的顶层堆叠多个自我注意层,以捕获长期依赖关系。

  • 除了利用注意机制进行序列集成外,一些作品还明确地将序列信息整合到集成过程中。例如,NISER和GCE-GNN添加了位置嵌入,它反映了项目的相对顺序,以有效地获得位置感知项目表示。

  • 为了平衡连续的时间和灵活的过渡模式,FGNN采用带有注意的GRU机制,以顺序的项目表示迭代更新用户偏好。

社交网络增强

与社交网络增强一般推荐类似,一种直观的想法是,用户的动态偏好可以通过好友的偏好来增强,而这些偏好是由用户的顺序行为推断出来的。然而,据我们所知,在顺序推荐中使用社会关系信息的关注很少。可能的原因是,在顺序推荐中,特别是用户id未知的情况下,主要是从用户的顺序行为(即项目的顺序)中学习用户的表示。序列中的动态首选项比基于用户id的静态首选项重要得多。我们将简要介绍一个有代表性的作品,它采用GNN处理顺序推荐中的社会信息。DGRec[94]首先利用LSTM机制从用户最近的连续行为中提取用户的动态兴趣。此外,DGRec为用户引入了一组潜在的嵌入,以反映他们的静态偏好。将静态偏好和动态偏好相结合,初始化社交网络中的用户表示。考虑到社会影响可能会随着朋友之间关系的不同而变化,DGRec利用GAT来区分朋友在扩散过程中的影响。结果表明,在序列推荐中加入社会信息可以进一步提高性能。

知识图谱增强

与3.3节的讨论类似,序列推荐也可以从知识图中包含的丰富信息中受益,项目的表示可以通过它们的语义连接得到增强,尤其是在序列数据不足的情况下。与知识图增强一般推荐策略类似,序列信息和知识图信息既可以单独处理,也可以统一为一个图。据我们所知,将GNN应用于知识图增强顺序推荐的工作只有一个。Wang和Cai采用SRGNN提出的GNN框架来捕获过渡模式,并将知识图信息与键值记忆网络结合起来。如何充分利用这两种信息还有待进一步研究。

其他推荐任务

除了一般推荐和顺序推荐外,还有一些推荐子任务,如POI推荐和分组推荐。

点击率预测(Click-through rate (CTR) prediction)是大型工业应用中推荐系统的一项重要任务,它基于多种类型的特征来预测点击率。CTR的关键挑战之一是对特征交互进行建模。

受GNN的信息传播过程的启发,最近的一项工作Fi-GNN利用GNN捕捉特征之间的高阶交互。具体来说,构造一个特征图,每个节点对应一个特征场,不同的场通过边相互连接。因此,将特征交互任务转换为跨图传播节点信息。

兴趣点(POI)推荐在基于位置的服务中起着关键作用。基于空间和时间特征,POI推荐应模拟POI之间的地理影响以及用户顺序行为的过渡模式。

在POI推荐领域的几种图数据,如user-POI二部图、基于签入的序列图和地理图,即一定距离内的POI是连通的,边权取决于POI之间的距离。

Chang等人认为,用户连续访问这两个POIs的次数越多,这两个POIs之间的地理影响就越大。因此,签到不仅反映了用户的动态偏好,还反映了POIs之间的地理影响。

相应地,他们设计了一个名为GPR的模型,该模型从user- POI图和序列图中捕捉用户偏好和地理影响。此外,为了显式地包含POIs之间的地理分布信息,序列图中的边权取决于POIs之间的距离。

群组推荐的目的是根据用户的历史行为向一组用户建议项目,而不是单个。

存在三种类型的关系:用户-物品,每个用户与多个物品交互;用户组,一个组由几个用户组成;项目组,一组用户都选择相同的项目。“Group”可以看作是连接用户和群组推荐中的项目的桥梁,可以看作是图的一部分,也可以不看作图的一部分。

下面是这两种策略对应的两种代表性作品。GAME在图中引入“组节点”,并应用GAT为每个交互邻居分配适当的权重。通过传播扩散,可以使用交互项和用户迭代地更新组表示。但是,这种方法不能直接应用于动态更改组和不断形成新组的任务。

GLS-GRL没有引入“组”实体,而是专门为每个组构造了相应的图,其中包含用户节点、项目节点及其交互。组表示是通过集成组中涉及的用户表示生成的。

捆绑推荐旨在为用户推荐一组整体的项目。对于群组推荐,“群组”是由用户组成的;对于捆绑推荐,“组”意味着一组项。类似地,关键的挑战是获得捆绑包的表示。

有三种类型的关系:用户-物品,每个用户与多个物品交互;用户捆绑,用户选择捆绑包;物品捆绑,一个捆绑包由若干项组成。

BGCN将这三种关系统一为一个图,并从用户的角度设计了项级和捆绑包级传播。

HFGN将捆绑包视为用户通过捆绑包与物品交互的桥梁。相应地,它根据用户-捆绑包交互和捆绑包-项目映射构造一个层次结构,并进一步捕获一个捆绑包中的项目-项目交互。

图神经网络在推荐系统中的应用

未来研究方向和开放性问题

针对推荐中的异质图的GNN

异质性是推荐系统中图结构数据的主要特征之一,也就是说,推荐中的许多图包含各种类型的节点和链接。

例如,知识图谱有多类实体和关系。由于异质图的一些独特特征(如融合更多的信息和丰富的语义),直接将同质图的方法应用于它们可能会导致次优的表示。

最近的工作主要是为异质图设计GNN方法。

一些工作采用元路径来指导传播过程。然而,这些工作中的元路径需要手工设计,而自动生成这些元路径将是更可取的。

考虑到邻居聚合,一个可行的解决方案是分层聚合策略,即首先聚合每个类型内的分组邻居,然后整合不同类型的聚合表示。这种策略更适合于关系数量有限的图,对于复杂的图,探索一种更灵活、更强大的策略仍然是一个开放的问题。

一些关于基于GNN的推荐的研究也注意到了异质性问题。

例如,Multi-GCCF和NIA-GCN使用与节点类型相对应的不同转换矩阵。

MBGCN通过分层聚合处理多行为推荐。

尽管有这些新的尝试,很少有作品考虑到更复杂的图的异质性问题,例如知识图谱。此外,考虑异质性的策略总是引入更多的计算挑战,如何提高计算效率需要进一步研究。

多样化和不确定的代表性

除了数据类型的异质性(例如,节点类型,如用户和项目,以及边缘类型,如不同的行为类型),图中的用户通常也有不同的和不确定的兴趣。

像以前的工作那样,将每个用户表示为一个单一的向量(低维向量空间中的一个点),很难捕捉到用户兴趣中的这种特征。因此,如何表示用户的多重和不确定的兴趣是一个值得探索的方向。

一个自然的选择是用各种方法将这种一元向量扩展为多元向量,例如,分解表示学习或胶囊网络。一些基于GNN的推荐工作也已经开始用多个向量表示用户。

例如,DGCF明确地为多向量表示增加了正交约束,并分别对每个方面的链接节点之间的相邻关系进行迭代更新。

多向量表示的推荐研究,尤其是基于GNN的推荐模型的研究还处于初步阶段,未来还有很多问题需要研究。例如:

  • 如何拆分与用户意图相关的嵌入;

  • 如何以自适应的方式为每个用户设置不同的兴趣数;

  • 如何为多向量表示设计一个高效的传播模式。

另一个可行的解决方案是用密度而不是矢量来表示每个用户。

  • 将数据表示为密度(通常是多维高斯分布)提供了许多优势,例如,对表示及其关系的不确定性进行更好的编码,以及比点积、余弦相似度或欧氏距离更自然地表示不对称性。

具体来说,高斯嵌入已经被广泛地用于各个领域的数据不确定性建模,如词嵌入、文档嵌入和网络/图嵌入。

在推荐方面,Dos Santos等人和Jiang等人也采用高斯嵌入捕捉用户的不确定性偏好,以提高用户表示和推荐性能。

基于密度的表示,如高斯嵌入,是一个值得探索的有趣方向,但在基于gnn的推荐模型中尚未得到充分的研究。

GNN在推荐中的可扩展性

在工业推荐场景中,数据集包括数十亿个节点和边,而每个节点包含数百万个特征,由于内存占用大,训练时间长,直接应用传统的GNN具有挑战性。

为了处理大规模的图,有两个主流:

  • 一个是通过抽样来减少图的大小,使现有的GNN适用;

  • 另一个是通过改变模型结构来设计一个可扩展和高效的GNN。

采样是一种自然的、广泛采用的训练大型图的策略。

  • 例如,Graphsage对固定数量的邻居进行随机采样,

  • PinSage采用随机行走策略进行采样。

  • 此外,一些工作[18,91]从原始图中为每个用户-项目对重建了小范围的子图。

然而,抽样会或多或少地损失一部分信息,很少有研究关注如何设计一个有效的抽样策略来平衡有效性和可扩展性。

另一个解决这个问题的主流是将非线性和折叠权重矩阵的操作在连续层之间解耦。

由于邻居平均的特征只需要预计算一次,它们在模型训练中没有通信成本,具有更强的可扩展性。然而,这些模型受限于他们对聚合器和更新器的选择,相比之下,传统的GNN具有更高的学习灵活性。因此,面对大规模的图,未来应研究更多的工作。

推荐中的动态图

在现实世界的推荐系统中,用户和商品之间的关系会随着时间的推移而改变。为了保持最新的建议,系统应不断更新最新的信息。

从图形的角度来看,信息的不断更新带来的是动态图形而不是静态图形。静态图形是稳定的,因此可以进行可行的建模,而动态图形引入变化的结构。

一个有趣的前瞻性研究问题是如何设计相应的GNN框架来响应实践中的动态图形。现有的推荐研究很少关注动态图。

据我们所知,GraphSAIL是针对推荐系统的GNN增量学习的第一次尝试,它处理的是交互的变化,即节点之间的边。为了平衡更新和保存,它限制了连续学习模型中中心节点与其邻域之间的嵌入相似性,并控制了渐进学习的嵌入接近于先前版本。推荐中的动态图是一个很大程度上尚未开发的领域,值得进一步研究。

推荐中的图对抗性学习

关于噪声的问题,如果图结构包含噪声,GNN的性能将大大降低。

在现实世界的推荐场景中,节点之间的关系并不总是可靠的,这是一个普遍现象。

  • 例如,用户可能会不小心点击物品,而部分社会关系无法被捕捉到。

  • 此外,攻击者也可能向推荐系统注入虚假数据。

由于GNN容易受到噪声数据的影响,在GNN领域中出现了图对抗学习的努力。然而,在基于GNN的推荐中,很少有现有的工作关注对抗性学习,这应该是一个有趣的、有助于建立更强大的推荐系统的方向。

推荐中的GNN的接收领域

节点的接收域是指包括节点本身以及其邻居在k跳范围内可达的节点集合,其中k为传播迭代次数。

两个问题(多层可能导致过平滑,深度不够又不能获得充分信息):

  • 通过叠加多个GNN层,高度节点的接收领域扩展过大,可能会引入噪声,导致过平滑问题,从而导致性能下降。

能不能采用深度学习中解决过拟合的方式缓解这个问题?

  • 对于程度较低的节点,需要深度GNN架构来扩大其接收域,以获得足够的邻域信息。

对于推荐中的图形数据,节点度呈长尾分布,即活跃用户与物品的交互次数较多,冷用户与物品的交互次数较少,类似于热门物品和冷物品。因此,在所有节点上应用相同的传播深度可能不是最优的。

为了获得合理的接收场而自适应地决定每个节点的传播深度的新兴作品很少。因此,如何在基于GNN的推荐中为每个用户或项目自适应地选择一个合适的接收域仍然是一个值得研究的问题。

总结

由于GNN在图形数据学习方面的优势以及它在捕获协作信号和序列模式方面的有效性,GNN技术在推荐系统中的应用越来越受到学术界和工业界的关注。在这个调查中,我们提供了一个关于基于GNN的推荐系统的最新工作的全面回顾。我们提出了一个分类方案来组织现有的工程。对于每一类,我们简要地阐明了主要问题,并详细说明了有代表性的模型所采取的相应策略。我们还讨论了现有策略的优势和局限性。在此基础上,提出了未来研究的几个方向。我们希望这项调查能让读者对这一领域的最新进展有一个大致的了解,并对未来的发展有一些启示。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

chatGPT技术简介

2023-12-4 21:25:14

AI教程

深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析

2023-12-4 21:36:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索