《推荐系统开发实战》之效果评估

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://thinkgamer.blog.csdn.net/article/details/96207006

转载请注明出处:http://blog.csdn.net/gamer_gyt
博主微博:http://weibo.com/234654758
Github:https://github.com/thinkgamer
公众号:搜索与推荐Wiki
个人网站:http://thinkgamer.github.io


推荐系统的评估方法分为用户调研、在线评估和离线评估。

用户调研

推荐系统的离线实验指标和实际商业指标之间存在差异。例如,预测准确率和用户满意度之间就存在很大的差异,高预测准确率不等于高用户满意度。因此,要准确评估一个算法,需要相对真实的环境,最好的方法就是将算法直接上线测试。但如果对算法是否会降低用户满意度不太有把握,那么直接上线往往有较大的风险,所以在上线测试前一般需要做一次用户调研。
在进行用户调研的过程中,需要保证测试用户的分布和真实用户分布相同。例如,男女各一半,年龄、活跃度的分布都和真实用户分布尽量相同。此外,用户调查要尽量保证是双盲实验,即不要让实验人员和用户事先知道测试的目标,以免用户的回答和实验人员的测试受主观成分的影响。

用户调研的优缺点也很明显。

  • 优点:可以获得很多体现用户主观感受的指标,比在线实验风险低,出现错误后很容易弥补。
  • 缺点:招募测试用户代价较大;很难组织大规模的测试用户,因此测试结果的统计意义不足。

此外,在很多时候设计双盲实验非常困难,而且用户在测试环境下的行为和真实环境下的行为可能有所不同,因而,在测试环境下收集到的测试指标可能与真实环境下的不太相同。所以,在实际推荐系统评估过程中,基本不会采用该方式进行评估,相反,会通过线上的一些行为统计得出结果。例如,豆瓣FM频道的点赞和删除,界面如图10-1所示。

在线评估

在线评估:设计一个在线实验,然后根据用户的在线反馈结果来衡量推荐系统的表现。在线评估中,比较重要的两个选择点是——在线实验方式和在线评估指标,10.3和10.4节将分别介绍这两个知识点。

ABTest介绍

ABTest就是为了实现同一个目标制定两个方案,让一部分用户使用A方案,另一部分用户使用B方案,记录下两部分用户的反馈情况,然后根据相应的评估指标确认哪种方案更好。

互联网行业里,在软件快速上线的过程中,ABTest是一个帮助我们快速试错的实验方法。在统计学上,ABTest其实是假设检验的一种形式。它能帮助开发者了解推荐系统的改动是否有效、能够带来多大的KPI提升。

在推荐系统中,为了对比不同算法、不同数据集对最终结果的影响,通过一定的规则将用户随机分成几组,并对不同组采取不同的召回或推荐算法,最终通过不同组用户的各种评估指标来进行对比分析。

一个典型得到ABTest架构图如下所示:

这里需要注意的是,在对用户进行分桶并召回商品之后,需要重新将用户打散并分桶,这样能确保不同桶之间的用户没有相关性,召回池中的ABTest和排序部分的ABTest没有关联,互不影响。

ABTest注意事项

ABTest是一种在线上测试算法好坏的方法,由于其简单、直接、便于实施,被广泛应用在公司中。但在使用过程中仍要注意以下几个问题。
(1)证实偏差。
证实偏差是指:遇到一个命题时,人们倾向于寻找支持这个命题的证据,而忽略否定这个命题的证据。
在ABTest中,算法工程师在调优的过程中,会自然地将测试假设和设计建立在他们自己的态度和观点上,而忽略了一些互相矛盾的信息,不去测试和设计与自己意见不一致的想法。这就会导致:一旦推荐系统出现符合预期的结果,他们会认为此前的想法是对的,也就不再进行实验了。这样就会导致很大的误差,不同的业务场景会受到营销和外界其他活动的影响。因此,在进行ABTest时要注意外界因素对系统的影响,应适当拉长测试周期。
(2)幸存偏差。
幸存偏差是一种认知偏差,其逻辑谬误为:推荐系统倾向于关注经常来访用户,而忽略他们在访问推荐系统的过程中已经被影响。
例如“乔布斯勇于挑战体制取得了成功,所以大家都应该都去尝试挑战体制”,在这句话中没有提到那些挑战体制失败的人,仅以一名成功者为例说明,没有说明失败者的下场。
在推荐系统中也一样,不能只关注来访者的行为特征和偏好,更要注意那些没有来访的用户的行为特征和偏好,这样才能保证推荐系统的泛化能力。
(3)辛普森悖论。
开始进行ABTest后,就不要更改设置、变量或对照的设计,并且不要在实验过程中更改已经分配到变量的流量。
在测试期间调整变量的流量分配,可能会影响测试结果。当两组数据合并时,不同数据组中的趋势消失,便会产生“辛普森悖论”现象。
(4)均值回归。
在进行ABTest几天后,如果发现KPI指标有大幅提升,请不要立即下结论。因为这种早期的显著提升往往会在接下来的几天或几周的测试中逐渐消失,此时看到的不过是均值回归。也就是说,如果某一指标在第一次评估时出现极端结果,在后续的观察中,该指标会逐渐趋向于平均值。小样本尤其容易生产极端结果,因此不要在刚开始生成数据时就将所得到的结果解读成转化率,要适当增加测试时间,至少保证一个时间周期(如一周)。

在线评估指标

在线评估指标是指在实际的业务场景中去评估推荐系统好坏的指标。常见的在线评估指标包括点击率、转化率、GMV等。

这里不展开介绍,欢迎阅读《推荐系统开发实战》

离线评估

离线评估:根据待评估推荐系统在实验数据集上的表现,基于一些离线评估指标来衡量推荐系统的效果。相比于在线评估,离线评估更方便、更经济,一旦数据集选定,只需将待评估的推荐系统在此数据集上运行即可。离线评估最主要的环节有两个:拆分数据集、选择离线评估指标。

数据集拆分

在机器学习中,通常将数据集拆分为训练数据集、验证数据集和测试数据集。它们的功能分别如下。

  • 训练数据集(Train Dataset):用来构建机器学习模型。
  • 验证数据集(Validation Dataset):辅助构建模型,用于在构建过程中评估模型,为模型提供无偏估计,进而调整模型的超参数。
  • 测试数据集(Test Dataset):评估训练完成的最终模型的性能。
    三类数据集在模型训练和评估过程中的使用顺序如图所示。
    在这里插入图片描述

数据集拆分的方式有:

  • 留出法
  • K-折交叉验证法
  • 自助法

具体每种方法是什么意思,以及他们的实现,这里不展开介绍,欢迎阅读《推荐系统开发实战》

离线评估指标

离线评估指标用于预估模型上线前在整个推荐系统中能达到的效果。常见的离线评估指标可以分为两大类:

  • 准确度指标:评估推荐系统的最基本的指标,衡量的是指标推荐算法在多大程度上能够准确预测用户对推荐商品的偏好程度,可以分为分类准确度指标、预测评分准确度指标、预测评分指标关联。
  • 非准确度指标:在推荐系统达到一定的准确度之后,衡量推荐系统丰富度和多样性等的指标。

其中预测分类准确度指标包含:

  • AUC
  • 准确率(Accuracy)
  • 精确率(Precision)
  • 召回率(Recall)
  • F-measure值。

预测评分准确度指标包含:

  • 平均绝对误差(MAE)
  • 均方误差(MSE)
  • 均方根误差(RMSE)

预测评分关联指标包含:

  • 皮尔逊积距相关系统
  • 斯皮尔曼等级相关系数
  • 肯德尔等级相关系数

预测排序准确度指标包含:

  • 评价排序分

非准确度的指标包含:

  • 多样性
  • 新颖性
  • 惊喜度
  • 覆盖率
  • 信任度
  • 实时性
  • 健壮性
  • 商业目标

具体指标的含义这里不过多介绍,欢迎阅读《推荐系统开发实战》了解具体含义和实现以及应用场景。


打开微信扫一扫,关注微信公众号【搜索与推荐Wiki】

注:《推荐系统开发实战》是小编近期要上的一本图书,预计本月(7月末)可在京东,当当上线,感兴趣的朋友可以进行关注!

展开阅读全文

协同过滤推荐系统算法评估的问题

12-19

大家好,最近在写一篇论文,做的方向是关于改进基于项目的协同过滤算法,改进的内容是物品之间相似度算法,我只是提出一些小小的修改,然后利用MAE或者精度、召回率之类的评估方法进行评估,通过对比之前的相似度算法的精度、召回率或者是MAE说明改进的算法有效就行,这也是提出算法改进的一般步骤。但是我最近遇到了一些问题,想请教你:rn 问题:我利用我提出的改进的相似度算法算出了物品(这里用的数据是MovieLens的电影评论数据集)之间的相似度得到了一个对称的矩阵。但是对什么进行预测?这里有两个小问题:rn(1)是对用户U没有评分过的电影M进行预测评分吗?如果是这样,怎么评估我提出的改进的相似度算法的优劣?训练样本和测试样本又拿来干嘛的?这里对我而言很混乱,主要是我预测出来以后怎么进行评估?训练样本和测试样本怎么使用?rn(2)如果是对用户U已经评分过的电影M进行预测评分,然后计算预测评分和真实评分之间的误差,得到评估效果。那么,我们其实没有对用户进行推荐,而且,这样做的话根本不需要测试样本,因为训练样本也可以得到我提出的相似度算法的MAE。所以比较纠结[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/25.gif][/img]rnrn请各位高手回答啊 论坛

电商推荐系统_ALS模型评估和参数选取(下)

05-15

<span style="color:#404040;">如今大数据已经成了各大互联网公司工作的重点方向,而推荐系统可以说就是大数据最好的落地应用之一,已经为企业带来了可观的用户流量和销售额。特别是对于电商,好的推荐系统可以大大提升电商企业的销售业绩。国内外的知名电商,如亚马逊、淘宝、京东等公司,都在推荐系统领域投入了大量研发力量,也在大量招收相关的专业人才。</span><br /><br /><span style="color:#404040;">打造的电商推荐系统项目,就是以经过修改的中文亚马逊电商数据集作为依托,并以某电商网站真实的业务架构作为基础来实现的,其中包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。具体实现的模块主要有:基于统计的离线推荐、基于隐语义模型的离线推荐、基于自定义模型的实时推荐,以及基于内容的、和基于Item-CF的离线相似推荐。</span><br /><br /><span style="color:#404040;">整个项目具有很强的实操性和综合性,对已有的大数据和机器学习相关知识是一个系统性的梳理和整合,通过学习,同学们可以深入了解推荐系统在电商企业中的实际应用,可以为有志于增加大数据项目经验的开发人员、特别是对电商业务领域感兴趣的求职人员,提供更好的学习平台。</span><br /><br /><span style="color:#404040;">适合人群:</span><br /><span style="color:#404040;">1.有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员</span><br /><span style="color:#404040;">2.有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员</span><br /><span style="color:#404040;">3.有电商领域开发经验,希望拓展电商业务场景、丰富经验的开发人员</span><br /><span style="color:#404040;">4.有较好的数学基础,希望学br习机器学习和推荐系统相关算法的求职人员</span>

电影推荐系统_ALS模型评估和参数选取(下)

06-21

n 一、机器学习与推荐系统课程简介<span></span>nn<p>n 伴随着大数据时代的到来,作为发掘数据规律的重要手段,机器学习已经受到了越来越多的关注。而作为机器学习算法在大数据上的典型应用,推荐系统已成为各行业互联网公司营销体系中不可或缺的一部分,而且已经带来了真实可见的收益。<span></span>n</p>n<p>n 目前,推荐系统和机器学习已经成为各大公司的发力重点,众多知名公司(如亚马逊、<span>netflix</span>、<span>facebook</span>、阿里巴巴、京东、腾讯、新浪、头条等)都在着眼于将蕴含在庞大数据中的宝藏发掘出来,懂机器学习算法的大数据工程师也成为了新时代最紧缺的人才。<span></span>n</p>n<p>n 尚硅谷精心打造出了机器学习与推荐系统课程,将机器学习理论与推荐系统项目实战并重,对机器学习和推荐系统基础知识做了系统的梳理和阐述,并通过电影推荐网站的具体项目进行了实战演练。为有志于增加大数据项目经验、扩展机器学习发展方向的工程师提供最好的学习平台。<span></span>n</p>nn 二、课程内容和目标<span></span>nn<p>n 本课程主要分为两部分,机器学习和推荐系统基础,与电影推荐系统项目实战。<span></span>n</p>n<p>n 第一部分主要是机器学习和推荐系统基础理论的讲解,涉及到各种重要概念和基础算法,并对一些算法用<span>python</span>做了实现;<span></span>n</p>n<p>n 第二部分以电影网站作为业务应用场景,介绍推荐系统的开发实战。其中包括了如统计推荐、基于<span>LFM</span>的离线推荐、基于模型的实时推荐、基于内容的推荐等多个模块的代码实现,并与各种工具进行整合互接,构成完整的项目应用。<span></span>n</p>n<p>n 通过理论和实际的紧密结合,可以使学员对推荐系统这一大数据应用有充分的认识和理解,在项目实战中对大数据的相关工具和知识做系统的回顾,并且可以掌握基本算法,入门机器学习这一前沿领域,为未来发展提供更多的选择,打开通向算法工程师的大门。<span></span>n</p>

如何评估分类模型的效果

04-10

<p>n </p><p>n 数据科学是一门内涵很广的学科,它涉及到统计分析、机器学习以及计算机科学三方面的知识和技能。本课程将深入浅出、全面系统地介绍了这门学科的内容。通过这门课程,同学可以了解并熟悉如下的开源工具:scikit-learn、statsmodels、TensorFlow、Pyspark等。n </p>n <p>n 本课程分为4个部分,18个章节。n </p>n <p>n ·            n第一部分是最初的3章,主要介绍数据科学想要解决的问题、常用的IT工具Python以及这门学科所涉及的数学基础。n </p>n <p>n ·            n第二部分是第4-7章,主要讨论数据模型,主要包含三方面的内容:一是统计中最经典的线性回归和逻辑回归模型;二是计算机估算模型参数的随机梯度下降法,这是模型工程实现的基础;三是来自计量经济学的启示,主要涉及特征提取的方法以及模型的稳定性。n </p>n <p>n ·            n第三部分是接下来的8-15章,主要讨论算法模型,也就是机器学习领域比较经典的模型。这三章依次讨论了监督式学习、生成式模型以及非监督式学习。n </p>n <p>n ·            n第四部分将覆盖目前数据科学最前沿的两个领域分别是大数据和人工智能。具体来说,第11章将介绍大数据中很重要的分布式机器学习,而最后两章将讨论人工智能领域的神经网络和深度学习。n </p>n

电影推荐系统_ALS模型评估和参数选取(上)

06-21

n 一、机器学习与推荐系统课程简介<span></span>nn<p>n 伴随着大数据时代的到来,作为发掘数据规律的重要手段,机器学习已经受到了越来越多的关注。而作为机器学习算法在大数据上的典型应用,推荐系统已成为各行业互联网公司营销体系中不可或缺的一部分,而且已经带来了真实可见的收益。<span></span>n</p>n<p>n 目前,推荐系统和机器学习已经成为各大公司的发力重点,众多知名公司(如亚马逊、<span>netflix</span>、<span>facebook</span>、阿里巴巴、京东、腾讯、新浪、头条等)都在着眼于将蕴含在庞大数据中的宝藏发掘出来,懂机器学习算法的大数据工程师也成为了新时代最紧缺的人才。<span></span>n</p>n<p>n 尚硅谷精心打造出了机器学习与推荐系统课程,将机器学习理论与推荐系统项目实战并重,对机器学习和推荐系统基础知识做了系统的梳理和阐述,并通过电影推荐网站的具体项目进行了实战演练。为有志于增加大数据项目经验、扩展机器学习发展方向的工程师提供最好的学习平台。<span></span>n</p>nn 二、课程内容和目标<span></span>nn<p>n 本课程主要分为两部分,机器学习和推荐系统基础,与电影推荐系统项目实战。<span></span>n</p>n<p>n 第一部分主要是机器学习和推荐系统基础理论的讲解,涉及到各种重要概念和基础算法,并对一些算法用<span>python</span>做了实现;<span></span>n</p>n<p>n 第二部分以电影网站作为业务应用场景,介绍推荐系统的开发实战。其中包括了如统计推荐、基于<span>LFM</span>的离线推荐、基于模型的实时推荐、基于内容的推荐等多个模块的代码实现,并与各种工具进行整合互接,构成完整的项目应用。<span></span>n</p>n<p>n 通过理论和实际的紧密结合,可以使学员对推荐系统这一大数据应用有充分的认识和理解,在项目实战中对大数据的相关工具和知识做系统的回顾,并且可以掌握基本算法,入门机器学习这一前沿领域,为未来发展提供更多的选择,打开通向算法工程师的大门。<span></span>n</p>

15_电商推荐系统_ALS模型评估和参数选取(下)

05-18

<p>rn 本教程为官方授权出品rn</p>rn<p>rn <br />rn</p>rn<p>rn <span style="color:#404040;">如今大数据已经成了各大互联网公司工作的重点方向,而推荐系统可以说就是大数据最好的落地应用之一,已经为企业带来了可观的用户流量和销售额。特别是对于电商,好的推荐系统可以大大提升电商企业的销售业绩。国内外的知名电商,如亚马逊、淘宝、京东等公司,都在推荐系统领域投入了大量研发力量,也在大量招收相关的专业人才。</span><br />rn<br />rn<span style="color:#404040;">量身定制打造的电商推荐系统项目,就是以经过修改的中文亚马逊电商数据集作为依托,并以某电商网站真实的业务架构作为基础来实现的,其中包含了离线推荐与实时推荐体系,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。具体实现的模块主要有:基于统计的离线推荐、基于隐语义模型的离线推荐、基于自定义模型的实时推荐,以及基于内容的、和基于Item-CF的离线相似推荐。</span><br />rn<br />rn<span style="color:#404040;">整个项目具有很强的实操性和综合性,对已有的大数据和机器学习相关知识是一个系统性的梳理和整合,通过学习,同学们可以深入了解推荐系统在电商企业中的实际应用,可以为有志于增加大数据项目经验的开发人员、特别是对电商业务领域感兴趣的求职人员,提供更好的学习平台。</span><br />rn<br />rn<span style="color:#404040;">适合人群:</span><br />rn<span style="color:#404040;">1.有一定的 Java、Scala 基础,希望了解大数据应用方向的编程人员</span><br />rn<span style="color:#404040;">2.有 Java、Scala 开发经验,了解大数据相关知识,希望增加项目经验的开发人员</span><br />rn<span style="color:#404040;">3.有电商领域开发经验,希望拓展电商业务场景、丰富经验的开发人员</span><br />rn<span style="color:#404040;">4.有较好的数学基础,希望学br习机器学习和推荐系统相关算法的求职人员</span> rn</p>

没有更多推荐了,返回首页