Lyu Z, Shi K, Li X, et al. Multi-grained dependency graph neural network for Chinese open information extraction[C]//Pacific-Asia Conference on Knowledge Discovery and Data Mining. Cham: Springer International Publishing, 2021: 155-167.
MGD-GNN开源代码
引言
- 传统的OpenIE系统大多
基于语法模式
和启发式规则
,利用外部NLP工具获得词性(POS)标签或依赖特征,并生成语法模式来提取三元组。 - Neural OpenIE方法可以分为
序列生成
和跨度选择
两类。- 序列生成模型,直接使用编解码器框架生成三元组。
- 跨度选择模型,选择一个句子的span作为谓词或参数。
- 以往的模型大多是基于单词的,因此在应用到中文时,会传播分词错误。(如下图,由“中国”和“外交部长”组成的“中国外交部长”被分为一个词,就会导致基于词的模型忽视第一个三元组。)
问题和方法
- 问题定义
- 给定一个带有N个字符的
句子S
,目标是从句子中提取M个事实三元组
。
- 给定一个带有N个字符的
- MGD-GNN模型
- MGD-GNN模型采用了一种
两阶段的管道提取方法
,包括谓词提取
和参数提取
阶段。 - 这两个阶段共享相同的神经网络架构,使用上
下文编码器
和MGD_GNN模型
来获得字符嵌入。 - 在谓词提取阶段,我们的模型从句子中提取所有的谓词span。
- 在参数提取阶段,我们的模型为每个谓词预测其对应的主语和宾语。
- MGD-GNN模型采用了一种
上下文编码器
- 首先使用
word2vec
将每个字符映射到它的分布式表示
ci。 - 在谓词和参数提取阶段为每个字符连接不同的
特征嵌入
fi。 - 连接xi=[ci;fi]后,就可以得到一个
嵌入序列
<x1,...,xN>,作为上下文编码器的输入。 - 上下文编码器使用
BiLSTM
来建模序列。
MGD-GNN
- MGD图中的
单词节点
和字符节点
通过两种类型的无向边
相互连接,命名为依赖边
和软段边
(soft-segment edge)。 - 为了构建MGD图,我们首先使用
LTP
获得一个句子的分割词
和依赖树
。 - 我们把分割后的单词作为MGD图的
单词节点
,并将有向依赖树边作为词节点之间的无向依赖边
。 - 同时,将句子中的每个字符作为一个
字符节点
添加到MGD图中。单词节点具有连接到组成单词的字符节点的软段边
。
MGD图上的图神经网络
- 使用
图注意网络(GAT)
作为本模型的图编码器,它能够在从邻居中聚合信息时控制节点的权重。 - 初始化节点嵌入:使用来自BiLSTM编码器的
隐藏状态输出
来初始化节点嵌入。通过平均池化
来计算字节点的初始化向量。
- 图G={V,E},其中V是节点集合,包括词节点W和字符节点C,E是边集合,包括依赖边和软段边。
- Ni表示和节点i有软段边的所有邻居。
- 节点更新:使用
多头注意
来更新节点表示。多头注意在聚合来自邻居的信息时采用H个注意头,每个注意头将输入转换到不同的空间,并关注邻居的不同方面。- 首先,使用
前馈神经网络
计算每对节点之间的注意力分数。
- a(h)是可学习的注意权重向量。
- 然后,使用一个
softmax函数
来计算归一化的注意权重。
- 节点i在头部h上的输出特征如下:
- 首先,使用
- 连接H个注意头的输出,得到更新的节点特征。为了便于实现,我们选择GAT层的输入和输出的维数相同。
- 通过叠加L个GAT层,每个节点都可以从其L-hop邻居中收集信息。
- 保留最后一个GAT层的字符节点特征,用于三元组提取。
三元组的提取
谓词提取
- 将谓词提取建模为一个
跨度分类问题
。只保留满足最大长度
、不重叠
和语法约束
的跨度作为候选分类。 - 为了整合语法特征,将
POS标签
嵌入到ti作为额外的特征输入fi=ti。 - 对于一个候选跨度<ci,...,cj>,选择它的开始和结束字符特征,并预测它作为一个谓词的概率。
- 其中,Wp为线性谓词分类器的权重。
参数提取
- 给定在谓词提取阶段获得的每个谓词,我们提取其对应的主语和宾语。
- 采用
相对位置嵌入
作为额外的输入特征fi=pi来表示谓词位置。 - 为了提取主语,在U上应用线性分类器来计算每个字符作为一个主语的开始和结束的概率。(以同样的方式提取宾语)
实验
- 数据集:
SpanSAOKE
。 - 评估:
- 两个三元组tp=(^si, ^pi, ^oi)和t=(si, pi, oi)被认为是匹配的,需要满足两个匹配条件之一。
- (1) g(^si, sj), g(^pi, pj), g(^oi, oj) >= δ
- (2) g(Cat(tp), Cat(t)) >= δ
- 其中,g(·,·)是格式塔模式匹配。Cat(·)将三个组件连接为一个整个字符串。δ在实验中为0.85。
- 评估指标:
precision
,recall
和F1值
。
- 两个三元组tp=(^si, ^pi, ^oi)和t=(si, pi, oi)被认为是匹配的,需要满足两个匹配条件之一。