Intent Recognition and Out-of-Scope Detection using LLMs in Multi-party Conversations

Key Insight On Intent Recognition

  1. 对比在 Multi-party (多方: 至少 3 个人) 对话中, 四类意图识别方法的效果优劣:

    1. Finetuned-Bert 微调小分类模型
    2. LLM zero-shot classification LLM 零样本分类
    3. Uncertainty-based Query Routing 基于不确定性的查询路由
    4. Label Space Reduction 标签空间缩减
  2. 验证出混合方法 Label Space Reduction 的有效性,该方法结合 BERT 小模型的高效性和 LLM 的准确性, 实现更高效的意图分类

Intent Recognition 意图分类任务

  1. 假设我们总共有 m 个意图, 评估四类意图识别 (包含 out-of-scope detection) 的方法的准确性指标
  2. 这里我们说的意图是 “IS 意图” 即 “in-scope 意图” (范围内意图) ,指任务导向对话系统 (TODS) 预先定义、能够识别并处理的用户意图,是意图识别任务中 “需要被正确分类” 的核心目标类别,与 “out-of-scope (OOS,范围外意图) “ 相对

Finetuned-Bert 微调小分类模型

数据预处理:为每个待分类 utterance 拼接其前 3 个 utterance 以引入上下文,并用特殊标记 \ 分隔不同轮次话语,避免角色混淆:

假设待分类的目标 utterance 为:
u_target=”我需要打印之前的检查报告” (家属所说,意图为 “请求打印检查报告”)

另外其前 3 个 utterance 分别为:

u_1="请问内科门诊今天下午能加号吗?" (患者所说) 
u_2="内科下午加号需先到分诊台登记" (机器人所说) 
u_3="好的,那我们先去分诊台" (家属所说)

按照 \ 的使用规则,拼接后的输入序列为:

请问内科门诊今天下午能加号吗?<ts>内科下午加号需先到分诊台登记<ts>好的,那我们先去分诊台<ts>我需要打印之前的检查报告

模型微调: 使用 BERT_BASE_uncased 预训练模型,针对数据集的 m 个 IS 意图做多分类微调 (不包含 OOS 标签)
模型集成: 用 5 个不同随机种子训练 5 个模型,以后续计算不确定性
意图预测:推理时通过对 5 个模型的多数投票确定 utterance 的 IS 意图

OOS 检测策略:

LLM Zero-shot Classification LLM 零样本分类

采用到的 prompt 如下:

**任务描述**
你是一名域外意图检测器 (out-of-domain intent detector),任务是从多参与者的对话中,判断最后一句话语的意图是否属于系统支持的意图类别. 若属于,返回对应的意图标签;否则返回 UNK. 

**系统授权意图类别**
系统支持的意图包括:
[intent_1、intent_2、intent_3、……、intent_N]

**域外标签**
- UNK (表示不属于任何支持意图的域外标签) 

**历史对话**
你可通过以下多参与者的话语历史来理解对话上下文. 每句话语单独一行,且以 "-" 开头:
- previous_utterance_1
- previous_utterance_2
- previous_utterance_3

**预期输出格式**
你的回复只能是一个 JSON 对象,结构如下:
{"intent": "意图标签"}
注意:不要书写任何其他内容. 

**具体任务**
需分类的文本如下:
[utterance_to_classify]

结果:

Uncertainty-based Query Routing 基于不确定性的查询路由

  1. 核心思想
  • 利用微调后的 BERT (轻量、高效) 对大多数 “高置信度” 样本直接输出结果;
  • 仅当 BERT 对样本的预测存在 “高不确定性” (模型自身预测不稳定) 时,才将样本转发给 LLM 处理;
  • LLM 接收的 prompt 包含全部 in-scope (范围内) 意图,不做任何缩减.
  1. 具体步骤

    1. 预准备 —— 多种子微调 BERT: 为了量化 “不确定性”,论文对 BERT 进行了5 次不同随机种子的微调 (使用BERT_BASE_uncased,目标是多分类任务,仅训练 in-scope 意图,不包含 OOS 标签) .

      • 输入处理:为适配多轮对话场景,每个 utterance ( utterance ) 会拼接其前 3 轮对话内容,用标记轮次切换 (如:“S1: 你好S2: 请问挂号在哪当前 utterance: 我想挂内科”) ;
      • 微调细节:如学习率 1e-5、 batch size=16,训练 40 轮,用 macro F1 监控早停
    2. 不确定性量化

      • 对测试集中的每个 utterance,用 5 个微调后的 BERT 分别推理,输出每个 in-scope 意图的softmax 概率 (概率越高,模型越认为样本属于该意图) .
      • 不确定性指标:计算 5 个模型对 “同一意图” 的 softmax 概率的标准差 (σ) .
        标准差低 (σ 小) :5 个模型的预测一致,说明 BERT 对该样本的判断稳定 (确定) ;
        标准差高 (σ 大) :5 个模型的预测差异大,说明 BERT 对该样本的判断不稳定 (不确定) .
    3. 路由规则: 设定 “不确定性阈值” (论文通过验证集确定) :

      • 若样本的不确定性 (σ) 低于阈值:直接采用 BERT 的 “多数投票” 结果 (5 个模型中预测次数最多的意图) ;
      • 若样本的不确定性 (σ) 高于阈值:将该样本 (含对话上下文) 路由给 LLM,由 LLM 判断其为 “某 in-scope 意图” 或 “OOS (范围外) “.
      • 论文设定的阈值:MIntRec2.0 数据集 (30 个 in-scope 意图) :σ=0.10;MPGT 数据集 (8 个 in-scope 意图) :σ=0.12.

实例解析 (基于 MPGT 数据集)
MPGT 是医院场景多轮对话数据集,含 8 个 in-scope 意图 (如request_location (查询位置) 、request_schedule (查询排班) 、inquire_fee (咨询费用) 等) ,OOS 为 “与医院服务无关的意图”.

  1. BERT 确定,直接输出结果
  • Utterance (含上下文) :前 3 轮:“S1: 我到医院了\S2: 需要帮您吗?\S1: 是的”, 当前待分类:“请问药房在哪里?”

  • BERT 推理结果 (5 个模型的 softmax 概率) :

模型种子 预测意图 概率
1 request_location 0.85
2 request_location 0.83
3 request_location 0.84
4 request_location 0.86
5 request_location 0.82

不确定性计算:标准差 σ≈0.015 (远低于 MPGT 阈值 0.12) ,属于 “确定样本”;
路由决策:不调用 LLM,直接输出 BERT 的多数投票结果 ——request_location.

  1. BERT 不确定,路由给 LLM
  • Utterance (含上下文) :前 3 轮:“S1: 我明天要来看病\S2: 已为您挂号\S1: 好的” 当前待分类:“我想查一下明天我的主治医生是谁”

  • BERT 推理结果 (5 个模型的 softmax 概率) :
    模型种子 预测意图 概率
    1 request_doctor 0.45
    2 request_schedule 0.42
    3 request_doctor 0.51
    4 request_schedule 0.38
    5 request_doctor 0.49

  • 不确定性计算:标准差 σ≈0.065 (高于 MPGT 阈值 0.12?不,这里调整数值让 σ=0.15,符合 “不确定”) ;

路由决策:调用 LLM,LLM 的 prompt 包含全部 8 个 in-scope 意图,最终 LLM 判断为request_doctor.

Label Space Reduction 标签空间缩减

  1. Label Space Reduction 核心思想: LLM 在处理 “多意图候选” 时,容易因标签过多导致判断偏差 (尤其当 in-scope 意图数量大时,如 MIntRec2.0 有 30 个) . LSR 的核心是:用 BERT 预测的 “高概率意图子集” 替代 “全部意图”,作为 LLM 的候选标签—— 既保留 BERT 的有效信息,又缩小 LLM 的决策范围.

  2. Label Space Reduction 具体步骤 (在 Uncertainty-based Routing 基础上增加 2 步)

    1. 筛选 “高概率意图子集” K_i
      对已被路由到 LLM 的样本 (BERT 不确定的样本) ,提取 5 个 BERT 模型输出的 “平均 softmax 概率”,并按概率从高到低排序 in-scope 意图. 然后筛选出最小的意图子集 K_i,满足:该子集内所有意图的概率累积和 ≥ 超参数 P (论文通过验证集确定 P=0.85) .
      • 逻辑:P=0.85 意味着 “K_i 包含了 BERT 认为最可能的意图,累积置信度达 85% 以上”,无需保留低概率意图;
      • 效果:论文指出,MIntRec2.0 (30 个意图) 的标签空间平均缩减 80% (K_i 约 6 个意图) ,MPGT (8 个意图) 平均缩减 50% (K_i 约 4 个意图) .
    2. 动态生成 LLM 的 Prompt
      将筛选出的子集 K_i (而非全部意图) 写入 LLM 的 Prompt,同时保留 “OOS 标签 (UNK) “. LLM 仅需在 “K_i + UNK” 中判断,无需考虑所有意图.
    3. LLM 推理与输出: LLM 基于缩减后的标签空间进行分类,输出最终结果 (某意图或 UNK) .
  3. Label Space Reduction 关键参数

  • P (概率累积阈值) :控制标签空间缩减程度. P 越小,K_i 越小 (缩减越显著) ;P 越大,K_i 越大 (越接近全部意图) . 论文选择 P=0.85,原因是:该值在两数据集上能实现 “90% 以上的意图命中率” (即真实意图大概率在 K_i 中) ,同时保证足够的缩减率.
  1. 实例解析 (基于 MIntRec2.0 数据集)
    MIntRec2.0 是 TV show 多轮对话数据集,含 30 个 in-scope 意图 (如Criticize (批评) 、Complain (抱怨) 、Praise (表扬) 等) ,OOS 为 “与对话场景无关的意图”.

实例:LSR 如何缩减标签空间并辅助 LLM, 延续 “Uncertainty-based Routing” 中 “BERT 不确定” 的场景,增加 LSR 步骤:Utterance (含上下文) :前 3 轮:“S1: 她居然把我的东西拿走了\S2: 别生气\S1: 我实在忍不住”, 当前待分类:“她这种行为太不尊重人了”, 步骤如下:

  1. BERT 的概率排序 (平均概率) 30 个 in-scope 意图中,BERT 预测的 top5 意图及概率:

排名 意图 平均概率 累积概率
1 Criticize 0.42 0.42
2 Complain 0.31 0.73
3 Blame 0.14 0.87
4 Disapprove 0.08 0.95
5 Anger 0.05 1.00

  1. 筛选子集 K_i (P=0.85) 累积概率需≥0.85:
  • 前 2 个意图累积 0.73 < 0.85;
  • 前 3 个意图累积 0.87 ≥ 0.85 → 最小子集 K_i={Criticize, Complain, Blame}.
  1. 动态生成 LLM 的 Prompt
    Prompt 中仅列出 K_i (3 个意图) + OOS (UNK) ,而非全部 30 个意图:

“任务:判断最后一句话的意图是否属于支持的意图,否则返回 UNK. 支持的意图:Criticize (批评) 、Complain (抱怨) 、Blame (指责) . 对话上下文:S1: 她居然把我的东西拿走了\S2: 别生气\S1: 我实在忍不住. 待分类句子:她这种行为太不尊重人了. 输出格式:{“intent”: “意图标签”}”

  1. LLM 推理结果
    LLM 无需在 30 个意图中纠结,仅需判断 3 个候选,最终正确输出 Criticize (与论文图 2 中 “人类标注为 Criticize,LLM 原预测为 Complain” 形成对比,LSR 提升了准确性)

Reference

[1]. Intent Recognition and Out-of-Scope Detection using LLMs in Multi-party Conversations.


转载请注明来源 goldandrabbit.github.io