A Novel Cascade Binary Tagging Framework for Relational Triple Extraction(论文研读与复现)

A Novel Cascade Binary Tagging Framework for Relational Triple Extraction

Zhepei Wei,Jianlin Su, Yue Wang, Yuan Tian, Yi Chang
(ACL 2020)

研究背景:

以往的方法大多将关系建模为实体対上的一个离散的标签,这也是一种非常符合直觉的做法:首先通过命名实体识别(Named Entity Recognition, NER)确定出句子中所有的实体,然后学习一个关系分类器在所有的实体对上做RC,最终得到我们所需的关系三元组。然而这种Formulation在多个关系三元组有重叠的情况下会使得关系分类成为一个极其困难的不平衡多分类问题,导致最终抽取出的关系三元组不够全面和准确。

 

 

 

 本文的解决思路:

在本文中我们提出了一个新的Formulation,以一种新的视角来重新审视经典的关系三元组抽取问题,
并在此基础上实现了一个不受重叠三元组问题困扰的CasRel标注框架(Cascade Binary Tagging Framework)来解决RTE任务。
CasRel框架最核心思想:把关系(Relation)建模为将头实体(Subject)映射到尾实体(Object)的函数,而不是将其视为实体对上的标签。

具体来说,我们不学习关系分类器:

 

 

 


而是学习关系特定的尾实体标注器:

 

 

 


每个标注器都将在给定关系和头实体的条件下识别出所有可能的尾实体。

在这种框架下,关系三元组抽取问题就被分解为如下的两步过程:首先,我们确定出句子中所有可能的头实体; 然后针对每个头实体,我们使用关系特定的标注器来同时识别出所有可能的关系和对应的尾实体。

CASREL框架:

 

 

 CASREL模型由BERT编码层模块、主体标记模块、特定关系下客体的标记模块三个模块构成。

新的目标函数:训练目标,就是尽可能使公式(1)的值最大。
D:训练的句子集合
𝑇_j:可能的三元组
s∈ 𝑇_j:表示在三元组Tj中的主体;
𝑇_j | s :表示主体是s的三元组Tj;
(r,o)∈ 𝑇_j | s:表示主体是s的三元组𝑇_j中的(r,o)对;
R:表示所有可能的关系;
R\ 𝑇_j | s: 表示除了主体是s的三元组外的所有关系;
o∅:表示一个空的客体;

 

 

这样表示的优点:
1、直接从三元组的级别进行优化。
2、不做任何重叠实体的假设,通过精心设计来解决重贴三元组的问题。
3、公式(3)提供了一种新的思路,就是使用s和r的映射函数来预测o是什么,而不是传统的s和o来进行分类。

 BERT encoder:

 

 

 

S:输入词的独热编码
𝑊_𝑆:表示embedding表
𝑊_p:表示句子中p位置的位置向量
Trans:表示一个transformer的encoder层

 Cascade Decoder:

在经过BERT encoder之后,需要decoder提取三元组。
通过两个级联步获取三元组:
1、先标记处句子中所有的主体
2、对于每个标记的主体,检查所有关系是否存在与主体相关的客体。

因此,级联解码层包含了两个模块:
1、主体标记模块
2、给定一组特定于关系的客体标记模块
Cascade Decoder——Subject Tagger:

 

 

 𝑝_𝑖^(𝑠𝑡𝑎𝑟𝑡_𝑠):表示第i个token是subject起始位置的概率
𝑝_𝑖^(𝑒𝑛𝑑_𝑠):表示第i个token是subject的结束位置的概率
σ 为𝑠𝑖𝑔𝑚𝑜𝑖𝑑函数

 


这一步优化的目标是给出一个句子表示x:

 

 

I{z}=1 if z为真,否则I{z}=0;
𝑦_𝑖^𝑡:表示第i个token的t标记的值;
t只有两种情况:start_s和end_s;
这个公式的意思就是说优化的目标是:如果实际𝑦_𝑖^𝑡为真,
那么说明我们应使得𝑝_𝑖^𝑡的概率尽可能大,否则,使得𝑝_𝑖^𝑡尽可能小。

对于句子中多个subject的检测,采用最近的start-end对来进行主体检测。

 Cascade Decoder —— Relation-specific Object Taggers:

 

 𝑣_𝑠𝑢𝑏^𝑘:表示subject tagger模块下的第k个主体的编码表示向量。
𝑣_𝑠𝑢𝑏^𝑘  :由多个token组成的情况:如果subject是多个token构成的,那么取它们的平均值作为新的𝑣_𝑠𝑢𝑏^𝑘

 

优化目标:

 

 I{z}=1 if z为真,否则I{z}=0;
𝑦_𝑖^𝑡:表示第i个token的t标记的值;
t只有两种情况:start_s和end_s;
如果当前的映射函数r下不存在object,
那么对于所有的𝑦_𝑖^𝑡都设置为0。

 

 整体的目标函数:

 

对公式(3)计算log可知,目标函数J(Θ)为:

 

 

实验结果:

 

 CASREL框架在公开数据集上效果提升很大。

论文复现:

 作者在GitHub开源了模型的keras源码。

本人用pytorch重新复现了该模型,在NYT数据集上10个epoch之后F1就达到了82%,效果很不错。

 

 

posted @ 2020-08-08 11:58  ISGuXing  阅读(1944)  评论(3编辑  收藏  举报