阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction

Introduction

CTR预估是工业应用中的重要任务,最近兴起的模型基本都是遵循embedding&MLP范式的。也就是将高维稀疏向量首先映射成低维的embedding向量并转换成固定长度的向量,最后将所得向量串联在一起经过MLP学习到特征间非线性关系后输出结果。但是这个很明显,对于不同的candidate来说,其所得表示向量是一致,导致无法捕捉到用户多样的兴趣。因此阿里提出了DIN。同时提出了一种新的**函数Dice以及一个减少计算量的正则化函数。

##DIN

Feature Representation

CTR预估的输入向量一般是高维稀疏向量。下面是一个列子:
阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

都是所谓的one-hot或multi-hot的向量。

而整个输入空间则如图所示:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

Base Model

base model 如下:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

因不是我们讲述的重点,因此适当略过,感兴趣的朋友可以在原文观看。

DIN

池化层虽然能达到目的,但却会损失很大一部分信息。DIN的关键就是利用attention机制学习locally activated information,从而尽可能减少信息损失。DIN引入了一个**结构,并使用了如下系统结构:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

可以看出,DIN与base model的主要区别就在于**单元上,这个结构通过计算广告的embedding与用户表现的embedding之间的相似度得到对应的权重,后对表现序列进行权重求和,取得了不俗的表现。

Training Techniques

这边论文里主要提到了两个一个是mini-batch aware regularization 和 data adaptive **函数。接下俩分别介绍一下:

Mini-batch Aware Regularization

因为CTR中有很多稀疏的高维数据,在训练中也只有非0会被更新,但是使用l2正则会将所有参数更新同时计算量非常大,于是阿里提出新的正则化方法。

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

对于一个batch中没有出现的数据不予更新。

具体权重更新如下:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

Data Adaptive Activation Function

论文里认为,对于所有输入不应该都选择0点为突变点而是应该依赖于数据的。于是提出了一种data dependent的方法:Dice**函数。形式如下:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

使得整流点处于数据的均值,实现了data dependent的思想。

Experiments

结果如下:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

特征编码:聚类效果明显,DIN模型能够正确的辨别商品是否符合用户的兴趣,如下图所示。

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析

局部**效果:与候选广告越相关的行为的attention分数越高,如下图所示:

阿里CTR预估三部曲(1):Deep Interest Network for Click-Through Rate Prediction简析