当前位置:   article > 正文

基于深度学习的推荐系统(一)

基于深度学习的推荐系统

本文主要介绍推荐系统基本概念以及基本的协同过滤算法原理。

推荐系统

快速有效地从复杂的数据中获取有价值的信息成为大数据大战的关键难题。
推荐系统根据用户需求与兴趣,通过推荐算法从海量数据中挖掘出用户感兴趣的项目(如信息,服务,物品),将结果以个性化列表的形式推荐给用户。(信息检索–百度,位置服务、新闻推送–今日头条)

协同过滤算法

经典的推荐算法。根据用户的历史行为数据挖掘用户的兴趣爱好,基于不同的兴趣爱好对用户进行划分并推荐兴趣相似的商品给用户。
利用用户与项目之间的交互信息为用户进行推荐。
包括基于物品的协同过滤算法、基于用户的协同过滤算法、混合推荐

如矩阵因子分解,利用用户与项目之间的交互关系为用户进行推荐。

传统的协同过滤算法存在如下问题:

  • 数据稀疏。一个用户评分过的项目仅仅占总项目数量的极少部分。
  • 冷启动问题。新的用户和新的项目往往没有评分数据。

基于用户的协同过滤算法

当一个用户A需要个性化推荐的时候, 我们可以先找到和他有相似兴趣的其他用户, 然后把那些用户喜欢的, 而用户A没有听说过的物品推荐给A。

算法步骤 UserCF:

  • 找到与当前用户A相似的用户B。例如可以根据不同用户对多个相同物品的打分情况综合判断,分数越高代表越喜欢。计算A与其他用户的相似程度,找到与A最相似的n个用户。
  • 将B喜欢的而A没有见过的物品推荐给A。根据这最象素的n个用户对该物品的打分情况,计算出A对该物品的最可能评分,若评分较高,则推荐给A。

优缺点:

  • 只用到用户的历史评分数据,简单。
  • 数据稀疏问题。用户的评分数据相对项目总量来说还是很少。
  • 存在冷启动问题,没有评分数据无法推荐。

基于物品的协同过滤

利用用户已选择的项目来寻找其他类似属性的项目进行推荐。
使用显示反馈(评分、喜欢、不喜欢)或隐式反馈(观看、搜索、点击)的方式获取用户交互过的项目,从项目的特征中学习用户的偏好
预先根据所有用户的历史偏好数据计算物品之间的相似性,然后把与用户喜欢的物品相类似的物品推荐给用户。

算法步骤 itemCF:

  • 计算物品间的相似度。
  • 根据物品的相似度和用户的历史行为生成排序后的推荐列表。

优缺点:

  • 依赖于用户偏好于项目的特征信息,不需要大量评分记录,不存在评分记录稀疏的问题。
  • 对于新项目,只要特征提取就可以向用户进行推荐,解决了冷启动问题。但体征提取较为困难。

混合推荐

采用组合不同的推荐算法。
常见3种:后融合、中融合、前融合。

后融合:
将两种/两种以上的推荐算法产生的推荐结果以投票、线性组合、或可信度选择组合等方式产生最终推荐结果。(决策层面的混合)
中融合:
以一种推荐算法为基础,融合另一种推荐算法。(模型层面的混合)
前融合:
将多种推荐算法融合到统一的模型里,从各类数据中提取的特征作为模型的输入,由统一的模型产生推荐结果。(特征层面的融合)

相似度计算

杰卡德相似系数

Jaccard相似系数主要用于计算符号度量/布尔值度量的样本间相似度。
是样本交集个数与并集个数的比值。
在这里插入图片描述
Jaccard距离是两个集合中不同元素所占比例衡量两个集合的区分度。
应用场景:
1、用于过滤相似度很高的新闻,或网页去重。
2、论文查重系统。

余弦相似度

计算两个向量夹角余弦值判断相似度。
在这里插入图片描述
应用场景:
1、推荐系统中的协同过滤算法。
2、计算文本相似性。

欧式距离(欧几里得距离)

最常用的距离计算公式,计算多维空间中各个点之间的绝对距离。
更适用于在数据稠密且连续时的计算。

曼哈顿距离

表示的是两点之间连线对各个坐标抽投影的长度之和。
在二维空间中,公式如下:
在这里插入图片描述
欧氏距离与曼哈顿距离可以用于从数值上判断样本间相似度,如果需要从方向上(趋势上)判断时,可以用余弦相似度。

皮尔逊相关系数

前提:
1、两个变量是线性关系,都是连续数据。
2、两个变量总体上是正态分布。

一般用于计算两个定距变量间联系的紧密程度。
衡量两个用户的相似性。首先找到两个用户共同评分过的数据集,计算这两个向量的相关系数。
公式如下:
在这里插入图片描述
正相关:相关系数在0~1之间
负相关:相关系数在-1~0之间。

深度学习

用在图像处理、NLP、语音识别、在线广告等领域。
融合传统推荐算法,可以缓解数据稀疏与冷启动问题。

通过学习一种深层次非线性网络结构,表示用户和项目相关的海量数据,具有从样本中学习数据集本质特征的能力,能获取用户与项目的深层次特征表示。
学习多源异构数据,组合低层特征形成高层语义抽象,自动发现数据的分布式特征表示,解决了传统机器学习中需要人工设计特征的问题。

常用的深度学习模型

自编码器AE

三层神经网络结构,输入层与输出层的规模相同。
在这里插入图片描述
使得输入x与输出y尽可能接近。
模型改进:
1、稀疏编码器。在损失函数中加入L1正则项,对过大权重进行惩罚。
2、降噪编码器。在输入数据中加入噪声。
使用场景:
对用户/项目相关信息(评分数据、文本、图像)进行重构学习用户与项目的偏好。
用于评分预测、文本推荐、图像推荐。

受限玻尔兹曼机RBM

能够学习数据中复杂的规则,强大的无监督学习能力。
去除同层变量之间的所有连接,提高学习效率。两层之间节点全连接,同层节点间不连接。
在这里插入图片描述
使用场景:
对用户的评分数据进行重构学习,实现对未知评分的预测。
主要用于用户评分预测。

卷积神经网络CNN

多层感知机,用来处理二维图像数据。池化操作减少了模型中的神经元数量。
由输入层、卷积层、池化层、全连接层、输出层 组成。层层之间全连接,每层之间的节点无连接。
使用场景:
用于从图像、文本、音频中提取项目的隐藏特征。用于图像推荐、音乐推荐、文本推荐。

循环神经网络RNN

通过获取输入层的输出和前一时刻的隐层状态来计算当前时刻隐层的输出。
能够对过去的信息进行记忆。
在这里插入图片描述
使用场景:
用于建模用户和项目相关的文本信息中词语之间序列影响。
评分预测、图像推荐、文本推荐、基于位置社交网络中的兴趣点推荐等。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号