A Dynamic Recurrent Model for Next Basket Recommendation

Yu F., Liu Q., Wu S., Wang L. and Tan T. A dynamic recurrent model for next basket recommendation. International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR), 2016.

利用 RNN 进行 Next-Basket 推荐. 方法简单, 对我这种不懂序列推荐的人来说读起来很友好, very nice.

符号说明

  • \(B_{t_i}^u\), 用户 \(u\) 在时刻 \(t_i\) 的购物篮;

Markov chain model 的缺点

以往的方法常常用马尔可夫模型预测 next-basket:

\[p(i \in B_{t_i}^u|B_{t_{i-1}}^u) = \frac{1}{|B_{t_{i-1}}^u|} \sum_{j \in B_{t_{i-1}}^u} p(i \in B_{t_i}^u| j \in B_{t_{i-1}}^u), \]

即我们预测 \(t_i\) 时刻的购物篮中应该有的商品当且仅当和上一个时刻的购物篮有关. 这显然是一个过于的假设了, 因为完全有可能此刻购物篮中的东西和上上个购物篮中的东西有关, 或者完全无关 (对于那些不活跃的用户来说). 所以, 一个合理的序列推荐模型应该是能够抓住主要历史信息的, 而非仅仅前一个.

Dynamic REcurrent bAsket Model (DREAM)

作者的提出的模型的思想很简单:

  1. 首先每个 item \(i\) 有一个特征表示 \(\bm{n}_i\), 共同构成了一个大的特征表示矩阵 \(\bm{N}\);

  2. 为了获得 User 关于当前 basket 的兴趣表征 \(\bm{h}\):

    1. 将 basket 中的 items 的特征表示进行池化操作:

      \[\bm{b}_{t_i}^u := \text{Pooling}(\{\bm{n}_1, \bm{n}_2, \cdots, \bm{n}_{|B_{t_i}^u|}\}); \]

    2. 由此得到了历史中各 basket 的特征表示 \(\bm{b}_{t_i}^u, i = 1,2,\cdots\);
    3. 利用 RNN 将历史的信息聚合起来得到用户的表征 \(\bm{h}_{t_i}^u\);
  3. 通过

    \[\bm{o}_{u, t_i} = \bm{N}^T \bm{h}_{t_i}^u \]

    来获得 \(t_i\) 时刻用户 \(u\) 对于各 items 的一个打分结果.

  4. 通过 BPR loss 进行训练.

posted @ 2023-02-08 16:48  馒头and花卷  阅读(65)  评论(0)    收藏  举报