阿里序列召回模型:《SDM: Sequential Deep Matching Model for Online Large-scale Recommender System》

背景

这是阿里2019年发表的一篇用于召回阶段的序列建模论文,这篇论文主要解决了两个问题:

1. 用户可能有多个兴趣(这篇论文的多个兴趣是指用户是否购买一个商品可能会受颜色、品牌、店铺等多个因素影响),如何建模多个兴趣

2. 用户的兴趣可以分为短期兴趣(当前session),长期兴趣,如何同时建模长期兴趣和短期兴趣

 

整体架构

SDM模型的总体结构如上图所示,用户预测网络将用户的短期会话 $S^u = [\ldots, i^u_{t - 1}, i^u_t]$ 和长期行为 $\mathcal{L}^u$ 作为输入,该网络的目标是下一个交互的物品 $i^u_{t + 1}$

其中:$s^u_t$ 和 $p^u$ 分别表示短期和长期表征。$o^u_t$ 是预测的用户行为向量。$V$ 是物品嵌入向量。

模型上层视角的结构如上图所示,采用了经典的双塔模型,item tower得到 item embedding,user tower得到 user embedding,然后通过点乘求和得到score

\[ z_i = \text{score}(\mathbf{o}^u_t, \mathbf{v}_i) = \mathbf{o}^{uT}_t \mathbf{v}_i \]

正样本是有用户正反馈的item,负样本来自于随机采样,训练时使用softmax + logloss,serving使用knn检索topk候选。

 

模型结构

item侧的结构论文中没有详情介绍,应该是通过几层NN得到item embedding,论文主要详细介绍了user embedding的计算过程,如上图所示

为了能同时建模用户的长期兴趣和短期兴趣,用户分别提取了用户的短期行为序列和长期行为序列,划分方式如下所示:

短期行为序列:同个session,或行为间隔小于10min,但是最长不超过50

长期行为序列:用户7天内行为序列 - 短期行为序列

 

短期行为序列建模

短期行为序列建模方式如上图的左下角所示,主要包含如下几个步骤:

  1. 输入行为序列后用embedding层提取embedding
  2. 经过一层LSTM建模时间依赖
  3. 通过一层 multi-head-self-attention 提取用户多个兴趣点
  4. 经过一层user-attention引入用户个性化信息

 

长期行为序列建模

论文提取了多个长期行为序列(id序列、店铺序列、品牌序列等),每个序列都用user-attention建模,然后concat过NN

 

长短期兴趣融合

为了融合短期行为序列的建模结果和长期行为序列的建模,论文设计了一个gate结构,原理如下:

\[ \mathbf{G}^u_t = \text{sigmoid}(\mathbf{W}^1 \mathbf{e}_u + \mathbf{W}^2 \mathbf{s}^u_t + \mathbf{W}^3 \mathbf{p}^u + \mathbf{b}) \]

\[ \mathbf{o}^u_t = (1 - \mathbf{G}^u_t) \odot \mathbf{p}^u + \mathbf{G}^u_t \odot \mathbf{s}^u_t \]

 

参考资料

论文地址:https://arxiv.org/abs/1909.00385v1

https://www.sohu.com/a/340104070_99979179 

posted @ 2024-01-18 21:57  AI_Engineer  阅读(577)  评论(0)    收藏  举报