个性化推荐研究(五)之冷启动问题

<h3>什么是冷启动问题?</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;个性化推荐是须要依赖用户的历史行为才能预测用户的兴趣,所以大量的用户行为数据是用户的重要组成部分和先决条件。那么对于在开始阶段就像要一个个性化推荐系统的网站或应用来讲,如何在没有用户历史数据的状况下设计个性化推荐而且让用户对推荐结果满意从而使用推荐系统,就是冷启动问题。 </p> <h3>用户冷启动</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;如何给新用户作个性化推荐? <br/> &nbsp;&nbsp;&nbsp;&nbsp;一、作非个性化推荐,如热门排行榜、人工推荐等<br/> &nbsp;&nbsp;&nbsp;&nbsp;二、利用用户的我的信息作粗粒度的个性化推荐<br/> &nbsp;&nbsp;&nbsp;&nbsp;算法核心:计算每种特征(如年龄、性别、职业等)的用户喜欢的商品。即,对于每种特征f,计算具备这种特征的用户对各个商品的喜爱程度p(f,i)。<br/> &nbsp;&nbsp;&nbsp;&nbsp;p(f,i)=|N(i)与U(f)的交集|,其中N(i)是喜欢物品i的用户集合,U(f)时具备特征f的用户集合。<br/> &nbsp;&nbsp;&nbsp;&nbsp;以上公式可能会出现有一个物品只被一个用户喜欢过,而这个用户恰好就有特征f的状况,那么p(f,i)=1。这种状况没有统计意义,所以咱们能够为分母加上一个比较大的数,能够避免这样的商品产生比较大的权重。<br/> &nbsp;&nbsp;&nbsp;&nbsp;p(f,i)=|N(i)与U(f)的交集|/(|N(i)|+a)<br/> &nbsp;&nbsp;&nbsp;&nbsp;经过以上公式,能够计算出每种特征的商品集合。<br/> &nbsp;&nbsp;&nbsp;&nbsp;所以,咱们能够经过微博获取用户的我的信息,根据用户我的信息对用户进行分类,给用户推荐他所属分类中用户喜欢的商品。例如:能够经过性别、年龄分别创建性别-商品相关表、年龄-商品相关表,而后将这两张相关表的商品列表按照必定权重相加,获得用户的最终推荐列表。 </p> <h3>物品冷启动</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;如何将新商品推荐可能对它感兴趣的用户?<br/> &nbsp;&nbsp;&nbsp;&nbsp;一、UserCF(基于用户的协同过滤)<br/> &nbsp;&nbsp;&nbsp;&nbsp;UserCF对商品冷启动问题并不敏感。UserCF在给用户进行推荐时,会首先找到和用户兴趣类似的一群用户,而后给用户推荐这一群用户喜欢的商品。当一个新商品加入时,总会有用户经过某些途径(分类、搜索等)看到这些商品,对商品产生反馈。那么当一个用户对某个物品产生反馈后,和他历史兴趣类似的其余用户的推荐列表中就有可能出现这一商品,从而更多的人就会对这个商品产生反馈,致使更多的人的推荐列表中出现这个物品。这个物品就能不断地扩散开来。所以若是使用UserCF算法,咱们就能够不用考虑商品冷启动问题。<br/> &nbsp;&nbsp;&nbsp;&nbsp;可是,推荐列表是用户获取信息的主要途径,那么对于UserCF算法就须要解决第一推进力的问题,即第一个用户从哪里发现这个新商品。只要有一小部分人可以发现并喜欢新商品,那么UserCF就能将这些新商品扩散到更多用户中。解决第一推进力最简单的方法时将新的商品随机展现给用户,但这样效率很低而且显然不太个性化,所以能够考虑利用物品的内容信息,将新商品先投放给曾经喜欢过和它内容类似的其余商品的用户。<br/> &nbsp;&nbsp;&nbsp;&nbsp;二、ItemCF(基于项目的协同过滤)。<br/> &nbsp;&nbsp;&nbsp;&nbsp;对于ItemCF算法来讲,商品冷启动就是一个严重的问题了。ItemCF算法是给用户推荐和他以前喜欢的商品类似的商品。ItemCF算法每隔一段时间就会利用用户行为计算商品类似度表,在线服务时ItemCF算法会将以前计算好的物品类似度矩阵存放在内存中。当新商品加入时,内存中的商品相关表中不会存在这个商品,从而ItemCF算法没法推荐新商品。解决这一问题的办法是频繁更新物品类似度表,可是基于用户行为计算物品类似度是比较耗时的事情。由于用户行为日志随着时间的推移会变得愈来愈大。并且新商品若是不展现给用户,用户就没法对它产生行为,经过日志计算是计算不出包含新商品的相关矩阵的。为此,咱们只能利用新商品的内容信息计算物品相关表,而且频繁地更新相关表(一小时一次)。 </p> <h3>系统冷启动</h3> <p> &nbsp;&nbsp;&nbsp;&nbsp;如何让在刚发布时就让用户体验到个性化推荐服务? &nbsp;&nbsp;&nbsp;&nbsp;要使用“基因”(物品的元属性)来进行推荐。咱们就须要人工地对每一件商品进行标记,而且每件商品的基因数量应维持在一个固定的数量上。 </p>算法

相关文章
相关标签/搜索