提示:文档级关系抽取相关论文
—xxgcdx
目的:端到端学习DocRE,代替特定任务,更好的简化关系抽取任务
源码地址链接: https://github.com/johngiorgi/seq2rel
提示:以下仅为个人对于论文理解,也希望各位朋友一起交流学习
共指:句子中的两个提及指代的是同一个实体;
共指消解:将同一实体的不同描述合并在一起;
本文贡献:
(1)提出了一种新的线性化模式,它可以处理以前的seq2seq方法所忽略的复指提及和n元关系;
(2)使用这种线性化模式,我们证明seq2seq方法能够联合学习DocRE (实体抽取、指代消解和关系抽取)的子任务;
(3)设计一个简单的策略,称为"实体暗示";
用于文档级关系提取的序列到序列模型
解码由 @START@ 令牌启动,并在模型生成 @END@ 令牌时终止。
主要关心的是没有“为已知和作为输入的E”的情况,必须预测一个模型,称为“端到端“。
为重新学习seq2seq模型,提取的信息必须线性化一个字符串。
例子:
其中,分号(;)用于分隔共指提及,实体以表示其类型的特殊标记终止(例如@GENE@)。类似地,关系以表示其类型的特殊标记终止(例如@GDA@)
对于Y,Y是长度为T的对应目标序列,是包含在源中的关系的线性化。我们建立条件概率模型
在训练过程中,对模型参数θ序列进行优化,采用序列交叉熵损失,因为p(y/x)肯定是小于1的,取对数时为负,所以前边需要加上负号
RE设置的主要问题是:(1)模型可能会通过生成未出现在源文本中的实体提及来“产生幻觉”。(2)它可能会生成一个不遵循线性化模式的目标字符串,因此无法被解析。(3)损失函数是排列敏感的,强制执行不必要的解码顺序。
解决方法:为了解决(1)我们使用了两种修改:受限目标词汇表(§3.2.1)和复制机制(§3.2.2)。为了解决(2)我们试验了解码过程中应用的几个约束(§3.2.3)。最后,为了解决(3)我们根据关系在源文本中的出现顺序对它们进行排序(§3.2.4)。
受限目标词汇:为了防止模型“产生幻觉”(生成没有出现在源文本中的实体提及),目标词汇表被限制为建模实体和关系所需的一组特殊标记(例如;@DRUG@)
复制机制:为了能够在解码期间复制输入令牌,我们使用复制机制。该机制通过使用源序列X中的标记有效地扩展目标词汇表来工作,允许模型将这些标记“复制”到输出序列Y中。
我们试验了在测试期间应用于解码器的几个约束,以减少生成语法无效的目标字符串(不遵循线性化模式的字符串)的可能性。通过在每个时间步长将无效令牌的预测概率设置为微小值来应用这些约束。
序列交叉熵损失(等式2)相对于预测的标记是排列敏感的。在训练期间,这强制执行不必要的解码顺序,并且可能使模型倾向于过度拟合训练集中的频繁令牌组合。为了缓解这种情况,根据目标字符串在源文本中的出现顺序对它们之间的关系进行排序,为模型提供一致的解码顺序。关系的位置是由第一次提到它的头实体来决定的。提及的位置由其开始和结束字符偏移量的总和决定。在联系的情况下,我们根据第一次提到它的尾部实体进行排序(对于n元关系也是如此)
大多数现有的DocRE方法都提供实体作为输入,为了更公平地比较现有的方法,我们还提供实体作为输入,使用一个简单的策略,我们将称之为“实体暗示”。这涉及到当实体出现在目标字符串中时,将它们添加到源文本的前面,其中特殊的@SEP@令牌划分实体暗示的结尾。
以3.1中的示例为例,实体暗示按照如下方式进行添加:
我们的方法向源文本添加更少的额外标记,并为复制机制提供焦点位置,即@SEP@的剩余标记。在我们的实验中,当与提供基础真实实体注释作为输入的方法进行比较时,我们使用实体暗示(5.1.1)。
包括CDR,GDA,DGM几个生物医学数据集和DocRED非生物医学数据集(数据集不再介绍)。
在CDR、GDA和DGM上评估的现有方法使用地面真实实体注释作为输入。这使得它很难直接与我们的端到端方法进行比较,端到端方法只将原始文本作为输入。为了使比较更公平,我们使用实体暗示(3.3),以便我们的模型可以访问基本事实实体注释。我们还报告了我们的方法在这些语料库的端到端设置中的性能,以便于将来的比较。为了与现有的端到端方法进行比较,我们使用DocRED。
执行:在PyTorch中实现了我们的模型,作为编码器,使用预训练的Transformer模型,在Transformers库中实现,在训练期间进行微调。在对生物医学语料库进行训练和评估时,我们使用PubMedBERT。在这两种情况下,我们都使用预训练模型的默认超参数。作为解码器,我们使用具有随机初始化权重的单层LSTM,使用多头注意作为编码器和解码器之间的交叉注意机制,并在在验证集上调整了精选超参数。
训练:使用AdamW优化器联合训练所有参数,在训练之前,我们重新初始化预训练的Transformer model编码器的顶层L,在训练过程中,学习率在训练步骤的前10%线性增加,之后线性衰减到零。在反向传播之前,梯度被缩放到1.0的向量范数。在每次前向传播期间,LSTM的隐藏状态用编码器输出的令牌嵌入的平均值初始化解码器。通过将概率为0.1的丢弃应用于其输入,并将概率为0.5的丢弃连接应用于隐藏到隐藏权重,对解码器进行正则化。我们使用teacher forcing机制,在预测序列中的下一个令牌时,将先前的基本事实输入馈送给解码器。在测试期间,我们使用波束搜索生成输出。在应用长度惩罚之后,通过平均令牌对数概率对波束进行排序。
![在这里插入图片描述](https://img-blog.csdnimg.cn/331a17b077844f2c8d1191f7397f9388.png
结果表明,当有足够的训练样本时,基于seq2seq的方法可以优于现有的基于管道的方法,但在低数据状态下相对于现有的方法表现不佳。
比较了DGM语料库上现有的n元方法。在实体提示的情况下,我们的方法明显优于现有的方法。
提高解码器处理长序列的能力,例如将LSTM切换为Transformer model或修改线性化模式以产生更短的目标字符串,可以提高召回率并缩小与现有方法的差距。
在CDR上展示所有四种设置(黄金和白银实体提示、管道和端到端)的结果。
最终发现,使用黄金实体暗示明显优于所有其他设置,因为黄金标准实体注释是由领域专家制作的高质量标签。使用银色暗示会显著降低性能,这可能是由于NER步骤的误报和误报的组合。端到端设置明显优于管道设置(由于召回率大幅提高),并且与使用银色暗示的性能相当。结果表明,使用黄金标准实体注释报告的性能可能过于乐观,并证实了先前的工作,证明了联合学习实体和关系提取的好处。
发现微调预训练编码器会极大地影响性能。从头开始训练同一个编码器(-预训练)会降低30%的性能。使用未经微调(-微调)的预训练权重会使性能下降15.6-18.1%。使用未经微调(-微调)的预训练权重会使性能下降15.6-18.1%。高性能1.1%-2.3%。故意对每个目标字符串中的关系进行排序(排序关系,参见3.2.4)有很大的积极影响,将性能提高了5.6%-14.7%。最后,在解码过程中添加约束(+约束解码)对性能几乎没有影响,这表明经过训练的模型很少生成无效的目标字符串。
(1)排列敏感损失:采用序列交叉熵损失(等式2),其对预测令牌的顺序敏感,在固有无序关系上强制执行不必要的解码顺序。为了部分缓解这个问题,我们对关系进行排序,根据源文本中出现的顺序在目标字符串中,为模型提供可以学习的一致解码顺序。未来工作是修改我们的方法,使得在训练过程中不强制执行关系的任意顺序。
(2)输入长度限制:由于预训练编码器的输入大小限制(512个标记),我们的实验是在段落长度的文本上进行的。未来的工作可以评估这种模型从完整的科学论文中提取关系的能力。
(3)预训练解码器:在我们的模型中,编码器是预训练的,而解码器是从头开始训练的。未来工作是使用我们的线性化模式在DocRE上微调这样的模型。
本人也只是对论文的整体结构进行了一个概览,由于也是刚看论文不久,一直存在疑问,就是我似乎能看懂这篇论文采用了某种方法实现了某种情况,比如:对于本文,我了解到作者对于损失函数是排列敏感的,强制执行不必要的解码顺序,采用排序关系进行解决,但是我却不能具体了解到其具体到底怎样进行实际操作的。