来自:图与推荐
如今推荐系统的研究非常火热,GNN也在很多领域表现优异。推荐系统主要的挑战是从历史交互(historical interactions)和边信息(side information)中学习有效的用户(user)和物品(item)表示,由于很多信息具有图结构,而且GNN擅长表示学习,所以很多工作将GNN应用到推荐系统中。
本文是「基于GNN的推荐系统」方向的综述。本文全面回顾了相关工作,提出了一个新的分类体系,并阐述了有关该领域未来发展的新观点。
推荐系统中大部分信息具有图结构,例如社交关系、知识图谱、user-item交互组成的二部图(bipartite graph)、序列中的item转移图。GNN能够通过迭代传播捕捉高阶的交互,并且能够有效地整合社交关系和知识图谱等边信息(辅助信息)。
本文主要的贡献包括:1)新的分类体系;2)全面的回顾;3)未来的研究方向。
推荐系统可以划分为「一般的(general)推荐」和「序列化(sequential)推荐」。
「一般的推荐」认为用户具有静态的兴趣偏好,并根据隐式或显式反馈建模用户和物品间的匹配程度。从图的角度,user-item交互可以看做是二部图,GNN可以捕捉user-item交互,并学习user和item表示。另外,边信息也可以用来提升推荐性能,常见的策略是增加正则项或者融合边信息的表示。
「序列化推荐」捕捉item序列中的序列化模式,为用户推荐下一个感兴趣的物品。主要有基于马尔科夫链(MC)、基于RNN、基于注意力和自注意力机制的方法。随着GNN的出现,一些工作将item序列转换为图结构并用GNN捕捉其中的转移模式。
GNN可以通过节点间的消息传播(message passing)捕捉图上的依赖。GNN的主要思想是:迭代地聚合邻域信息,并整合聚集后的信息与当前节点的表示。根据是否使用谱卷积算子,GNN模型可以划分为谱方法和非谱方法。「谱方法」在傅里叶域(谱域)上定义图卷积算子,需要原始的图结构表示节点间的关系。「非谱方法」需要设计聚合器(aggregator)和更新器(updater)。聚合器用于聚合来自邻居的消息,更新器用于融合邻居节点和中心节点。下面简单介绍四种常见方法。
在推荐系统中使用GNN的动机有两点:1)RS中大多数据具有图结构;2)GNN擅长捕捉节点间的连接和图数据的表示学习。Fig1-4分别表示二部图、序列图、社交关系图和知识图。
最近,GNN相比于随机游走等传统的图学习方法取得了更好的表现。对于二部图,GNN能够迭代地从交互的items中传播信息,并更新用户向量(对item同理),可以增强user/item表示。GNN还可以学习边信息的压缩表示,学习到的向量可以整合到交互数据的表示中以提升性能,另外的策略是结合多个图到一个异质图,然后在全图上传播信息。
本文根据「用到的信息类型」和「是否考虑物品顺序」进行分类,如fig 5所示:
本文列出了以下有代表性的模型:
一般的推荐利用user-item交互建模用户偏好,但是受到数据稀疏性和冷启动的制约,引入边信息可缓解以上问题。
该视角下推荐系统的关键问题是矩阵补全。从图的角度,矩阵补全可以看做是图上的链接预测(link prediction)问题。GNN可以捕捉高阶交互,在二部图上应用GNN就是利用用户交互过的物品增强用户表示,对item同理。SVD++同样也是利用用户交互过的物品增强隐语义(latent factor)模型,所以单层GNN可以看做是SVD++的增强版本,多层GNN能够有效模拟信息扩散过程。
4.1.1 The overall framework. 主要挑战是如何传播用户交互过的物品信息给用户,如何传播用户信息给物品。GNN在二部图上的应用存在四个关键问题:
1)构图:考虑计算效率,如何采样邻居节点;
2)邻居聚合:如何从邻居聚合信息,多少信息应该被传播;
3)信息更新:如何整合中心节点的表示和从邻居聚合来的表示;
4)最终节点表示:用最后一层的表示还是结合所有层的结点表示
4.1.2 Representative methods.
GC-MC [Graph Convolutional Matrix Completion] [riannevdberg/gc-mc]
应对评分预测问题,交互数据表示为具有带标签边的二部图。GC-MC只用交互的物品建模用户节点而忽略了用户自身表示;利用mean-pooling聚合邻居节点,假设不同邻居同等重要;只考虑一阶邻居,不能充分利用图结构传播信息。
STAR-GCN [STAR-GCN: stacked and reconstructed graph convolutional networks for recommender systems] [jennyzhang0215/STAR-GCN]
该模型堆叠多个GCN block,每个block结构相同,堆叠多个block的原因是直接堆叠多层GCN会带来过平滑问题。为连接相邻的block,模型引入重构机制从聚合的表示中恢复原始节点向量并作为下一block的输入,模型通过mask掉一些边解决标签泄露问题,模型还mask掉一些节点并增加一个重构损失。GC-MC和STAR-GCN同等对待邻居节点的信息,且从邻居传播而来的消息只依赖于邻居节点,两模型都用最后一层的结点表示进行评分预测。
NGCF [Neural graph collaborative filtering] [xiangwang1223/neural_graph_collaborative_filtering]
NGCF模型传播的消息根据图结构和与中心节点的相似性生成,并且利用不同层的表示得到最终的结点表示。模型的动机有两点:1)用户更感兴趣物品的嵌入应该更多地传递给用户;2)不同层的表示强调通过不同连接传递的消息。NGCF用哈达玛积表示user-item相关性,以用户为例,邻居聚合和信息更新如下:
低层表示更多地反映节点个体特征,高层表示更多地反映邻居特征,因此NGCF通过拼接充分利用不同层的表示。
以上方法在全图上应用GNN而没有邻居采样,难以应用到大规模图数据上。
PinSage [Graph convolutional neural networks for web-scale recommender systems]
结合随机游走和图卷积学习节点嵌入。设计了一个基于随机游走的采样方法采样固定大小的邻居,计算结点的l1-norm访问计数,并取topT邻居节点。由于邻居节点是基于重要性采样出来的,相当于聚合邻居表示时也考虑了邻居的重要性。节点更新及最终的表示如下:
IG-MC [Inductive matrix completion based on graph neural networks][muhanzhang/IGMC]
是一种归纳式(inductive)矩阵补全模型,为每个user-item对构建1跳包含子图(enclosing subgraph),并用GNN训练由子图映射到评分的回归模型。抽取包含子图减少了对原始图结构的依赖,缓解了稀疏性造成的性能下降,增强了泛化能力,能够将模型迁移到其他数据集。与GC-MC的传播策略不同,IG-MC保留了中心节点的一些信息。模型也聚合了不同层的信息作为最终的表示。
社交网络是一个同质图,先前的工作通过增加社交正则项限制社交朋友具有相似的表示;或结合朋友的表示得到最终的用户表示。由于社交影响在社交网络中递归地传播和扩散,这符合GNN迭代传播的特征,所以最近的工作用GNN来模拟用户是如何被社交扩散过程影响的。
4.2.1 The overall framework. 社交图的两个特性:
1)边表示社交关系,但不知道关系强弱;
2)能够增强user-item交互,从社交图学到的知识可以增强用户表示。
对应两个特性,有两个问题需要解决:
1) 朋友影响:是否有不同的影响,如何区别这些影响;
2) 偏好整合:如何整合社交影响和交互行为,存在两种策略,一种交互图和社交图分别建模,一种将u-i交互和社交关系融合到一个图中统一建模,如fig7,8所示。
社交增强推荐的一般框架:
4.2.2 Representative methods.
DiffNet [A neural influence diffusion model for social recommendation] [PeiJieSun/diffnet]
根据用户社交关系和历史行为建模用户偏好,应用GraphSAGE框架建模社交扩散过程,DiffNet利用mean-pooling聚合朋友表示,利用mean-pooling聚合历史item表示得到用户在item空间的表示。
DiffNet能够利用GNN捕捉更深的社交扩散过程。但是该模型的局限包括:1)相同影响的假设不适合真实场景;2)模型忽略了item的表示也可以被交互用户增强。
GraphRec [Graph neural networks for social recommendation]
用图注意力网络在社交网络图和u-i二部图中分别学习user\item嵌入,注意力机制用来区分不同邻居的影响。社交图中,朋友的影响依赖于隐向量的相似性;二部图中,用户表示不只依赖于用户和item嵌入,还依赖于边的评分类型。最后,拼接item空间和social空间的表示再经过MLPs得到最终表示:
该模型的局限是利用单层的GAT建模社交影响可能是不足够的。
DANSER [Dual graph attention networks for deep latent representation of multifaceted social effects in recommender systems][qitianwu/DANSER-WWW-19]
考虑user-to-user的社交关系和item-to-item关系,已有模型假设朋友的社交影响是动态的,该模型利用GAT协同地学习两部分社交影响:1)用户特定的注意力权重;2)动态和上下文感知的注意力权重。「静态影响」通过传播用户偏好向量来捕捉;「动态影响」通过传播上下文感知的用户向量来捕捉,后者依赖目标item。上下文感知的用户向量计算:
类似地,item也有两个表示,也通过GAT迭代地更新。该模型提出一个融合方法能够动态地为每个user-item对中的4个交互特征分配权重。该模型融合了基于朋友的静态和动态偏好,但是也为item-to-item关系带来过多自由性。
上述工作要么只基于社交图建模社交影响,要么先在social空间和item空间分别学习用户向量,然后整合得到最终表示,然而这些工作都没有充分利用不同层的结点表示。
DiffNet++ [DiffNet++: A Neural Influence and Interest Diffusion Network for Social Recommendation]
在一个统一的框架下建模影响力扩散和兴趣扩散。对于用户节点,首先利用GAT在二部图和神经网络上聚合邻居信息,注意力机制被用来混合邻居的两种表示,用户节点通过与混合向量相加来更新。对于item节点,利用GAT传播交互邻居的信息。为捕捉不同深度的社交关系,该模型拼接不同层的表示作为最终的表示。模型优势在于两个扩散过程,不同层拼接,以及注意力机制。
4.2.3 Summary. 从以下两方面总结:
「影响力建模」:利用注意力机制来区分朋友的不同影响比mean-pooling方式表现更好,另外来自朋友的影响力也受item的影响,因此DANSER建模动态的朋友表示。
「偏好整合」:该场景下存在两种类型的图,有两种策略融合两个网络:一种分别建模两个图,优势是此时邻居都是同质的;另一种是在一个统一的图上建模,优势在于用户的表示能够同时依赖两种信息进行更新。哪种策略更好,暂无定论。
优势有三:
1)丰富的语义关联有助于挖掘潜在联系;
2)关系的多样性能够帮助扩展用户兴趣提高推荐多样性;
3)KG能够连接用户历史推荐item,提供可解释性。
将KG应用到RS中的挑战源自KG中复杂的图结构、多类型的实体和关系。先前工作通过KG embedding的方法学习实体和关系的表示;或设计meta-path聚合邻居信息。最近的工作利用GNN来捕捉item-item关系。
4.3.1 The overall framework. KG能够捕捉item之间的联系从而更好建模用户对item的偏好。存在三个问题需要解决:1)图简化;2)多关系传播;3)用户整合(将用户角色引入图结构)。
4.3.2 Representative methods.
KGCN [Knowledge Graph Convolutional Networks for Recommender Systems]
利用user-specific relation-aware GNN聚合邻居的实体信息。该工作利用知识图得到语义感知的item表示,出于计算有效性考虑,为每个实体采样固定大小的邻居,将用户偏好表示为由隐向量组成的集合,该集合也可以用来衡量用户在不同关系上的兴趣。不同用户可能对不同关系施加不同的重要性,因此模型依据关系和用户为邻居加权,这样邻居就可表征KG中的语义信息和用户对特定关系的兴趣:
对不同的用户,item的总体表示不同,且引入了KG中的语义信息。最终根据用户偏好和item表示进行预测。
KGNN-LS [Knowledge-aware graph neural networks with label smoothness regularization for recommender systems] [hwwang55/KGNN-LS]
旨在通过为给定用户识别重要的KG中关系来学习用户特定的item embedding。模型通过关系打分函数计算关系对用户的重要性,此时KG中的多种关系可以表示为用户特定的邻接矩阵,此时可以将复杂图看作传统图,可使用GCN。
表示打分函数,例如内积。该工作提出标签平滑正则,假设相邻item可能有相似的用户相关性标签,有助于泛化到未观测交互:
这种标签平滑等同于在图上进行标签传播。
KGAT [Kgat: Knowledge graph attention network for recommendation][xiangwang1223/knowledge_graph_attention_network]
将用户节点看作是KG中的一种实体,将u-i交互看作一种关系。该工作将两个图整合到一个图,该方法能够统一传播操作,但是引入了一些噪声。模型应用GAT挖掘实体间的关系。
邻居的重要性依赖于连接的实体和关系,用户的偏好表示根据交互的item迭代更新,KGAT对所有用户得到同样的item表示。另外,模型还应用TranR来根据翻译原则正则化实体和关系的embedding,通过以下损失交替地优化图正则项和分数预测项。
IntentGC [IntentGC: a Scalable Graph Convolution Framework Fusing Heterogeneous Information for Recommendation]
基于多实体知识图谱重构了user-to-user关系和item-to-item关系。如果 和 都与辅助节点相连,则为两用户建立连边。该方法优势在于很大地简化了图结构,将多关系图转化为两个同质图,分别从两个图上学习用户和物品嵌入。该工作还提出更有效的vector-wise的卷积操作代替拼接操作。
「vector-wise 图卷积」利用局部过滤器避免学习没有意义的特征交互(例如自身节点的年龄与邻居节点的评级)。
其中,L表示局部过滤器数量, 和 表示自身和邻居的过滤器权重。
AKGE [Attentive Knowledge Graph Embedding for Personalized Recommendation]
首先离自动抽取高阶子图,子图构建依赖于用户和物品的距离,该距离由节点嵌入和最短路径算法决定。模型利用注意力机制聚合邻居的结点表示,邻居的重要性依赖于连接的结点和关系。模型利用GRU机制结合邻域表示和中心节点表示。
AKGE优势源自基于最短路径的子图构造、通过所属类别增强表示以及注意力设计。局限在于子图构造依赖于通过TranR预训练的实体嵌入和距离度量的定义。
4.3.3 Summary.
从以下三点总结:
「图简化」:多种类型的实体和关系为应用GNN进行表示学习带来挑战,为此,一些工作会简化图结构,例如AKGE基于最短路径算法重构子图,IntentGC保留user-to-user关系和item-to-item关系分别构建用户和物品子图。图简化能够在损失一些图信息的前提下提高计算效率。
「多关系传播」:知识图谱的一大特性就是多关系。注意力机制广泛用于区分不同关系的重要性,注意力函数能够决定信息如何传播。多数模型考虑节点和关系为邻居加权。
「用户整合」:KG可看作是二部图以外的边信息,但是KG的规模更大。一些工作假设用户有静态的表示来应用GNN学习item表示;或者融合两种图,将用户看作是KG中的一种实体。
多数现有工作只关注序列中的时序偏好。序列化数据可以先转换为序列图,然后用GNN捕捉序列化知识。边信息也可以用来增强序列化信息,但是目前相关工作很少。
用户偏好要比单纯的连续时间模式复杂,内在的顺序也不是自注意力机制所捕捉的完全随机性。最近的工作通过将每个行为序列建模为图来提升序列行为预测的性能。
5.1.1 The overall framework.
面临以下问题:1)构图;2)信息传播;3)序列化偏好。
5.1.2 Representative methods.
SR-GNN [Session-based recommendation with graph neural networks][https://CRIPAC-DIG/SR-GNN]
为每个会话序列构建有向图,两个连续点击的item相连。模型定义两个邻接矩阵表示出边和入边的权重连接,在传播过程中,item embedding被映射到outgoing表示和incoming表示,信息传播如下所示:
模型假设邻域中的item是同等重要的,因为归一化的邻接矩阵为所有邻居赋予相同的权重。模型用GRU机制更新节点表示:
模型结合当前兴趣和一般兴趣,将最后点击item在最后一层的表示作为局部嵌入,全局嵌入利用软注意力机制聚合会话中的所有item的嵌入。
GC-SAN [Graph contextualized self-attention network for session-based recommendation]
应用于SR-GNN同样的图构造和信息聚合策略。GC-SAN通过自注意力机制聚合会话表示,推荐结果显示基于GNN的模型偏向于推荐流行物品,难以推荐相关的长尾物品。为此,NISER在item和会话嵌入上应用l2-norm。为增强序列化信息,位置嵌入也被加入到item嵌入中。
A-PGNN [Personalizing Graph Neural Networks with Attention Mechanism for Session-based Recommendation]
关注序列中的用户,同时利用注意力机制建模历史会话的影响。多数基于会话的推荐处理用户不可知的场景,因此很多方法将用户所有的会话作为一个序列,忽略了session之间的关系。该模型基于所有的会话行为构建用户行为图,增强item-to-item的联系。为引入用户影响,每个item embedding与用户embedding拼接,但效果提升有限,可能因为序列化行为已经能充分地反映用户暂时的偏好。边权重与出现次数相关而不是同等对待所有邻居,模型也用GGNN捕捉item之间的信息转移。该工作新颖之处在于通过历史会话增强当前会话的表示,通过注意力机制来利用历史会话的影响。
FGNN [Rethinking the Item Order in Session-based Recommendation with Graph Neural Networks]
利用GAT捕捉序列图中的物品转移。FGNN为不同邻居赋予不同权重,该权重不只依赖于邻接矩阵,还依赖于所连接的边和节点,用加权和更新中心节点代替复杂的门机制。GAT和GGNN的性能取决于特定的任务,
基于会话图中所有节点嵌入,FGNN通过GRU和注意力机制学习query向量,这强调了item在序列中的顺序。
MA-GNN [Memory Augmented Graph Neural Networks for Sequential Recommendation]
整合静态、动态用户偏好和共现模式进行序列化推荐。模型从三个方面衡量用户偏好:用户静态偏好,短期和长期兴趣,item共现模式,模型利用GNN建模短期内的item上下文信息。模型通过抽取一个item随后的三个item并为其建立连边构建序列图。
共享的记忆网络被用来建模长期用户兴趣,MA-GNN使用门机制平衡长期和短期兴趣:
5.1.3 Summary.
从以下三点总结:
「构图」:为将GNN应用到RS中,首先就要根据用户行为构建序列图。多数工作在两个连续点击的item之间建立连边,这样只有最近的一个item会影响到当前的item,MA-GNN为一个item后的三个item建立连边。已有工作忽略了连续item之间的时间间隔。
「信息传播」:一些工作利用mean-pooling聚合邻居节点,或利用注意力机制区别邻居的影响。由于GRU在序列化建模中的有效性,多数工作利用GRU整合邻居和中心节点的信息来更新节点表示。
「序列化偏好」:GNN的输出是节点表示。序列中所有节点的表示需要被整合为序列的表示。MA-GNN利用mean-pooling聚合,由于序列中的item不是同等重要的,SR-GNN,GC-SAN,A-PGNN应用注意力机制,FGNN结合GRU和注意力。
社交网络增强的一般推荐假设用户偏好受到朋友的影响且用户的兴趣是静态的,而在序列化推荐中,用户兴趣是动态的而用户也会受到其朋友的影响。在一般推荐中,一些工作只将社交网络看做图数据,其他工作将社交网络和user-item交互图看做图结构,类似的,社交增强的序列推荐也对应两个策略。少有工作关注社交增强的基于会话推荐。
DGRec [Session-based social recommendation via dynamic graph attention networks]
只考虑社交网络作为图数据,模型通过LSTM从最近的会话行为中抽取用户动态兴趣,在社交网络中,用户的表示是动态的,考虑社交影响可能随上下文不同而不同,模型利用GAT区分不同朋友的影响。实验结果证明了在序列化推荐中考虑动态社交影响的合理性。
6.1 Efficient GNNs for Heterogeneous Graphs
目前SOTA的GNN主要适用于同质图,然而推荐系统中的图数据都是异质的,RS中现有的GNN都是基本GNN的变体,例如PinSAGE和LightGCN。考虑推荐中图数据的特性,值得研究更有效的GNN结构,特别是对于异构图,是否设计特定的传播和更新机制能够进一步提升性能?
6.2 Multi-graph Information Integration
为充分利用边信息,有必要有效地结合边信息和user-item交互。现有工作分为两类,一种分别从两种图上学习表示,另一种首先将不同图融合到一个图,之后用GNN在统一图上学习。如何更有效地从不同图上结合信息需要进一步研究。
6.3 Scalability of GNNs in Recommendation
为了处理大规模图,现有研究通过采样方法来构建子图。一些工作应用随机游走策略,一些采用最短路径算法构建子图,采样方法会影响GNN的效率。子图的优点在于不用关心全图的规模,缺点在于每个传播层的结点表示都需要重新计算。未来工作可以研究用于邻居构造和batch生成的采样策略。结点部分重用可以节省时间复杂度。
6.4 Sequence Graph Construction for Sequential Recommendation
多数研究连接相邻item,MA-GNN抽取后续的三个item并建立连边,只连接后续的一个还是k个item仍然值得研究。另外,现有工作忽略了item之间的时间间隔的影响。由于GNN的性能依赖于序列图,所以如何构建序列图需要进一步研究。
-END-
原创:知乎@yone
https://zhuanlan.zhihu.com/p/323302898
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!
后台回复【五件套】
下载二:南大模式识别PPT
后台回复【南大模式识别】
说个正事哈
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方“深度学习自然语言处理”,进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析
整理不易,还望给个在看!