论文笔记:SCORE: Pre-training for Context Representation in Conversational Semantic Parsing
目录
导语
- 会议:ICLR 2021
- 地址:https://openreview.net/pdf?id=oyZxhRI2RiE
前言
这是从预训练模型上入手来提高这类Conversational Semantic Parsing (CSP)任务上的表现,作者通过使用SCORE替代原来的BERT作为初始化的LM,在四个多轮语义解析任务上取得了SOTA的效果。
摘要
对话语义解析(CSP,Conversational Semantic Parsing)是将自然语言查询序列转换为形式语言(如SQL, SPARQL)的任务,可以在结构化的本体(如数据库,知识库)上执行。为了完成这一任务,CSP系统需要对非结构化语言话语和结构化本体之间的关系建模,同时表示对话的多轮次动态。预训练语言模型(LM)是各种自然语言处理任务的最新技术。然而,现有的预训练LM是在自由形式的文本上使用语言建模训练目标,它们将自然语言引用表示为上下文结构数据的能力有限。在这项研究中,我们提出了一种新的CSP任务训练前方法SCORE,旨在诱导表征,捕捉对话流和结构上下文之间的一致性。我们通过将SCORE与四种不同任务(SPARC、COSQL、MWOZ和SQA)上的强基础系统相结合,证明了SCORE对CSP任务的广泛适用性。我们表明,SCORE可以显著提高所有这些基础系统的性能,并在其中三个系统上实现最先进的结果。
1 简介
通用的预训练模型如BERT等是在free-form的语料上预训练得到的,这些模型对于建模structural context或multi-turn dynamic dialogs等文本方面能力有限。
对于SParC、CoSQL这些对话形式的多轮语义解析任务和SQA、MWOZ等多轮对话任务,这些设置在某些方面有所不同,但它们具有相同的总体目标和关键挑战:如何在考虑对话的多回合动态的同时,共同表示自然语言话语和底层的结构化本体。通过观察发现:CSP任务上的问题比free-form的文本更具有组合特性,因为他们可以被映射到正式的表示中(比如SQL)。这里作者在合成的对话语义解析数据集上进行训练,旨在更好的将问题对齐到schema和建模不同轮次之间问题的关系。提出的SCORE模型通过引入多个捕获多轮对话动态和结构化上下文的目标函数来改进通用的预训练语言模型。
2 方法
2.1 预备知识
所使用四个数据集对比如下:
作者设计了一个新的预训练方法来更好的建模这些compositional question。模型的基本架构如下图:
模型输入包括三部分:当前问题 ,历史问题 和数据库schema。
之后将输入通过一个RoBERTA结构。
2.2 SCORE的预训练
作者定义了三种预训练的目标函数。
-
CCS:即Column Contextual Semantics。这个目标函数用于捕获用户问句utterance(也即question)和数据库模式之间的对齐关系。CCS定义了148种操作将数据库中的column name转变到SQL语句中。(例如GROUP BY、ORDER BY等操作)。设第t轮的输入为 ,对应的SQL语句为 。那么CCS loss可以定义为:
它是一组148分类CrossEntropy的求和。其中, 返回当前SQL语句的column operation label。第i个CrossEntropy计算第i个column name变到SQL语句的操作与 返回的操作label的CrossEntropy。将所有数据库模式里的column name遍历一遍加和就得到了CCS loss。
-
TCS:即Turn Contextual Switch。这个目标函数用于捕获对话上下文信息以及它是如何反应到SQL语句上的。作者定义了26种轮次差异标签,比如INS(WHERE)表示插入了一个新的WHERE条件子句,DEL(SELECT.agg)表示从SELECT主句中移除聚合函数。所以,TCS loss可以被定义如下:
其中 返回真实的第t-1轮SQL语句和第t轮SQL语句的轮次差异。
-
MLM:即Masked Language Modeling。传统的任务,用于保证该预训练模型不会overfit到特定的模式上。
整体的loss即三者加和。
预训练数据包括两部分:自动合成的数据 和之前数据集中那些人工标注的数据 。
2.3 数据合成
自动合成的数据算法表述如下图。
首先采样一个模板(模板是从SParC的训练数据中总结的),然后使用WikiTables、WikiSQL、Spider的数据集来填充数据。后续轮次有20%概率生成一个上下文无关问题,80%概率生成一个follow-up question。
一个合成数据示例如下:
其中,我猜测Turn 1中的Question-SQL Template中的SQL语句写错了,应该把ORDER BY换成WHERE。AS0和AS1对应the largest和the smallest。
3&4 实验与分析
整体结果
作者选取RAT-SQL作为基础模型,然后在上面使用Score预训练模型和使用BERT进行对比实验结果如下:可以看到使用Score之后,在SParC和CoSQL上都取得了SOTA表现。
不同预训练目标函数的差异
同时,作者也分析了使用各种目标函数的差异:
同时使用CCS + TCS loss性能最好,不使用MLM。
不同轮次之间的效果
并且,使用Score可以更好的在后续轮次对话中取得更好的表现:
合成填充数据的效果
而且作者发现假如使用本数据集的训练数据来填充合成,效果微乎其微(作者是用的训练数据集之外的WikiSQL、Spider等数据集的表格数据来作为合成数据的)。
5 相关工作
略
6 总结
我们提出了一种新的对话语义分析训练前方法——SCORE。SCORE的训练目标是诱导自然语言表征,捕捉目标语言的多轮次状态、组合语义以及对话中出现的对结构本体的引用。SCORE可以与许多语义解析模型一起使用,作为一般预训练语言模型的替代。我们通过将其作为一种特征表示编码器,并在广泛的CSP任务的baseline上展示SCORE的有效性。特别地,我们在四个不同的CSP任务上的实证结果表明,通过简单地用我们的SCORE预训练模型替换现有的预训练LM, SCORE可以显著提高现有baseline模型的性能。此外,我们能够在其中三项任务中取得最先进的成果。我们希望SCORE将鼓励进一步探索CSP系统预训练方法的好处和局限性。