Page 154 - 《软件学报》2025年第4期
P. 154
1560 软件学报 2025 年第 36 卷第 4 期
标注框架仍然存在一定的局限性, 该框架需要大量高质量的数据作为支撑, 很难迁移到包含较多非共享槽类型的
新领域.
随着基于问答的任务不断取得突破, 一些研究者从一种全新的视觉出发, 将槽填充任务转换为 MRC 框架.
Du 等人 [17] 基于槽描述信息为每个槽类型生成问题, 并且采用弱监督的方式构造问答数据对 BERT 进行二次预训
练, 然后再用于槽填充任务. 类似地, Yu 等人 [18] 首先将预训练模型在一个大规模的机器阅读理解语料 SQuAD2.0
中进行预训练, 同样基于槽类型描述词和数据样例为每个槽类型设计相应的查询模板, 通过训练好的模型对查询
中的对应的槽实体位置进行预测. 借助大量语料和模板的作用, 该方法的性能取得了很大的突破. 但是这种框架需
要人工构造启发式的模板, 模型鲁棒性较差, 并且需要借助 QA 数据对模型进行预热, 有很高的时间成本且收集数
据代价较大.
近年来, 随着提示学习范式的兴起, 越来越多的研究者将研究方向转为提示模板的构造. Luo 等人 [21] 在输入序
列中加入的槽前缀提示也是基于这种思想, 同时还分别考虑了冻结预训练模型只训练提示序列和微调全部参数两
者的区别, 实验结果也证实了提示学习的高效性. Yan 等人 [20] 融合了领域知识、槽类型指示信息和若干数据样例
作为提示模板, 利用生成式预训练模型的潜在能力预测实体. 这种融合多种信息的输入模板同样受人工影响较大,
因此模型的鲁棒性较差. 当新领域信息较为复杂时, 输入长度会增加, 影响模型性能. 并且这种单生成的方式忽略
了槽类型之间的潜在依赖信息.
基于上述存在的问题, 本文应用提示学习的思想, 将单实体生成的方式转换为多实体生成, 在提示模板中考虑
了不同槽类型之间的隐式依赖关系. 进一步通过话语填充任务来减轻多个实体生成过程中存在的槽类型错误匹配
问题.
2 方法实现
本文所提方法主要基于生成式槽填充方法, 下面对相关概念和基本知识以及本文提出的方法进行介绍.
2.1 问题定义
对于某个领域 d (d ∈ D) , 存在一个槽类型集合 S = [s 1 , s 2 ,..., s n ] , 槽填充任务的目标是预测话语 U = [u 1 ,u 2 ,...,u n ]
中存在的所有槽值组合 (槽类型和对应的槽实体). 其中, 对于话语中不存在的槽类型通常规定模型生成 None
表示.
2.2 生成式槽填充方法
目前生成式预训练模型在各大任务上取得了优异表现, 本文的模型也基于此框架进行拓展. 传统的生成式框
架只是将指定槽类型的提示与话语进行拼接, 通过生成式预训练模型 (例如: T5、BART) 去得到相应的槽实体. 对
于一个槽类型需要为其选择相应的槽提示文本, 如图 3(a) 所示, 可以直接使用槽类型描述作为提示, 也可以为每个
槽类型分配一个问题文本 (例如: restaurant_name -> what is the restaurant name?). 与传统的生成方式不同, 本文采
用多实体同步生成的方式, 为话语拼接多个槽提示作为输入, 如图 3(b) 所示.
restaurant name 用户话语 restaurant type restaurant name 用户话语
生成式模型 生成式模型
Golden house bakery Golden house
(a) 以往的方法 (b) 本文的方法
图 3 生成式槽填充任务