机器学习基础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]

原文地址:https://www.cnblogs.com/redheat/p/9362056.html