GCMC-GraphConvolutionalMatrixCompletion 图卷积矩阵补全 KDD2018_无知人生,记录点滴 - CSDN 博客_gcmc 神经网络
论文:Graph Convolutional Matrix Completion (GCMC) 图卷积矩阵补全
作者:来自于荷兰阿姆斯特丹大学的 Rianne van den Berg, Thomas N. Kipf(GCN 的作者), Max Welling
来源:KDD 2018 Workshop
论文链接:https://www.kdd.org/kdd2018/files/deep-learning-day/DLDay18_paper_32.pdf
Github 链接:https://github.com/riannevdberg/gc-mc
图卷积神经网络(GCN)是现在深度学习的热点之一,这篇文章基于 user-item 的二部图(Bipartite graph),提出了一种图自编码器框架,从链路预测的角度解决推荐系统中的评分预测问题。此外,为了验证所提出的消息传递方案,在标准的协同过滤任务上测试了所提出的模型,并展示出了一个有竞争力的结果。
1 相关介绍
1.1 背景
随着电子商务和社交媒体平台的爆炸式增长,推荐算法已经成为许多企业不可或缺的工具。
其中,推荐系统的一个子任务就是矩阵补全。文中把矩阵补全视作在图上的链路预测问题:users 和 items 的交互数据可以通过一个在 user 和 item 节点之间的二分图来表示,其中观测到的评分 / 购买用 links 来表示。因此,预测评分就相当于预测在这个 user-item 二分图中的 links。
据此,作者提出了一个图卷积矩阵补全(GCMC)框架:在用深度学习处理图结构的数据的研究进展的基础上,对矩阵进行补全的一种图自编码器框架。这个自编码器通过在二部交互图中信息传递的形式生成 user 和 item 之间的隐含特征。这种 user 和 item 之间的隐含表示用于通过一个双线性的解码器重建评分 links。
当推荐图中带有结构化的外部信息 (如社交网络) 时,将矩阵补全作为二部图上的链接预测任务的好处就变得尤为明显。将这些外部信息与交互数据相结合可以缓解与冷启动问题相关的性能瓶颈。实验证明了作者提出的的图自编码器模型能够有效地将交互数据与 side information 结合起来。进一步证明了,在纯协同过滤场景中,这种方法能够与最新最先进的方法竞争。
1.2 side information
边信息(Side Information):是指利用已有的信息 Y 辅助对信息 X 进行编码,可以使得信息 X 的编码长度更短。
边信息一个通俗的例子是:假设到马场去赌马,根据每个马的赔率可以得到一个最佳的投资方案。但是如果知道赌马的一些历史数据,例如上几场的胜负情况,那么可以得出一个更优的投资方案。赌马中的历史数据就是边信息。
1.3 contributions
- 将图神经网络应用于带有结构化 side information 的矩阵补全任务,并证明这种简单消息传递模型比基于复杂图形的方法有更好的性能
- 我们引入了节点 dropout,这是一种有效的正则化技术,它以固定的概率删除单个节点的所有传出消息的整个集合
1.4 相关介绍
自编码器
下面的基于 user 或 item 的自动编码器是一类最新最先进的协同过滤模型,可以看作是文中的图数据自编码器模型的一个特例,其中编码器只考虑 user 或 item 的 embedding。
- Autorec: Autoencoders meet collaborative filtering,WWW 2015
- Dropout: a simple way to prevent neural networks from overfitting,2014
- [CF-NADE] A neural autoregressive approach to collaborative filtering,ICML 2016
Autorec 是这的第一个这样的模型,在这个模型中,其中,部分观察到的 user 或 item 的评分向量通过编码器层投影到潜在空间,并使用均方重建误差损失的解码器层重建。
CF-NADE 算法可视为上述自动编码器体系结构的一个特例。在基于 user 的场景中,消息只从 items 传递给 users
,在基于 item 的情况下,反之亦然。和文中的自编码器不同的是,评级的 items 在编码器中被分配了默认的 3 级,从而创建了一个完全连接的交互图。CF-NADE 在节点上强制执行随机排序,并通过随机剪切将传入的消息分成两组,只保留其中一组。因此,该模型可以看作是一个去噪自动编码器,在每次迭代中,输入空间的一部分被随机丢弃。
矩阵分解模型
文中提出的模型和很多矩阵分解方法有关:
- 概率矩阵分解 (Probabilistic matrix factorization,2008) (PMF):采样概率的方法,将矩阵MMM 分解为M≈UVTM \approx U V^{T}M≈UVT
- BiasedMF(Matrix Factorization Techniques for Recommender Systems,2009): 通过合并一个 user 和 item 的特定 bias 以及全局 bias 来改进 PMF
- 神经网络矩阵分解 (Neural network matrix factorization,2015) (NNMF):扩展了 MF 方法,通过前馈神经网络传递潜在的 users 和 items 特征
- 局部低秩矩阵近似( Local low rank matrix approximation,ICML 2013):利用低秩近似的不同 (与 entry 相关) 组合来重建评价矩阵 entries
Matrix completion with side information
- 在 matrix completion (MC)(Exact matrix completion via convex optimization,2012)中,目标是用一个低秩评分矩阵去近似一个评分矩阵。然而,秩最小化是一个棘手的问题,论文中将秩最小化替换为核范数最小化 (矩阵奇异值的总和),将目标函数转化为可处理的凸函数。
- Inductive matrix completion (IMC)(Provable inductive matrix completion,2013)将 users 和 items 的内容信息合并到特征向量中,将评分矩阵中观察到的元素近似为Mij=xTiUVTyjM_{i j}=x_{i}^{T} U V^{T} y_{j}Mij?=xiT?UVTyj?,其中xix_ixi?和yjy_jyj?分别代表 useriii 和 itemjjj 的特征向量。
- geometric matrix completion (GMC) model(Matrix completion on graphs,2014)通过以 user 图和 item 图的形式添加 side information,引入了 MC 模型的正则化
- Collaborative Filtering with Graph Information: Consistency and Scalable Methods(INPS 2015) 针对图正则化矩阵补全问题,提出了一种更有效的交替最小二乘优化方法 (GRALS)。
- RGCNN(Geometric matrix completion with recurrent multi-graph neural networks,NIPS 2017) 是和本文最相关的工作。探讨了基于切比雪夫多项式的 users 和 items k-nearest 图的谱图滤波器的应用。文中的模型在一个编码器 - 解码器步骤中直接建模评级图,而不是使用递归估计,速度有显著的提升。
- PinSage,这是一个高度可扩展的图卷积网络,基于 GraphSAGE 框架,用于推荐的 web 级图,其中对邻居进行下采样以增强可扩展性。与 PinSage 相比,此文关注包含于图的 side information,例如以社交网络图的形式,并进一步引入正则化技术来提高泛化。
2 在二部图中矩阵补全作为一种连接预测
2.1 符号定义
- MMM: 评分矩阵,维度为Nu×NvN_u × N_vNu?×Nv?,其中NuN_uNu?是 users 的数量,NvN_vNv?是 items 的数量
- 非零的MijM_{ij}Mij?表示 useriii 对 itemjjj 的评分,Mij=0M_{ij}=0Mij?=0 表示一个没有观测到评分
图 1 表示了整个模型的流程。在一个二分的 user-item 交互图中,矩阵补全任务 (即对未观察到的交互的预测) 可以转换为链接预测问题,并使用端到端可训练的图自编码器进行建模。
- 交互数据可以用无向图 G 表示:G=(??,?,?)G=(\mathcal{W}, \mathcal{E}, \mathcal{R})G=(W,E,R)
- ??=??u∪??v\mathcal{W}=\mathcal{W}_{u} \cup \mathcal{W}_{v}W=Wu?∪Wv?;??u\mathcal{W}_{u}Wu?表示 user 节点的集合, 维度为NuN_uNu?;??v\mathcal{W}_{v}Wv?表示 item 节点的集合, 维度为NvN_vNv?
- 边 (ui,r,vj)∈?\left(u_{i}, r, v_{j}\right) \in \mathcal{E}(ui?,r,vj?)∈E 带有含评分等级类型的标签,r∈{1,…,R}=?r \in\{1, \ldots, R\}=\mathcal{R}r∈{1,…,R}=R
2.2 Revisiting graph auto-encoders 图自编码器
先前的推荐系统的基于图的方法通常采用多级 pipline(此论文有介绍:Recommendation as link prediction in bipartite graphs: A graph kernel-based machine learning approach),其中包括图特征提取模型和链接预测模型,所有这些都分别进行训练。 然而,通过使用端到端学习技术对图结构数据进行建模,通常可以显着改善结果,特别是使用图自动编码器用于在无向图上进行无监督学习和链接预测。
本文采用(Thomas N. Kipf and Max Welling. Variational graph auto-encoders. NIPS Bayesian Deep Learning Work- shop, 2016.)中介绍的 setup,因为它可以有效利用(卷积)权重共享,并允许以节点特征的形式包含边信息。其中
图自编码器模型:Z=f(X,A)Z = f (X , A)Z=f(X,A)
- 输入:一个N×DN × DN×D 的特征矩阵XXX 和一个图邻接矩阵AAA,DDD 表示节点特征的数量
- 输出:一个N×HN × HN×H 的节点 embedding 矩阵Z=[z1,…,zN]TZ =\left[z_{1}, \dots, z_{N}\right]^{T}Z=[z1?,…,zN?]T,HHH 表示 embedding 的 size
解码器:Aˇ=g(Z)\check{A}=g(Z)Aˇ=g(Z)
- 输入:节点的 embedding 对(zi,zj)(z_i,z_j)(zi?,zj?)
- 输出:预测邻接矩阵中的各个 tntries:Aˇij\check{A}_{i j}Aˇij?
对于推荐系统的二部图G=(??,?,?)G=(\mathcal{W}, \mathcal{E}, \mathcal{R})G=(W,E,R),将编码器重新公式化:
- [Zu,Zv]=f(Xu,Xv,M1,…,MR)\left[Z_{u}, Z_{v}\right]=f\left(X_{u}, X_{v}, M_{1}, \ldots, M_{R}\right)[Zu?,Zv?]=f(Xu?,Xv?,M1?,…,MR?),其中Mr∈{0,1}Nu×NvM_{r} \in\{0,1\}^{N_{u} \times N_{v}}Mr?∈{0,1}Nu?×Nv?表示评分等级类型r∈?r \in \mathcal{R}r∈R 相关的邻接矩阵(此时为元素是 1 或 0 的矩阵,元素为 1 表示观测到评分等级类型,元素为 0 就表示没有观测到评分的)
- ZuZ_uZu?是 user 的 embedding 矩阵,维度为Nu×HN_u × HNu?×H
- ZvZ_vZv?是 item 的 embedding 矩阵,维度为Nv×HN_v × HNv?×H
- 单个 useriii 的 embedding 是一个真值特征向量zuiz_i^uziu?
- 单个 itemjjj 的 embedding 是一个真值特征向量zvjz_j^vzjv?
类似地,对解码器重新公式化:
- Mˇ=g(Zu,Zv)\check{M}=g\left(Z_{u}, Z_{v}\right)Mˇ=g(Zu?,Zv?),表示作用在 user 和 item 的 embedding 上的函数,返回一个重构的评分矩阵Mˇ\check{M}Mˇ,维度为Nu×NvN_u × N_vNu?×Nv?
可以使用最小化Mˇ\check{M}Mˇ中的预测等级和MMM 中观测到的 ground-true 等级的 reconstruction error 训练这个图自编码器。reconstruction error 可以使用
- 均方根误差
- 当把评分等级分作不同类时,可以使用交叉熵损失
2.3 Graph convolutional encoder 图卷积编码器
本文针对推荐任务提出一种图自编码器的变体图卷积编码器。本文提出的编码器模型可以有效利用图形中各个位置之间的权重分配,并为每种边类型(或评分)r∈?r \in\mathcal{R}r∈R 分配单独的处理通道。这种权值共享的形式受到了最近的一类卷积神经网络的启发,这些神经网络直接对图形结构的数据进行操作。图数据卷积层执行的局部操作只考虑节点的直接邻居,因此在图数据的所有位置都应用相同的转换。
局部图卷积可以看作是消息传递,其中特征值的信息被沿着图的边传递和转换
- Discriminative Embeddings of Latent Variable Models for Structured Data,ICML 2016
- Neural Message Passing for Quantum Chemistry 量子化学的神经信息传递,ICML 2017
文中为每个等级分配特定的转换,从 item jjj 到 user iii 传递的信息μj→i,r\mu_{j \rightarrow i, r}μj→i,r?表示为
μj→i,r=1cijWrxvj(1)\tag{1} \mu_{j \rightarrow i, r}=\frac{1}{c_{i j}} W_{r} x_{j}^{v}μj→i,r?=cij?1?Wr?xjv?(1)
- cijc_{ij}cij?表示正则化常数,选择∣??(ui)∣\left|\mathcal{N}\left(u_{i}\right)\right|∣N(ui?)∣(left normalization) 或∣??(ui)∣∣∣??(vj)∣∣‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√\sqrt{\left|\mathcal{N}\left(u_{i}\right)\right|\left|\mathcal{N}\left(v_{j}\right)\right|}∣N(ui?)∣∣N(vj?)∣?(symmetric normalization)
- ??(ui)\mathcal{N}\left(u_{i}\right)N(ui?) 定义为 useriii 的邻居集合
- WrW_{r}Wr?是一个边类型的参数矩阵
- xvjx_j^vxjv?是 item 节点jjj 的特征向量
从 users 到 items 的消息μi→j,r\mu_{i \rightarrow j, r}μi→j,r?也以类似的方式传递。在消息传递之后,对每个节点都进行消息累计操作:对每种评分rrr 下的所有邻居 ??(ui)\mathcal{N}\left(u_{i}\right)N(ui?) 求和,并将它们累积为单个矢量表示:
hui=σ[accum(∑j∈??i(ui)μj→i,1,…,∑j∈??R(ui)μj→i,R)](2)\tag{2} 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]hiu?=σ???accum???j∈Ni?(ui?)∑?μj→i,1?,…,j∈NR?(ui?)∑?μj→i,R????