天天看点

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

最近两年大公司在推荐系统的研究热点,当属是用户行为建模。

阿里在最近三年内不断的升级用户序列的建模方式,从最早只使用了attention 的 Deep Interest Network, 到兴趣进化网络 DIEN,再到session 兴趣网络DSIN,一步步的深入挖掘用户行为的兴趣价值。而这些模型也只是利用了用户上百量级的短期行为,用户的浏览序列长度可能达到上千甚至上万个,怎么高效且有效的利用这种长序列信息呢?

SIM 提供了 Lifelong 超长行为序列线上服务化的可行性方案。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

 背景

用户的历史行为序列中蕴藏着丰富的用户”兴趣点“,用户的行为序列有巨大的价值。

  • DIN:使用attention机制针对target 给不同行为不同权重
  • DIEN:行为之间的时间关系非常重要,采用GRU建模兴趣的演变
  • MIND:召回中使用多个向量分别代表用户不同的兴趣

阿里之前的一篇论文MIMN,首次把建模行为序列长度扩大到千级别,但是由于将所有用户历史行为编码到一个固定大小的记忆矩阵中,造成记忆单元中包含许多噪声,并且MIMN 放弃了候选target 与历史行为的交互,所以MIMN很难针对候选集捕获对应的用户兴趣。

模型结构

SIM (search-based user interest modeling with lifelong sequential behavior data) 与DIN 思想相同,只关注与候选target 相关的行为。

SIM 采用两阶段检索结构。先经过 GSU (General Search Unit) 模块在上万量级的历史行为中筛选出与候选target 相关的上百量级的子序列,之后把子序列传递给 ESU (Exact Search Unit)模块做 ctr 预估。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

General Search Unit

第一阶段是利用GSU模块,从上万的长期序列中检索出与候选 target 相关的上百个行为。其中有 hard-search 和 soft-search 两种检索方式。

在电商场景下,category是一个很直接的商品相似度度量属性。hard-search 就是直接选出与候选 target  类目相同的历史子序列。

soft-search 需要另外离线训练一个包含长期行为序列的DNN模型来得到用户行为及广告的embedding表达,然后线上计算候选广告和历史行为 embedding 的内积作为相似度,并利用近似最近邻检索方法来得到 topK 的子序列。

论文中对于soft-search 公式的介绍有些含糊,只是说Wb 和 Wa 是模型参数,这里有必要详细说明下。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

由于长期序列和短期序列数据分布有差异,在soft-search中直接使用短期序列的模型中的embedding 会误导长期兴趣的检索,所以需要另外建立一个如下图的用长期序列训练得到的辅助 ctr 模型。soft-search 公式中的Wb、Wa 、ei、ea  都由该模型的参数导出的,ri  代表用户行为ei  和 target  ea 的相似度,辅助模型中 attention 相似度计算就是用的上面 soft-search 公式中的 ri ,通过辅助模型 attention 的训练保证了soft-search 检索的正确性。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

 理论上使用soft-search 的效果会更好一点,作者实践发现soft-search 与 hard-search 产生的topk 子序列非常相似,所以出于性能的考虑采用了hard-search这种规则式的方法。

Extract Search Unit

第二阶段是进行点击率预估,同时会对长期和短期用户序列进行建模:

  • 用户短期序列使用DIEN建模
  • 上一阶段传递过来的长期子序列 与 候选target  进行multi-head attention.

multi-head attention

先明确符号含义,E* = [e*1 ,e*2 ,......,e*k] 代表用户行为embedding, Et = [et1 ,et2 ,......,etk] 代表行为之间时间间隔对应的embedding。zb = concat(e*b, etb),  e*b 和 etb  concat到一起作为用户行为最终的表达,引入了序列中的时间属性。

下图的公式论文中没有明确说明,我理解 Zb 是包含所有子序列行为的矩阵。整个attention 就是把候选target ea  当做 query,历史行为相当是key 和 value, query 与不同的key 的相关度通过softmax 归一化。

针对不同的head, query 和 key 有不同的映射矩阵,单个head 就是 value 的加权求和。最后不同的head concat 到一起作为长期用户兴趣的表达,再进入多层mlp。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

线上架构 

 阿里的预估系统需要在百万qps 的压力下延迟低于30ms,论文给出了如下图的上线方案:

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

hard-search和soft-search选取的topk序列,非常相似,所以考虑到性能资源,就采用hard-search的方式上线。既然用hard-search,就要找与目标item相同category的序列,所以论文提出了user behavior tree(UBT),就是两层索引,第一层key为userid,第二层key为category,最后value为行为序列。UBT用分布式系统实现,占用了22TB空间。

评价指标 

SIM 优异的表现真的是由于对于用户长期兴趣精确的建模?SIM真的更倾向于推荐符合用户长期兴趣的商品吗?

对于灵魂拷问,只用通过数据来验证。比较惊艳的是,论文提出了dcategory  (Days till Last Same Category Behavior)指标,该指标是对于点击样本计算距离上一次点击同类目商品的天数,统计点击样本在dcategory 上的分布可以验证模型对于长期 or 短期兴趣 推荐倾向程度。

如下图,可以看发现 SIM 相比于 DIEN 模型,在较长的兴趣间隔上点击数量有明显的提升,这说明我们的推荐系统的视野变得“开阔”起来,能够给用户推荐更符合长期兴趣的商品。并且对于短期行为的预估准确度SIM和DIEN是几乎一样的,因为SIM中包含了DIEN的建模。

SIM: 阿里定向广告--基于搜索的超长用户行为序列 ctr 模型 背景模型结构线上架构 评价指标 

参考

[1].Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction,2020.

继续阅读