zoukankan      html  css  js  c++  java
  • 推荐系统冷启动问题

    一、冷启动问题简介

    如何在没有大量用户数据的情况下设计个性化推荐系统并让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。

    1.  分类(3类):

    1)用户冷启动:如何给新用户做个性化推荐

    2)物品冷启动:如何将新物品推荐给可能对其感兴趣的用户。在新闻网站等时效性很强的网站中非常重要。

    3)系统冷启动:如何在一个新开发的网站上设计个性化推荐,从而在网站刚发布时就让用户体验到个性化推荐服务。没有用户,只有一些物品信息。

    二、利用用户注册信息解决冷启动问题

    即利用年龄、性别等数据。推荐一些热门商品(该方法粒度较粗)。如若是女性,则推荐女性都喜欢的商品。

    用户注册信息含3种:

    1.  人口统计学信息。如年龄、性别、职业、学历等。这些特征对预测用户的兴趣有很重要的作用。代表系统是lifestyle finder。

    基本流程如下:获取用户注册信息->根据用户的注册信息对用户分类->给用户推荐他所属分类中用户喜欢的物品

    实际应用中也可考虑组合特征,如将年龄性别作为一个特征。不过在使用组合时需注意用户不一定具有所有特征(这是因为用户不一定填写所有信息)。

    核心问题是计算每种特征的用户喜欢的物品,即对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度p(f,i)。利用的用户人口统计学特征越多,越能准确预测用户兴趣。

    p(f,i)可简单定义为物品i在具有f特征的用户中的热门程度。这种方法会导致热门物品会在各种特征的用户中均有较高的权重,不太符合个性化推荐的要求,很难用来给用户推荐符合他们特征的个性化物品。

    改进:

    p(f,i)定义为喜欢物品i的用户中具有特征f的比例。参数a用户解决数据稀疏问题,a值通常较大。如下:

    2.  用户兴趣描述。

    3.  从其它网站导入的用户站外行为数据。如链接豆瓣、新浪等。

    三、选择合适的物品启动用户的兴趣解决冷启动

    通过让用户对物品进行评分来收集用户兴趣。新用户第一次访问时,并不立即给用户展示推荐结果,而是给用户提供一些物品,让用户对其反馈,根据用户反馈提供个性化推荐。

    需解决的首要问题是如何选择物品让用户进行反馈。需评分的物品应较热门、有代表性和区分性、多样性。

    如何设计一个选择启动物品集合的系统?用决策树解决。根据用户对某一物品的喜好程度分类,分为3类:喜欢、不喜欢、不知道。再在每类用户中再找到最具区分度的物品。

    四、利用物品的内容信息解决冷启动

    UserCF算法对物品冷启动问题并不非常敏感。需解决第一推动力问题,即第一个用户从哪儿发现新的物品。解决的方法可以考虑利用物品的内容信息,将新物品先投放给曾喜欢过和它内容相似的其他物品的用户(这不是和ItemCF很相似么?!)。

    ItemCF算法在在线服务时会将之前计算好的物品相关度矩阵放在内存中,因此当新物品加入时,内存中的物品相关表中不会存在这个物品。解决的方法是频繁更新物品相似度表(耗时)。只能利用物品的内容信息计算物品相关表,并频繁地更新相关表(如半小时一次,原来是一天一次)。

    一般来说,物品的内容可通过向量空间模型表示,将物品表示成一个关键词向量。若内容是文本形式,需引入理解自然语言的技术抽取关键词。对于中文,应先对文本进行分词,再从词流中检测出地点/人名名词,将这些专有名词和其他一些重要词组成关键词集合,最后对关键词进行排名,计算每个关键词的权重(可用信息检索领域著名的TF-IDF公式计算),从而生成关键词向量。若物品是电影,可根据演员在剧中的重要程度赋予他们权重。

    给定物品内容关键词后,物品的内容相似度可用向量间的余弦相似度计算。若要对两两物品计算物品相似度,但这样时间复杂度较高。在实际应用中,可先通过建立关键词-物品的倒排表加速这一计算过程。得到物品相似度后,用ItemCF算法给用户推荐和他历史上喜欢的物品内容相似的物品。

    内容相似度计算简单,能频繁更新,且能解决物品冷启动问题。内容过滤算法ContentItemKNN在某些数据集上的准确率、召回率上性能较差,覆盖率、流行度上性能稍好。很多时候内容过滤算法的精度比协同过滤算法差,但如果用户的行为强烈受某一内容属性的影响,那么内容过滤算法还是可以再精度上超过协同过滤算法的。如果能将这两种算法融合,一定能获得比单独使用这两种算法更好的效果。向量空间模型在内容数据丰富时可获得较好的效果。

    如何建立文章、话题和关键词的关系是话题模型研究的重点。代表性的话题模型有LDA。是对一篇文章的产生过程进行建模。即在写文档时,先想要讨论哪些话题,然后这些话题要用什么此描述,最终用词写成一篇文章。文章和词之间是通过话题联系的。LDA有3个元素,即文档、话题和词语。每篇文章会表现为词的集合,即词袋模型。计算过程包括初始化和迭代两部分。

    可用LDA计算物品的内容相似度,计算分布的相似度可利用KL散度。

    五、发挥专家的作用

    没有用户行为数据,也没有充足的物品内容信息准确的计算物品相似度,故利用专家进行标注。代表系统是Pandora和Jinni。在Pandora中,采用全人工的方式,每首歌可表示为一个400维的向量,然后用常见的向量相似度算法计算歌曲的相似度。Jinni采用半人工、半自动的方式,即专家(50个)和机器学习(影评)相结合的方式。

  • 相关阅读:
    SQL函数说明大全
    (火炬)MS SQL Server数据库案例教程
    SQL 数据库基础语句
    java 中length,length(),size()的区别
    关于webLogic启动问题
    dreamweaver读jsp时遇到的问题
    Microsoft 注册表编辑器 (regedit.exe)
    由正则表达式REGEXP_REPLACE开始
    Hello World
    Python基础目录
  • 原文地址:https://www.cnblogs.com/mingfengshan/p/6951930.html
Copyright © 2011-2022 走看看