[机器学习]content-based recommendation
2015-08-15 01:20
316 查看
本文内容属于 Andrew Ng的《机器学习》公开课笔记,大部分截图均来自Andrew Ng的课件
所谓基于内容的推荐,就是说我们的item具备某些属性attrs,然后我们可以通过某个user的历史评分记录,计算出该user对各种 属性 attr的喜好程度,从而可以给user推荐具备他喜欢的attr的item
比如说,每一部电影,都由 浪漫和动作 两种属性,如下图
![](http://img.blog.csdn.net/20150815011901934?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们以Alice为例,她对前2个romance风格的电影评分很高,对最后2部 action类型的电影评分为0,那么第3部电影的属性列表表示该电影时romance风格的,是不是可以预测 Alice对该电影的评分可能比较高呢?!当然!
其实对于 Alice这个用户而言,就是一个我们已经熟知的 linear regression的问题。
X是电影的attrs向量,y是用户的评分。我们要求的theta就是user对各种attrs的偏好。
详见下图公式:
![](http://img.blog.csdn.net/20150815011911011?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其算法,就是用 梯度下降法,每一步更新 theta即可,见下图,不用多说
![](http://img.blog.csdn.net/20150815011919547?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
思考一个问题:
item 的内在属性并不是什么时候都可以得到。就算有,按照一般人的思路,可能也得用大量的人力去填,而且还可能不准确。
下一节讲述的 collaborative filter,就是解决这个问题的强大工具.
所谓基于内容的推荐,就是说我们的item具备某些属性attrs,然后我们可以通过某个user的历史评分记录,计算出该user对各种 属性 attr的喜好程度,从而可以给user推荐具备他喜欢的attr的item
比如说,每一部电影,都由 浪漫和动作 两种属性,如下图
我们以Alice为例,她对前2个romance风格的电影评分很高,对最后2部 action类型的电影评分为0,那么第3部电影的属性列表表示该电影时romance风格的,是不是可以预测 Alice对该电影的评分可能比较高呢?!当然!
其实对于 Alice这个用户而言,就是一个我们已经熟知的 linear regression的问题。
X是电影的attrs向量,y是用户的评分。我们要求的theta就是user对各种attrs的偏好。
详见下图公式:
其算法,就是用 梯度下降法,每一步更新 theta即可,见下图,不用多说
思考一个问题:
item 的内在属性并不是什么时候都可以得到。就算有,按照一般人的思路,可能也得用大量的人力去填,而且还可能不准确。
下一节讲述的 collaborative filter,就是解决这个问题的强大工具.
相关文章推荐
- tableView-自定义非等高cell(2)
- mac apache vhost 配置时出现的 404
- AutoBundle in asp.net mvc 5
- VS动态链接库隐式创建和调用
- 程序的编译、链接与装载
- 利用HTTP-only Cookie缓解XSS
- HDU 1556 Color the ball 线段树
- HDU 5384 Danganronpa(AC自动机)
- tableView-自定义非等高cell(1)
- 菜单状态更新
- ArcGIS地质图矢量化技巧概要
- [置顶] Genymotion 出现the number of cpus of the virtual device has been forced to be 1的解决方法
- android:layout_weight详解
- arcgis切割多边形以及合并多边形
- 《金砖之国》
- UVA 12486 Space Elevator(数位DP)
- HDU 5387 Clock
- HDU1466 计算直线的交点数
- tableView - 自定义等高cell(frame和masonry方式)
- 八种排序算法(C语言简易版)