【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling

AAAI 2021
源代码

创新

  1. 没有引入图结构,而是把上下文embedding融入到实体embedding
  2. 提出自适应阈值损失,而非设定死板的全局阈值

编码器

还是使用基础的bert,但是在扔进bert之前,对文档中的实体提及前后加以 * 标记

对于每个实体,因为有好多个提及,把他们编码后的embedding,使用logsumexp pooling,得到实体的embedding表示。

获取一对实体的embedding以后,分别送入线性层,tanh再激活一下,二者一起送入全连接层,用sigmoid计算各个关系的概率。

下面这个公式,作者做了改进,在这里引入了局部上下文embedding,在后面进行介绍。
【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling_第1张图片
训练的时候用bce loss,预测的时候,设定了全局阈值,超过就认为存在关系r。

自适应阈值

作者紧接着说,全局阈值不靠谱,因为不同实体对,不同关系,不能一概而论。

【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling_第2张图片

  • Positive T
    对于一对实体T,只要二者存在关系,Pt 就包含这类关系,如果不巧,这对实体没有关系,那Pt 就是空的。
  • Negative T
    对于一对实体T,如果二者不存在任何关系,Nt 存储的是实体对T不存在的关系。

如果实体对分类正确,阳性标签的logit会高于阈值,阴性标签的logit低于阈值。这个阈值TH class就可以自己学习得到。

自适应阈值的损失函数

【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling_第3张图片
作者针对阈值设立专门的损失函数。

  • L1损失涉及阳性标签和阈值,由于可能有多个阳性标签,总损失计算为所有阳性标签的交叉熵损失之和。L1将阳性标签的logit值推到高于阈值。
  • L2损失涉及阴性标签和阈值。他把隐形标签的logit值拉到低于阈值。、

局部上下文池化

有的上下文可能和实体对没啥关系,所以作者搞了只关心对决定实体对的关系有用的上下文。

使用与两个实体相关的附加上下文embedding,来增强实体对的embedding。

因为已经用了基于双向transformer的bert来编码,那里边自带多头attention,所以直接使用他们的注意力头来作为局部上下文。bert已经很牛逼了,不需要从头学习新的attention了。

从最后一层transformer里取。对同一实体的所有提及的attention求平均,获得实体的attention。

通过将它们的实体级attention相乘,然后进行规范化,我们获得了对两个实体都很重要的上下文embedding。

【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling_第4张图片
有了上下文embedding,去修改上面编码层提到的公式3和公式4
【论文阅读】Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling_第5张图片
将上下文embedding融入到实体embedding中。

你可能感兴趣的:(论文阅读,python,人工智能,深度学习)