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

简介

MIMN(Multi-channel user Interest Memory Network)是阿里妈妈于2019年提出的点击率模型。MIMN通过算法、工程架构的协同设计,解决延迟、存储问题,作为工业界第一个在长达1000长度的用户行为序列上进行用户兴趣建模并取得了SOTA效果的落地实践

应用场景

阿里妈妈的展示广告的CTR排序,相比DIEN离线AUC绝对值+0.01,在线取得了7.5%CTR、6%RPM的提升

提出的背景

已有的CTR预估的工作可以分为如下两类:

(1)将用户行为序列中的item视为独立的,基于sum/max/attention操作聚合用户的兴趣表征;

(2)将用户行为序列中的item视为序列化的,基于LSTM/GRU操作聚合用户的兴趣表征

当用户行为序列长度>=1000时,因为系统的耗时、存储的增长和用户行为序列的长度增长成近似正比关系,而且现有的序列建模的工作支持的用户行为序列的长度在<=50,所以无法直接使用目前的算法、工程架构。

解决的方案

通过算法、工程架构的协同设计,解决CTR预估中的延迟、存储问题。具体如下:

(1)工程

解决延迟问题:设计UIC(User Interest Center),以保留每个用户最新的兴趣状态。通过依赖实时的用户行为触发事件实现更新,而非依赖于实时的通信请求,因而可以保证在实时CTR预估中保证UIC是无延迟的

(2)算法

解决存储问题:借鉴NTM中的memory network,增加memory utilization regularization(MUT)、memory induction unit(MIU)的设计,构建MIMN(Multi-channel user Interest Memory Network),结合UIC,实现在有限的存储下更有效地从用户的长期行为序列捕捉用户兴趣,并保证模型的性能

本文工作

(1)通过算法、工程架构的协同设计,实现对于用户长期行为序列行为的用户兴趣建模,并应用在在线展示广告场景下的CTR预估中

(2)设计UIC,将用户兴趣计算过程从整个CTR预估任务中解耦出来,并可以保证在实时CTR预估中UIC是无延迟

(3)借鉴NTM中的memory network,增加memory utilization regularization(MUT)、memory induction unit(MIU)的设计,构建MIMN(Multi-channel user Interest Memory Network),结合UIC,实现在有限的存储下更有效地从用户的长期行为序列捕捉用户兴趣,并保证模型的性能(4)经过在公开数据集、阿里妈妈在线展示广告的数据集上展开严密实验、分析,并分享相关经验

实时的CTR预估系统

离线的模型提升

  • 特征现状

在系统中,由于90%左右的特征是用户行为特征,10%是用户人口学统计特征和广告特征,用户行为特征含有丰富的信息,以及对用户兴趣建模是有价值的。

  • 论证增加用户行为序列长度的必要性

如下是基于Embedding&MLP模型,在不同用户行为序列长度上的离线AUC指标

从中,可以看到在长度为100时的AUC+0.6%。在我们场景下AUC+0.3%是很明显的提升了,说明增加用户行为序列长度具有较大的价值

系统对延迟、存储的需求

延迟:工业场景下要求RTP的整体耗时在10ms以内。DIEN在QPS=500、最大序列长度达1000时的延迟在200ms,不满足在线展示广告系统中QPS=500下的最大延迟为30ms的要求

存储:存储和用户行为序列长度成正比。如:6亿用户,最大序列长度达1000,存储包含商品id、店铺id、品牌id等的信息,上述总占用存储量是6T。对于系统来说,这是一个很大的存储消耗

系统改进

  • 新旧系统对比

其中,A是旧系统,B是新系统,两者的关键差异点在于用户兴趣表征的计算。A中,用户兴趣表征是在RTP中计算;在B中,是由实时的用户行为事件触发再由UIC Server计算。从而,保证在实时CTR预估中UIC是无延迟的

  • User Interest Center

保留每个用户最新的兴趣状态。通过依赖实时的用户行为触发事件实现更新,而非依赖于实时的通信请求,因而可以保证在实时CTR预估中保证UIC是无延迟的。

最终,可以实现在QPS=500、用户行为序列长度在1000的情况下,UIC将DIEN延迟从200->19ms

MIMN

整体结构

如下所示,包含Memory Utilization Regularization(MUR)、Memory Induction Unit(MIU):

从用户长期行为序列学习的挑战

目前,由于在推理阶段需要存储用户的长期行为,对于线上系统,采用DIN需要较大的存储,采用attention需要难以承受的计算压力。采用RNN存在“记忆衰减”,而且需要存储较多的中间状态。

解决方案

  • 子模块结构

采用如下的子模块结构,包括MUR、MIU:

  • NTM

NTM的实现:包含两个环节,即Memory Read、Memory Write

NTM的效果:在论文【1】中提出了NTM(Neural Turing Machine)来捕捉行为序列中的信息,以及按照固定大小的存储空间进行存储,在很多长序列建模任务上相比RNN均有提升。

在UIC中只采用NTM的不足之处:虽然相比于原始的行为序列,UIC存储了固定长度的memory tensor,但是为了满足存储的要求,必须限制memory tensor的维度

  • Memory Utilization Regularization(MUR)

目标:保证memory tensor存储更多的信息量,增强memory tensor的表达能力

引入MUR的必要性:对于热门的item倾向于经常出现在用户的行为序列中,在memory更新中占据主导地位,只基于NTM会导致memory的不合理利用。

已有的解决方案和不足:在NLP中通常采用LRU的方式解决短周期内的memory的利用问题,可以保证相邻时间戳内不会往同一个slot中写入数据。不足之处在于,用户会有同属于同一个兴趣点的多个行为,这些行为会被写入到同一个slot中。因而,提出了Memory Utilization Regulation(MUR)。

  • Memory Induction Unit(MIU)

目标:捕捉随时间演变的用户兴趣

方案:通过引入GRU,实现多通道兴趣建模

MIMN的适用场景

论文中提到适合如下两个场景:

(1)丰富的用户行为数据;

(2)实时用户行为的传输规模不明显超过实时的CTR预估请求

模型效果

数据集

数据集行为类型行为序列周期行为序列长度
Amazon Datasetreview20<=action_length<=100>=20 & <= 100
Taobao Datasetclick<=200<=200
阿里巴巴在线展示广告 Datasetclick训练集:49天数据,每天的样本中都包含长期样本(最近60天行为)测试集:训练集样本中的后一天数据max_length = 1000

数据规模如下所示:

评估

离线:AUC

包含四个方面:

1)和baseline的对比;

2)对UIC只采取baisic NTM下的不同的slot number of memory(public datasets)的对比;

3)对UIC是否采用Memory Utilization Regularization(MUR)(public datasets)的对比;

4)对UIC是否采用Memory Induction Unit(MIU)(public datasets)的对比;

5)在工业数据集上的对比

离线效果

  • 和baseline的对比(public datasets)

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

  • 对UIC只采取baisic NTM下的不同的slot number of memory的对比(public datasets)

结论:不同数量的设置影响最终的效果,因而又不要引入Memory Utilization Regularization(MUR)

  • 对UIC是否采用Memory Utilization Regularization(MUR)的对比(public datasets)

结论:实现了更高效的应用

  • 对UIC是否采用Memory Induction Unit(MIU)的对比(public datasets)

结论:实现了更好的效果

  • 在工业数据集上的对比

结论:相比DIEN,离线AUC+0.01,相当显著

具体数据如下:

说明:

MIMN under out-synch setting (within one day):T+1异步更新(是工业界常用的方式)。在实际的线上,要求小时级延迟,降低风险。相比MIMN(非异步),两者没有差异,主要是因为MIMN学习到了稳定的用户兴趣表征

MIMN trained with big-sale data:用双11当天这一异常日子的大数据得到的离线效果。结果表明,虽然和平时相比样本的分布不同,但是依然取得了不错的效果

在线效果

在线:在2019-03-30~2019-05-10的线上AB实验中,取得了7.5%CTR、6%RPM的显著提升

如下所示:

最终在展示广告上的应用

(1)采用了Warm Up Strategy。基于用户行为序列平均长度超过1000的过去120天内的历史行为,通过离线训练好的MIMN得到用户兴趣表征的初始值,并初始化UIC。通过上述机制,保证后续的持续更新

(2)Rollback Strategy(回滚策略)。为了防止UIC更新出现问题,设计了回滚策略在每天的00:00存储学习得到的用户兴趣表征的拷贝,并保存最近7天的回滚策略的结果

代码实现

TensorFlow实现MIMN

参考文献

  • Alex Graves, Greg Wayne, and Ivo Danihelka. 2014. Neural turing machines. arXiv preprint arXiv:1410.5401 (2014).

结尾

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

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

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

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

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

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

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


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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值