【论文泛读】DIN - Deep Interest Network for Click-Through Rate Prediction

DIN - Deep Interest Network for Click-Through Rate Prediction 2018 SIGKDD

  本文是阿里2017年提出的早期的一个经典推荐模型,其中讨论了一种兼顾Accuracy和Diversity的复杂推荐模型。本文的主要创新点是一种激活单元设计,这种激活单元可以被视作一个小的子网络,首先计算了user_input_embedding和item_input_embedding的外积,然后将外积与两种输入embedding进行concatenation,再输入到Dense+Linear的方法来得到激活权重。具体内容和paper动机如下:

用户多兴趣推荐问题引入

  假如你对推荐系统有所了解,应该就会知道现行多数模型或者说算法,关注的都是如何去挖掘用户一方面的兴趣,来达到对用户精准的实施推荐的目的。通过文献的阅读我们发现,神经网络模型目前也已经被广泛地应用于各种推荐系统中。但他们都是怎么做的呢?是的,这些基于神经网络的推荐算法通常只会从用户的行为序列中学习到一个用户表征向量(Embedding),但是这个统一的Embedding往往无法反映用户在一段时期内的多种不同的兴趣。举个例子,我们现在假设有一个女性用户A,她的商品点击序列反映了她近期三种不同的兴趣,包括珠宝、手提包和化妆品。这种情形下如果你只去考虑对他的某一种需求(比如说珠宝)进行推荐,显然不能使得我们平台的收益最大化,换句话说得不到最好的推荐反馈结果。显然,我们在追求精准推荐商品的同时也需要考虑推荐商品的多样性

  这其实很好理解,用户在同一时间的需求并不是唯一的,而这种多样性的需求也会反映在她浏览商品的序列,或者说点击交互序列中。我们现在就需要更多的去挖掘这些多样性的兴趣,如何去做呢?

系列文章提供的解决方案一览

  我在这里提出一系列的比较成熟的解决方案:DINDIENDHANMINDComiRec。这些方案大多数来自阿里团队,从多个方面去挖掘和发现用户的多兴趣,并将成果作用于推荐系统更好的预测过程中去。其中涉及多篇发布在SIGKDD,SIGIR,CIKM的顶会论文支撑。这些papers对诸位希望研究多兴趣领域的推荐系统学着会很有帮助,建议阅读本文的同时也去精读文献本身。今天第一篇文章,先来看一看什么是DIN,关于DIN的论文是在SIGKDD 2018顶会上发表《Deep Interest Network for Click-Through Rate Prediction,但事实上这项工作在2017年7月份就被提出来了。

  为了方便大家参考原始文献,在这里给出传送门:https://arxiv.org/abs/1706.06978

关于DIN提出的意义

  DIN的诞生也是在一定算法背景之下的。2017年时深度学习在CTR预估领域已经有了广泛的应用,常见的算法比如Wide&Deep,DeepFM等。这些方法一般的思路是:通过Embedding层,将高维离散特征转换为固定长度的连续特征,然后通过多个全联接层(MLP),最后通过一个sigmoid函数转化为0-1值,去预测目标商品的点击概率。即Sparse Features -> Embedding Vector -> MLPs -> Sigmoid -> Output Embedding。这种传统方法的优点在于:通过神经网络可以拟合高阶的非线性关系,同时减少了人工特征的工作量。但很显然,问题也是十分明显的。我们从原理出发去分析,Embedding本身的原理只是将大规模稀疏的高维特征转化为固定长度的低维稠密向量,先前的DeepFM以及Wide&Deep模型就是进行Embedding之后接入MLP之后去学习特征之间的非线性关系。这个过程无论候选商品是什么,用户特征都被压缩成一个固定长度的表征向量。固定长度向量的使用将成为多兴趣发现的一个瓶颈,这给Embedding&MLPs方法从丰富的历史行为中有效地捕捉用户的不同兴趣带来了困难。(可以举个例子来理解单一表征向量的缺陷,如果将某个用户的所有不同兴趣压缩到同一个向量中,则事实上只有部分用户的兴趣会影响他/她的动作(点击或不点击)。例如,一名女游泳运动员会点击推荐的护目镜,主要是因为她买了泳衣,而不是她上周购物清单上的鞋子)如下图,本文给出一种标准的base model,本文将展示DIN基于此base model的改进和提升。

Pic_1:Base Model结构示意图

  可以看到Base Model就是将所有的用户特征信息以及目标商品信息,进行了一层统一的Embedding,并没有去有针对性的计算每一个物品与目标的相似度,只是粗暴地去将特征进行拼接,尽管也考虑到了用户画像信息和上下文信息。但是,对于用户在一段时间内的多个新区的提取时没有任何帮助的,并且直接对用户的历史行为特征进行Embedding是对特征严重的浪费,也正因此才有了DIN的出现,以及后续更加复杂得多兴趣提取模型的出现。

  在阿里的工作中,他们是这样描述的:“我们设计了一种深度兴趣网络(DIN),它通过设计一个局部激活单元(Activation Unit)来自适应地学习用户对某一广告的历史行为的兴趣表示,这种表示向量随广告的不同而变化,大大提高了模型的表达能力。”事实上,阿里提出的这种Activation unit 本质上是一个Attention Mechanism。加了Attention之后它可以通过在给定候选广告时考虑历史行为的相关性来自适应的计算用户兴趣的向量表示。与候选广告有更高相关性的行为有更高的激活权重并占据用户兴趣表示的主导。用这种方式,提升了模型在限制维度下的表示能力,同时能使DIN能够更好地捕获多样的兴趣。

DIN具体模型

  事实上如果要去评价DIN的贡献的话可以从两方面来说,首先它是一种新的深度兴趣网络,该网络引入了一个局部激活单元,自适应地从给定广告的历史行为中学习用户兴趣的表示。DIN相比Base Model可以大大提高模型的表达能力,更好地捕捉用户兴趣的多样性特征。(事实上我们可以这样概括,DIN将原本固定长度的Embedding表征向量,变成了动态的Embedding使得Embedding能够参考或者说包括住用户的多方面兴趣,换言之提取了用户的多兴趣表征)下图即为DIN模型的简单结构表示:

Pic_2:DIN Model结构示意图

  事实上你可以看到DIN为了提取用户的多兴趣,使用了一个Activation Unit,事实上它的作用与Attention非常相似。Unit的细节在图的右上角也给出来了,每个用户的历史行为都跟Candidate Ad(目标商品)在Activation Unit进行交互,交互的过程是首先二者做一次外积的计算,然后将计算结果与二者原始Embedding部分进行拼接,通过全连接部分控制输出的维度,最终得到一个权重值出来。这个权重代表着用户曾经的一个行为与目标商品的相关性,还是刚才的例子一位购买者曾经买过游泳衣,买过一双鞋,那眼下有一个泳镜要进行推荐的判断,那我们肯定是更关注你以前买泳衣的行为,那么购买泳衣的行为所映射出的一个embedding的权重就显然会很大,买鞋的行为映射出的一个embedding的权重就小。有了这个权重大小作为参考,我们就可以在所有用户行为特征映射成embedding后做weighted sum pooling(由权重大小决定的sum pooling)了,这样,针对每个不同的目标商品,每个用户行为表征经过weighted sum pooling后就会生成一个汇总的embedding,只不过对每一件不同的商品都会不同,相比于Base model使用相同的用户Embedding有着本质上的区别。这就是称之为动态的embedding的主要原因,同时也是DIN最大的亮点。

  但事实上模型也不仅仅是把用户的历史行为表征进行了提炼,并且将之参与到多兴趣的提取治中,为了参考用户的其他信息来保证推荐性能最大化,你可以发现图中还有User Profile Features(用户画像信息)和User Context Features(用户上下文信息)也都参与到了最终的Embedding合成过程之中去影响推荐结果的表达。其中,用户画像信息主要包括用户的性别、年龄以及其他渠道收集的关于用户的一些基本信息,通常这些信息的加工程度不高比较粗糙。而上下文信息,自然是跟场景信息有关的部分了,往往是时间戳、季节等等可能会影响到推荐结果的比较重要的信息。

  这两类信息,都将与Sum pooling后的多兴趣信息进行拼接并且平整化,然后再输入到一套全连接网络中来生成最终的预测结果。

关于模型的使用(学习)建议

  事实上在研究过论文的具体模型实施后,我发现该模型具有很高的迁移价值,目前在很多领域仍然在使用一些较为简单的模型在进行着预测。DIN的结构主要将Embedding动态化的思路引入到了我们的视野中来,而这个思路却又不局限于只是去完成推荐任务。这使得我们可以将其应用到很多其他不同于推荐的场景中去,任何对某类型事件发生的预测任务,都可以尝试使用Activation Unit来计算相关度的方法,将原来一概而论的Embedding动态化,从而能够多方面的考虑用户的兴趣,或者说心理。所以从这个方面来看待DIN的话,就是实现了Embedding的改进。当然这项工作,早在2018年就被公开发表在了SIGKDD的会议中,已经不是多么新鲜的技术了,但是我们仍然可以从中得到启发,并利用他的思路去尝试更新并改进我们的模型,或者将它应用到我们尚未触及的领域。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JinyuZ1996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值