嘿,记得给“机器学习与推荐算法”添加星标
| 作者:YEN
| 单位:东北大学
| 研究方向:推荐系统、计算广告
本文分享一篇发表在WSDM’21的点击率预估方面的文章:交互注意力网络用于CTR预估中细粒度特征学习[1]
论文核心内容:构建更细粒度的特征交互提升CTR预估效果
接下来将从以下角度分享本篇论文:问题背景、相关的解决方案、已有方案存在的不足、提出的模型框架、提出的模型细节、实验设置及分析、总结。
CTR背景
点击率预估在推荐系统和在线广告场景中扮演着重要的作用。典型的点击率预估场景包括:淘宝/京东商品点击率预估,腾讯广告点击率预估...
CTR预估任务的数据一般包含用户属性、物品属性、交互上下文等多个域(Field)。
CTR预估模型可粗略的分为以下几类:
考虑特征交叉浅层模型:LR、FM、FFM、FwFM、FmFM...
考虑特征交叉深层模型:DeepFM、xDeepFM...
考虑历史行为的模型:DIN、DIEN (今天分享的论文属于本方向)
现存的考虑历史行为的方法
DNN 模型
在 2016 年,阿里妈妈团队开始尝试引入深度学习来解决 ctr 问 题,并考虑了用户的交互历史物品。第一代 Deep CTR 模型:
第一代深度学习模型如上图,第一层是简单的原始特征,包括用户特征,候选广告特征,上下文特征,历史行为特征。这些特征在经过lookup操作后得到对应的embedding向量,然后concat在一起喂入MLP,最终通过softmax得到预测值。
DNN模型对历史行为特征的应用仅仅是得到嵌入后直接相加。
DIN模型
然而,用户的历史行为数据,并不是每个都与当前的候选物品有关系,而是仅仅有一部分在起作用。比如一个爱好购物的人,购买过"羽绒服",也购买过"电脑",那么这次的预估是否会点击一个"裙子"时,"裙子"就更容易受到"羽绒服"这个购买历史的影响。所以阿里在 2017 年提出了Deep Interest Net (DIN)模型:
DIN通过对候选物品使用反向激活的方式,按照候选物品与历史点击商品的相关性的高低,来赋予历史行为不同的权重。
相关论文发表在:Guorui Zhou, Xiaoqiang Zhu, Chenru Song, Ying Fan, Han Zhu, Xiao Ma, Yanghui Yan, et al. Deep interest network for click-through rate prediction. KDD, 2018.
DIEN
然而,DIN 模型忽略了兴趣随着时间之间演化这样一个重要的性质。所以 2018 年, 阿里进一步提出 DIEN,重点就是针对这样一个兴趣随时间演化的特点来进行建模以及模型的改造。
DIEN 模型包含:兴趣提取模块、兴趣演化模块。
相关论文发表在:Guorui Zhou, Na Mou, Ying Fan, Qi Pi, Weijie Bian, Chang Zhou, et al. Deep interest evolution network for click-through rate prediction. AAAI, 2019.
现存方法的不足
尽管DIN、DIEN等方法取得了较大的成功,但他们依旧存在一些不足。如下图所示,即他们仅考虑了候选 item 与历史行为的关系,而忽略了候选 item 与用户属性、交互上下文信息的关系。
这可能导致以下问题:
之前的方法考虑历史交互行为,然而用户可能会有与历史交互无关的需求(如下图a所示,在amazon数据集上仅有少量物品是出现在之前的历史行为中的)。传统的给用户行为加注意机制的 CTR 预测方法不适用;
很多物品的交互可能发生在很长时间之前,而近期没有活跃行为(如下图b所示,在amazon数据集上有超过50%的用户最近的活跃记录都在30天前)。因此很难通过近期的行为获得用户当前的喜好。
不同的场景中激活的历史行为应该是不同的。例如“T-shirt”这 个 item 应该激活的是“summer”这个上下文场景而不是“winter”。“mechanical keyboard”这个候选 item 更应该与用户属 性中的“programmer”这个特征相关。
提出的模型框架
这篇文章提出了 Multi-Interactive Attention Network (MIAN) 模型,它集成了多种细粒度交互信息。
多交互网络包含三个局部交互模块(候选物品-行为交互模块;候选物品-用户属性交互模块;候选物品-上下文交互模块)和一 个全局交互模块。
模型细节
问题定义
CTR 预估的输入输入分为四个模块,候选物品、历史行为、上下文、用户属性。对每个类型的特征进行嵌入。
Item-Behaviors Interaction Module (IBIM)模块
此模块的目的是学习候选物品-历史行为之间的交互关系
具体的,此模块包括以下五个计算步骤:
对输入数据进行Layer Normalization
使用Transfomer中的Multi-Head Self-Attention
得到的结果记为