【论文阅读笔记|ICLR2021】TANL:Structured Prediction as Translation between Augmented Natural Languages

论文题目:Structured Prediction as Translation between Augmented Natural Languages

论文来源:ICLR2021

论文链接:2101.05779.pdf (arxiv.org)

代码链接:GitHub - amazon-science/tanl: Structured Prediction as Translation between Augmented Natural Languages

0 摘要

我们提出了一个新的框架,增强自然语言间的翻译(TANL),来解决许多结构化预测语言任务,包括联合实体和关系抽取、嵌套命名实体识别、关系分类、语义角色标记、事件抽取、共引用解析和对话状态跟踪。我们没有通过训练特定任务的鉴别分类器来解决这个问题,而是将其框架为增强自然语言之间的翻译任务,从中可以很容易地提取与任务相关的信息。我们的方法可以在所有任务上匹配或优于特定任务的模型,特别是在联合实体和关系抽取(CoNLL04、ADE、NYT和ACE2005数据集)、关系分类(FewRel和TACRED)和语义角色标记(CoNLL-2005和CoNLL- 2012)方面取得了新的最先进的结果。我们在对所有任务使用相同的架构和超参数来完成这一任务,甚至在训练单一模型同时解决所有任务时(多任务学习)时。最后的结果表明,我们的框架也可以在低资源环境下显著地提高性能,这得益于更好地使用标签语义的方法。

1 引言

结构化预测指的是输出空间由结构化对象组成的推理任务,例如,代表实体和实体之间关系的图。在自然语言处理(NLP)的背景下,结构化预测涵盖了广泛的问题,如实体和关系提取、语义角色标签和核心推理解决。例如,给定输入句子“Tolkien’s epic novel The Lord of the Rings was published in 1954-1955, years after the book was completed”,我们可能会寻求提取以下图形(分别在实体和关系联合提取以及核心推理解决任务中):

大多数方法都是在预训练好的转换编码器(如BERT)的基础上,为各种类型的关系或属性采用特定的任务判别器来处理结构化预测。然而,这有两个限制。首先,鉴别性分类器不能轻易利用预训练好的模型可能已经拥有的关于任务标签(如人和作者)的意义(语义)的潜在知识。例如,知道一个人可以写一本书将大大简化上述例子中的作者关系的学习。然而,判别性模型通常是在不了解标签语义的情况下进行训练的(他们的目标是类的数字),从而阻止了这种积极的转移。其次,由于鉴别性模型的结构是适应特定任务的,因此很难训练一个模型来解决许多任务,或者在不改变鉴别器的特定任务成分的情况下从一个任务到另一个任务对模型进行微调(转移学习)。因此,我们的主要问题是:能否设计一个框架来解决具有相同架构的不同结构化预测任务,同时利用预训练模型可能具有的关于标签语义的任何潜在知识? 

在本文中,我们提出用一个文本到文本的模型来解决这个问题,并将其框架为增强自然语言(TANL)之间的翻译任务。图1显示了在三个不同的结构化预测任务的情况下,如何在我们的框架中处理前面的示例。增强语言的设计方式是,易于在输入中对结构化信息(如相关实体)进行编码,并将输出文本解码为结构化信息。

我们展示了out-of-the-box transformer模型可以很容易地学习这个增强语言翻译任务。事实上,我们成功地将我们的框架应用于广泛的结构化预测问题,在许多数据集上获得了新的最先进的结果,并在所有其他数据集上获得了高度竞争的结果。我们通过在所有任务上使用相同的架构和超参数来实现这一点,任务之间唯一的区别是增强的自然语言格式。这与以前使用特定于任务的判别模型的方法形成了鲜明对比。输入和输出格式的选择是至关重要的:通过使用尽可能接近自然语言的格式的注释,我们允许转移预先训练的模型关于任务的潜在知识,提高性能,特别是在少量数据的情况下。嵌套的实体和任意数量的关系被我们的模型巧妙地处理,同时也是以前方法的典型复杂来源。我们实现了一种对齐算法,将从输出句子中提取的结构信息与输入句子中对应的token进行稳健匹配。

我们还利用我们的框架来训练一个单个模型来同时解决所有任务,并表明在在每个任务上单独训练方面,它获得了类似或更好的结果。据我们所知,这是第一个处理如此多的结构化预测任务,而不处理任何附加的特定任务模块的模型。

主要贡献如下。

  1.  TANL是一个以统一的方式解决多个结构预测任务的框架,它具有一个通用的体系结构,并且不需要特定于任务的模块。我们将结构化预测任务转换为翻译任务,通过设计增强的自然语言,允许我们将结构化信息编码作为输入或输出的一部分。鲁棒对齐确保了提取的结构与原句子的正确部分相匹配(第3节)。
  2. 我们的框架适用于于(1)联合实体和关系抽取;(2)命名实体识别;(3)关系分类;(4)语义角色标记;(5)指代消解;(6)事件抽取;(7)对话状态追踪。在联合实体和关系提取(CoNLL04、ADE、NYT和ACE2005数据集)、关系分类(FewRel和TACRED)和语义角色标记(CoNLL-2005和CoNLL-2012)方面实现了新的最好的性能。
  3. 我们还在所有任务上同时训练一个单一模型(多任务学习),与单任务模型相比,获得了类似或更好的结果(第5.1节)。
  4. 结果表明,由于标签语义知识转移的改进,我们可以与以前的方法相比显著提高小样本机制的性能(第5.2节)。
  5. 结果表明,虽然我们的模型是生成的(它输出一个句子,而不是类标签),但它可以通过使用输出标记似然作为类分数的代理来有区别地评估,从而产生更准确的预测。

2 相关工作

NLP中许多经典的结构化预测(SP)方法都是传统分类算法的推广,其中包括条件随机场、结构化感知器和结构化支持向量机。最近,人们提出了将SP集成到深度学习方法中的multiple efforts。常见的方法包括将SP层作为神经网络的最后一层,并将SP直接纳入DL模型中。

目前最先进的NLP中SP方法在预训练的语言模型学习的特征之上训练特定任务的分类器,如BERT。在这项工作中,BERT MRC使用两个分类模块进行NER,分别预测给定输入句子的一个实体对应的第一个和最后一个token。对于联合实体和关系提取,SpERT使用类似的方法来检测与实体对应的token跨度,然后是一个关系分类模块。在共引用解析的情况下,许多方法采用高阶共引用模型,该模型学习所有可能的前验实体标记跨度的概率分布。

与此工作相关的还有关于多任务学习和SP的序列到序列(seq2seq)模型的论文。Raffel等人(2019)描述了一个框架,将翻译和摘要等问题转换为自然语言中的文本到文本任务,利用了基于transformer的语言模型的迁移学习能力。其他序列到序列的方法通过直接生成所需的输出来解决特定的结构化预测任务:例如,参见WDec的实体和关系提取,以及SimpleTOD和SOLOIST的对话状态跟踪。更接近我们的是GSL,引入了术语增强自然语言,展示了生成方法在序列标注任务中的早期应用,如slot标记、intent分类和没有嵌套实体的命名实体识别。我们的方法也与之前使用seq2seq方法进行解析的工作有关,主要区别在于我们提出了一个通用框架,使用增强的自然语言作为统一多个任务和利用标签语义的方法。在某些情况下(例如,关系分类),我们的输出格式类似于问答任务。该范例最近被证明对一些结构化预测任务是有效的,如实体和关系提取和共参考解析。

3 模型

我们将结构化预测任务框架为文本到文本的翻译问题。输入和输出遵循适合于给定任务的特定增强的自然语言,如图1所示。在本节中,我们将描述格式设计的概念和我们用于推理的解码过程。

增强的自然语言

我们使用联合实体和关系抽取任务作为我们的增强的自然语言格式的指导示例。给定一个句子,这个任务的目的是提取一组实体(一个或多个连续的标记)和一组实体对之间的关系。必须将每个预测的实体和关系分配给一个实体或一个关系类型。在所有考虑的数据集中,关系是不对称的;也就是说,哪个实体在关系中先出现(头部实体),哪个第二出现(尾部实体)。下面是为此任务设计的增强的自然语言(也如图1所示):

Input: Tolkien’s epic novel The Lord of the Rings was published in 1954-1955, years after the book was completed.
Output: [ Tolkien | person ] ’s epic novel [ The Lord of the Rings | book | author = Tolkien ] was published in 1954-1955, years after the book was completed.

具体来说,所需的输出复制了输入的句子,并使用可以解码为结构化对象的模式来增强它。对于这个任务,每个由一个实体和可能的某些关系组成的组都由特殊的token [ ] 包围。一个由  | 分隔的标签序列以“X=Y”的格式描述了实体类型和一个关系列表,其中X是关系类型,Y是另一个实体(关系的尾部)。注意,相关的对象都在封闭的模式中“[…|……]”。然而,我们复制输入句子中的所有单词,因为当句子包含多个相同实体时,它有助于减少歧义。我们的消融实验表明,它还改善了学习能力。在目标输出句子中,实体和关系类型是用自然单词(如人、位置)来描述的——而不是像PER、LOC这样的缩写——以充分利用预训练过的模型对这些单词的潜在知识。

对于某些任务,可以作为输入的一部分提供额外的信息,例如语义角色标记或共引用解析中的相关实体的跨度(参见图1)。我们在第4节中详细介绍了所有结构化预测任务的输入/输出格式。

嵌套的实体和多个关系

嵌套模式允许我们表示实体的层次结构。在下面的ADE数据集的示例中,实体“lithium toxicity”是类型疾病,并具有类型药物的子实体“lithium”。实体“lithium toxicity”涉及多种关系:一种与实体“acyclovir”的类型效应,另一种与实体“lithium”的类型效应。一般来说,输出中的关系可以以任何顺序发生。

Input: Six days after starting acyclovir she exhibited signs of lithium toxicity.
Output: Six days after starting [ acyclovir | drug ] she exhibited signs of [ [ lithium | drug ] toxicity | disease | effect = acyclovir | effect = lithium ] .

解码结构化对象

一旦模型以增强的自然语言格式生成一个输出句子,我们就对该句子进行解码,以获得预测的结构化对象,如下所示。

  1. 删除所有特殊的token并提取实体类型和关系,以生成干净的输出。如果生成的句子的一部分具有无效的格式,则将丢弃该部分。
  2. 我们使用基于动态规划(DP)的Needleman-Wunsch alignment algorithm来匹配输入句子和清理后的输出句子。然后,我们使用这种对齐来识别与原始输入句子中的实体对应的token。如我们的消融实验所示,这一过程提高了对模型潜在的不完善生成的鲁棒性。
  3. 对于输出中提出的每个关系,我们寻找与预测的尾部实体完全匹配的最近的实体。如果这样的实体不存在,则将丢弃该关系。
  4. 我们丢弃其预测类型不属于数据集依赖的类型列表的实体或关系。

为了更好地解释步骤2中的DP alignment,参考下面的示例,其中输出包含一个拼写错误的实体单词“Aciclovir”(而不是“acyclovir”)。清洗后的输出包含单词“Aciclovir”,标记为“a-cicl-o-vir”,与输入中的“a-cycl-o-vir”相匹配,从中我们推断它指的是“阿昔洛韦”。

Generated output: Six days after starting [ Aciclovir | drug ] she exhibited signs of [ [ lithium | drug ] toxicity | disease | effect = Aciclovir | effect = lithium ] .
Cleaned output: Six days after starting Aciclovir she exhibited signs of lithium toxicity .

多任务学习

我们的方法自然允许我们在多个数据集上训练单个模型,该数据集可以覆盖许多结构化的预测任务。在此设置中,我们将数据集名称后面跟着的任务分隔符:(例如,“ade:”)作为每个输入语句的前缀。

分类预测任务

对于像关系预测这样的任务,如果有效输出的数量有限,那么执行分类的另一种方法是计算所有可能输出的类分数,并预测得分最高的类。实验结果证明了我们可以使用输出序列可能性作为这种分数的代理。

4 结构化预测任务

联合实体和关系的提取。此任务的格式和细节见第3节。

命名实体识别(NER)。这是前一任务的实体特殊情况。

关系分类

在这个任务中,我们给出一个带有头和尾实体的输入句子,并试图对它们之间的关系类型进行分类,从预定义的关系集中进行选择。由于头部实体在输入句子中不一定先于尾部实体,所以我们在原始输入句子之后添加一个短语“The relationship between [ head ] and [ tail ] is”。输出重复这个短语,然后是关系类型。在下面的例子中,头部和尾部的实体是“Carmen Melis”和“soprano”,它们的关系类型是voice type

Input: Born in Bologna, Orlandi was a student of the famous Italian [ soprano ] and voice teacher [ Carmen Melis ] in Milan. The relationship between [ Carmen Melis ] and [ soprano ] is
Output: relationship between [ Carmen Melis ] and [ soprano ] = voice type

语义角色标注(SRL)

这里我们得到一个输入句子和一个predicate,并试图预测论元列表和类型。每个论元都对应于以特定的方式(例如subject, location, or time)与谓词相关的一个标记跨度。谓词在输入中标记,而参数在输出中标记,并被分配一个参数类型。在下面的例子中,“已售出”是感兴趣的谓词。

Input: The luxury auto maker last year [ sold ] 1,214 cars in the U.S.
Output: [ The luxury auto maker | subject ] [ last year | temporal ] sold [ 1,214 cars | object ] [ in the U.S. | location ]

事件抽取

此任务需要提取出(1)事件触发词,每个事件触发词指示真实事件的发生,(2)触发词论元指示与每个触发词关联的属性。在下面的例子中,有两个事件触发词,"attacked"触发attack事件、"injured"触发injury事件。我们使用与NER中相同的格式来执行触发词检测。为了执行论元提取,我们每次考虑单个触发词作为输入。我们在输入中标记触发词(及其类型),并使用类似于联合实体和关系提取的输出格式。下面,我们展示了一个关于“attacked”的触发词的论元提取示例,其中需要提取两个论元,即论元“Two soldiers”角色为target和论元“yesterday”角色为attack time

Trigger extraction input: Two soldiers were attacked and injured yesterday.
Trigger extraction output: Two soldiers were [ attacked | attack ] and [ injured | injury yesterday.
Argument extraction input: Two soldiers were [ attacked | attack ] and injured yesterday.
Argument extraction output: [ Two soldiers | individual | target = attacked ] were attacked and injured [ yesterday | time | attack time = attacked ] .

指代消解

这是将引用相同的真实世界实体的单个文本跨度(提及)进行分组的任务。对于不是一个第一次出现的群体,我们引用第一次提到。在下面的例子中,“his”指的是“Barack Obama”,并在输出中被标记为[ his | Barack Obama ]  

Input: Barack Obama nominated Hillary Rodham Clinton as his secretary of state on Monday. He chose her because she had foreign affairs experience as a former First Lady.
Output: [ Barack Obama ] nominated [ Hillary Rodham Clinton ] as [ his | Barack Obama ] [ secretary of state | Hillary Rodham Clinton ] on Monday. [ He | Barack Obama ] chose [ her | Hillary Rodham Clinton ] because [ she | Hillary Rodham Clinton ] had foreign affairs experience as a former [ First Lady | Hillary Rodham Clinton ] .

对话状态追踪(DST)

在这里,我们输入对话的历史,通常在用户(试图实现一个目标)和代理(试图帮助用户)之间。所需的输出是对话状态,由预定义列表中的每个键(或slot name)的值组成。在输入对话历史记录中,我们添加前缀“[user]:”和“[agent]:”来分别描述用户和代理回合。

我们的输出格式包括所有槽名及其预测值的列表。我们添加了“[belief]”分隔符,以帮助模型知道何时停止生成输出序列。我们用对话历史中的没有提到的插槽标记为“not given”的值(为了简洁起见,我们没有在下面的示例中显示它们)。

Input: [ user ] : I am looking for a cheap place to stay [ agent ] : How long? [ user ] : Two
Output: [ belief ] hotel price range cheap, hotel type hotel, duration two [ belief ]

5 实验

在本节中,我们展示了我们的TANL框架,使用在第4节中概述的增强的自然语言,可以有效地解决所考虑的结构化预测任务,并超过了之前在多个数据集上的技术水平。我们所有的实验都从预训练的t5基模型开始。为了使我们的框架尽可能简单,超参数在所有实验中都是相同的,除了一些特定于数据集的超参数,比如最大序列长度。

5.1单任务实验和多任务实验

在我们的实验中,我们使用了三种数据设置:

  1. 单个数据集
  2. 同一任务中的多个数据集(多数据集)
  3. 所有任务中的所有数据集(多任务)

数据集:

  • 联合实体和关系提取:CoNLL04、ADE、NYT和ACE2005
  • 命名实体识别:CoNLL03、OntoNotes、GENIA、ACE2005
  • 关系分类:FewRel和TACRED
  • 语义角色标记:CoNLL05 WSJ、CoNLL05 Brown、CoNLL2012
  • 事件抽取:ACE2005
  • 指代消解:CoNLL-2012
  • 对话状态追踪:MultiWOZ 2.1

我们在NYT数据集上F1值提高了6.2%。有趣的是,这一结果高于使用真实实体进行关系提取的模型的性能,如REDN。在指代消解任务中,TANL的性能与之前使用bert基础模型的方法类似,除了CorefQA。据我们所知,我们的方法是第一个共同引用决议的终端方法,不需要单独的提及提案模块,也不强制执行最大的提及长度。

事实上,在这个统一的框架下,单个模型可以被训练一次执行多个或所有任务,其性能与单任务设置相当甚至更好。特别是,当数据集大小较小时,例如ADE或CoNLL04,我们获得了相当大的改进,并成为最新的技术状态(ADE关系F1从80.6到83.7,CoNLL04实体F1从89.4到90.6)。

我们的多任务模型得分明显较低的唯一情况是指代消解,其中输入的文档比其他任务中的文档要长得多。自多任务实验的最大序列长度实验(512 token)小于单一数据集共引用实验(1536 token输入和2048输出),输入文档需要分成更小的块,这伤害了模型的能力连接多个提到相同的实体在不同的块。在多任务实验中,我们剔除了所有基于ACE2005的数据集,除了由于不同任务的训练和测试分割存在重叠而导致的事件提取。

本文给出的所有结果都是一个预先训练的t5基模型。原则上,任何预先训练过的生成式语言模型都可以使用,如BART或GPT-2。检查这些模型是否像T5(甚至更好)一样能够学习在增强语言之间的翻译将是一件有趣的事情。我们把此作为未来调查的方向。

5.2 小样本设置

多个实验表明,与其他基线相比,TANL是数据效率较高的。在FewRel数据集上,这是一个小样本关系分类的基准,我们的模型优于最佳基线BERTEM和BERTEM+MTB,其中MTB版本使用一个大型实体链接的文本语料库进行预训练。在TACRED关系分类数据集上,我们的模型也改进了最佳基线(从71.5到71.9)。虽然TACRED不是一个专门的小样本数据集,但我们观察到有许多标签类型很少出现在训练集中,在大约70,000个训练标签实例中,其中一些出现的次数少于40次。我们在附录(表3)中显示了所有标签类型的发生情况统计数据,这表明数据集是高度不平衡的。尽管如此,我们发现我们的模型表现得很好,即使是在涉及稀缺标签类型的实例上。这种能力区分我们的模型与其他少数方法如原型网络或匹配网络,仅为少数场景但不在现实世界的数据通常包含高和低资源的标签类型。

我们对联合实体和关系抽取任务的小样本研究也证实了我们的方法比其他方法更具有数据效率。我们在CoNLL04数据集上进行了实验,只使用了0.8%(9个句子)到6%(72个句子)的训练数据。在这种低资源的情况下,我们的方法优于SpERT(联合实体和关系提取的最先进的鉴别模型),而当使用整个训练集时,性能是相似的。

多亏了统一的框架,我们可以很容易地在一个任务上进行训练,可能会使用更大的资源,并适应其他小样本的终端任务(迁移学习)。为了证明这一点,我们使用来自联合实体和关系提取(NYT)的大数据集训练一个模型,并在CoNLL04数据集的有限部分上对其进行微调(图2),获得了显著的性能提高(高达+9关系F1)。

5.3 消融实验

我们进行了消融研究,以证明标签语义、增强的自然语言格式和最佳对齐都有助于TANL的有效性(图2b)。

  • numeric labels:为了防止模型通过标签语义来理解任务,我们使用了数字标签。这极大地损害了性能,特别是在资源较少的迁移学习更重要的环境中。
  • Abridged output:第二,为了确定在第4节中概述的增强的自然语言格式的影响,我们实验了一种不重复整个输入句子的格式。我们发现这种删节格式持续损害模型性能,特别是在资源不足的场景中。在其他任务中,我们通常会发现一个看起来更自然的格式通常表现得更好。
  • No DP alignment:我们使用精确的单词匹配,而不是在第3节中描述的动态规划对齐。

6 讨论与结论

我们已经证明了我们的结构化预测的统一文本到文本方法可以在一个简单的框架内处理所有考虑过的任务,并在小样本设置中获得很好的性能。与文献中常见的判别模型不同,TANL具有生成性,因为它在增强的自然语言中从输入转换为输出。

生成模型,特别是序列到序列的模型,已经成功地应用于许多NLP问题中,如机器翻译、文本摘要等。这些任务涉及从一个自然语言输入到另一个自然语言输出的映射。然而,使用序列建模进行结构化预测却很少得到考虑。这可能是由于人们认为生成方法太不受约束,它不是生成对应于结构化对象的精确输出格式的鲁棒的方法,或者它可能会对判别模型增加不必要的复杂性层。我们证明了这是完全相反的。生成方法可以很容易地处理不同的任务,即使是同时,通过输出适合于每个任务的特定结构,并且很少有格式错误。

我们注意到,当前生成方法的一个缺点是,每个token生成的时间复杂度是O(L^{2}),其中L是句子长度。然而,最近在注意机制方面取得了进展,降低复杂性为O(L logL)例如Reformer,或O(L)例如Linformer。在未来结合这些技术可以显著减少计算时间,并允许我们处理更复杂的任务,以及改进具有长输入序列的数据集,如共引用分辨率。

我们认为生成建模是非常有前途的,但在结构化预测中一直是一个有待研究的课题。我们的研究结果证实了最近的一个趋势,即使用生成方法,通常用鉴别方法处理的任务已经成功解决。我们希望我们的研究结果将促进生成方向的进一步研究。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值