Multi-View Graph Convolutional Network for Multimedia Recommendation

Yu P., Tan Z., Lu G. and Bao B. Multi-view graph convolutional network for multimedia recommendation. MM, 2023.

本文主要处理模态内的一些不合理的相似度 (可以理解为噪声).

符号说明

  • \(\mathcal{U} = \{u\}\), users;
  • \(\mathcal{I} = \{i\}\), items;
  • \(\mathcal{M} = \{m\}\), modalities;
  • \(\mathcal{G} = (\mathcal{V}, \mathcal{E}), \mathcal{V} = \mathcal{U} \cup \mathcal{I}\), behavior graph;
  • \(\mathbf{E}_{id} \in \mathbb{R}^{d \times (|U| + |I|)}\), id embeddings;
  • \(\mathbf{E}_{i, m} \in \mathbb{R}^{d_m \times |I|}\), item modality features;

MGCN

Motivation

  • 如上图所示, 两幅图片实际上展示的是两种不同的商品 (我怎么看着还挺一致的?), 但是因为图片的背景的相似度等等, 这两张图片在隐空间中的表示的 cosine 相似度能够达到 0.648.

  • 可以认为, 图片中的无关商品的因素会带来很大的噪声, 使得商品的相互建模产生一些问题.

Behavior-Guided Purifier

  • 本文的第一步就是利用 behavior 信息来对模态信息进行一个过滤:
    1. 首先对原始的模态特征 \(\mathbf{E}_{i,m}\) 进行一个线性变换:

      \[\mathbf{\dot{E}}_{i, m} = \mathbf{W}_1 \mathbf{E}_{i, m} + \mathbf{b}_1, \]

      其中 \(\mathbf{W}_1 \in \mathbb{R}^{d \times d_m}, \mathbf{b}_1 \in \mathbb{R}^d\).

    2. 通过 behavior 信息进行调整:

      \[\mathbf{\ddot{E}}_{i,m} = f_{gate}^m (\mathbf{E}_{i, id}, \mathbf{\dot{E}}_{i, m}) = \mathbf{E}_{i, id} \odot \sigma(\mathbf{W}_2 \mathbf{\dot{E}}_{i, m} + \mathbf{b}_2), \]

      其中 \(\mathbf{W}_2 \in \mathbb{R}^{d \times d}, \mathbf{b}_2 \in \mathbb{R}^d\).
      \(\odot\) 表示 element-wise 的乘法, \(\sigma\) 表示 sigmoid 激活函数.

Multi-View Information Encoder

  • User-Item View: 首先通过 LightGCN 在 User-Item 的图上将 id embedding \(\mathbf{E}_{id}\) 转换为 \(\mathbf{\bar{E}}_{id}\).

  • Item-Item View: 首先和 LATTICE 一样得到 kNN Item-Item graph 的标准化后的邻接矩阵 \(\mathcal{\ddot{S}}_m\), 然后通过

    \[\mathbf{\bar{E}}_{i, m} = \mathbf{\ddot{E}}_{i,m} \mathcal{\ddot{S}}_{m} \]

    得到平滑后的 item modality embeddings.
    然后 user modality features 通过聚合 user 交互过的 items 的 modality features 得到:

    \[\mathbf{\ddot{e}}_{u, m} = \sum_{i \in \mathcal{N}_u} \frac{1}{ \sqrt{|\mathcal{N}_u| |\mathcal{N}_i|} } \mathbf{\bar{e}}_{i, m}. \]

  • 将二者拼接起来得到:

    \[\mathbf{\bar{E}}_m = [\mathbf{\bar{E}}_{u, m}, \mathbf{\bar{E}}_{i, m}] \in \mathbb{R}^{d \times (|U| + |I|)}. \]

Behavior-Aware Fuser

  • 接着我们要把之前的特征融合起来.

  • Modality prefrences:

    \[\mathbf{P}_m = \sigma( \mathbf{W}_3 \mathbf{\bar{E}}_{id} + \mathbf{b}_3 ), \]

    其中 \(\mathbf{W}_3 \in \mathbb{R}^{d \times d}, \mathbf{b}_3 \in \mathbb{R}^{d}\).

  • Modality-shared features:

    \[\mathbf{E}_s = \sum_{m \in \mathcal{M}} \alpha_m \mathbf{\bar{E}}_m, \\ \alpha_m = \text{softmax}(\mathbf{q}_1^T \tanh (\mathbf{W}_4 \mathbf{\bar{E}}_m + \mathbf{b}_4)). \]

    其中 \(\mathbf{W}_4 \in \mathbb{R}^{d \times d}, \mathbf{b}_4 \in \mathbb{R}^{d}\), \(\mathbf{q}_1 \in \mathbb{R}^d\) 表示 attention vector.

  • Modality-specific features:

    \[\mathbf{\tilde{E}}_m = \mathbf{\bar{E}}_m - \mathbf{E}_s. \]

  • 最后融合得到最后的特征:

    \[\mathbf{E}_{mul} = \mathbf{E}_s + \frac{1}{\mathcal{M}} \sum_{m \in \mathcal{M}} \mathbf{\tilde{E}}_m \odot \mathbf{P}_m. \]

Prediciton

  • user embedding:

    \[\mathbf{e}_u = \mathbf{\bar{e}}_{u, id} + \mathbf{e}_{u, mul}, \\ \mathbf{e}_i = \mathbf{\bar{e}}_{i, id} + \mathbf{e}_{i, mul}. \]

  • score:

    \[\hat{y}_{ui} = \mathbf{e}_u^T \mathbf{e}_i. \]

Optimation

  • 损失如下

    \[\mathcal{L} = \mathcal{L}_{BPR} + \lambda \mathcal{L}_C, \]

    其中 \(\mathcal{L}_C\):

    \[\mathcal{L}_C = \sum_{u \in \mathcal{U}} -\log \frac{ \exp( e_{u, mul} \cdot \bar{e}_{u, id} / \tau ) }{ \sum_{v \in \mathcal{U}} \exp(e_{v, mul} \cdot \bar{e}_{v, id} / \tau) } \sum_{i \in \mathcal{I}} -\log \frac{ \exp( e_{i, mul} \cdot \bar{e}_{i, id} / \tau ) }{ \sum_{j \in \mathcal{I}} \exp(e_{j, mul} \cdot \bar{e}_{j, id} / \tau) }. \]

  • 作者说其 \(\mathcal{L}_C\) 的目的是促进 behavior 和模态信息的利用, 看着只是单纯对比损失好用吧.

代码

[official]

posted @ 2024-03-22 10:10  馒头and花卷  阅读(88)  评论(0编辑  收藏  举报