推荐系统能够为用户提供个性化体验,现在基本上各大电商平台、资讯平台都会用推荐系统为自家评价下的用户提供千人千面的服务。平均精度均值(Mean Average Precision,MAP)便是评估推荐系统性能的度量标准之一。

但是,使用其他诊断指标和可视化工具可以让模型评估更加深入,甚至还会带来一些其他启发。本文探讨了召回率、覆盖率、个性化和表内相似性,并使用这些指标来比较三个简单的推荐系统。

Movielens数据集

这篇文章中的例子使用的数据是Movielens 20m数据集。这些数据包含用户对电影的评分以及电影类型的标记。 (为了延长训练时间,该数据被下采样,评分仅包括给超过1000部电影打过分的用户的评分,以及3星及其以上的评分。)

用户电影评级的示例

模型

本文测试并比较了三种不同的推荐系统:

1.随机推荐(随机为每位用户推荐10部电影)

2.根据流行度推荐(向每位用户推荐最受欢迎的10部电影)

3.协同过滤器(使用SVD的矩阵分解方法)

接下来就让我们深入了解这些指标和诊断图,并比较这些模型!

长尾图

长尾图用于挖掘用户-项交互数据中的流行度模式,例如点击次数、评分或购买行为等。通常,只有一小部分项目具有大量的交互,我们称之为“头部”;而大多数项目都集中在“长尾”中,它们只占交互的一小部分。

长尾图 (Movielens 20m评级数据样本)

在训练数据中会对许多热门项目进行多方观察,因此,推荐系统想要准确预测这些项目并不难。在电影数据集中,最受欢迎的电影是大片和经典老片。这些电影已为大多数用户所熟知,推荐这些电影,对用户来说可能并非是个性化推荐,也可能无法帮助用户发现其他新的电影。相关推荐被定义为用户在测试数据时给予正面评价的项目的推荐。这里的指标用来评估推荐系统的相关性和实用性。

MAP和MAR

推荐系统会为测试集中的每个用户生成推荐的有序列表。平均精度均值(MAP)可以让开发者深入了解推荐项目列表的相关性,而召回率可以让开发者深入了解推荐系统的调试性能,如调试用户给予正向评价的所有项目。MAP和MAR的详细描述如下:

Mean Average Precision (MAP) For Recommender Systems​sdsawtelle.github.io

覆盖率

覆盖率是指模型能够在测试集上推荐的项目占训练数据的百分比。在此示例中,受欢迎度推荐的覆盖率仅为0.05%,它只推荐了10件物品。随机推荐器的覆盖率接近100%。出乎意料的是,协同过滤只能推荐其训练的项目的8.42%。

三个推荐系统的覆盖率比较:

个性化

个性化是评估模型是否向不同用户推荐相同项目的方法。用户的推荐列表之间存在差异(1-余弦相似性)。下边的例子能很好地说明如何计算个性化程度。

3个不同用户的推荐项目示例列表:

首先,每个用户的推荐项目会被表示为二进制指示符变量(1:向用户推荐该项目.0:不向用户推荐该项目)。

然后,跨所有用户的推荐向量计算余弦相似度矩阵。

最后,计算余弦矩阵的上三角的平均值。个性化是1-平均余弦相似度。

高个性化分数表示用户的推荐不同,这也意味着该模型为每一位用户提供个性化体验。

列表内相似性

列表内相似性是推荐列表中所有项目的平均余弦相似度。该计算使用推荐项目(例如电影类型)的特征来计算相似度。该计算方法可以通过以下示例说明。

针对3个不同用户的电影ID的推荐示例:

这些电影类型特征用于计算推荐给用户的所有项目之间的余弦相似度。该矩阵显示了向用户1推荐的所有电影的特征。

我们可以为每个用户计算表内相似性,并对测试集中的所有用户求平均值,从而得到对模型的表内相似性的估计。

如果推荐系统向每一个用户推荐非常相似的项目列表(如用户仅接收浪漫电影的推荐),那么列表内相似性将很高。

使用正确的训练数据

我们可以对训练数据进行如下操作,从而快速改进推荐系统:

1.从培训数据中删除热门项目 (这一点适用于用户可以自行找到这些项目,以及发现这些项目不具备实用性的情况)。

2.按照用户的值来放大项目评级,例如平均交易值。这样做有助于模型推荐能够带来忠诚度或高价值客户的项目。

结论

一个好的推荐系统能够生成兼具实用性和相关性的推荐结果。

使用多个评估指标来评估模型,能够更加全面地衡量一个推荐系统的性能。

原文链接:Evaluation Metrics for Recommender Systems

以上内容由第四范式先荐编译,仅供于学习交流,版权归原作者所有。


相关阅读:

如何解决推荐系统中的冷启动问题?

推荐系统:混合过滤

推荐系统:协同过滤及其利弊

推荐系统过滤技术:基于内容的过滤及其利弊

推荐系统的工作流程

用Python搭建推荐系统的最佳开源包

如何用Python搭建一个简单的推荐系统?

想要了解推荐系统?看这里!(2)——神经网络方法

想要了解推荐系统?看这里!(1)——协同过滤与奇异值分解

入门推荐系统,你不应该错过的知识清单

推荐系统相关术语知多少
如欲了解更多,欢迎搜索并关注先荐微信公众号(ID:dsfsxj)

本账号为第四范式智能推荐产品先荐的官方账号。账号立足于计算机领域,特别是人工智能相关的前沿研究,旨在把更多与人工智能相关的知识分享给公众,从专业的角度促进公众对人工智能的理解;同时也希望为人工智能相关人员提供一个讨论、交流、学习的开放平台,从而早日让每个人都享受到人工智能创造的价值。

先荐_智能推荐系统_个性化推荐专家​www.tuijianxitong.cn

movielens推荐系统_案例|推荐系统的评估指标相关推荐

  1. 评估指标_机器学习评估方法与评估指标总结

    离线评估方法 离线评估的基本原理是在离线环境中,将数据集划分为"训练集"和"测试集",用"训练集"训练模型,用"测试集" ...

  2. auuc 评估指标_分类之性能评估指标

    本文主要介绍几种常用的用于分类的性能评估指标,同时介绍如何绘制ROC曲线以及计算AUC值的便捷方法.最后再附上一个绘制ROC曲线和计算AUC的Python源码实现. Precision和Recall ...

  3. 评估指标_供应链改进常用评估指标

    供应链改善项目大部分是基于供应链SCOR模型开展,在SCOR模型中,涉及到分销.计划.采购.制造.配送.退货等功能环节.而供应链的改善核心内容是流程的优化.规则的确定,最终体现在两大目标:" ...

  4. java实现Fmeasure计算_聚类结果的评估指标及其JAVA实现

    一. 前言 又GET了一项技能.在做聚类算法的时候,由于要评估所提出的聚类算法的好坏,于是需要与一些已知的算法对比,或者用一些人工标注的标签来比较,于是用到了聚类结果的评估指标.我了解了以下几项. T ...

  5. 二分类最优阈值确定_分类问题的评估指标一览

    前言 最近分类问题搞的有点多,但对一些指标依旧有模糊的地方(虽然做了笔记), 事实证明, 笔记笔记,没有进到脑子里呀. 因此,我想着肯定有跟我一样半生半熟的小伙伴在分类指标这块依旧有迷惑,毕竟常用的几 ...

  6. movielens推荐_电影推荐系统movielens grouplens

    movielens推荐 As many of us can assume, the availability of movies is endless to the point that a pers ...

  7. 深度学习推荐系统_深度推荐系统

    深度学习推荐系统 The aim of this post is to describe how one can leverage a deep learning framework to creat ...

  8. 推荐算法炼丹笔记:推荐系统采样评估指标及线上线下一致性问题

    本文对于推荐系统中的采样评估指标进行了讨论,内容略多, 还有一些数学推导, 有兴趣的可以去阅读文末给出的原始论文链接, 此处直接列出核心观点: 在评估推荐算法的效果时,能不采样就不采样! 除了AUC, ...

  9. 推荐系统--评估方法和评估指标

    推荐系统–评估方法和评估指标 评估方法 目前推荐系统中常用的评估方法可以分为两大类: 离线评估方法 在线评估方法 离线评估方法 离线评估基本思想是,将数据集划分为训练集和测试集,利用训练集得到一个较优 ...

最新文章

  1. linux账号管理命令,linux账号管理及相关命令和操作
  2. Jazzy 文档生成器使用
  3. LBS推荐系统的设计方法
  4. Console-算法[]-数组求最大值和最小值(只能遍历一次)
  5. 关于SQL Server安装文件挂起错误解决办法
  6. iOS蓝牙原生封装,助力智能硬件开发
  7. JSP学习笔记1:JSP生命周期
  8. mybatis整合spring,使用org.mybatis.spring.mapper.MapperScannerConfigurer扫描出现问题
  9. Windows快速更改IP脚本
  10. python读conf配置文件完成登录_python读conf配置文件--ConfigParser
  11. windows10系统超全优化方法
  12. Java李连杰_李连杰年度巨作霍元甲主题曲:周杰伦唱
  13. 感受山猫之力 Ubuntu 10.04 LTS试用手记
  14. mysql爱吃鱼油_爱多美鱼油_鱼油_维生素_dha_epa_关节炎_高科技_鳕鱼_痛风_止血_改善记忆力_艾多美鱼油_医疗健康_保健品...
  15. n2n内网穿透及代理服务
  16. 报错解决Error parsing Mapper XML
  17. 关于人脸识别技术的调研报告
  18. S3c6410linux下DMA驱动
  19. 手机QQ2008源码
  20. 中国时隔两年再次全面降息 专家称或刺激楼市回暖

热门文章

  1. 页面置换算法——最佳置换算法、最近最少使用算法、先进先出算法、时钟置换算法
  2. java工程师的一生_百看不厌之一张图诠释程序员的一生
  3. java禁止修改map_Java中实现不可变Map
  4. python生成文件夹并向文件夹写文件_python - 文件练习生成100个MAC地址写入文件
  5. cfree运行程序错误的原因_Python入门教程 | 第 8 章 错误、调试和测试
  6. linux 中如何查看块设备,在linux中,如何确定使用块设备的进程?
  7. python如何查看有什么模块_在python中如何查看模块功能
  8. h5 bootstrap 小程序模板_软件测试人员必知H5/小程序测试点
  9. C++获取指向二维数组的首元素指针
  10. Django3 --- async