好的推荐系统的几大原则
7.信任度:
提高推荐系统信任度主要有两种方法:1.增加透明度(transparency),主要办法是提供解释(例子是大众点评首页推荐“好友XX赞过”,“最近收藏过”)。只有用户认同推荐机制才会提高信任度。2.考虑用户的社交网络信息,并利用好友进行推荐解释。(Epinion在每条用户评论右侧都显示了评论者的信息,并且让用户判断信任或加入黑名单,尽量推荐他信任的其他用户评论过的物品)。
8.实时性:
推荐系统的实时性包括两个方面:1.推荐系统需要实时地更新推荐列表来满足用户新的行为变化(可以用推荐列表的变化速率来评测);需要能够将新加入系统的物品推荐给用户(可以用用户推荐列表中多大比例的物品是当天新加的来评测)。
9.健壮性
健壮性(robust)指标衡量了一个推荐系统抗击作弊的能力,抗击算法攻击的能力。
很多作弊方法,最著名的要数行为注入攻击(profile injection attack),“购买A商品的用户经常购买其他商品”,注册很多账号,这些正好同时购买A和自己的商品,评分系统(淘宝,雇佣水军刷好评)。
算法健壮性的测评主要利用模拟攻击:用算法给出的注入噪声前后的数据集算出的推荐列表的相似度来评测(相似度越高健壮性越好)。
提高系统健壮性的方法除了算法之外,还有:(1)设计推荐系统尽量使用代价比较高的用户行为(比如使用用户购买行为而不是浏览行为)(2)使用数据前用攻击检测对数据进行清清理。
10.商业目标:
不同的网站具有不同的商业目标,推荐系统目的除了满足用户发现内容的需求,也需要利用推荐系统加快实现商业上的指标。
对于可离线优化的指标,书中给听的看法是:
最大化预测准确度的情况下,覆盖率>A,多样性>B,新颖性>C,其中A/B/C的取值应该视不同的应用而定。
1.1.3 测评维度
增加测评维度的目的就是知道一个算法在什么情况下性能最好。
一般来说,评测维度分为如下三种:
用户维度:用户的人口统计学信息、活跃度以及是不是新用户等。
物品维度:物品的属性信息、流行度、平均分、是否是新加入物品。
时间维度:包括季节,是工作日还是周末,是白天还是晚上等。
第二章 利用用户行为数据
实现个性化推荐最理想的情况是用户能在注册的时候告诉我们他们喜欢什么,但这种方法有3个缺点:1.自然语言处理技术在当下很难提取出用户来描述兴趣的自然语言;2、用户的兴趣是不断变化的,但用户不会不停地更新兴趣描述;3.很多用户并不能准确表达自己喜欢什么。
在推荐系统诞生之前用户行为数据最知名的例子是被利用于排行榜。用户行为不是随机的,而是蕴含很多模式。购物车是分析很多电子商务网站,甚至传统零售业务的核心数据分析任务。
协同过滤算法:用户可以齐心协力,通过不断地和网站互动,使得自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。
2.1 用户行为数据简介
2.2 用户行为分析
2.2.1 用户活跃度与物品流行度的分布
其中第一个公式代表对k个物品产生过行为的用户数,第二个代表被k个用户产生过行为的物品数,这两个函数都满足长尾分布。
2.2.2 用户活跃度和物品流行度的关系
不活跃的用户要么是新用户,要么是只来过网站一两次的老用户。一般认为,新用户对网站还不熟悉,只能点击首页的热门物品,而老用户会逐渐开始浏览冷门的物品。用户越活跃,越倾向于浏览冷门的物品。
仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法,学术界提出了很多方法,比如基于邻域的方法(neighobrhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph)等。在这些方法中,最著名的要数基于邻域的方法。
基于邻域的协同过滤算法 这种算法给用户推荐和他兴趣相识的其他用户喜欢的物品。
基于物品的协同过滤算法 这种算法给用户推荐和他之前喜欢的物品相似的物品。
2.3实验设计与算法评测
本章采用研究隐反馈数据集中的TopN推荐问题,也就是预测用户会不会对某部电影评分。
2.3.2 实验设计
操作步骤:1.将用户行为数据集合按照均匀分布随机分成M份,挑选一份作为测试集,将剩下的M-1份作为训练集。
2.在训练集上建立用户兴趣模型,并在测试集上对用户行为进行预测,统计出相应的测评指标。
3.为了保证评测指标并不是过拟合的结果,需要进行M次实验,并且每次都使用不同的测试集。然后将M次实验测出的评测指标的平均值作为最终的评测指标。