第五章 深度学习
二、推荐系统
1. 推荐算法介绍
1.1 个性化推荐算法
-
人口属性
-
地理属性
-
资产属性
-
兴趣属性
1.2 推荐算法分支
- 协同过滤推荐算法
- 基于内容的推荐算法
- 混合推荐算法
- 流行度推荐算法
1.3 推荐算法
为推荐系统选择正确的推荐算法是非常重要的决定。目前为止,已经有许多推荐算法可供选择,但为你需要解决的特定问题选择一种特定的算法仍然很困难。每一种推荐算法都有其优点和缺点,当然也有其限制条件,在作出决定之前,你必须要一一考量。在实践中,你可能会测试几种算法,以发现哪一种最适合你的用户,测试中你也会直观地发现它们是什么以及它们的工作原理。
1.4 协同过滤算法
基于内存的协同过滤/基于邻域的协同过滤
- 相似统计的方法得到具有相似兴趣爱好的邻居用户
基于模型的协同过滤
- 先用历史数据得到一个模型,再用此模型进行预测。基于模型的推荐广泛使用的技术包括神经网络等学习技术、潜在语义检索 (latent seman2tic indexing)和贝叶斯网络 (bayesian networks)。
1.5 邻域的协同过滤
UCF 距离算法 ICF
欧几里得距离(Euclidean Distance)以及欧式距离的标准化(Standardized Euclidean Distance)
马哈拉诺比斯距离(Mahalanobis Distance)
曼哈顿距离(Manhattan Distance)
切比雪夫距离(Chebyshev Distance)
明可夫斯基距离(Minkowski Distance)
海明距离(Hamming distance)
1.6 ICF
1.7 UCF
1.8 邻域的协同过滤
UCF ICF 相似度
余弦相似度(Cosine Similarity)以及调整余弦相似度(Adjusted Cosine Similarity)
皮尔森相关系数(Pearson Correlation Coefficient)
Jaccard 相似系数(Jaccard Coefficient)
Tanimoto 系数(广义 Jaccard 相似系数)
对数似然相似度/对数似然相似率
互信息/信息增益,相对熵/KL 散度
信息检索–词频-逆文档频率(TF-IDF)
词对相似度–点间互信息
1.9 基于模型的协同过滤
用关联算法做协同过滤
用聚类算法做协同过滤
用分类算法做协同过滤
用回归算法做协同过滤
用矩阵分解做协同过滤
用神经网络做协同过滤
用图模型做协同过滤
用隐语义模型做协同过滤
1.10 关联规则
Apriori
- Apriori 算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策。比如在常见的超市购物数据集,或者电商的网购数据集中,如果我们找到了频繁出现的数据集,那么对于超市,我们可以优化产品的位置摆放,对于电商,我们可以优化商品所在的仓库位置,达到节约成本,增加经济效益的目的。
FPGROWTH
- FpGrowth 算法通过构造一个树结构来压缩数据记录,使得挖掘频繁项集只需要扫描两次数据记录,而且该算法不需要生成候选集合,所以效率会比较高。
1.11 聚类
K-Means
- K-Means 算法是无监督的聚类算法,它实现起来比较简单,聚类效果也不错,因此应用很广泛。K-Means 算法有大量的变体,本文就从最传统的 K-Means 算法讲起,在其基础上讲述 K-Means 的优化变体方法。包括初始化优化 K-Means++, 距离计算优化 elkan K- Means 算法和大数据情况下的优化 Mini Batch K-Means 算法。
BIRCH
- BIRCH 的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative Reducing and Clustering Using Hierarchies),名字实在是太长了,不过没关系,其实只要明白它是用层次方法来聚类和规约数据就可以了。
1.12 分类
逻辑回归原理
- 如果我们根据用户评分的高低,将分数分成几段的话,则这个问题变成分类问题。比如最直接的,设置一份评分阈值,评分高于阈值的就是推荐,评分低于阈值就是不推荐,我们将问题变成了一个二分类问题。虽然分类问题的算法多如牛毛,但是目前使用最广泛的是逻辑回归。
朴素贝叶斯算法
1.13 矩阵分解
1.14 矩阵分解之隐语义
1.15 神经网络
2006 年,Hinton 在《Science》和相关期刊上发表了论文,首次提出了“深度信念网络”的概念。与传统的训练方式不同,“深度信念网络”有一个“预训练”(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后再使用“微调”(fine-tuning)技术来对整个网络进行优化训练。这两个技术的运用大幅度减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词–“深度学习”。
很快,深度学习在语音识别领域暂露头角。接着,2012 年,深度学习技术又在图像识别领域大展拳脚。Hinton 与他的学生在ImageNet 竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率 15%的好成绩,这个成绩比第二名高了近 11 个百分点,充分证明了多层神经网络识别效果的优越性。
1.16 协同过滤优点
- 实现快
- 对商品和用户没有要求
- 效果有保证
1.17 协同过滤缺点
- 冷启动
- 马太效应
- 推荐解释模糊