【论文阅读】Graph Enhanced Dual Attention Network for Document-Level Relation Extraction
2020年11月Coling
Graph Enhanced Dual Attention Network for Document-Level Relation Extraction. Bo Li, et al. COLING 2020 [pdf]
没有代码
引入了从句子到关系S2R和从关系到句子R2S的双向注意力机制。
创新:
- 双attention机制
- 正则化处理
- 引入证据支持向量作为注意力权重的监督信号
1.编码层
使用BILSTM对文档编码,将输入文档转化成1)词embedding 2)实体类型embedding 3)实体在docred首次出现的顺序embedding,得到H (n*2h)
- 使用max-pooling获得每个句子的语义表示
对于一个实体,在文档中可能有不同的实体提及。作者对于文档中位于第a到第b个词的实体提及j, 1 b − a + 1 ∑ l o c = a b H l o c \frac{1}{b-a+1}\sum^{b}_{loc = a}H_{loc} b−a+11∑loc=abHloc
e j e_{j} ej就表示第j个实体的所有实体提及的平均值
- 对于每一对实体都使用一个双线性函数表示他们的关系,假如文档有k个实体,那就有关系表示 T ∈ k ∗ ( k − 1 ) ∗ d T\in{k*(k-1)*d} T∈k∗(k−1)∗d
2. 基于图的双向注意力机制
2.1 S2R层
输出面向关系的句子表示
获取关系权重矩阵 W S 2 R ∈ R m ∗ k ∗ ( k − 1 ) W_{S2R}\in{R^{m*k*(k-1)}} WS2R∈Rm∗k∗(k−1)
m是句子个数,k是实体个数
2.2 GCN层
构建具有实体节点和句子节点的异构GCN。
有3种边
- 句子-句子边: 两个句子都包含相同实体
- 实体-实体边:两个实体同时出现在一个句子
- 实体-句子边: 实体位于句子中
由于实体表示和句子表示的维度不同,先把维度转换一下,得到特征矩阵 X ∈ ( k + m ) ∗ d X\in{(k+m)*d} X∈(k+m)∗d
A A A是正则化的邻接矩阵,W3是一个权值矩阵
通过这样的运算:
- L的前k行表示精炼的k个实体表示
- L的k+1到k+m行表示精炼的m个句子表示
- 双线性函数作用于前k行,也就是实体表示,来获得关系表示 T T T
2.3 R2S层
他正好和S2R反过来,输出面向句子的关系表示
上一步得到的关系表示 T T T用作query vector
key vector就是每个句子的表示
输出权重矩阵 W R 2 S ∈ R k ∗ ( k − 1 ) ∗ m W_{R2S}\in{R^{k*(k-1)*m}} WR2S∈Rk∗(k−1)∗m
2. 二元attention的正则化
W R 2 S W_{R2S} WR2S 和 W S 2 R W_{S2R} WS2R 有着天然的对偶性质。用了L2正则化处理
3. 证据支持
假如一个文档有 m m m个句子,对于第 i i i类关系,如果前2个句子支持了这类关系,那么对应的支持向量 c i c_i ci如图所示。
如果恰巧不能表示任何关系,那么对于一个有m个句子的文档来说,对于关系i,他的支持向量全部设定为 1 m \frac{1}{m} m1
W R 2 S W_{R2S} WR2S的第i行,称为 W i W_i Wi,表示第i个关系实例,对于所有句子给出的注意力权重。直觉上,他应该很靠近我们刚刚说的支持向量。
这里作者使用KL散度来衡量 c i c_i ci和 W i W_i Wi的分布差异来作为额外损失。
4. 分类层
前面通过R2S层求出了关系表示 T T T,vi就表示第i类关系。对于每一类关系,都通过sigmoid层进行分类。
还没有评论,来说两句吧...