倘若产品不讲逻辑只看结果,那该如何验收?

640?wx_fmt=jpeg

本文作者:社区成员 ML94-熊叔


传统的产品验收过程,通常是逻辑走查,就是查看功能有没有实现、逻辑上有没有缺陷。对于产品经理和测试来说来说代码可能算黑盒,但是通过Code Review (代码审查),依然可以把最幽暗的逻辑暴露在阳光之下,锁定问题。但是在AI时代的算法,算法都是由数学公式和数据训练而成,输出结果通常是概率性的。是一个难以打开的黑盒。逻辑无处可寻,那应该怎么办呢?


用一句话总结就是:定义统计验收标准,找到问题源头奥义。


放在AI产品上就是:

1. 建立基于数据测试的验收标准,用统计的方式进行验收;

2. 溯源最初始的算法模型,找到其中的奥义;


今天,先分享验收的思路:



信息检索领域两个最基本指标是召回率(Recall Rate)和准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率。主要目的为了判断该文档是否与用户的搜索请求相关。

如检索“酒店”,系统中所有的酒店内容就是相关,而“美食”的内容就是不相关的,一般情况下,相关的内容就是理论上需要完全被检索到的内容,但是可能搜索结果会与目标产生偏差。这里我们所说的“目标”是找出数据库中所有相关的内容,但是可能由于算法等原因没有呈现在搜索结果中。

通过是否相关和是否被检索到两个维度的指标,我们可以将检索完成后的内容分为四类。如下图:

640?wx_fmt=png

精确率表示,搜索结果中有多少是正确的,所以计算公式的分子是结果中与目标相关的文档数(N),分母是所有的查询结果(N+M)

召回率表示,搜索结果是否召回(覆盖)了系统中存在目标相关文档,所以计算公式的分子是结果中与目标相关的文档数(N),分母是所有与目标相关的文档(N+K)


这个指标关注前搜索结果中排名靠前的10个结果的质量。因为2/8 原则,在搜索出来的一堆结果中,用户通常更加关注排序前面的内容。所以,评估数据取了前面10条。

假设,一段查询的结果排序有如下,假设就是搜“乔布斯去菜市场买苹果”,那么第一页的10条结果里面有讲乔布斯简介的、有讲水果的苹果、有讲苹果公司的,只有5条讲乔布斯买苹果的。

640?wx_fmt=png

绿色的打钩的表示是正确的,红色的打叉的是错误的结果。

P@10 分子是对的结果数5,分母是10(因为取的是前面10条)

640?wx_fmt=png


MAP(Mean Average Precision):平均正确率,针对多次查询计算得出。先理解一下AP,AP是一次查询的文档排序正确率平均值。假设一次查询搜索结果,如下图:

640?wx_fmt=png

在与查询相关的目标文档只有A、B、C三个文档,在这次搜索结果中有8个结果。分别把A、放在了第二个,把B放在了第四个,把C放在了第六个,剩下都是不相关的结果。先计算文档A、B、C的理想排序位置和实际结果的比值(1/2、2/4、3/6),然后计算者三个排序的平均数(累加3个结果➗3)。

 

640?wx_fmt=png

这样系统检索出来的相关文档越靠前(排序越高),MAP就可能越高。如果系统没有返回相关文档,则准确率默认为0。

MAP的M是什么呢?M代表,多次查询结果,把多次查询的AP分值累加后再平均即可。



总结


不同产品需求不同,指标侧重不同,因此不能一概而论。需要综合分析,合理的选取指标。例如对于搜索产品,召回率和精确率,就处于一种平衡的关系,如果精确率提升可能召回率就降低,因此,还发明了F值进行评估(调和平均值=正确率 * 召回率 * 2 / (正确率 + 召回率) ),再以辅助以排序MAP指标。

 

参考文献

《这就是搜索引擎》张俊林 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值