搜索结果“不相关”的抱怨往往混着几种不同问题:结果确实答非所问,结果相关但排在后面,或者内容相关但摘要让人看不出。人工评估能给出准确判断,样本却有限;点击、停留、改写等行为信号样本大,却受位置和用户习惯干扰。把两者按同一查询集合对齐,才能形成可用于改进和复测的结论。
要点总览(TL;DR)
- 先把“不相关”拆成三类可验证问题:结果本身不相关、相关但排序靠后、相关但摘要不清,再分别确定评估对象和验证方式。
- 人工侧用四级相关性标准(完全满足、部分满足、勉强相关、不相关)标注查询—结果对,标注时只看查询与结果内容,不看位置和点击数据。
- 人工侧看各等级占比和 TopN 相关率,行为侧看点击率、首位点击率、点击后停留、查询改写率、零结果率和结果页退出率,两类口径分别定义、不能相加成一个总分。
- 交叉验证按查询和结果位置对齐后落入四象限:一致正向、人工高但行为冷、人工低但行为热、一致负向;优先处理一致负向,再排查不一致样本的摘要、排序和标注标准问题。
- 行为信号受位置和习惯影响、人工样本有限,结论要写明适用查询范围、时间窗和标准版本,指标改善后仍需复测确认。
评估目标:把“搜索结果不相关”拆成可验证的问题
交叉验证的第一步是把笼统的抱怨转成可判断的问题。用户说“搜不到”,可能指向三类不同情况,对应的验证方式也不同。
- 结果本身不相关:返回内容与查询意图无关。验证方式以人工分级判断为主,行为信号辅助确认影响范围。
- 结果相关但排序靠后:前几条不相关,后面有可用结果。验证时看人工标注的相关结果出现在第几位,以及首位点击率和点击位置分布。
- 结果相关但摘要不清:内容本身能满足需求,标题或摘要没有传达出来。验证时对比人工判断与点击后停留、点击后快速返回等信号。
评估对象需要事先写清:是某一批查询的整体表现,是某个查询下的结果列表,还是单条查询—结果对。整体评估回答“这个搜索版本是否变好”,单条结果评估回答“这条内容该不该出现在这里”。用途不同,抽样和指标也不同。
交叉验证的用途通常有三类:定位问题,找出哪类查询、哪个位置最需要改;验证改进,比较调整前后的同一批查询;决定是否上线,用人工判断和行为变化共同支撑发布决策。建议在评估开始前写一份问题清单,逐条写明问题类型、评估对象、验证方式和预期结论形式,避免评估结束后再回头解释数据。
相关性判断标准:分级定义与标注口径
人工评估的质量取决于标准是否可执行。建议采用四级相关性,每级给出可判断的描述,而不是只写“相关”“不相关”。
| 等级 | 判定描述 | 典型情形 |
|---|---|---|
| 完全满足 | 结果直接回答查询意图,信息完整,无需再查 | 查询“报销流程”,返回现行报销制度全文 |
| 部分满足 | 结果覆盖查询意图的一部分,或需要结合其他结果使用 | 返回报销标准,但缺少审批步骤 |
| 勉强相关 | 主题相近,但不能解决查询意图 | 查询“报销流程”,返回差旅申请说明 |
| 不相关 | 主题或意图明显不符 | 返回与报销无关的行政通知 |
标注单位是查询—结果对。标注人只看查询和结果内容本身,不看结果排在第几位,也不看点击数据,避免位置和热度影响判断。每条结果独立判断,不因同一查询下已有更好的结果而压低其他结果的等级。
边界情形需要提前约定规则:同义改写视为满足同一意图;上下位概念按覆盖程度定级,上位概念通常为部分满足;时效性内容以查询隐含的时间要求为准,过期内容降级;权限不可见的结果单独标记为“无法判断”,不纳入比率计算。多人标注时,先各自独立判断,再对分歧样本讨论;仍不一致的由第三人裁定,并记录分歧原因,用于后续修订标准。
指标与范围:人工样本与行为信号各测什么
两类证据测的是不同东西,指标要分别定义,写清分子、分母和时间窗。
| 类别 | 指标 | 计算口径 |
|---|---|---|
| 人工侧 | 各相关等级占比 | 该等级结果数 ÷ 标注结果总数 |
| 人工侧 | TopN 相关率 | 前 N 条中完全满足与部分满足的结果数 ÷ 前 N 条标注结果总数 |
| 行为侧 | 点击率 | 产生点击的查询次数 ÷ 有结果展示的查询次数 |
| 行为侧 | 首位点击率 | 首条结果被点击的次数 ÷ 有结果展示的查询次数 |
| 行为侧 | 点击后停留 | 点击后停留时长的中位数,按结果位置分组统计 |
| 行为侧 | 查询改写率 | 同一会话内改写查询的次数 ÷ 发起查询的会话数 |
| 行为侧 | 零结果率 | 返回零条结果的查询次数 ÷ 查询总次数 |
| 行为侧 | 结果页退出率 | 未点击即离开结果页的次数 ÷ 结果页曝光次数 |
样本范围要固定:查询按流量分层抽样,覆盖高频查询、长尾查询和零结果查询;结果深度统一取前 10 条,人工标注与行为统计使用同一深度;时间窗取连续两周或四周,排除活动、发布等异常日;同一用户同一查询的重复行为按会话去重。两类指标口径不同,不能相加成一个总分,只能并列呈现、按查询对齐后比对。
交叉验证步骤:对齐、比对、判定
交叉验证的核心是按查询和结果位置把两份数据放到同一张表里,再按四象限归类。
- 对齐:以查询为键,把人工标注结果与行为统计结果合并,保证同一查询、同一结果位置可比。查询改写、拼写纠错等变体归并到同一查询簇。
- 归类:按人工等级和行为表现落入四个象限。
- 排查不一致:对人工高相关但行为冷淡的样本,检查摘要是否清楚、结果排在第几位、是否存在更醒目的替代入口;对人工低相关但行为热的样本,检查标注标准是否遗漏了用户真实意图,或是否存在标题误导。
- 排优先级:先处理人工低相关且行为也差的查询簇,这类问题证据一致、改进收益明确;再处理两类不一致样本,它们往往指向摘要、排序或标准问题。
| 象限 | 人工判断 | 行为表现 | 常见解释与动作 |
|---|---|---|---|
| 一致正向 | 高相关 | 点击、停留正常 | 保持,作为对照样本 |
| 人工高、行为冷 | 高相关 | 低点击或快速返回 | 查摘要、位置和展示形式 |
| 人工低、行为热 | 低相关 | 高点击或长停留 | 复核标注标准,排查标题误导 |
| 一致负向 | 低相关 | 改写、退出、零结果 | 优先改进,纳入复测 |
评估过程中的查询样本、标注任务、分歧记录和问题工单需要可追踪。团队可以在 ONES Project 中建立评估任务和问题工单,把每条待复核查询对应到负责人和处理状态;标注口径、分级表和复测记录可以放在 ONES Wiki 中,供多轮评估复用。这样交叉验证的结论能落到具体条目和责任人,而不是停留在一次会议纪要里。
示例:一次查询集合的交叉验证
以下为演示情景,数字用于说明计算过程。某内部知识搜索抽取 200 条查询,每条取前 10 条结果,由两名标注人独立判断,分歧由第三人裁定。
人工标注共 2000 个查询—结果对,分布为:完全满足 320 条,部分满足 480 条,勉强相关 520 条,不相关 680 条。Top10 相关率为(320+480)÷2000=40%。
行为侧同一时间窗内:点击率 62%,首位点击率 35%,点击后停留中位数 48 秒,查询改写率 28%,零结果率 6%,结果页退出率 21%。
按查询归类后,四象限结果为:一致正向 74 条查询,人工高但行为冷 31 条,人工低但行为热 18 条,一致负向 77 条。对“人工高但行为冷”的 31 条抽查发现,其中 19 条的相关结果排在第 6 至第 10 位,摘要只截取了文档开头;对“人工低但行为热”的 18 条抽查发现,其中 11 条标题包含查询词但正文主题偏离,属于标题误导。
据此确定的改进动作:优先处理一致负向的 77 条查询,补充或调整内容覆盖;对 19 条排序靠后的相关结果优化摘要;对 11 条标题误导结果修订标题规则。复测时使用同一批查询和同一分级标准,比较 Top10 相关率、一致负向查询数和查询改写率的变化。
解读与限制:哪些结论能下,哪些不能
交叉验证能提高判断的可信度,但每类证据都有边界。行为信号受结果位置、摘要质量、用户习惯和界面展示影响,高点击不等于高相关,低点击也不能直接说明内容无用,它只能作为相关性判断的旁证。人工样本规模有限,标注人背景不同会带来标准偏差,跨团队复用时需要重新校准分级描述。
分母为零的情形要单独处理:没有点击的查询不进入点击率计算,没有标注的结果不进入相关率计算,零结果查询单独统计并说明原因。把零分母样本直接剔除或按零计算,都会让比率失真。
指标改善也不等于业务效果改善。Top10 相关率上升,仍需观察查询改写率、任务完成情况等后续信号,并通过复测确认改进稳定。评估结论应写明适用的查询范围、时间窗和标准版本,超出这个范围时重新验证,避免把一次评估的结果当成长期结论。
常见问题
人工标注时,标注人能不能看到点击数据或结果排名?
建议标注阶段不看。标注人只依据查询和结果内容本身判断等级,位置和点击数据留到交叉验证阶段再对照。如果标注时已经知道某条结果点击很高,容易把热度当成相关性,四象限里“人工低但行为热”的样本就会被提前抹平,失去排查标题误导的机会。
实际操作中可以把标注任务和数据分析分成两批人,或者在同一批人身上分两个阶段:先完成全部标注并锁定结果,再开放行为数据做比对。
两个标注人对同一条结果判断不一致,怎么处理才不影响后续统计?
先各自独立判断,再对分歧样本讨论;仍不一致的由第三人裁定,并把分歧原因记录下来。分歧记录本身有价值:如果同一类边界反复出现分歧,说明分级描述需要补充规则,比如上下位概念怎么定级、时效性内容以什么时间要求为准。
统计时以裁定后的等级为准,同时保留分歧率作为标注质量的参考。分歧率突然升高,通常意味着查询类型变化或标准表述不清,需要先校准再继续标注。
某个查询完全没有点击,点击率和停留时长怎么算?
没有点击的查询不进入点击率和停留时长的计算,单独统计数量并说明原因。零分母样本直接剔除或按零计算都会让比率失真:按零算会拉低整体点击率,直接剔除又可能掩盖“有结果但无人点击”这类值得排查的情况。
零结果查询同样单独统计,与“有结果但零点击”分开看。前者是内容覆盖或召回问题,后者更可能是摘要、排序或展示问题,两类问题的改进动作不同。
人工判断相关、但用户点击很少的结果,应该改内容还是改展示?
先看这条结果排在第几位。如果相关结果集中在第 6 至第 10 位,优先检查排序和摘要,内容本身可能不需要改;如果它排在前三位仍然点击很少,重点看标题和摘要是否传达了内容价值,以及是否存在更醒目的替代入口分流了用户。
抽查时可以对比点击后停留:停留正常但点击少,偏向展示问题;点击后快速返回,则要复核内容是否真的满足查询意图,人工判断可能偏宽。
这套交叉验证方法多久做一次比较合适?
常规评估可以按固定周期做,比如每月或每季度对同一批分层抽样的查询复测一次,保持分级标准和结果深度不变,便于比较趋势。搜索版本调整、内容大规模迁移或权限规则变化后,应针对受影响的查询簇追加一次专项评估。
复测使用同一批查询和同一标准版本,比较 TopN 相关率、一致负向查询数和查询改写率的变化。评估结论要注明适用的查询范围和时间窗,超出范围时重新验证。
