ACL 2019 《基于参数生成的图神经网络的关系提取》 论文解读
Graph Neural Networks with Generated Parameters for Relation Extraction 论文解读
Background
-
论文动机
- 现有的 GNNs 只能在预先定义好的graph上进行 multi-hop relational reasoning,并且不能直接应用在自然语言关系推理上。
- discover more accurate relations.
-
论文贡献
- 提出了一种具有生成参数的图神经网络**(a novel graph neural network model with generated parameters)**s。与传统GNN相比,GP-GNNs可以学习边参数,从关系缺失的图或者是具有限数量的边缘类型的图推断扩展到非结构化的文本输入
- 证实了GP-GNN具有多条关系推理的能力。
Models
模型分为三个部分,GP-GNN首先用文本序列构造一个==全连接的同质网络图==,不区分边的类型,通过编码的方式让模型学习边的参数(这也是为什么叫生成参数的GNN的原因了)
1. 编码模块
编码模块将原本序列转换为与边相关的过渡矩阵**(transition matrices corresponding to edges)**,使边能对丰富的语句信息进行编码。
sequence=\left(x_{0}^{i, j}, x_{1}^{i, j}, \ldots x_{\ell}^{i, j}\right)
得到 Aransition Matrices:
\mathcal{A}_{i, j}^{(n)}=f\left(E\left(x_{0}^{i, j}\right), E\left(x_{1}^{i, j}\right), \cdots, E\left(x_{l-1}^{i, j}\right) ; \theta_{e}^{n}\right)
f()是任何可以编码序列数据的模型,例如,LSTMs,GRUs,CNNs,E()是 Embedding Function.
例如:
E\left(x_{t}^{i, j}\right)=\left[\boldsymbol{x}_{t} ; \boldsymbol{p}_{t}^{i, j}\right]
\mathcal{A}_{i, j}^{(n)}=\left[\operatorname{MLP}_{n}\left(\operatorname{BiLSTM}_{n}\left(\left(E\left(x_{0}^{i, j}\right), E\left(x_{1}^{i, j}\right), \cdots, E\left(x_{l-1}^{i, j}\right)\right)\right]\right.\right.
其中,\boldsymbol{p}_{t}^{i, j}是单词t相对于实体对的位置 i,j 的位置嵌入向量表示; \boldsymbol{x}_{t} 是单词 x_{t} 的word embedding.
n denotes the index of layer: means their parameters are different among layers
[\cdot] means reshaping a vector as a matrix.
\mathcal{A}_{i, j}^{(n)}指的是entity i和entity j在 gcn 第n层的边的权重(作为图中的参数),由此我们可以了解到:
==在gcn的每一层,边的权重都是要计算的==(现在可以联想到生成参数是怎么回事了吧?)
2. 传播模块
**传播模块逐层学习节点的表示形式。**使用GCN在节点之间传播关系信息,节点的初始表示与任务相关,
\mathbf{h}_{i}^{(n+1)}=\sum_{v_{j} \in \mathcal{N}\left(v_{i}\right)} \sigma\left(\mathcal{A}_{i, j}^{(n)} \mathbf{h}_{j}^{(n)}\right)
The Initial embeddings of nodes
Annotators a_{subject} and a_{object} could also carry ==the prior knowledge== about subject entity and object entity.
(不太懂的操作?【0,1】,【1,0 】)
3. 分类模块
将实体v_i和v_j的K层的信息都利用起来计算两个节点之间的关系表示 \boldsymbol{r}_{v_{i}, v_{j}}
\boldsymbol{r}_{v_{i}, v_{j}}=\left[\left[\boldsymbol{h}_{v_{i}}^{(1)} \odot \boldsymbol{h}_{v_{j}}^{(1)}\right]^{\top} ;\left[\boldsymbol{h}_{v_{i}}^{(2)} \odot \boldsymbol{h}_{v_{j}}^{(2)}\right]^{\top} ; \ldots ;\left[\boldsymbol{h}_{v_{i}}^{(K)} \odot \boldsymbol{h}_{v_{j}}^{(K)}\right]^{\top}\right]
\mathbb{P}\left(r_{v_{i}, v_{j}} \mid h, t, s\right)=\operatorname{softmax}\left(\operatorname{MLP}\left(\boldsymbol{r}_{v_{i}, v_{j}}\right)\right)
\mathcal{L}=\sum_{s \in S} \sum_{i \neq j} \log \mathbb{P}\left(r_{v_{i}, v_{j}} \mid i, j, s\right)
==计算loss的时候会不会计算量太大了呢??==
Experiment
-
对比模型
Context-Aware RE(上下文感知RE 由Sorokin & Gurevych (2017)提出)
Multi-Window CNN.(多窗口的CNN 由Zeng et al. (2014))
PCNN, proposed (由 Zeng et al. (2015)提出)
LSTM or GP-GNN ( K = 1 )双向 LSTM,可以看作模型的1层变体。
K=2 或 K=3 的 GP-GNN,可以进行 2 跳推理和 3 跳推理。
-
实验数据集
-
Distantly labeled set
2017年Sorokin和Gurevych等人利用Wikipedia corpora构造的一个数据集。
本文任务与其任务之间有一个小区别:本文任务是提取句子中每对实体之间的关系,而他们的任务是提取给定实体对与上下文实体对之间的关系(extract the relationship between the given entity pair and the context entity pairs.) 。因此作者做了以下修改:
1)如果给定三元组中没有reversed edges,例如如果句子中存在三元组(Earth, partof, Solar System),则向其添加一个反向标签(Solar System, has a member, Earth);
2)对于所有没有关系的实体对,在它们之间添加了“NA”标签。(也作为有标签的训练数据?)
-
Human annotated test set
测试集中有350个句子和1230个三元组(人工精标)
-
Dense distantly labeled test set
实体数量应严格大于2;句子的真实标签中必须至少one circle(至少有三个实体)(==圆的每个边都有一个非“NA”标签==?)。该测试集可用于测试论文方法在实体之间具有复杂相互作用的句子上的表现,该测试集中有1350个句子、超过17915个三元组和7906个关系。
-
-
实验结果分析(==实验结果是在词袋上的??==)
在三个测试集中都表现为最佳。特别是在Dense distantly labeled test set (多实体情况中)