A Neural Influence Diffusion Model for Social Recommendation

Wu L., Sun P., Fu Y., Hong R., Wang X. and Wang M. A neural influence diffusion model for social recommendation. SIGIR, 2019.

graph + Social recommendation.

符号说明

  • \(U\), user set, \(|U| = M\);
  • \(V\), item set, \(|V| = N\);
  • \(\mathbf{R} \in \mathbb{R}^{M \times N}\), implicit feedback based rating matrix;
  • \(\mathcal{G} = (U, \mathbf{S} \in \mathbb{R}^{M \times M})\), user-user (un)directed graph, \(s_{ba} = 1\) 若 user \(a\) 关注 user \(b\).

DiffNet

  • 首先, 对于 user, item 以及它们的属性 (optional) 构建 embedding. 比如, 假设用户 \(a\) 它的 embedding 为 \(\mathbf{p}_a\), 然后它的 feature 为 \(\mathbf{x}_a\), 首先通过 fusion layer 将二者融合在一起:

    \[\mathbf{h}_a^0 = g(\mathbf{W}^0 \times [\mathbf{x}_a, \mathbf{p}_a]). \]

    对于 item 也是类似的:

    \[\mathbf{v}_i = \sigma(\mathbf{F} \times [\mathbf{q}_i, \mathbf{y}_i]). \]

  • 接着我们希望把 social graph 的信息融合进去. 第 \(k + 1\) 层进行如下操作:

    1. 邻居聚合:

      \[\mathbf{h}_{S_a}^{(k+1)} = \text{pool}(\mathbf{h}_b^k| b \in \mathcal{S}_a), \]

      其中 \(\mathcal{S}_a\) 为根据 social graph \(\mathcal{G}\) 推得的一阶邻居结点的集合.

    2. 接着

      \[\mathbf{h}_a^{k+1} = s^{(k+1)} (\mathbf{W}^k \times [\mathbf{h}_{S_a}^{k+1}, \mathbf{h}_a^k]) \]

      融合当前和之前的信息, 其中 \(\mathbf{s}^{(k+1)}(\cdot)\) 是非线性的变换(激活?)函数.

  • 最后, 我们通过:

    \[\mathbf{u}_a = \mathbf{h}_a^{K} + \sum_{i \in R_a} \frac{\mathbf{v}_i}{|R_a|} \]

    融合最后一层的 user embedding 以及它之前交互过的 item 的信息, 其中 \(R_a\) 即为用户 \(a\) 的历史交互过的 items 的集合.

  • 接着, 通过如下方式进行打分:

    \[\hat{r}_{ai} = \mathbf{u}_a^T \mathbf{v}_i. \]

代码

[official]

posted @ 2023-08-22 14:09  馒头and花卷  阅读(28)  评论(0编辑  收藏  举报