今天学习的是 KDD18 的一篇论文《Graph Convolutional Matrix Completion》,作者是阿姆斯特大学的同学,Thomas N. Kipf 大佬是二作。
前面我们介绍了 Kipf 大佬利用变分自编码器(VGAE)来完成链接预测问题,链接预测问题放在矩阵中可以被认为是矩阵补全。这篇论文在 VGAE 的基础上提出了 GCMC 模型,设计了一个可微的基于消息传递的图自编码框架进行矩阵补全(matrix completion),同时考虑边信息和网络结构,并分析了边信息在推荐系统冷启动的影响。
1.Introduction
先简单介绍下二部图(bipartite graph)。
二部图是一种特殊的图结构,所有的顶点可以被分割为两个互不相交的子集(U,V),并且每条边 e i j e_{ij} eij 所关联的顶点 i , j i,j i,j 分别属于这两个不同的顶点集合 ( i ∈ U , j ∈ V ) (i\in U,j\in V) (i∈U,j∈V)。
二部图的应用非常广泛,比如说电影推荐这样的交互数据则可以用一个二部图来表示(user-movie),图的边则是用户对电影的评分,此时的矩阵补全就是预测用户的观看后的评分。
作者在这篇论文中提出的 GCMC 框架是一种对矩阵进行补全的图自编码框架,其利用 user 和 item 的交互信息生成 user 和 item 之间的隐特征,并通过双线性解码器来重建 user 和 item 之间的链接。
这篇论文的主要贡献主要有两点:
- 将 GNN 应用于带有 side information 的矩阵补全任务中,并证明基于消息传递的模型比之前的复杂模型具有更好的性能;
- 引入了 Dropout 正则化技术:以一定概率删除单个节点的所有传出消息。
2.GCMC
下图为 GCMC 的基本流程,在二部图的矩阵补全任务转换成比链接预测问题,并使用端到端的图自编码器进行建模:
2.1 Graph convolutional encoder
首先来看编码器。
本文针对推荐任务提出了图卷积编码器,其能够有效的利用卷积操作的权值共享。图数据的局部卷积操作只考虑节点的直接邻居,因此可以应用于图数据中的所有位置。
我们也知道,局部图卷积可以看作是一种消息传递,节点的特征值沿着边进行传递和转换。作者设计了一种基于评分等级的转换,从 item j 到 user i 的信息传递被定义为:
μ j → i , r = 1 c i j W r x j v \mu_{j\rightarrow i,r} = \frac{1}{c_{ij}} W_r x_j^v \\ μj→i,r=cij1Wrxjv
其中, c i j c_{ij} cij 为正则化常数,可以为左正则化 ∣ N ( u i ∣ |N(u_i| ∣N(ui∣ 也可以为对称正则化 ∣ N ( u i ) ∣ ∣ N ( u j ) ∣ \sqrt{|N(u_i)||N(u_j)|} ∣N(ui)∣∣N(uj)∣。 N ( u i ) N(u_i) N(ui) 表示 user i 的邻居集合; W r W_r Wr 为基于边类型(评分等级)的参数矩阵; x j v x_j^v xjv 表示 item j 的特征向量。
从 user 到 item 的消息传递也可以采用类似的方式,这个过程称为图卷积层。
在消息传递完成之后,每一个节点都会对消息进行累积操作:
h i u = σ [ accum ( ∑ j ∈ N i ( u i ) μ j → i , 1 , … , ∑ j ∈ N R ( u i ) μ j → i , R ) ] h_{i}^{u}=\sigma\left[\operatorname{accum}\left(\sum_{j \in \mathcal{N}_{i}\left(u_{i}\right)} \mu_{j \rightarrow i, 1}, \ldots, \sum_{j \in \mathcal{N}_{R}\left(u_{i}\right)} \mu_{j \rightarrow i, R}\right)\right] \\ h