推荐系统实践

推荐系统测评

 实验方法
  • 离线实验:准备训练数据测试数据并评估;
  • 用户调查:问卷方式、和用户满意度调查
  • 在线实验:AB测试:AB测试是一种很经常使用的在线评测算法的实验方法。它经过必定的规则将用户随机分红几组,
  • 并对不一样组的用户采用不一样的算法,而后经过统计不一样组用户的各类不一样的评测指标比较不一样算
  • 法,好比能够统计不一样组用户的点击率,经过点击率比较不一样算法的性能。
测评指标:
  • 用户满意度
  • 预测准确度:预测准确度度量一个推荐系统或者推荐算法预测用户行为的能力。这个指标是最重要的推荐系统离线评测指标
  • 评分预测: 均方根偏差 RMSE  平均绝对偏差MAE
  • TopN推荐:网站在提供推荐服务时,通常是给用户一个个性化的推荐列表,这种推荐叫作TopN推荐。TopN推荐的预测准确率通常经过准确率(precision)/召回率(recall)度量。
  • 覆盖率:覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。覆盖率有不一样的定义方法,最简单的定义为推荐系统可以推荐出来的物品占总物品集合的比例。
  • 信息熵度量:这里p(i)是物品i的流行度除以全部物品流行度之和。
  •  

  • 基尼系数度量: ij是按照物品流行度p()从小到大排序的物品列表中第j个物品
  • 多样性:,推荐列表须要可以覆盖用户不一样的兴趣领域,即推荐结果须要具备多样性。
  • 新颖性:新颖的推荐是指给用户推荐那些他们之前没有据说过的物品。
  • 惊喜度:,若是推荐结果和用户的历史兴趣不类似,但却让用户以为满意,那么就能够说推荐结果的惊喜度很高
  • 信任度:让用户对推荐结果产生信任是很是重要的。一样的推荐结果,以让用户信任的方式推荐给用户就更能让用户产生购买欲,而以相似广告形式的方法推荐给用户就可能很难让用户产生购买的意愿。
  • 实时性
  • 健壮性:而健壮性(即robust,鲁棒性)指标衡量了一个推荐系统抗击做弊的能力。
  • 商业目标:,网站评测推荐系统更加注重网站的商业目标是否达成,而商业目标和网站的盈利模式是息息相关的。
测评维度:
  • 用户维度  主要包括用户的人口统计学信息、活跃度以及是否是新用户等。
  • 物品维度  包括物品的属性信息、流行度、平均分以及是否是新加入的物品等。
  • 时间维度  包括季节,是工做日仍是周末,是白天仍是晚上等。

 用户行为数据

  • 用户显性反馈数据:显性反馈行为包括用户明确表示对物品喜爱的行为。主要方式就是评分和喜欢/不喜欢。
  • 用户隐性反馈数据:隐性反馈行为指的是那些不能明确反应用户喜爱的行为。最具表明性的隐性反馈行为就是页面浏览行为。
 
用户活跃度和物品流行度:长尾分布
        通常来讲,不活跃的用户要么是新用户,要么是只来过网站一两次的老用户。那么,不一样活跃度的用户喜欢的物品的流行度是否有差异?通常认为,新用户倾向于浏览热门的物品,由于他们对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。
 
用户行为数据设计的推荐算法
  • 基于邻域的方法(neighborhood-based)
  • 隐语义模型(latent factor model)
  • 基于图的随机游走算法(random walk on graph)
其中最主要的方法为基于邻域的算法:
  • 基于用户的协同过滤算法  这种算法给用户推荐和他兴趣类似的其余用户喜欢的物品。
  • 基于物品的协同过滤算法  这种算法给用户推荐和他以前喜欢的物品类似的物品。
 
 
基于用户的协同过滤算法:
  • (1) 找到和目标用户兴趣类似的用户集合。(类似性计算,基于距离)
  • (2) 找到这个集合中的用户喜欢的,且目标用户没有据说过的物品推荐给目标用户
改进 1:
        若是对用户两两计算类似度,复杂度太高O(n*n) ,所以能够首先计算item-user的倒排表,而后计算用户类似度,这样能够过滤掉共同物品为0的用户
 
改进 2:
        考虑物品自己的流行度,
 

 

 
 
基于物品的协同过滤算法
  • (1) 计算物品之间的类似度。
  • (2) 根据物品的类似度和用户的历史行为给用户生成推荐列表。
  • 共现的几率
 
改进 1 :user-item倒排表 
 
改进 2 用户活跃度的影响
 
 

 

 

隐语义模型

        隐语义模型是最近几年推荐系统领域最为热门的研究话题,它的核心思想是经过隐含特征(latent factor)联系用户兴趣和物品。
        隐含语义分析技术从诞生到今天产生了不少著名的模型和方法,其中和该技术相关且耳熟能详的名词有pLSA、LDA、隐含类别模型(latent class model)、隐含主题模型(latent topic model)、矩阵分解(matrix  factorization)。这些技术和方法在本质上是相通的,其中不少方法均可以用于个性化推荐系统。
 
        隐性反馈数据中,没有负样本 只有正样本;在隐性反馈数据集上应用LFM解决TopN推荐的第一个关键问题就是如何给每一个用户生成负样本。
  • 对于一个用户,用他全部没有过行为的物品做为负样本。
  • 对于一个用户,从他没有过行为的物品中均匀采样出一些物品做为负样本。
  • 对于一个用户,从他没有过行为的物品中采样出一些物品做为负样本,但采样时,保证每一个用户的正负样本数目至关。
  • 对于一个用户,从他没有过行为的物品中采样出一些物品做为负样本,但采样时,偏重采样不热门的物品。
        对于第一种方法,它的明显缺点是负样本太多,正负样本数目相差悬殊,于是计算复杂度很高,最终结果的精度也不好。对于另外3种方法,Rong  Pan在文章中表示第三种好于第二种,而第二种好于第四种。
  • 对每一个用户,要保证正负样本的平衡(数目类似)。
  • 对每一个用户采样负样本时,要选取那些很热门,而用户却没有行为的物品。
LFM和基于邻域的方法的比较
  • 理论基础  LFM具备比较好的理论基础,它是一种学习方法,经过优化一个设定的指标创建最优的模型。基于邻域的方法更多的是一种基于统计的方法,并无学习过程。
  • 离线计算的空间复杂度 :LFM大量节省了训练过程当中的内存
  • 离线计算的时间复杂度:在通常状况下,LFM的时间复杂度要稍微高于UserCF和ItemCF,这主要是由于该算法须要屡次迭代。但整体上,这两种算法在时间复杂度上没有质的差异。
  • 在线实时推荐:  UserCF和ItemCF在线服务算法须要将相关表缓存在内存中,而后能够在线进行实时的预测。
  • 推荐解释:  ItemCF算法支持很好的推荐解释,它能够利用用户的历史行为解释推荐结果。但LFM没法提供这样的解释,它计算出的隐类虽然在语义上确实表明了一类兴趣和物品,却很难用天然语言描述并生成解释展示给用户。
 

推荐系统冷启动问题

  • 用户冷启动
  • 物品冷启动
  • 系统冷启动
 
利用用户注册信息
  • 人口统计学信息  包括用户的年龄、性别、职业、民族、学历和居住地。
  • 用户兴趣的描述  有一些网站会让用户用文字描述他们的兴趣。
  • 从其余网站导入的用户站外行为数据  好比用户经过豆瓣、新浪微博的帐号登陆,就能够在获得用户赞成的状况下获取用户在豆瓣或者新浪微博的一些行为数据和社交网络数据。
选择合适的物品启动用户的兴趣
        通常来讲,可以用来启动用户兴趣的物品须要具备如下特色
  • 比较热门
  • 具备表明性和区分性
  • 启动物品集合须要有多样性
 
利用物品的内容信息
发挥专家的做用
 

利用用户标签数据

        用户用标签来描述对物品的见解,所以标签是联系用户和物品的纽带,也是反应用户兴趣的重要数据源,如何利用用户的标签数据提升个性化推荐结果的质量是推荐系统研究的重要课题
 

 

数据稀疏性
 
        对于新的物品或者用户,标签数量很是少,此时须要对标签进行扩展 ---基于标签的类似性
 
标签清理:除去词频很高的中止词、同义词  等;类比天然语言处理 
 
 

## 利用上下文信息

时间上下文信息
  • 用户兴趣是变化的
  • 物品也是有生命周期的
  • 季节效应
 
系统时间特性的分析:
  • 数据集天天独立用户数的增加状况
  • 系统的物品变化状况 :网站新闻增加状况,商品增加状况等
  • 用户访问状况: 用户的平均活跃天数
 
时间上下文推荐算法:
 
  • 最近热门推荐
  • 时间上下文itemCF算法: 最经常使用的是基于物品的个性化推荐系统
    • 物品类似度
    • 在线推荐 : 用户近期行为更关键
  • 时间上下文相关的userCF算法
    • 用户兴趣类似度
    • 类似兴趣用户最近行为
  • 地点上下文
相关文章
相关标签/搜索