推荐系统涉及到前端交互设计,后台算法选取优化, 所以在设计推荐系统时,不能单纯使用accuracy对推荐效果进行衡量,需要根据推荐系统的具体应用场景,使用对象,解决的问题使用多指标对其进行衡量。而且很多时候这些指标都是一个上涨其他跌,需要彼此间做权衡(例如在设计百度关键词推荐引擎时,就需要在关键词的召回和准确性之间进行权衡,同时要考虑用户操作的便利性,推荐关键词的多样性等)。 下边就对这些指标进行介绍:

User Preference

用户是否喜欢该RS(Recommender System)的设计。最简单的方法就是让用户选择, 实验那种算法/交互设计用户更喜欢, 然后被投票较多的一种胜出。

中间会涉及几个问题:

  1. A算法和B算法比,假设A算法胜出了, 而投票给A的人相对于B只是稍微喜欢A一点点。 但投票给B的人缺非常不喜欢A,则这种情况下,有可能最终仍然需要选择B。
  2. 每一票的权重,也可能是不同的,例如在百度关键词推荐系统中,消费较高,买词较多的客户相对于新客户更专业,他们的选择一般更科学,说以权重需要高一些。

 Prediction Accuracy

很多推荐算法都是基于数据挖掘或是机器学习, 所以很多时候, 也会使用数据挖掘和机器学习的accuracy衡量标准。我们可以简单粗暴地默认accuracy越高, 推荐算法的效果越好。

NOTE: 下文中所有的推荐系统衡量标准具体公式参见本站:推荐系统中的相似度度量

推荐算法中可以将accuracy的衡量标准分为3类:

  1. Rating Prediction
  2. Usage Prediction
  3. Accuracy of Ranking Items

Rating Prediction

例如在Netflix,douban中预测user对某个item(电影or音乐)的打分,为了评估算法预测的效果及偏差,可以使用RMSE(Root Mean Squared Error)或MAE(Mean Absolute Error)进行评估。数值越大表示偏差越大。

Usage Prediction

例如在百度关键词推荐引擎中, 更多需要考虑的是推荐出候选关键词后, 客户是否采纳该关键词(use),此时就不适合使用RMSE或是MAE进行衡量了。该场景下使用经典的Precision/Recall方式衡量更为合适,即一方面需要考虑推荐结果是否合适,另外一方面也需要考虑是否所有适合该客户该场景的结果都被推荐出来。

Precision=tp/(tp+fp)

recall=tp(tp+fn)

更多时候可以直接使用AUC进行衡量刻画

Ranking Measures

例如在百度关键词推荐系统中,推荐出来的结果是关键词的list,排在前边的结果用户更容易看到,用户选择的代价也就更小,所以需要尽可能将更相关的结果往前排。此时就需要使用Ranking的标准衡量推荐结果list的结果。

此时一般使用NDCG(Normalized Discount Cummulative Gain)对该序列进行衡量,具体使用方式参见:使用NDCG评估关键词推荐系统的相关性

Coverage

即推荐的覆盖率, 最简单的方法就是评估推荐系统推荐的item占item全集的比例,同时评估推荐系统能够推荐给总用户的比例。 例如电商有100W种商品,推荐系统能够覆盖80W, 则可以简单地认为该推荐系统的Coverage为80%;又如网站用户为100W,推荐系统能够覆盖50W用户,则可以简单定义用户覆盖面为50%

该方式的缺点显而易见: item有重要和不重要,热门和长尾的区分,例如,在国外,哈利波特深受大家喜欢,该书/音像制品的关注度非常高,该商品被购买的概率较大,所以推荐一个哈利波特后被购买的概率, 可能是推荐一个冷门商品的N倍(例如推荐一个了冷门的‘舵机’),所以在计算Coverage的时候,需要考虑item的冷热程度。

例如在百度关键词推荐系统中,我们可以简单地考虑推荐系统所能覆盖的关键词数量的比例,但其实考虑推荐关键词所能覆盖的pv的比例,更合理。 或者在专门推荐长尾流量的出口使用关键词数量覆盖比例。

推荐用户所能覆盖的比例也是一个需要慎重考虑得问题: 一般情况下,有些客户是不适宜覆盖的,例如新用户的profile还没有建立的时候,过早地对其进行推荐,虽然覆盖率上去了, 却不能保证正确性。 所以经常需要在准确性和覆盖率上做权衡(例如不同的应用场景可以选用不同的覆盖率,准确性标准, 或是在交互上进行提示,告诉用户:仅供参考)

Confidence

推荐的置信度,很多时候,使用模型方法时,都可以产生一个置信度, 我们甚至可以根据置信度, 选择推荐样式, 或是是否展现结果给用户。 例如,当系统产生一个置信度较低的结果时,可以选择不进行推荐。

Trust

即:能否博取用户的信任。需要从心理学的角度去进行设计,例如推荐时可以掺杂一些确信的用户喜欢的item,或是推荐的时候写明推荐的理由(这点非常重要,就是‘给一个理由先’, 给了理由,说服力立马倍增)

但Trust很难定量衡量, 更多是进行调研得到调研分析结果。

Novelty

什么是Novelty?所谓Novelty,就是需要推荐新的东西,用户已经关注,已经购买的东西,再推荐就没有多少价值了。 举个例子,我经常上amazon.cn买东西,但之前经常发现一个问题: 我要买一口炒锅, 浏览了很多炒锅相关的item,之后下单买了口爱仕达的炒锅, 回头再上amazon的时候,他竟然仍然向我推荐各种品牌的炒锅。 这就是Novelty做的不好。

Serendipity

就是要推荐一些有惊喜的东西,例如我经常看某一个演员的电影,推荐系统给我推荐一部该演员演的我没看过的电影,算是Novelty; 如果给我推荐一部不是该演员演的但是风格和这些电影类似的电影,就属于Serendipity。

一个比较特别的的例子:

“假设一名用户喜欢周星驰的电影,然后我们给他推荐了一部叫做《临歧》的电影(该电影是1983年刘德华、周星驰、梁朝伟合作演出的,很少有人知道这部有周星驰出演的电影),而该用户不知道这部电影,那么可以说这个推荐具有新颖性。但是,这个推荐并没有惊喜度,因为该用户一旦了解了这个电影的演员,就不会觉得特别奇怪。但如果我们给用户推荐张艺谋导演的《红高粱》,假设这名用户没有看过这部电影,那么他看完这部电影后可能会觉得很奇怪,因为这部电影和他的兴趣一点关系也没有,但如果用户看完电影后觉得这部电影很不错,那么就可以说这个推荐是让用户惊喜的。这个例子的原始版本来自于Guy Shani的论文”

简单地说,就是让用户感觉到‘毫无理由地’喜欢

以上例子内容来自于项亮同学所著《推荐系统实践》

Diversity

最经典的例子, 在百度上搜索关键词‘苹果’,如果我们认为用户大概率是要搜手机相关的内容就不出水果的搜索结果, 那就是一个diversity较低的例子; 又如旅游推荐时,如果都是推荐一个地方的同类旅游景点时,也是diversity的一个反例,当然diversity很多时候需要和precision做trade-off

Utility

即推荐系统的效用。效用可以从两个角度考虑: 推荐系统对用户的效用及推荐系统对网站(owner)的效用,从两个角度来看,可能会得到不同的结果。 以百度关键词推荐系统为例,从用户的角度看,我们需要推荐和用户推广意图相关的关键词, 且这些关键词能够带来最高的ROI;而从百度的角度看,推荐的关键词应该带来最大的消费(至少短期的衡量标准是这样,长期考虑还是需要提升用户的ROI),针对不同的效用就需要建立不同的模型。

例如从公司的utility考虑,需要建立题词率模型(最大化推荐结果的采用率模型)及点击率模型; 从用户的角度,需要建立模型最大化ROI。 一般系统都是综合考虑这些效用决定最终结果。

也可关注微博: weibo.com/dustinsea

或是直接访问: http://semocean.com

选择推荐算法时需要考虑得因素相关推荐

  1. 选择虚拟主机时需要考虑的因素

    虚拟主机是使用特殊的软硬件技术,把一台计算主机分成一台台小"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能.在同一 ...

  2. 企业选择外贸B2B平台需要考虑哪些因素

    随着这几年跨境电商的大热,众多B2B外贸平台也相继出现.选择符合自己企业产品特点的外贸B2B平台进行推广,是中小企业跨境营销成功的第一步,也是最为关键的一步.而平台的选择.效果差异.客户服务等种种问题 ...

  3. APS选型时需要考虑哪些因素?

    APS选型时需要考虑的要素有哪些?面对工业4.0智能制造的挑战,很多企业希望能够引进一个智能的系统,及时告诉我们什么时候该生产什么产品,在哪条产线哪台设备上生产,一次生产多少,如果现场出现异常或者需求 ...

  4. Jenkins首次安装选择推荐插件时出现“: No such plugin: cloudbees-folder” 解决方案

    说一下场景 第一次安装Jenkins,访问http:ip:8080 ,输入管理员密码.然后选择社区推荐的插件安装方式,提示出现: 安装过程中出现一个错误: No such plugin: cloudb ...

  5. 前端开发需要学python吗_在选择学习Python开发还是前端开发时需要考虑哪些因素...

    首先,从技术体系结构来看,Python开发与前端开发是两个不同的学习方向,未来所从事的岗位和面对的任务场景也有较为明显的不同,但是Python开发与前端开发本身的发展前景都是比较不错的,未来的就业空间 ...

  6. 购买计算机配件时需要考虑什么因素,哪些配置和参数是购买和组装计算机的主要因素?阅读后您会理解的!...

    对于一些白人安装人员来说,他们通常不知道计算机配置的主要内容,以及选择计算机时要考虑的主要方面. 实际上,无论是笔记本电脑还是台式机,每个人都主要取决于计算机的性能,并决定着计算机性能的核心. 硬件由 ...

  7. 想要成为推荐算法工程师,都要准备哪些东西

    作者在<推荐算法工程师的成长之道>这篇文章中讲到推荐算法工程师是一个好的职业选择,并且讲解了职业发展路径及定位.怎么成长等话题(还没看的可以看起来). 如果大家认可我讲的并且也愿意将来从事 ...

  8. 推荐算法工程师学习路线及工作指南

    干货!推荐算法工程师学习路线及工作指南 以下文章来源于大数据与人工智能 ,作者gongyouliu 本文从我自己的学习成长经历.如何判断自己是否适合从事推荐算法.推荐算法工程师需要的知识储备.怎么找一 ...

  9. 一文全面了解基于内容的推荐算法

    作者丨gongyouliu 来源 | 转载自大数据与人工智能(ID:ai-big-data) 这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文 ...

最新文章

  1. 数据挖掘系列(4)使用weka做关联规则挖掘
  2. easyx 备忘录_记在iPhone备忘录里的便签信息安全吗 - 学显
  3. webpack的基本配置项
  4. P4370-[Code+#4]组合数问题2【数学,堆】
  5. flare3d_clone
  6. matlab从矩阵中取rp开头文件,matlab trainrp
  7. php curl for win7_win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
  8. 策略模式(headfirst设计模式学习笔记)
  9. 为何python不好找工作-为何有人说Python不好找工作?
  10. redis——相关问题汇总
  11. java计算两个经纬度之间的直线距离
  12. Prometheus(四)——Alertmanager
  13. 基于微信小程序实现番茄钟专注时间项目演示【附项目源码+论文说明】
  14. Android之APP跳转到权限设置界面适配华为、小米、vivo等
  15. 52-20210322华为海思Hi3516DV300的linux系统编译(eMMC模式)1
  16. 一男子连开28个黄网被捕,网友:就这点钱,你还是找个班上吧
  17. #include tchar.h 是什么意思
  18. Linux一个父进程创建两个子进程
  19. 学习笔记---Winform的东东忘了好些。。。
  20. .net 部署到服务端IIS,Process调用exe程序无法运行问题解决

热门文章

  1. HUSTPC2022
  2. A记录和CNAME记录的区别及介绍
  3. 摄像机-哈苏-哈苏相机:哈苏相机
  4. 近视手术:全飞秒 vs 半飞秒
  5. 华硕Android原始密码,华硕(ASUS)路由器默认密码是多少?
  6. Springboot+Ajax工具类的使用
  7. ffmpeg自动检测视频黑边并裁剪
  8. 操作系统leb1实验报告
  9. Baeyer-Villiger有机反应机理
  10. 嵌入式实践教程--设备树下的LCD驱动开发