image.png
Multi-Interactive Attention Network for Fine-grained Feature Learning in CTR Prediction
https://dl.acm.org/doi/pdf/10.1145/3437963.3441761
本文涉及的内容相对简单,从题目出发,即通过注意力机制来实现的候选item和各种特征之间的各种交互。时间紧急的小伙伴可以直接看总结部分。
公式太长可以左右滑动
背景
以用户历史行为序列作为特征进行推荐的方法已经存在许多了,但是依旧存在一些问题,本文针对其中的三个问题,提出了多交互注意力机制网络(MIAN)。
- 很多网络都用到了注意力机制,但是用户经常会点击与历史交互的item无关的新item(IUIM、ICIM)。
- 有的用户只有很久以前的历史行为,而近期不活跃,没有相应的历史数据,因此很难从这些数据中捕获用户近期的偏好(IBIM中的加权、IUIM、ICIM)。
- 在不同的特征子空间,用户历史行为的表征存在巨大差别(GIM)。
方法
本文提出的MIAN主要包含:IBIM、IUIM、ICIM、GIM。
Embedding Layer
将特征划分为四部分:候选item、历史行为、用户画像、上下文信息。特征可以表示为下式,
其中S为总的field数,
表示第i个field的特征,如果是类别特征则他为one-hot;如果是数值型特征特为标量。通常one-hot特征的向量是高维的因此需要对其进行降维,如下式,
表示第i个field的embedding。将上述四个部分的特征中不同域进行拼接可以得到不同部分的表征,以user为例:
IBIM
Item-Behaviors Interaction Module,item行为交互模块。这部分采用Pre-LN Transformer(比较轻量级,参数少)来挖掘用户历史行为中的偏好,主要包含:layer norm、multi-head self-attention、 position-wise feed-forward networks 。具体如下:
Layer Norm:首先将embedding输入到Layer Norm,公式如下,公式和Batch Norm类似,只是在均值和方差的计算维度上存在差异。这里就不赘述了
Multi-Head Self-Attention: 这里的多头自注意力机制也是传统常用的,这里就不赘述了,经过多头自注意力机制之后得到
作为FFN的输入。
Position-wise FFN:这部分主要由两个全连接层和ReLU组成,公式如下:
经过上述三个步骤,LN、多头自注意力和FFN,可以得到输出
,为了得到交互的表征,直接将候选item的表征和输出拼接得到下式:
正如背景中所说的,不同时间的交互行为对当前用户的偏好的影响是不一样的,此处采用注意力机制的权重进行加权,公式如下,获得权重
之后,对表征进行加权。
IUIM
Item-User Interaction Module,item-user交互模块。IUIM这部分主要是考虑候选item和用户画像之间的关系,用户的兴趣不一定能从历史交互中获取,因为可能用户近期不活跃,交互数据是很久以前的。此时,可以从用户画像来反映用户本身具有的特点,从而挖掘其偏好。作者采用的方式也很简单,将用户画像中每个field中的embedding
和候选item的特征
拼接得到新特征后
,
,进行注意力机制的计算,最后进行加权。公式如下,
ICIM
Item-Context Interaction Module,item-context交互模块。这里考虑的是上下文对用户兴趣偏好的影响,操作方式和IUIM类似,先将context表征和候选item表征拼接,然后经过注意力机制对其进行加权。这里不赘述,公式如下,
GIM
Global Interaction Module,全局交互模块。这个模块,作者由DCN得到启发,将低阶信息和高阶信息进行交互融合,捕捉原始特征和交互特征之间的关系。作者将所有特征拼接后,同样采用注意力机制,公式如下,
预测和训练
最后采用全连接层对得到的表征进行预测,损失函数采用交叉熵损失函数
实验结果
离线
image.png
在线AB测试
总结
从本文的题目中,我们就可以发现这篇文章是从注意力机制出发的,因此它的所有模块都是通过注意力机制来实现的,主要包括IBIM、IUIM、ICIM、GIM。这几个模块考虑了不同类型的表征和目标item的表征之间的关系。总体来看本文的各个模块考虑的点包括:用户序列和目标item之间的交互、用户画像本身反应的兴趣和上下文信息对偏好的影响。其实之前的一些文章,包括DIN、DIEN等序列推荐的文章,其实都考虑了这些特征,但是本文的特点在于将这些特征显示地与候选item进行交互,而之前的一些方法是直接将这些embedding作为特征进行预测。这也给我们一些启发,即把这些表征之间进行显式交互,计算相关性。针对背景中的问题:
- 利用GIM对不同子空间中的表征进行加权,从而对存在差异的表征方式进行融合
- 利用ICIM、IUIM来挖掘用户偏好,是的用户历史序列不可用时能够反映用户的偏好,但是这其实就是传统的方式,例如DCN这些。因此感觉只是说更进一步的利用注意力机制进行显式交互。
- 利用IBIM获得序列信息,并对历史表征进行加权,不同权重反映不同的作用。