DIN

8/2/2021 DIN

# 用户对于商品的兴趣有哪些特点?DIN是如何去捕捉用户兴趣的这些特点的?

多样性(Diversity):用户在访问电商网站时会对多种商品都感兴趣。也就是用户的兴趣非常的广泛,例如从一个年轻妈妈的历史行为中,可以看到她的兴趣非常广泛:羊毛衫、帆布包、耳环、童装、奶粉等等。

局部聚焦(Local Activation):即用户是否会点击推荐给他的某一件商品,往往是基于他之前的部分兴趣,而非所有兴趣。例如,对一个热爱游泳与吃零食的用户,推荐给他一个泳镜,他是否会点击与他之前购买过泳裤、泳衣等行为相关,但与他之前买过冰淇淋、旺仔牛仔等行为无关。

DIN针对当前候选广告局部地激活用户的历史兴趣,赋予和候选广告相关的历史兴趣更高的weight,从而实现Local Activation,而weight的多样性同时也实现了用户兴趣的多样性表达。

# 对于用户兴趣的捕捉,我们一般有哪些方法?

  1. 平等考虑所有的用户行为,对应到模型中就是使用average pooling层把用户交互过的所有商品的embedding向量取均值,从而得到用户向量
  2. 按时间对用户做time decay,加大近期行为影响权重,具体在做average pooling的时候按时间调整权重
  3. 采用注意力机制,就是对不同行为特征赋予不同weight,这样某些weight高的特征便会主导这一次的预测,就好像模型对这些特征pay attention。

# DIN的输入是怎么处理的?

对于单值离散特征,经过Embedding Layer得到Embedding Vector。

对于多值离散特征,先经过一个Embedding Layer,后面增加一个Pooling Layer。Pooling可以用sum或average。最终得到一个固定长度的Embedding Vector,这是用户兴趣的一个抽象表示,常被称作User Representation,会损失一些信息。

# DIN的激活单元是如何设计的?

DIN会计算候选广告与用户最近N个历史行为商品的相关性权重weight,将其作为加权系数来对这N个行为商品的embeddings做sum pooling,用户兴趣正是由这个加权求和后的embedding来体现。具体地,AU 内部是一个简单的多层网络,输入是候选广告的embedding、历史行为商品的embedding、以及两者的叉乘。具体如下红框所示:

# 为什么增加叉乘作为输入?

因为两个embedding的叉乘是显示地反映了两者之间的相关性,加入后有助于更好学习weight。论文初版使用的是两个embedding差,经过了一系列的尝试和实验对比,才转为使用叉乘。

# 为什么使用简单的MLP实现AU呢?

作者尝试过 LSTM 结构实现AU,效果并不理想。理由是文本是在语法严格约束下的有序序列,而用户历史行为序列可能包含了多个同时存在的用户兴趣点,用户会在这些兴趣点之间“随意切换”,这使得这个序列并不是那么严格的“有序”,会产生一些噪声。

# DIN中使用激活函数Dice替代经典的PReLU激活函数,优势是什么?

PRelu是很常见的激活函数,其固定的折点(hard rectified point)是0:

f(s)=\begin{cases} s ,\quad if \quad s>0\\ \alpha s,\quad if \quad s≤0 \\ \end{cases} = p(s)s+(1-p(s))\alpha s

其中指示函数

论文对PRelu做了改进,使得曲线中间部分光滑变化,其中光滑的方式与数据分布有关:

常数在文中取

训练时,是当前mini-batch的均值和方差。在测试时,通过常见的moving average计算,论文中moving average超参数取0.99.

Dice的主要动机是随数据分布变化动态地调整 rectified point,虽说是动态调整,其实它也把rectified point限定在了数据均值 ,实验显示对本文的应用场景Dice比PRelu效果更好。

# DIN使用了一种自适应正则,它的动机是什么?

使用自适应正则的出发点在于,使用的特征具有显著的“长尾效应”,即很多feature id只出现了几次,只有小部分feature id出现多次,这在训练过程中增加了很多噪声,并且加重了过拟合。

正则化是处理过拟合的常见技巧,但正则方法在稀疏数据深度学习上的使用,还没有一个公认的好方法。论文使用的特征具有显著的稀疏性,对绝大部分样本来说,很多特征都是0,只有很小一部分特征非0。但直接使用正则,不管特征是不是0都是要正则的,要梯度计算。对大规模的稀疏特征,参数规模也非常庞大(最大头的参数来源就是embedding),这种计算量是不可接受的。

论文提出了自适应正则,即每一次mini-batch,只在非0特征对应参数上计算L2正则(针对特征稀疏性),且正则强度与特征频次有关,频次越高正则强度越低,反之越高(针对特征长尾效应)。例如,在第m次mini-batch训练,对第 j 个特征的embedding向量的梯度更新:

其中表示第m次mini-batch的数据集,表示特征在整个训练集中出现的频次。表示中是否至少有一个样本的特征取值为1,正则参数在论文中取0.01.

# DIN论文中使用了GAUC作为评价指标,它的好处是什么?

AUC表示正样本得分比负样本得分高的概率。在CTR实际应用场景中,CTR预测常被用于对每个用户候选广告的排序。但是不同用户之间存在差异:有些用户天生就是点击率高。以往的评价指标对样本不区分用户地进行AUC的计算。

论文采用的GAUC实现了用户级别的AUC计算,在单个用户AUC的基础上,按照点击次数或展示次数进行加权平均,消除了用户偏差对模型的影响,更准确的描述了模型的表现效果:

其中权重w既可以是展示次数(impression)也可以是点击次数(clicks)。n是用户数量。