1 行为序列建模总体架构
2 DSIN背景
阿里巴巴研究人员发现,用户行为序列是基于Session的。Session内兴趣相似且集中,Session间则兴趣差异较大。Session按照时间间隔来划分,比如 30分钟。如图5-11所示为真实场景下的多个用户行为Session。
图中展示了三个Session,每张图片代表用户的一次商品点击行为,图片下的数字代表该点击行为与用户第一次点击之间的时间间隔,单位为秒。很容易发现,同一Session内用户兴趣高度集中,而不同Session间则兴趣较为不同。这也很容易理解,用户在电商平台购物时,一般都有一些原始需求,其兴趣较为收敛。购物时也会货比三家,浏览和对比多个相似商品。这在搜索场景更为明显。
基于此DSIN( Deep Session Interest Network)应运而生,它由阿里巴巴淘宝搜索团队于2019年提出,全称“ Deep Session Interest Network for Click-Through Rate Prediction”[6]。它将用户行为序列划分为多个Session,建模Session内用户兴趣表征,以及Session间用户兴趣演化过程,从而提升整体表达能力。
3 DSIN模型结构
DSIN模型结构如图5-12所示。整体上仍然是“Embedding + MLP”的基本范式,核心优化点在于用户行为序列建模上,共分为四层:
- Session分割层,如图5-12最下面粉红色部分所示。它将用户行为序列,划分为多个Session。划分依据为相邻行为的时间间隔,文中设定为30分钟。
- Session兴趣抽取层,如图5-12黄色部分所示。它在各Session内独立建模,利用Multi-Head Self Attention网络,抽取得到各Session的表征。
- Session兴趣交互层,如图5-12蓝色部分所示。它利用双向LSTM网络,对session间的兴趣演化进行建模。
- Session兴趣激活层,如图5-12紫色部分所示。类似于DIN,它利用候选物品,对序列进行Attention池化,抽取出与候选物品相关的历史行为信息。这儿会对兴趣抽取层和兴趣交互层的输出,均进行兴趣激活。
经过Multi-Head Self Attention和 Feed-Forward网络对输入信息抽取后,得到一个跟输入维度相同的长向量。取平均池化后即得到兴趣抽取层的输出。这儿跟BST基本相同,就不赘述了。需要指出的是,不同Session是共享网络权重的。
兴趣交互层:它主要是为了实现Session间兴趣演化的建模。DSIN采用双向LSTM网络,来建模Session间的前后联系。这儿可以采用GRU、Transformer等其他模型,具体结构就不赘述了。
兴趣激活层:它主要是为了实现候选物品和行为序列的交叉,筛选出与候选物品相关度高的历史行为信息,并实现“千物千面”。其基本思想和计算过程与DIN比较像。如公式5-21所示。
4 DSIN总结和思考
DSIN基于“Session内兴趣差异小,而Session间兴趣差异大”这一用户行为序列特性,将序列切分为多个子Session,然后抽取Session内兴趣,并建模Session间兴趣演化过程。其出发点来源于对业务的充分理解和思考,非常值得学习和借鉴。
5 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。本文在5.5节中重点阐述了。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
详细介绍和全书目录,详见
《精通推荐算法》,限时半价,半日达https://u.jd.com/mq5gLOH