Graph Convolutional Matrix Completion[KDD'18]

KDD18一篇将图卷积网络用于矩阵补全问题的论文

解决的问题

如何将图卷积网络应用于矩阵补全问题。

具体地,这篇论文做的是推荐系统方向下的矩阵补全问题,给定一个评分矩阵,如何根据已有的评分记录来预测用户对其他物品的评分。如果将评分矩阵转换为一张图,转换方法在下面有进行介绍,这时矩阵补全问题也可以看成图上的边预测问题。要预测用户对一个物品的评分,就是预测图上两个对应顶点之间相连的边的权重。

做法及创新

论文通过一个编码器-解码器的架构来实现从已有评分到特征表示再到预测评分的过程。

sQUdAS.png

Bipartite Graph Construction

首先是将推荐任务里的评分数据转化为一张图,具体做法是将用户和物品都看作图中的顶点,交互记录看作边,分数作为边的权重,如图所示:

su9fr4.png

Graph Convolutional Encoder

上一步所构建的图的输入形式为邻接矩阵$A\in \mathbb{R}^{n\times n}$与图中顶点的特征矩阵$X\in \mathbb{R}^{n\times d}$。编码器在这一步的作用就是得到用户与物品的特征表示$A,X^u,X^v\rightarrow U,V$。

具体编码时,论文将不同的评分水平分开考虑$r\in \{1,2,3,4,5\}$,我的理解是它们类似于处理图像数据时的多个channel。以一个评分水平$r$为例,说明编码得到特征表示的过程。假设用户$u_i$对电影$v_j$评分为$r$,而这部电影的特征向量为$x_j$,那么这部电影对这个用户特征表示的贡献可以表示为下面的式子(1),相当于对特征向量进行了一个线性变换。

sQUHnx.png
对当前评分水平下所有评过分的电影进行求和,再对所有评分水平求和拼接,经过一个非线性变换,就得到了用户$u_i$的特征表示$h_{u_i}$,物品的做法相同。
sQdv6A.png
sQwmmq.png

Bilinear Decoder

在分别得到用户与物品的特征表示$U$与$V$后,解码器计算出用户对物品评分为$r$的概率,再对每个评分的概率进行求和,得到最终预测的评分。

数据集

Flixster、Douban、YahooMusic、MovieLens