个性化推荐系统的测评体系
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其次,我们要尽可能多的找到一一些测评指标,来反映用户的实际感受和长期的用户价值。 RMSE和F-Score离用户较远,我们如果能够把“都是我熟悉的”、“缺乏惊喜”这样的用户反 馈转换成机器可以理解的、数量化的测评指标,无疑能够很好的提升用户体验。虽然这一一 过程不可避免的带有较强的主观性和随意性,但学术界和工业界在这一一问题还是有不同程 度的研究,在这里我们列举一一些有较为广泛共识的指标。
u,i∈T rˆui − rui 2
T
其中T是测试集。利用RMSE作为测评指标,优势是通用性好、计算简单明确,能够相对 客观的反映模型对真实数据的预测能力。
F-Score是统计学里的概念,在个性化推荐系统中常常用来针对top-k推荐问题给出评价。 在实际的推荐系统中,一一方面往往没有用户对条目的明确评分,仅仅是收藏或浏览数据;
ROC曲线能够比较全面的衡量模型在不同的参数和外部环境变化时模型的适应能力,因 此被越来越多的人应用在机器学习的研究和实践中。对于个性化推荐系统,在对优化目标 稍加改进后同样可以应用ROC曲线作为评价目标。比如对于预测评分问题,可以认为预 测误差小于一一定阈值则分类正确,反之则为失败;对于top-k推荐问题,则相当于直接对 给定的集合进行分类。相比均方误差和F-Score,ROC曲线能够帮助我们更加全面的认识 和评价推荐算法的质量。
1 资料来源:http://en.wikipedia.org/wiki/Receiver_operating_characteristic
首先,从技术上讲,忽视了离线指标与在线指标的差异。推荐算法的模型,是在大量离线 数据的基础上训练出来的,训练的目标,是优化我们前文提到的各种测评指标。因此,这 样训练出来的模型一一方面存在过拟合(Over-fitting)的可能,另一一方面无法对线上快速变 化的环境做出实时响应,模型缺乏自我修正和进化的能力。
此外,没有把算法的测评指标与整个产品的关键指标结合起来考虑,也是造成个性化推荐 系统效果欠佳,与产品方向脱节的原因之一一。算法的改进可以优化RMSE、F-Score、 ROC曲线以及我们下文会提到的一一些测评指标,但这些指标的优化,如何进一一步反应到 产品的关键指标上,比如收入、点击率、用户停留时间、活跃用户数、回访率等等,并不 是简单一一蹴而就的事情。算法工程师对于模型的预测能力是有自信的,但如何把这种预测 能力与产品的关键指标相关联,就需要算法工程师和产品经理来共同努力。
数下的TPR和FPR绘制成图1:
TPR
=
TP P
=
TP TP + FN
FPR
=
FP N
=
FP FP + TN
图2. ROC空间 在ROC曲线中,纵轴是TPR,表征模型的敏感程度,横轴是FPR,表征模型的区分度。 曲线的左上角表示模型具有完美的覆盖率和区分度,而对角线则表示完全随机分类器的效 果。好于随机分类的模型,其ROC曲线会在对角线的左上,而ROC曲线下的面积(AUC, Area Under Curve)的大小,则表示模型的动态预测能力。
个性化推荐系统的测评体系
过去十年间,随着web2.0和云计算技术的兴起,有两个深刻的变化对互联网的发展产生 了潜移默化的影响。一一个是人们越来越愿意在网络上分享自己的真实信息,包括真实的兴 趣和社会关系,互联网的从业者和研究者们也在此基础之上提出了兴趣图谱(Interest Graph)和社交图谱(Social Graph)的概念,来描述和引导这种趋势。另一一个变化,是 利用云来存储和计算能力的飞速发展,使得人们能够跨设备、跨平台的获得一一致性的服务 体验,同时在技术上使得为海量用户提供个性化的服务成为可能。越来越多的互联网公司 投身于这两个变化之中,并希望能够从中获益。个性化推荐系统,可以说是这两个变化趋 势的有效结合点之一一。一一方面,个性化的体验能够进一一步引导用户分享更多的真实兴趣和 信息,另一一方面,云端的存储和计算能力也为用户随时随地享受这一一个性化的服务提供了 基础。在意识到个性化推荐系统的重要性之后,摆在互联网的从业者面前的第一一个问题就 是,如何评价个性化推荐系统的优劣,采用个性化推荐系统之后,究竟给我的产品带来了 怎样的效果?
事实上,在个性化推荐系统的实践中,测评体系的建立可以说是最核心的问题之一一。尤其 是在产品创立之初或者打算引入个性化推荐功能的开始,如何挑选合适的测评指标,客观 的评价个性化推荐系统对产品的帮助、对用户的价值,是摆在每个希望从个性化推荐系统 中获益的互联网从业者们面前最实际的问题。我们在公开和半公开的资料中,看到了太多 的关于个性化推荐系统的各种评价。比如亚马逊给出的数字是个性化推荐功能和“买了这 本书的也买了”模块为整体销售带来30%的流量;雅虎新闻在利用增强学习 (Reenforcement Learning)算法作为首页个性化推荐核心技术后,用户停留时间增长超过 25%;facebook用回归的方法挑选不同的机器学习模型给用户的feed流做推荐,能够给 整体收入带来10%以上的提升。与此同时,也有不一一样的声音,比如从2006年开始历时3 年多的netflix推荐技术大奖赛,全球范围内有数万个性化推荐技术的研究者和工程师参 加,获胜团队的算法将netflix原有推荐算法的离线测评指标RMSE提升了10%,并分享了 百万美元的奖金。很多主流媒体报道了此事,这可以说是迄今为止对个性化推荐领域影响 最为深远的一一次竞赛。但最终,netflix的工程师并没有照搬获胜的算法,只是利用它做了 些局部改进。获胜的算法虽然在离线指标上大大由于远算法,但在线测评时,却面临着一一 系列模型训练、参数调节和工程技术问题,效果未必有那么好,用户价值也很难体现。面 对如此众说纷纭的局面,我们到底应该如何为个性化推荐系统挑选合适的测评指标和体 系?
很多时候,我们除了要考察模型针对静态数据集的预测能力,还要看它针对不同数据集、 在不同的参数下的动态表现,以求得更广的适应范围。因此,越来越多的研究者开始用衡 量模型的动态能力的ROC(Receiver Operating Characteristic)曲线来检验推荐算法的效 果。在利用模型预测时,常用混淆矩阵(Confusion Matrix)表示预测结果的分布:
其次,从产品来看,忽视了推荐算法的核心是为用户带来长久价值,推荐算法的改进,仅 仅变成了优化短期指标的过程。我们强调个性化推荐算法是帮助用户发现未知的感兴趣的 东西,并不是泛泛而谈。很多时候,我们看到一一些预测能力很“好”的模型,实际上线后用 户往往并不买账,常见的反馈是,“推荐的东西早看过了”,“很准,但没什么用”,“翻来覆 去就是这几个兴趣点,没什么新意”等等。对于喜欢读书的用户,如果他读过《天龙八 部》就推荐《笑傲江湖》;对于喜欢看电影的用户,如果他看过《指环王I》就推荐《指 环王II》,从统计上讲这对提高RMSE和F-Score很有帮助;但从帮助用户发现的角度来 说,用户价值微乎其微。基于统计的机器学习算法往往倾向于给出比较平庸的推荐,囿于 用户原有的兴趣范围,说它不敢越雷池一一步有些夸张,但对于用户兴趣的引导和探索,经 常是落后的。这样的算法,在离线测评时表现好,上线后可能有一一个短暂的高峰,但由于 缺乏给用户带来长久价值的能力,用户最终会对它失去兴趣。
另一一方面也没有对条目进行评分预测的需求。因此,评分预测在这种场合下不适用,一一般
是依据训练集的数据给每个用户k个推荐条目,根据这些条目与测试集中相关用户的收藏
重合的情况来评价算法的优劣。如果用R来表示推荐的条目,那么top-k推荐问题的准确率
(Precision)、召回率(Recall)和F-score可以定义为:
RMSE主要用来评价评分预测问题的推荐算法优劣。给定用户针对条目的评分集合,将其 划分为训练集和测试集,并确保每个用户在训练集和测试集中都有数据。推荐算法利用训
练集建立模型,预测不同用户在测试集上的评分,并将预测评分与真是评分之间的均方误
差作为评价算法推荐质量的指标,其定义如下:
∑ ( wk.baidu.com RMSE =
基于以上的考虑,我们提出了一一个以产品为导向的个性化推荐系统测评体系的优化框架, 把算法的测评指标与产品的关键指标综合起来进行优化,系统性的解决问题。
图3. 个性化推荐系统测评体系框架 首先,我们要解决过于倚重离线指标来评价算法优劣的问题。一一方面,我们需要把各种离 线指标实时化,通过定时的在线计算来观察和评价算法的推荐质量,并做出相应的调整; 另一一方面,对于个性化推荐算法的改进,需要建立合理的灰度上线或者A/B测试体系。一一 项改进或新的算法是否能上线,首先需要在离线环境下有达到合格水准的表现,然后在线 上环境下通过小流量测试来检验稳定性和初步的效果,通过测试后再决定适用的范围和进
∑∑ Precision =
u Ru ∩ Tu u Ru
∑∑ Recall =
u Ru ∩ Tu u Tu
F
−
Score
=
2
⋅
Precision ⋅ Recall Precision + Recall
准确率表示给出的k个推荐中多少是对的,召回率则表示这k个推荐对测试集中相应用户的 条目覆盖了多少。准确率和召回率各表征了模型的预测和覆盖能力,而F-Score则是对这 两者的综合,在两方面表现均衡的模型比较容易获得好的F-Score。如果对准确率或者召 回率有特殊的要求,可以在相应的指标前加不同的参数,达到合适的效果。
图1. 混淆矩阵
依据预测值与真实值的不同,可以有四种结果:真阳性(True Positive)、假阳性 (False Positive)、假阴性(False Negative)、真阴性(True Negative)。其中真阳
性率(TPR)和假阳性率(FPR)会是我们关心的指标, ROC曲线则是将模型在不同参
以产品为导向的测评体系
个性化推荐系统的核心是帮助用户发现他可能感兴趣的东西,它是用户探索未知领域的得 力助手。从效果上来看,个性化推荐系统应该能够有效的改善用户体验,显著的提高产品 的关键指标。遗憾的是,前文讨论的几个常用指标,不但在帮助用户发现未知这一一点上, 而且在如何把推荐质量与关键产品指标关联上面,都有所欠缺。事实上,在实际应用中我 们经常会发现这样的情况,离线环境下预测很准的推荐算法,上线后表现却不理想;或者 在我们期待个性化推荐能够作为产品的亮点出现的时候,用户对此却反响平平。究其根 本,往往是在个性化推荐算法应用到具体的产品环境的过程中,忽略了建立测评体系的几 个关键环节。
常用测评指标
从应用的不同场合看,我们大致可以把个性化推荐系统的测评指标分为通用指标和具体的 产品指标两大类。通用指标定义明确,应用广泛,在学术研究和限定时间范围的竞赛中较 多使用。而具体的产品指标一一般和个性化推荐系统的应用环境相关,比如上文提到的销售 收入、点击率,停留时间等等。从性质来看,一一般通用指标比较适合大规模离线计算,比 较适合针对特定数据集的研究和算法优化;而生产环境中的商用推荐系统在综合考量离线 和在线测评指标上表现的同时,更看重算法实际上线后的效果。目前在个性化推荐领域, 针对两种不同类型的推荐问题,使用较为广泛的两种通用型离线指标分别是的均方误差 (RMSE, Root Mean Square Error)和F-Score。
一一步改进的方向。如果同时有几个并列的改进或尝试是针对同一一用户群或同一一算法功能, 那么要进行尽量严格的A/B测试。保证环境变量基本一一致的前提下将测试用户随机分为几 份,通过不同算法在测试用户上的比较来确定改进方向。相对而言,从以离线测评为重到 以在线测评为重的改进涉及到算法领域的工作并不多,但除了优化目标的改变,这还是一一 个工作流程和工作方式的改进,能够让算法工程师更深入的接触产品,融入到实际的生产 环境中。
新颖度 用来衡量给用户推荐集合的新鲜程度。新颖本身就是一一个较为模糊的概念,不同 的人群、不同的环境,对什么是新什么是旧的看法也有所不同,因此在新颖度的定义上就 存在各种不同的方法。一一种方法纯粹以条目进入系统的时间来定义新颖度,集合的新颖度 则是各条目新颖度的均值,这种方法的好处是直观、无歧义。另一一种方法是用条目热度的 倒数来定义新颖度,热度越高,新颖度越低,这种方法的好处是与人们的认识较为一一致, 有助于发现冷门但感兴趣的东西。还有一一种方法是针对不同的用户来定义新颖度,离用户 的兴趣越远,则新颖度越高。