基于深度学习的推荐算法(三)

朱琪
2022-06-13

导读

上一期给大家介绍了LFM模型算法,下面小编将继续带大家了解常见的深度学习推荐算法。本期学习内容有点难度哦,老铁们打起精神来哦!

1. 基于DNN的推荐

1.1 基于DNN推荐系统的流程

从百万量级的视频库,根据用户的特征及上下文信息,通过召回模型,筛选出用户可能感兴趣的少量视频,称为候选集(百量级);接着,再通过排序模型,将上一步的候选集,进行排序,最终呈现给用户。基于DNN推荐系统流程如下图所示:

1.2 召回模型

上图为召回模型流程图,召回模型具体步骤如下:

1、输入层是用户观看视频序列的embedding mean pooling、搜索词的embedding mean pooling、地理位置embedding、用户特征;

2、输入层给到三层激活函数位ReLU的全连接层,然后得到用户向量;

3、最后,经过softmax层,得到每个视频的观看概率。

1.3 排序模型

排序阶段最重要任务是精确地预估用户对视频的喜好程度,面对的是百级别的数据集,因此可以更精细地刻画用户与视频的关系。排序模型如下图所示:

2. 基于DeepFM的推荐

①DeepFM模型:被广泛应用在点击率预测中的深度学习模型,主要关注如何学习用户行为(user behavior)的组合特征(feature interactions),从而最大化推荐系统CTR。DeepFM是一个集成了FM(factorization machine)和DNN的神经网络框架,分别承担wide和deep的部分。DeepFM的wide和deep部分共享相同的输入,可以提高训练效率,不需要额外的特征工程,用FM建模低阶的特征组合,用DNN建模高阶的特征组合,因此可以同时从原始特征中学习到高阶和低阶的特征交互。DeepFM模型结构如下图所示,左边为FM层,右边为DNN层。

②FM模型:包括一阶项和二阶项,一阶项主要是将特征分别乘上对应的系数,二阶项主要是对和两两组合,并且找到其分别对应的特征向量。FM结构模型如下图所示:

③DNN模型:深度部分是一个前馈神经网络,CTR预估的原始特征输入向量具有高稀疏、超高维度,分类、连续数据混合,特征按照field分组等特征,因此在第一层隐含层之前,引入一个嵌入层来完成将输入向量压缩到低维稠密向量。DNN结构模型如下图所示:

3. 基于CNN的推荐

基于CNN的推荐利用卷积神经网络进行推荐,能够缩短训练时间,具体推荐流程如下图所示:

  • 定义用户嵌入矩阵

用户的特征矩阵主要是通过用户信息嵌入网络来生成的,在预处理数据的时候,我们将UserID、MovieID、性别、年龄、职业特征全部转成了数字类型,然后把这个数字当作嵌入矩阵的索引,在网络的第一层就使用嵌入层,这样数据输入的维度保持在(N,32)和(N,16)。然后进行全连接层,转成(N,128)的大小,再进行全连接层,转成(N,200)的大小,这样最后输出的用户特征维度相对比较高,也保证了能把每个用户所带有的特征充分携带并通过特征表达。

  • 生成用户特征

生成用户特征是在用户嵌入矩阵网络输出结果的基础上,通过2层全连接层实现的。第一个全连接层把特征矩阵转成(N,128)的大小,再进行第二次全连接层,转成(N,200)的大小,这样最后输出的用户特征维度相对比较高,也保证了能把每个用户所带有的特征充分携带并通过特征表达。

  • 定义电影ID嵌入矩阵

通过电影ID和电影类型分别生成电影ID和电影类型特征,电影类型的多个嵌入向量做加和输出。电影ID的实现过程和上面一样,但是对于电影类型的处理相较于上面,稍微复杂一点。因为电影类型有重叠性,一个电影可以属于多个类别,当把电影类型从嵌入矩阵索引出来之后是一个(N,32)形状的矩阵,因为有多个类别,这里采用的处理方式是矩阵求和,把类别加上去,变成(1,32)形状,这样使得电影的类别信息不会丢失。

  • 文本卷积神经网络设计

文本卷积神经网络和单纯的CNN网络结构有点不同,因为自然语言通常是一段文字与图片像素组成的矩阵是不一样的。在电影文本特征矩阵中,矩阵的每一个行构成的行向量代表一个Token,包括词或者字符。如果一段文字有n个词,每个词有m维的词向量,那么我们可以构造出一个n*m的矩阵。而且NLP处理过程中,会有多个不同大小的过滤器串行执行,且过滤器宽度和矩阵宽度保持一致,是整行滑动。在执行完卷积操作之后采用了ReLU激活函数,然后采用最大池化操作,最后通过全连接并Dropout操作和Softmax输出。这里电影名称的处理比较特殊,并没有采用循环神经网络,而采用的是文本在CNN网络上的应用。

对于电影数据集,我们对电影名称做CNN处理,其大致流程,从嵌入矩阵中得到电影名对应的各个单词的嵌入向量,由于电影名称比较特殊一点,名称长度有一定限制,这里过滤器大小使用时,就选择2、3、4、5长度。然后对文本嵌入层使用滑动2、3、4、5个单词尺寸的卷积核做卷积和最大池化,然后 Dropout 操作,全连接层输出。

  • 电影各层做全连接层

将上面几步生成的特征向量,通过2个全连接层连接在一起,第一个全连接层是电影ID特征和电影类型特征先全连接,之后再和CNN生成的电影名称特征全连接,生成最后的特征集。

4. 基于RNN的推荐

循环神经网络已成功应用于基于会话的推荐,并且是基于序列预测的协同过滤越来越感兴趣的一部分。这种新的推荐方式揭示了以前被忽视的一个方面:短期和长期建议之间的差异。

递归神经网络(RNN)通常用于语言建模,在那里训练它们来学习单词序列。我们采用类似的方法,将每个item视为一个单词,将item目录作为完整词汇表,并将每个用户的历史记录作为样本序列。RNN逐项运行用户消耗的item序列,在每个时间步,输入是当前item的单热编码,最终输出是完全连接带有神经元的图层,用于目录中的每个item。神经元被激活最多的k个item被用作Topk推荐。基于RRN推荐示意图如下图所示:

4. 基于GAN的推荐

GAN包含有两个模型,一个是生成模型(generative model),一个是判别模型(discriminative model)。生成模型的任务是生成看起来自然真实的、和原始数据相似的实例。判别模型的任务是判断给定的实例看起来是自然真实的还是人为伪造的(真实实例来源于数据集,伪造实例来源于生成模型)。

生成器(generator)试图欺骗判别器(discriminator),判别器则努力不被生成器欺骗。模型经过交替优化训练,两种模型都能得到提升,但最终我们要得到的是效果提升到很高很好的生成模型(造假团伙),这个生成模型(造假团伙)所生成的产品能达到真假难分的地步。GAN网络整体结构如下图所示:

在学习了这么多推荐算法之后,大家对推荐系统理论知识有了一定的了解,下期小编将继续讲解推荐系统架构,咱们下期再见!

-The End-

文案:朱琪

指导老师:曹菁菁 赵强伟

排版:邓诗怡

最新热门文章
关注AI魔术师
学习最新AI智能算法

联系我们

AI魔术师
bettycao@whut.edu.cn
湖北省武汉市