通信智库

"意图识别准确率 95%":这个数字为什么不能拿来验收

Max阅读 23

"意图识别准确率 95%":这个数字为什么不能拿来验收

选型会上最容易出现这样的对话:

厂商:"我们的意图识别准确率是 95%。"

甲方技术:"测了多少条?什么数据?"

厂商:"标准语料库,几千条。"

这两句问答里其实藏着三个致命问题,而绝大多数团队当场没追问下去。

一、先做归因:是听错了,还是没听懂

语音场景里,"理解错了"和"听错了"是两件事,但报表里往往被合并成同一个"意图识别错误"。

一次语音交互的链路是:声波 → ASR(转成文字)→ NLU(理解意图)→ 对话管理 → 响应。当结果是错的,第一件要做的事是拿出 ASR 转写文本看:

这两者的治理成本完全不同:ASR 层的问题靠热词表、方言模型、音频前端处理;NLU 层的问题靠语料和意图体系重构。在没有分层归因之前谈"准确率",等于把两类预算混在一起花。

一个粗略但有效的判据:抽检 100 条识别失败的会话,逐条看转写文本。如果其中超过三成文本本身就是错的,那么优先优化 ASR 的收益会明显大于继续调 NLU。

二、四个指标,各管一段,不能互相替代

指标 定义 管什么
意图识别率 识别正确的意图数 ÷ 总识别机会数 理解得对不对
任务完成率 成功办结的会话数 ÷ 总会话数 事情办没办成
平均轮次 一次会话中客户与机器人一来一回的次数 过程费不费劲
遏制率 未转人工即结束的会话占比 省下了多少人力

识别率高而完成率低,通常说明后端没接上——模型听懂了,但查不到订单系统、改不了地址。这时候继续提升识别率毫无意义。

平均轮次上升是比准确率下降更早出现的信号:它说明模型开始需要追问客户才能搞定,客户体验已经在恶化了,只是还没体现在投诉率上。

遏制率要小心使用:它上升的同时如果 CSAT 下降、或者短期内同一问题重复来电上升,说明机器不是在解决问题,是在把客户拦在外面

三、95% 为什么不可信:三个失真源

失真源 1:测试集被训练集污染

如果厂商用同一批数据既训练又测试,那模型等于"用出生年份预测年龄"——数学上几乎全对,实际上什么都没学会。

判断方法很简单:问测试语料的时间窗口和来源。 拿三个月后的新语料去测同一个模型,准确率通常会掉几个到十几个百分点,而那个数字才是你未来真正会面对的水平。

失真源 2:测试集不代表真实分布

真实的话务分布是极度不平衡的:往往头部几个意图占掉大部分流量,剩下几十个意图各自不到百分之一。

如果测试集按意图均匀抽样(每个意图一样多条),那么长尾意图会被大幅高估——它们在测试里占 2%,在真实流量里可能只占 0.1%,对整体体验的影响被放大了二十倍。反过来,头部意图的错误成本却被低估了。

正确的做法是按真实流量比例抽样,让测试集里的分布跟生产日志一致。

失真源 3:它是某个时间点的快照

意图是会长出来的。上促销、改政策、出新故障类型,都会带来全新的说法。评测不是一次性的验收动作,而是一项长期维护工作。建议在每个版本迭代后固定跑一次回归。

四、混淆矩阵:比单一准确率有用得多

把所有"判错"的样本按(真实意图,预测意图)成对统计,就是混淆矩阵。它能回答准确率回答不了的问题:哪些意图在互相打架。

假设有这样一个自造的例子:某模型在 500 条真实语料上整体判对 440 条,整体准确率 88%——看起来不错。但把其中"改收货地址"这个意图单独拆开:

那么针对这个意图:

召回率只有 66.7%,意味着每三条里漏一条。而混淆矩阵会告诉你漏到哪去了——通常集中在"修改订单信息""改配送方式"这类语义邻近的意图上。

这时候该做的不是继续加语料盲目重训,而是考虑:这几个意图要不要合并? 很多时候把三个互相打架的意图合成一个"订单变更",再在对话里用选项确认分支,比追求更高的识别率有效得多。

五、一套能落地的评测集建设方法

这是我认为投入产出比最高的一套动作,全部可以靠自己团队完成,不需要额外采购:

  1. 从生产日志抽取真实客户说法,脱敏后作为原始池。不要由产品经理凭空造句子——他们大概率会用训练机器人时的同一种说话方式,产生正向偏差。
  2. 在抽取时就记录"期望意图"(即 ground truth)。事后补标注既慢又贵,而在设计用例时顺手记一笔几乎不增加成本。
  3. 按真实流量分层抽样,头部意图多留、长尾意图按比例保留,样本量目标建议:头部意图每类不少于 50 条,整体不少于 500 条。
  4. 留出独立的"黄金测试集",不在任何训练环节中使用,只在评测时调用。一旦有人把它的语料拿去修模型,这个集就废了。
  5. 走查交给不参与建设的人。让没读过机器人话术的同事按场景跑一遍,专挑不按脚本说话的路径(中途改需求、一句话两个诉求、情绪激动、直接说"转人工")。这类用例最能暴露机器人设计的盲点。
  6. 每次迭代跑回归,把四个指标(识别率 / 完成率 / 轮次 / 遏制率)和上一次并列,而不是只看一个数。

六、国内落地时的四个注意点

  1. 先解决 ASR 再谈 NLU。中文场景的口音和方言差异远大于英文,很多团队花了半年调意图模型,实际瓶颈是前端识别。
  2. 把"拒识"当正式功能设计。宁可让机器人说"这个我处理不了,马上转人工",也不要硬接一个它不懂的请求。低置信度时的兜底策略,直接决定客户体感。
  3. 知识库通常比模型更拖后腿。很多时候意图判对了,但答案过时、答非所问。先盘清文档的新鲜度和结构,比换模型划算。
  4. 给评测集设 Owner。这是最容易烂尾的一环——没有归属人的评测集,三个月后就会被遗忘,然后大家重新开始相信厂商给的那个数字。

本文为原创内容。文中示例数值仅用于说明计算方法,不构成任何行业基准,也不代表任何厂商的实际水平。

💡 平台提供 技术培训 与 专家咨询服务,助力企业通信系统建设与智能化转型。