2018-SIGKDD-(DIN) Deep interest network for click-through rate prediction

作者以及单位

Guorui Zhou et al.阿里巴巴
论文下载地址:Deep Interest Network for Click-Through Rate Prediction (arxiv.org)
核心故事:局部激活Local Activation

解决问题

如何更好的在推荐系统候选结果中做排序(排序的文章很少),简称DIN,文章主要目的是为了预测点击率,是CTR的问题。
这个文章提出了一个观点:因为之前的RecSys大会一般有意的接收50%的传统方法,50%的深度学习方法。在本文中谈到深度学习调参训练复杂,相比传统算法虽然简单,但是现在类似SGD传统方法,要达到深度学习的准度,必须把L2调的很准。但是调整L2的这个mini-batch(批量梯度下降)是一件非常耗时的事情
也就是说,深度学习没有以前那么难调了,传统方法也没有以前那么简单了。

研究动机

要讲motivation,必须先说一下之前的工作的问题是什么,才能解释这个文章重点是改变了什么。
1.传统方法,大家熟知的“特征工程”绝对直接影响推荐结果。凡是有做过大数据比赛的经验的,都知道为了找implicit和explicit的特征,基本上是很花精力的。
2.流行的方法,比如:Wide&Deep, DeepFM等,将DNN应用于CTR预估的套路是现在排序的主流,一般分为两步:
2.1 在DNN的输入层上加一层embedding,把高纬度、稀疏的数据转换为低维度的数据。
2.2 增加多个全链接层,学习特征之间的非线性关系!
Sparse Features -> Embedding Vector -> MLPs -> Output
优点:绝对比人工找特征快!准!狠!
缺点:用户数据中有很多包含用户多样性的信息,转换为低维只有一小部分才会影响推荐结果。原文如下:These models often transform corresponding list of embedding vectors into a fixed-length vector via sum/average pooling, which causes loss of information.

动机:借鉴了attention中注意力的机制,设计了attention-like network structure,能够激活局部(Local Activate)的相关历史兴趣数据,当相关性越高的历史行为,会获得更高的attention score,从而做到(Diversity + Local Activation)建模,和之前工作比,增强了模型更丰富的表达效果。

研究方法

之前说到了动机,因为CTR问题中普通存在“高维度”和“稀疏性”的特点。说一下研究方法中DIN和以前工作的异同。

简单版的叙述:

之前的深度学习:为了得到一个固定长度的Embedding Vector表示,原来的做法是在Embedding Layer后面增加一个Pooling Layer。Pooling可以用sum或average。最终得到一个固定长度的Embedding Vector,是用户兴趣的一个抽象表示,常被称作User Representation。缺点是会损失一些信息。
DIN使用Attention机制来解决这个问题。主要区别是“局部激活Local Activate”,自适应地调整User Representation。就是说:在Embedding Layer -> Pooling Layer得到用户兴趣表示的时候,依据给定Ad,通过计算用户历史行为与该给定Ad的相关性,赋予不同的历史行为不同的权重,实现局部激活。从最终反向训练的角度来看,就是根据当前的候选广告,来反向的激活用户历史的兴趣爱好,赋予不同历史行为不同的权重。

复杂版的叙述:

base

MLP只能接受固定长度的输入,但是每个用户在一段时间内的商品点击序列长度可能会不同,属于变长特征,那么该如何处理这样的变长特征?base模型采用pooling的方式,一般有两种方法,求和或者平均,求和就是对多个商品的embedding,在每个对应的维度上做求和。平均就是对多个embedding,在每个对应的维度上求平均。

不管用户点击过多少个商品,经过pooling之后,得到的最终表示向量embedding和每个商品的embedding维度都是相同的。
不管用户点击过多少个商品,经过pooling之后,得到的最终表示向量embedding和每个商品的embedding维度都是相同的。
不管用户点击过多少个商品,经过pooling之后,得到的最终表示向量embedding和每个商品的embedding维度都是相同的。

BASE模型中每个商品有3个特征域,包括商品自身,商品类别,商品所属的商铺。对于每个商品来说,3个特征embedding拼接之后才是商品的表示向量。对商品序列做pooling,base中采用的是求和的方式,pooling之后得到用户行为序列的表示向量。然后再和其他的特征embedding做拼接,作为MLP的输入。

MLP输入端的整个embedding向量,除了candidate的embedding部分,其余的embedding部分可以视为用户的表示向量。base模型对于任何要预测的candidate,不管这个candidate是衣服,电子产品等,用户的表示向量都是确定的、不变的,对于任何candidate都无差别对待,但问题就是:用户的兴趣具有多样性。

DIN

Attention的思想是:与candidate相关的商品权重大一些,与candidate不相关的商品权重小一些(在pooling的时候)这是attention的contribution,不是本文的contribution

本文的contribution:将candidate与点击序列中的每个商品发生交互来计算attention分数。具体计算方法如DIN中右上角的Activation Unit所示,输入包括商品和candidate的embedding向量,以及两者的外积。对于不同的candidate,得到的用户表示向量也不同,具有更大的灵活性。利用Activation Unit实现Attention机制,对Local Activation建模(与传统的attention机制差别是舍弃!舍弃!舍弃!了顶层的softmax,实现依据ad对用户行为特征进行权重判定

例如,用户的点击序列中90%是衣服,10%是电子产品,有一件T恤和一部手机需要预测CTR,那么T恤会激活大部分的用户行为,使得根据T恤计算出来的用户行为向量在数值上更大,相对手机而言。

DIN的论文中还提出了两个小的改进点。一个是对L2正则化的改进,在进行SGD优化的时候,每个mini-batch都只会输入部分训练数据,反向传播只针对部分非零特征参数进行训练,添加上L2之后,需要对整个网络的参数包括所有特征的embedding向量进行训练,这个计算量非常大且不可接受。论文中提出,在每个mini-batch中只对该batch的特征embedding参数进行L2正则化。第二个是提出了一个激活函数Dice。对于Relu或者PRelu来说,rectified point(梯度发生变化的点)都在0值,Dice对每个特征以mini-batch为单位计算均值和方差,然后将rectified point调整到均值位置。

DIN, MBA 以及Dice均能进一步提升模型表现,三者结合时,模型表现达到最好(原文Taken together, DIN with MBA regularization and Dice achieves total 11.65% RelaImpr and 0.0113 absolute AUC gain over Base-Model)。
但说实话,看了这个结果我感觉有点失望,一顿操作猛如虎,结果比LR只高了不到1个点(movielens上)。但是在文章说用的alibaba自己的数据上提升了10个点。


对比

但是这个文章应用的意义或许很大,如利用DIN,可以看到同的历史兴趣爱好对于当前候选广告的权重不同,做到了local activation:


局部激活

创新点

1.DIN可以更好地捕捉了用户兴趣的多样性特征(去了sofemax)。
2.通过小批量的正则化器,节省了深度网络上大量的正则化计算具有大量参数,有助于避免过度拟合。
3.通过自适应激活函数Dice,通过考虑输入的分布来的PReLU使模型性能良好。


Dice

PReLU其实是ReLU的改良版,PReLU能提高准确率但是也稍微增加了过拟合的风险。Dice可以看做是PReLU的一种推广,主要思想是依据输入数据分布进行自适应调整修正点,该修正点不再默认为0,而是设定为数据均值;其次,Dice的一个好处是平滑过渡两个状态。

结论

本文解决的是一个什么问题?
如何对用户多种多样的兴趣建模。已有方法是:使用Pooling对Embedding Vector求和或者求平均。同时这也解决了不同用户输入长度不同的问题,得到了一个固定长度的向量。这个向量就是用户表示,是用户兴趣的代表。
但是,直接求sum或average损失了很多信息。
所以针对不同的behavior id赋予不同的权重,这个权重是由当前behavior id和候选广告共同决定的(Attention机制),实现了Local Activation。DIN使用activation unit来捕获local activation的特征,使用weighted sum pooling来捕获diversity结构。

参考:

从DIN到DIEN看阿里CTR算法的进化脉络 - 知乎 (zhihu.com)
CTR预估 论文精读(八)--Deep Interest Network for Click-Through Rate Prediction_Dby_freedom的博客-CSDN博客

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

推荐阅读更多精彩内容