多成分图卷积协同过滤

本文提出了一种名为MCCF的新颖推荐系统模型,旨在识别和利用用户-商品二部图中的多种潜在购买动机。通过多成分抽取和组件级别的注意力机制,MCCF能够更好地捕捉用户的细粒度偏好,从而提高推荐准确性。实验结果显示,MCCF在多个数据集上表现出显著的性能提升,并验证了考虑多个组件的必要性。
摘要由CSDN通过智能技术生成

多成分图卷积协同过滤

image-20200107204429221

本文由北京邮电大学联合北大和北交发表在AAAI2020上.代码和数据集见https://github.com/RuijiaW/Multi-Component-Graph-Convolutional-Collaborative-Filtering

知乎专栏对公式支持较好, 见 https://zhuanlan.zhihu.com/c_1158788280744173568

个人公众号 图与推荐

图与推荐

介绍

推荐系统有很多种经典的算法也有多种理解视角.从图的角度来理解的话,推荐系统实际上是在做用户-商品二部图上的链路预测.推荐系统在工业界很容易落地创造大量的经济价值.各大定会上关于推荐论文也是层出不穷. 但是如果我们仅仅从用户-商品简单购买交互来看的话,其实是把购买行为的建立简化了.事实上,用户-商品二部图的形成通常源于高度复杂的潜在购买动机,例如性价比(cost-effective)或颜控(appearance),仅仅用用户-商品之间的单一购买关系无法精确的进行描述为什么购买行为发生,如下图所示.

image-20200110201336461

用户U1,U3和U4的购买动机是高性价比, 他们更喜欢一些便宜实用的东西.而用户U2比较注意东西的外观,倾向于购买一些比较好看的东西.如果忽略上述潜在的购买意图,我们无法准确的预测U1将购买商品I3还是I4.如果考虑用户的潜在偏好,我们就会发现I4是对用户U1的更好建议,因为I4已经被一些偏好性价比的用户购买,这更符合用户U1的购买动机.因此**,识别用户在购买关系下的多种潜在细粒度偏好是非常有必要的.**

这就有带来2个挑战:

  • 如何识别用户-商品二部图中多种潜在成分(用户偏好)?
  • 如何重新组织融合这些潜在成分来学习用户/商品的表示?

现有的方法没有探索各种购买动机之间的差异进而导致无法捕捉到细粒度的用户偏好.因此,我们提出了一种新颖的多分量图卷积协同过滤Multi-Component graph convolutional Collaborative Filtering(MCCF)方法,以区分观察到的显式用户-商品交互下潜在的多种购买动机.具体来说,MCCF内部有两个精心设计的模块:分解器和组合器.前者首先将用户-商品交互分解为多种可能导致购买关系的潜在组件;后者自动重新组合这些潜在组件,以获得统一的用户/商品表示以进行预测.此外,稀疏正则化和邻居权重采样也被用来缓解过拟合问题并加速优化.在三个真实数据集和一个合成数据集上的经验结果不仅显示了MCCF的显着性能提升,而且很好地证明了考虑多个组件的必要性.

本文的贡献总结如下:

  • 首次探索了用户-商品二部图下,用户潜在的多种购买动机.可以更好的描述用户细粒度的偏好.
  • 首次一种新颖的多分量图卷积协同过滤Multi-Component graph convolutional Collaborative Filtering(MCCF)方法,以区分观察到的显式用户-商品交互下潜在的多种购买动机.
  • 实验验证了MCCF的有效性.同时,MCCF有较好的可解释性.

另外,虽然本文只在related work里提到了disentangled representation,本文实际上也是一种disentangled representation的方法.

模型

模型整体架构如下图所示:

image-20200110202739053

可以看出模型主要有3个部分:

  • decomposer: 分解潜在偏好并用node-level attention来学习用户/商品多个成分的表示.
  • combiner: 将多个成分利用component-level attention进行加权融合.
  • MLP Predict:评分预测.

首先,我们有一个用户-商品二部图.这里的user和item都是有一些特征:
U = [ u 1 , u 2 , ⋯   , u N u ] ∈ R L u × N u P = [ p 1 , p 2 , ⋯   , p N i ] ∈ R L i × N i \mathbf{U}=\left[\mathbf{u}_{1}, \mathbf{u}_{2}, \cdots, \mathbf{u}_{N_{u}}\right] \in \mathbb{R}^{L_{u} \times N_{u}} \\ \mathbf{P}=\left[\mathbf{p}_{1}, \mathbf{p}_{2}, \cdots, \mathbf{p}_{N_{i}}\right] \in \mathbb{R}^{L_{i} \times N_{i}} U=[u1,u2,,uNu]RLu×NuP=[p1,p2,,pNi]RLi×Ni
其中, L u L_u Lu L i L_i Li分别是用户数和商品数, N u N_u Nu N i N_i Ni分别是用户特征数和商品特征数.

多成分抽取

假定用户和商品都有M个components, 为了将这M种成分进行剥离,我们首先利用M组投影矩阵( W = { W 1 , W 2 , ⋯   , W M } \mathbf{W}=\left\{\mathbf{W}_{1}, \mathbf{W}_{2}, \cdots, \mathbf{W}_{M}\right\} W={ W1,W2,,WM} Q = { Q 1 , Q 2 , ⋯   , Q M } \mathbf{Q}=\left\{\mathbf{Q}_{1}, \mathbf{Q}_{2}, \cdots, \mathbf{Q}_{M}\right\} Q={ Q1,Q2,,QM})对它们进行投影.
h m i = Q m p i s m u = W m u u \mathbf{h}_{m}^{i}=\mathbf{Q}_{m} \mathbf{p}_{i}\\ \mathbf{s}_{m}^{u}=\mathbf{W}_{m} \mathbf{u}_{u}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值