老卫带你学---推荐系统

机器学习的一种重要应用就是推荐系统。
比如我们的淘宝推荐,豆瓣推荐,优酷电影推荐等等都用到了推荐系统。
那我们来谈一谈推荐系统的细节。

推荐系统评价指标

要了解推荐系统,先了解其评价指标。
1.准确度
老卫带你学---推荐系统
precision=TP/TP+FP;
recall=TP/TP+FN
老卫带你学---推荐系统
2.覆盖率
马太效应就是有的项目太火了,每次都是推荐那几个,导致有些项目一直没有被推荐。
所以我们的推荐系统要尽可能的覆盖更多的项目。
采用coverage不能很好的表达其性能;
而熵可以来衡量其覆盖率,因为只有各个的概率相同时,其才是最大熵。
老卫带你学---推荐系统
3.多样性
多样性就是,假如在淘宝中,我们尽可能推荐不同类别的,比如衣服,鞋子,家具等等。
老卫带你学---推荐系统
4.其他指标
老卫带你学---推荐系统

算法详解

对推荐系统,目前流行的算法主要是1.基于内容的推荐;2.协同过滤。

基于内容

老卫带你学---推荐系统
老卫带你学---推荐系统
下面这个例子:
将书名按词划分,然后求各个的相似距离。
老卫带你学---推荐系统
老卫带你学---推荐系统
老卫带你学---推荐系统
老卫带你学---推荐系统

协同过滤

协同过滤中分为基于用户与基于项目
老卫带你学---推荐系统
老卫带你学---推荐系统
那么相似度是如何计算的呢?
老卫带你学---推荐系统
我们来看一些基于项目的协同过滤。
老卫语录:

  1. 建立矩阵,矩阵的值是用户对于项目的打分。
  2. 计算项目之间的相似度/距离。
  3. 选取Top K推荐。
    老卫带你学---推荐系统
    老卫带你学---推荐系统
    老卫带你学---推荐系统
    老卫带你学---推荐系统
    再来看一下基于用户的协同过滤:
    老卫语录:
    基于用户的协同过滤与基于项目的协同过滤大体一致,只是后者按照每行计算相似度,前者按照每列计算相似度。
    老卫带你学---推荐系统
    老卫带你学---推荐系统
    老卫带你学---推荐系统
    老卫带你学---推荐系统

基于用户与基于项目的协同过滤对比

重要的两点:
物品要远远少于用户,多对应的矩阵代价少;
物品更稳定,用户的喜好可能会随着时间变化;

老卫带你学---推荐系统
老卫带你学---推荐系统

冷启动

冷启动就是当有新用户或者新项目来的时候,需要对模型进行调整。
老卫带你学---推荐系统

隐语义模型