1 行为序列建模总体架构
2 SIM提出的背景
MIMN第一次真正实现了长周期行为序列的建模,并取得了非常不错的业务效果。但受困于离线建模,它没办法实现用户行为序列和候选物品的交叉。同时采用一个固定大小的记忆网络来压缩超长序列,存在网络容量过低,建模能力不足的问题。针对这个问题,SIM模型应运而生。
SIM由阿里巴巴广告团队于2020年提出,与MIMN是同一作者。全称“ Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction”[8]。它采用了在线建模的方案,从而克服离线建模导致的行为序列和候选物品不能充分交叉的问题。同时利用二阶段的方式,先从超长序列中检索出与候选物品相关的历史行为,再对缩减后的序列进行短序列建模。非常类似于推荐系统中的召回和排序的关系。SIM取得了非常不错的业务效果,其工程架构也比较友好,已经被广泛应用到各大推荐场景中。
3 SIM模型结构
SIM(Search-based Interest Model)的行为序列建模主要分为两个阶段,General Search Unit (GSU) 和 Exact Search Unit (ESU)。其中GSU负责从超长序列(比如长度大于10000)中检索出与候选物品相关的历史行为,从而将其缩减为一个短序列(比如长度不超过200)。ESU负责对缩减后的短序列进行精准建模。然后将建模后的结果和其他特征Embedding合并,经过MLP进行特征交叉并最终得到模型输出。GSU类似于推荐系统中的召回,实现粗略的筛选,减轻系统压力。ESU则类似于推荐系统中的排序,实现精准预估,并得到最终结果。SIM模型结构如图5-17所示。左边为第一阶段,也就是GSU。右边为第二阶段,也就是ESU。
4 GSU检索单元
联想下召回是怎么设计的,它一般由多个通路组成,一些基于规则策略,比如热门召回。另一些基于Embedding,比如向量召回。同样的,GSU也包括两种方式, Hard-search和Soft-search。
Hard-search基于规则策略,不需要训练模型。它基于候选物品的某些属性,从超长序列中挑选出与其相同的历史行为,从而实现序列长度的缩减。SIM原文中采用了候选物品的类目ID,比如当候选物品为手机时,则从用户行为序列中挑选出历史点击过的电脑、耳机等数码商品。实际应用时,可先挖掘场景中有区分度的属性,再根据它进行Hard-search。
实际应用中,SIM设计了两级索引来存储用户超长行为序列。第一级索引为用户ID,第二级索引为类目ID,值即为某个用户在某个类目下的行为序列。这种方式设计十分巧妙,可以大大提高在线Hard-search的速度,同时减少了分布式服务器传递超长序列的通信成本。
Hard-search基于的设想是,属性相同的物品相关性高,而属性不同的物品相关性低。在电商场景中,类目ID确实可以做到这一点。但一方面商品存在类目错放的情况,类目ID本身有一定准确率问题。另一方面不同类目之间可能存在一定的相关性,比如啤酒和尿布。再者,其他业务场景要找到一个高区分度的属性,可能并不是那么容易。基于此,SIM又提出了Soft-search。
Soft-search先计算物品的Embedding,再利用内积计算物品间相关性,最后从行为序列中挑选出top-K个与候选物品相关度高的。这是一个基于Embedding的top-K近邻搜索问题,可以利用 ALSH等向量检索算法。故关键在于怎么得到Embedding。很容易想到从精排模型中获取,比如物品ID的特征Embedding。能否使用已有的DIEN等短序列模型呢?可能不大合适。由于序列长度差异过大,导致特征Embedding分布可能差别比较大,直接复用可能有准确度不足的问题。SIM构建了一个基于长序列的辅助模型来解决这一问题。模型结构如图5-17最左边所示。它与DIN类似,采用Attention池化的手段,先计算各历史行为和候选物品的相关性权重,然后将所有行为加权求和,得到长序列的表征。然后将它与候选物品等其他特征向量一起合并,经过MLP多层神经网络充分交叉并得到输出。
Hard-search和Soft-search是SIM检索阶段的两种实现方式。二者各有优劣,Hard-search实现简单,不需要训练模型,可解释性高,线上延迟低。Soft-search准确率高,通用性强。可根据业务场景实际情况,灵活选择。电商场景下,类目ID区分度比较高,实验中发现Hard -search与Soft-search效果几乎相同。综合考虑后,SIM最终采用了Hard-search。
5 ESU建模单元
GSU对超长序列进行检索,将其转化为一个短序列。ESU则对这个短序列进行建模,并得到最终的序列表征。故ESU本质上是一个短序列建模问题,跟之前的DIN、DIEN、BST等模型出发点相同。鉴于Transformer长序列建模能力较强,ESU采用它来实现,整体跟BST比较像。
考虑到超长序列中,行为发生的历史时间差别比较大,因此ESU同样将时序信息加入进来。其时序信息表达为,历史行为发生时间,与当前时刻的间隔。然后将时序信息分桶离散化,进行Embedding后,和物品其他特征一起合并(Concat)作为输入。这一点与BST如出一辙。
需要指出的是,ESU本质上是短序列建模,DIN、DIEN、BST等其他方法仍然适用。可根据实际情况灵活选择。
6 SIM总结和思考
SIM通过先检索后建模的二阶段方式,有效将超长行为序列转化为了短序列。从而克服了离线建模时用户行为不能与候选物品交叉等问题,实现了在线建模。其Hard-search和Soft-search检索方式的思考和落地,也充分体现了作者对业务特点的充分理解,是一次不错的理论结合实际。SIM工程落地也比较友好,特别是Hard-search方案,已经被应用到了各大推荐场景。
7 作者新书推荐
历经两年多,花费不少心血,终于撰写完成了这部新书。本文在5.7节中重点阐述了。
源代码:扫描图书封底二维码,进入读者群,群公告中有代码下载方式
微信群:图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。
详细介绍和全书目录,详见
《精通推荐算法》,限时半价,半日达https://u.jd.com/mq5gLOH