天天看点

知乎搜索评测实践

作者:闪念基因

前言

效果评测一直是软件测试中令人头疼的部分,因为很多情况下效果的好坏是一个偏主观的东西,如何经过抽样、对比、打分、用户数据等客观的方式来评价一款产品的好坏,是我们测试工程师值得思考的问题。

随着知乎 DAU 的持续增长,知乎搜索也成了一个重要的流量分发的入口。知乎搜索对质量的要求也越来越高,于是效果评测势在必行。

本文主要介绍了目前业界通用的评测方法和流程;在知乎搜索评测中使用的方法、工具;遇到的问题及评测平台的建设。希望对评测入门,尤其是做搜索评测的同学有一定的指导意义。

评测基本流程

评测的基本流程主要分为评测方法、评测抽样、评测抓取、人工标注与质检、统计分析与报告和短板 review,在下文会一一介绍。

知乎搜索评测实践

评测方法

Ppage(per-page)

常用于相对正式的综合竞品评测,按页面整体评测,主旨在评测一个页面整体的好坏。可以分为整体感官打分、相关性打分、排序打分、页面质量打分等。

知乎搜索评测实践

PI(per-item)

有列表返回,需要逐条进行打分的评测,常用于搜索评测,知乎搜索评测用到的就是这个方法,可以用到 DCG 评分将不同条目赋予不同的权值,得出综合分数,以达到综合评测的效果。

知乎搜索评测实践
知乎搜索评测实践

SBS(side by side)

顾名思义,使用对比的方式进行评测,分为与竞品对比,版本间对比等。制定指标,利用打分、对比等形式,评价出 2 个版本的好坏。

知乎搜索评测实践

宫格评测

适用于可人工判断与实际程序效果的对比,多用于专项评测,对系统中某一功能进行效果评测。参考:混淆矩阵。

知乎搜索评测实践

评测抽样

随机抽样

  • 优点:能完全反应用户需求的真实分布(如时间、地域等)
  • 缺点:有些长尾和局部问题无法较好的暴露

分层抽样

根据查询量,分为热门、中段、长尾,并按照比例分别进行抽样

  • 优点:能够对各个分段进行有针对性的分析
  • 缺点:对用户需求比例无法完全真实还原

去重抽样

将用户查询进行去重,再进行抽样,能够更好的覆盖长尾查询,但与用户需求比例相差较大

垂直抽样

针对一些特性(如类别、成分、长度、DIFF )等进行局部抽样,能更好的覆盖和发现局部类型的问题,但无法从整体上说明问题

评测抓取

python 脚本抓取

在日常评测中主要使用 python 脚本驱动抓取知乎与竞品的引擎的搜索的结果,分别做对比。均用对应的 API 进行抓取。

召回每日自动化评测结果

主要策略,将每日所有长尾搜索 query 进行随机抽样 1000 个,分别请求知乎、竞品 1、竞品 2 三家搜索引擎,记录竞品前 10 条相同返回结果,如果有 3 条以上返回结果在知乎前 20 条返回结果中未出现,该 query 记为 badcase。

具体一次评测结果如下:

知乎搜索评测实践

Badcase

上文中问题 query 数的详细信息

知乎搜索评测实践

人工标注与质检

搜索评测我们目前采用 PI 和 SBS 的方法评测,抓取结果后人工逐条进行对比打分,综合每条结果进行 query 的 DCG 打分,最后生成测试报告。

评测平台相关:

知乎搜索评测实践
知乎搜索评测实践

统计分析与报告

短板 review

  • 对比与竞品的优缺点
  • 问题归类
  • 需求生成
  • 短板 review,形成排期
  • 优化后,badcase 回归验证

例:

知乎搜索评测实践

需求生成:

知乎搜索评测实践

badcase 回归验证:

知乎搜索评测实践

总结&展望

总体来说,评测适合那些返回结果不确定、偏效果类的测试。尤其是在搜索中,我们如何能量化的判断搜索的质量是值得思考的问题。

知乎的搜索评测总的来说属于刚起步阶段,目前保持一个季度 2 次的频率,还在摸索优化打分的策略。已经有了自己的评测平台,可以稳定提供评测结果,badcase 以及优化建议。

后续期望可以通过反复的实践不断优化评测的方向及方法,打分的合理性;平台方面希望可以接入更多的评测需求,扩大平台的覆盖面,不局限于搜索。

作者:小小球球

出处:https://zhuanlan.zhihu.com/p/65835152