Attention Mixtures for Time-Aware Sequential Recommendation

发布时间 2023-09-17 09:57:22作者: 馒头and花卷

Tran V., Salha-Galvan G., Sguerra B. and Hennequin R. Attention mixtures for time-aware sequential recommendation. SIGIR, 2023.

本文希望更好地利用时间信息, 主要是在 short-/long-interest 上地研究, 对于时间信息的利用感觉很一般.

符号说明

  • \(\mathcal{U}\), users;
  • \(\mathcal{V}\), items;
  • \(S_{ui} = (v_1, v_2, \ldots, v_L)\), 用户 \(u\) 的第 \(i\) 个交互序列;
  • \(C_{ui} = (\mathbf{c}, \mathbf{c}_2, \ldots, \mathbf{c}_L)\), 与之相对应的 contextual 信息, 作者假设这些信息是和时间强相关的.

MOJITO

  • MOJITO 其实和普通的 Transformer 没有什么太大的区别, 多了一些小改进.

  • Embedding Layer: 对于 item 和 context 通过普通的 embedding layer 可以得到 \([\mathbf{m}_v^I; \mathbf{m}_c^C]\), 于是整个序列的 embeddings 为:

    \[\mathbf{E}_{S_{ui}, C_{ui}} = [[\mathbf{m}_{v_1}^I; \mathbf{m}_{\mathbf{c}_1}^C], \ldots, [\mathbf{m}_{v_L}^I; \mathbf{m}_{\mathbf{c}_L}^C]] \in \mathbb{R}^{L \times 2d}. \]

  • 然后为他们添加上普通的可学习的位置编码:

    \[\mathbf{P} = [\mathbf{p}_1, \ldots, \mathbf{p}_L]^T \in \mathbb{R}^{L \times 2d}. \]

    得到最终的输入的矩阵:

    \[\mathbf{X}^{(0)} = [\mathbf{x}_1^{(0)}, \ldots, \mathbf{x}_L^{(0)}] \in \mathbb{R}^{L \times 2d}, \]

    其中

    \[\mathbf{x}_l^{(0)} = [\mathbf{m}_{v_l}^I; \mathbf{m}_{\mathbf{c}_l}^C] + \mathbf{p}_l. \]

  • Short-term: 这部分的计算和一般的 Transformer 的模块没有太大的区别 (主要由 attention layer 和 feed-forward layer 构成), 稍微特别之处在于 attention 矩阵的计算:

    \[\mathbf{A}_{j} \sim \sum_{k \in \{it, c\}} p_{kj} \mathcal{N}(\mathbf{A}; \mathbf{Q}_k \mathbf{K}_k^T, \sigma_k^2), \sum_{k \in \{it, c\}} p_{kj} = 1, p_{kj} \ge 0, \]

    其中 \(\mathbf{Q}_k = \mathbf{X}_k \mathbf{W}_Q^k, \mathbf{K}_k = \mathbf{X}_k \mathbf{W}_k^k\). 即最终的 attenton 是从基于 item 序列和 context 序列的 attention 矩阵的高斯混合分布中的一个采样.

  • 注: \(\sigma_k^2\) 作者是明确说明是科学日系的, \(p_{kj}\) 不知是否也是可学习的.

  • Long-term: MOJITO 认为长期兴趣是很重要的一个环节, 故而它会从用户的整个历史交互中采样 \(N\) 个 items \(\mathcal{F} = \{f_1, \ldots, f_N\}\) (注意, 一个 user 这里会有多个交互序列, 所以和短期兴趣建模不同, 这里会用上所有的交互序列). 然后

    \[\tilde{\mathbf{m}}_u (v) = \mathbf{m}_u + \sum_{f \in \mathcal{F} \setminus \{v\}} \frac{e^{\mathbf{m}_f^T \mathbf{m}_v}}{\sum_{f' \in \mathcal{F} \setminus \{v\}} e^{\mathbf{m}_{f'}^T \mathbf{m}_v}} \mathbf{m}_f \in \mathbb{R}^d. \]

代码

[official]