[论文笔记] A Joint Neural Model for Information Extraction with Global Features

本文介绍了ACL 2020论文《A Joint Neural Model for Information Extraction with Global Features》中的ONEIE框架,它是一个端到端的信息抽取模型,利用全局特征进行联合决策,提高实体、关系和事件的抽取准确性。模型通过BERT编码,识别实体和事件,使用束搜索解码,同时考虑了跨实例和子任务间的交互。

2020 ACL会议《A Joint Neural Model for Information Extraction with Global Features》

论文地址

该论文提出一个名为ONEIE的信息抽取框架,增加一个全局特征,在实例之间和子任务之间进行联合决策。

1. Introduction

大多数的信息抽取的联合学习模型使用task-specific分类对独立实体进行标记而不是使用实体之间的交互信息。论文提出名为ONEIE的端到端信息抽取框架,整个过程分为四个操作阶段:

  1. 对输入语句进行编码(Embedding);
  2. 识别句中的实体(Entity)和事件(Event)并用结点(Node)进行表示;
  3. 使用句内信息(Local classifier)计算所有结点及其连接(Link)的标签分数(Label Score);
  4. 解码(Decoding)时使用束搜索(Beam search)找到全局最优图。

在解码阶段加入全局特征(Global Feature)捕捉实例之间(cross-instance)和子任务之间(cross-subtask)的联系(Interaction)。同时ONEIE框架没有使用任何特定语言的语法特征(Language-specific feature),所以很容易适应新语言。

框架示意图

2. Task

  1. Entity Extraction

    根据提前定义(Pre-defined)的实体分类识别语句中提及的实体。

  2. Relation Extraction

    对给定的实体对分配关系类型。

  3. Event Extraction

    涉及识别非结构语句中的事件触发语(Event trigger: the word or phrases that most clearly express event occurrences)及这些词语和短语的论据(Arguments: the words and phrases for participants in those events),并将这些短语根据类型和语法规则进行分类。

    一个Argument可以是一个实体、时间表达式或数值等。

对信息抽取的任务作如下规定:
对于给定的句子,目的是提取一个信息表示图: G = ( V , E ) G=(V,E) G=(V,E),其中 V V V E E E分别表示结点集和边集。

对于任意结点 v i = < a i , b i , l i > ∈ V v_i=<a_i, b_i, l_i>\in V vi=<ai,bi,li>V表示一个实体(Entity)或事件触发器(Event trigger),其中 a a a b b b分别表示结点起始和结束词语的索引(indices), l l l表示结点类型标签(Node type label)。

对于任意边 e i j = < i , j , l i j > ∈ E e_{ij}=<i,j,l_{ij}>\in E eij=<i,j,lij>E表示两个结点之间的关系,其中 i i i j j j分别表示两个相关结点的索引, l i j l_{ij} lij表示关系类型。

3. Approach

ONEIE框架对给定的语句进行信息网络提取,分为以下四步:encoding,identification,classification和decoding。我们使用预训练的BERT模型进行编码,然后对语句中的实体和事件触发器进行识别。之后计算所有的结点和相关的边的类型标签分数(Type label scores)。在解码阶段,我们使用束搜索(Beam Search)探索输入语句可能的信息网络。

3.1 Encoding

输入一句包含 L L L个词的语句,使用预训练的BERT模型将每个词表示为 x i x_i xi。实验发现使用最后三层BERT在大多数的子任务上表现较好。

3.2 Identification

这一阶段将识别句中的实体提及和事件触发器,并表示为信息网络中的结点。我们使用前馈神经网络FFN计算每个词的分数向量 y ^ i = F F N ( x i ) \hat{y}_i=FFN(x_i) y^i=FFN(xi) y ^ i \hat{y}_i y^i表示一个标签在目标标签集(Target tag set)中的分数。

之后使用CRF层捕捉标签之间的联系,计算tag path z ^ = { z 1 ^ , . . . , z ^ L } \hat{z}=\{\hat{z_1},...,\hat{z}_L\} z^={ z1^,...,z^L}的分数:
s ( X , z ^ ) = ∑ i = 1 L y ^ i , z i ^ + ∑ i = 1 L + 1 A z ^ i − 1 , z ^ i s(X,\hat{z})=\sum_{i=1}^{L}{\hat{y}_{i,\hat{z_i}}}+\sum_{i=1}^{L+1}{A_{\hat{z}_{i-1},\hat{z}_{i}}} s(X,z^)=i=1Ly^i,zi^+i=1L+1

Producing a fusion map to quantify feature fusion weights typically involves techniques from both deep learning and knowledge representation. In the context of multi-modal data analysis, where you have information from different sources like images (deep learning) and structured data like knowledge graphs (knowledge graph embeddings), a fusion method might involve: 1. **Deep Learning**[^1]: \- Apply a deep neural network, such as convolutional or recurrent networks, on one or more modalities to extract high-level representations. ```python from keras.models import Model image_model = create_image_model() text_model = create_text_model() # Obtain modal-specific feature maps image_features = image_model(image_data) text_features = text_model(text_data) ``` 2. **Set Functions and Equivariance**: - Use set functions like mean pooling or attention mechanisms to aggregate the features across modalities while considering their relative importance. This step ensures that the fusion process is equivariant to transformations in individual modalities. ```python fused_features = combine_features(image_features, text_features, set_function) ``` 3. **Knowledge Graph Embeddings**: - For knowledge graph embeddings, use methods like TransE, DistMult, or ComplEx to represent entities and relations as vectors, which can be concatenated with the learned modality-specific features. ```python kg_embedding_layer = KnowledgeGraphEmbeddingLayer(knowledge_graph) kg_features = kg_embedding_layer(entity_ids) ``` 4. **Fusion Weights Quantification**: - Finally, apply an additional layer, often a fully connected layer or a self-attention mechanism, to learn the fusion weights between the modalities. ```python fusion_weights = Dense(1, activation='softmax')(concatenated_features) fused_output = dot([fused_features, fusion_weights]) ``` The output `fused_output` would then contain the fused representation, where the values in the fusion weights array indicate the contribution of each modality to the final decision.
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值