1、DIEN是DIN的进化版本
因此这个模型的应用场景和DIN完全一致,也是电商广告的推荐场景
2、DIN与DIEN的整体思路
2.1在MLP的基础上,引入先验知识,加速模型训练,提高模型准确性

在最一开始的时候,我们引入神经网络去引入我们的问题时,我们最一开始的设计,就是写好很多的一个特征,然后将这些特征输入到我们整个神经网络当中(最左边红色字体部分),当然我们一开始也可以不看这些特征,我们可以将用户的特征,待推荐的广告,上下文的特征,将这三个输入到神经网络当中去进行训练,这是最简单的方式,当然了,这种表达能力有限,出来的效果就不是很好,所以我们可以选择引入一些先验知识,将这些先验知识当作它的特征去进行训练,当我们引入这些先验知识后,我们的准确率肯定会提高(毕竟表达能力变强了),然后该模型得到的信息就更加丰富,他得到的结果就更加现实。
在这里我们的先验知识就是用户目标对广告的感兴趣程度,然后我们就会告诉模型用户对某广告感兴趣的是多少。既然模型了解的越多,训练出来就会更好,那我们就要想办法把兴趣部分(上图红色部分)构建出来。但其中感兴趣程度是一个抽象概念,因此要想办法对它进行建模,把它量化成跟数学相关的一部分内容,
然后显然需要思考一下这个兴趣是个什么东西,然后对他进行建模
2.2 对“兴趣”建模
兴趣与行为的关系:比如我们再刷b站,我们喜欢俄乌战争,那我们就会点击这方面的内容,该点击就是一个行为,也就是说他将我们的兴趣表达出来了,也就是行为;反过来,我们点击的行为又可以挖掘我们的兴趣,比如我们看一个用户的历史纪录,他点击了很多二次元内容,我们就可以从行为中挖掘出兴趣。

因此Unit的任务,就是从用户的历史行为中,挖掘出用户的“兴趣”,将“兴趣”这个抽象的概念,进行量化表达
因此训练数据中,需要引入用户的历史点击行为
DIN与DIEN的区别,就在于对“兴趣”的建模方式不同
3、DIN对兴趣的建模思路及其缺点
3.1、网络结构

在红框部分,他将用户的历史行为引入进来,他认为我们的每一个行为都代表用户的一个兴趣,也就是说直接将每个历史行为等价于用户的兴趣,然后通过注意力机制,模拟出候选广告与每个历史点击(兴趣)之间的相关性,从而判断用户对候选广告感兴趣的程度
3.2、缺点
① 对“兴趣”的表达,不能完全贴合实际情况:1、直接把【行为】等价成【兴趣】2、很难通过已表现出来的行为,来反映出用户的潜在兴趣 。3、之前的方法,忽视了去挖掘潜藏在用户行为背后的兴趣

例如在某一时刻点击了鞋子,DIN就会认为在该时刻下你对鞋子该兴趣,但忽略了其背后的行为,你可能当前也对衣服、裤子感兴趣
② DIN忽略了序列信息,容易基于用户所有购买历史行为综合推荐,而不是针对“下一次购买”推荐
3.3、“兴趣”的实际情况
1、人的兴趣的多种多样的,同一个时刻下,拥有多种不同的兴趣应该用“兴趣状态”来描述
在一个时刻下,DIN从用户行为中只能捕捉到用户的一个兴趣比如t时刻,用户点击了“鞋子”,DIN认为该时刻下,用户的兴趣只有鞋子
2、每个兴趣都是在动态变化的,都有属于它们各自的演化过程
比如用户一开始喜欢鞋子,但他买了之后,就对鞋子不感兴趣了,因此DIN是无法捕捉到动态变化的
3、兴趣的发展,是有一定前因后果(前后关联)的
4、兴趣漂移
每个时刻下,用户的每个兴趣都有可能转化成行为,可能一段时间内一直在看鞋子,突然就转去看马桶刷,当前时刻的每个兴趣,都有一定的概率由上个时刻的兴趣转移过来,这叫兴趣之间的转移概率
举例

 因此DIN忽略了序列信息,容易基于用户所有购买历史行为综合推荐,而不是针对“下一次购买”推荐
4、DIEN对兴趣的建模思路
电商场景下用户的兴趣特点:
1、用户的兴趣多种多样,十分丰富,同一时刻/状态下,存在多种兴趣
2、兴趣漂移比较频繁
循环神经网络满足上述“兴趣”的特点
1、使用循环神经网络,从用户的序列行为信息中,提取出用户的【兴趣状态】
2、每个时刻下的【兴趣状态】用一个向量来表征,这个向量相当于一个黑盒,当中包含了丰富的语义信息,
【兴趣状态】比如用户当前有哪些兴趣、对各个兴趣的强烈程度、哪个兴趣的转移概率高
3、利用循环神经网络的串联结构,以及记忆特性,找到用户兴趣演化的规律
步骤
1、从用户的历史行为中提取出用户各个时刻下的兴趣状态
2、利用注意力机制,找到与候选广告相关的那部分兴趣的演化过程,判断用户下一时刻对该兴趣“感兴趣”的程度
以上这些整体体现出来它针对“下一次购买”作推荐
5、DIEN网络结构

他和DIN的框架整体是一致的,首先特征里面Target Ad(目标广告)。也就是候选广告,左侧是一系列的用户的历史行为(b(1)b(2).....b(T)),然后他们的右侧是上下文信息,用户的特征,因此该模型最核心的部分就是用红线圈起来的部分,它分为三层(可根据颜色进行区分)。
最下面的为行为序列层,本质上是embedding层,该层就是要对所有的特征进行embedding,
然后进入兴趣抽取层,他做的事情就是行为序列中抽取出兴趣状态
第三层(最上面的)叫兴趣进化层,也就是说从兴趣状态中学习到兴趣演化的过程,但他并不是学习所有,它是学习跟Target Ad 相关联的那一部分兴趣的演化的过程,因此这里需要加入一个注意力机制去进行筛选,把那些跟Target Ad 相关的筛选出来,然后去学习他们演化的过程。
然后模拟出下一个时刻(h(T))对Target Ad 感兴趣的程度,然后将剩下的特征一起送入一个多层感知机里面去,这个部分和DIN基本一样了。
接下来讲兴趣抽取层和兴趣进化层
6、兴趣抽取层
作用:挖掘并提取出每个时刻下,用户行为背后潜藏的【兴趣状态】

显然该层使用了GRU循环神经网络
6.1、采用的序列模型为GRU

特点:具有记忆特性,可以缓解梯度消失,参数比LSTM更少,
6.2、结构:多输入,多输出
毕竟我们要为第三层兴趣的演化过程做准备,所以我们要提取出每一个时刻下,它所对应的兴趣状态
6.3、auxiliary loss(辅助损失)对应下图左侧红框

6.3.1 含义
则以部分就是去计算一个二分类,计算二分类的损失,这里,作者设计了一个二分类模型来计算兴趣抽取的准确性,我们将用户下一时刻真实的行为e(t+1)作为正例,负采样得到的行为作为负例e(t+1)',分别与抽取出的兴趣h(t)结合输入到设计的辅助网络中,得到预测结果,并通过logloss计算一个辅助的损失
注意:e(t+1)和h(t)做的是内积
6.3.2 原因
如果只用最终的(output)计算损失来监督学习,兴趣抽取层状态提取就不会很准确
目标:提取每个时刻下的兴趣状态
有监督学习∶老师很重要,能不能最大程度学习到,是看老师怎么教
如果只用最后的label去监督,则隐藏层所有的状态都是为最后一个状态服务的,提取出来的隐藏层状态显然是失真的
6.4 举例
真实情况:最后点击了机器学习

学习情况

由于最后点击了机器学习,你每一次状态都和机器学习强相关,就会学习成上图情况,结果就失真了
所以说不能只用最后的label做监督老师
7、兴趣进化层

7.1、兴趣演化的特点

存在兴趣漂移
每个兴趣都有属于它们自己的演化进程
7.2、作用
我们需要模拟出Target Ad 相关联的那一部分兴趣的演化的过程,为过滤噪声,这里需要加入一个注意力机制去进行筛选,把那些跟Target Ad 相关的兴趣筛选出来,然后去学习他们演化的过程。
因此他的作用就是模拟与目标广告相关的兴趣进化路径
7.3、注意力机制的分数计算

计算方式与DIN一样
注意力得分at(attention 第t个时刻),表示的是当前时间步的兴趣序列特征ht与当前候选广告的关联程度,这个值越大,说明当前的ht与候选广告更加相关,值的我们关注
7.4、DIN中与注意力得分结合的方式
简单加权组合

在得到注意力得分之后(weight),我们会和concat相乘(红底黑色叉表示相乘),相乘之后在送入sum pooling层
7.5、DIEN创新点
把这个注意力操作嵌入到了GRU更新门里面去,形成了一个AUGRU的结构,用这个层来更有针对性的模拟与目标广告相关的兴趣进化路径
8、DIN与DIEN的区别
DIN(Deep Interest Network)和DIEN(Deep Interest Evolution Network)模型都是用于推荐系统的深度学习模型,它们的区别主要在于模型的结构和功能。
1. 结构:
DIN模型主要由候选物品的embedding层、用户兴趣表示层和兴趣进化层组成。它通过用户的历史行为和候选物品的特征,来学习用户的兴趣表示,并进行推荐。
DIEN模型在DIN的基础上增加了兴趣进化网络,用于建模用户兴趣的演化过程。它不仅考虑了用户当前的兴趣,还考虑了兴趣的演化和变化,从而更好地捕捉用户的兴趣动态。
2. 功能:
DIN模型主要用于静态的推荐,即根据用户当前的兴趣进行推荐,但没有考虑用户兴趣的演化和变化。
DIEN模型则考虑了用户兴趣的演化和变化,能够更好地捕捉用户的兴趣动态,从而提高推荐的准确性和个性化程度。
总的来说,DIEN模型相比DIN模型在考虑用户兴趣的演化和变化方面更加全面,能够更好地捕捉用户的兴趣动态,从而提高推荐的准确性和个性化程度。