《深度学习推荐系统》第3章各模型要点

AutoRec

image.png

要点:

  • 输出层的节点数与输入层相等,训练这个网络以期望得到近似恒等函数,网络结构类似于word2vec

评价:这个模型2015年由澳大利亚国立大学提出, 是个单隐层的神经网络推荐模型,网络结构简单,非常适合深度学习推荐系统的入门模型,但由于比较简单, 表达能力不足,并且往往共现矩阵非常的稀疏, 更加加大了模型的预测难度, 并没有真正的被应用。这个东西是将深度学习思想应用于推荐系统的初步尝试, 拉开了使用深度学习思想解决推荐问题的序幕。

DeepCrossing

image.png

要点:

  • 类别型特征经过embedding处理,数值型特征直接进入stacking层,进行连接,这部分为经典深度学习架构
  • Multiple Residual Units为多层残差网络


    image.png
class Residual_block(nn.Module):
    def __init__(self, hidden_unit, dim_stack):
        super(Residual_block, self).__init__()
        # 两个线性层   注意维度, 输出的时候和输入的那个维度一致, 这样才能保证后面的相加
        self.linear1 = nn.Linear(dim_stack, hidden_unit)
        self.linear2 = nn.Linear(hidden_unit, dim_stack)
        self.relu = nn.ReLU()
    
    def forward(self, x):
        orig_x = x.clone()
        x = self.relu(self.linear1(x))
        x = self.linear2(x)
        outputs = self.relu(x + orig_x)       # 残差链接
        return outputs

评价:微软于2016年在KDD上提出的模型,它算是第一个企业以正式论文的形式分享深度学习推荐系统的技术细节的模型。由于手工设计特征(特征工程)花费巨大精力,因此文章利用全连接隐层进行特征交叉(但针对性不强)。以现在的角度看待这个模型是非常简单的,也就是Embedding+MLP的结构,但对当时影响是非常巨大。

NeuralCF

image.png

image.png

image.png

要点:

  • GMF为元素积,MF和MLP的embedding向量是单独学习的, 并不是共享的, 作者在论文里面也给出了原因, 就是这样会更加的灵活,可以根据模型的复杂程度确定不同的隐向量的维度

评价:新加坡国立大学2017年提出,动机就是看着MF的内积操作比较简单, 表达能力不强, 作者就用一个“多层的神经网络+输出层”替换了矩阵分解里面的内积操作, 这样做一是让用户向量和物品向量做更充分的交叉, 得到更多有价值的特征组合信息。 二是引入更多的非线性特征, 让模型的表达能力更强。局限是只使用了用户和物品的ID特征,没有加入更多其他特征。

PNN

image.png

要点:

  • z部分为向量拼接,W权重矩阵为N×M,N为Feature长度,M为embedding长度,W[i,j]与相应的z[i,j]对应相乘并加和,有D1个W即可重复D1次,形成D1个输出,即L1层节点数(实际上就是z → D1的全连接嘛)


    111.png

    111.png
  • p部分分为内积(IPNN)和外积模式(OPNN),与z部分类似,所不同的是W权重矩阵为N×N,z[i,j]改为p[i,j],内积模式为N个embedding两两内积(N×N个数),外积模式为N个embedding两两外积(N个N×N矩阵)再叠加到一起(N×N个数,等价于所有embedding求和后,与自身进行外积,图111.jpg)


    image.png

    image.png

    111.jpg
  • 数值型特征不经过Product Layer,而是直接进入L1层的全连接

评价:PNN在2016年由上海交大提出,模型在输入、Embedding层, 多层神经网络及最后的输出层与DeepCrossing没有区别, 唯一的就是Stacking层换成了Product层。 DeepCrossing把所有特征进行了交叉, 没有针对性, 所以PNN这里就弄了个Product层, 专门进行特征之间的交叉的, 并且还提出了两种特征交叉的方式。

Wide & Deep

image.png

要点:

  • deep部分数值型特征直接进入隐层,类别类特征要先进行embedding


    image.png
  • wide部分使用User Installed App和Impression App(曝光的App)的交叉,实际等价于两类特征元素两两相乘(外积)。公式\phi即所谓的“交叉积变换”,当第i个特征属于第k个组合特征时,c_{ki}的值为1,否则为0。假如特征组合这个特征域长度为n,当长度为r和长度为s的特征域两两交叉时,n=r×s;当长度为r、长度为s、长度为t的特征域三三交叉时,n=r×s×t,以此类推。现假设该特征组合域第m维的特征组合为i_j_k,若x_i,x_j,x_k均为1,则,c_{mi},c_{mj},c_{mk}也为1,\phi_m(x)=1(其他c_{mX}均为0,x_X^{c_{mX}}=1,不论x_X取0或1,均不影响\phi_m(x)=1),但若x_i,x_j,x_k其中之一为0,则由于c_{mi},c_{mj},c_{mk}为1,则必有一个值为0,进而\phi_m(x)=0
    image.png

    image.png
  • 带L1正则化项的FTRL作为wide部分的优化方法(产生稀疏性),而使用AdaGrad作为deep部分的优化方法

评价:谷歌于2016年提出,Wide部分的主要作用是让模型具有较强的记忆能力,Deep部分的主要作用是让模型具有泛化能力,开创了组合模型的构造方法,对深度学习推荐模型的后续发展产生重大影响。

DCN(Deep & Cross)

111.png

要点:

  • 类似wide & deep,但wide部分使用多层交叉层(Cross layer)对输入向量进行特征交叉,每个交叉层均保留了输入向量和初始化值x_0,因此输出输入之间的变化不会特别明显。
    111.png

    111.png

评价:2017年由斯坦福大学和谷歌的研究人员提出,由多层交叉层组成的Cross网络在Wide&Deep模型中Wide的基础上进行特征的自动化交叉,避免了更多基于业务理解的人工特征组合。

FNN

111.jpg

要点:

  • 基本等同于DeepCrossing,但embedding部分用事先训练好的FM模型进行初始化,加快收敛速度
  • l1和l2层使用tanh激活函数,输出层使用sigmoid激活函数

评价:2016年由伦敦大学学院提出,引入DNN对特征进行更高阶组合,减少特征工程,能在一定程度上增强FM的学习能力,这种尝试为后续深度推荐模型的发展提供了新的思路。缺点是,两阶段训练模式,在应用过程中不方便,且模型能力受限于FM表征能力的上限。和DeepCrossing一样,没有专门的特征交叉,针对性不强。

DeepFM

111.png

要点:

  • Wide部分与Deep部分共享了输入特征,参数并未增加
  • 数值型特征无需进行embedding

评价:2017年由哈工大和华为诺亚提出,用FM替换了原来的Wide部分,加强了浅层网络部分特征组合的能力(弥补了DeepCrossing和FNN的不足),动机类似于DCN

NFM

image.png

要点:

  • Bi-Interaction Pooling(特征交叉池化层),在该层将embedding的数据进行交叉(两两元素积,再求和,这一步可以参考FM的方法化简;该层不涉及任何学习参数,只是线性的对特征进行交叉),然后送入DNN进一步学习。


    111.jpg

    111.jpg
  • 与PNN模型的结构非常相似;与deepFM的区别是,deepFM的FM部分直接送到输入层,没有进一步学习

评价:2017年新加坡国立大学提出,将FM和DNN结合起来,FM最多只能学习二阶,NFM的思想是在FM学习的二阶特征的基础上加入DNN使其学习更高阶的特征,一方面FM学好二阶特征之后DNN学习更高阶特征会更加容易更好学,另一方面FM学习了低阶特征然后DNN继续学习高阶特征,又是一次低阶特征和高阶特征组合的模型。

AFM

111.jpg

要点:

  • 这个模型之中并没有DNN模块,但是保存了NFM的二阶交叉特征池化层
  • 需要注意的是Attention的加入,并不是单单给某一个二维交叉特征一个权重,这样子的话对于未在训练数据中出现的交叉特征就无法进行权重赋予。所以在上图中也可以看到Attention是一个Net的形式给出。也就是用了一个MLP将注意力分数进行参数化,该注意力网络的结构是一个简单的单全连接层加softmax输出层的结构


    image.png
  • 防止过拟合常用的方法是Dropout或者L2 L1正则化。AFM的做法是:在Pair-wise Interaction Layer的输出使用Dropout;在Attention Network中使用L2正则化

评价:2017年由浙江大学和新加坡国立大学研究员提出的一个模型(和NFM是同一个作者),AFM模型其实就是从前面讲解过的NFM模型的进化升级版, 该模型和NFM模型结构上非常相似, 算是NFM模型的一个延伸,在NFM中, 不同特征域的特征embedding向量经过特征交叉池化层的交叉,将各个交叉特征向量进行“加和”, 然后后面跟了一个DNN网络,但是NFM中的加和池化,它相当于“一视同仁”地对待所有交叉特征, 没有考虑不同特征对结果的影响程度,作者认为这可能会影响最后的预测效果, 因为不是所有的交互特征都能够对最后的预测起作用。 没有用的交互特征可能会产生噪声。或者说加大对预测结果重要的特征,抑制噪声特征。

DIN

image.png

image.png

要点:

  • 与Base相比,加入了attention机制,attention机制在数学形式上只是将过去的平均操作或加和操作换成了加权和或加权平均操作
  • 商铺id只跟用户历史行为中的商铺id序列发生作用,商品id亦然

评价:DIN模型是阿里妈妈团队2018年提出的CTR预估模型,虽然是几年前提出的,但是现在应用仍比较广泛

DIEN

image.png

要点:

  • 与DIN相比,使用GRU引入了历史行为序列信息,GRU解决了RNN梯度消失问题,与LSTM相比参数更少收敛更快
  • 行为序列层作用为embedding;兴趣抽取层作用为模拟用户迁移;兴趣进化层在抽取层的基础上加入attention,模拟与广告相关的兴趣进化,后两者是关键

评价:2019年阿里妈妈提出的DIN演化版本

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

推荐阅读更多精彩内容