Andrew Ng Machine Learning 专题【Recommender Systems】
来源:互联网 发布:窗帘销售软件 编辑:程序博客网 时间:2024/05/20 23:06
此文是斯坦福大学,机器学习界 superstar — Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。力求简洁,仅代表本人观点,不足之处希望大家探讨。
课程网址:https://www.coursera.org/learn/machine-learning/home/welcome
Week 9 前半部分 Anomaly Detection:http://blog.csdn.net/ironyoung/article/details/49334343
Week 9:
推荐系统
推荐系统是机器学习的重要应用之一,但是学术界关注较少。但是它的确出现在生活中的方方面面。例如我们上豆瓣、网易云音乐(没错,叫我文青)等,总会有根据你的个人喜好来推荐你可能喜欢的电影、音乐的功能,就是典型的推荐系统。
我们以外国豆瓣为例,见下图(问号代表尚未评分):
另外我们需要设计几个变量:nu=#users 数目;nu=#movies 数目;r(i,j) 代表用户j 是否已经对电影i 评分,取值为0或1;y(i,j) 代表用户j 是否对电影i 的具体评分,取值范围0~5一般电影评分是基于内容(content-based),取值范围为0~1。例如某部电影的浪漫成分为0.3,动作成分为0.8,这部电影就主要是动作片,掺杂一些浪漫成分。“浪漫”特征可以设定为
x1 ,“动作”特征可以设定为x2 ,共有n 个特征。如何寻找相似的电影呢?就是选取“距离”最短的另一部电影,即small
||x(i)−x(j)|| 很容易地,我们会想到线性回归的方法。这个方法的前提是已知每部电影属于每种特征的得分即
x(1),x(2),...,x(m) 。若每个用户基于特征可以有一个θ(j) ,则用户j 对电影i 的评分为(θ(j))Tx(i) 。根据线性回归,我们可以得到优化目标为:
这里需要注意的是,为了简化系统,我们去除了求和符号之前的12m ,而是12 。这样并不影响结果。
对上图中的优化目标,利用梯度下降的办法求出θ 的最优值(如果对这一部分不熟悉,建议查看《专题【Linear Regression】》:http://blog.csdn.net/ironyoung/article/details/47129523):
换个角度思考?
上一部分,我们是假设已知每部电影在每种特征上的得分。如果我们已知有两种特征:romance和action,但是不知道每种电影在哪种特征上得分多少。在这里,我们的求解对象变为了
x(i) .但是此时我们已知得知用户对于每种特征的喜欢程度,即已知
θ(j) 。同时已知y(i,j) ,求解x(i) 。因此我们的优化目标为:
同理,也可以使用梯度下降法进行最优值求解。上一部分的求解过程是
x⇒θ ,这一部分的求解过程是θ⇒x 。如果这两个过程交替进行,是不是就可以达到整体的最优值?答案是肯定的。这就是下一部分“协同过滤”的基本思想,但是具体实施过程有待改进。
协同过滤(Collaborative Filtering)
对于求解过程
x⇒θ ,与求解过程θ⇒x 交替进行,以求达到整体的最优值。协同过滤基本思想是这样的,但是能不能将一切置于同一个公式下?查看下图,红色方框中是两个优化目标的求解部分中相同的部分,即使求和顺序不同。而红框之外的部分分别加到新的优化目标中
这里,我们去除掉x0,θ0 这些恒为1的变量(其实我忍很久了),让学习更加灵活。因此,协同过滤的具体算法流程(第一步类似于神经网络,对系统中的参数首先都进行随机化;后两步完全类似于线性回归)。因为我们不再需要
k=0 的情况,所以不需要单独区分:
均值归一化(Mean Normalization)
如果有另一个新用户 Eve,她对于任何电影都尚未评分,我们如何给她推荐呢?很简单,推荐那些大部分都觉得高分的电影呗。
但是,如果直接利用我们之前的方法求解以下情形:
为了归一化,肯定最后 Eve 的θ(5) 一定是全0向量。因此,我们需要对原先的方法采取一些预操作,来避免出现全 0 的预测向量,而是让它变成每部电影的平均得分。方法也十分简单,就是对每部电影求出一个平均值(只统计那些对该部电影打过分数的样本),然后将每个人对每部电影的得分减去这部电影的平均值,然后进行协同过滤计算。但是,最后的预测得分公式也需要小小的改变:
(θ(i))Tx(i)⇒(θ(i))Tx(i)+μi (其中μi 表示电影i 的平均得分)。
编程作业答案:https://github.com/cnauroth/machine-learning-class
- Andrew Ng Machine Learning 专题【Recommender Systems】
- Machine Learning by Andrew Ng --- Anomaly Detection and Recommender systems
- Andrew Ng Machine Learning 专题【Introduction】
- Andrew Ng Machine Learning 专题【Linear Regression】
- Andrew Ng Machine Learning 专题【K-Means】
- Andrew Ng Machine Learning 专题【PCA】
- Andrew Ng Machine Learning 专题【Anomaly Detection】
- Andrew Ng Machine Learning 专题【Machine Learning Advice】
- Andrew Ng Machine Learning 专题【Large Scale Machine Learning】
- Andrew Ng Machine Learning 专题【Logistic Regression & Regularization】
- Andrew Ng Machine Learning 专题【Neural Networks】上
- Andrew Ng Machine Learning 专题【Neural Networks】下
- Machine Learning week 9 quiz: Recommender Systems
- Machine Learning-Recommender Systems(推荐系统)
- Andrew Ng-Machine learning (1)
- coursera Machine Learning, Andrew Ng
- Machine Learning-Andrew Ng-week3
- Machine Learning--Andrew Ng--week4
- hdu4825 Xor Sum 字典树与异或(经典)
- XXX.dll 不是有效的 Office 加载项,解决方法
- 块损坏模拟+恢复
- 手机分配短讯id的面试题目
- Spring注解详解
- Andrew Ng Machine Learning 专题【Recommender Systems】
- Ubuntu12 配置Bugzilla
- 如何在工作的头三年让自己变得强大
- 关于css3动画与H5动画的比较(2015年10月22日)
- Reveal 的安装和使用
- HTTP状态码
- linux下autoscan, aclocal, autoconf, automake以及Makefile.am, Configure.in等文件和工具的使用
- 机器人学习网站及仿真软件
- c语言中的字符串