论文笔记 | KDD2018 | Deep Interest Network for Click-Through Rate Prediction

din-title.jpg

论文地址:https://arxiv.org/abs/1706.06978

官方代码:https://github.com/zhougr1993/DeepInterestNetwork

一 为什么读这篇

几乎是在公司看到出现频率最高的工作,到处都有提及,各个业务方向都有研究,可见是有真正影响力的。通过从原文出发,看看到底应该怎么玩DIN。本篇也是读的第一篇集团的工作。

二 截止阅读时这篇论文的引用次数

2019.7.28 79次。2年的时间,在推荐系统里算是不错的水平了。

三 相关背景介绍

17年6月挂到arXiv上,和Transformer是同年同月的工作,中了18年的KDD。出自阿里妈妈。总共10个作者,大老板盖坤在最后一位,一作周国睿是93年的,已经是高级算法专家了。。三作朱小强是一作老板,在业界还是有名气的,知乎上也有很多小强本人的回答。

四 关键词

CTR

DIN

五 论文的主要贡献

1 提出DIN,核心就是通过用户行为序列与目标item做交互,自适应地学习用户兴趣表示

2 提出mini-batch aware正则化方法

3 提出数据自适应激活函数

4 工业界中如何评估模型效果的示范

六 详细解读

0 摘要

在传统的Embedding&MLP范式中,用户特征均被压缩为固定长度的表示向量,而没有考虑候选广告是什么。这种固定向量长度的使用方式会是一个瓶颈,因为它很难有效地捕获用户多样的兴趣。本文提出的深度兴趣网络(DIN)旨在解决这个问题,通过设计一个局部激活单元来实现。该结构协同确定的广告从用户历史行为中自适应地学习用户兴趣表示。这种表示向量随着广告的不同而不同,极大的提高了模型的表达能力。此外,本文开发了两项技术:mini-batch aware regularization和数据自适应激活函数用于训练工业级上亿万参数的模型。

1 介绍

相关广告术语

CPC(Cost Per Click):按点击计费(平均点击价格)

CPM(Cost Per Mille):按千次展现计费(千次展现价格)

eCPM(effective Cost Per Mille) = bid * CTR

CTR方法多是采用类似Embedding&MLP的范式。然而在表达用户多样的兴趣时限定维度的用户向量表示将会是一种瓶颈。以电商为例,用户可能在访问网站的时候同时对多个种类的商品感兴趣,即用户的兴趣是多样的。这种多样的兴趣被压缩在固定长度的向量中限制了Embedding&MLP方法的表达能力。但也不能简单的直接增大维度大小,这样在有限的数据上会带来过拟合的风险,也会产生计算和存储的负担。

从另一方面来说,当预测广告候选时也无需将用户多样的兴趣压缩为同一个向量,因为仅有用户的部分兴趣会影响他的行为(点或不点)。基于这个启发,本文提出了DIN,它可以通过在给定候选广告时考虑历史行为的相关性来自适应的计算用户兴趣的向量表示。与候选广告有更高相关性的行为有更高的激活权重并占据用户兴趣表示的主导。用这种方式,提升了模型在限制维度下的表示能力,同时能使DIN能够更好地捕获多样的兴趣。

当模型大小到达十亿级别时传统的计算L2正则方法计算量上不可接受(需要计算所有的参数)。本文提出的mini-batch aware regularization仅仅计算mini-batch中非零特征的参数来计算L2正则,这样使得计算量可控。同时本文设计了一个数据自适应激活函数,它派生自PReLU,通过输入的分布来自适应的调整校正点。

2 相关工作

学习每个词分布式表示的NNLM开启了embedding。LS-PLM和FM可以视为只有一个隐层的神经网络。Deep Crossing,Wide&Deep,YouTube推荐CTR模型通过复杂的MLP扩展了LS-PLM和FM。PNN,DeepFM。

3 背景

din-fig1.jpg

拥有丰富行为的用户兴趣是多样的,同时基于给定的广告是局部激活的

4 深度兴趣网络

4.1 特征表示

形如[weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book]的数据通常通过编码转换为高维稀疏二值特征。编码后的特征如下图所示

din-figx.jpg

本文所用特征如表1所示,由4个类别组成。另外本文没有使用组合特征,通过DNN来捕获特征交叉。

din-table1.jpg

4.2 基础模型(Embedding&MLP)

基础模型如图2左边所示,通常由Embedding层,Pooling层和Cocat层,MLP,Loss共同组成。

din-fig2.jpg
Embedding层

Embedding运算遵循表查找机制。

Pooling层和Concat层

不同用户有不同个数的行为。全连接层通常要求处理固定长度的输入,因此实践上经常将Embedding向量列表通过pooling层变换为固定长度的向量。pooling层通常有sum pooling和average pooling。

MLP

Wide&Deep,PNN,DeepFM都是聚焦于设计MLP结构来更好的提取信息。

Loss

L=-\frac{1}{N} \sum_{(\boldsymbol{x}, y) \in \mathcal{S}}(y \log p(\boldsymbol{x})+(1-y) \log (1-p(\boldsymbol{x})))

4.3 DIN结构

通过pooling得到的表示向量对于给定用户都是相同的,而没有考虑候选广告是什么。这种情况下,有限维度的用户表示向量将成为表达用户多样兴趣的瓶颈。也不能简单的直接扩展维度,这样会带来过拟合及计算资源的消耗。

DIN通过考虑候选广告和历史行为的相关性来自适应的计算用户兴趣的表示向量。DIN结构如图2右边所示。除了引入新设计的局部激活单元外,和基础模型结构几乎一致。如等式3所示,根据给定的候选广告A,通过有权重的sum pooling来自适应的计算用户表示\boldsymbol{v}_{U}
\boldsymbol{v}_{U}(A)=f\left(\boldsymbol{v}_{A}, \boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \ldots, \boldsymbol{e}_{H}\right)=\sum_{j=1}^{H} a\left(\boldsymbol{e}_{j}, \boldsymbol{v}_{A}\right) \boldsymbol{e}_{j}=\sum_{j=1}^{H} \boldsymbol{w}_{j} \boldsymbol{e}_{j}
其中\left\{e_{1}, e_{2}, \ldots, e_{H}\right\}是长度为H的用户U的行为Embedding向量列表,\boldsymbol{v}_{A}是广告A的Embedding向量。a(\cdot)是前向网络,它的输出作为激活权重。除了两个输入Embedding向量,a(\cdot)还增加了它们俩的外积来输入之后的网络,这是一种显式的知识用于相关性建模。

局部激活单元与NMT里的Attention方法类似,不同的是没有严格限制\sum_{i} w_{i}=1,目的是保留用户兴趣的强度。也就是说没有对a(\cdot)的输出执行softmax进行归一化。

5 训练技巧

5.1 Mini-batch Aware Regularization

如图4所示,如果没有正则化的话,训练一个epoch后就会出现过拟合。所以得加上,但传统的L1正则和L2正则又是在每个batch中对所有的参数进行计算,这带来了相当大的计算量。本文提出了一种有效的mini-batch aware regularizer,仅计算每个batch中出现了稀疏特征的参数的L2范数。

5.2 数据自适应激活函数

PReLU公式如下
f(s)=\left\{\begin{array}{ll}{s} & {\text { if } s>0} \\ {\alpha s} & {\text { if } s \leq 0}\end{array}=p(s) \cdot s+(1-p(s)) \cdot \alpha s\right.
这里将p(s)定义为控制函数。如图3左边绘制了PReLU的控制函数。

din-fig3.jpg

如图所示,PReLU采用值为0的硬纠正点,这可能当每层的输入跟着不同的分布时是不合适的。基于此,本文设计了新的数据自适应激活函数,命名为Dice,公式如下:
f(s)=p(s) \cdot s+(1-p(s)) \cdot \alpha s, \quad p(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt{\operatorname{Var}[s]+\epsilon}}}}
它的控制函数如图3右边所示。在训练阶段,E[s]和Var[s]是每个mini-batch中输入的均值和方差,在测试阶段,E[s]和Var[s]是整个数据上的滑动平均。

Dice可以视为PReLu的正则化版本。关键理念是根据输入数据的分布自适应的调整校正点。此外,Dice更平滑的控制两个通道之间的切换。当E(s)=0\operatorname{Var}[s]=0,Dice退化为PReLU。

6 实验

6.1 数据集和实验设置

din-table2.jpg

6.2 比较方法

LR,Base Model,Wide&Deep,PNN,DeepFM

6.3 指标

用《Optimized Cost per Click in Taobao Display Advertising》和《Ups and Downs: Modeling the Vi- sual Evolution of Fashion Trends with One-Class Collaborative Filtering》中提到的用户加权的AUC来衡量效果,因为它和线上效果最相关,公式如下:
\mathrm{AUC}=\frac{\sum_{i=1}^{n} \# \text { impression }_{i} \times \mathrm{AUC}_{i}}{\sum_{i=1}^{n} \# \text { impression }_{i}}
n表示用户个数,\#impression_{i}\mathrm{AUC}_{i}分别表示对应第i个用户的曝光次数和AUC。

用这个公式来衡量模型的提升程度:
\text {RelaImpr}=\left(\frac{\text { AUC(measured model) }-0.5}{\text { AUC(base model) }-0.5}-1\right) \times 100 \%

6.4 Amazon和MovieLens数据集上的模型比较结果

din-table3.jpg

6.5 正则化效果

商品id类特征必须用,同时得配上正则化,不同正则化方法效果也稍微有些不同。

din-fig4.jpg
din-table4.jpg

6.6 Alibaba数据集上的模型比较结果

din-table5.jpg

6.7 在线A/B测试结果

为了处理这么大规模的在线服务,这一小节也介绍了一些工程上的优化技巧。

6.8 可视化DIN

din-fig5.jpg
din-fig6.jpg

七 小结

看了实验部分之后,对线上可以达到什么样的效果有了更好的理解。之前不知道AUC多好算好,这篇文章提供了一个参考,其实能有千分位的提升也是不容易的。另外,AUC没有想象中那么高,阿里巴巴数据集上也就是0.6的水平,不过这个AUC不是原始AUC,而是用户加权AUC。

素质四连

要解决什么问题

多样的用户兴趣与候选广告的相关性

用了什么方法解决

提出DIN网络,核心是用户行为序列与候选item做Attention

效果如何

用户加权AUC和线上效果均有提升,但绝对数值上没有那么大

还存在什么问题

因为每个候选item都要与行为序列上的所有item做Attention,当候选item量级很大时计算量上有点不可控,比方说不能用于召回层

算法背后的模式和原理

Attention思路的延续和应用

八 补充

王喆的机器学习笔记:推荐系统中的注意力机制——阿里深度兴趣网络(DIN)https://zhuanlan.zhihu.com/p/51623339

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容