推荐系统与GNN的火花

v2-071e132c7353c2be34deb925be1bf617_b.jpg
作者:十方,公众号:炼丹笔记

推荐系统会存储大量的用户与items交互数据,这些数据可以用二部图呈现。二部图对消除推荐系统中数据稀疏性和冷启动有着巨大的帮助。这篇主要总结了3个典型的GNN方法在推荐系统领域处理用户与items的二部图。

v2-b72f98dc74f44868cc831345bfd78924_b.jpg

我们可以通过每个用户交互过的item列表,构建一个巨大的二部图,如下图所示:

推荐系统与GNN的火花_第1张图片

传统的神经网络方法(如协同过滤,双塔),是无法处理上述二部图的,图神经网络就是要充分挖掘节点信息和节点与节点的交互信息,从而带来巨大的商业价值。

在推荐领域,图神经网络主要解决了以下几个问题:

  • 节点的敏感度,节点顺序很小的改变极大的影响模型的输出。
  • 节点间闭塞的信息交互,传统的深度学习模型不能够充分挖掘高阶节点之间的交互信息。
  • 解释能力弱,传统的深度模型面向直观的交互式图结构,不能用于基于图形的解释和推理。

当使用GNN处理二部图,输入节点的顺序并不会影响输出。另外,GNN使用边的去辅助传播、集成节点和邻居的状态,更新当前节点的状态,结构化的信息会被模型捕捉,并表达在每个节点上,从而解决推荐系统稀疏性的问题。

v2-ff2e2f200e3f15f50f3f2fdea16fa66b_b.jpg

embedding层主要研究如何获得交互图和一系列节点的特征,并使用此信息生成节点embedding,从而生成子图和整个图的embedding。这一层的作用是学习一个低维的向量表示,作为图神经网络模型的输入。在在早期的推荐系统中,提取用户和item的特征应用最广泛的是矩阵分解(MF),如概率矩阵分解(PMF),偏差矩阵因子分解(BiasedMF)、神经网络矩阵因子分解(NNMF)等。然而,这些方法都有很大的缺点。每次分解都需要很长的时间复杂性与较高的空间复杂性,并不能完全探究用户和item之间的隐含关系,导致推荐效果不理想。从DeepWalk算法首次应用,各种深度学习embeding方法层出不穷。

推荐系统与GNN的火花_第2张图片

最简单的方法是使用浅层嵌入方法生成节点的唯一低维向量表示,即在初始步骤中,每个用户和item被定义为唯一ID并直接映射成embedding。这种设计的优点是模型可互换,不变形。互换性的不变性在于该模型不依赖于邻接矩阵中行列的任意顺序,弥补了深度模型对节点输入顺序高度敏感的缺陷。

v2-831338c6757bedfec21a49fb6e38f671_b.jpg

传播更新层是GNN推荐系统模型的核心组成部分,包括两个阶段:邻居节点信息传递,聚合和更新(下图)。嵌入层解决了图数据很难高效地输入推荐算法。下一步是解决深层模型消息传输路径阻塞问题及解决方案长距离节点的信息传播问题,然后是邻居信息可以聚合在一起,为解决推荐系统中数据的稀疏性问题提供了一种可行的思路的。在每个消息传递迭代过程中,每个节点u对应的embeding可以通过图的所有邻居节点N(u)聚合进行更新,因此传播更新层可以抽象地定义为:

推荐系统与GNN的火花_第3张图片

推荐系统与GNN的火花_第4张图片

推荐系统与GNN的火花_第5张图片

v2-2287c8fa0bd7ca1322a220a2e78b4c3f_b.jpg

图卷积聚合器使用中心节点及其相邻节点的embedding的聚合来表示中心节点,并进行迭代传播,从邻居节点聚合嵌入的特征信息,并且只有一个卷积运算变换并聚合一阶图的邻域的嵌入表示,通过叠加多层图卷积网络,达到传播远处多级的信息的目的。最后更新当前节点的嵌入表示。如GraphSAGE提出了一种小批量聚合算法,它在一次更新没使用所有的邻居节点,对邻居节点中的特征进行采样,并将更新后的最终状态用于预测和反向传播。PinSage框架下使用局部图卷积运算从邻居节点聚合信息。图卷积聚合可以抽象地定义为:

v2-4e9ca692ccbf5d06ebb803d1460890bb_b.jpg

推荐系统与GNN的火花_第6张图片

v2-426587e00dd43f1307fb386828a97369_b.jpg

经典的长、短期记忆循环神经网络系统已经被证明对于学习序列数据的动态特性非常有效,其中GRU和LSTM中的输入输出门机制可以保持长期的内部状态。门控图神经网络(GGNN)使用一个门递归单元在固定步数的传播过程去更新聚合节点的隐藏状态。门聚合可以抽象地定义为:

v2-07070d0c4ae4595f112a2745a00c750b_b.jpg

v2-a10eacbab53fc3c59d9e6e3176b1baef_b.jpg

注意机制几乎已经成为处理序列数据任务的必用方法,已成功应用于机器翻译和机器阅读。注意力机制可以区分不同节点的重要性。例如,购物场景下,最近购买的产品相比那些几个月前购买的产品更有参考价值。在传播过程中加入注意机制可以给邻居节点赋权,通过不同的attention score对邻居节点的embedding进行聚合。注意力聚合器可以抽象地定义为:

推荐系统与GNN的火花_第7张图片

v2-84a581a446dfdb64406f9fa3e8565f8a_b.jpg

在多层传播之后,从每个层获得的embeding被拼接在一起作为用户或item的最终特征。除了拼接,其他的组合方法,如加权平均、最大池和LSTM,都可以。有研究表明证明了拼接是最简单且有效的,且它不涉及其他参数需要学习。最后,计算用户与item之间的内积用来预测用户的未来行为:

v2-b4c066b92a811b04c2a9634e3d88f9dc_b.jpg

推荐系统与GNN的火花_第8张图片

本篇总结了一些GNN在推荐系统的应用,其实还有很多gnn算法没有介绍,如KGAT,融合了知识图谱辅助推荐。再如KARN和SCPR这两个模型,不是选出来一个匹配商品集就完事了,还要在图中找出来对应的路径作为推荐的解释,感兴趣的读者可以去查阅相关资料。

v2-071e132c7353c2be34deb925be1bf617_b.jpg
更多干货,请关注微信公众号:炼丹笔记

你可能感兴趣的:(炼丹笔记,神经网络,算法,大数据,python,机器学习)