赞
踩
TPLinker融合了多头multi-head抽取范式(创建token-pair的矩阵)+ 标注方式(定义三种标注EH2ET,SH2OH,ST2OT的标签)的思想,有些巧妙。
假设序列长为N,实体类数为T个,关系类别为R个,则会根据标注标签生成2R+1个结果矩阵,TP_Linker其实就是在上面这种multi-head的思想基础上,最后输出的是一个[batch, seq_len, seq_len, num_label], num_label=2R+1
1). entity head to entity tail (EH-to-ET):紫色标注,表示同一实体的头尾关系,是1个N×N矩阵,如两个实体:New York City:M(New, City) =1; De Blasio:M(De, Blasio) =1。
2). subject head to object head (SH-to-OH):红色标注 表示subject和object的头部token间的关系,是R个N×N矩阵,如三元组(New York City, mayor,De Blasio):M(New, De)=1。
3). subject tail to object tail (ST-to-OT):蓝色标注 表示subject和object的尾部token间的关系,是R个N×N矩阵,如三元组(New York City, mayor,De Blasio):M(City, Blasio)=1。
EH2ET标注实体,SH2OH、ST2OT标注实体间关系。
由于entity的EH位置肯定大于ET位置,则EH-to-ET的实体标记肯定是都在与上半矩阵的。但是因为subject实体可能会出现的object实体顺序后,因此SH-to-OH与SH-to-OH的关系标记是可能会落在下半矩阵的,这样就必定造成矩阵中下半区是比较稀疏的。为加强计算的效率,防止稀疏矩阵部分参与计算,TPLinker采取翻转操作,将其转置到上三角,将“标记1”变为“标记2”。
为什么已经有SH-to-OH标记关系了,还要加ST-to-OT标记关系?
:因为嵌套实体,存在可能同头不同尾或同尾不同头情况,因此需要进行实体pair的head token与实体pair的tail token的双重检查,这个正是为解决嵌套实体的多关系问题。
例子一:
例子二:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。