Unified Structure Generation for Universal Information Extraction
论文:[2203.12277] Unified Structure Generation for Universal Information Extraction (arxiv.org)
代码:universal-ie/UIE: Unified Structure Generation for Universal Information Extraction (github.com)
期刊/会议:ACL 2022
摘要
信息提取受到其不同目标、异构结构和特定需求模式的影响。本文提出了一个统一的文本到结构生成框架,即UIE,该框架可以对不同的IE任务进行统一建模,自适应生成目标结构,并从不同的知识来源中协同学习IE的一般能力。具体来说,UIE通过结构化提取语言统一编码不同的提取结构,通过基于模式的提示机制-结构模式指导器自适应地生成目标提取,并通过大规模预训练的文本到结构模型捕获常见的IE能力。实验表明,UIE在4个IE任务、13个数据集上,以及在广泛的实体、关系、事件和情感提取任务及其统一的所有监督、低资源和少样本设置上,都达到了最先进的性能。这些结果验证了UIE的有效性、普遍性和可移植性。
1、简介
信息提取(IE)旨在从非结构化文本中识别和构建用户指定的信息(Andersen et al, 1992;Grishman, 2019)。IE任务由于其不同的目标(实体、关系、事件、情感等)、异构结构(跨度、三元组、记录等)和特定需求的模式(griishman和Sundheim, 1996;米切尔等人,2005年;Ji和Grishman, 2011)。
目前大多数IE方法都是任务专门化的,这就导致针对不同的IE任务有专门的架构、隔离的模型和专门的知识来源。这些任务专门化的解决方案极大地阻碍了IE系统的快速架构开发、有效的知识共享和快速的跨领域适应。首先,为大量IE任务/设置/场景开发专用架构是非常复杂的。其次,学习孤立模型严重限制了相关任务和设置之间的知识共享。最后,为不同的IE任务构建专门的数据集和知识来源是昂贵和耗时的。因此,开发一种能够统一建模不同IE任务、自适应预测异构结构、有效学习各种资源的通用IE体系结构将大有裨益,我们将其称为Universal IE。
例如,如图1所示,实体是span结构,事件是模式定义的记录结构。IE中的这些文本到结构转换可以进一步分解为几个原子转换操作:1)定位(Spotting),定位给定特定语义类型相关的理想跨度(Kripke和Munitz, 1971;Chen和Yuille, 2004)。例如,将“Steve
”定位为Person
实体,将“excited
”定位为情感表达。2)关联(Associating),通过在预定义的模式中为它们分配语义角色来连接跨度(Onyshkevych, 1994;Milward和Thomas, 2000)。例如,通过将“Steve
”和“Apple
”分配为Work-for
关系的Arg1
和Arg2
来关联它们。通过这种方式,可以将不同的IE任务分解为一系列原子文本到结构的转换,并且所有IE模型共享相同的底层定位和关联能力。例如,实体提取可以被视为对应实体类型的定位提及范围,而事件检测可以重新表述为带有事件类型的发现触发词范围。定位能力可以在这两个任务之间共享。
基于上述观察,我们提出了UIE,这是一种统一的文本到结构生成架构,可以对不同的IE任务进行统一建模,自适应地生成目标结构,并从不同的知识来源协作学习IE的一般能力。具体来说,为了对异构IE结构进行建模,我们设计了一种结构提取语言(structural extraction language, SEL),该语言可以有效地将不同的IE结构编码为统一的表示形式,从而可以在同一文本到结构生成框架中对各种IE任务进行统一建模。为了自适应地为不同的IE任务生成目标结构,我们提出了结构模式指导器(structural schema instructor, SSI),这是一种基于模式的提示机制,它控制在UIE中定位什么、关联什么以及生成什么。为了学习UIE的通用IE能力,我们在从易于访问的网络资源中挖掘的大规模异构数据集上对UIE进行预训练。大规模预训练的UIE模型为知识共享和快速适应新IE环境提供了坚实的基础,并显著提高了IE在所有监督、低资源和少样本环境下的性能。
我们在4个主要IE任务(实体/关系/事件/情感提取及其统一)的13个数据集上进行了实验,以及有监督的、低资源的和少样本的设置。实验结果表明,UIE在所有设置下都有显著改善。在监督设置下,UIE在所有数据集上都比最先进的任务专用架构提高了1.42%的F1分数。在少样本和低资源设置下,UIE表现出强大的随需应变适应能力:它大大优于基线。这些结果验证了UIE在不同IE任务、设置和场景中的有效性、普遍性和可转移性。
本文的主要贡献是:
- 我们提出了UIE,这是一个统一的文本到结构的生成架构,可以对不同的IE任务进行统一建模,自适应地生成目标结构,并从不同的知识来源中协作学习IE的一般能力。
- 设计了统一的结构生成网络,通过结构抽取语言将异构IE结构编码成统一的表示形式,并通过结构模式指导机制控制UIE模型的识别、关联和生成。
- 我们通过统一的预训练算法预训练大规模的文本到结构生成模型。据我们所知,这是第一个文本到结构的预训练提取模型,它可以有益于未来的IE研究。
2、面向通用信息抽取的统一结构生成
信息提取任务可以表述为文本到结构的问题,其中不同的IE任务对应不同的结构。本文旨在通过单一框架对不同IE任务的文本到结构转换进行统一建模,即不同的结构转换在一个通用模型中具有相同的底层操作和不同的转换能力。形式上,给定一个特定的预定义模式 s s s和文本 x x x,通用IE模型需要生成一个结构,该结构在模式 s s s指示的文本 x x x中包含所需的结构信息。
一般来说,这里有两个主要的挑战。首先,由于IE任务的多样性,有许多不同的目标结构需要提取,如实体、关系、事件等。其次,IE任务通常是需求特定的,使用不同的模式定义,因此我们需要自适应控制提取过程。
在本节中,我们将描述如何在统一的文本到结构生成架构(称为UIE)中共同制定、学习和执行各种IE任务。具体而言,我们首先设计了结构化提取语言(SEL),对异构提取结构进行统一编码,即将实体、关系、事件编码为统一的表示形式。然后,我们描述了结构模式指导器(SSI),这是一种基于模式的提示机制,它控制UIE模型针对不同的提取设置定位什么、关联什么以及生成什么。
2.1 统一结构编码的结构提取语言
本节描述如何将异构IE结构编码为统一的表示形式。基于以上讨论,可以将IE结构生成分解为两个原子操作:
- 生成IE结构。定位是指从句子中定位目标信息片段,如事件中的实体和触发词。
- 关联指的是将不同的信息块根据需要的关联进行连接,例如,实体对之间的关系或事件与其论元之间的角色。
然后,不同的IE结构可以表示为原子结构生成操作的组合。
具体来说,我们设计了一种统一的结构化提取语言(SEL),通过定位-关联结构对不同的IE结构进行编码。如图2a所示,每个SEL表达式都包含三种类型的语义单元:1)SPOTNAME表示源文本中存在一个spot name类型的特定信息块;2) ASSONAME表示源文本中存在一个特定的信息片段,该信息片段与其结构中的上层Spotted信息存在ASSONAME关联;3) INFOSPAN表示源文本中对应于特定发现或关联信息片段的文本跨度。此外,SEL中的“:”表示从InfoSpan到其标记或关联名称的映射,并且两个结构指示器“(”和“)”用于在提取的信息之间形成层次结构。
使用SEL,图2b显示了如何表示实体、关系和事件结构。有三个实体,每个实体都表示为一个spotting结构,如“person:Steve
”,“organization:Apple
”,和“time:1997
”;一种关系表示为“Steve
”和“Apple
”之间的关联结构,关联名称为work for
;一个事件用关联结构表示,触发词是一个点位结构“start-position: become
”,其论元与触发词相关联:Steve
作为employee
,Apple
作为employer
,1997
作为time
。
可以看出,SEL的优点是:1)对不同的IE结构进行统一编码,可以将不同的IE任务建模为同一个文本到结构的生成过程;2)高效地表示同一结构下句子的所有提取结果,可以自然地进行联合提取;3)生成的输出结构非常紧凑,大大降低了解码的复杂度。
例如,可以使用相同的“(SpotName: InfoSpan)”
语法重新访问两个不同的任务实体识别和事件检测。尽管关系提取和事件提取都可以使用语法“(SpotName: InfoSpan (AssoName: InfoSpan),…)”
来表述,但它们具有完全不同的二元“entity-relation-entity”
和N-ary“event-arguments”
结构。这样一种统一的结构化提取语言使得UIE能够学习和适应不同的IE任务,而不需要设计任务专用的架构,因为这些IE任务都被通用地表述为从文本到SEL表示的转换。
2.2 可控IE结构生成的结构模式指导
利用SEL, UIE可以统一生成不同的IE结构。然而,由于不同的IE任务有不同的模式,这里的一个挑战是如何自适应地控制我们在提取过程中想要生成哪些信息。例如,给定一个句子“Steve became CEO of Apple in 1997.“,实体识别系统将生成“((person: Steve) (organization: Apple) (Time: 1997))
”,事件提取系统将生成“(start position: became (employee: Steve) (employer: Apple))
”。为此,我们提出了结构模式指导器(structural schema instructor, SSI),这是一种基于模式的提示机制,用于控制需要发现和关联哪些类型的信息。
图3显示了UIE的总体框架。形式上,UIE以给定的结构模式指导符
(
s
)
(s)
(s)和文本序列
(
x
)
(x)
(x)为输入,根据模式
s
s
s生成包含
x
x
x提取信息的线性化
S
E
L
(
y
)
SEL(y)
SEL(y):
y
=
U
I
E
(
s
⊕
x
)
y=UIE(s \oplus x)
y=UIE(s⊕x)
x
=
[
x
1
,
…
,
x
∣
x
∣
]
x=[x_1,\ldots,x_{|x|}]
x=[x1,…,x∣x∣]是文本序列,
s
=
[
s
1
,
…
,
s
∣
s
∣
]
s=[s_1,\ldots,s_{|s|}]
s=[s1,…,s∣s∣]是结构模式指导器,
y
=
[
y
1
,
…
,
y
∣
y
∣
]
y = [y_1,\ldots, y_{|y|}]
y=[y1,…,y∣y∣]是一个SEL序列,可以很容易地转换为提取的信息记录。
2.2.1 结构模式指导器
为了描述任务的提取目标,结构模式指导器构造一个基于模式的提示符,并在生成过程中将其用作前缀。
具体而言,结构模式指导符对应于spotting-associateion结构,包含三种类型的token段:1)SPOTNAME:特定信息提取任务中的目标spotting名称,如NER任务中的“person
”;2) ASSONAME:目标关联名称,如关系提取任务中的“work for
”;3)在每个SPOTNAME, ASSONAME和输入文本序列之前添加特殊符号([spot], [asso], [text])
。SSI中的所有标记都被连接起来,放在原始文本序列之前。如图3所示,UIE的整个输入形式为:
s
⊕
x
=
[
s
1
,
s
2
,
…
,
s
∣
s
∣
,
x
1
,
x
2
,
…
,
x
∣
x
∣
]
,
=
[
[
s
p
o
t
]
,
…
,
[
s
p
o
t
]
,
…
,
[
a
s
s
o
]
,
…
,
[
a
s
s
o
]
,
…
,
[
t
e
x
t
]
,
x
1
,
x
2
,
…
,
x
∣
x
∣
]
s \oplus x = [s_1,s_2,\ldots,s_{|s|},x_1,x_2,\ldots,x_{|x|}],\\ =[[spot],\ldots,[spot],\ldots,\\ [asso],\ldots,[asso],\ldots,\\ [text],x_1,x_2,\ldots,x_{|x|}]
s⊕x=[s1,s2,…,s∣s∣,x1,x2,…,x∣x∣],=[[spot],…,[spot],…,[asso],…,[asso],…,[text],x1,x2,…,x∣x∣]
例如,SSI“[spot] person [spot] company [asso] work For [text]
”表示从句子中提取关系模式“person works For the company”
的记录。给定SSI
s
s
s, UIE首先对文本
x
x
x进行编码,然后使用编码器-解码器风格的体系结构在线性化SEL中生成目标记录
y
y
y。
我们发现基于模式的提示可以:1)有效引导UIE SEL生成,使一般IE能力转移到新的IE任务中;2)自适应控制识别、关联和生成,从而更好地共享不同标签和任务之间的语义知识。
2.2.2 用UIE生成结构
给定SSI
s
s
s和文本
x
x
x作为输入,UIE通过生成线性化SEL提取目标信息。我们使用编码器-解码器风格的架构来制定这个文本到SEL的生成过程。给定原始文本序列
x
x
x和模式指导符
s
s
s, UIE首先计算隐藏表示
H
=
[
s
1
,
…
,
s
∣
s
∣
,
x
1
,
…
,
x
∣
x
∣
]
H = [s_1,\ldots, s_{|s|},x_1,\ldots,x_{|x|}]
H=[s1,…,s∣s∣,x1,…,x∣x∣]:
H
=
E
n
c
o
d
e
r
(
s
1
,
…
,
s
∣
s
∣
,
x
1
,
…
,
x
∣
x
∣
)
H=Encoder(s_1,\ldots, s_{|s|},x_1,\ldots,x_{|x|})
H=Encoder(s1,…,s∣s∣,x1,…,x∣x∣)
Encoder(·)是一个Transformer编码器。然后UIE将输入文本以自动回归的方式解码成线性化的SEL。在解码的第
i
i
i步,UIE生成SEL序列中的第
i
i
i个token
y
i
y_i
yi,解码器状态
h
i
d
h^d_i
hid如下所示:
y
i
,
h
i
d
=
D
e
c
o
d
e
r
(
[
H
;
h
1
d
,
…
,
h
i
−
1
d
]
)
y_i,h_i^d=Decoder([H;h_1^d,\ldots,h_{i-1}^d])
yi,hid=Decoder([H;h1d,…,hi−1d])
Decoder(·)是一个Transformer解码器,它预测token
y
i
y_i
yi的条件概率
p
(
y
i
∣
y
<
x
,
x
,
s
)
p(y_i|y_{<x},x,s)
p(yi∣y<x,x,s),然后将预测的SEL表达式转换为提取的信息记录。
与以往将标签视为特定符号的IE研究相比,文本到结构生成范式将标签视为自然语言标记。通过语言化和生成标签和结构,我们的方法可以有效地从预训练的语言模型(如BART (Lewis et al, 2020), T5 (rafffel et al, 2020))中转移知识,相关任务可以轻松地共享知识,因为它们的标签具有相似的语义(例如,位置和地点),并共享共同的标签-文本关联(例如,不同事件类型的受害者)。
3、UIE的预训练与微调
在本节中,我们将描述:1)如何预训练一个大规模的UIE模型,该模型为不同的IE任务捕获常见的IE能力;2)如何通过快速微调使UIE适应不同环境下的不同IE任务。具体来说,我们首先从Web上收集几个大规模的数据集,包括结构化(例如,知识库)、非结构化(例如,原始文本)和并行(例如,维基百科-维基数据链接)数据,然后我们统一地在这些异构数据集上预训练我们的UIE模型。最后,我们通过按需微调使预训练的UIE模型适应特定的下游IE任务。我们发现,预训练的UIE模型为不同IE任务之间的知识捕获、共享和传递提供了坚实的基础,由于UIE学习了通用的IE能力,因此可以有效地解决新的IE任务。
3.1 预训练语料的构建
UIE需要对文本进行编码,将文本映射到结构,并解码有效的结构。因此,我们从易于访问的web数据源中收集了大规模的预训练语料(更多细节在附录中):
D p a i r D_{pair} Dpair是文本结构并行数据,其中每个实例都是一个并行对(token序列 x x x,结构化记录 y y y)。我们通过将Wikidata与英文维基百科对齐来收集大规模的并行文本结构对。 D p a i r D_{pair} Dpair用于预训练UIE的文本到结构转换能力。
D r e c o r d D_{record} Drecord是结构数据集,其中每个实例都是结构化记录 y y y。我们从ConceptNet (Speer et al, 2017)和Wikidata收集结构化记录。 D r e c o r d D_{record} Drecord用于预训练UIE的结构解码能力。
D t e x t D_{text} Dtext是非结构化文本数据集,我们在英文维基百科中使用的都是纯文本。使用 D t e x t D_{text} Dtext对用户界面的语义编码能力进行预训练。
3.2 预训练
使用
D
p
a
i
r
D_{pair}
Dpair进行文本到结构的预训练。为了获取基本的文本到结构映射能力,我们使用
D
p
a
i
r
=
{
(
x
,
y
)
}
D_{pair} = \{(x, y)\}
Dpair={(x,y)}预训练UIE。具体来说,对于每个并行对
(
x
,
y
)
(x, y)
(x,y),我们提取记录
y
y
y中的spot类型
s
s
+
s_{s+}
ss+和associating类型
s
a
+
s_{a+}
sa+,作为正模式
s
+
=
s
s
+
∪
s
a
+
s_+ = s_{s+}∪s_{a+}
s+=ss+∪sa+。然而,我们发现,如果我们只给UIE提供正例模式,它只会简单地记住预训练数据中的三元组。为了学习一般的映射能力,我们还对每对自动构造负例模式,即先对负spot
s
s
−
s_{s-}
ss−和负association集
s
a
−
s_{a-}
sa−进行采样,然后串联元模式
s
m
e
t
a
=
s
+
∪
s
s
−
∪
s
a
−
s_{meta} = s_+∪s_{s-}∪s_{a-}
smeta=s+∪ss−∪sa−,构造最终的提取目标。例如,person
和work For
是记录“((person: Steve (work For: Apple)))”
中的积极图式,我们选取vehicle
和location
作为负样本模式来构建元模式。最后,文本到结构的预训练目标是:
L
P
a
i
r
=
∑
(
x
,
y
)
∈
D
p
a
i
r
−
log
p
(
y
∣
x
,
s
m
e
t
a
;
θ
e
,
θ
d
)
L_{Pair}=\sum_{(x,y) \in D_{pair}}- \log p(y|x,s_{meta};\theta_e,\theta_d)
LPair=(x,y)∈Dpair∑−logp(y∣x,smeta;θe,θd)
其中
θ
e
θ_e
θe和
θ
d
θ_d
θd分别是编码器和解码器的参数。
结构生成用
D
r
e
c
o
r
d
D_{record}
Drecord进行预训练。为了预训练生成由SEL和模式定义的有效结构的能力,我们在
D
r
e
c
o
r
d
D_{record}
Drecord上预训练UIE。我们将UIE解码器预训练为结构化语言模型,其中
D
r
e
c
o
r
d
D_{record}
Drecord中的每个记录都是SEL的表达式:
L
R
e
c
o
r
d
=
∑
y
∈
D
r
e
c
o
r
d
−
log
p
(
y
i
∣
y
<
i
;
θ
d
)
L_{Record}=\sum_{y \in D_{record}}- \log p(y_i|y_{<i};\theta_d)
LRecord=y∈Drecord∑−logp(yi∣y<i;θd)
通过结构生成的预训练,解码器可以捕捉到SEL的规律性以及不同标签之间的相互作用。
使用
D
t
e
x
t
D_{text}
Dtext改进语义表示。在文本到结构的预训练期间,我们还在
D
t
e
x
t
D_{text}
Dtext上使用掩码语言模型任务(Raffel et al, 2020)持续预训练UIE,以改进UIE的语义表示。具体来说,我们在预训练阶段添加了基于span corruption的掩码语言建模目标:
L
T
e
x
t
=
∑
x
∈
D
t
e
x
t
−
log
p
(
x
′
′
∣
x
′
;
θ
e
,
θ
d
)
L_{Text}=\sum_{x \in D_{text}}- \log p(x''|x';\theta_e,\theta_d)
LText=x∈Dtext∑−logp(x′′∣x′;θe,θd)
其中,
x
′
x'
x′corrupted源文本,
x
′
′
x''
x′′是corrupted目标span。我们发现这种预训练可以有效地缓解标记语义的灾难性遗忘,特别是在SPOTNAME和ASSONAME标记上。
最终预训练标准。我们使用T5-v1.1-base
和t5 -v1.1- large
初始化UIEbase和UIE-large (Raffel et al, 2020),模型架构如表7所示。最终目标是上述任务的结合:
L
=
L
P
a
i
r
+
L
R
e
c
o
r
d
+
L
T
e
x
t
L=L_{Pair}+L_{Record}+L_{Text}
L=LPair+LRecord+LText
为了实现,我们统一地将所有预训练数据表示为三元组。对于
D
t
e
x
t
D_{text}
Dtext中的文本数据
(
x
)
(x)
(x),我们构建一个三元组(None, x', x'')
,其中
x
′
x'
x′corrupted源文本,
x
′
′
x''
x′′是corrupted目标span。对于
D
p
a
i
r
D_{pair}
Dpair中的文本记录数据
(
x
,
y
)
(x, y)
(x,y),我们通过对每个文本记录对的元模式
s
s
s进行采样来构造
(
s
,
x
,
y
)
(s, x, y)
(s,x,y)。对于
D
r
e
c
o
r
d
D_{record}
Drecord中的记录数据
(
y
)
(y)
(y),我们将(None, None, y)
作为输入三元组。我们将不同任务的实例随机打包在一个批处理中,详细信息在附录中的算法1中显示。
3.3 按需调整
有了预训练好的UIE模型,我们可以通过模型微调,使其快速适应不同的IE任务和设置。给定一个标记的语料库
D
t
a
s
k
=
{
(
s
,
x
,
y
)
}
D^{task} = \{(s, x, y)\}
Dtask={(s,x,y)},我们使用教师强迫交叉熵损失对UIE模型进行微调:
L
F
T
=
∑
(
s
,
x
,
y
)
∈
D
T
a
s
k
−
log
p
(
y
∣
x
,
s
;
θ
e
,
θ
d
)
L_{FT}=\sum_{(s,x,y)\in D_{Task}}- \log p(y|x,s;\theta_e,\theta_d)
LFT=(s,x,y)∈DTask∑−logp(y∣x,s;θe,θd)
为了减轻暴露偏差(Ranzato et al, 2016;Zhang等人,2020)的自回归模型,我们还设计了一个有效的微调拒绝机制(Rejection Mechanism)。具体来说,给定一个实例
(
s
,
x
,
y
)
(s, x, y)
(s,x,y),我们首先使用SEL语言对
y
y
y进行编码,然后我们随机将几个带有负实例SPOTNAME和ASSONAME的[NULL]单元:(SPOTNAME, [NULL])
和(ASSONAME, [NULL])
插入到概率为
p
ε
p_{\varepsilon}
pε的ground-truth SEL中。例如,在表1中,facility是模式提示符中的负 spot,即“Steve become CEO of Apple in 1997”
这句话中没有facility实体。因此,我们在模型学习过程中随机向目标记录中注入噪声“(facility: [NULL])”
。这样,UIE可以通过生成[NULL] token有效地学习拒绝误导性的生成。
4、实验
5、总结
本文提出了一种统一的文本到结构生成框架——UIE,该框架可以对不同的IE任务进行统一建模,自适应地生成目标结构,并从不同的知识来源中无规律地学习IE的一般能力。实验结果表明,在有监督和低资源环境下,UIE都能获得非常有竞争力的表现,验证了其普适性、有效性和可移植性。同时还发布了一个大规模的预训练文本到结构的模型,这将有利于未来的研究。对于未来的工作,我们希望将UIE扩展到KB感知的IE任务,如实体链接(Cao等人,2021),以及文档感知的IE任务,如共同引用(Lee等人,2017;Lu等人,2022)。