作者:Yaojie Lu1,4,?, Qing Liu1,4,?, Dai Dai3, Xinyan Xiao3, Hongyu Lin1,?,
Xianpei Han1,2,5, Le Sun1,2,?, Hua Wu3
单位:1Chinese Information Processing Laboratory
2State Key Laboratory of Computer Science Institute of Software, Chinese Academy of Sciences, Beijing, China
3Baidu Inc., Beijing, China
4University of Chinese Academy of Sciences, Beijing, China
5Beijing Academy of Artificial Intelligence, Beijing, China
通讯地址:{yaojie2017,liuqing2020,hongyu,xianpei,sunle}@iscas.ac.cn
{daidai,xiaoxinyan,wu_hua}@baidu.com
发表会议:ACL2022
项目链接:universal-ie/UIE (github.com)
模型链接:luyaojie/uie-base-en · Hugging Face,luyaojie/uie-large-en · Hugging Face
目录
Abstract
Introduction
Contributions:
Unified Structure Generation for Universal Information Extraction
Two Challenges:
Structured Extraction Language for Uniform Structure Encoding
Structural Schema Instructor for Controllable IE Structure Generation
Method
Pre-training and Fine-tuning for UIE
Pre-training and Fine-tuning for UIE
Pre-training
Fine-tuning
Conclusion
Abstract
由于通用信息抽取的输入形式和生成的目标不太一样,这因为在通用抽取这一个框架里面需要实现多种任务的抽取。本文提出了UIE这一通用的文本-结构生成框架,简单来说就是UIE对不同结构的文本进行统一编码,通过基于模式的prompt机制自适应地实现目标抽取,实现大规模文本到结构地抽取能力。
Introduction
通用信息抽取由于输出目标(实体、关系、时间、情感等)、输出结构(文本块、元组、记录等)不同,具有高度变化性。由于目前的信息抽取都是针对特定领域的,所以这些专门的任务大大阻碍了IE系统的架构的快速发展,有效的知识共享和跨领域适配能力。通用与特定任务对比见下图。
所有的IE都可被建模为文本到结构的转换。同时,这种信息抽取任务可以被分解成几个原子变换操作:1、定位,定位出给定语义类型相关的文本段;2、联系,通过预定义的模型用予以角色来为spans指定联系。实体抽取可以被视为定位提及对应的实体类型文本块,事件抽取可以被表述为发现带有事件类型的触发词文本块。
为了对不同结构(异构)的IE结构进行建模,我们设计了一种结构抽取语言(Structural Extraction Language,SEL),它可以有效地将不同的IE结构编码成统一的表达形式。为了使不同的IE任务自适应的生成目标结构,我们提出了结构化模式指导器(structural schema instructor,SSI),这是一种基于模型的prompt机制,它控制在UIE中发现什么、关联什么、生成什么。我们在大规模、异构的数据集上对模型进行预训练,显著提高了在有监督、低资源和few-shot下的性能。
Contributions:
1)我们提出了一种统一的文本到结构的生成体系结构UIE,该体系结构能够普遍地建模不同的IE任务,自适应地生成目标结构,并从不同的知识来源协作学习通用的IE能力。
2)设计了一个统一的结构生成网络,该网络通过结构抽取语言将异构的IE结构编码成统一的表示形式,并通过结构模式指导机制控制识别、关联和生成的UIE模型。
3)通过统一的预训练算法对大规模文本到结构生成模型进行预训练。据我们所知,这是第一个文本到结构的预训练提取模型,对未来的IE研究有帮助。
Unified Structure Generation for Universal Information Extraction
我们只用了单个的模型来处理输入,这样在一个通用的信息抽取模型中不同的结构化任务可以共享相同的操作和不同的转换能力。我们的输入使用一个预定义的抽取模式,和一段文本。其中表示抽取的模型,表示要抽取的文本来源。
Two Challenges:
1、由于IE任务的多样性,需要提取的目标结构比较多,例如实体、关系、事件、情感等;
2、IE任务往往是需求特定性的,是用不同的schema定义的,我们需要自适应的控制提取过程。
Structured Extraction Language for Uniform Structure Encoding
已知我们将信息抽取结构生成模型分解成两个原子操作:Spotting和Associating。我们设计了一个结构化的信息抽取语言(SEL),其通过spotting-associating结构来编码不同的信息抽取结构来源。如图a所示,每个SEL表达包含三种类型的语义单元。分别是1、SpotName表示一个特定的信息块,其类型的spot name存在于源文本中;2、AssoName表示源文本中存在一个特定的信息块,该信息块与结构中的上层Spot信息相关;3、Info Span表示源文本中特定识别或关联信息块对应的文本块。不论是什么任务,都可以被表示为如下的范式抽取。
Structural Schema Instructor for Controllable IE Structure Generation
由于不同的IE抽取任务有不同的模式,这里的一个挑战是如何自适应地控制在提取过程中我们想要生成地信息。为此我们提出了结构化模式指示器(Structural schema instructor,SSI),一个基于模式地prompt机制,可以控制我们需要找出地信息和相关的信息。
Method
Structural Schema Instructor
由上图可知,输入由文本序列和结构模式指示器(Stru
ctural Schema Instructor)组成(个人觉得有点像GPT模型)。输出的是结构化抽取语言(Structured Extraction Language,SEL),形式为.
上面的公式表示文本序列,表示结构模式指示器,是SEL序列,其中y可以被转换成抽取后的信息记录,其中的运算符号表示concat。
由上公式可知,特殊符号()在每个SpotName,AssoName,和输入文本序列之前被添加到模板。所有的token都被串联起来并放在原始文本序列之前。举个栗子,SSI“ person company work for ”表示从句子抽取模式关系记录"the person works for the company"。对于给定的SSI s,UIE首先对文本x进行编码,然后使用encoder-decoder风格的结构在线性化SEL中生成目标记录y。
Structure Generation with UIE
我们把这种形式表述为text-to-SEL生成过程。对于给定的原始文本x和模式指示器x,UIE计算每个token的隐向量。
这里的Encoder表示的是一个Transformer Encoder,接着UIE用一个自回归的方式将输入文本解码成一个线性化的SEL。
在解码的第i步,UIE生成SEL序列中的第i个token 和解码器状态。这里的Decoder是Transformer Decoder,用于预测token 的条件概率。最后,Decoder(·)在输出结束符号<eos>时完成预测,然后将预测的SEL表达式转换为提取的信息记录.
和之前的信息抽取任务对比,我们将标签视为自然语言token,而以往的模型都将其视为特殊符号。通过语言化生成标签和结构,我们可以有效地从像BART、T5这样的预训练模型中迁移知识。相关任务可以很容易共享知识,因为它们的标签具有相似的语义和共享共同的标签-文本关联。
Pre-training and Fine-tuning for UIE
Pre-training and Fine-tuning for UIE
是文本结构化的数据对,包含序列token 和结构化记录。我们收集了大规模并行结构化文本通过对齐英文维基百科。用于去预训练UIE模型的文本-结构化文本的能力。
是结构化的数据集,每一个实例都是结构化记录。我们从ConceptNet和维基数据中收集了结构化记录。用于预训练UIE的结构化解码能力。
是无结构的文本数据集,我们使用英文维基百科的纯文本。被用于预训练UIE的语义编码能力。
Pre-training
Text-to-Structure Pre-training using
为了抓住根本的文本-结构化文本映射能力,我们用来预训练UIE。对于每个(x,y)对,我们抽取了spot类型和asso类型作为正模式.但是,我们只给网络喂入了正例,这可能限制网络的学习能力,所以我们对每个设计了负例。我们采样了负例和,然后将其和正例concat起来,得到.举个栗子,正例是((person:Steve (work for: Apple))),我们采样vehicle和located作为负例。我们设计了如下的损失函数:
其中,表示encoder和decoder参数。
Structure Generation Pre-training with
为了预训练SEL和模式定义的生成合理结构的能力,我们在上预训练了UIE。损失函数如下,通过结构生成的预训练,解码器可以捕捉SEL的规律和不同标签之间的相互作用。
Retrofitting(改进) Semantic Representation using
在文本-结构化文本预训练的过程中,我们在基础上继续使用掩码语言模型对UIE进行训练,用以改进UIE的语义表示。具体来说就是在预训练中加入了基于掩码语言模型加入了破坏的span。
其中是破坏的源文本,是破坏的目标文本段。我们发现这种预训练可以有效地缓解token语义的遗忘问题,尤其是SpotName和AssoName。
Final Pre-training Criteria
我们用T5-v1.1-base和T5-v1.1-large初始化了UIE-base和UIE-large。模型架构和损失函数如下:
为了实现这个算法,我们将训练的数据表示为一个三元组。对于文本数据将其表示为;对于文本记录数据,通过对每个文本记录对的元模式s进行采样来构造。对于每个记录,我们将设置为输入。我们将不同任务的实例随机打包到一批中,详细信息在下图显示。
Fine-tuning
对于已经预训练之后的UIE模块,我们可以通过微调使其适应不同的下游任务。给出一个标签语料,我们使用一个teacher forcing交叉熵损失函数去微调UIE模型:
由于teacher forcing会造成exposure bias(Seq2Seq中Exposure Bias现象的浅析与对策),我们设计了一个Rejection Mechanism(RM)用于有效的微调。具体来说就是对于给出的句子,我们使用语言对进行编码,然后随机插入几个SpotName和AssoName为负的[NULL]单元(SpotName,[NULL])和(AssoName,[NULL])到ground-truth(真实?) 概率的中。例如在下表中,facility是负样本,我们将其插入到“Steve became CEO of Apple in 1997”。我们在模型的学习期间随机的将“(facility:[NULL])”噪声插入到目标记录中。这样UIE可以通过[NULL] token有效地学习拒绝误导生成。
Conclusion
UIE在监督和低资源的情况下都能取得非常好的性能,这验证了其通用性、有效性和可移植性。未来地工作希望将UIE扩展到知识库的信息抽取任务,例如实体链接,以及文档的抽取任务,例如共同引用。