首页 > 技术文章 > 2018 基于深度学习的推荐系统研究综述

gy7777777 2018-08-23 16:43 原文

1 引言

传统的推荐方法:

协同过滤:数据稀疏、冷启动问题。浅层模型无法学习到用户和项目的深层次特征。

基于内容的推荐方法:需要有效的特征提取。浅层模型依赖于人工设计特征,有效性和可扩展性有限。

混合推荐方法:辅助信息往往具有多模态、数据异构、大规模、数据稀疏和分布不均匀等复杂特征,融合多源异构数据的混合推荐方法研究依然面临着严峻的挑战。

 

深度学习:

(1)深度学习可通过学习一种深层次非线性网络结构,表征用户和项目相关的海量数据,具有强大的从样本中学习数据集本质特征的能力,能够获取用户和项目的深层次特征表示。
(2)深度学习通过从多源异构数据中进行自动特征学习,从而将不同数据映射到一个相同的隐空间,能够获得数据的统一表征。

 

2  传统的推荐系统

以上三种的具体介绍

除了传统的推荐方法,也催生了大量新的推荐方法:

例如,基于社交网络的推荐方法、情境感知的推荐方法等;

推荐的对象也更加多样,不仅仅针对单个用户,还可以针对一群用户,产生了组推荐;

随着移动互联网的发展,位置社交网络的推荐系统也受到越来越多的关注.

因此可以发现,推荐系统在推荐内容、推荐方法、推荐对象等各个方面都朝着越来越多元的方向发展.

 

3  深度学习技术

 

3.1 自编码器  AE

其通过对用户或项目相关的信息(包括评分数据和文本、图像等信息)进行重构学习到用户或项目的隐表示,然后基于这种隐表示预测用户对项目的偏好.应用场景主要包括评分预测、文本推荐、图像推荐等。

 

3.2  受限玻尔兹曼机 RBM

下面可视层X(输入层),上面隐含层Y(通过一个公式,把可视层的数据算成隐含数据)

y1=x1*w11+x2*w21+x3*w31+x4*w41+b1(偏置)

回求x  x1'=y1*w11+y2*w12+y3*w13+a1(偏置)

再求y  y1'=x1'*w11+x2'*w21+x3'*w31+x4'*w41+b1

反向传播 再进行正向运算,看x与x'的差值是否为0,是则结束,否则再反向传播,循环,直到x和x'近乎相等为止。

 

通过对用户的评分数据进行重构学习到用户的隐表示,从而实现对未知评分的预测.应用场景主要是用户评分预测。

 

3.3  深度信念网络  DBN

通过概率大小学习的神经网络

 

输出层  OUT1=f(IN1*w11+IN2*w21+IN3*w31+IN4*w41+b1)

隐含层3

隐含层2--可视层3

隐含层1--可视层2

可视层1(输入数据)

然后做反向传播,重新正向算,求E,再反向,直到E很小为止。

 

深度信念网络当前在推荐系统中应用较少。由于DBN在建模一维数据上比较有效,因此被应用于提取音乐的特征表示,从而进行音乐推荐。当前的应用场景仅限于音乐推荐。

 

3.4  卷积神经网络 CNN

卷积运算:得到D1-D6的6个数据

池化:先对D1-D6分组([D1,D2]、[D3,D4]、[D5,D6]),选出小组中最大的值(D2,D4,D6)

放入卷积神经网络中的数据,即输入数据(自变量X,因变量是标签Y)

自变量:手写图中每个数字图都是28*28,共784个点,每个点代表灰度,0是黑色,255是白色。x1,x2...x784就是输入数据。

标签:就是图上的数字到底是几(0-9)

把上面的数据带入到CNN中,就开始正向传播。

正向传播:卷积--池化--BP网络全连接(输入数据->卷积1-->池化1->卷积2-->池化2->...->卷积n->池化n->BP网络->输出数据)

(1)如何卷积

 1. 将表1的数据还原成28*28的矩阵

2. https://blog.csdn.net/u013631121/article/details/80286691

 

卷积神经网络在推荐系统中应用较为广泛,主要被用于从图像、文本、音频等内容中提取项目的隐藏特征,从而获取项目的低维向量表示,并结合用户隐表示为用户产生推荐。当前的应用场景主要包括图像推荐、音乐推荐、文本推荐等。

 

3.5  循环神经网络 RNN

更好的处理序列的信息

循环神经网络在推荐系统中的应用主要是用来建模数据之间的序列影响,从而帮助获取更有效的用户和项目隐表示。主要包括两个方面:首先是被应用于建模推荐系统中用户行为的序列模式,其次是在获取用户和项目隐表示的过程中,循环神经网络被应用于建模用户和项目相关的文本信息中词语之间序列影响。当前的应用场景主要包括评分预测、图像推荐、文本推荐、基于位置社交网络中的兴趣点推荐等。

 

4  基于深度学习的推荐系统

基本框架:

输入层:

用户的显式反馈(评分、喜欢/不喜欢);隐式反馈数据(浏览、点击等行为数据)

用户画像(性别、年龄、喜好等);项目内容(文本、图像等描述或内容)数据

用户生成内容(社会化关系、标注、评论等辅助数据)

输出层:

通过利用学习到的用户和项目隐表示,通过内积、Softmax、相似度计算等方法产生项目的推荐列表。

 

4.1  深度学习在基于内容的推荐系统中的应用

4.1.1  基于多层感知机的方法

4.1.2  基于卷积神经网络的方法

4.1.3  基于循环神经网络的方法

4.1.4  基于深度信念网络的方法

 

4.2  深度学习在协同过滤中的应用

4.2.1  基于受限玻尔兹曼机的协同过滤方法

4.2.2  基于自编码器的协同过滤方法

4.2.3  基于分布式表示技术的协同过滤方法

4.2.4  基于循环神经网络的协同过滤方法

4.2.5  基于生成对抗网络的协同过滤方法

4.2.6  基于其他深度学习模型的协同过滤方法

 

4.3  深度学习在混合推荐系统中的应用

4.3.1  基于自编码器的混合推荐方法

4.3.2  基于其它深度学习模型的混合推荐方法

 

4.4  深度学习在社交网络的推荐系统中的应用

4.4.1  基于深度学习的社交网络社会化关系影响建模

4.4.2  基于深度学习的位置社交网络序列模式建模

 

4.5  深度学习在情境感知的推荐系统中的应用、

 

4.6  应用比较

 

5  基于深度学习的推荐系统研究的趋势展望

推荐阅读