推荐系统论文阅读(二)-阿里经典论文:深度兴趣网络(DIN)


论文原文


链接:https://arxiv.org/abs/1706.06978

题目:《Deep Interest Network for Click-Through Rate Prediction》


一,背景

点击率预测是工业领域的一项基本任务应用程序,例如在线广告,推荐系统。最近(当时是18年)深度学习已经提出了基于模型的模型,该模型遵循类似的Embedding&MLP范例。在这些方法中,大规模稀疏输入首先将特征映射到低维嵌入向量中,然后以分组方式转换为定长向量。最后,将它们concat在一起以馈入多层感知器(MLP),以学习特征之间的非线性关系。这样,无论候选广告是什么,用户特征都被压缩为固定长度的表示向量。(其实就是embedding -> mlp -> sigmoid -> ctr)

使用定长向量将成为瓶颈,在进行embedding和MLP方法来捕获用户的不同兴趣有效地利用丰富的历史行为时,这种固定的模型不够灵活,只是简单的把所有的embedding向量输入到dnn中,最后输出一个ctr预估值,这种简单固定的方法会损害推荐系统中用户的兴趣多样性。

先介绍两个关键字定义:

Diversity:用户在浏览的过程中显示出的兴趣是十分多样的,表现在用户的点击物品的多样性。

Local activation: 由于用户兴趣的多样性,只有部分历史数据会影响到当次推荐的物品是否被点击,而不是所有的历史记录。

直观的理解是这样,在预测候选广告时,不必将某个用户的所有多样化兴趣压缩到相同的向量中,因为只有部分用户兴趣会影响他/她的行为(单击或不单击)。例如,一位女游泳运动员会点击推荐的护目镜,主要是因为购买了泳衣,而不是上周购物清单中的鞋子。(其实用现在的眼光去看,已经可以联想到去用attention了),候选广告也会作为输入向量,并影响着与候选广告相关性比较高的行为。

一个例子: 例如,一个年轻的母亲最近浏览了许多商品,包括毛尼大衣,T恤,耳环,小米手机,ipad,泡面,沐浴露,手提袋,皮革手袋和童装,当候选广告是iphone时,跟小米手机,ipad的相关性就很大,而跟其他物品的相关性就比较小了。 显然,在页面上显示的广告仅匹配或激活了该母亲的部分兴趣。

二,特征与模型的构建

Din里面共有四类特征,用户特征、用户行为特征、广告特征、上下文特征

table 1

特征不仅用单值特征还有多值特征,用户行为特征是multi-hot的,即多值离散特征。对于one-hot类型单特征,我们只需要进行简单的embedding就行,而对于离散的多值特征,我们要进一步处理,一般是进行pooling操作,后面的embedding层在介绍。

2.1 Embedding层

对于one-hot特征,就是经过一个embedding层得到一个D维向量;

对于multi-hot,也是经过一个embedding层,但是出来的维度是 i_{k}  ✖️D,i_{k} 是第i个feature的multi-hot中1的个数(不是固定的)。

可以想到对这些vector直接concat,但是这是不切实际的,因为在离散多值特征中1的个数根本就无法确定,concat出来的vector长度也就不固定,而全连接层只能处理固定长度的vector,所以这种直接concat的操作是不可行的。对于这个问题,文中对multi-hot类型的特征做pooling操作。

对于这i_{k} 个D维的向量做一次pooling操作,进行poolong操作后e_{i} 的维度也就固定下来了,pooling的具体操作是din论文中的核心部分,下面会先介绍一下在Base Model中是怎么操作的,然后引入din模型的操作。

2.2 Base Model

Fig 1

看到这里我就有一点困惑了当时,这个User Behaviors就是用户的点击过的商品嘛其实,在table 1中也可以看到用户的行为序列中的物品id数达到了10^9,跟Sequential Recomendation中用户的点击序列大同小异,在seqRec中,用户的点击序列是用RNN来处理,以现在的眼光去看rnn-based model时,自然会想到用attention去对序列中不同的物品进行加权操作。但是在当时,阿里提出这篇论文的时候是用到了attention这种思想,attention这种机制还没正式的有一个定义(据说)。好了,回到我们的base model中,在base model中,最user behaviors中的所有embedding vector仅做sum pooling操作,有一个有点是sum pooling出来后向量获得了固定的长度。

上面提到了RNN/LSTM,为什么不用LSTM对用户历史行为建模,文中尝试使用过,但是没有效果。 与NLP任务中受语法约束的文本不同,用户历史行为的序列可能包含多个并发兴趣。 这些兴趣的快速跳跃和突然结束导致用户行为的顺序数据似乎很嘈杂。

2.3 Deep Interest Network


Fig 2

先不介绍这个网络的细节,从直觉来看,整个网络只有一部分跟Base Model不一样,就是我们在2.1中提到的din的核心-weight sum pooling,也就是attention操作。


attention 操作

V_{a} 是候选广告的embedding vector,e_{j} 是embedding vector list中的一个向量,两个都是D维向量。可以把e_{j} 看成Q,K,V中的Q和V,V_{a} 看成K,a(.) 求weight的操作,就是一个规模比较小的全连接神经网络。

上面这个公式的意义跟上文中提到的那个例子的直观理解是一样的,如果不能理解,下面拿出原文的例子进行解释。


Fig 3 Example

这里最后一句话让我很费解,传统注意力机制的方法会因为在a(.)结果出来后进行归一化(softmax)而损失resolution(解析度),思考了下,猜测应该是为了让权值很大部分不会因为归一化后影响力削弱了,而是让这个值直接作用在对应的e_{i} 上。

2.4 损失函数和模型的细节

2.4.1 损失函数

损失函数用二分类交叉商损失函数


2.4.2 激活函数

激活函数有两个,这个应该是尝试后才知道那个激活函数适合这个模型:


Fig 4


PReLU

PReLU采用值为0的分割点,当每一层的输入遵循不同分布时,这可能不适合,也就是分割点不一定为0,是由数据本身的分布决定的。 考虑到这一点,文中设计了一种名为Dice的新型数据自适应激活函数。


Fig 4 Dice激活函数

E(s)和Var(s)是一个mini-batch样本的均值和方差,Dice的关键思想是根据输入数据的分布自适应地调整分割点,其值设置为输入的平均值。

2.4.3 正则化

CTR中输入稀疏而且维度高,通常的做法是加入L1、L2、Dropout等防止过拟合。但是论文中尝试后效果都不是很好。用户数据符合长尾定律,很多的feature id只出现几次,而一小部分feature id出现很多次。这在训练过程中增加了很多噪声,并且加重了过拟合。

对于这个问题一个简单的处理办法是直接去掉出现次数比较少的feature id。但是这样就人为的丢掉了一些信息,改变了样本数据的原始分布,导致模型更加容易过拟合,同时阈值的设定作为一个新的超参数,也是需要大量的实验来选择的。

事实上,在推荐系统的任务中,embedding操作是影响ctr预估的最主要原因,而且会加大很多的计算量,因为在模型的训练过程中,embedding参数的量是很大的,像good_id这种一般都是有十几亿以上的量。

因此,阿里提出了自适应正则的做法,即:

1.针对feature id出现的频率,来自适应的调整他们正则化的强度;

2.对于出现频率高的,给与较小的正则化强度;

3.对于出现频率低的,给予较大的正则化强度。


正则化

经过进一步的细化:



是batchsize,a_{mj} 表示一个批次中是否至少有一个实例的特征ID为j。

2.5 实验结果



还有很多细节有待讨论,后面在详细阅读吧。

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

推荐阅读更多精彩内容