其他
精排模型-从MLP到行为序列:DIN、DIEN、MIMN、SIM、DSIN
作者:Glenn
单位:腾讯
研究方向:数据挖掘、计算广告
DIN [3][4]
2.1 简介
2.2 创新细节
PReLU:数学公式如下,其中, 为指示函数 Dice:数学公式如下
2.3 优缺点
DIEN
3.1 简介 [5][6]
3.2 创新点
其中,
整体 Loss 为:
具体的,是将上述计算的权重,作为 GRU 更新门 [7] 的一部分,如下
更新门: 输出:
实验中,作者也可视化了引入权重后,序列 embedding 会有较强的指向性变化(如下左图中,曲线是对演进层每个输出做 PCA 后链接其他的结果,黄色是没有 attention 的结果,蓝色是目标 AD 与行为均不相关时的结果,红色是目标 AD 与某个行为相关时的结果)。
3.3 优缺点
2. 吃不下过长的行为序列,LSTM/GRU 一般能承受的行为序列长度为 30-50;实验中采用 49 天数据,每个样本行为序列为 14 天(序列长度 150 截断)
MIMN[8][9]
4.1 动机和目标
1. 存储限制:天猫广告业务上,6 亿用户,14 天行为序列(最大长度 150),消耗 1TB 的存储,如果序列长度放开到 1000,预计消耗 6TB(估计也用不到,毕竟大序列的可能都属于长尾)。
2. 时延限制:精排一般是 10ms,DIEN 上线已经达到 14ms,如果继续拉大序列长度,预计时延会达到 30ms。
针对上述两个问题,作者开始了优化 MIMN 的优化之路。
4.2 计算分离(User Interest Center)
4.3 长序列兴趣提取
离线计算时,左下角的结构能得到当前时刻每个用户的行为序列特征 S,兴趣矩阵 M,并存储在 TAIR 存储系统中。线上请求到来时,查询 TAIR 里对应用户的特征序列和兴趣矩阵,并将候选 AD 的 embedding( )输入模型的 Controller 部分,今儿提取相关的兴趣和序列结果,作为 MLP 模型输入的一部分。
论文重点介绍了 NTM、Memory Induction Unit 两部分:
1. NTM
这是 Google 于 14 年提出的记忆网络结构,该结构由 Controller、Memory 两部分构成,Memory 存储了一个记忆矩阵 。这里,作者把矩阵的每一行想象成一种兴趣类型。Controller 可以想象成 MLP/LSTM 等结构。
整个模型包括两种操作:
1)读操作:在线请求时用,输入是候选商品 /AD 的 embedding
将外部输入经过 Controller 得到读操作头
计算存储矩阵中每一行结果(论文里作者当作用户某种类型的兴趣)与读操作的相关性,作为特征的权重,即
其中 加权求和输出请求结果
*论文里介绍的相对简单,其实还包含了平滑、锐化等操作,更进一步的了解可以参考 [10]。
2)写操作:离线计算,初始训练/用户新增行为时用
将新增行为经过 Controller 得到写操作头,包含 Erase Vector( )和 Add Vector( )两部分 更新存储矩阵:
*具体操作可以参考 [11]
2. 创新点
(1)存储利用的归一化(Memory Utilization Regularization)
这是针对写操作的一种优化。行为序列中的 Item 也存在马太效应,大量热门 item 的进入,导致写操作存在大量相同的输入(写操作头相同),此时存储矩阵中的某些行被频繁更新,某些行却被忽略。作者提出优化写操作头的构造方法。
具体的,假设原来的写操作权重为 ,作者引入累积更新权重、对写操作头做了新一层的封装,如下:
其中 为待训练参数, 为累积的更新权重。
在此基础上,作者在损失函数增加了正则化项限制累积更新权重的方差
(2)Memory Induction Unit(MIU)
NTM 的结构没有提取时序信息,作者提出 MIU 的结构,获取每个时刻行为序列的结果。具体的,对于时刻 t,作者从读操作权重中选择 top k,即 ,并提取到对应的存储矩阵结果,经过 GRU 得到每个时刻的 embedding
4.4 优缺点
2. 存储:提出 NTM 的结构,存储系统只需要为每个用户维护存储矩阵 Mt 和序列矩阵 S,不需要单独保存行为序列,存储量从 6T 转为 2.7T
3. 效果:计算分离后,兴趣的提取无法很好的和候选 AD / 商品交互(仅通过存储矩阵实现交互),可能会对效果有损
4. 同步:时序模块的结果和 ctr 模型是异步更新的,行为序列频繁更新可能导致模型效果波动,需要有一定的回滚机制
5. 适用性:当用户行为丰富且行为更新频率没有远高于请求时,可以使用该模型。这是因为该模型时针对长序列行为建模的,行为数据不丰富当然不必使用。而如果用户行为更新频繁,ctr 模型都来不及更新,可能会使预测结果产生波动。
6. 其他:作者提到双 11 时虽然行为数据丰富,但用户行为特殊,提取出来做特征效果反而下降。
SIM [12][13]
5.1 简介
基于这些问题,作者干脆直接模仿推荐系统多阶段过滤的方法,第一阶段通过相对粗略的搜索模式,提取行为序列中与候选 AD 较相关的节点,第二阶段通过精准搜索的模式,得到序列与候选 AD 的关系,并形成 embedding 供 MLP 使用。这个模型能吃下的最大序列长度为 54000,能满足工业界提取长期用户兴趣的需求
5.2 泛搜索结构(第一阶段)
1. Hard Search:核心思想是只提取和候选商品相同类目的行为信息。具体的,在线维护一个“用户 ID -商品类目 ID -行为商品 ID”的双层索引数据。请求到来时,直接检索对应类目的行为商品序列。
2. Soft Search:通过类似 ANN 的商品召回结构,获取与候选商品相关的行为节点。
Serving 阶段:假设行为序列为 ,候选 AD 的 embedding 为 ,则基于 dot-product + 近邻搜索(ALSH)的方式( ),得到最相关的 Top K 个长期行为。
模型训练阶段:通过采样的方式得到若干行为,通过加权 sum-pooling 的方法得到行为 embedding( ),与目标 AD 的 embedding 拼接后送入 MLP 训练 CTR 模型,得到行为的 embedding 结果。
实际业务中,发现两种搜索模式的效果并没有太大差异,而性能上,明显 Hard Search 更有优势,因此线上采用 Hard Search(存储消耗 22TB。。。)
5.3 精准搜索结构(第二阶段)
该阶段,模型的输入分为 4 部分,用户画像,候选商品,短期行为序列和筛选出的长期行为序列( ),短期行为序列的信息提取采用 DIEN 的结构。而筛选的长期行为序列 ,因为行为发生时间与当前有一定距离,作者单独使用的 attention 结构去提取特征。
作者引入行为发生时间与当前时刻的时间差信息 ,并编码成 embedding( ),与行为序列的 embedding( )做拼接,作为长期行为节点的 embedding( )。然后利用 multi-head attention 的机制提取 emebdding 特征送入 MLP,即
整体的 Loss 为两阶段 loss 的加权和(第一阶段采用 hard search 时 ,否则 )
5.4 优缺点
1. 从实验看,SIM 基本能满足工业界对用户长期兴趣提取的要求,对比 DIEN,模型在对长期兴趣的提取效果是显著的。如下左图,横坐标表示的是用户当前时刻点击了某类别商品与上一次点击该类别商品的时间差,曲线表示样本分布情况,可以看到点击样本的 基本在 14 天以内。直方图表示对比 DIEN,SIM 的 AUC 提升情况,可以看到对于命中长期兴趣的点击样本,SIM 的效果远优于 DIEN。
3. SIM 号称能够处理的序列长度是 54000,对于阿里广告业务而言,相当于 180 天的广告行为,已基本覆盖用户长期兴趣建模所需的时间长度。
DSIN [14][15]
6.1 动机的目标
6.2 创新点
1. 兴趣抽取(Session Inerest Extractor Layer)
该部分作者使用 transformer 的结果,首先引入了 bias-encoding(会对每个 session,每个行为节点的位置,每个 embedding-bit 位构建全局共享的 embedding),即
其中,K 是 session 的个数,T 是每个 session 内行为节点的个数,C 是每个行为节点的 embedding 大小。
则 transformer 的输入为行为序列与 bias-encoding 的相加结果,即 。
接着通过 multi-head self-attention 的机制,得到多个兴趣结果( )。
2. 兴趣交互(Session Inerest Interacting Layer)
该层作者提出通过 Bi-LSTM 的结构提取兴趣序列信息, 。
3. 兴趣激活(Session Inerest Activating Layer)
借鉴 DIN、DIEN 的思想,将兴趣、序列信息分别和目标 AD 做 Attention,加权求和后得到 MLP 的输入,即
对于兴趣结果,有: ,其中 。对于序列结果,有: ,其中 。
后记
但实际应用中,SIM 的检索树要吃 22TB 内存,MIMN 整个模型结构和上线方案都比较复杂(不太优雅)。用户兴趣的提取,除了直接将行为序列灌入模型,是否还有别的补充方法,比如在画像建模时,就直接构建 [时间窗 X 类 目 X 行为类型 X 强度] 的商品类目兴趣。虽然从模型的角度看,这种建模会削弱候选 AD 与行为节点的交互,但也能在一定程度补充用户兴趣特征的缺失,同时长期兴趣的构建通过这种模式也会比较稳定。
当前模型仅处理广告点击序列的信息,如果同时考虑用户浏览、加购物车、与商家是否有沟通、其他组件的点击等行为,序列将非常长且多样化,是否还可以设计新的模型进一步优化(或者离线画像帮忙分担,特别是长期兴趣部分)。
参考文献
[2] 新智元:【阿里算法天才盖坤】解读阿里深度学习实践,CTR 预估、MLR 模型、兴趣分布网络等 https://zhuanlan.zhihu.com/p/35599271[3] DIN论文 https://arxiv.org/pdf/1706.06978.pdf[4] 王喆:推荐系统中的注意力机制——阿里深度兴趣网络(DIN) https://zhuanlan.zhihu.com/p/51623339[5] DIEN 论文 https://arxiv.org/pdf/1809.03672.pdf[6] yymWater:详解阿里之Deep Interest Evolution Network(AAAI 2019) https://zhuanlan.zhihu.com/p/50758485[7] Evan:深入理解lstm及其变种gru https://zhuanlan.zhihu.com/p/34203833[8] MIMN 论文 https://arxiv.org/pdf/1905.09248.pdf[9] 被包养的程序猿丶:阿里妈妈长期用户历史行为建模——MIMN模型详解 https://zhuanlan.zhihu.com/p/94432395[10] 呜呜哈:记忆网络之Neural Turing Machines https://zhuanlan.zhihu.com/p/30383994[11] 徐阿衡:论文笔记 - 从神经图灵机 NTM 到可微分神经计算机 DNC https://zhuanlan.zhihu.com/p/33852794[12] SIM 论文 https://arxiv.org/pdf/2006.05639.pdf[13] 梦醒潇湘:[SIM论文] 超长兴趣建模视角CTR预估:Search-based Interest Model https://zhuanlan.zhihu.com/p/154401513[14] DSIN 论文 https://arxiv.org/pdf/1905.06482.pdf[15] Ethan Wong:DSIN(Deep Session Interest Network )分享 https://zhuanlan.zhihu.com/p/89700141[16] kylin:深度兴趣网络DIN-DIEN-DSIN https://zhuanlan.zhihu.com/p/101541576[17] 小范同学:推荐系统CTR预估:用户兴趣建模 https://zhuanlan.zhihu.com/p/416350009
欢迎干货投稿 \ 论文宣传 \ 合作交流
推荐阅读
论文周报 | 推荐系统领域最新研究进展2022推荐系统序列建模的趋势总结
SIGIR2022 | 用于序列推荐的多粒度多兴趣神经模型
由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。
喜欢的话点个在看吧👇由于公众号试行乱序推送,您可能不再准时收到机器学习与推荐算法的推送。为了第一时间收到本号的干货内容, 请将本号设为星标,以及常点文末右下角的“在看”。