发表:ACL 2022
引用:Lu Y, Liu Q, Dai D, et al. Unified structure generation for universal information extraction[J]. arXiv preprint arXiv:2203.12277, 2022.
论文地址:https://arxiv.org/pdf/2203.12277.pdf
代码地址:https://github.com/universal-ie/UIE
1 背景与问题
信息提取 (Information extraction,IE) 旨在从非结构化文本中识别和构建用户指定的信息(Andersen et al., 1992; Grishman, 2019)。IE 任务由于其不同的目标(entity、relation、event、sentiment 等)、异构结构(spans、triplets、records 等)。
目前,大多数 IE 方法都是任务专业化的。对应不同的抽取方式。由此产生了几个问题:
- 为各种 IE 任务/设置/场景开发专用架构比较复杂
- 孤立的模型限制了相关任务和设置之间的模型共享
- 构建专门用于不同 IE 任务的数据集和知识源耗时耗力
因此,开发一种通用 IE 架构将有很大好处,可以统一建模不同的 IE 任务,自适应地预测异构结构并从各种资源中有效地学习,本文称之为 Universal IE。
所有 IE 任务都可以被建模为文本到结构的转换( text-to-structure transformations),具有不同的任务对应于不同的结构。
例如,如图 1 所示,entity 是命名为 span structure,event 是 schema-defined record structure。IE 中的这些文本到结构的转换可以进一步分解为几个原子转换操作:
- Spotting,它定位与给定特定语义类型相关的desirable spans(Kripke 和 Munitz,1971;Chen 和 Yuille,2004)。例如,locating span "Steve" as a Person entity and locating "excited" as a sentiment expression。
-
Associating,通过将跨度分配给预定义模式中的语义角色来连接spans (Onyshkevych,1994;Milward 和 Thomas,2000)。例如,associating "Steve" and "Apple" by assigning them as the Arg1 and the Arg2 of a Work-for relation。
Figure 1
不同的IE任务可以分解为一系列原子文本到结构的转换,所有IE模型共享相同的底层发现和关联能力。例如,实体提取可以看作是发现相应实体类型的提及跨度(spotting mention spans),而事件检测可以重新表述为发现具有事件类型的触发器跨度(spotting triggers spans)。并且这两个任务之间共享发现能力。
解决方法
基于上述观察,本文提出了 UIE,这是一种统一的文本到结构生成架构(unified text-to-structure generation architecture),可以普遍对不同的 IE 任务进行建模,自适应地生成目标结构,并协同学习来自不同知识源的一般 IE 能力。
- 为了模拟异构 IE 结构(heterogeneous IE structures),本文设计了一种结构提取语言(structural extraction language ,SEL),可以有效地将不同的 IE 结构编码为统一的表示,以便可以在相同的文本到结构生成框架中普遍建模各种 IE 任务。
- 为了自适应地为不同的 IE 任务生成目标结构,同时本文还提出了 structural schema instructor (SSI),这是一种基于模式的提示机制,用于控制要发现的内容、要关联的内容以及 UIE 中生成的内容。
为了训练 UIE 的常见 IE 能力,本文从大规模异构数据集上预训练 UIE。
以下介绍具体的方法。
2 Unified Structure Generation for Universal Information Extraction
由于 IE 任务的多样性,有许多不同的目标结构来提取,例如实体、关系、事件等。其次,IE 任务通常是特定于需求的,使用不同的模式定义,因此我们需要自适应地控制提取过程。
2.1 Structured Extraction Language for Uniform Structure Encoding
IE 结构生成可以分解为两个原子操作:
- Spotting 表示从句子中定位目标信息片段,例如事件中的实体和触发词。
- Associating 表示根据理想的关联连接不同的信息片段,例如实体对之间的关系或事件与其参数之间的角色。然后可以将不同的 IE 结构表示为原子结构生成操作的组合。
如图 2a 所示,每个 SEL 表达式包含三种类型的语义单元:
- SPOTNAME 表示源文本中存在的点名类型有一个特定的信息片段;
- ASSONAME 表示源文本中存在一个特定的信息片段,它与结构中其 upper-level Spotted 信息的关联;
- INFOSPAN 表示对应于源文本中特定发现或关联信息片段的文本跨度。此外,SEL 中的“:”表示从 InfoSpan 到其发现或关联名称的映射,两个结构指标 “(" 和 ")” 用于形成提取信息之间的层次结构。
使用 SEL,图 2b 显示了如何表示实体、关系和事件结构。
有三个实体,每个实体表示为一个spotting structure, such as "person:Steve", "organization:Apple", and "time:1997"; one relation which is represented as an association structure between "Steve" and "Apple" with association name work for; and one event which is represented as an association structure, where the trigger is a spotting structure "start-position:became", and its arguments are associated with the trigger: Steve as employee, Apple as employer, 1997 as time.
SEL 的优点是:
1)统一编码不同的 IE 结构,因此不同的 IE 任务可以建模为相同的文本到结构的生成过程;
2)有效地表示同一结构中句子的所有提取结果,从而可以自然进行联合提取;
3)生成的输出结构非常紧凑,大大降低了解码的复杂度。
2.2 Structural Schema Instructor for Controllable IE Structure Generation
由于不同的 IE 任务具有不同的模式,这里的一个挑战是如何自适应地控制我们在提取过程中想要生成的哪些信息。
例如,给定一个句子“Steve became CEO of Apple in 1997.”。entity recognition system将生成“((person: Steve) (organization: Apple) (Time: 1997))”,系统将生成 “(start position: became (employee: Steve) (employer: Apple))”。
为此,本文提出了 structural schema instructor (SSI),这是一种基于 prompt 的机制,用于控制需要发现和关联哪些类型的信息。
图 3 显示了 UIE 的总体框架。
2.2.1 Structural Schema Instructor
为了描述任务的提取目标,structural schema instructor 构建了一个 schema-based prompt,并在生成期间将其用作前缀。
SSI 包含三种类型的 token segments:
1)SPOTNAME:特定信息提取任务中的目标定位名称,例如 NER 任务中的“person”;
2)ASSONAME:目标关联名称,例如关系提取任务中的“work for”;
3)Special Symbols ([spot], [asso], [text]) 在每个 SPOTNAME、ASSONAME 和输入文本序列之前添加。SSI 中的所有标记都被连接起来并放在原始文本序列之前。
如图3所示,UIE的整个输入形式为:
s⊕x =
=
例如,SSI "[spot] person [spot] company [asso] work for [text]" 表示从句子中提取关系模式“the person for the company”的记录。给定SSI,UIE首先对文本 x 进行编码,然后使用 encoder decoder 的架构在线性化SEL中生成目标记录 y。
基于模式的提示的优点有:
1)有效地指导UIE的 SEL 生成,使通用IE能力可以转移到新的IE任务中;
2)自适应控制哪个发现哪个关联,哪些要生成,以便可以更好地共享跨不同标签和任务的语义知识。
2.2.2 Structure Generation with UIE
给定 SSI s 和文本 x 作为输入的结构生成,UIE 通过生成线性化 SEL 来提取目标信息。本文使用编码器-解码器风格的架构制定了这种文本到文本的 SEL 生成过程。
首先计算隐藏表示 H :
然后 UIE 将输入文本以自回归的方式解码为线性化SEL。在解码的第 i 步,UIE 生成 SEL 中的第 i 个token 和 decoder 状态
:
通过语言和生成标签和结构,此方法可以有效地将知识从预训练的语言模型(例如 BART (Lewis et al., 2020)、T5 (Raffel et al., 2020))转移到相关任务可以很容易地共享知识,因为它们的标签具有相似的语义(例如,location 和 place),并共享常见的 label-text associations(例如,victim for different event types)。
3 Pre-training and Fine-tuning for UIE
1)如何预训练一个大规模的 UIE 模型,该模型捕获不同 IE 任务的常见 IE 能力;
2)如何通过快速微调使 UIE 适应不同设置中的不同 IE 任务。具体来说,我们首先从 Web 收集几个大规模数据集,包括结构化(例如知识库)、非结构化(例如原始文本)和并行(例如 Wikipedia-Wikidata 链接)数据,然后我们在这些异构数据集上统一预训练我们的 UIE 模型。
3)最后,我们通过按需微调将预训练的UIE模型应用于特定的下游IE任务。
3.1 Pre-training Corpus Construction
UIE 需要对文本进行编码、将文本映射到结构并解码有效结构。
是文本结构并行数据,其中每个实例都是一个并行对(标记序列 x,结构化记录 y)——用于预训练 UIE 的文本到结构的转换能力。
是结构数据集,其中每个实例都是结构化记录 y——用于预训练UIE的结构解码能力。
是非结构化文本数据集(维基百科)——用于预训练UIE的语义编码能力。
3.2 Pre-training
使用上述预训练数据集的三个序列生成任务对UIE进行预训练。
,对于每个平行对 (x, y),提取记录 y 中的 spot type
和 associating type
作为正样本
。为了学习泛化能力,同时自动为每一对构造负样本,则
连接起来。
例如,person 和 work 是记录“((person: Steve (work for: Apple)))”中的样本,对 vehicle 进行采样并 located in 为负样本以构建 meta 。
最后,文本到结构预训练的目标是:
Structure Generation Pre-training with
为了预训练生成由 SEL 和模式定义的有效结构的能力,将UIE decoder 预训练为结构化语言模型,其中 中的每个记录都是SEL的表达式:
通过对结构生成的预训练,decoder 可以捕获SEL的规律性和不同标签之间的交互。
Retrofitting Semantic Representation using
在文本到结构的预训练过程中,在 上不断地用掩码语言模型任务(masked language model tasks)(Raffel et al., 2020)对UIE进行预训练,以改进UIE的语义表示。
在预训练阶段添加了基于跨度的掩码语言建模目标:
其中 x′ is the corrupted source text,x′′ is corrupted target spans。
这种预训练可以有效地缓解 tokens 的灾难性遗忘,尤其是在 SPOTNAME 和 ASSONAME tokens 上。
Final Pre-training Criteria
本文用 T5-v1.1-base 和 T5-v1.1-large (Raffel et al., 2020) 初始化 UIE-base 和 UIE-large,模型架构如表 7 所示。
将所有预训练数据统一表示为三元组。
详细的如算法 1 所示。
3.3 On-Demand Fine-tuning
通过模型微调快速适应不同的IE任务和设置。
给定一个标记语料库 ,使用 teacher-forcing cross-entropy 损失微调 UIE 模型:
同时设计了一种 rejection 机制来有效地微调。例如,在表 1 中,facility is the negative spot in the schema prompt, i.e., there is no facility entity in the sentence "Steve became CEO of Apple in 1997".
4 实验
4.1 Experimental Settings
Datasets、Tasks
13 IE benchmarks datasets,比如 ACE04 (Mitchell et al., 2005)等;
4 IE tasks (including entity extraction, relation extraction, event extraction, structured sentiment extraction) and their combinations (e.g., joint entity-relation extraction).
4.2 Experiments on Supervised Settings
表 2 显示了 UIE 在 4 个任务中的 13 个 IE 数据集上的性能。
可以发现:
1)通过将 IE 建模为文本到结构的生成并使用有效的 SEL 语言进行编码,UIE 模型在几乎所有数据集和任务上都实现了最先进的性能,即使没有预训练 (SEL)。
2)大规模预训练模型为通用 IE 提供了坚实的基础。与基线相比,预训练模型在大多数数据集上实现了最先进的性能,平均提高了 1.42% F1。
3)通过在大规模数据集上普遍建模IE任务和预训练,UIE可以有效地 cpature、share 和 transfer IE 能力。预训练同时改进了所有任务,尤其是事件和情感知识很少出现在预训练数据集中。
4.3 Experiments on Low-resource Settings
为了验证 UIE 的快速适应能力,本文对 4 个任务中原始训练集(1/5/10-shot,1/5/10%比)的六个不同分区进行了低资源实验。
对于 few-shot 实验,本文为训练集中的每个实体/关系/事件/情感类型采样 1/5/10 个句子。
将UIE与以下预训练模型进行比较:
1)T5-v1.1-base;
2)Fine-tuned T5-base
3)UIEbase w/o SSI 是UIE在预训练阶段没有SSI的远程监督版本,用于验证在低资源环境下调整 UIE 时 SSI 的必要性。
4.4 Ablations on Pre-training Tasks
为了研究不同预训练任务的效果,表 4 显示了UIE-base在四个下游任务上的消融实验结果。
2)使用掩码语言模型任务 (
3)使用
4.5 Effects of Rejection Noise
表 5 显示了不同预训练模型在 10-shot 设置下在 CoNLL 03 数据集上的结果。错误生成的标签对所提出的生成方法的精度有负面影响,导致大量错误提取结果。5 Related Work
近年来,构建和预训练 NLP 任务的通用模型引起了很多关注,例如多模态(Li et al., 2021b; Cho et al., 2021)和多语言(Conneau et al., 2020; Xue et al., 2021)。
IE 已经提出了几种特定于任务的预训练技术(Mengge et al., 2020; Wang et al., 2021b; Qin et al., 2021)。
基于生成的 IE 方法,有通过标记生成文本跨度(Straková et al., 2019; Ma et al., 2019)、索引指针(Ren et al., 2021; Yan et al., 2021b)或复制机制(Zeng et al., 2018),这些方法通常使用特定的分类器来表示标签。可以使用标签模板 (Li et al., 2021a; Liu et al., 2021; Cui et al., 2021)、模式 (Lu et al., 2021; Ahmad et al., 2021) 和增强语言方法 (Paolini et al., 2021) 来增强生成。
与之前专注于开发更有效的任务专用的 IE 研究相比,本文旨在在统一的文本到结构框架中普遍建模各种 IE 任务。
6 贡献
本文的主要贡献是:
- 提出了 UIE,这是一种统一的文本到结构的生成架构(unified text-to-structure generation),可以普遍建模不同的 IE 任务,自适应地生成目标结构,并从不同的知识源协作学习通用 IE 能力。
- 设计了一个统一的结构生成网络(unified structure generation),它通过结构提取语言将异构 IE 结构编码为统一的表示,并控制 UIE 模型,以识别哪些关联,并通过结构模式指导机制生成。
3)通过统一的预训练算法预训练一个大规模的文本到结构生成模型。这是第一个文本到结构的预训练提取模型。