# SDM是如何结合用户长期和短期兴趣建模的?其结构如何?
在电商场景中,用户都会有短期兴趣和长期兴趣,比如在当前的浏览 session 内的一个点击序列,用户的需求往往是明确的,这属于用户短期的兴趣。另外用户还有一些长期的兴趣表达,比如品牌、店铺的偏好。因此通过模型分别建模用户的长、短期兴趣是有意义的。
上图中
上面的公式输出表示用户的 embedding 表示,而 item 的 embedding 表示和 YouTube DNN 一样,可以拿 softmax 层的权重。其实也可用 graph embedding 先离线训练好 item 的 embedding 表示。
线上预测:通过user id找到相应的user embedding,然后使用 KNN 方法 (比如faiss)找到相似度最高的 top-N 条候选结果返回。
# 请简述SDM模型整体结构。
首先定义SDM模型所要解决的问题:
我们想要预测,在
定义两次浏览间隔少于10分钟,则为同一个session(这个定义可根据具体场景变化),且一个session最大长度为50。
- 用户短期行为
:最近一个session,长度为m - 用户长期行为
:发生在最近一个session前7天内的session - 任务:给定短期行为与长期行为,为用户推荐商品
- Step1:学习用户短期行为
- Step2:学习用户长期行为
- Step3: 根据用户短期行为和长期行为学习fusion gate,预测用户t时刻行为
- Step4: 利用用户
时刻行为 和item embedding V计算得分: , 时刻的正样本是下一时刻点击的item,其他为负样本,根据得分选择推荐候选项 - Step5:利用item embedding选取topn n相近的进行推荐
# 请简述一下SDM模型中捕捉用户短期兴趣的结构。
此部分旨在捕捉用户在最近一个session中的兴趣,结构如图所示,分为三个部分:LSTM层,多头自注意力层,用户注意力层
- LSTM层
利用LSTM捕捉短期兴趣序列,输入为用户item特征
- 多头自注意力层
在线上购物时,用户经常会随意点击不相关的item,会影响序列表示
- 用户注意力层
不同的用户,对同一个商品也会有不同的偏好,比如说A用户更看重这个商品的性价比,B用户更看重中这个商品的品牌,因此希望利用用户对上文得到的session进行加权,学习注意力得分:
通过上述三个部分,最终短期兴趣输出为
# 请简述一下SDM模型中捕捉用户长期兴趣的结构。
长期来看,用户多种维度积累的兴趣会对当下行为产生影响,因此此部分旨在捕捉用户的长期兴趣,分为两个部分,用户注意力层与特征拼接,模型结构如图所示:
- 用户注意力层
用户长期特征
- 特征拼接
利用注意力机制得到每个特征的表示
最终得到
# SDM模型是如何控制长短期的影响的?
类比LSTM中门思想,利用fusion gate来控制长短期的影响: