• 推荐系统实践(项亮)— 第3章 推荐系统冷启动问题


    3.1 冷启动问题简介

    • 问题分类:
    • 用户冷启动
    • 物品冷启动
    • 系统冷启动

      常用解决方案:

    • 利用热销榜进行推荐
    • 利用用户注册时的年龄、性别等数据做粗粒度的个性化
    • 利用用户社交数据为其推荐好友喜欢的物品
    • 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息并推荐相似产品
    • 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户
    • 在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表

    3.2 利用用户注册信息

      基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。帮助用户发现他们不容易发现的物品,而不是热门物品。

      基本流程:(1)获取用户注册信息;(2)根据注册信息对用户分类;(3)给用户推荐他所属分类中用户喜欢的物品。将推荐列表根据一定的权重相加,得到最终的推荐列表。

    3.3 选择合适的物品启动用户的兴趣

      在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是提供一些物品,根据用户的反馈来提供个性化推荐。  

      选择启动物品需要具备的特点:

    • 比较热门:让用户对一个物品进行反馈,前提是用户知道这个物品是什么;
    • 具有代表性和区分性: 可以区分用户个性化兴趣,而不是大众化,老少皆宜的;
    • 启动物品集合需要有多样性:用户兴趣的可能性非常多,需要提供具有很高覆盖率的启动物品集合
      • 利用决策树选择启动物品集合:P87

      一般可以使用决策树算法构建一个这样的选择启动物品集合的系统。给定一群用户,用这群用户对物品评分的方差度量这群用户兴趣的一致程度。如果方差很大,说明这一群用户的兴趣不太一致,反之则说明这群用户的兴趣比较一致。通过如下方式度量一个物品的区分度D(i):

      另一种理解:计算的这个方差,相当于决策树里计算的信息熵,

      三项分别还是喜欢、不喜欢、不知道商品i的用户对其他物品评分的方差。决策树算法首先会从所有用户中找到具有最高区分度的物品i,然后将用户分成3类。然后在每类用户中再找到最具区分度的物品,然后将每一类用户又各自分为3类,也就是将总用户分成9类,然后这样继续下去,最终可以通过对一系列物品的看法将用户进行分类。而在冷启动时,我们从根节点开始询问用户对该节点物品的看法,然后根据用户的选择将用户放到不同的分枝,直到进入最后的叶子节点,此时我们就已经对用户的兴趣有了比较清楚的了解,从而可以开始对用户进行比较准确地个性化推荐。

    3.4 利用物品的内容信息

      对于物品的冷启动问题,一般是利用物品的文本信息,计算物品的词向量,然后根据词向量计算物品的相似性,将其加入相似性矩阵。通过物品内容(文本)计算物品相似性,是基于内容的过滤算法。

      UserCF算法对物品冷启动问题不太敏感,因为总有一些用户通过某些途径对新物品进行反馈,这样就可以推荐给兴趣相投的其他用户,从而推广物品;另外,解决第一推动力还可以考虑利用物品的内容信息,将新物品投给曾经喜欢过和它内容相似的其他物品的用户。

      ItemCF算法对物品冷启动问题很敏感,物品相似度表的更新跟不上,此时只能利用物品的内容信息计算物品相关表,基于内容的相关表计算相对简单,能频繁更新解决物品冷启动问题。

      总结:如果用户的行为强烈受到某一内容的影响,那么内容过滤算法的性能最优,可以超过协同过滤算法,但如果需要丰富的领域知识的场景,协同过滤会明显高于内容过滤算法。

      LDA算法:属于话题模型,生成模型,基本思想是:

    3.5 发挥专家的作用

      针对系统冷启动问题,一般使用专家进行样本标注。例如:Jinni采用本人工、半自动的方法。

      

  • 相关阅读:
    DropDownList 禁止选择某一项
    C语言文件操作函数(ANSI)详解(二)
    c语言中break与continue的区别
    指针函数
    C语言文件操作函数(ANSI)详解(一)
    结构体指针
    ASCII\UNICODE编码的区别
    函数调用二维数组例子
    getchar()函数getch()函数区别
    C语言 二维数组做函数参数的几种情况
  • 原文地址:https://www.cnblogs.com/eilearn/p/9860075.html
Copyright © 2020-2023  润新知