推荐系统可以为用户提供个性化体验,如今基本上各大电商平台、资讯平台都会用推荐系统为自家评价下的用户提供千人千面的服务。平均精度均值(Mean Average Precision,MAP)即是评估推荐系统性能的度量标准之一。html
可是,使用其余诊断指标和可视化工具可让模型评估更加深刻,甚至还会带来一些其余启发。本文探讨了召回率、覆盖率、个性化和表内类似性,并使用这些指标来比较三个简单的推荐系统。git
这篇文章中的例子使用的数据是Movielens 20m数据集。这些数据包含用户对电影的评分以及电影类型的标记。 (为了延长训练时间,该数据被下采样,评分仅包括给超过1000部电影打过度的用户的评分,以及3星及其以上的评分。)github
本文测试并比较了三种不一样的推荐系统:微信
1.随机推荐(随机为每位用户推荐10部电影)网络
2.根据流行度推荐(向每位用户推荐最受欢迎的10部电影)运维
3.协同过滤器(使用SVD的矩阵分解方法)工具
接下来就让咱们深刻了解这些指标和诊断图,并比较这些模型!post
长尾图用于挖掘用户-项交互数据中的流行度模式,例如点击次数、评分或购买行为等。一般,只有一小部分项目具备大量的交互,咱们称之为“头部”;而大多数项目都集中在“长尾”中,它们只占交互的一小部分。性能
在训练数据中会对许多热门项目进行多方观察,所以,推荐系统想要准确预测这些项目并不难。在电影数据集中,最受欢迎的电影是大片和经典老片。这些电影已为大多数用户所熟知,推荐这些电影,对用户来讲可能并不是是个性化推荐,也可能没法帮助用户发现其余新的电影。相关推荐被定义为用户在测试数据时给予正面评价的项目的推荐。这里的指标用来评估推荐系统的相关性和实用性。学习
推荐系统会为测试集中的每一个用户生成推荐的有序列表。平均精度均值(MAP)可让开发者深刻了解推荐项目列表的相关性,而召回率可让开发者深刻了解推荐系统的调试性能,如调试用户给予正向评价的全部项目。MAP和MAR的详细描述以下:
Mean Average Precision (MAP) For Recommender Systems覆盖率是指模型可以在测试集上推荐的项目占训练数据的百分比。在此示例中,受欢迎度推荐的覆盖率仅为0.05%,它只推荐了10件物品。随机推荐器的覆盖率接近100%。出乎意料的是,协同过滤只能推荐其训练的项目的8.42%。
三个推荐系统的覆盖率比较:
个性化是评估模型是否向不一样用户推荐相同项目的方法。用户的推荐列表之间存在差别(1-余弦类似性)。下边的例子能很好地说明如何计算个性化程度。
3个不一样用户的推荐项目示例列表:
首先,每一个用户的推荐项目会被表示为二进制指示符变量(1:向用户推荐该项目.0:不向用户推荐该项目)。
而后,跨全部用户的推荐向量计算余弦类似度矩阵。
最后,计算余弦矩阵的上三角的平均值。个性化是1-平均余弦类似度。
高个性化分数表示用户的推荐不一样,这也意味着该模型为每一位用户提供个性化体验。
列表内类似性是推荐列表中全部项目的平均余弦类似度。该计算使用推荐项目(例如电影类型)的特征来计算类似度。该计算方法能够经过如下示例说明。
针对3个不一样用户的电影ID的推荐示例:
这些电影类型特征用于计算推荐给用户的全部项目之间的余弦类似度。该矩阵显示了向用户1推荐的全部电影的特征。
咱们能够为每一个用户计算表内类似性,并对测试集中的全部用户求平均值,从而获得对模型的表内类似性的估计。
若是推荐系统向每个用户推荐很是类似的项目列表(如用户仅接收浪漫电影的推荐),那么列表内类似性将很高。
咱们能够对训练数据进行以下操做,从而快速改进推荐系统:
1.从培训数据中删除热门项目 (这一点适用于用户能够自行找到这些项目,以及发现这些项目不具有实用性的状况)。
2.按照用户的值来放大项目评级,例如平均交易值。这样作有助于模型推荐可以带来忠诚度或高价值客户的项目。
一个好的推荐系统可以生成兼具实用性和相关性的推荐结果。
使用多个评估指标来评估模型,可以更加全面地衡量一个推荐系统的性能。
原文连接:Evaluation Metrics for Recommender Systems
以上内容由第四范式先荐编译,仅供于学习交流,版权归原做者全部。
相关阅读:
如欲了解更多,欢迎搜索并关注先荐微信公众号(ID:dsfsxj)。
本帐号为第四范式智能推荐产品先荐的官方帐号。帐号立足于计算机领域,特别是人工智能相关的前沿研究,旨在把更多与人工智能相关的知识分享给公众,从专业的角度促进公众对人工智能的理解;同时也但愿为人工智能相关人员提供一个讨论、交流、学习的开放平台,从而早日让每一个人都享受到人工智能创造的价值。