Biomedical Event Extraction as Sequence Labeling阅读总结
Purpose
作者引入了一个端到端神经网络信息联合抽取模型Biomedical Event Extraction as Sequence Labeling(BEESL)。该模型将事件抽取任务转换为序列标注,利用多标签感知编码策略,通过多任务学习对中间任务进行联合建模。BEESL是迅速准确的端到端模型,与现有方法不同,BEESL不需要任何外部知识库或处理工具。
Background
生物医学事件抽取为协助领域专家管理知识库提供了重要手段,然而事件通常十分复杂,相互嵌套,尤其是生物医学领域的事件抽取具有很大的挑战性,进展缓慢。许多现有的生物医学事件抽取系统仍是pipeline,独立抽取触发词和参数。
本文作者提出了新的提取方法:将事件结构转换为适合序列标注的表示方法,并在多任务序列标注模型中使用带有BERT的多标签感知编码器。与之前的工作相比,建立了一个更快的联合模型,减少了错误传播。
多任务学习(MTL):旨在使用其他相关任务来提升主要任务的泛化能力,可以认为是一种集成学习方法,通过对几个任务同时训练,相互影响(一般是共享参数)。多个任务共享一个结构,该结构的参数在优化时会被所有任务影响,这样在所有任务收敛时,这个结构相当于融合了所有任务。
Encoding Event Structures
Event Structures
事件是由多个信息单元组成的结构化表示。事件都有一个触发词trigger(下图中的圆角方框),一个或多个参数argument,即实体或其他事件(下图中箭头所指向的位置),这些参数被分配特定的角色role(箭头上的标签)。例如"production"是"EXPRESSION"事件的触发词,"IL-10"是其参数。嵌套结构很常见,如"activation"同时是"induced"和"promote"的参数。
Sequence Labeling Encoding
下面引入依存句法分析的概念:分析句子中词与词之间的依存关系,给出一颗由词语依存关系构成的依存语法树。"依存"指词与词之间支配与被支配的具有方向的不对等关系。一个依存关系连接核心词(head)和依存词(dependent),依存关系可以细分为不同的类型,表示两个词之间具体的句法关系。
给定一个含有n个token的序列[ x 1 x_1 x1,…, x n x_n xn],作者将事件结构编码为token层面的标签序列[ y 1 y_1 y1,…, y n y_n yn],把任务简化为序列标注问题。利用依存句法分析,为每一个token x i x_i xi编码一个标签 y i y_i yi,组成三元组<d,r,h>。其中
d是依存词(dependent),可以是事件或mention(触发词、实体或无)。
r是关系(relation),表示其角色。
h指明token所属事件的相对位置。
为了区分相同事件的head,作者将h编码为relative head mention position,比如,h = + R E G + 1 REG_{+1} REG+1表示右边的第一个+REGULATION,即d是右边第一个+REGULATION的r(Cause),h = + R E G − 2 REG_{-2} REG−2表示左边的第二个+REGULATION。Figure 2中"production"的标签是<EXPRESSION, THEME, + R E G − 1 REG_{-1} REG−1>,表明这个token是一个EXPRESSION事件的触发词,是左边第一个REGULARION事件的THEME。
与依存句法分析想反,token可以具有0或多个root,因为可以有多个head和relation,这带来了额外的挑战。比如,"activation"是"induced"的THEME,同时也是"promote"的Cause,因此,"activation"的标签是<+REGYLATION, [THEME, CAUSE], [+ R E G − 1 REG_{-1} REG−1,+ R E G + 1 REG_{+1} REG+1]>
Event Extraction as Sequence Labeling
作者想要学习一个函数f: X → Y {\rm{X}} \to {\rm{Y}} X→Y,为每个token x i x_i xi安排一个结构化的标签 y i y_i yi即<d,r,h>。
作者提出使用多任务学习减少标签空间,匹配多标签预测。
下图是BEESL的整体框架。使用BERT作为编码器,在生物医学文本上进行预训练。为了提升泛化能力,掩盖了实体。每一个token x i x_i xi的WordPiece被用来预测,其中 x i x_i xi的上下文隐藏表示 e i e_i ei采用分层注意力机制进行编码。解码器使用带有交叉熵损失的softmax(除非另有说明),并引入了多标签解码器。
Multi-task Strategies
定义标签空间由 d i d_i di∈D, r i r_i ri∈R, h i h_i hi∈H组成,使用 L \mathcal{L} L表示标签空间的最大size。
每个token x i x_i xi被分解为多个部分(子标签),每个部分都视为一个预测任务。基于分解,有四个多任务学习操作(任务对或子任务),如下:
- <d>, <r, h>: L \mathcal{L} L = |D| + |R| * |H|
- <d, r>, <h>: L \mathcal{L} L = |D| * |R| + |H|
- <d, h>, <r>: L \mathcal{L} L = |D| * |H| + |R|
- <d>, <r>, <h>: L \mathcal{L} L = |D| + |H| + |R|
操作4将每个子任务编码为其自己的任务,尽管拥有最小的标签空间,这个操作导致原问题解耦为3个独立的任务。作者假设操作1能够提升BEESL的性能。
如上图所示,BEESL使用预测的子标签组成完整的标签三元组 y ^ i = ⟨ d ^ , r ^ , h ^ ⟩ {\hat y_i} = \left\langle {\hat d,\hat r,\hat h} \right\rangle y^i=⟨d^,r^,h^⟩。如果r和h属于不同的子标签空间,则要求 r ^ , h ^ \hat r,\hat h r^,h^同时出现(非空)以确保格式正确,这也是操作2-4的缺点。
训练过程的MTL损失为 L = ∑ t λ t L t L = \sum\nolimits_t {{\lambda _t}{L_t}} L=∑tλtLt,其中 L t L_t Lt是每个任务t的损失,由各自的解码器给出。 λ t \lambda _t λt是特定任务的权值参数,本实验中将所有 λ \lambda λ设为1。
Multi-label Decoder
多标签编码器用来处理token具有多个标签的任务,适合预测关系和heads。编码器为每个标签 l j l_j lj∈L建模为P( l j l_j lj| e i e_i ei)。预测每个标签时都使用一个sigmoid函数,对所有损失的贡献相等。给定标签 l j l_j lj的概率P( l j l_j lj| e i e_i ei)和阈值 γ \gamma γ,将所有 P ( l j ∣ e i ) ≥ γ P({l_j}|{e_i}) \ge \gamma P(lj∣ei)≥γ的标签 l j l_j lj分配给token x i x_i xi。如果没有标签满足,就选用得分最高的标签。采用二元交叉熵损失,在每个批次中取平均值。
Experimental and Results
数据集选用Genia 2011,数据集统计数据在下表展示。
下表展示了MTL实验的主要结果,证明了作者之前的假设(,<r,h>能够提升模型的性能)。
Conclusion
本文提出了一种高效、准确的端到端生物医学事件提取系统BEESL。BEESL广泛适用于事件提取和其他可以重铸为序列标记的任务。该系统的优点来自于联合多任务建模和多标签解码,这有助于任务之间的相互影响。BEESL速度很快,并且在Genia 2011事件提取基准上实现了最先进的性能,而不需要外部工具来实现特性和资源(如知识库)。分析表明,BEESL可以很好地跨事件类型工作。