首页 > 其他 > 详细

《Graph Convolutional Matrix Completion》

时间:2020-06-13 10:21:41      阅读:63      评论:0      收藏:0      [点我收藏+]

 


 

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 分解为MUVTM \approx U V^{T}MUVT
  • 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}rR 相关的邻接矩阵(此时为元素是 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}rR 分配单独的处理通道。这种权值共享的形式受到了最近的一类卷积神经网络的启发,这些神经网络直接对图形结构的数据进行操作。图数据卷积层执行的局部操作只考虑节点的直接邻居,因此在图数据的所有位置都应用相同的转换。

局部图卷积可以看作是消息传递,其中特征值的信息被沿着图的边传递和转换

  • Discriminative Embeddings of Latent Variable Models for Structured Data,ICML 2016
  • Neural Message Passing for Quantum Chemistry 量子化学的神经信息传递,ICML 2017

文中为每个等级分配特定的转换,从 item jjj 到 user iii 传递的信息μji,r\mu_{j \rightarrow i, r}μji,r?表示为

μji,r=1cijWrxvj(1)\tag{1} \mu_{j \rightarrow i, r}=\frac{1}{c_{i j}} W_{r} x_{j}^{v}μji,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 的消息μij,r\mu_{i \rightarrow j, r}μij,r?也以类似的方式传递。在消息传递之后,对每个节点都进行消息累计操作:对每种评分rrr 下的所有邻居 ??(ui)\mathcal{N}\left(u_{i}\right)N(ui?) 求和,并将它们累积为单个矢量表示:

hui=σ[accum(j??i(ui)μji,1,,j??R(ui)μji,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???jNi?(ui?)?μji,1?,,jNR?(ui?)?μji,R???????(2)

  • accum(·)表示一个聚合运算,例如 stack(·),或 sum(·)
  • σ()\sigma(\cdot)σ() 表示激活函数,例如 ReLU(·) = max(0, ·)

把中间的输出hih_ihi?进行转换就得到了每个 user 最终的 embedding:

zui=σ(Whui)(3)\tag{3} z_{i}^{u}=\sigma\left(W h_{i}^{u}\right)ziu?=σ(Whiu?)(3)
item 的 embeddingzviz_i^vziv?使用同样的参数矩阵WWW 进行同样计算。在存在特定于 user 和 item 的辅助信息(side information)的情况下,文中将单独的参数矩阵用于 users 和 items 的 embedding。

公式(2)称为一个图卷积层,公式(3)称为一个稠密层。可以通过使用适当的激活函数堆叠几层(任意组合)来构建更深层次的模型。在最初的实验中,发现堆叠多个卷积层并不能提高性能,而将卷积层与稠密层进行简单组合的效果最佳(一个卷积层后跟着一个稠密层)。

2.4 Bilinear decoder 双线性解码器

为了在二部交互图中重建 links,考虑一个双线性解码器,把每个评分等级看作是一类。Mˇ\check{M}Mˇ表示 useriii 和 itemjjj 之间重建的评分等级。解码器通过对可能的评分等级进行双线性运算,然后应用 softmax 函数生成一个概率分布:

p(Mˇij=r)=e(zui)TQrzvjRs=1e(zui)TQsvj(4)\tag{4} p\left(\check{M}_{i j}=r\right)=\frac{e^{\left(z_{i}^{u}\right)^{T} Q_{r} z_{j}^{v}}}{\sum_{s=1}^{R} e^{\left(z_{i}^{u}\right)^{T} Q_{s} v_{j}}}p(Mˇij?=r)=s=1R?e(ziu?)TQs?vj?e(ziu?)TQr?zjv??(4)

  • QrQ_rQr?是一个维度为H×HH × HH×H 的可训练参数矩阵,HHH 是 user 或 item 隐含特征的维度

预测的评分等级计算方式为

Mˇij=g(ui,vj)=??p(Mˇij=r)[r]=rRrp(Mˇij=r)(5)\tag{5} \check{M}_{i j}=g\left(u_{i}, v_{j}\right)=\mathbb{E}_{p\left(\check{M}_{i j}=r\right)}[r]=\sum_{r \in R} r p\left(\check{M}_{i j}=r\right)Mˇij?=g(ui?,vj?)=Ep(Mˇij?=r)?[r]=rR?rp(Mˇij?=r)(5)

2.5 模型训练

Loss function

交叉熵损失

?=i,j;Ωij=1Rr=1I[Mij=r]logp(Mˇij=r)(6)\tag{6} \mathcal{L}=-\sum_{i, j ; \Omega_{i j}=1} \sum_{r=1}^{R} I\left[M_{i j}=r\right] \log p\left(\check{M}_{i j}=r\right)L=i,j;Ωij?=1?r=1R?I[Mij?=r]logp(Mˇij?=r)(6)

  • I[k=l]=1I [k = l] = 1I[k=l]=1 指示函数表示当k=lk=lk=l 时值为 1,否则为 0
  • Ω{0,1}Nu×Nv\Omega \in\{0,1\}^{N_{u} \times N_{v}}Ω{0,1}Nu?×Nv?作为未观察到的评分等级的 mask,这样对于在MMM 中的元素,如果值为 1 就代表观测到了的评分等级,为 0 则对应未观测到的。因此,只需要优化观测到的评分等级。
Mini-batching
  • 只采样固定数量的 user 和 item 对。这既是一种有效的正则化方法,也减少了训练模型所需的内存,而训练模型是将整个 movielens-10M 放入 GPU 内存中所必需的
  • 通过实验验证了当调整正则化参数时,mini-batches 和 full batches 训练,在 MovieLens-1M 数据集可以得到相似的结果
  • 对于除了 MovieLens-10M 之外的所有数据集,选择 full batches 训练,因为 mini-batches 训练收敛更快
Node dropout
  • 为了使该模型能够很好地泛化到未观测到的评分等级,在训练中使用了 dropout ,以一定概率pdropoutp_{dropout}pdropout?随机删除特定节点的所有传出消息,将其称为节点 dropout。
  • 在初始实验中,发现节点 dropout 比消息 dropout 更能有效地进行正则化
  • 节点 dropout 也会使 embedding 更不受特定 user 或 item 的影响
  • 在公式(3)的隐含层中使用了常规的 dropout
Weight sharing
  • 并不是所有的 users 和 items 对于同一个评分等级都有相同的评分,这可能导致在卷积层中的权重矩阵WrW_rWr?的某些列优化得没有其他列频繁
  • 在不同rrr 的矩阵MrM_rMr?间使用一些形式的权值共享对于消除上述优化过程中的问题是可取的

Wr=rs=1Ts(7)\tag{7} W_{r}=\sum_{s=1}^{r} T_{s}Wr?=s=1r?Ts?(7)

作为成对的双线性解码器正则化的一种有效方法,采用一组基权重矩阵PsP_sPs?的线性组合形式的权值共享:

Qr=nbs=1arsPs(8)\tag{8} Q_{r}=\sum_{s=1}^{n_{b}} a_{r s} P_{s}Qr?=s=1nb??ars?Ps?(8)

  • s(1,,nb)s \in\left(1, \ldots, n_{b}\right)s(1,,nb?)
  • nbn_bnb?表示基权重矩阵PsP_sPs?的数量
  • arsa_{r s}ars?是可学习的系数,这个系数决定了每一个解码器权重矩阵QrQ_rQr?的线性组合
  • 为了避免过拟合并减少参数的数量,基权重矩阵的数量nbn_bnb?应低于评分级别的数量

2.6 Input feature representation and side information

包含每个节点信息的特征可以直接在输入时,以输入特征矩阵XuX_uXu?XvX_vXv?的形式输入到图编码器中。然而,当特征矩阵中没有足够的信息来区分不同的 users(或 items)及其兴趣时,这就产生了信息流的瓶颈问题。为此,文中加入了 user 和 item 的 side information:通过单独处理的通道直接在稠密隐含层中加入 user 节点iii 的 side informationxu,fix_{i}^{u, f}xiu,f?和 item 节点jjj 的 side informationxv,fjx_{j}^{v, f}xjv,f?

对于 user 的特征向量:
zui=σ(Whui+Wu,f2fui) with fui=σ(Wu,f1xu,fi+bu)(9)\tag{9} z_{i}^{u}=\sigma\left(W h_{i}^{u}+W_{2}^{u, f} f_{i}^{u}\right) \quad \text { with } \quad f_{i}^{u}=\sigma\left(W_{1}^{u, f} x_{i}^{u, f}+b^{u}\right)ziu?=σ(Whiu?+W2u,f?fiu?) with fiu?=σ(W1u,f?xiu,f?+bu)(9)

  • Wu,f1W_{1}^{u, f}W1u,f?Wu,f2W_{2}^{u, f}W2u,f?都是可训练的权重矩阵
  • bub^ubu 是一个 bias

类似地,对于 item 的特征向量:
zvi=σ(Whvi+Wv,f2fvi) with fvi=σ(Wv,f1xv,fi+bv)(10)\tag{10} z_{i}^{v}=\sigma\left(W h_{i}^{v}+W_{2}^{v, f} f_{i}^{v}\right) \quad \text { with } \quad f_{i}^{v}=\sigma\left(W_{1}^{v, f} x_{i}^{v, f}+b^{v}\right)ziv?=σ(Whiv?+W2v,f?fiv?) with fiv?=σ(W1v,f?xiv,f?+bv)(10)

在图卷积层的节点输入特征矩阵XuX_uXu?XvX_vXv?,选择包含图中每个节点的唯一的 one-hot 向量。

3 实验

数据集

  • 来自论文(Geometric matrix completion with recurrent multi-graph neural networks,NIPS 2017)Flixster, Douban,YahooMusic 预处理的子集
  • MovieLens(100K, 1M, and 10M)

这些数据集包括 users 对 items 的评分并且以特征的形式合并了一些 user/item 的其他信息。

技术分享图片

experiments settings

  • accumulation function (stack vs. sum)
  • whether to use ordinal weight sharing in the encoder
  • left vs. symmetric normalization
  • dropout rate p{0.3,0.4,0.5,0.6,0.7,0.8}p \in\{0.3,0.4,0.5,0.6,0.7,0.8\}p{0.3,0.4,0.5,0.6,0.7,0.8}
  • Adam optimizer,learning rate of 0 . 01
  • weight sharing in the decoder with 2 basis weight matrices
  • dense layer (no activation function)
  • graph convolution (with ReLU)
  • layer sizes of 500 and 75
  • decay factor set to 0.995

3.1 MovieLens 100K

技术分享图片
  • 使用 user 和 item side information,GCMC 都要比其他方法更好

  • 结果表明,在二部交互图上进行信息传递的简单的自编码模型比更复杂的递归估计有更好的性能

  • RMSE: 均方根误差

RMSE=MSE‾‾‾‾‾√=SSE/n‾‾‾‾‾‾√=1nni=1wi(yiyˆi)2‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√R M S E=\sqrt{M S E}=\sqrt{S S E / n}=\sqrt{\frac{1}{n} \sum_{i=1}^{n} w_{i}\left(y_{i}-\hat{y}_{i}\right)^{2}}RMSE=MSE?=SSE/n?=n1?i=1n?wi?(yi?y^?i?)2?

  • side information:users(e.g. age, gender, and occupation),movies(genres)

3.2 MovieLens 1M and 10M

技术分享图片

3.3 Flixster, Douban and YahooMusic

技术分享图片
  • 这些数据集以图的形式包含 users 和 items 的 side information
  • 通过使用邻接向量 (按度归一化) 作为相应 user/item 的特征向量,将这个基于图的 side information 集成到框架中

3.4 Cold-start analysis

  • 为了深入了解 GC-MC 模型对 side information 的使用,还研究了模型中 user 的评分数据很少 (cold-start users) 时的的性能。
  • 采用了 ML-100K 基准数据集,因此对于固定数量的 cold-start users NcN_cNc?,除了最小数量NrN_rNr?之外的所有评分都将从训练集中删除 (实验中使用固定种子随机选择)。
  • ML-100K 在其原始形式中包含至少 20 个评分的 user
技术分享图片
  • Nr{1,5,10}N_{r} \in\{1,5,10\}Nr?{1,5,10} 表示 user 的评分数量
  • Nc{0,50,100,150}N_{c} \in \{0,50,100,150\}Nc?{0,50,100,150} 表示 cold-start user 的数量
  • 虚线表示没有 side information 的实验
  • 实线表示有 side information 的实验
  • 标准误差低于 0.001,因此未显示

3.5 讨论

在二部交互图上进行信息传递的简单的自编码模型比更复杂的递归估计有更好的性能。性能提高的原因:

  • 消息传递在图中的差异。在 sRGCNN 中,分别使用 user 和 item 的 k 邻近图进行消息传递。因此,消息只在 users 之间和 items 之间传递。相反,GC-MC 使用观察到的评分图来传递消息。结果,消息从在 users 发送到 items,再从 items 发送到在 users。在 side information 设置中,还使用 Monti 等人提供的 k 邻近来计算 side information 特征。
  • 对应的图 Laplacian 的近似不同。sRGCNN 使用 Chebyshev 展开 (用 user 和 item 的 k 邻图近),给定的 p 阶展开,就是考虑到从邻居节点到 p-hop 邻居的消息。GC-MC 对于每个评分类型的二部相互图使用一阶近似,这样只访问每个节点的直接邻居。结果表明,一阶近似方法可以提高性能。

在 ML-1M 和 ML-10M 上的结果表明,有可能将文中方法扩展到更大的数据集,使其在预测性能方面接近最新最先进的基于 user 或 item 的协同过滤方法。

4 总结

  • 提出了图卷积矩阵补全 (GC-MC) 模型: 一种在推荐系统中用于矩阵补全任务的图自编码器框架。编码器包含一个图卷积层,它通过在二部 user-item 交互图上传递消息来构造 users 和 items 的 embedding。结合双线性解码器,以标记边的形式预测新的评分。
  • 图动编码器框架可以很自然地包含 user 和 item 的 side information。在有 side information 的情况下,文中提出的 GC-MC 模型比最近的相关方法表现得更好,这在一些基准数据集上得到了证明。在没有 side information 的情况下,GC-MC 模型也取得了与目前最先进的协同过滤方法有竞争的结果。
  • 文中提出的 GC-MC 模型可以扩展到大规模的多模态数据上 (包括文本、图像和其他基于图的信息)。在这种情况下,GC-MC 模型可以与循环或卷积神经网络相结合。

 


 

 

 


 

推荐系统论文阅读:Graph Convolutional Matrix Completion

写在前面:R. van den Berg, T.N. Kipf, M. Welling.Graph Convolutional Matrix Completion.arXiv: 1706.02263 (2017), 2017. 2018 KDD Deep Learning Day spotlight 文章之一。

图卷积神经网络(GCN)是现在深度学习的热点之一,这篇文章基于 user-item 的二分图(Bipartite graph),提出了一种图自编码器框架,从链路预测的角度解决推荐系统中的评分预测问题。

一、研究灵感

先前的推荐系统的基于图的方法通常采用多级 pipline,其中包括图特征提取模型和链接预测模型,所有这些都分别进行训练。 然而,通过使用端到端学习技术对图结构数据进行建模,通常可以显着改善结果,特别是使用图自动编码器用于无监督学习和链接预测。 本文针对推荐任务提出一种图形自动编码器的特定变体。

技术分享图片

图 1 评分矩阵 -- 二分图 -- 链路预测

二、理论部分

  1. 图自编码器

本文采用(Thomas N. Kipf and Max Welling. Variational graph auto-encoders. NIPS Bayesian Deep Learning Work- shop, 2016.)中介绍的设置,因为它可以有效利用(卷积)权重共享,并允许以节点特征的形式包含边信息。 图形自动编码器包括

1)图编码器模型 Z = f(X,A),它以 N×D 特征矩阵 X 和图邻接矩阵 A 为输入,并生成 N×E 节点嵌入矩阵 Z = [z 1 T ,。 。 。 ,z N],

2)成对解码器模型ǎ= g(Z),它采用成对的节点嵌入(z i,z j)并预测邻接矩阵中的各个条目ǎij。

N 表示节点数,D 表示输入要素的数量,E 表示嵌入大小。

对于二分图 G =(W,E,R),将编码器表示为 [U,V] = f(X,M 1,...,MR),其中 M r∈{0,1} N u×N v 是与评分 r∈R 相关的邻接矩阵,对于原始等级矩阵 M 包含观测值 r 的那些元素,M r 为 1。类似地,将解码器重新构造为 M = g(U,V)。 通过最小化 M 的预测评分与 M 的实际评分之间的重构误差来训练该图自动编码器。 重建误差的度量标准包括均方根误差或交叉熵。

2. Graph convolutional encoder

本文提出的编码器模型可以有效利用图形中各个位置之间的权重分配,并为每种边类型(或评分)r∈R 分配单独的处理通道。

这种类型的局部图卷积可以看作是消息传递。 为每个等级分配特定的转换,从物品 j 到用户 i 的传递信息量μj→i,r 计算:

技术分享图片

这里,C ij 是归一化常数,可以选择 | Ni |(左归一化)或 sqrt(| Ni || Nj |) (对称归一化),其中 N i 表示节点 i 的邻居集合。 Wr 是评分的特定参数矩阵,xj 是节点 j 的(初始)特征向量。从用户到物品的消息μi→j,r 以类似的方式处理。

在消息传递之后,对每种评分 r 下的所有邻居 N i,r 求和,并将它们累积为单个矢量表示,来累积每个节点处的传入消息:

技术分享图片

其中 accum(·)表示一个聚合运算,例如 stack(·),或 sum(·)。 σ(·)表示元素级激活函数,例如 ReLU(·)。为了达到用户节点 i 的最终嵌入,我们对中间输出 h i 进行如下转换:ui = σ(W hi).

类似地,使用相同的参数矩阵 W 来计算物品嵌入 v i。在存在特定于用户和物品的辅助信息的情况下,我们将单独的参数矩阵用于用户和物品的嵌入。我们将 hi 式称为图卷积层,将 ui 式称为密集层。请注意,可以通过使用适当的激活功能堆叠几层(任意组合)来构建更深层次的模型。在最初的实验中,我们发现堆叠多个卷积层并不能提高性能,而将卷积层与紧致层进行简单组合的效果最佳。

3. Bilinear decoder

为了在图中重建链接,我们考虑使用双线性解码器,并将每个评估级别视为一个单独的类。 解码器用 M 指示用户 i 和物品 j 之间的重构等级,解码器通过双线性运算并随后应用 softmax 函数,在每个等级上的概率为:

技术分享图片

Q r 是形状为 E×E 的可训练参数矩阵,E 为隐藏用户(物品)表示 u i(v j)的维数。 预测等级的计算公式为

技术分享图片

4. training

1)Loss: softmax cross_entropy

2)节点丢失 (Node dropout)

3)mini-batching

5. 交互信息与辅助信息的结合

无辅助信息时,X 为 one-hot 向量,有辅助信息时,直接替换 X 效果不好,对特征进行单独处理再进入密集层,结合方式如下:

技术分享图片

三、实验部分

作者分别在 MovieLens(100K, 1M, and 10M), Flixster, Douban, and YahooMusic 数据集上做了测试,在 MovieLens-100k 上做了冷启动实验测试。总体效果还是不错的,详见原文。

写在后面:前几年提出的 GCN 现在大火,做为小白刚刚接触,现在仍在进一步学习。

几篇入门 GCN 写的不错的文章:

如何理解 Graph Convolutional Network(GCN)??www.zhihu.com技术分享图片何时能懂你的心——图卷积神经网络(GCN)?mp.weixin.qq.com技术分享图片

最后附上本篇论文原文:

wolfkin-hth/Recommender-systems-paper?github.com技术分享图片

学习路漫漫,狼崽在路上~

写下你的评论...
 

如果是二分类,这种方法能奏效吗?

我没有试过,这个作者 git 有开源代码,你可以试一下。

《Graph Convolutional Matrix Completion》

原文:https://www.cnblogs.com/cx2016/p/13111524.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!