• 基于内容的推荐、协同过滤


    基于内容的推荐

    需要分析内容,无需考虑其他用户的行为,例如基于用户喜欢的item的属性/内容进行推荐

    通常使用在文本相关产品上进行推荐     

    使用词袋模型来衡量不同文本的相似度,每个词的权重可以使用频率或者tf-idf表示

    相似度计算公式一般使用余弦相似度

     

    协同过滤(CF)

    基于用户的协同过滤

    找到和用户最近的其他用户,找到其他用户看过或者买过但当前用户没有看过或者买过的item,根据用户与其他用户距离的远近进行打分,找到得分最高的item进行推荐。

    Tip: 基于用户的协同过滤求相似度时应该先去均值

    基于物品的协同过滤

    根据用户对商品或者内容的行为,计算item与item的相似度,找到和当前item最近的进行推荐

    相似度/距离度量方法

    欧式距离:

     

    Jaccard相似度:

     

    余弦相似度:

     

    Pearson相似度:

     

    User CF vs Item CF

    工业上一般使用Item CF,应为一般情况下用户太多,远多于商品的数量,并且Item CF更加稳定,例如随着时间的推移,物品之间的相似度基本不发生变化,而由于个人兴趣的改变,User CF的用户之间的相似度很可能发生较大的变化。

     

    CF优缺点

    协同过滤优点

    基于用户行为,因此对推荐内容无需先验知识

    只需要用户和商品关联矩阵即可,结构简单

    在用户行为丰富的情况下,效果好

    协同过滤缺点

    需要大量的显性/隐性用户行为

    需要通过完全相同的商品关联,相似的不行

    假定用户的兴趣完全取决于之前的行为,而和当前上下文环境无关

    在数据稀疏的情况下受影响。可以考虑二度关联。(如U1与U2无关联,而U1、U2与U3都关联)

    冷启动问题

    对于新用户,所有推荐系统对于新用户都有这个问题,一般的解决办法:

    1) 推荐非常热门的商品,收集一些信息

    2) 在用户注册的时候收集一些信息

    3)在用户注册完之后,用一些互动游戏等确定喜欢与不喜欢

    4)对于新商品,根据本身的属性,求与原来商品的相似度。Item-based协同过滤可以推荐出去。

     

  • 相关阅读:
    线程(java课堂笔记)
    java中的各种流(老师的有道云笔记)
    面向对象(java菜鸟的课堂笔记)
    泛型(java菜鸟的课堂笔记)
    我做的第一个程序(菜鸟的java课堂笔记)
    java中的一些规则(菜鸟的课堂笔记)
    一位菜鸟的java 最基础笔记
    spatial index (空间索引)
    hadoop 的疑问
    numpy 矩阵的运算
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10096011.html
Copyright © 2020-2023  润新知