本文是学习Andrew Ng的机器学习系列教程的学习笔记。教学视频地址:
https://study.163.com/course/introduction.htm?courseId=1004570029#/courseDetail?tab=1
推荐系统:
69. Recommender systems – problem formulation
自动填补上面的空白,从而根据用户对电影的评价,推荐用户感兴趣的电影;
70. Recommender systems – Content-based recommendations
电影提取特征,对每个用户应用线性回归:
这里假设了我们已经知道电影的特征,且知道用户对电影的描述,所以采用基于内容的推荐系统;但是实际中很多情况是不知道特征的;
71. Recommender systems – Collaborative filtering
协同过滤collaborative filtering
很有意思的特性:特征学习feature learning, 自己学习用什么特征;
假设用户对电影偏好的调查问卷,推导电影的特征:
与基于内容的推荐算法正好相反,可以随机theta,然后用协同过滤最优化x,然后用内容推荐最优化theta,然后用协同过滤最优化x….最后会有一个比较合适的theta和x,这么计算要基于每个用户都对数个电影做了评价,每个电影有多个用户的评价:
72. Recommender system – Collaborative filtering algorithm
把两种推荐算法结合到一个代价函数中:
洋红色部分一个是对用户以及用户评价了的电影累加,一个是对电影以及获得评价的用户求和,这两项是一样的;
合起来的等式x为实数,就是第一个由x估计theta;theta为实数就是第二个由theta估计x;
不需要专门设置x0=1, theta0=1,因为算法在自己学习特征,如果需要,他会自己学习到等于1的特征;
73. Recommender system – vectorization – low rank matrix factorization
矢量化vectorization:低秩矩阵分解low rank matrix factorization
Collaborative filtering algorithm’s vectorization implementation 协同过滤算法的向量化实现;
X*transpose(Theta)是低秩矩阵
学习到的影片特征可能很难可视化,或者很难用被人理解的方式描述;
如何找出想近电影?这样方便推荐给用户他喜欢的相近电影:
74. Recommender systems – implementational detail – mean normalization
Mean normalization均值归一化
有个用户Eve没有评价任何电影,如何分析?
均值归一化:每个电影评价减去每个电影评价的均值
对均值归一化后的数据进行协同过滤求解theta 和x
预测时再将结果加上均值;
本质就是没有用户喜好时,就按大众的喜好程度给用户推荐:)