LGMRec Local and Global Graph Learning for Multimodal Recommendation

Guo Z., Li J., Li G., Wang C., Shi S. and Ruan B. LGMRec: Local and global graph learning for multimodal recommendation. AAAI, 2024.

本文采用分解的方法进行对 ID 和 模态信息进行独立处理, 再加上利用超图对模态信息进行 global 的处理.

符号说明

  • \(\mathcal{U} = \{u\}\), users;
  • \(\mathcal{I} = \{i\}\), items;
  • \(\mathbf{e}_u \in \mathbb{R}^d\), user ID embeddings;
  • \(\mathbf{e}_i \in \mathbb{R}^d\), item ID embeddings;
  • \(\mathbf{E}^{id} \in \mathbb{R}^{(|\mathcal{U}| + |\mathcal{I}|) \times d}\), ID embeddings;
  • \(\mathbf{R} \in \mathbb{R}^{|\mathcal{U}| \times |\mathcal{I}|}\), interaction matrix;
  • \(m \in \mathcal{M} = \{v, t\}\), 模态;
  • \(\mathbf{e}_i^m \in \mathbb{R}^{d_m}\), item \(i\) 对应模态 embedding;
  • \(\tilde{\mathbf{e}}_i^m = \mathbf{W}_m \mathbf{e}_i^m \in \mathbb{R}^d\), 经过模态映射后的
  • \(\mathbf{A}\), 邻接矩阵;
  • \(\tilde{\mathbf{A}}\), normalized 邻接矩阵

Motivation

  • 过往的方法, 往往模态 embeddings 和 ID embeddings 共享一个 user embeddings, 但是作者发现这种情况会导致在训练的时候, 二者对于 user embeddings 的更新的贡献可能是截然相反的:

  • 如上图所示, 在训练的开始, 这种情况更外明显.

  • 此外, 作者认为, 模态信息的很重要的一个点是能够反映用户对于 color, style, shape 等属性信息的偏好, 所以应该特别显式建模出这一点.

LGMRec

Local Graph Embedding

  • 首先对于 ID, 采用 LightGCN 进行信息传播:

    \[\mathbf{E}_{lge}^{id} = \frac{1}{L + 1} \sum_{l=0}^L \mathbf{A}^l \mathbf{E}^{id}. \]

  • 其次对于模态, 首先我们初始化 user 的 embeddings 为

    \[\tilde{\mathbf{e}}_u^m = \frac{1}{|\mathcal{N}_u|} \sum_{i \in \mathcal{N}_u} \tilde{\mathbf{e}}_i^m. \]

  • 接着

    \[\tilde{\mathbf{E}}_{lge}^m = \tilde{A}^K \tilde{\mathbf{E}}^{m}. \]

Global Graph Embedding

  • 作者首先引入 \(\mathbf{V}^m \in \mathbb{R}^{|\mathcal{I}| \times A}, \mathbf{H}^m \in \mathbb{R}^{|\mathcal{U}| \times A}\) 去学习 item, user 的属性偏好,

    \[\mathbf{H}_i^m = \mathbf{E}_i^m {\mathbf{V}^m}^T, \quad \mathbf{H}_u^m = \mathbf{E}_u^m {\mathbf{H}^m}^T. \]

    其中 \(\mathbf{A}_u \in \mathbb{R}^{|\mathcal{U}| \times \mathcal{I}|}\) 是 user-related adjacency matrix (是不是 \(\mathbf{R}\) 的行归一化?).

  • 这样一来, 每个 item, user 都映射到了一个属性 \(a\), 为了确保每个 item 都尽可能映射到一个属性上, 作者额外通过 Gumbel-Softmax 来强化.

  • 接下来, item 的 embeddings 更新方式如下:

    \[\mathbf{E}_{i}^{m, h + 1} = \text{Drop}(\tilde{\mathbf{H}}_i^m) \text{Drop}(\tilde{\mathbf{H}_i^m}^{T}) \mathbf{E}_i^{m, h}. \]

    Drop 表示 dropout.
    需要注意的是, 这里 \(\mathbf{E}_i^{m, 0} = \mathbf{E}_{i, lge}^{id}\). 对于 user, 更新方式是类似的.

  • 最后,

    \[\mathbf{E}_{ghe} = \sum_{m \in \mathcal{M}} \mathbf{E}^{m, H}, \quad \mathbf{E}^{m, H} = [\mathbf{E}_u^{m, H}, \mathbf{E}_{i}^{m, H}]. \]

  • 为了保证不同模态学到的兴趣是一致的, 作者引入对比损失:

    \[\mathcal{L}_{\text{HCL}}^u = \sum_{u \in \mathcal{U}} -\log \frac{ \exp(s(\mathbf{E}_u^{v, H}, \mathbf{E}_u^{t, H}) / \tau) }{ \sum_{u' \in \mathcal{U}} \exp(s(\mathbf{E}_u^{v, H}, \mathbf{E}_{u'}^{t, H})/ \tau) }, \]

    \(s(\cdot, \cdot)\) 表示 cosine 相似度.
    对于 item 的 \(\mathcal{L}_{\text{HCL}}^i\) 是类似定义的.

Fusion

  • 最后的 embeddings 为

    \[\mathbf{E}^* = \mathbf{E}_{lge}^{id} + \sum_{m \in \mathcal{M}} \text{Norm}(\mathbf{E}_{lge}^m) + \alpha \text{Norm} (\mathbf{E}_{ghe}). \]

  • score 通过内积完成, 损失采用的是 BPR 损失加上上面说的对比损失.

代码

[official]

posted @ 2024-05-27 11:35  馒头and花卷  阅读(54)  评论(0编辑  收藏  举报