【Machine Learning】16 推荐系统(Recommender Systems)
16.1 Problem Formulation
许多公司会利用你浏览或者购买历史 通过推荐系统有针对性的向你推荐产品。
特征的选择是机器学习的重要内容,很多时候我们手动选取特征,然而对于某些问题,算法能够自动选取特征,推荐系统就能很好体现这一点。
电影评分的例子:
我们想通过以有的评分预测用户会给未评分的电影的分数作为推荐的依据。
16.2 Content Based Recommendations
基于内容的推荐系统:
假设我们有每个影片的特征x=[额外值,浪漫值,动作值],我们通过已有评分学习每个用户的参数θ。右图是此类问题的更通常表示。
复习一下线性回归问题:
利用梯度下降方法迭代得到θ。如左图,第二个式子是总的目标函数,具体计算时还是如第一个式子独自计算的。
16.3 Collaborative Filtering
实际上在之前16.2的假设中我们拥有每部电影的特征,实际上我们很难说一部电影包含多少浪漫或动作,但我们可以通过调查知道每个用户对于浪漫片/动作片的喜爱程度也就是θ,跟16.2相反可以通过θ学习每部电影的特征x。如下:
我们综合以下16.2 和 16.3 讨论的内容:
这似乎是先有鸡还是先有蛋的问题,这里引出了协同过滤的思想。
16.4 Collaborative Filtering Algorithm
协同滤波把16.2 16.3的目标函数综合起来,实际上粉红色框内的函数是一样的,再把不同的部分加起来,就得到新的目标函数。
这里注意没有x0,θ0。
给出了具体算法,实际这里的迭代同16.2 16.3一样,区别就是x θ都在更新。
16.5 Vectorization: Low Rank Matrix Factorization
1、算法的向量化实现:
实际可表成低秩矩阵分解问题。
2、电影的相关程度:在某一电影i后推荐哪些电影给用户,取决于它们的相关程度,
16.6 Implementational Detail:Mean Normalization
1、未作均值标准化的结果:
我们想知道协同滤波算法会对未作任何评分的用户5作何预测?
基于目标函数 ,容易得到评分0的结果。这个时候无法推荐电影给该用户。
2、均值标准化处理后的结果:
我们对评分矩阵做均值标准化处理,用此矩阵来学习θ x,这里对用户5的预测结果就在1的基础上多了均值。
均值标准化处理作为协同滤波算法的数据预处理步骤会让预测效果更好。