推荐系统阅读论文(20)——阿里妈妈基于用户长序列历史行为的SIM推荐

论文:

论文题目:基于搜索的用户兴趣建模与提升序列行为数据的点击率预测。

地址:https://arxiv.org/pdf/2006.05639.pdf.

这是阿里妈妈在2020SIGIR上发表的又一部优秀作品。让我们看看这张纸。

在CTR/CVR预测领域,用户的历史行为对CTR/CVR预测的建模很有指导意义。用户丰富的“兴趣点”隐藏在用户的历史行为序列中,用户的每一次行为都是对某种兴趣的回应。比如各种口红产品,洗面奶我都喜欢,但对某个牌子不是特别感兴趣。在这些兴趣的驱使下,我可能浏览并点击了很多相关领域的内容或商品。这些历史行为会帮助我预测我未来的行为吗?答案是肯定的。正是基于上述主观行为模式,我们需要对用户的历史行为进行建模。用户行为队列越长,用户兴趣就会越丰富,但也会带来更大的挑战。其实用户兴趣是发散的,多样的。如何从发散多样的用户兴趣中,找到真正对当前任务有帮助的兴趣,是非常重要的。

在介绍这篇论文之前,我建议先看一下阿里的另一篇论文,MIMN,也是一篇基于长用户序列的CTR预测的论文。然而,MIMN有几个问题。一种是当用户行为序列长度进一步增加时(比如增加10倍或者十倍以上),MIMN无法准确捕捉到给定特定候选人的用户兴趣。还有一个原因是MIMN不能很好的解决延迟和存储这两个瓶颈,也就是说在线部署的时候,延迟怎么可能和其他轻量级机型差不多?

在淘宝,用户的浏览序列长度可能达到数千甚至上万。如何高效有效地利用这种长序列信息?妈妈阿里提出SIM模型,从用户的长期历史行为队列中进一步挖掘用户有价值的兴趣点,为长期行为序列的在线服务提供了可行的方案。让我们来看看这篇论文。

型号概述:

SIM分为两个阶段,两个阶段都有自己的核心部分。本文将长序列用户行为特征建模分为两个模块,即通用搜索单元(GSU)和精确搜索单元(ESU),这是两个阶段的核心模块。下面简单介绍一下这两个模块的功能。GSU,如图所示,简单理解为从几十万长用户序列中选择K个与候选项目最相似的项目,并在系统中对比推荐召回模块,先缩减长序列项目的长度,再进行后续任务。另一个是ESU。这个模块的作用是对GSU刚刚提取的K项序列进行建模,得到一个能够代表用户长期兴趣对的向量,并利用这个向量对后面的对进行排序。

GSU的主要任务是从长度为t的序列中提取k个与候选项相似的项。GSU有两种选择TopK项的方法,即硬搜索和软搜索。如前所述,GSU类似于推荐系统中的召回阶段,而在多渠道召回中,一般有基于嵌入式的召回和基于策略的召回,其中硬搜索是基于规则的召回,软搜索是基于嵌入式的召回。下面详细说说这两种方法。

这种方法实现起来比较直观简单,就是我们根据给定的规则,从候选行为序列中筛选出与当前目标任务相关的候选集合。比如我历史上浏览过种类非常不同的商品(比如电子产品、口红、男鞋等。)在淘宝上。当候选广告为iphone12时,硬搜索法会从我的历史行为队列中选择与电子产品相关的行为进行建模,用于PCTR预测,而口红和男鞋对这个预测没有影响。通过上面的例子,你应该能够理解这种基于规则和策略的思想。文中指出,硬搜索法以商品类别作为筛选标准。

这种方法是基于嵌入提取的,软搜索的整体结构可以从上面的模型图左侧看到。这部分也是子模型。模型的输入是候选项目和长序列,目标是CTR估计。这样就学习到了候选项和长序列项的嵌入信息。通过嵌入,我们可以计算候选广告嵌入和历史行为嵌入之间的内积相似度,并使用近似最近邻检索方法(本文使用ALSH)获得与topK相关的候选行为序列。

在这个模型中,DNN的输入是候选项?串联of和Ur,其中Ur:

注意,如果用户行为增长到一定程度,就不可能直接把整个用户行为输入到模型中。在这种情况下,我们可以从长序列用户行为中随机抽取序列集,这些行为仍然需要遵循原始序列的相同分布。

这种方法的缺点是计算成本比较大,没有基于规则的硬搜索方便。好处是效果应该会更好。但文中也提到,两种方法在效果上的差别并不是特别大,所以最终基于性能和效果的折中,采用了硬搜索作为相对简单的方式。

整体来说,这一部分主要是利用从GSU提取的k项,得到一个能够代表用户长期兴趣的向量,配合其他特征发送到DNN,做整体的CTR预测任务。

在本文中,来自GSU的K对项目通过自我注意来建模:

其中包括:

concat中第一个是原始嵌入,第二个是关于时间的嵌入。

按照自我关注的方式,我们得到另一个向量h(K)。

这里还估算了第二个子模型的ctr,特点是模型图上画的输入,还有迪恩之前的文章和介绍,这里就不赘述了。

最后的损失是:

其中α和β是控制失重的超参数。在我们的实验中,如果GSU使用软搜索模型,α和β都被设置为1。硬搜索模型的GSU是非参数的,α设置为0。

广告推荐系统对在线计算的耗时要求比较严格,因为要保证最基本的用户体验。随着用户行为序列的进一步增长,传统方式直接计算长序列用户行为需要耗费时间和内存占用,因此需要有针对性地对在线系统进行升级改造。文中提到,在硬搜索和软搜索的选择上,基于大量离线实验结果决定采用方便、快捷、有效的硬搜索方式,信息损失也是可以接受的。

在线部署的总体系统架构图如下:

为了让SIM更好地为用户提供低延迟体验,阿里构建了SIM的在线服务架构:

可以看出,对于用户的行为序列,论文对每个用户采用了两级索引结构:key-key-value,第一个key是user_id,第二个key是category ids,value是用户行为序列中属于相应类别的条目。这样就可以通过这个索引树快速找到属于统一类别的条目。

在线A/B测试的实验效果:

用户的历史行为对于CTR/CVR估计的整个任务变得越来越重要。如果不考虑时间和存储,将所有序列作为长期兴趣的关键点输入模型,可以准确定位用户的长期兴趣。然而,由于性能原因,必须考虑一种特殊的方法来筛选这个长序列。筛选出的k项都与候选项相似,切割效果不会带来CTR估计的损失。在过滤的过程中,分为两种方法,但是为了在线部署,要考虑性能最好的硬搜索法来过滤TopK,类似于嵌入过滤,但是比嵌入更快,所以采用这种方法。

未来应该会有更多关于序列推荐的论文出现,这只会给长序列阶段带来一定的兴趣偏差,所以如何有效挖掘用户更丰富的行为特征背后的商业价值是需要考虑的。