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

【推荐系统】专栏历史文章:

深入理解 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共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出