©作者 | 社媒派SMP
来源 | 社媒派SMP
中国科学院深圳先进技术研究院自然语言处理团队(SIAT-NLP)联合阿里巴巴达摩院云小蜜智能对话团队提出了一篇针对于任务型对话预训练的工作SPACE,入选国际信息检索顶级学术会议SIGIR 2022主会长文。
收录会议:
论文链接:
代码链接:
本文提出了一种半监督预训练对话模型 SPACE,该模型将任务型对话中的任务流(Task-Flow)概念引入预训练模型架构中,采用单个统一的 Transformer 骨架将对话理解、对话策略和对话生成进行顺序建模,可以同时解决下游各种不同类型的任务型对话相关任务。我们提出半监督预训练的新范式,利用大规模无标对话语料和少量对话标注知识对模型进行有效的学习。
实验结果表明,SPACE 在下游 3 类任务型对话任务(意图识别、对话状态追踪、端到端对话建模),共计 8 个数据集(BANKING77,CLINC150,HWU64,CamRest,In-Car Assistant, MultiWOZ2.0/2.1/2.2)上均取得了 SOTA 性能。
任务型对话是一种非常重要的人机对话系统类型,受到越来越多研究者的关注,其旨在通过自然语言对话的方式,完成用户发出的指令任务。通常情况下,任务型对话系统是为了满足用户在特定场景下的需求,例如天气查询、机票预订、业务咨询等。
Salesforce 的 TOD-BERT [1] 模型利用 9 个任务型对话数据集针对对话理解进行预训练。Microsoft 的 SOLOIST [2] 模型利用 2 个大型任务型对话数据集针对对话生成进行预训练。Amazon 和剑桥大学的 PPTOD [3] 模型利用 11 个部分标注的任务型对话数据集通过多任务学习的方式同时对多种对话任务进行条件生成式预训练。SIAT-NLP 和达摩院的 GALAXY [4] 模型同时利用大规模无标对话语料和少量标注有对话动作的对话语料针对对话策略和生成进行半监督预训练。
然而,尽管预训练对话模型(Pre-trained Conversation Models, PCMs)给对话相关任务带来了卓越的性能提升,但依旧存在着大量的问题:
1. 如 Figure 1 (a)-(b) 所示,现有的 PCMs 只针对对话理解或者生成相关特性进行构建,因此一个 PCM 在只能去解决对话理解或者生成相关的下游任务,缺乏一个统一的 PCM 对各种类型的对话任务进行统一的建模;
2. 现有的 PCMs 通常直接采用 PLMs 相同的损失函数在对话语料上进行预训练,缺乏设计更加符合任务型对话特性的预训练目标;
3. 现有的 PCMs 通常选择纯粹的对话语句作为预训练语料,忽视了对话数据集中存在的各种语义标签知识。
因此,在本文中我们提出一个半监督预训练对话模型 SPACE,该模型能同时用于解决各类下游任务型对话任务。模型在大规模无标对话语料上进行预训练的同时,也能够将少量对话标注知识给注入到模型的预训练过程中,使得预训练更加充分有效。
SPACE 模型采用单个统一的 Transformer 骨架,显式建模了任务型对话中的关键特性----任务流(Task-Flow)。具体来说,模型由四个组件组成:1)对话编码器:编码对话历史以形成对话上下文表征;2)对话理解解码器:学习当前轮用户询问或者系统回复语句的语义向量;3)对话策略解码器:生成当前轮策略语义向量;4)对话生成解码器:生成合适的回复语句。
在编码器中我们采用双向的自注意力机制,在三个解码器中采用从左到右的单向自注意力机制以维护任务流的单向流动性。针对不同的模块,我们设计了专门的 5 个预训练目标:片段掩码语言建模、半监督理解语义建模、语义区域建模、策略语义建模和回复生成建模,最终以多任务学习的方式来训练整体模型。
同时,本文也贡献了一个大规模无标对话数据集 UnPreDial 和一个有标对话数据集 AnPreDial 来促进任务型对话预训练方面的相关研究。
预训练数据构建
如此的语义标注信息自然地能够展开为一棵半结构化的多叉树,这里我们将它称为语义树。一棵标准的语义树通常包含四层结构:领域层,意图层,词槽层和实体层。每层都把语义标注中的相应成分视作该层的节点。如果其中某层没有相应的标注信息提供,那么该层的节点将被置为空节点 (NULL)。具体来说,语义树第一层由域节点组成,作为根节点 (root) 的后继节点和意图节点的前驱节点。词槽节点占据语义树的第三层,同时作为意图节点的孩子节点和词槽节点的父节点。最后,实体节点作为叶子节点占据语义树的最后一层。
对话历史编码器
我们利用一个双向注意力的 Transformer 结构来编码输入的对话上下文语句 c,将对话历史编码成对话上下文表征用于捕捉对话中公共和重要的信息,为后续的模块提供语义支撑。
对话理解解码器
对话策略解码器
对话生成解码器
我们在对话策略解码器的后面拼接上一个单向注意力的 Transformer 结构作为我们的对话生成解码器,以自回归的方式生成当前轮的回复语句返回给我们的用户。
半监督理解语义建模
对于没有语义标注的用户查询语句,我们采用简单的自监督对比学习目标,只有增强后的样本会被当作成为正例,具体的计算公式如下:
最终,我们采用多任务学习的方式联合训练以上五个预训练目标,最终的损失函数定义如下:
评估数据集
意图识别:针对于意图识别任务,我们在 BANKING77, CLINC150, HWU64 三个数据集上进行了实验。BANKING77 是一个单轮银行单领域的数据集,共计 77 个意图类别;CLINC150 是一个 10 个领域的多领域数据集,共计 150 个意图类别;HWU64 是一个 21 个领域的多领域数据集,共计 64 个意图类别。
对话状态追踪:针对于对话状态追踪任务,我们在 MultiWOZ2.2 数据集上进行了实验,该数据拥有 7 个不同的领域,共计 1w 个多轮对话。
端到端对话建模:针对端到端对话建模,我们在CamRest, In-Car Assistant, MultiWOZ2.0和MultiWOZ2.1四个数据集上进行了实验。CamRest是一个单领域的餐馆预定的数据集;In-Car Assistant是一个三个领域的车载助手场景的任务型对话数据集。MultiWOZ2.0和MultiWOZ2.1是两个多领域的任务型对话数据集。
独立评估
针对于需要测评的 3 个任务,我们首先在各个数据集上与该任务上相关的所有 baseline 模型进行独立的评估,在每个独立的数据集上 SPACE 模型都取得了一个新的 SOTA 性能。意图识别类任务,对话状态追踪类任务以及端到端对话建模类任务的实验结果分别如下表所示:
为了更好地比较 SPACE 在所有任务上的综合性能,我们还选取了一些其他的预训练对话模型,在所有任务上和 SPACE 进行统一的比较,然后计算出综合得分进行整体评估。该部分实验设置分为全集测评和小样本测评两种,在两种测评下 SPACE 模型也都取得了 SOTA 得分,具体的实验结果如下表所示:
消融实验
我们同时也在部分数据集上做了消融实验,来验证以下 4 个模块对整体模型性能的影响,分别是采用 prompt 而非 [CLS] 位置来进行语义提取对模型性能的影响,以及半监督理解语义建模,语义区域建模,策略语义建模对应的 3 块预训练损失函数带来的增益和影响,具体的实验结果如下表所示:
案例分析
如下图所示,我们直观的展示了 SPACE 模型和其他 baseline 模型在端到端对话生成任务上的生成结果。从对比中可以看出,我们的 SPACE 模型可以在前两轮对话中选择了正确的对话动作,以致于整体对话可以朝着完成任务的正确方向进行延续,也验证了我们的模型具有很强的策略规划和回复生成的能力。
参考文献
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
点击「关注」订阅我们的专栏吧