1 行为序列建模技术架构
身处目前这个信息爆炸的时代,用户在各推荐场景上有丰富的行为序列。将行为序列特征引入推荐算法中,有利于丰富特征工程体系、获得更立体和更全面的信息,同时可以表达用户兴趣演化过程,并捕获用户实时兴趣。目前主流推荐场景均已加入了用户行为序列建模,并提升了推荐模型准确性和用户体验。
用户行为序列(User Behavior Sequence,UBS)建模,主要包括特征工程、序列建模,和长序列建模三大主题。特征工程是序列建模的基础,主要围绕有哪些特征、正反馈和负反馈、短期行为和长期行为,以及全场景建模等方向。序列建模则分为池化和序列化两种方式,其中池化包括求和(Sum)/最大(Max)/平均(Mean)和基于注意力(Attention)两大类,序列化包括循环神经网络(Recurrent Neural Network,RNN)和Transformer网络两大类。长序列建模则用来捕获用户长期兴趣,可进一步提升序列建模的表达能力和准确性,包括离线法和在线法两种方案,后文详细展开。用户行为序列建模的知识框架如下图所示。
行为序列建模在我的新书《精通推荐算法:核心模块+经典模型+代码详解》第五章中有详细讲解。详细请参见
《精通推荐算法:核心模块+经典模型+代码详解》(谢杨易)【摘要 书评 试读】- 京东图书
2 行为序列建模的意义
近几年用户行为序列建模,已经成为继特征交叉和表征学习后,推荐系统的另一大重点发力方向。行为序列建模可以丰富特征工程体系,引入更全面和更立体的信息,并捕获用户兴趣演化过程和实时兴趣倾向,为各推荐场景业务提升和用户体验优化起到了关键作用。
用户行为序列建模的意义十分重大,目前已经成为了推荐系统核心优化方向,也是推荐算法工程师的必备技能。其意义主要有:
(1) 丰富特征工程体系。特征工程是算法模型的基础,特征越丰富越精细,则模型获取的输入信息越多,最终预估也会越精准。用户行为序列,可以囊括点击、购买、点赞和收藏等正反馈信息,以及不喜欢和曝光未点击等负反馈信息。它由被行为(比如被点击)的物品ID,和其各种属性特征组成,比如物品的品牌ID、卖家ID和价格等。另外,行为序列既可以包括用户的短期行为,还可以包括长期行为。用户行为序列是推荐系统特征工程的重要组成部分,可以极大的丰富特征工程体系。
(2) 获得更立体的信息。与很多其他特征只是一个标量不同,行为序列可以理解为是一个向量,其信息更为立体。比如用户近7天的购买商品数,可以通过其近7天的购买行为序列推导出来。更重要的是,通过行为序列,可以清楚的知道用户在哪几天购买了,什么卖家、什么品牌的商品,其信息更为立体。同时,购买行为距离当前的远近,代表了用户不同的活跃度,普通标量特征难以对其精准表达,而行为序列则可以。
(3) 表达用户兴趣演化过程。用户的兴趣迁移有一定的内在逻辑和关联,比如用户购买了手机,通常会继续购买手机壳和贴膜等。通过用户行为序列,可以清晰的观测到这一变化过程,有利于捕获用户兴趣演化过程,从而更精准的预估其下一次购买行为。
(4) 捕捉用户实时兴趣。用户的点击和购买等行为,代表了其较强的兴趣倾向。用户点击了某件商品后,实时推荐与之相关的其他商品,通常能取得不错的效果。更重要的是,用户兴趣转瞬即逝,而且随时可能退出APP。因此捕获用户实时兴趣,并做出精准推荐十分重要。通过提升行为序列特征的实时性,有助于这一目标的达成。
用户历史点击过的各商品与候选商品相关性
3 行为序列建模的基本范式
行为序列建模,主要分为短序列建模和长序列建模两大研究方向。短序列建模主要有池化和序列化两种方案,如下:
(1) 池化。分为求和/最大/平均池化和注意力池化两大类。求和/最大/平均池化,直接将行为序列特征向量,通过累加、求最大值和求平均等方法进行压缩,典型代表就是YouTubeDNN模型。这一方法十分简单,计算速度快,但缺少了与候选物品的特征交叉,无法做到“千物千面”,同时没有考虑不同行为重要性的差异。以DIN为代表的注意力池化,则先计算各历史行为与候选物品的相关性权重,然后再加权求和。通过这种方式,可以有效克服求和/最大/平均池化的上述缺点。
求和池化建模行为序列
DIN:注意力池化建模行为序列
(2) 序列化。其本质思想是通过序列模型来建模用户行为和兴趣的演化过程,与NLP文本序列有一定的共通之处。主要分为循环神经网络和Transformer网络两大类。DIEN通过GRU网络(RNN的一种实现)建立了行为序列层、兴趣抽取层和兴趣进化层,从而建模用户行为之间的关联和演化过程。BST和DSIN等模型则利用Transformer网络来实现序列建模,从而解决GRU的长程梯度衰减和无法并行计算等问题。
DIEN:GRU循环神经网络建模行为序列
BST:Transformer建模行为序列
基于Transformer的强大抽取能力和并行计算能力,其已成为目前序列建模的事实标准,目前短序列建模方向,Transformer已经成为了主流。长序列建模则在短序列的基础上,进一步探索用户更长期的兴趣,其难点在于巨大的计算和存储消耗,以及由此导致的线上推理延迟。
提升行为序列长度对提升模型AUC十分重要!!!
长序列建模主要分为离线法和在线法两种方案,如下:
(1) 离线法。将长周期行为序列先离线建模好,在线请求时直接调用,可以大大减少模型耗时,这就是离线法的核心思想。其典型代表是MIMN模型,它以独特的UIC工程模块设计、NTM记忆网络和MIU记忆归纳单元,打响了工业界长序列建模的第一枪。离线法实现简单,但无法与候选物品特征交叉,难以做到“千物千面”。
MIMN:离线法建模长序列
(2) 在线法。针对离线法的缺点,在线法利用两阶段范式,来建模长序列。其先从用户长周期序列中,快速筛选出与候选物品相关的历史行为,然后再对得到的短序列进行建模。与推荐系统先召回后排序的思想一脉相承。在线法的重点为,如何快速而准确地筛选历史行为。SIM模型通过候选物品的类目进行硬检索( Hard-search),另外还构建了一个辅助模型进行软检索(Soft-search)。ETA则利用SimHash和海明距离,进一步加快了筛选速度。从而在线构建Top-K近邻索引,保证两阶段一致性。
SIM:在线法建模长序列
ETA:在线法,索引也实现了在线化
4 行为序列建模的主要难点
用户行为序列建模同时也是推荐系统中落地难度较大的方向,其主要难点有:
(1) 实时性要求高。与其他静态和统计类特征(比如用户年龄和性别)不同,行为序列特征的实时性要求非常高。由于用户行为十分密集且瞬息万变,能否快速捕获其行为和兴趣,直接关系到行为序列建模的成败。通常行为序列特征需要达到秒级实时,而其他特征则小时级即可。这为特征工程体系带来了极大的挑战。
(2) 存储和计算消耗大。特别是长周期行为序列,其体积往往能占到所有特征的80%。同时随着序列长度增加,计算复杂度至少也是线性增加。这为线上推理耗时带来了极大的挑战。这一问题是长周期行为序列建模,贯穿始终的核心难点。
(3) 用户兴趣多样且易变。用户可能对多个品类的物品,均有一定的兴趣,且经常变化。同时用户点击等行为有一定的随机性,带来了较大的噪声。这为精准刻画用户兴趣带来了很大挑战。DIN通过计算候选物品和各历史行为的相关性,为用户各行为赋予了一定权重,有利于抽取集中兴趣,并能起到噪声过滤的作用。
后面有单独文章分别讲解DIN、DIEN、BST、DSIN、MIMN、SIM和ETA等序列建模经典模型,可以学习它们是如何优化这些难点的。可以关注作者,谢杨易知乎主页
5 行为序列特征工程
行为序列建模的首要主题就是,有哪些行为序列,也就是行为序列特征工程。它作为模型的输入,是序列建模的基础。可以从有哪些特征、正反馈和负反馈、短期行为和长期行为,以及全场景建模四个方向,对其逐步丰富和完善。
一条序列中可以包括哪些特征呢?一般来说,肯定会包括被行为(如被点击)的物品ID。为了提升泛化能力,还可以将物品的各项属性特征加入进来,比如物品的品牌ID、卖家ID、类目ID和价格等。同时,还可以加入一些环境特征,比如该行为距离当前的时间。这些特征经过各自的Embedding转换后,拼接为一个向量。然后再和其他所有历史行为拼接起来,形成一个长向量。为了加快模型收敛,通常会让序列中的这些特征,共享主模型中对应特征的Embedding。
用户行为种类十分丰富,可以构建点击、购买、点赞和收藏等行为序列。它们表达了用户喜欢什么,属于正反馈。同时,还可以构建不喜欢和曝光未点击等负反馈序列,从而表达用户不喜欢什么。需要注意的是,通常曝光未点击行为十分密集,序列长度很大,而且充满了噪声,对其建模具有很大挑战。
从时间周期上看,可以分为Session内行为、短期行为和长期行为三种。Session内行为兴趣十分集中,而长期行为兴趣则多样性强。同时建模三者,可以捕获不同时间跨度下用户的兴趣分布,有利于提升模型表达能力。
最后,全场景建模也十分重要。可以既构建用户在推荐场景的行为序列,又构建用户在搜索等其他场景的行为序列,从而获取用户完整的兴趣变化。更进一步的,如果能挖掘兄弟APP,甚至竞争对手APP上的用户行为,那就更好了。
6 总结
用户行为序列建模是推荐算法中至关重要的一环,也是目前较为核心和前沿的研究方向。其主要分为短序列建模和长序列建模两大方向。短序列建模又主要分为池化和序列化两种方式,其中池化包括求和池化、平均池化和最大值池化等非特征交叉型,和以DIN为代表的注意力池化。序列化则包括以DIEN为代表的RNN型,和以BST、DSIN等为代表的Transformer型。目前基于Transformer强大的特征抽取和并行计算能力,Transformer型已经成为了短序列建模的主流。
长序列建模则更进一步,考虑如何挖掘用户长期兴趣。其主要分为离线法和在线法两大类。离线法以MIMN为代表。它通过独特的工程设计,将长周期行为序列先离线建模好,在线请求时直接调用,大大减少了模型耗时,从而满足上线需求。在线法以SIM和ETA为代表,它们基于两阶段范式,先搜索出长序列中与当前候选物品相关的行为,得到一个短序列,再基于Transformer等短序列建模方法,得到最终的序列表征。
用户行为序列建模是推荐系统中的重点和难点,目前越来越多的公司在这个方向投入重兵,并取得了非常不错的业务效果。同时,其与NLP中的文本序列建模一脉相承,有不少共同点,很多思想和方法可以相互借鉴。
7 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。
购书方式:新书发布,京东限时15天内5折优惠。原价89,现价44.5,一杯咖啡的价钱。
发货速度:京东自营,半天即可送到。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
售后:支持京东七天无理由退货,售后无忧。
详细介绍和全书目录,详见
《精通推荐算法:核心模块+经典模型+代码详解》(谢杨易)【摘要 书评 试读】- 京东图书