正文共1956张图,1张图,预计阅读时间8分钟。

推荐系统最有效的方法就是A/B test进行模型之间的对比,但是由于现实原因的局限,存在现实实时的困难性,所以,梳理了一些可以补充替代的指标如下,但是离线评估也存在相应的问题:

  1. 数据集的稀疏性限制了适用范围,用户之间的交集稀疏。

  2. 评价结果的客观性,由于用户的主观性,不管离线评测的结果如何,都不能得出用户是否喜欢某推荐系统的结论,只是一个近似的评估。

  3. 深度评估指标的缺失。(如点击深度、购买客单价、购买商品类别、购买偏好)之间的关联关系。

  4. 冷启动

  5. Exploration 和 Exploitation问题

离线模型之间的评估

召回集测试

  • recall
    命中skn个数/用户真实点击skn个数

  • precision
    命中skn个数/所有预测出来的skn总数

  • F1-Measure
    2/(1/recall+1/precison)

  • 交互熵

  • MAE

  • RMSE

  • 相关性
    常见的比如:Pearson、Spearman和Kendall’s Tau相关,其中Pearson是更具数值之间的相似度,Spearman是根据数值排序之间的相似度,Kendall’s Tau是加权下的数值排序之间的相似度。

  • 基尼系数

  • 信息熵


排序部分测试

  • NDCG(Normalize DCG)

  • RBP(rank-biased precision)

RBP和NDCG指标的唯一不同点在于RBP把推荐列表中商品的浏览概率p按等比数列递减,而ND CG则是按照log调和级数形式。

离线模型与在线模型之间的评估

很多时候,我们需要确定离线模型的效果足够的健壮才能允许上线进行线上测试,那如何进行离线模型与线上模型的评估对比就是一个比较复杂的问题。

难点


  • 缺乏公平的测试数据
    实际处理过程中,我们发现,所有的已知点击都是来自线上模型推荐的结果,所以极端情况下,线上的recall是100%

  • 缺乏公认的衡量指标
    在线下对比中,我们发现比如recall、precision、F1-Measure等指标都是大家约定俗成的,不存在很大的争议,而离线在线模型对比却没有一个准确公认的衡量指标


指标设计


  • online_offline_cover_rate&first_click_hit_rate

这一组指标是结合在一起看的,其中online_offline_cover_rate是指针对每一个用户计算理线模型推荐的商品与在线模型推荐的商品的重合个数/在线模型的推荐商品个数,online_offline_cover_rate越低代表离线模型相对在线模型越独立;first_click_hit_rate是指offline模型对用户每天第一次点击的命中率,也就是命中次数/总统计用户数。
结合这两个指标,我们可以得到在online_offline_cover_rate越低的情况下,却能覆盖线上用户真实点击的次数越多,代表offline模型的效果优于线上模型。

  • online_precision_rate/offline_precision_rate

离线模型的准确率和在线模型的准确率。

这边在实际计算的时候采取了一个技巧,针对某个推荐位计算在线模型准确率的时候,用的是从来没有浏览过这个推荐位的用户的浏览历史匹配这个用户这个推荐位的推荐结果。这样可以避免用户的点击结果受到推荐位推荐结果影响的问题。

举个例子:用户在推荐位A上没有浏览过,他的点击是不受推荐位A推荐的商品影响的,拿这个用户推荐位A我们给他线上推荐的结果作为线上模型的推荐结果去计算,这样才更加合理。

  • online_recall_rate/offline_recall_rate

离线模型的召回率和在线模型的召回率。

同上解释。

  • roi_reall/roi_precision

同上解释,只是把未来的点击作为match源更换成了加购物车、购买、收藏这些数据。

其他评估方向


覆盖率


推荐覆盖率越高, 系统给用户推荐的商品种类就越多 ,推荐多样新颖的可能性就越大。如果一个推荐算法总是推荐给用户流行的商品,那么它的覆盖率往往很低,通常也是多样性和新颖性都很低的推荐。

多样性


采用推荐列表间的相似度(hamming distance、Cosine Method),也就是用户的推荐列表间的重叠度来定义整体多样性。

新颖性


计算推荐列表中物品的平均流行度。

其他


用户满意度、用户问卷、信任度、鲁棒性、实时性。

评测维度

最后说一下评测维度分为如下3种,多角度评测:

  • 用户维度
    主要包括用户的人口统计学信息、活跃度以及是不是新用户等。

  • 物品维度
    包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。

  • 时间维度
    包括季节,是工作日还是周末,是白天还是晚上等。

附常规评价指标的整理结果(来自论文Evaluation Metrics for Recommender Systems):

原文链接:https://www.jianshu.com/p/54182c5e1fb0

查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org

请关注人工智能LeadAI公众号,查看更多专业文章

大家都在看

LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础

量化评估推荐系统效果相关推荐

  1. 数据分析36计(12):做不了AB测试,如何量化评估营销、产品改版等对业务的效果...

    往期系列原创文章集锦: 数据分析36计(11):如何用贝叶斯概率准确提供业务方营销转化率 数据分析36计(十):Facebook开源时间序列预测算法 Prophet 数据分析36计(九):倾向得分匹配 ...

  2. 量化城市︱计算机视觉技术在街道品质量化评估中的应用

    一°览°众°山°小 SustainableCity & Transportation      编辑团队 原文/ 肖天骏 (美国微软必应搜索团队) 文献/ 李安岭   校核/ 众山小 编辑/ ...

  3. 基于pytorch量化感知训练(mnist分类)--浮点训练vs多bit后量化vs多bit量化感知训练效果对比

    基于pytorch量化感知训练–浮点训练vs多bit后量化vs多bit量化感知训练效果对比 代码下载地址:下载地址 灰色线是量化训练,橙色线是后训练量化,可以看到,在 bit = 2.3 的时候,量化 ...

  4. 基于pytorch后量化(mnist分类)---浮点训练vs多bit后量化vs多bit量化感知训练效果对比

    基于pytorch后量化(mnist分类)-浮点训练vs多bit后量化vs多bit量化感知训练效果对比 代码下载地址:下载地址 试了 bit 数为 1-8 的准确率,得到下面这张折线图: 发现,当 b ...

  5. 商用密码应用安全性评估量化评估规则(2021版)

    量化评估框架 参考 GM/T BBBB<信息系统密码应用测评要求>,本规则从三个方面进行量化评估: 密码使用安全(Cryptography Deployment security)是指,密 ...

  6. 网站如何评估SEO效果

    大家都知道,做SEO优化并不像做SEM一样可以立竿见影,根据不同行业和关键词,所需要的优化时间也不同.如今百度算法不断调整,更新频繁,我们应该如何把握网站SEO的效果?SEO管理岗位人员又该如何检测S ...

  7. 作为数据分析师,如何评估活动效果

    目录 背景 如何定义评判二字 活动评估关键问题 从0建立评估模型的做法 第一步 梳理活动流程 第二步 筛选主指标 第三步 设定判定标准 第四步 找到影响结果的过程 背景 正式工作已经十个月了,相较于现 ...

  8. 机器学习---推荐系统效果评估NDCG

    参考连接:http://www.cnblogs.com/supersteven/archive/2012/09/01/2666565.html 首先非常感谢作者不辞辛苦整理与分享. 根据作者描述以及提 ...

  9. python倾向匹配得分_数据分析36计(九):倾向得分匹配法(PSM)量化评估效果分析

    1. 因果推断介绍 如今量化策略实施的效果评估变得越来越重要,数据驱动产品和运营.业务等各方的理念越来越受到重视.如今这方面流行的方法除了实验方法AB testing外,就是因果推断中的各种观察研究方 ...

最新文章

  1. 百度2016/2017秋招部分题目解析
  2. error C2665: “AfxMessageBox”
  3. 宝塔安装php遇错libicui18n.so.42: cannot open shared object file: No such file or directory
  4. linux中cd命令及范例,15个Linux中的“cd”命令的实际示例
  5. Ceph分布式存储学习指南1.10 iRODS
  6. 如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
  7. filecoin矿机_萤火虫区块链-上海|南京|杭州|苏州萤火虫ipfs|filecoin矿机-奥古斯都分布式存储...
  8. 解决NintendoSwitch安装SXPro后开机长期蓝屏问题
  9. trans系列是sci几区_怎么确定SCI论文期刊是几区的
  10. 柴静:我只是讨厌屈服
  11. 坯子库无法一键安装插件没用_坯子库管理器及坯子助手问题汇总
  12. linux解压rar.gz,Linux tar.gz 、zip、rar 解压 压缩命令
  13. 量化专业术语——转自BigQuant
  14. (一)八卦起点作家转会纵横-------- 比较全(包括JJ,起点ceo.邪月MM的发言的发言)...
  15. IOS App应用开发高仿百思不得姐项目实战
  16. 算法基础—数据结构—双链表
  17. 新颖的 USB HUB快充方案助您无忧!!(兼容PD、QC、AFC等快充协议)
  18. 手把手教你用EZDML批量生成vue-element-admin前端页面代码
  19. 迅龙中文搜索 0.7 nSearch版 C# 源代码下载
  20. 关于 ORA-22992

热门文章

  1. ado.net mysql 连接池_ADO.NET中SQL Server数据库连接池
  2. php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
  3. python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件
  4. php七牛云rtmp直播推流,GitHub - jangocheng/FlutterQiniucloudLivePlugin: Flutter 七牛云直播云 推流/播放 SDK集成...
  5. 微信公众号服务器模式,微信公众平台的两种模式
  6. mysql 缓冲区_mysql 线程级别的缓冲区
  7. 疯狂软件mysql视频_疯狂软件MySql视频
  8. java 泛型集合示例_Java 泛型(示例代码)
  9. netbeans php 安装教程,php_xdebug安装+NetBeans的配置和使用
  10. 一些关于图论和二叉树的