前两天在 arxiv 刷到了一篇已被 ACL 2022 主会接受的文章,题名《Unified Structure Generation for Universal Information Extraction》,简单看了摘要后整个震惊。作者采用生成式 text to structure 结构统一了信息抽取的四个任务,并且在 13 个数据集上采用全监督、低资源和少样本设置下均取得了 SOTA。
论文标题:
Unified Structure Generation for Universal Information Extraction
论文作者:
Yaojie Lu, Qing Liu, Dai Dai, Xinyan Xiao, Hongyu Lin, Xianpei Han, Le Sun, Hua Wu
而每个信息抽取任务都可以用这两个原子操作去完成,因此作者设计了结构化抽取语言 SEL 可以对这两个原子操作进行表示,不同的任务只要组合不同的原子操作对应结构即可统一表示。
▲ 图2:SEL统一建模信息抽取任务的例子 如图 2(a)所示,作者使用三种形式来表示:(1)Spot Name:指目标信息片段的类别,在实体抽取中指实体类别,在事件抽取中可以指事件类型和论元类别。(2)Info Span:Spotting 操作的输出,即原句子中的目标信息片段。(3)Asso Name: 指两个信息片段之间的关系类型,也就是 Associating 操作的输出。 如图 2(b)所示,每个信息抽取任务都可以统一的用 SEL 语法描述,这里都是以“Steve became CEO of Apple in 1997.”为例。其中蓝色部分表示关系抽取任务,采用(Spot Name:Info Span(Asso Name:Info Span))格式,这里的关系指第一个括号里的实体和第二个括号里的实体的关系。 其中红色部分指事件抽取任务,采用(Spot Name:Info Span(Asso Name:Info Span)(Asso Name:Info Span)...)格式来表示,其中外括号里的 Spot Name 信息指的是事件类型及触发词,而中间的多个内括号指的是这个事件下多个论元的片段和类别。灰色部分指命名实体识别任务,由多个(Spot Name:Info Span)组成,每一对括号都指一个实体片段及其类别。 综上,可以看到 SEL 语法可以统一化描述每一个任务不同的输出结构,并且由于拥有很强的结构性,使得解码过程非常简单。
2.2 指导模型做特定任务的结构化模式指导器SSI
有了 SEL 语法,模型统一了不同任务的输出结构,但是当我们输入一个句子后,如何让模型去做我们想要的任务呢?因此作者提出了 SSI(Structural Schema Instructor),是一种基于 Schema 的 prompt。当我们输入句子时,在句子前面拼接上对应的 Prompt,即可让模型做对应的任务。
这篇文章提出了第一个结构化生成的通用信息抽取预训练语言模型,性能直接刷爆了 13 个数据集的 SOTA,特别是在小样本/低资源情景下,提升显著,这也为我们提供了一个思路,如果想在小样本情况下取得较好的性能,而预训练任务和下游任务 gap 较大时,可以自己去设计和下游任务相近的预训练任务,基于现有的预训练模型进行二次预训练。 其实这篇文章的动机也不是作者偶然性想到的,2021 年一作 Yaojie Lu 就将 text to structure 结构应用于了事件抽取任务,并且中了 ACL 2021,本篇文章也是他将这种结构扩展到了整个信息抽取领域。