导读
在互联网搜索推荐广告排序系统的召回和排序模块中,用户行为序列建模,发挥着至关重要的作用。本文将总结回顾下深度学习时代用户行为序列建模的经典工作和发展路线。
1. 用户行为序列建模的应用
在电商(淘宝、京东、拼多多、Amazon 等)、社交(微信、Facebook)、搜索(百度、Google)、短视频(抖音、快手)、视频(爱奇艺、Youtube)、音乐(网易云音乐、腾讯音乐)、生活服务(饿了么、美团)等互联网应用中,搜索推荐广告发挥着至关重要的重要。
搜索推荐广告的排序系统,一般通过召回、排序等模块,从海量的物品中选取用户最感兴趣的物品展现给用户,从而为用户提供实时个性化的服务。

在排序系统的召回和排序模块中,最关键的问题在于建模用户的实时兴趣。用户的兴趣包括近期兴趣、长期兴趣等,是不断变化的,它们通常反映到用户在 APP 的行为序列上。
用户行为序列建模,即通过序列模型来建模用户的行为序列,得出用户的实时兴趣向量 (user’s interest vector),进而应用到排序系统的召回和排序模块中,为用户提供个性化的服务。例如,下图展示了用户行为序列建模在淘宝搜索和推荐中的应用。其中搜索结果包含了自然搜索和搜索广告的结果,推荐结果包括了自然推荐和推荐广告的结果。

2. 用户行为序列建模的主要工作
深度学习时代,用户行为序列建模的模型主要工作包括以下 22 个模型。它们成功应用到电商(阿里、京东)、视频(Youtube)、社交(微信)的工业级搜索推荐广告排序系统中的召回和排序阶段。
按时间线来看,用户行为序列建模的模型经历了 polling, attention, RNN, Capsule,Transformer 的发展路线。目前,基于 Transformer 的行为序列已经成为工业界搜索推荐 (淘宝 [17]、京东 [16]、美团 [25] 、快手 [26] 等)用户行为序列建模的主流。

从已有工作建模的用户行为序列的信息来看,我们总结如下:
2.1 行为序列的时间窗口:
已有工作建模的用户序列的时间窗口包括近期、长期、session 级别。
- 近期序列:大多数的工作 (例如 DNN [1], DIN [2], DIEN [6])关注于建模用户的近期行为序列,通常为最近几天、几周或几月的行为序列,因为它们最能反映用户的近期实时兴趣。用户的近期行为,相对比较少,通常聚焦在一个或几个类目上。
- 长期序列:一些工作 (MIMN [19],SIM [20], DMT [16], AliSearch [17])开始关注建模用户的长期行为序列,通常为最近几年的行为序列,因为它们能够反映用户的长期兴趣。例如,用户在电商的长期点击和购物行为,非常丰富,通常包括多个类目,反映了用户的类目、品牌、风格、价格区间、店铺、物流偏好等信息。
- Session 序列:用户每次访问 APP 应用可以称作一个 session,通常为几分钟或几十分钟。一些工作 (DSIN [12],TISSA [13])关注于将用户的每次访问内的行为看作一个 session 内的行为序列,再建模多次访问的多个 session 序列。这种方式和近期序列相比,能符合用户的实际访问情况。
2.2 用户行为的属性信息:
已有工作建模的用户行为的属性信息主要包括:
- 物品的 id: 例如点击商品的 id,对应的 embedding 参数通常为百亿级别,反映了用户细粒度的兴趣。
- 物品属性的信息:例如点击商品的品牌、店铺、标题等,泛化能力比物品的 id 更好。
- 行为时间:例如点击商品的时间到当前排序时间的时间差。通常时间差越小,说明行为越是近期行为,影响越大。已有工作包括 AliSearch [17], HUP [8]等。
- 行为类型:例如商品上的行为是点击,加购,收藏,购买等。已有工作包括 AliSearch [17], HUP [8],DMT [16]等。
- 行为的详细信息:例如点击商品后的停留时长,是否点击图片,是否查看评论等。已有工作包括 AliSearch [17], HUP [8]等。
2.3 多种行为序列:
已有工作按照行为的时间窗口、行为类型,可以构造多个行为序列。通常包括:近期/长期 点击/收藏/加购/购买 序列,搜索 query 序列,最近曝光未点击的序列等。
建模多序列的方式,包括:
- 混合建模:例如 AliSearch 中 [17]将近期的多种序列混合起来,按时间排序,形成一个混合序列。
- 分别建模:例如 DMT [16] 中分别建模每种序列,得到多个兴趣向量。
2.4 负反馈:
用户的负反馈行为包括两种:
- 隐式负反馈:系统曝光给用户而用户未点击的物品,说明用户对这些物品可能不感兴趣。
- 显示负反馈:例如用户通过系统中反馈”不喜欢相似的品类或内容“,说明用户对这些物品比较反感。
一些工作 (例如 AliSearch [17],DFN [18],FINN [4], DSTN [3]),开始关注于建模负反馈序列,来提升效率和用户体验。
2.5 多个维度:
大多数工作,通常将用户行为的多种属性信息拼接成一个向量来建模,一些工作 (例如 DHAN [9])尝试基于行为序列,在多个维度显示建模用户的属性偏好(例如价格、风格、品牌等)。
3. 用户行为序列建模模型详细介绍
我们按照已有序列建模工作基于的机器学习模型进行分类,详细介绍已有的用户行为序列建模模型。
3.1 Pooling:
基于 Pooling 的方法建模行为序列的工作,主要包括 DNN [1]。这些方法通常采用 mean, sum 或 max pooling 的方法聚合用户的行为序列,它们将用户的历史序列中的行为看得同等重要,因此 pooling 的结果反映了用户的主要兴趣。
DNN [1] (Recsys’16)通过基于 pooling 的操作建模用户的搜索序列、观看视频序列,应用在 Google Youtube 的视频推荐系统的召回和排序模块中。
在召回模块的模型如下图所示,使用了观看视频序列、搜索序列:

在排序模块的模型如下图所示,使用了观看视频序列:

3.2 Attention:
基于 pooling 的方法中,将行为序列中的每个物品的重要性看作是相同的,无法区分历史行为中每个物品的重要性。对于不同的待排序物品,用户的兴趣向量也是相同的,无法建模多兴趣。
为了解决这些问题,研究者们提出了基于 Attention 的方法建模行为序列,主要包括 DIN [2], DSTN [3]等。它们通过 attention 机制建模行为序列中的物品和待排序物品的 attention score (即关联程度),作为每个行为的权重,然后再将它们聚合起来。
DIN [2] (KDD’18)基于 attention 建模用户的商品点击行为序列,应用在淘宝的推荐广告排序中。模型结构如下图所示,其中左侧为基于 Pooling 的 base 模型,右侧为 DIN 模型。DIN 模型,对于每个待排序的广告,计算出每个历史点击的商品和待排序广告的 attention score, 作为这个历史行为的权重,然后基于这些权重,将历史行为序列物品的 embedding,聚合成一个用户兴趣向量。在计算 attention scores 时,作者没有使用 softmax 函数,来保证灵活性,例如行为序列可能和当前待排序广告的关系都很弱。对于不同的待排序广告,attention scores 的分布也不相同,对应的用户的兴趣向量也不相同,从而建模用户的多个兴趣。

DSTN [3] (KDD’19) 基于 attentiion 建模用户历史点击广告序列、未点击广告序列、附近的广告序列等信息,应用到神马搜索广告中。
多种行为序列的定义如下图所示:在用户发起搜索后,展示多个广告后用户会有点击、未点击的行为,以及附近的广告信息。

模型结构如下图所示:其中左侧为最简单的 DNN 模型,中间为基于 Pooling 建模多种序列的模型,右边为基于 attention 操作建模多种序列的模型。

3.3 RNN:
基于 pooling 和 attention 的方法,不能建模用户行为序列的时间顺序特性,无法有效建模用户兴趣的不断演化。
为了解决这些问题,研究者们提出了基于 RNN 建模行为序列,主要包括 GRU4Rec [5], DIEN [6], DUPN [7], HUP [8], DHAN [9]等。它们通过 RNN 建模行为序列的时间顺序特性,能更好地建模用户实时兴趣的变化。
GRU4Rec [5] (ICLR’16) 基于 GRU 建模用户在 session 内的行为序列。

DIEN [6] (AAAI’19) 基于双层 RNN 来建模用户的商品点击序列,应用在淘宝的推荐广告排序中。同时,在模型提出了基于 RNN 中的隐藏向量和下一个商品计算辅助 loss。第一层 RNN,直接用来建模用户的商品点击序列;第二层 RNN,基于第一层 RNN 的结果、待排序广告计算 attention,用于 RNN 的更新。

DUPN [7] (KDD’18) 基于 RNN 建模用户的行为序列,再基于 attention 计算每个行为的权重,得到用户的兴趣向量表示,应用到淘宝搜索中。

这个工作中,作者在 RNN 和 attention 中都考虑了用户行为的属性信息(场景、时间、行为类型等)。

同时利用多任务学习来学习模型参数。

HUP [8] (WSDM’20)基于金字塔 RNN 来建模用户的微观行为序列,得到用户在微观行为、商品、商品类目等多个层次的兴趣向量,用于电商商品推荐、商品类目推荐等多个任务。其中在 RNN 中建模了用户行为的属性信息(停留时长、行为类型等)。
微观行为的实例如下:

HUP 模型结构如下:

DHAN [9] (SIGIR‘20) 通过层次化的 attention 建模用户行为在类目、价格、品牌等多个属性方面的兴趣。
DHAN 模型结构如下图所示:


3.4 Capsule:
在召回阶段,基于 pooling, attention, RNN 等序列模型建模行为序列得到一个用户兴趣向量,然后通过 Faiss 查找最近的邻居商品,通常召回的商品都很相似,无法满足搜索推荐多样性的需求。
为了解决这些问题,研究者们提出了基于 Capsule 建模行为序列,主要包括 MIND [21], ComiRec [22] 等。它们通过 Capsule 建模行为序列,通过隐式聚类用户行为序列,得到多个用户兴趣向量,从而实现召回多个类目的物品的目的。
MIND [21] (CIKM’19) 基于 Capsule 建模用户的行为序列向量,应用在天猫推荐的召回模块中。

多兴趣向量的召回结果如下:

ComiRec [22] (KDD’20) 提出基于 Capsule 或 Self-attention 来建模用户行为序列,得到用户的多个兴趣向量,并使用一个可控的多兴趣召回结果聚合模块来平衡召回结果的准确性、多样性,应用到淘宝推荐召回模块中。
ComiRec 模型如下:

3.5 Transformer:
基于 RNN 的序列建模模型,无法有效建模长序列、长依赖,以及行为序列内多个行为彼此间的关联关系。
为了解决这些问题,研究者们提出了基于 Transformer 建模行为序列,主要包括 ATRank [10], BST [11], DSIN [12], TISSA [13], SDM [14], KFAtt [15], DFN [18], SIM [20], DMT [16], AliSearch [17] 等。通过 Transformer 建模用户行为序列,逐步成为工业界搜索推荐 (淘宝 [17]、京东 [16]、美团 [25] 、快手 [26] 等)用户行为序列建模的主流。
ATRank [10] (AAAI’18) 基于 Transformer 的 self-attention 建模用户的多种行为序列,建模了行为类型、行为时间等属性信息。
ATRank 的模型结构如下图所示:

BST [11] (DLP-KDD’19) 基于 Transformer 建模行为序列,用于淘宝推荐。

DSIN [12] (IJCAI’19) 首先将用户行为按时间间隔划分为多个 session,然后基于 Transformer 建模每个 session 内的行为序列,再基于 RNN 建模多个 session 的信息。

DSIN 的模型结构如下图所示:

TISSA [13] (WWW’19) 先通过 RNN 建模行为序列,然后通过 self-attention 建模每个 session 内的行为序列,再基于 self-attention 建模多个 session 的信息,应用到天猫推荐中。

SDM [14] (CIKM’19) 基于 Transformer 建模用户的近期序列,基于 attention 网络建模用户的长期序列,再基于 gate 融合用户的长短期兴趣向量,用于淘宝推荐、搜索的召回。
SDM 的模型结构,如下图所示:

KFAtt [15] (NIPS’20) 基于 self-attention 建模每个 session 内行为序列,再基于 Kalman Filtering Attention 融合多个 session 的信息,应用于京东搜索广告排序。Kalman Filtering Attention 主要用来解决新的需求和历史行为均无关、行为序列被频繁行为主导的问题。
DFN [18] (IJCAI’20) 在 Deep Feedback Interaction 模块基于 Transformer 建模用户的显示正反馈、隐式负反馈、显示负反馈信息,作为 Deep 模块的输入,再联合 Wide, FM 模块,应用于微信推荐排序。
微信看一看中的显示正反馈(点击)、隐式负反馈(曝光未点击)、显示负反馈信息(点击不喜欢按钮)如下:

DFN 的模型结构如下图所示。在 Deep Feedback Interaction 模块,基于用户精确但稀少的显示正反馈和显示负反馈,从丰富但噪声大的隐式负反馈中抽取有用的信息。

SIM [20] (CIKM’20)关注建模用户的长序列行为。通过 hard search 和 soft search 从用户的长期序列中,找到相关的行为,然后基于 self-attention 来建模,同时使用 DIEN 建模近期行为,应用于淘宝推荐广告。
SIM 的模型结构如下图所示:

DMT [16] 基于多个 Transformer 分别建模用户的点击、加购、购买商品序列,使用 MMoE 建模点击预测、购买预测多个任务,同时使用 Bias DNN 消除反馈数据中的 bias (例如附件曝光商品),应用于京东推荐。
DMT 模型结构如下图所示:

在 Deep Interest Transformer 中建模每个行为序列,包括 encoder 和 decoder。其中 encoder 建模行为序列中多个行为彼此间的管理关系,对于每个待排序商品,decoder 解码出不同的用户兴趣向量,从而能够建模用户的多兴趣。
在 MMoE 中,建模点击预测、购买预测多个任务的关联度和特性。
在 Bias Deep Neural Network 中,建模 bias 特征。
AliSearch [17]使用 Transformer 分别建模用户的近期序列(点击,加购,购买的混合序列)、长期点击序列、长期购买序列、近期端上点击序列、近期端上曝光序列,用于淘宝搜索的 CTR,CVR 预测任务。

对于近期序列和端上点击序列,使用 self-attention 建模,然后使用 user 和 query 来解码得到用户近期兴趣向量。DMT 中是推荐系统所以使用 target item 来解码,AliSearch 是搜索任务,所以使用 user 和 query 来解码(搜索对相关性要求高、不需要使用每个待排序商品解码效率更高)。

对于长期行为序列,作者将用户过去两年的行为分成 8 个季度序列。每个季度序列,使用 self-atention 建模,得到每个季度的用户兴趣表达。然后使用用户近期兴趣向量来解码多个长期行为序列,得到用户长期兴趣向量。

对于端上曝光未点击行为,使用 pooling 来建模。然后使用近期兴趣向量和曝光未点击兴趣向量,计算辅助 loss。

4. 未来的工作方向
用户行为序列建模,作为搜索推荐广告排序系统中最关键的模块,已经取得了很好的发展成果,也将不断吸引着工业界、学术界的研究人员,不断探索出新的方向、思路和方法。
未来可能的工作方向,包括如下:
(1) 如何更好地建模用户行为的时间等属性信息?例如,基于基于神经网络和点过程结合的模型(例如 ANPP [23])通过建模行为序列中的时间信息,不仅可以预测接下来用户购买的商品,还能预测购买的时间,实现在最合适的时间推荐最合适的商品(Just-in-time Recommendation)的目的。
(2) 如何更好地建模行为序列的多个维度?大多数已有工作将每个行为的多个维度的属性信息拼接成一个向量来处理,能否显示建模每个维度来取得更好的结果呢?
(3) 如何更好地建模负反馈信息?负反馈信息,带来反馈信号的同时,也充满噪声,因为点击行为本身是稀少的。如何更好地建模负反馈信息,仍然是开放的问题。
(4) 如何更好地建模多种序列?如何更好地建模多种行为序列的关系,值得深入的探讨?
(5) 如何更好地建模长短期序列间的关联关系?
(6) 如何更好地将序列建模和多任务结合起来?搜索推荐广告排序系统中,通常由点击、购买、停留时长等多个目标,序列建模如何跟多任务学习结合起来更好地学习呢?
(7) 如何利用自监督学习改进序列建模?自监督学习,开始初步被尝试应用到排序中,参见自监督学习: 人工智能的未来。自监督学习能否通过改进序列建模,在工业界搜索推荐系统中发挥更大的作用,值得翘首以待。
参考文献
[1] [DNN] Covington, Paul, Jay Adams, and Emre Sargin. “Deep neural networks for youtube recommendations.” Recsys’16
[2] [DIN] Zhou, Guorui, Xiaoqiang Zhu, Chenru Song, Ying Fan, Han Zhu, Xiao Ma, Yanghui Yan, Junqi Jin, Han Li, and Kun Gai. “Deep interest network for click-through rate prediction.” KDD’18.
[3] [DSTN] Ouyang, Wentao, Xiuwu Zhang, Li Li, Heng Zou, Xin Xing, Zhaojie Liu, and Yanlong Du. “Deep spatio-temporal neural networks for click-through rate prediction.” KDD’19.
[4] [FINN] Yang, Yatao and Ma, Biyu and Tan, Jun and Deng, Hongbo and Huang, Haikuan and Zheng, Zibin. “FINN: Feedback Interactive Neural Network for Intent Recommendation.” WWW’21.
[5] [GRU4Rec] Hidasi, Balázs, Alexandros Karatzoglou, Linas Baltrunas, and Domonkos Tikk. “Session-based recommendations with recurrent neural networks.” ICLR’16.
[6] [DIEN] Zhou, Guorui, Na Mou, Ying Fan, Qi Pi, Weijie Bian, Chang Zhou, Xiaoqiang Zhu, and Kun Gai. “Deep interest evolution network for click-through rate prediction.” AAAI’19.
[7] [DUPN] Ni, Yabo, Dan Ou, Shichen Liu, Xiang Li, Wenwu Ou, Anxiang Zeng, and Luo Si. “Perceive your users in depth: Learning universal user representations from multiple e-commerce tasks.” KDD’18.
[8] [HUP] Gu, Yulong, Zhuoye Ding, Shuaiqiang Wang, and Dawei Yin. “Hierarchical User Profiling for E-commerce Recommender Systems.” WSDM20.
[9] [DHAN] Xu, Weinan, Hengxu He, Minshi Tan, Yunming Li, Jun Lang, and Dongbai Guo. “Deep Interest with Hierarchical Attention Network for Click-Through Rate Prediction.” SIGIR’20.
[10] [ATRank] Zhou, Chang, Jinze Bai, Junshuai Song, Xiaofei Liu, Zhengchao Zhao, Xiusi Chen, and Jun Gao. “Atrank: An attention-based user behavior modeling framework for recommendation.” AAAI’18.
[11] [BST] Chen, Qiwei, Huan Zhao, Wei Li, Pipei Huang, and Wenwu Ou. “Behavior sequence transformer for e-commerce recommendation in alibaba.” DLP-KDD’19.
[12] [DSIN] Feng, Yufei, Fuyu Lv, Weichen Shen, Menghan Wang, Fei Sun, Yu Zhu, and Keping Yang. “Deep session interest network for click-through rate prediction.” IJCAI’19.
[13] [TISSA] Lei, Chenyi, Shouling Ji, and Zhao Li. “Tissa: A time slice self-attention approach for modeling sequential user behaviors.” WWW’19.
[14] [DSM] Lv, Fuyu, Taiwei Jin, Changlong Yu, Fei Sun, Quan Lin, Keping Yang, and Wilfred Ng. “SDM: Sequential deep matching model for online large-scale recommender system.” CIKM’19.
[15] [KFAtt] Liu, Hu, Jing Lu, Xiwei Zhao, Sulong Xu, Hao Peng, Yutong Liu, Zehua Zhang et al. “Kalman Filtering Attention for User Behavior Modeling in CTR Prediction.” NIPS’20.
[16] [DMT] Gu, Yulong, Zhuoye Ding, Shuaiqiang Wang, Lixin Zou, Yiding Liu, and Dawei Yin. “Deep Multifaceted Transformers for Multi-objective Ranking in Large-Scale E-commerce Recommender Systems.” CIKM’20.
[17] [AliSearch]: 搜索模型核心技术公开,淘宝如何做用户建模?
[18] [DFN] Xie, Ruobing, Cheng Ling, Yalong Wang, Rui Wang, Feng Xia, and Leyu Lin. “Deep Feedback Network for Recommendation.” IJCAI’20.
[19] [MIMN] Pi, Qi, Weijie Bian, Guorui Zhou, Xiaoqiang Zhu, and Kun Gai. “Practice on long sequential user behavior modeling for click-through rate prediction.” KDD’19.
[20] [SIM] Pi, Qi, Guorui Zhou, Yujing Zhang, Zhe Wang, Lejian Ren, Ying Fan, Xiaoqiang Zhu, and Kun Gai. “Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction.” CIKM’20.
[21] [MIND] Li, Chao, Zhiyuan Liu, Mengmeng Wu, Yuchi Xu, Huan Zhao, Pipei Huang, Guoliang Kang, Qiwei Chen, Wei Li, and Dik Lun Lee. “Multi-interest network with dynamic routing for recommendation at Tmall.” CIKM’19.
[22] [ComiRec] Cen, Yukuo, Jianwei Zhang, Xu Zou, Chang Zhou, Hongxia Yang, and Jie Tang. “Controllable Multi-Interest Framework for Recommendation.” KDD’20.
[23] [ANPP] Gu, Yulong. “Attentive Neural Point Process for Event Forecasting.” AAAI’21.
[24] https://github.com/guyulongcs/Awesome-Deep-Learning-Papers-for-Search-Recommendation-Advertising
[26] 1.9 万亿参数量,快手落地业界首个万亿参数推荐精排模型