老卫带你学---推荐系统
机器学习的一种重要应用就是推荐系统。
比如我们的淘宝推荐,豆瓣推荐,优酷电影推荐等等都用到了推荐系统。
那我们来谈一谈推荐系统的细节。
推荐系统评价指标
要了解推荐系统,先了解其评价指标。
1.准确度
precision=TP/TP+FP;
recall=TP/TP+FN
2.覆盖率
马太效应就是有的项目太火了,每次都是推荐那几个,导致有些项目一直没有被推荐。
所以我们的推荐系统要尽可能的覆盖更多的项目。
采用coverage不能很好的表达其性能;
而熵可以来衡量其覆盖率,因为只有各个的概率相同时,其才是最大熵。
3.多样性
多样性就是,假如在淘宝中,我们尽可能推荐不同类别的,比如衣服,鞋子,家具等等。
4.其他指标
算法详解
对推荐系统,目前流行的算法主要是1.基于内容的推荐;2.协同过滤。
基于内容
下面这个例子:
将书名按词划分,然后求各个的相似距离。
协同过滤
协同过滤中分为基于用户与基于项目
那么相似度是如何计算的呢?
我们来看一些基于项目的协同过滤。
老卫语录:
- 建立矩阵,矩阵的值是用户对于项目的打分。
- 计算项目之间的相似度/距离。
-
选取Top K推荐。
再来看一下基于用户的协同过滤:
老卫语录:
基于用户的协同过滤与基于项目的协同过滤大体一致,只是后者按照每行计算相似度,前者按照每列计算相似度。
基于用户与基于项目的协同过滤对比
重要的两点:
物品要远远少于用户,多对应的矩阵代价少;
物品更稳定,用户的喜好可能会随着时间变化;
冷启动
冷启动就是当有新用户或者新项目来的时候,需要对模型进行调整。