https://arxiv.org/pdf/2004.11795.pdf
https://github.com/LeeSureman/FlatLattice-Transformer
字符-词的lattice结构被证实有助于中文NER任务。但是lattice结构复杂,且是动态变化,因此无法进行GPU并行计算,推理速度较低。本文提出FLAT模型,将lattice结构扁平化,由一系列spans组成,每个span对应一个字符或者词组以及其对应的位置。受益于transformer的self-attention和位置编码,FLAT在4个实验数据上的表现优于其他lexicon-based模型。
背景
在NER任务中,结合字符和词组的方式,有助于提升模型效果。
如何融合词汇和字符信息呢?
Lattice结构,如下图a。
通过词典匹配句子中的潜在词汇,得到lattice结构。一个句子的Lattice是一个有向无环图,每个节点是一个字符或者词汇,这些节点是无序的,通过词的首尾字符确定它的位置。
Lattice中的有些词汇对NER任务非常重要,如图示,‘人和医药’有助于区分‘重庆’和‘重庆人’。
如何利用Lattice结构?
-
Lattice LSTM (2018)或LR-CNN (2019),将lattice中的每一个字or词视为序列节点,进行编码。
如上图b,对lattice LSTM,词节点和字节点一样,被编码成向量,用注意力机制融合每个位置上的字or词节点。LR-CNN通过不同的window-size对词节点进行编码。
问题:
1.1 RNN和CNN无法建立长距离依赖关系,因此无法和词汇进行充分的全局交互;
1.2 Lattice结构是动态变化的,Lattice LSTM和LR-CNN无法在GPU上并行训练;。 - 基于图的编码,例如Lexicon-based Graph Network (2019)和Collaborative
Graph Network (2019),将lattice结构转换成图网络上的节点,将NER任务转换成节点分类任务,用图神经网络模型进行编码。
问题:
图网络模型的节点仍需要LSTM的编码进行归纳偏置,模型复杂度比较高。
Transformer的输入包含了token语义及其对应位置信息,通过self-attention实现信息的全局交互。
因此,本文提出基于transformer-encoder的FLAT模型,如上图c。对每个token(字符/词),增加2个位置编码,分别表示这个token的起始(head)和终止(tail)位置。将Lattice结构扁平化,由self-attention实现字和词之间信息交互。
模型
FLAT 模型结构-
用span表示字符或者词组,用head[i]和tail[i]表示span的头尾位置坐标。对字符来说,起始和终止位置是相同的。
-
span距离计算:
Flat-lattice的span长度不一,如何对变长span编码交互?
Span之间有3种关系:交叉,包含和相离。从以下4个角度计算和的距离:
得到4个相对距离矩阵:。其中,表示和的起始位置的距离。 -
使用Attention is all you need中的正弦/余弦函数进行位置编码:
-
经过非线性变换,得到和的相对位置向量:
-
借鉴Transformer-XL的基于相对位置编码的self-attention:
Vanilla Transformer使用的是绝对位置编码,考虑到向量内乘积会损失自注意力的方向性,因此本文使用的是相对位置编码。
其中:
-
从输出层中提取字向量,进入CRF得到NER标签序列。
每个attention head可表示为:
其中:
:token embedding lookup table/ last transformer layer
实验
实验数据
实验数据分别在以上4个数据集,进行单层Transformer的FLAT模型。
Self-attention机制 Vs. lattice LSTM相比:
- 包含关系中的所有字符和字能充分交互;
- 长距离信息依然能够捕捉得到。
基于这样的前提,进行以下mask操作:
- msm:mask具有包含关系的span
- mld:mask距离过长(>10)的span
模型结果
实验结果F1- 和TENER和CGN比较,F1平均提升了1.51和0.73;
- msm的操作,FLAT模型效果下降很多,mld对FLAT的影响略低,反映出词内字符交互的重要性。
推理速度分析
推理速度比较FLAT效果提升的探索
TENER和FLAT模型相似,前者是基于transformer的相对位置编码,FLAT使用了词典信息,并使用了新的位置编码方式。
Span F:NER模型的F值考虑了span和实体标签的正确性,span F只考虑span的正确性;
Type Acc:span-correct的正确率。
FLAThead:位置向量只使用。
结果显示,FLAT性能优于TENER。这也意味着,新的位置编码能更准确的找到实体位置,提升模型实体分类效果。 FLAT VS. BERT
BERT+FLAT:使用BERT的embedding。
结果显示,FLAT在大数据集上效果提升明显,但在Resume和Weibo这两个小数据集上,和BERT差异不大。
网友评论