推荐系统相关效果评测指标总结

2018-12-25 16:53:09 浏览数 (1)

一、背景

在互联网信息量爆炸式增长的今天,我们已然从信息匮乏时代走入信息过载的时代。在这样的时代背景下,用户在精准内容消费方面的需求也随之提高,由此浏览器作为移动流量的巨大入口,其角色也自然发生了变化——《艾媒:2017年上半年中国手机浏览器市场研究报告》中提到“目前中国手机浏览器已发展至内容聚合及服务平台阶段,成为移动互联网超级入口及内容聚合平台的手机浏览器产品能满足用户多样化功能需求和提供丰富多样的内容服务。”移动端浏览器的业务重心已经逐渐转向内容消费。而发展个性化推荐(无论内容来源为全局热点或者是个性兴趣点)是提升内容消费用户体验和业务指标的重要手段和路径,所以作为从业者的我们更需要关注如何提升内容精准推送的方案及其相关的评价指标。

面对浩如烟海的信息和固定内容来源的情况,如何更加精准地将用户感兴趣的信息推荐到用户,提高用户粘度,做到“千人千面”的推荐,这就需要提高资讯推荐系统的相关性能和效果。但是与传统评测相异的是,推荐系统具有没有传统意义上的输入与输出,模型、算法等中间过程难以介入,一切的效果与性能目的都需要落地到提升用户体验等特点,这给评测带来了较大难度。

二、相关评测方案

        推荐系统一般结构:

目前常见对推荐系统的评测主要着眼于三个方面:模型离线实验、ABtest在线实验以及用户反馈和用户调研。

1、模型离线实验

通常来说,推荐系统中包含多种算法,较为常见的有推荐算法、用户兴趣点算法、文章索引排序算法、精粗排算法等。以推荐算法为例,通常是某类推荐模型的实现,其不仅负责获取相关输入数据,例如用户侧画像信息、社交属性、浏览历史、浏览意图及资讯侧文章tag、分类等,同时也会预测给定的用户组会对某种具有特定属性的信息感兴趣并进行召回和排序,再展示给特定的用户。主要有协同过滤算法(基于近邻、基于图的随机游走、LFM)、基于内容推荐算法、谱分析、基于关联规则推荐算法、基于知识推荐算法以及混合推荐算法等。

根据推荐任务要求的不同,采用的推荐算法也会有所差异,其利用的用户信息也存在不同,如利用用户行为、社交信息、用户UGC标签等。面对如此多样并快速迭代的推荐算法,如何有效客观地评价推荐算法的优劣却是颇具挑战的问题。业界对于评价推荐算法的主要方法是利用用户数据集对算法进行离线实验,也即在给定用户数据集后,评测人员会将数据集按照一定的方式分成训练集和测试集,然后根据训练集建立资讯推荐模型来预测测试集中的用户行为。在这其中用户的数据集可以包含多种用户行为,例如用户CTR信息、点击信息、时长信息等。

模型离线实验是推荐系统中的基石,它为算法迭代提供兜底依据,并且具有路径短,可以方便地完成闭环进行快速迭代、不会影响线上真实用户体验、效率高可快速验证大量算法的优势。但是因为其依赖于给定的用户数据集,不能反映整体用户对于迭代算法的真实感受,不能得出业务关心的指标,所以离线实验只能作为衡量算法效果的辅助指标。

2、ABtest在线实验

为了解决模型离线实验不能反映整体用户对于迭代算法的真实感受,不能得出业务关心的指标的缺陷,引入ABtest在线实验系统。

ABtest测试是以正交分桶为基础,以依据分桶结果执行不同算法得出差异化指标为基本原理,以获取较优解为目的一种测试方案。同时ABtest也可以针对不同特性的用户采用特性化推荐策略来进行个性化推荐。值得注意的是ABtest并不一定只能对两种算法进行试验,只要在各桶间正交的情况下可以进行多层多类的ABtest测试,与此同时也可以将其作为验证想法和功能的工具。其主要过程是通过预先分好的桶将用户分组,在不同组内采用不同算法,收集线上真实用户数据对算法进行评测,以区分算法的优劣。

3、用户反馈和用户调研

在参考文献【2】中,用户反馈和用户调研处于评测的第二阶段。但在笔者看来,这是一个口碑决定成败的时代,用户的口碑及体验才是决定产品成功与否的关键,所以用户体验是衡量推荐系统最终极的指标,所以将其放到最后进行描述。

通常来看,用户反馈较多的用在对整体系统的修正和改进,而用户调研较多地用在对推荐系统组件的评测。例如在NLP关键词抽取中我们就需要用户对不同模型提取的tag词进行评测,从而得出对比算法的优劣。归功于众测成熟和反馈渠道的打通,用户反馈和用户调研的门槛进一步降低。但在梳理用户评测结果时,通常会发现噪声,影响整体评测结果。选取合适指标对用户调研结果进行整理也就显得十分必要。

三、评测方案指标总结

对于不同的推荐系统评测方式,我们需要使用不同的指标对其进行衡量:

1、模型离线实验

离线实验目的旨在对算法进行评价,所以评价指标强相关与所使用的推荐算法,传统的评分预测问题通常使用均方根误差(RMSE)或者平均绝对误差 (MAE)等评测指标,但在实际应用中Top-N推荐更为常见,这种场景下NDCG(Normalized Discounted Cumulative Gain)或MAP(Mean Average Precision)是普遍使用的衡量方法。有些推荐系统也会像推荐广告系统或是学习排序算法一样使用pCTR或者Precision-Recall曲线评估推荐效果的优劣,所以评测推荐算法的指标较为复杂。

但是普适性指标如准确度、覆盖率、多样性及新颖性对于大多数推荐算法而言都是较为常见的评价指标,对此国内有综述性论文,详情可见参考文献【3】,在这里只对其中的部分指标进行介绍。

准确性指标:

推荐的准确度是评价推荐算法最基本的指标,在推荐系统中常用的准确度指标分为4类:预测评分准确率、预测评分关联性、分类准确率以及排序准确率。在预测评分准确率中最为经典的平均绝对误差(MAE),其可以被定义为:

其中r为用户u对文章a的真实评分,r'则是预测评分,E为测试集。但是由于该指标会受到难以评价的文章(分数波动大文章)影响,所以容易受到挑战。于此同时,准确度评测标准还有平均平方误差(MSE)、均方根误差(RMSE)以及标准平均绝对误差(NMAE),其分别被定义为:

其中Rmax和Rmin为用户评分区间最大最小值。因为MSE及RMSE对绝对误差作了平方,所以这两个指标对较大的绝对误差惩罚更重,结果相对准确。

覆盖率指标:

覆盖率指标是指算法向用户推荐的文章占能符合露出条件文章的比例,也就是能否将所有文章推送到适合的用户,而不是对于所有用户只推荐全局热点文章,增大推荐范围的局限性。其可以被分为预测覆盖率、推荐覆盖率及准确覆盖率。在资讯推荐中最为关键的是预测覆盖率,其表示系统可以预测评分的文章占所有符合露出条件文章的比例,定义为:

其中,Nd表示系统推荐露出文章数目,而N代表所有符合露出条件的文章数目。

多样性和新颖性:

对于推荐系统而言,常见的问题是用户如果大量长时间的点击同一个主题或者是分类,其后推荐的资讯会呈现漏斗状,限制了用户的阅读。这时候就需要推荐系统进行猎奇的多样、新颖推荐以弥补这些缺陷。同一用户被推荐文章的多样性可以通过下式衡量:

其中s(a,b)为资讯的相似度,显然,该值越小则系统对同一用户推荐资讯文章的多样性就越高。

同时,可以使用推荐资讯的平均汉明距离衡量推荐的新颖性,平均汉明距离越小那么对于用户来说资讯的新颖性就越高。

除此之外,在参考文献【2】中还提到惊喜度、信任度、实时性和鲁棒性这些指标可以作为对推荐系统的评测指标,但是目前的研究还缺乏有效的标准对这些进行度量,大多还采用MOS评分的方式进行评测。

2、ABtest在线实验

ABtest在线试验目的为根据线上真实用户指标数据对不同的算法进行评测,那么ABtest系统的评测指标就是线上真实用户数据指标,例如DAU、CTR、PV、UV、阅读时长、评论量、负反馈率、负面评论率,这里就不再赘述。      

3、用户调研

用户真实感受调研是了解用户需求和用户对线上推荐系统满意度最真实的指标。归功于用户反馈渠道和众测的不断发展,我们和用户的距离变得更近。但是在用户调研的过程中,不可避免地会存在一定的噪声,那么如何最大程度地剔除这些干扰信息还原真实用户意图,这时我们就需要在指标算法上进行一定的调整。

NLP tag词提取目的旨在提取文章的tag以匹配用户兴趣特征,以对文章tag词提取能力用户调研为例说明如何选取评测指标最大程度上消除用户噪声。我们抓取了竞品pv头部文章经过自有模型生成关键词,将竞品tag和自有tag进行混合进行众测用户调研。同时为了避免固有印象影响用户调研结果,我们抛弃向用户提供文章url的方式而是采用抓取到的文章内容构造展示进行双盲实验。而在结果分析中,我们借鉴LTR(learning to rank)中查准率、查全率、MAP及NDCG等指标并加以特性化修改,例如在NDCG中去除原有位置折损进行调研,在最大程度保持用户真实反映的基础上去除了用户噪声,更加真实的反映用户反馈。

在NLP tag词提取调研中,准确率的定义为假设给定一篇文章q,在与该文章相关的给定样本数据中有nq个tag与文章q存在某种程度上的相关性。进一步假设在系统根据文章q向用户输出的tag词结果中,有n个tag词与文章q存在某种程度上的相关性(用户选择次数占全部选择次数的比例rel,也可以定义为该tag词的权重),所以可以将准确率定义为:

同时召回率定义为式:

准确率表述了训练完成的提取系统对于一篇文章返回正确tag的比例,而召回率则表述了某个提取系统对于文章输出正确tag占全部用户选择次数较高tag的比例。以上两种评测标准是目前最基本的评测标准,多数进一步的评测标准都是在这两个基础评测标准上演化变形成的。

而由于准确率及召回率作为评测标准存在对系统打分函数质量检测不够全面的情况,需要同时观察两种评测标准的结果。所以在此基础上,我们继续借鉴LTR中最为出名的评测标准——平均查准率以及平均查准率均值对结果进行评测。其特性化后的定义为假设存在一个文章q(i),给出平均查准率的计算方法,如下所示:

在上式中j代表在调研中给定的tag词的序号,n则是调研用户给定的所有结果,N(q)代表q对应的所有用户选择次数达到阈值的数目,rel(j)是用来代表系统给出的第j个tag是否为该算法输出的0-1函数。

而平均查准率均值则是平均查准率的均值形式:

从公式中不难看出平均查准率是对单一文章的提取质量评估,而平均查准率均值则是对tag提取算法对于给定所有文章的平均提取质量。

NDCG(Normalized Discounted Cumulative Gain)是目前对学习排序算法进行评测的最主要的评测方法,我们也借用其进行tag提取算法对用户选择头部tag敏感程度的评测。NDCG可以直译为归一化折损累积增益,其主要思想是对用户选择的前r项tag进行收益打分,以Top-K tag质量判定整个提取算法的算法质量。

CG(Cumulative Gain,累计增益)

其中p为模型tag词序号,rel为该tag用户点击数目。在学习排序算法的评测中需要按照排序顺序加入引入折算因子(discounting factor):

但是tag词提取算法不关心tag词的顺序,所以我们将折损因子全部置一。之后我们就可以计算归一化的折损累积增益,也就是使用DCG除以最理想抽取的DCG值,综合上述算法原理,则NDCG评测方法公式可以表示为下式:

四、提升推荐系统的方法

一个优秀的推荐系统是由一系列优秀的推荐组件构成,推荐系统的的优劣依赖于其中最差组件的优劣及整体组件配合的顺畅度。而其中还有一系列值得注意的关键点,例如充分利用用户反馈、混合推荐、对内容来源进行筛选、加入LBS相关因素、重视关系链推荐、加强推荐时效等。

从评测的角度提升推荐系统,我们不仅需要提供各组件相关评测指标、输出badcase之外,还应该关注竞品对比、真实用户行为以及badcase的快速追查以保证整体推荐系统的可用、高效、准确。

竞品对比是发现自有推荐系统与竞品差距的直观方法,从数据层文章来源、品类以及分类到NLP tag提取的tag的质量,都可以通过抓取竞品数据进行对比评测。评测过程中不仅可以评估系统效果,同时也可以反馈badcase、获取较好的训练数据集合,这样都会推动自有推荐系统不断发展;真实用户行为观测旨在弥补用户调研中可能存在的用户不了解自身真实兴趣或行为的情况,通过观察真实用户行为可以了解用户点击模型和浏览习惯,进一步增加推荐算法维度,提高推荐点击率;而又因为在大数据的评测中一般不存在传统意义上的bug取而代之的是孤立或簇集的badcase,而推荐系统链路较长对于badcase的追查过程较为繁琐,所以可以开发badcase追查系统,将推荐路径日志捞出方便进行追查。以上方法都是同事们在实践中验证并实施的改进方案,利用这些方案可以加速迭代,对推荐系统进行较为完整的评测。

五、总结

个性化推荐系统是一个系统工程,依赖数据、平台、算法、UI等环节的有机结合,才可以共同作用,推动推荐系统的发展。

在推荐系统中,数据是基石,框架是钢筋,算法则是水泥。没有数据推荐系统则无处谈起,没有平台推荐系统则无从建立,而没有算法推荐系统则无法牢固,而评测则是需要深入到这中间的每一个环节,才能更好地提升推荐系统效果,真正将用户感兴趣的信息精准地推送到用户手中,不断提升推荐系统效果和质量。

六、参考文献

【1】达观数据个性化推荐系统实践:http://blog.sciencenet.cn/blog-1225851-965812.html.

【2】项亮.推荐系统实践.人民邮电出版社,2012.

【3】朱郁筱,吕琳媛.推荐系统评价指标综述[J].电子科技大学学报,2012.

后期我们会根据每个维度陆续写相关的测试文章,如果你有兴趣,请关注我们哦。

0 人点赞