论文笔记整理:郝凯龙,南京大学硕士。
来源:AAAI2020
链接:https://arxiv.org/pdf/1911.10699.pdf
动机
推荐系统实际上是在做用户-商品二部图上的链路预测,仅仅用用户-商品之间的单一购买关系无法精确的进行描述为什么购买行为发生。现有的方法没有探索各种购买动机之间的差异进而导致无法捕捉到细粒度的用户偏好。因此,我们提出了一种新颖的多分量图卷积协同过滤方法 Multi-Component graph convolutional Collaborative Filtering (MCCF),以区分观察到的显式用户-商品交互下潜在的多种购买动机。在三个真实数据集和一个合成数据集上进行试验,结果不仅显示了 MCCF 的显着性能提升,而且有效地证明了多个组件的必要性。
亮点
MCCF的亮点主要包括:
(1)首次探索了用户-商品二部图下,用户潜在的多种购买动机。可以更好的描述用户细粒度的偏好;
(2)首次一种新颖的多分量图卷积协同过滤 Multi-Component graph convolutional Collaborative Filtering (MCCF) 方法,以区分观察到的显式用户-商品交互下潜在的多种购买动机;
概念及模型
MCCF 内部有两个主要模块:分解器和组合器。前者首先将用户-商品交互分解为多种可能导致购买关系的潜在组件;后者自动重新组合这些潜在组件,以获得统一的用户/商品表示以进行预测。此外,稀疏正则化和邻居权重采样用来缓解过拟合问题并加速优化
MCCF具体由三部分构成:
Decomposer:分解潜在偏好并用 node-level attention 来学习用户/商品多个成分的表示。
Combiner:多个成分利用 component-level attention 进行加权融合。
MLP+Predict:评分预测。
模型整体框架如下:
多成分抽取
假定用户和商品都有 M 个 components,为了将这 M 种成分进行剥离,文章首先利用 M 组投影矩阵对它们进行投影。实际上是将节点通过不同的投影矩阵映射到不同的空间,每个空间的表示代表一个 component。具体如下:
节点级别注意力
图神经网络通常收集邻居信息并利用神经网络更新节点表示。通过对邻居的加权混合来更新节点表示。文章先考虑聚合 item 的信息更新节点表示。给定一个用户和商品的第m个 component,文章可以利用节点级别注意力计算它们之间的一个注意力权重。基于所学习到的权重对邻居进行加权聚合,得到用户在第 m 个 component 下的表示:
评测和优化
评分部分采用常规的拼接+MLP:将用户和商品的表示拼接后经过多次神经网络映射到一个标量评分。同时,作者为了增强泛化能力,对 component 进行了L0 正则。作者引了一篇文章的稀疏正则:它把全连接换成了论文源码里 L0 约束的稀疏全连接。为了防止过拟合,作者还提出了一种采样策略:根据评分的高低来对邻居进行加权采样,这里的采样也可以使不同节点在一个 batch 里的邻居数相同,加速 GPU 运算。如下:
理论分析
实验
作者采用了3个公开数据集进行实验,分别是:MovieLen-100K、Amazon、Yelp。首先是有效性实验,模型的评价指标为:MAE 和 RMSE。
本文所提出的 MCCF 优于 GCMC。但是需要注意的是,在 Yelp 数据集上 MCCF 和 MCCF-cmp 的效果一样。也就说,在 Yelp 上对多个 component 进行平均和加权所取得效果一致。
文章利用合成数据集上进行评测。文章首先生成了 3 个用户-商品交互图,每个图都代表一种潜在意图。然后,将 3 张图进行合并,生成了所谓的合成数据集。
实验表明随着 components 的个数增加,模型效果先上升后下降并在 3 个 components 时达到最优。这里验证了本文所提出的 MCCF 模型确实可以捕获到真实个数的 component。
文章在 3 个真实数据集上验证了 components 个数对模型表现的影响。在不同数据集上最佳 components 的个数有所差异。如下:
文章验证了节点 embedding 维度大小对模型的影响。较大的维度可以更精准的表述节点,但是过大的维度可能会带来冗余。
总结
本文对推荐系统中用户-商品二部图的建立原因展开分析:用户购买商品可能是基于多种不同的购买意图,比如性价比或者外观,这也是用户的细粒度偏好。因此,文章提出了一种多分量图卷积协同过滤 Multi-Component graph convolutional Collaborative Filtering(MCCF)方法,以探索在用户-商品购买交互下潜在的多种购买动机。最后文章利用 node-level 和 component-level 的注意力来更好的学习节点表示。
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。