INDUCTIVE MATRIX COMPLETION BASED ON GRAPH NEURAL NETWORKS

以下内容纯属个人见解,欢迎大家交流。

发布于2020 ICLR

1 motivation

1.1 问题

为了使矩阵完成具有归纳性,以往的作品大多使用内容(边信息),如用户年龄或电影类型来进行预测。然而,高质量的内容并不总是可用的,而且很难提取。在极端情况下,除了矩阵之外没有任何信息可以完成,那么如何学习归纳矩阵完成模型呢?

1.2 解决方法

提出了一个基于归纳图的矩阵补全(Inductive Graph-based Matrix Completion, IGMC)模型来解决这个问题。IGMC训练一个完全基于从评级矩阵生成的(用户、项目)对周围的one-hop子图的图神经网络(GNN),并将这些子图映射到它们相应的评级。它实现高度竞争性的性能与最先进的传输基线。此外,IGMC具有归纳性——它可以泛化到训练过程中看不到的用户/项目(假设它们之间存在交互),甚至可以转换到新的任务。

2 相关介绍

本文提出了一种新的不使用任何内容的归纳矩阵补全方法。此外,我们的方法不需要将整个评级矩阵作为输入,可以对单个用户-物品对推断出评级。将我们从使用内容或整个评级矩阵中解放出来的关键是局部图模式。如果对每一个观察到的评级在相应的用户和产品之间添加一条边,我们就可以从评级矩阵建立一个二部图。随后,预测未知的评级等价地转换为预测二部图中的标记链接。这将矩阵补全转化为一个链路预测问题,其中图模式在确定链路存在性方面起着重要作用。
我们采取了一种不同的方法,自动学习合适的启发式从给定的二部图。为此,我们首先为每个训练用户-项目对(u, v)提取一个h跳封闭子图,它被定义为节点u、v及其h跳内邻居从二部图导出的子图。这样的局部子图包含了u对v的评价的丰富的图模式信息,例如所有的(u0→like v1→like by u1→like v0)路径都包含在围绕(u0, v0)的1跳封闭子图中。通过将这些封闭子图提供给图神经网络(GNN),我们训练了一个图回归模型,该模型将每个子图映射为其中心用户对其中心项的评级。如下图所示:


image.png

GNN可以学习具有高度表达能力的图结构,从而在不将特征限制为预定义的启发式的情况下进行评级推理。给定一个经过训练的GNN,我们还可以将其应用于未见的用户/项目,而无需重新训练。

3 模型介绍

3.1 提取封闭子图

我们从中提取一个围绕(u, v)的h-hop封闭子图。算法1描述了提取h-hop封闭子图的BFS过程。我们将把这些封闭的子图提供给GNN,并对它们的评级进行回归。然后,对于每个测试(u, v)对,我们再次从中提取其h-hop封闭子图,并使用经过训练的GNN模型来预测其评级。注意,在提取(u, v)的训练封闭子图之后,我们应该删除(u, v)边,因为它是要预测的目标。

算法1

3.2 节点标记

为子图中的每个节点提供一个整数标签。理想情况下,我们的节点标记应该能够:1)区分目标等级所在的目标用户和目标项目,2)区分用户类型节点和项目类型节点。否则,GNN无法分辨哪个用户和哪个项目来预测评级,可能会丢失节点类型信息。
为了满足这些条件,我们提出一个节点标记如下:我们首先分别给目标用户和目标项赋予标签0和1。然后,根据算法1中包含节点在子图中的跳数来确定其他节点的标签。如果用户类型的节点包含在第跳中,我们将给它一个标签。如果第跳中包含了item类型的节点,我们将给它。这种节点标记可以充分区分:1)目标节点与“上下文”节点,2)用户与项目(用户总是有均匀的标签),3)与目标评级距离不同的节点。
请注意,这并不是唯一可能的节点标记方式,但是我们通过经验验证了其出色的性能。我们的节点标签完全在每个封闭子图内部确定,因此与全局二部图无关。给定一个新的封闭子图,即使它的所有节点都来自一个不同的二部图,我们也可以预测它的评级,因为IGMC完全依赖于局部封闭子图中的图模式,而没有利用任何特定于二部图的全局信息。

3.3 图神经网路(GNN)

IGMC则对围绕(u, v)的封闭子图应用一个图级GNN,并将子图映射到评级。因此在我们的GNN中有两个组件:1)为子图中的每个节点提取特征向量的消息传递层,2)从节点特征总结子图表示的池化层。
为了学习不同边类型引入的丰富图模式,我们采用关系图卷积算子(R-GCN),作为我们的GNN消息传递层,其形式如下:


表示节点在层的特征向量,和是可学习的参数矩阵。
因为邻居连接和不同的边缘类型由不同的参数矩阵处理,我们可以学习大量丰富的图形模式在边缘类型,如目标用户的平均评级给予项目,平均评级目标项目接收和路径两个目标节点的连接,等等。我们将消息传递层与tanh激活堆叠在两个层之间。接下来,将节点i来自不同层的特征向量串联起来,作为其最终表示:

接下来,我们将节点表示汇聚到一个图形级的特征向量中。有很多选择,比如求和,平均,分类池,分散池等。然而,在这项工作中,我们使用了一个不同的池化层,它将目标用户和项目的最终表示连接在一起,作为图的表示:

其中,我们分别使用和表示目标用户和目标项的最终表示。我们的特殊选择是因为这两个目标节点比其他上下文节点具有更重要的意义。虽然非常简单,但我们的经验证明,对于我们的矩阵完成任务,它的性能要优于加法和其他高级池化层。
在得到最终的图表示后,我们使用MLP输出预测评分:

3.4 训练

损失函数:我们最小化预测和真实值评级之间的均方误差(MSE),Ω是一个0/1掩模矩阵表明评级矩阵R的观察到的条目


在我们的GNN中使用的R-GCN层(1)对于不同的评级类型有不同的参数。这里的一个缺点是,它没有把评级的大小考虑在内。例如,在MovieLens中,4级和5级都表示用户喜欢这部电影,而1级则表示用户不喜欢这部电影。理想情况下,我们期望我们的模型能够意识到这样一个事实,即4比1更类似于5。但在R- GCN中,评级1、4和5仅被视为三种独立的边缘类型,评级的大小和顺序信息完全丢失。为了解决这个问题,我们提出了一种相邻评级正则化(ARR)技术,它鼓励相邻评级具有相似的参数矩阵。假设R中的评级呈现顺序, ,…表示用户对产品的偏好程度越来越高。那么,ARR正则化器为:

该正则化器抑制了相邻额定值的参数矩阵差异过大,不仅考虑了额定值的顺序,而且通过传递相邻额定值的知识来优化不频繁额定值。最终损失函数为:

4 图级 vs 节点级

论文中的GNN,是利用子图的图级(左图)来代替节点级(右图):


image.png

后一种基于节点的方法的一个缺点是,学习到的节点嵌入本质上是围绕两个节点独立地编码两个根的子树,不能对两个树节点之间的交互和关联建模。例如,从左图(b)的两个子树中,我们并不真正知道这两个目标节点是像(b)那样彼此隔离还是像(a)那样紧密连接;这两种情况看起来与基于节点的方法相同。
相比之下,图级GNN可以通过足够多的消息传递轮来区分这两种情况。由于学习局限于子图,因此叠加多个图的卷积层将学习越来越精细的局部结构特征。然而,对于基于节点的方法,由于没有子图边界,叠加多个图卷积只会将卷积范围扩展到不相关的遥远节点,对嵌入节点进行过平滑。
而,在每个目标评级的封闭子图上使用图级GNN比在整个二部图上使用节点级GNN要复杂得多。假设二部图有|E|边。然后使用节点级GNN执行一轮消息传递,复杂度为O(|E|)。假设所有封闭子图的最大边数为K。对所有封闭子图执行一轮消息传递,那么复杂度为O(K|E|)。在实际应用中,我们可以利用子抽样的方法将K限制在一个较小的数值,以降低IGMC的复杂度

5 实验结果

image.png

6 总结

本文提出了一种通过子图特征进行归纳推理(inductive reasoning)的矩阵补全模型,IGMC。通过本文我们证明了仅从一阶包含子图学习图特征即可在许多数据集上达到领先的性能,这似乎暗示更高阶的连接关系并没有特别多的额外价值。
此外,我们也证明了不借助于内容(content)的inductive matrix completion (IMC)方法是同样可行的且大大超越了传统的借助内容的IMC方法。IGMC的许多特性,比如迁移性、稀疏鲁棒性等都暗示了它的强大潜力。我们希望IGMC能为矩阵补全和推荐系统领域带来新的想法和启发。

你可能感兴趣的:(INDUCTIVE MATRIX COMPLETION BASED ON GRAPH NEURAL NETWORKS)