用户行为序列建模(篇四)-【阿里】SIM

简介

SIMSearch-based Interest Model)是阿里妈妈于2020年提出的点击率模型。MIMN通过算法、工程架构的协同设计,解决计算、存储问题,作为工业界第一个在长达1000长度的用户行为序列上进行用户兴趣建模并取得了SOTA效果的落地实践。SIM突破了用户行为序列的长度限制,并在长达54000长度的用户行为序列上进行用户兴趣建模,并取得比MIMN更优异的SOTA效果的落地实践。

应用场景

阿里妈妈的展示广告的CTR排序离线AUC相比MIMN绝对值+0.008,在线取得了7.1%CTR、4.4RPM的提升

提出的背景

数据方面:在淘宝,有23%的用户在过去5个月点击超过1000个商品

模型方面:

  1. MIMN:当用户行为序列长度超过1000时,由于MIMN将用户的历史行为编码到一个固定长度的memory matrix,因而会带来大量的噪声
  2. DIN:面临无法接受的计算、存储问题,只适用于用户行为序列<150的建模
  3. 不考虑上述模型,直接基于用户行为序列建模,会占用大量的存储、计算资源,带来较大的响应延迟问题,在实际应用中是无法接受的

解决的方案

设计SIM模型,通过两个串行的搜索模块提取用户兴趣,实现在序列规模、效果准确率上的提升

模型结构和Loss设计

符号表示

用户:U;

用户的行为序列:B = [b1, b2, ..., bT],bi表示用户的第i个行为,T是用户的行为序列长度

用户的子行为序列:B*=[b1*, b2*, ..., bK*],K是经过GSU获取得到的top-K相关的子行为序列

模型结构和Loss设计

如下所示,包含2个串联的部分:General Search Unit(GSU)、Exact Search Unit(ESU

  • General Search Unit(GSU)

(1)目标

在线性时间复杂度下,从用户原始的长期行为序列中获取top-K相关的子行为序列,K<<用户原始的长期行为序列长度。一般,K在百级别。

(2)实现

有两种实现方式:hard-searchsoft-search。用ri表示对于bi基于GSU计算得到的和目标item的相关性得分,数学表达如下所示:

(3)hard-search

Ca、Ci分别是目标item、bi的所属类目。通过类目匹配,选择和目标item的所属类目相同的用户行为序列的bi作为子行为序列

(4)soft-search

  1. Wb、Wa是模型学习的权重参数,ea、ei分别表示目标item、bi的embedding。其中,ei是基于one-hot表示的bi进行embedding得到的低位向量,向量集合是[e1, e2, ..., eT]。基于ea、ei,以及Maximum Inner Product Search (MIPS)实现在线性时间复杂度下,从用户原始的长期行为序列中获取top-K相关的子行为序列

  2. 由于用户长期行为序列、短期行为序列的item的分布不同,所以soft-search需要基于用户长期行为序列进行兴趣建模

  3. 通过引入辅助的CTR预估任务(如上图所示),用户向量U可以被表示为

后续,Ur、ea会concat一起作为MLP的输入。由于有些用户的长期行为序列过长,难以直接将所有的行为喂给模型。所以,需要随机采样得到子序列,实现和原序列的分布保持一致。然后,基于子序列进行训练

  • Exact Search Unit(ESU)

(1)目标

基于获取到的top-K相关的子行为序列,更精准地捕捉用户兴趣

(2)实现

如上图所示,考虑K个子行为序列和目标item之间的时间间隔,如下所示:

B*、D分别表示为:E*=[e1*, e2*, ..., eK*]、Et=[e1t, e2t, ..., eKt],concat后作为最终的用户行为序列的表示,即zj=concat(E*, Et)。通过multi-head attention捕捉用户多个长期兴趣:

i表示第i个attention score,Wbi、Wai是模型学习的权重参数。最终的用户多个长期兴趣表示:

Ult最终被喂给CTR预估模型的MLP

  • GSU和ESU的联合训练

通过交叉熵损失函数,定义如下loss:

若GSU采用soft-search model,则设置alpha、beta均为1;否则,设置alpha=0、beta=1

在线系统

如下所示,是展示广告的实时预测系统(Real Time Prediction system,RTP system),在线实时请求实时获取到用户的行为序列特征、用户人口统计学数据

存在的问题

  1. CTR模型的响应时间需要在30ms内,考虑用户长期行为序列,则RTP系统的模型预测面临较大的存储、延迟问题

  2. RTP系统最多每秒服务于100万用户,信号传输量和用户行为序列长度成线性增长,考虑用户长期行为序列导致信号传输面临问题

GSU的选择

在阿里巴巴的在线展示广告系统中,采用hard-search、soft-search所得到的top-K的行为序列是相似的。虽然采用soft-search相比hard-search,具有更好的效果,但是从性能、资源消耗的角度考虑,在在线展示广告系统中采用hard-search

在线系统改进

如下所示,是改进后的展示广告的实时预测系统(Real Time Prediction system,RTP system),在线实时请求实时获取到用户的行为序列特征、用户人口统计学数据

  • 改进点

为每个用户建立two-level索引(即user behavior tree, UBT),第一层表示用户id,第二层表示类目id,索引值是行为序列的item

  • 计算和存储

存储:UBT是分布式系统,总存储是22TB。通过UBT、hard-search,用户行为序列的长度从上万降低到上百,大大减少存储压力。

计算:由于可以在离线构建UBT,所以在线hard-search的响应时间足够短,相比于GSU的计算可以忽略。除此之外,也可以并行计算用户的其它特征

模型效果

数据集

数据集行为类型行为序列周期行为序列长度
Amazon Datasetreview短期:最近10个行为长期:最近90个行为<= 100
Taobao Datasetclick短期:最近100个行为长期:最近400个行为<=500
阿里巴巴在线展示广告 Datasetclick训练集:49天数据,每天的样本中都包含长期样本(最近180天行为)、短期样本(最近14天行为)


测试集:训练集样本中的后一天数据
30%用户:>10000
max_length = 54000

评估

离线:AUC,包含两方面:1)和baseline的对比;2)采用two-stage的效果对比

离线效果

  • 和baseline的对比(public datasets)

结论:对于CTR预估,考虑用户长期行为序列有较大提升

说明:

DIN:只用用户短期行为序列

Avg-Pooling Long DIN:将用户长期行为序列进行average-pooling,然后将pooling得到的embedding和其余特征的embedding concat到一起

  • 和不同stage的对比(public datasets)

结论:采用两阶段具有较大的提升

说明:

Avg-Pooling without Search:不对用户长期行为序列进行过滤,直接进行average-pooling

Only First Stage(hard):把hard-search的结果进行average-pooling,喂给MLP

Only First Stage(soft):把soft-search的结果进行average-pooling,喂给MLP。基于pre-trained的embedding计算内积选出top50的相关的行为

  • 和baseline的对比(industrial datasets)

结论:

  1. soft-search的效果更佳,但两者之间的gap较小;

  2. 综合考虑如下两点,采用hard的方式。考虑用soft方式需要在线上实时使用ANN,而hard只需要离线构建two-level索引,因而hard更有效且对系统更友好。除此之外,采用hard和soft得到的topK结果中,hard的结果覆盖了soft的75%;

  3. 相比MIMN,AUC+0.008,在业务中已经是非常显著了

在线效果

如下所示:

复盘SIM

问题1:为何SIM在用户长期兴趣建模上效果更佳?

问题2:SIM更倾向于推荐和用户长期兴趣相关的item吗?

为了回答上述两个问题,引入Days till Last Same Category Behavior (Dcategory )。含义:用户在相同类目的item上发生点击的日期间隔。若不再发生点击,则置为-1。对比DIEN,效果如下:

结论:在<=14days,两者差异不大;>=14days,SIM效果更好。具体结论如下:

最终在展现广告上的应用

采用hard-search方式,天级别更新UBT的two-level索引,保证一个item对应的GSU的长度在200以内。初次之外,采用deep kernel fusion对multi-head attention的计算进行优化。线上延迟如下所示,SIM的max长度达到54000,相比MIMN,延迟只增加5ms。

结尾

亲爱的读者朋友:感谢您在繁忙中驻足阅读本期内容!您的到来是对我们最大的支持❤️

正如古语所言:"当局者迷,旁观者清"。您独到的见解与客观评价,恰似一盏明灯💡,能帮助我们照亮内容盲区,让未来的创作更加贴近您的需求。

若此文给您带来启发或收获,不妨通过以下方式为彼此搭建一座桥梁: ✨ 点击右上角【点赞】图标,让好内容被更多人看见 ✨ 滑动屏幕【收藏】本篇,便于随时查阅回味 ✨ 在评论区留下您的真知灼见,让我们共同碰撞思维的火花

我始终秉持匠心精神,以键盘为犁铧深耕知识沃土💻,用每一次敲击传递专业价值,不断优化内容呈现形式,力求为您打造沉浸式的阅读盛宴📚。

有任何疑问或建议?评论区就是我们的连心桥!您的每一条留言我都将认真研读,并在24小时内回复解答📝。

愿我们携手同行,在知识的雨林中茁壮成长🌳,共享思想绽放的甘甜果实。下期相遇时,期待看到您智慧的评论与闪亮的点赞身影✨!

万分感谢🙏🙏您的点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~


自我介绍:一线互联网大厂资深算法研发(工作6年+),4年以上招聘面试官经验(一二面面试官,面试候选人400+),深谙岗位专业知识、技能雷达图,已累计辅导15+求职者顺利入职大中型互联网公司。熟练掌握大模型、NLP、搜索、推荐、数据挖掘算法和优化,提供面试辅导、专业知识入门到进阶辅导等定制化需求等服务,助力您顺利完成学习和求职之旅(有需要者可私信联系)

友友们,自己的知乎账号为“快乐星球”,定期更新技术文章,敬请关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值