| 长序列建模方法SDM采用分长短期序的方法,业界也基本采用了该方法的划分方式。+ I; d4 P% {+ }4 O: _" |% x/ t 用户在推荐场景的历史行为丰富多样,可以给模型提供大量的信息,用于捕捉用户的兴趣。虽然增加序列长度可以带来模型效果的提升,但线上推理耗时也随之急剧增加,需要可落地的工程实现。如何基于工程实现方案,最大程度地利用用户行为,是用户行为长序列建模的关键。! {! X# O8 Z. z& P9 e
 SDM[1]提出一种思路:将用户行为分为短期行为和长期行为,用不同的方式分别建模,再将两部分兴趣融合,得到用户综合的兴趣表征。该方法由阿里团队提出,应用于阿里的召回业务,论文发表于2019年的CIKM。+ b0 `/ |$ {& }$ z6 c# O; H; g6 E
 1 SDM原理
 # l: K( x0 ~! j) d* C) \0 C: {4 W
 " Q3 P$ ]3 x/ y0 |推荐场景中,用户行为虽然多样多变,但也存在一些比较稳定的模式和特点。从某个时间段的视角观察用户兴趣,兴趣呈现出相对集中的特点,而在不同的时间段,用户的兴趣容易转移到另一个相对集中的点。当把用户兴趣放在更长的连续时间轴上观察,用户兴趣呈现出相对稳定的状态,即用户对某些维度的偏好基本不变。
 7 |* p: p2 |: U4 `以电商场景为例,用户想购买衣物,可能先表现出对上衣的兴趣,当浏览或购买后,兴趣点可能转移到裤子或帽子上。而用户对颜色、风格的偏好往往会长期保持稳定,比如用户喜欢浅色系和休闲简约风,那么该用户所偏好的衣物,在很长一段时间会保持这些特点。2 B4 M" p8 n1 t7 X" N" w+ ~
 基于用户短期兴趣容易变化而长期兴趣基本稳定的特点,SDM提出将用户行为划分为短期行为和长期行为,采用不同的方式分别对两种行为建模,再通过门控的方式将两种建模结果进行融合,得到用户的综合兴趣。# m- }- f: ]9 F$ Z! K7 K
 1.1 行为划分
 5 n; f9 i+ U; j3 g" t
 ! T4 \( O' M& O5 Z9 Q: TSDM的核心思路是对用户行为分短期和长期分别处理,因此在建模前需首先进行长短期行为划分。通常用户在一个session内的行为相对集中(如有不清楚session概念的可以戳《用户行为序列建模dsin方法》),因此SDM以最后一个session为基础,结合推荐场景的实际特点,按照以下规则进行行为划分:7 g6 F9 P( d8 b* A
 
 ( Q3 n7 P, A" _7 W- r3 F短期行为表示为
 (1) 用户历史行为中最后一个session的行为为短期行为;3 v5 ?! u- g7 J) R- C/ }
(2) 和最后一个session内行为的时间间隔在一定范围内(论文中采用的是10min)的行为,划分为短期行为;" m& F! ]: @: W
(3) 短期行为长度不超过50;- |% u. h% i" z( j9 J; n
(4) 用户在最近7天内的短期行为之外的,划分为长期行为。! T! O8 v3 G) Y( c
  ,其中m为长度,长期行为表示为  。 3 e$ |& o, h# w4 ~1.2 SDM模型
 1 }, w/ s( n% L# l/ M1 `  k
 # K. F) Y/ H' w" i' n4 y1.2.1 网络结构
 1 z# |( w( y6 x# L  DSDM的模型结构如图1所示,以短期行为序列
  和长期行为序列  作为模型的输入,分别用两种方式对长短期序列建模,得到长期兴趣  和某个时刻的短期兴趣  ,通过gate融合的方式,得到某个时刻的综合兴趣  ,再基于内积相似度从物品库的表征  (其中d为embedding维度,  为物品的数量)中得到最相近的N个物品。/ V* w, k& K( t+ F9 Q& {! [ 
 8 ?& K4 A' }4 _
  , a  W4 X; _: ~! q5 h2 v 
 + K. `! I8 V( f" y图1 SDM网络结构
 % ?# Q  k, {) m$ `# z
 + i( Y1 J+ |$ H1.2.1.1 短期序列建模/ w( |+ K0 }! d- l5 X
 SDM采用multi-head self-attention的方式对短期序列进行建模,其出发点包括两方面:具体可戳《用户行为长序列建模SDM》,或在公众号【播播笔记】回复“SDM”。  @% o/ ~) G$ z3 B1 A/ O7 U. H% A# }) l
 在短期序列中,物品的表征除了id对应的embedding,可以通过增加side信息得到更完善的物品信息,side信息可以包括物品所属的品类、品牌、店铺等,将各种物品信息concat后得到物品的表征
  。0 M! y9 k. ?- F" b% ^ 
 4 a* g( a7 N* ?: B4 d" E
  $ l' {8 I  o9 N" R' z 
 6 C# C$ Y6 Q5 D图2 SDM短期和长期行为序列建模
 7 `  U: e3 F$ Y* |1 t. c0 A7 F6 ~- G- Z  g. p: A
 短期兴趣提取如图2左下部分所示,包括三个步骤:8 R& Q& b# c2 q8 C3 n& j
 
 1.2.1.2 长期序列建模4 Y' x5 [% _; u7 U: K
 (1) 首先采用LSTM得到各个时刻的隐层兴趣表征  (LSTM在此不再赘述,具体公式可参考《用户行为序列建模dsin方法》2.4节); . y8 Y, ?' \2 ?% L7 p* M& a
(2) 然后利用multi-head self-attention,对各个隐状态计算每个head的权重后,对每个隐状态在head维度加权求和,得到隐兴趣表征  (multi-head可以理解为多个单head,具体细节可戳《用户行为序列建模self attention和具体实现》中3.2节);3 D; n3 v3 p" n1 k) C6 @ 
(3) 最后利用target attention机制,计算如式子(1)所示,各个时刻的隐兴趣表征和用户表征  的相似度经过softmax得到权重,再加权求和得到用户在时刻t的短期兴趣表征  。  # s- X8 R& b9 D& U& c: d 
 , q. v2 w# p8 \6 @& F用户在长期行为中表现出的偏好处于相对稳定的状态,比如经常去同一家店或者同一个品牌购买物品,因此在长期序列建模时,输入的序列是用户在不同维度的行为,如物品id序列
  ,物品类别序列  ,物品所属品牌序列  等。 9 a$ Z! I" b3 V. R0 a建模过程如图2中左上部分所示,对各个维度的序列进行target attention建模,得到每个维度的用户兴趣表征
  ,如式子(2.1)-(2.2)所示,将各个维度的兴趣表征concat后经过一层全连接层,计算如式子(2.3)-(2.4)所示,得到用户的长期兴趣表征  。 ( X  w" h  k/ a# s4 }
   6 ]5 e+ N" q9 n4 [# @% z1.2.1.3 长短期融合( m; F$ u0 n2 P) q2 J+ G  {
 经过短期和长期序列建模后,得到了用户短期和长期兴趣表征,这两部分兴趣通过门控网络的方式进行融合。如式子(3.1)所示,将用户表征
  ,短期兴趣表征  和长期兴趣表征  作为输入,经过sigmoid激活得到门控网络输出  ;再通过式子(3.2)加权求和的方式(其中  表示按位乘),得到用户兴趣表征  。   ( k9 k" d% W; ^( C5 E) S4 |7 A! B2 q* o得到用户兴趣表征后,则可根据该兴趣从物品库中召回最相近的item,实现召回中的用户长序列建模。
 / [' ?8 X- l4 f( g; H/ R1.2.2 离线训练( L- E) S" U) e+ E+ |
 模型在训练过程中,短期序列中每个时刻对应产生一个样本,即在时刻t,正样本为短期行为中下一个时刻t+1所对应的item
  ,负样本采用全局负采样的方式生成,在物品库  中选取除正样本  之外的item作为负样本,考虑到物品库  数量庞大,采样按照log-uniform的方式。% c# u+ x5 d, ]4 y 损失采用交叉熵的形式,如式子(4)所示,其中
  为正负样本构成的集合,  表示集合  中第i个item表征  和该时刻兴趣表征  内积后的softmax值,  为第i个item的真实概率。 # T" F- o/ }3 U' b
  " E% Y  e( [$ o7 A 1.2.3 线上推理
 * p; W4 N: T( t% Q& G9 M3 j模型的输入仅使用了用户特征,因此模型在线上部署时,采用双塔的部署形式,可提高模型的线上推理的效率。item部分的embedding离线实时更新后存储到线上,当用户发出请求时,模型计算当前时刻用户兴趣表征
  ,再利用KNN紧邻搜索得到最相似的N个item,完成线上推理。( T; X; j9 Z7 J! ^- G3 I& c: n* T& \ 2 SDM分析# w/ V/ ?6 m! d/ M
 ! ^0 H# V5 I6 m7 l; w4 U
 SDM方法的核心在于根据用户行为特点,提出将用户行为分为长短期分别进行建模后再进行融合。; C+ J( M+ L' j
 该方法在召回的应用值得尝试,提出的思路在精排应用的局限性较大,并未从根本解决长序列问题,具体分析可戳《用户行为长序列建模SDM》,或在公众号【播播笔记】回复“SDM”。
 , j' U8 i4 h( A; B/ S6 H
 8 i3 O( n! E4 u9 I( ^9 x! q<hr/>
 j! o6 y, Y2 B+ f2 ~2 n! W工作相关的内容会更新在【播播笔记】公众号,欢迎关注
 / x, }4 P$ a8 r- ?  Q& e! l3 u, e% A生活的思考和记录会更新在【吾之】公众号,欢迎关注  5 ~3 s) B4 u( Z7 j
 推荐系列文章: 用户行为序列建模
 3 v+ G. P7 r! D; g
 ; i+ t0 D7 z4 o; ?6 H% `多目标  % F. x! \: [9 @. {+ d
 用户行为序列建模概览. J. s# J' n2 j% `4 V
用户行为序列建模self attention和具体实现; y0 ]$ @" V: O% {' l8 U! O: }: q
用户行为序列建模din方法和实际应用8 ?* A2 I) I; E4 u: o
用户行为序列建模dien方法: ~/ |* |3 q" z; l+ |+ w5 S
用户行为序列建模dsin方法; I) I8 N/ @4 g# V0 Y2 g! M$ I) r
用户行为序列建模din系列方法总结& F& o. p' T* _
用户行为长序列建模概览+ Y5 r" m/ z) ]% g  f( ~3 W
 
 冷启& Q+ J$ F3 ^- v: b8 w7 {
 推荐中多目标的必要性和实现思路. X. Y  J/ ]( a+ G1 f2 u: q4 p
多目标模型结构-ESMM和ESM2- D+ A7 R) N9 U8 b6 |* O* r
多目标模型结构-MMoE和实际应用思考8 P( J7 R/ A8 y9 K. _, v
多目标模型结构PLE详解和效果分析1 `. c2 x/ U" B# m4 I8 m2 _
多目标样本权重-GradNorm和DWA原理详解和代码实现: b1 C+ E% N! W! x, j" w
多目标样本权重-DTP和不确定性加权: y+ i4 n/ T& c9 S
 9 ~9 t, ^- a) n5 n# _& _. [
 模型结构-特征交叉    _# T' Y# x; k! w0 R0 A5 U+ Q5 U4 i. I0 R/ d& r) J7 E2 \
 用户冷启POSO论文详读' u, T+ F3 q" F$ ]" e
POSO方法的实际应用和分析思考0 O6 L/ y7 _  {0 L
 
 推荐基础知识点6 w5 x: F- e- R7 d( c+ m
 ctr模型特征交叉结构总结与业务应用和思考5 ~8 n  [" P% G9 j6 |" |* j7 f
xDeepFM如何实现field-wise显式高阶特征交叉-模型结构之特征交叉(3)-DCN系列之xDeepFM(3.3)附代码% D8 {& e3 T5 T; o4 I
DCN-V2对特征交叉做了什么改进--模型结构之特征交叉(3)-DCN系列之DCN-V2(3.2)附代码6 R, a# k# p( T# {, z0 S5 ]/ w, Q
为什么DCN可以实现显式高阶特征交叉-模型结构之特征交叉(3)-DCN系列(3.1)附代码S' U6 v1 O; p" s  a# B
模型结构之特征交叉(2)-FM系列(2.2)-AFM,DeepFM等(附代码)4 J- u( A7 R* D0 }+ q& x
模型结构之特征交叉(2)-FM系列(2.1)-FM,FFM* c: i; ]3 Y: e
模型结构之特征交叉(1)-从LR到wide&deep+ E- L! y) v1 G" {: G$ e2 J. O
 ' f+ n( L( |1 B- v9 x2 E3 ]
 3 C- s; o, `% w+ {( I工具
 激活函数选择和具体应用以及相关面试题7 X7 H6 y! ?. h
深入理解深度学习中常见激活函数+ u3 R1 T; t$ P) p3 M- n
如何防止过拟合(1)-正则化8 h1 W! K# X! L! g
从偏差方差角度理解过拟合+ p, O; d& u8 [0 I0 q
AUC离线和在线表现不一致问题:两个维度2 b8 n0 p6 e. ]# b3 h- L
如何计算AUC( Z3 ]/ ?* K. I! q" c3 D& ~% ~
什么是好的推荐,重新理解AUC! @- x) B" _& D3 @# }* J
为什么需要推荐2 l/ T7 Q) A- N. Q( {
 4 B2 D( E+ z2 e4 u
 ! u4 P. b8 ?4 t8 u4 W8 c2 Z" O: J  y3 n
 一句话理解tensorflow中的乘法7 }) J7 W" g; b1 r" E( u
 reference
 3 o( ^; {/ J3 n: i- B[1] Sequential Deep Matching Model for Online Large-scale Recommender System. SDM | Proceedings of the 28th ACM International Conference on Information and Knowledge Management.
 |