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

2020 年 11 月 7 日 AINLP
写在前面
【推荐系统】专栏历史文章:
深入理解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为200*80*2)


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

消融实验验证两阶段搜索框架的有效性,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相对更好的建模了长期兴趣。



             


由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入推荐系统交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注推荐系统

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
2

相关内容

【WWW2021】基于双侧深度上下文调制的社会化推荐系统
专知会员服务
27+阅读 · 2021年1月28日
专知会员服务
49+阅读 · 2020年12月19日
专知会员服务
33+阅读 · 2020年11月18日
【KDD2020】 解决基于图神经网络的会话推荐中的信息损失
专知会员服务
31+阅读 · 2020年10月29日
专知会员服务
22+阅读 · 2020年9月8日
【CIKM2020-阿里】在线序列广告的用户隐藏状态推断
专知会员服务
23+阅读 · 2020年9月5日
基于知识图谱的推荐系统研究综述
专知会员服务
321+阅读 · 2020年8月10日
推荐系统之矩阵分解家族
图与推荐
13+阅读 · 2020年3月28日
推荐召回算法之深度召回模型串讲
AINLP
22+阅读 · 2019年6月14日
一文简单理解“推荐系统”原理及架构
51CTO博客
8+阅读 · 2018年10月31日
推荐系统概述
Linux爱好者
20+阅读 · 2018年9月6日
推荐系统经典技术:矩阵分解
LibRec智能推荐
8+阅读 · 2017年10月10日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
5+阅读 · 2017年11月13日
VIP会员
相关VIP内容
【WWW2021】基于双侧深度上下文调制的社会化推荐系统
专知会员服务
27+阅读 · 2021年1月28日
专知会员服务
49+阅读 · 2020年12月19日
专知会员服务
33+阅读 · 2020年11月18日
【KDD2020】 解决基于图神经网络的会话推荐中的信息损失
专知会员服务
31+阅读 · 2020年10月29日
专知会员服务
22+阅读 · 2020年9月8日
【CIKM2020-阿里】在线序列广告的用户隐藏状态推断
专知会员服务
23+阅读 · 2020年9月5日
基于知识图谱的推荐系统研究综述
专知会员服务
321+阅读 · 2020年8月10日
相关资讯
推荐系统之矩阵分解家族
图与推荐
13+阅读 · 2020年3月28日
推荐召回算法之深度召回模型串讲
AINLP
22+阅读 · 2019年6月14日
一文简单理解“推荐系统”原理及架构
51CTO博客
8+阅读 · 2018年10月31日
推荐系统概述
Linux爱好者
20+阅读 · 2018年9月6日
推荐系统经典技术:矩阵分解
LibRec智能推荐
8+阅读 · 2017年10月10日
Top
微信扫码咨询专知VIP会员