机器学习基础7--推荐系统
近十年以来,推荐系统迅猛发展,比如说亚马逊的商品推荐等.而Netflix的比赛,让推荐系统更广为人知.
在YouTube,每分钟都会有上百个小时的视频汇聚,我们没法把视频一个个的看完,那么哪些视频是我们关心的?这是一个信息过载的例子.
信息量爆炸所带来的影响非常深远,衍生出了一种个性化思想,连接用户和某一项事物.
传统的浏览模式成为历史,我们必须寻找一种新的模式.
推荐系统的例子:
电影推荐
商品推荐
音乐推荐
用户关系判断(比如微博上的用户之间的关系)
药物靶相互作用(治疗感冒的药物同时也有治疗头疼的作用)
构建一个推荐系统:
1.根据流行度.
类似微博的热榜,会展现在用户面前,但是这样的推荐缺乏个性化.至少我就对哪个明星干了啥没什么兴趣.
2.分类模型
使用用户的信息,购买历史,商品的信息,以及其他的一些进行,通过一个分类模型,来判断用户是否感兴趣.
但是这样做同样存在问题,比如说使用的特征可能并不全.
3.买婴儿尿布的人也会买婴儿湿巾
这种现象称为同现购买
我们可以画出一个同现矩阵
比如说我们要查看婴儿尿布的次数向量.以下对应的数量和品类:
[0 ... 4 ... 100 ....]
DVD 奶嘴 湿巾
对上面的次数进行排序,很明显,湿巾是最多的数量.
那么我们就推荐湿巾?
克服流行商品推荐里过强:
现在我们不买婴儿尿布了,我们买儿童玩具
[0(DVD) ... 100W(尿布) ... 湿巾 ...]
很明显,因为尿布的数量巨大,导致只会推荐尿布(尿布数量巨大不是因为买玩具的同时喜欢买尿布,而是因为尿布的需求量确实大).
同现矩阵规格化:
Jaccard相似度算法:
同时购买商品i和j的人数 / 购买了商品i或j的人数
也有其他的规格化算法,比如余弦相似度.
但是这个方法也有一定的局限性,比如只会考虑当前的状态,不考虑历史情况.
另外,如果购买了很多商品怎么办?这需要使用权重系数了.
冷启动问题:
这也是一个问题,就是在没有用户数据的情况下,如何进行相似度计算?
end
课程:机器学习基础:案例研究(华盛顿大学)
视频链接: https://www.coursera.org/learn/ml-foundations/supplement/vAjQL/slides-presented-in-this-module
week5 [Recommender systems,Co-occurrence matrices for collaborative filtering]