Fork me on GitHub

深入理解推荐系统:超长用户行为序列建模

作者专栏: https://www.zhihu.com/people/wang-he-13-93
【推荐系统】专栏历史文章:

深入理解 YouTube 推荐系统算法
深入理解推荐系统:召回
深入理解推荐系统:排序
深入理解推荐系统:Fairness、Bias 和 Debias
深入理解推荐系统:推荐系统中的 attention 机制

作为【推荐系统】系列文章的第七篇,将以CIKM2020中的一篇论文“Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction”作为今天的主角,主要介绍针对Lifelong用户行为序列建模的方案,用户行为长度可以达到上万,而且可以像DIN那样,对于不同的候选商品从用户行为里查找有效的信息建模用户的特殊兴趣。

背景

从上图中可以发现,当用户行为序列长度增加到1000时,AUC会有1.5%的提升,用户历史行为数据对ctr的预估是有很大帮助的,而且越丰富用户行为数据对ctr模型的帮助越大。

本文的主要工作:

  • 提出SIM建模长序列用户行为数据,两阶段的串行的机制设计使得SIM能够更好地建模lifelong序列行为数据;
  • 介绍了在大规模工业系统中部署SIM的实际经验,SIM已经部署在阿里展示广告系统上,带来了7.1%CTR和4.4%RPM的提升;
  • SIM推动用户行为长度最大到达54000,比MIMN提高了54倍。

目前,对于用户行为数据的利用分为两方面:

  1. 一种是考虑效果DIN和DIEN,优点:考虑候选广告和用户行为的关系(Attention等),使用与候选item相关的行为建模出用户对于当前候选的兴趣,即可以建模出用户对不同候选item的兴趣;缺点:用户行为不能太长,serving的性能和线上存储。
  2. 另一种是考虑性能MIMN,优点:将用户兴趣建模和ctr预估解耦,在用户兴趣建模方面,借鉴memory network的思路,使用两个矩阵M和S分别存储用户兴趣的信息和用户兴趣演化的信息,线上进行ctr预估时,只需要读取两个固定大小矩阵。因为兴趣矩阵可以提前计算好,所以不会对线上耗时造成较大的影响。缺点:固定大小的memory 矩阵表达信息是有限的,如果想建模更长的用户行为序列,memory-based的方法会面临表达能力有限,难以过滤噪声,建模随时间信息遗忘的问题。UIC&MIMN解耦了兴趣建模和在线CTR预估的计算,建模用户兴趣时模型无法获取和使用待预估的候选item的信息。

这说明如果想更准确地建模超长的用户行为,对候选item的利用是很有必要的。

模型结构

本文借鉴了DIN的思想,也就是用与候选item相关的用户行为建模用户对当前预估目标item相关的兴趣。同时又考虑到线上根据候选item直接对全序列进行搜索性能肯定是扛不住的,所以就把整个搜索过程分成了两个阶段,即General Search Unit和Exact Search Unit。General Search Unit是将长度上千的用户行为数据缩减至几百,其中的大部分计算可以离线完成,Exact Search Unit是将缩减后的用户行为进一步进行信息提取,建模出用户对于候选item的兴趣。

General Search Unit的两种实现思路:

  1. Hard Search,无参的方式。直接选出与候选item同类目的用户行为。这样做的原因是电商场景下,item天然具有层级结构,所以直接选出同类目的行为也是合理的。
  2. Soft Search,用参数化的方式,对用户行为和候选item进行向量化,然后用向量检索的方式检索出Top_K个相关的行为(实现方法有Maximum Inner Product Search (MIPS)的方法ALSH)。文中提到因为长期用户行为的分布和短期用户行为的分布不一致,直接使用ctr模型中,短期行为学习到的embedding矩阵,会造成一定的误导,所以对于Soft Search中需要用到的embedding矩阵要单独搭建模型,进行训练。训练数据为超长的用户行为序列,作为ctr的一个辅助任务联合训练,如果行为过长,需要随机采样。

给定用户行为集合B=[b_1; b_2; ,,, ; b_T] ,其中b_i是第i个用户行为, T是用户行为的长度。GSU为每个行为b_i计算关于候选商品的相关性分数 r_i,然后根据r_i选择Top-K相关的行为得到行为序列 B^*。hard-search和soft-search不同点是r_i的计算公式:

hard-search 是无参数的,只有和候选广告类目相同的用户行为数据才会被选出送到下一级进行建模。其他C_a代表了候选广告类目,C_i代表了第i个用户行为的类目。虽然hard-search是一种基于数据特征的一种比较直观的方案。但是它非常容易部署到实际工业界在线预估系统中。

soft-search 中,我们将用户行为序列B映射成为embedding表达E=[e_1; e_2; ......; e_T]。W_b和W_a都是模型参数,其中e_a代表了候选广告的embedding,e_i代表了第i个用户行为embedding。为了加速上万个用户行为的Top-K检索,采用基于内积的近似最近邻检索出Top_K个相关的行为,比如Maximum Inner Product Search (MIPS)。

在工业数据上,Hard Search可以覆盖Soft Search中75%的行为,线上考虑性能使用了Hard Search。

**Exact Search unit **直接使用multi-head Attention的结构对GSU中提取出的topK的用户行为进行建模,得到用户的长期兴趣的表示。因为长期行为中的时间跨度较大,文中也将历史行为与候选行为之间的时间间隔建模进来。

Multi-head attention

最后,其中第一阶段和第二阶段是采用交叉熵 loss 联合学习。Loss 函数如下:

Online Serving

工业推荐系统和广告系统需要在1秒内处理巨量流量请求,需要CTR模型实时响应。serving耗时应该少于30ms。上图简要说明了CTR任务的Real Time Prediction (RTP) system。考虑lifelong用户行为,长期用户兴趣模型的serving在实时系统中更加困难。存储和耗时是长期用户兴趣模型的瓶颈。流量会随着用户行为序列长度线性增长。并且,在流量高峰每秒会有100万的用户请求。部署长期兴趣模型到线上挑战巨大。

对于GSU里的两种search-model:soft-search model和hard-search model,用阿里的数据集做了大量离线实验。可以观察到soft-search model和hard-search model得到的Top-K行为极度相似,也就是soft-search得到的大多数top-K行为和目标商品的类目是一样的。这是我们场景里数据的一个典型特征。鉴于此,尽管soft-search model在离线实验中比hard-search model稍微好些,权衡收益和资源消耗,最终选择在我们系统中用hard-search model部署SIM。

General Search的选择:Hard Search选出的用户行为可以覆盖soft Search选出的用户行为中的75%,实验效果为Hard Search比Soft Search略差。考虑到平衡serving的效果和性能,最终选择Hard Search的方式离线构建搜索树。

实验结果

数据集 最大长度 短期行为 长期行为
Amazon(Book) 100 最近10个 前90个
Taobao 500 最近100个 前400个
Industrial 30%超过10000,最大54000 近14天 180天

Avg-Pooling Long DIN,直接将长期用户行为Embedding avg-pooling与其他特征embedding拼接。SIM相比其他使用长期用户行为的模型提升比较多,分析原因是因为MIMN和Avg-pooling Long DIN将长期行为建模成固定长度的向量,难以获取用户多样的兴趣使用时间信息也有一定的帮助。

**实验(公开数据集结果,其中optimizer为Adam,lr为0.001,FCN为200802)

实验(公开数据集结果-消融实验)

消融实验验证两阶段搜索框架的有效性,Only first stage(Soft)内积相似度top50,有搜索的要优于没有进行搜索的 => 长期行为存在噪音,进行初步搜索是有必要的。两阶段搜索优于只有第一阶段搜索的 => 精确的建模与候选item相关的用户长期兴趣对ctr预估是有帮助的。

实验(真实数据)

Soft比hard提升不是很大,soft线上使用最近邻搜索,需要更大的计算和存储开销,所以最后是用了Hard-search。

实验(线上)

CTR响应不超过30ms,QPS500时,SIM响应时长提升不超过5ms。

进一步分析SIM是否在用户长期兴趣建模上表现更好?能否推荐更多与用户长期兴趣相关的item?

d_category定义为距离用户上一次点击同类目的item的天数。例如用户5天前点击了手机类目下的item1,今天又点击了手机类目下的item2,则d_category=5。如果之前没有点击过同类目下的item,则d_category = -1。文中统计了DIEN和SIM在实际在线的推荐结果。横纵为d_category,并将过去14天内的行为类目覆盖的点击行为定义为短期,超过14天的定义为长期,纵轴表示SIM的推荐且被点击的item数量的分布和SIM相对DIEN提升的百分比。

可以看到SIM和DIEN主要的推荐结果还是集中于近期部分,而且在近期上,SIM和DIEN基本没有差别,这是因为SIM和DIEN都建模了短期行为。在长期部分SIM的推荐且被点击的结果是显著高于DIEN的。这说明SIM真正更多的推荐出了用户偏向长期行为相关的结果,且用户进行了点击,侧面说明SIM相对更好的建模了长期兴趣。


本文地址:https://www.6aiq.com/article/1604529945239
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出