SDM简述

CIKM ’19, 阿里巴巴的一项推荐工作。

贡献

在已有的 sequence-based 工作基础上,解决两个问题:

  • session 中存在 multiple interest tendencies
  • long-term behaviors are various and complex. 为此设计 long-short term gated 作长短期兴趣融合

网络结构

SDM,长短期兴趣融合召回

user profile preference

使用 eu=concat({euppP})e_u=concat(\{e_u^p|p\in P\}) 表达用户向量。where P={age,gender,life_stage}P=\{age,gender,life\_stage\}.

short-term preference

  1. 使用 ei=concat({eiffF})e_i=concat(\{e_i^f|f\in F\}) 表达商品向量。where F={id,cate_first_level,cate_leaf_level,shop,brand}F=\{id,cate\_first\_level,cate\_leaf\_level,shop,brand\}. due to the sparsity caused by the large-scale items, encoding items only by item_id is far from satisfaction.
  2. 送往LSTM,得到 [h1u,...,htu][h^u_1,... ,h^u_t]
  3. 送往self_att, 得到[h^1u,...,h^tu][\hat h^u_1,... ,\hat h^u_t]
  4. user_attention,权重由softmax(<eu,hiu>)softmax(<e_u,h^u_i>)得到,不再像self_att那样先线性投影 Q,K 空间再点积相乘。该步得到短期偏好stus^u_t

long-term preference

  1. Lu={LfufF},lkuLfulkuRdL^u=\{L_f^u|f\in F\},l^u_k\in L^u_f, l^u_k\in R^d, F 为field的集合,同上。LfuL^u_f 为某个field的偏好list,同一field共享embedding 矩阵。
  2. zfu=user_attention(eu,Lfu)Rdz^u_f =user\_attention(e_u,L^u_f)\in R^d , 起到 pooling 作用。
  3. zu=concat({zfufF})z^u=concat(\{z^u_f|f\in F\}),得到长期偏好 pu=tanh(Wzu+b)p^u=tanh(Wz^u+b).

long-short term fusion gate

“we elaborately design a gated neural network”,Gu=σ(W1eu+W2stu+W3pu+b)GuRdG^u=\sigma(W_1e_u+W_2s^u_t+W_3p^u+b),G^u\in R^d,该gate用来控制短期兴趣的占比。
\odot为element-wise multiplication,进一步得到otu=Gustu+(1Gu)puo^u_t=G^u\odot s^u_t+(1-G^u)\odot p^u用于召回。

candidate matching

score(itemi)=<otu,vi>,score(itemi)R,viVscore(item_i)=<o^u_t,v_i>,score(item_i)\in R,v_i\in V,VV是另一个item emb矩阵。

paper对比实验

我的讨论

参考

  1. paper,SDM

相关文章: