1.Introduction
目标:从给定的非结构化文本中识别实体之间的关系,组成关系三元组(ei, rk, ej),如下:
输入文本:中国运动员徐梦桃在北京冬奥会自由式滑雪女子空中技巧比赛决赛中获得冠军。
抽取需求:
关系类型 | 国籍 |
---|---|
关系论元1 | 主体 |
关系论元2 | 客体 |
期望输出三元组:(徐梦桃,国籍,中国)
2.Contributions
论文中的算法兼顾性能和效率,大概是之前工作的7-15倍inference speed,1/100的parameters。现实中有些场景对实时性要求比较高,比如金融决策需要比较快地从海量实时新闻中提取三元组,基于transformer的预训练模型性能比较好,但是内存消耗大,需要的时间比较长,并行效果比较不好。
为了提升效率,文章没有用基于transformer的预训练模型,而是使用膨胀卷积(也叫空洞卷积)来进行encoder,其中类似与lstm加了一个gate unit,使用残差网络帮助训练。改进了级联二进制标记框架,引入了一种实体-类型-预定义映射机制和一种位置相关的自适应阈值。
3.Model
整体的模型如下,首先经过一个卷积编码器,将word embedding和position embedding拼起来送到一个L层的block中得到句子表示h,然后使用两个 multi-head self-attention用于 head entity和tail entity标注。然后将句子特征h和辅助特征Hh拼起来送到一个前向神经网络来获取所有head entity及其类型。通过映射机制,确定当前head entity类型的潜在relation。最后,与头部实体标记类似,使用句子表示H、辅助特征Ht和head entity特征Fh,利用另一个FFN获得所有tail entity,形成所有关系三元组。
3.1Convolutional Encoder
如图:xg是word embedding,xp是position embedding,拼起来送到一个L层的encoder里面去,每一层叫一个block,第i层的yi通过两个膨胀卷积Ya和Yb,其中一个经过一个sigmoid,Ya与sigmoid(Yb)做element-wise multiplication(即对应位置相乘),再经过残差连接。通过膨胀卷积,扩大reception field,捕获长距离的依赖关系,但预先确定的接受区域影响了后续层详细检查先前的信息,所以加了一个gate unit来选择低层的feature,residual network帮助训练,避免梯度消失。经过l层后得到句子表示h。
3.2 Improved Cascade Binary Tagger
原始的Cascade Binary Tagger:
把传统形式的关系分类f(s,o)--> r 转换成了f_r(s)-->o,构建一层PointerNet判断每个位置是不是起始和终止位置,再把距离最近的起止位置连起来,然后和h拼起来,判断每个head entity对应每个relation是否有匹配的tail entity,若有就组成三元组。
文章的改进:
1.引入实体-类型映射机制,识别subject的同时识别对应的type,建立一个head entity和预定义relation之间的映射,当确定head entity类型时,其潜在的对应关系也是确定的。比如前面说的国籍关系的主语类型是人物,避免了对所有关系的遍历。2.使用position相关的自适应阈值策略将全局阈值替换为不同位置的可学习阈值。在loss function中可以体现,该函数在训练中将positive分数推到阈值以上,将negtive拉到阈值以下,然后学习这个阈值。
具体过程:
首先使用两个 multi-head self-attention用于 head entity tagging and tail entity tagging,self-attention的公式为(5)(6)(7)(8)。将每个位置i每个类型j对应的来自句子表示H的wi和辅助表示Hs的wih拼起来送到FFN,计算每一个i位置为start和end的score。oijhs表示第i个token类型为tj为start的score。
loss function如下,应用了自适应阈值,oij表示第i个token类型为tj为start的score,end也是类似。pij就是位置为i,类型为j的token, oi;AT表示阈值。(11)的前半部分涉及positive标签和阈值,总损失为所有positive标签的交叉熵loss之和,这一部分把positive的logit值推到高于阈值,后一部分涉及negtive标签和阈值。经过这个就得到了head entity以及对应的类型,如:taylor swift和对应的类型person。通过映射表可知主语为person类的relation有birth place 、birth date。
oijts表示对于relation rj第i个token是tail entity的start分数,下面的类似,即end的分数,计算loss的方式(11)相同。Zi表示第i个sentence中所有的relation,Lhj就是第j个relation的loss,Ltj|h是head entity为h的同时类型为tj的loss,加起来就是总共的loss。得出三元组。
4.Experiments
从实验结果上看效果是不错的,但还需要经过实践的检验。老师说工业上目前TPLinker和CasRel用的较多,效果比较好。