推荐系统-推荐系统简介
在这个时代中,信息的生产者很难将信息呈现在对它们感兴趣的信息消费者面前,而对于信息消费者也很难从海量的信息中找到自己感兴趣的信息。推荐系统就是一个将信息生产者和信息消费者连接起来的桥梁。面对数以万计的物品,需要一个人或者一个工具(它分析你的历史兴趣)把用户感兴趣的内容推荐到用户面前。这就是推荐算法的工作。推荐系统更能满足用户不明确的需求。推荐系统可以解决长尾效应。
推荐系统的类型:
基于物品的推荐,基于用户的推荐
推荐系统的应用:
网购,电影和视频网站,个性化音乐电台,社交网络,个性化阅读,基于位置的推荐,个性化邮件,个性化广告
好的推荐系统不仅可以预测用户需求,还可以拓展用户需求,帮助用户发现需求。
推荐系统的测评指标
推荐系统的实验方法:
离线实验
获取用户的数据,并分为训练集和测试集,通过对训练集进行推荐系统的训练可以在测试集上验证推荐系统的结果。
优点:
不需要用户参与
速度快
缺点:
无法计算商业上关心的指标(点击率,转换率)
用户调查:可以获得用户的真实感受,但是成本高,风险高
ABtest
将用户随机分为几组,每一组用户采用不同的算法,然后统计不同组用户的各种测评指标
优点:
获取到点击率等指标
缺点:
周期长
系统的实验流程
一个推荐算法的上线,必须经过离线实验->用户调研->ABtest
评测指标
用户满意度
通过问卷或者实际的消费行为,点击率,用户停留时间,转换率来度量用户满意度。
预测准确率
是最重要的离线测试指标。主要分为评分预测和topN预测
评分预测
在已知用户看了一个电影之后预测用户可可能给电影的评分。评价指标主要是均方误差和平均绝对误差
RMSE加大对预测不准的惩罚
topN预测
topN是为用户推荐最感兴趣的N的电影。准确率一般是通过准确率/召回率得到的
召回率:R(u)是根据用户在训练集上的行为给用户作出的推荐列表,而T(u)是用户在测试集上的行为列表。
准确率:
覆盖率
通过研究物品在推荐列表中出现的次数的分布描述覆盖率,如果比较陡峭就说明没有均匀的覆盖,覆盖率就比较低。覆盖率的表现形式除了可以使用物品是否被推荐给至少一个用户,还可以使用信息熵和基尼系数。
信息熵:p(i)是物品i的流行度除以所有物品流行度之和 ,信息熵越大代表事物发生的不确定性越大,信息量就越多。
基尼系数:是衡量一个数据不平等程度的指标之一。数值越高表示越不平等,而数值越低则表示越平等。Lorenz 曲线是一个图形,将按照从低到高进行排序,然后横轴表示物品i比例,纵轴表示物品流行度比例。基尼系数 ${i_j}$是按照物品流行度p()从小到大排序的物品列表中第j个物品。下面的代码可以用来计算给定物品流行度分布后的基尼系数: 基尼系数越小则推荐越平均。
多样性
多样性描述了推荐列表中物品两两之间的不相似性。 推荐系统需要涵盖用户不同的兴趣领域,而不是只含有一个物品的分类。
新颖性:
评测新颖度的最简单方法是利用推荐结果的平均流行度,因为越不热门的物品越可能让用户觉得新颖。
惊喜度:
一个完全对用户没有相关的电影,用户看完之后感觉很喜欢那么就给用户带来了惊喜。
实时性
首先,推荐系统需要实时地更新推荐列表来满足用户新的行为变化。
推荐系统需要能够将新加入系统的物品推荐给用户(冷启动)。
商业目标:
商业目标和网站的盈利模式是息息相关的。