首页 > 其他分享 >论文阅读:Sequence to sequence learning for joint extraction of entities and relations

论文阅读:Sequence to sequence learning for joint extraction of entities and relations

时间:2024-07-29 12:18:06浏览次数:9  
标签:状态 嵌入 GGNNs extraction sequence 门控 entities LSTM 节点

用以解决重叠关系问题

GGNNs模型

GGNNs(门控图神经网络,Gated Graph Neural Networks)是一种处理图结构数据的神经网络模型。它是图神经网络(GNN)的一个变体,使用了类似于长短时记忆网络(LSTM)中的门控机制来更有效地处理图中的信息流。

GGNNs的核心机制

GGNNs的核心思想是通过在图结构中使用带门控的循环神经网络(如GRU或LSTM)来更新节点的状态。这种结构使得网络能够在多个时间步内维持和传递节点状态,进而捕捉节点间长距离的依赖关系。

GGNNs的组成

  1. 节点状态更新:每个节点的状态是通过考虑其邻居的状态来更新的。这一过程通常使用GRU(门控循环单元)来实现,其中节点的当前状态和从邻居聚合的信息共同决定了节点状态的更新。
  2. 信息聚合信息从节点的邻居那里聚合,通常使用加权和的形式。权重可以是固定的,也可以是通过学习得到的,依赖于节点间的关系类型。
  3. 门控机制:门控机制帮助模型决定在每个时间步应该保留多少旧状态,以及接受多少新的输入信息。这是通过一个sigmoid激活函数来实现的,它输出一个在0到1之间的值,作为更新的权重。

本文提出的模型


编码器解码器两部分组成。

  • 编码器模块包含嵌入层Bi-LSTM层GGNNs层
  • 解码器模块包含注意力层LSTM关系元组生成层

编码器

首先建立了一个字典词汇表V,其中包含原始句子token预定义的关系集R两个特殊的分隔标记(";"和"and")、起始目标标记(SOS)和未知词标记(UNK)。

嵌入层

嵌入层包括单词嵌入层字符嵌入层
给定一个句子x,它包含n个token和目标实体-关系三元组。

  • 首先,根据字典词汇V将输入标记转换为数字身份,然后利用预训练的词嵌入权重参数来初始化输入句子token,得到\(w_i^0\)。
  • 接着,采用具有Max-pooling函数的卷积神经网络来提取每个单词的特征向量,得到\(w_i^1\)。
  • 因此,输入表示为\(W_i = [w_i^0,w_i^1]\)。

Bi-LSTM层

由于Bi-LSTM具有很强的句子语义特征提取能力,我们通过一层Bi-LSTM对词嵌入进行获取,以获取每个词的词隐藏状态。

  • 首先前向 LSTM 将词顺序地嵌入到词隐藏状态\(\overrightarrow{h_i}\)中。
  • 其次后向 LSTM 将输入词嵌入到隐藏状态\(\overleftarrow{h_i}\)中。
  • 最后,我们得到每个词的词表示:\(h_i = [\overrightarrow{h_i}, \overleftarrow{h_i}]\)。

GGNNs层

为了更好地将区域特征与序列结构化特征相结合,我们通过依赖边缘自边缘前向边缘后向边缘的关系建立了每个节点的边缘\(M\)。并利用GGNNs层来保持整个句子的图和序列结构。

\[g_i = GGNNs(M, h_i) \]

解码器

为了预测关系元组,采用一层单向LSTM作为解码器模块。

  • 在每个训练阶段 t,单向 LSTM 采用目标词嵌入\(y_i\)和编码上下文隐藏状态\(h_i\)来预测新的解码隐藏阶段。

\[s_t = LSTM(h_{t-1}, y_{t-1}, s_{t-1}) \]

  • 采用Bahdanau注意力机制来获取每个单词的上下文表示。
  • 最后,通过线性连接运算得到每个生成的词的概率值:

\[r_t = We_t + b \]

  • 在训练过程中,我们采用交叉熵来优化生成的令牌和直接的目标标签令牌。
  • 然而,在推理过程中,解码器生成了一个在原始句子中找不到的单词、特殊标记和关系集 R。
  • 因此,使用掩码方法(在映射层利用了Softmax函数),解决训练阶段和推理阶段的不一致问题。

Liang Z, Du J. Sequence to sequence learning for joint extraction of entities and relations[J]. Neurocomputing, 2022, 501: 480-488.

标签:状态,嵌入,GGNNs,extraction,sequence,门控,entities,LSTM,节点
From: https://www.cnblogs.com/zinger/p/18329681

相关文章

  • 论文阅读:BERT-Based Chinese Relation Extraction for Public Security
    模型框架包含一个BERT模型层(嵌入+编码+池化->得到句子的特征向量)、一个Dropout层(防止过拟合)。基于BERT的预训练模型BERT模型是通过注意力机制对训练集进行处理。然后,通过Embedding层和Encoder层加载预训练的词向量。最后,Pooling层使用BERT模型来训练两个句子。BERT嵌入层......
  • P3131 [USACO16JAN] Subsequences Summing to Sevens S
    传送锚点:[USACO16JAN]SubsequencesSummingtoSevensS-洛谷题目描述FarmerJohn's\(N\)cowsarestandinginarow,astheyhaveatendencytodofromtimetotime.EachcowislabeledwithadistinctintegerIDnumbersoFJcantellthemapart.FJwould......
  • Netcode for Entities如何添加自定义序列化,让GhostField支持任意类型?以int3为例(1.2.3
    一句话省流:很麻烦也很抽象,能用内置支持的类型就尽量用。首先看文档。官方文档里一开头就列出了所有内置的支持的类型:GhostTypeTemplates其中Entity类型需要特别注意一下:在同步这个类型的时候,如果是刚刚Instantiate的Ghost(也就是GhostId尚未生效,上一篇文章里说过这个问题),那么客......
  • 题解:AT_abc357_f [ABC357F] Two Sequence Queries
    题意维护一个数据结构,支持两个数列的区间求和,和查询区间内两数列各元素积的和。分析线段树万岁!这道题要维护两个序列,所以线段树中要同时存储两个区间和。但还要在维护一个信息,是该区间内两序列元素积的和。大概长这样:structno{ intl,r; intda,db,ab; intta,tb;}t[m......
  • 题解:AT_abc352_d [ABC352D] Permutation Subsequence
    虽然比赛没打,但是想来水估值发表思路。题意给你一个\(1\simn\)的排列,让你从中找一段长为\(k\)的子序列,使得这个子序列中的元素排序后数值连续。分析题意转换一下,先用结构体存储每个元素的编号和数值,按照数值排序。于是这道题就成了:一个序列,让你求所有长\(k\)的子段中......
  • CF1988C Increasing Sequence with Fixed OR Solution
    题意简述如下:给定一个正整数\(n\),请构造一个正整数序列使其满足以下条件并尽可能长:这个序列中每个数都大于等于\(1\)且小于等于\(n\);这个序列是单调递增的;这个序列中任意两个相邻的数按位或的结果都为\(n\)。通过手玩或者写个最长上升子序列可以发现,我们记这个数在二进制......
  • [ABC362E]Count Arithmetic Subsequences
    题目大意给定\(N\)个数字的序列,每个元素为\(a[i]\),问长度为i的数字序列是由多少个子序列构成的?定义数字序列:如果\(a[i]-a[j]==a[k]-a[i]\),则\(a[j],a[i],a[k]\)构成数字序列数据范围\(N\leq80,a_i\leq10^9\)题解一看到这个数据范围,就和\(a[i]\)没关系,肯定是和\(N\)有......
  • E. Block Sequence
    原题链接题解仍然是见微知著,假设已知当前数组及其所有子数组的最小删除个数,这时往数组的前面添加一个元素,则这个数要么被删掉,要么作为领头code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;inta[200005];intdp[200005];voidsolve(){intn......
  • 题解:CodeForces 843A Sorting by Subsequences[模拟/排序]
    CodeForces843AA.SortingbySubsequencestimelimitpertest:1secondmemorylimitpertest:256megabytesinputstandardinputoutputstandardoutputYouaregivenasequence\(a_1, a_2, ..., a_n\)consistingofdifferentintegers.Itisrequiredtos......
  • Netcode for Entities里如何对Ghost进行可见性筛选(1.2.3版本)
    一行代码省流:SystemAPI.GetSingleton<GhostRelevancy>()当你需要按照区域、距离或者场景对Ghost进行筛选的时候,NetcodeforEntities里并没有类似FishNet那样方便的过滤方式,需要获取一个过滤专用的组件:GhostRelevancy。这个结构的内容不多,但功能很强大,但用起来很累,但概念其实挺......