【论文阅读】FLAT: Chinese NER Using Flat-Lattice Transformer[ACL2020]


论文地址:https://aclanthology.org/2020.acl-main.611.pdf

代码地址:https://github.com/LeeSureman/Flat-Lattice-Transformer

Abstract

近年来,character-word lattice结构被证明是一种有效的中文命名实体识别方法。然而,由于网格结构的复杂性和动态性,现有的大多数基于网格的模型难以充分利用gpu的并行计算,并且推理速度通常较低。在本文中,我们提出了用于FLAT: Flat-LAttice Transformer for Chinese NER,它将晶格结构转换为由跨距组成的扁平结构which converts the lattice structure into a flat structure consisting of spans。每个跨度对应一个character或潜在单词latent word及其在原始晶格中的位置。借助于变压器的强大功能和精心设计的位置编码,FLAT可以充分利用晶格信息,并具有良好的并行能力。在四个数据集上的实验表明,FLAT在性能和效率上优于其他基于词典的模型。

1 Introduction

最近,格型结构被证明对利用单词信息和避免分词错误传播有很大的好处(Zhang和Yang,2018)。我们可以将一个句子与一个词典进行匹配,以获得其中的潜在单词,然后得到一个如图1(a)所示的格lattice。格是一个有向无环图,其中每个节点是一个字符或一个潜在单词。格包括一系列字符和句子中的潜在单词。它们不是按顺序排列的,单词的第一个字符和最后一个字符决定了它的位置。晶格中的一些单词可能对NER很重要。例如,在图1(a)中人和药店“可用于区分地理实体”重庆(重庆)“和组织实体”重庆人(重庆人)”。

 有两种方法可以利用晶格。(1) 一行是设计与lattice输入兼容的模型,如Lattice-LSTM(Zhang和Yang,2018)和LR-CNN(Gui等人,2019a)。在lattice LSTM中,使用额外的字单元对潜在字进行编码,并使用注意机制在每个位置融合可变数量的节点,如图1(b)所示。LR-CNN使用CNN对不同窗口大小的潜在单词进行编码。然而,RNN和CNN很难对长距离依赖性进行建模(Vaswani等人,2017年),这可能在NER中有用,例如共同引用coreference(Stanislawek等人,2019年)。由于网格结构的动态性,这些方法不能充分利用GPU的并行计算能力。(2) 另一条路线是将lattice转换为图形,并使用图形神经网络(GNN)对其进行编码,例如基于词典的图形网络(LGN)(Gui等,2019b)和协作图形网络(CGN)(Sui等,2019)。虽然序列结构对NER仍然很重要,而图是一般的对应物,但它们之间的差距不容忽视。这些方法需要使用LSTM作为底部编码器carry the sequential inductive bias,这使得模型变得复杂。

在本文中,我们提出了一种适用于中文NER的FLAT:Flat Lattice Transformer for Chinese NER。Transformer(Vaswani et al.,2017)采用完全连接的自我关注来模拟序列中的长距离依赖关系。为了保留位置信息,Transformer为序列中的每个标记引入位置表示。受位置表示思想的启发,我们为晶格结构设计了一种巧妙的位置编码,如图1(c)所示。详细地说,我们为一个标记(字符或单词)指定了两个位置索引:头部位置和尾部位置,通过这两个位置索引,我们可以从一组标记重建晶格。因此,我们可以直接使用Transformer对晶格输入进行完全建模。Transformer的自我注意机制使角色能够直接与任何潜在单词交互,包括自匹配单词。对于一个字符,它的自匹配单词表示包含它的单词。例如,在图1(a)中,自匹配单词为"药"是”人和药店"及"药店 ”(Sui等人,2019年)。实验结果表明,该模型在性能和推理速度上优于其他基于词典的方法。

2 Background

在本节中,我们将简要介绍Transformer体系结构。针对NER任务,我们只讨论变压器编码器。它由自我注意和前馈网络(FFN)层组成。每个子层之后是残差连接和层规范化。FFN是一种具有非线性变换的位置多层感知器。Transformer通过$H$个单独的注意头在序列上执行自我注意,然后连接$H$个注意头的结果。为简单起见,我们忽略以下公式中的头指数。每个head的计算结果如下:

$\begin{aligned} \operatorname{Att}(\mathbf{A}, \mathbf{V}) &=\operatorname{softmax}(\mathbf{A}) \mathbf{V} \end{aligned}$(1)

$\begin{aligned} \mathbf{A}_{\mathbf{i j}} =\left(\frac{\mathbf{Q}_{\mathbf{i}} \mathbf{K}_{\mathbf{j}}{ }^{\mathrm{T}}}{\sqrt{\mathrm{d}_{\text {head }}}}\right)\end{aligned}$

$\begin{aligned} \left[\mathbf{Q}, \mathbf{K}, \mathbf{V}\right] =E_{x}\left[\mathbf{W}_{q}, \mathbf{W}_{k}, \mathbf{W}_{v}\right] \end{aligned}$

 where $E$ is the token embedding lookup table or the output of last Transformer layer. $W_q, W_k, W_v ∈ R^{d_{model}*d_{head}}$ are learnable parameters, and $d_{model} = H × d_{head}$, $d_{head}$ is the dimension of each head.

Vanilla Transformer还使用绝对位置编码来捕获序列信息。受Yan等人(2019)的启发,我们认为向量内点点积的交换性将导致自我注意的方向性丧失we think commutativity of the vector inner dot will cause the loss of directionality in self-attention。因此,我们认为晶格的相对位置对于NER也很重要。

3 Model

3.1  Converting Lattice into Flat Structure

从具有词典的字符中获取晶格后After getting a lattice from characters with a lexicon,我们可以将其平坦化为平坦的对应字符。平面晶格可以定义为一组跨距,跨距对应于tokens、头部和尾部,如图1(c)所示。标记tokens是一个character或word。头部和尾部表示原始序列中标记的第一个和最后一个字符的位置索引,它们表示标记在晶格中的位置。对于character而言,其头部和尾部是相同的。有一种简单的算法可以将平面晶格恢复为其原始结构。首先,我们可以使用具有相同头部和尾部的标记来构造字符序列。然后,我们使用其他tokens(words)及其头部和尾部来构建跳过路径skip-paths。由于我们的变换是可恢复的,我们假设平坦晶格可以保持晶格的原始结构Since our transformation is recoverable, we assume flat-lattice can maintain the original structure of lattice。

3.2  Relative Position Encoding of Spans

平面格构结构由不同长度的跨度组成。为了对跨度之间的相互作用进行编码,我们提出了跨度的相对位置编码。格中的两个跨度$x_i$和$x_j$,它们之间有三种关系:交集、包含和分离intersection, inclusion and separation,由它们的头和尾决定。我们没有直接编码这三种关系,而是使用密集向量dense vector来建模它们的关系。它是通过头部和尾部信息的连续变换来计算的It is calculated by continuous transformation of the head and tail information。因此,我们认为它不仅可以表示两个tokens之间的关系,还可以表示更详细的信息,例如字符character和单词word之间的距离。让$head[i]$和$tail[i]$表示表示跨度$x_i$的头部和尾部位置。四种相对距离可以用来表示$x_i$和$x_j$之间的关系。它们可以计算为:

$d_{i,j}^{(hh)}=head[i]-head[j]$

$d_{i,j}^{(ht)}=head[i]-tail[j]$

$d_{i,j}^{(th)}=tail[i]-head[j]$

$d_{i,j}^{(tt)}=tail[i]-tail[j]$

where $d_{i,j}^{(hh)}$ denotes the distance between head of $x_i$ and tail of $x_j$, and other $d_{i,j}^{(ht)} ,d_{i,j}^{(th)} , d_{i,j}^{(tt)}$ have similar meanings. The final relative position encoding of spans is a simple non-linear transformation of the four distances:

$\begin{aligned} \boldsymbol{R}_{i j} &=\operatorname{ReLU}\left(\boldsymbol{W}_{r}\left(\boldsymbol{p}_{d_{i,j}^{(hh)}} \oplus \boldsymbol{p}_{d_{i,j}^{(th)}} \oplus \boldsymbol{p}_{d_{i,j}^{(ht)}} \oplus \boldsymbol{p}_{d_{i,j}^{(tt)}}\right)\right) \end{aligned}$

 where $W_r$ is a learnable parameter,$⊕$ denotes the concatenation operator, and $\boldsymbol{p}_d$ is calculated as in Vaswani et al. (2017),

$\begin{aligned} \boldsymbol{p}_{\text {d}}^{(2 k)} &=\sin \left(\frac{\text {d }}{10000^{2 k / d_{\text {model }}}}\right) \\ \boldsymbol{p}_{\text {d }}^{(2 k+1)} &=\cos \left(\frac{\text { d}}{10000^{2 k / d_{\text {model }}}}\right) \end{aligned}$

where $d$ is $d^{(hh)}_{ij} , d^{(ht)}_{ij} , d^{(th)}_{ij} or d^{(tt)}_{ij}$ and $k$ denotes the index of dimension of position encoding. Then we use a variant变体 of self-attention (Dai et al., 2019) to leverage the relative span position encoding as follows:

$\begin{aligned} \mathbf{A}_{i, j}^{*} &=\mathbf{W}_{q}^{\top} \mathbf{E}_{x_{i}}^{\top} \mathbf{E}_{x_{j}} \mathbf{W}_{k, E}+\mathbf{W}_{q}^{\top} \mathbf{E}_{x_{i}}^{\top} \mathbf{R}_{i j} \mathbf{W}_{k, R} +\mathbf{u}^{\top} \mathbf{E}_{x_{j}} \mathbf{W}_{k, E}+\mathbf{v}^{\top} \mathbf{R}_{i j} \mathbf{W}_{k, R}, \end{aligned}$(11)

 where $W_q, W_{k,R}, W_{k,E} ∈ R^{d_{model}×d_{head}}$ and $u, v∈ R^{d_{head}}$ are learnable parameters. Then we replace $A$ with $A^{?}$ in Eq.(1). The following calculation is the same with vanilla Transformer.

在FLAT之后,我们只将字符character表示带入输出层,然后是条件随机场(CRF)(Lafferty et al.,2001)。

4  Experiments

4.1  Experimental Setup

四个中文NER数据集用于评估我们的模型,包括(1)OnNotes 4.0(Weischedel and Consortium,2013)(2)MSRA(Levow,2006)(3)Resume(Zhang and Yang,2018)(4)Weibo(Peng and Dredze,2015;He and Sun,2016)。我们在表1中显示了这些数据集的统计数据。我们使用与Gui等人(2019b)相同的train, dev, test split。我们采用BiLSTM-CRF和TENER(Yan等人,2019年)作为基线模型。TENER是一种使用相对位置编码的NER Transformer,无需外部信息。我们还将FLAT与其他基于词典的方法进行了比较。嵌入和词汇embeddings and lexicons与张和杨(2018)相同。与CGN相比(Li等人,2018年),我们使用的词汇lexicons与CGN相同。选择超参数的方法可在补充资料中找到。特别是,我们的模型只使用一层Transformer编码器。

4.2  Overall Performance

表2:四个数据集结果(F1)。BiLSTM结果来自Zhang和Yang(2018)。PLT表示porpus lattice transformer(Mengge等人,2019年)。'YJ'表示张和杨(2018)发布的词典,“LS”表示李等人(2018)发布的词典。其他模型的结果来自他们的原始论文。除了上标*表示原始文件中没有提供结果外,我们通过运行公共源代码获得结果。下标“msm”和“mld”分别表示带自匹配词掩码的FLAT和长距离(>10)。

如表2所示,在四个中文NER数据集上,我们的模型优于基线模型和其他基于词典lexicon-based的模型。我们的模型在F1平均得分上比TENER(Yan等人,2019年)高出1.72。对于Lattice-LSTM,我们的模型的平均F1改进为1.51。当使用另一个词汇时(Li等人,2018年),我们的模型在F1平均得分方面也比CGN高出0.73。可能是由于Transformer的特性,与其他基于词典lexicon-based的模型相比,FLAT在小数据集上的改进不如在大数据集上那么显著。

4.3  Advantage of Fully-Connected Structure

我们认为自我注意机制比Lattice-LSTM有两个优点:1)所有角色都可以直接与其自我匹配的单词进行交互。2) 远程依赖关系可以完全建模。由于我们的模型只有一层,我们可以通过掩蔽相应的注意力来剥离它们。详细地说,我们掩盖了character对其自匹配单词的注意(msm=mask self-matched),以及距离超过10的tokens之间的注意(mld=mask long distance)。如表2所示,第一个掩模的性能显著下降至平坦,而第二个掩模的性能略有下降。因此,我们认为,利用自匹配词的信息对中文NER来说非常重要。

4.4  Efficiency of FLAT

为了验证我们的模型的计算效率,我们在Ontonotes上比较了不同基于词典的模型的推理速度。结果如图3所示。基于GNN的模型优于lattice-LSTM和LR-CNN。但是基于GNN的模型的RNN编码器也降低了它们的速度。由于该模型没有递归模块,并且能够充分利用GPU的并行计算,因此在运行效率上优于其他方法。就利用批并行性而言,当批大小=16时,批并行性为FLAT带来的加速比为4.97,为lattice LSTM带来的加速比为2.1。由于我们模型的简单性,它可以更显著地受益于批处理并行性。

 4.5  How FLAT Brings Improvement

与TENER相比,FLAT充分利用了词典资源并使用了新的位置编码。探讨这两个因素如何带来改善。我们设置了两个新指标,1)Span F:NER中使用的通用F分数同时考虑Span和实体类型的正确性,而Span F只考虑前者。2) Acc类型:完全正确预测与范围正确预测的比例proportion of full-correct predictions to span-correct predictions.。表3显示了Ontonotes和MSRA开发集上三个模型的两个度量。我们可以发现:1)FLAT在两个指标上显著优于TENER。2) FLAT对Span F的改进比Acc型更为显著。3)与FLAT相比,$FLAT_{head}$对Span F的退化比Acc型更为显著。这表明:1)新的位置编码有助于FLAT更准确地定位实体。2) 预先训练的单词级嵌入使FLAT在实体分类中更强大(Agarwal等人,2020)。

 4.6 Compatibility with BERT

 我们还比较了四个数据集上配备BERT的FLAT和普通BERT+CRF标记器,结果如表4所示。我们发现,对于像OntNotes和MSRA这样的大型数据集,FLAT+BERT可以比BERT有显著的改进。但是对于简历和微博这样的小数据集,flat+BERT对BERT的改善是微乎其微的。

5 Related Work

5.1  Lexicon-based NER

 Zhang和Yang(2018)引入了一种Lattice-LSTM来编码一个句子中词典识别的所有字符和潜在单词,避免了在利用单词信息的同时分割的错误传播。Gui等人(2019a)利用CNN和反思机制rethinking mechanism的结合,对不同窗口大小的字符序列和潜在单词进行编码。上述两种模型的推理效率都很低,并且很难对长距离依赖关系进行建模。Gui et al.(2019b)和Sui et al.(2019)利用词典和字符序列构建图形,将NER转换为节点分类任务。然而,由于NER的标签和输入的强对齐,他们的模型需要一个RNN模块进行编码。我们的模型与上述模型的主要区别在于,它们根据晶格修改模型结构,而我们使用精心设计的位置编码来指示晶格结构。

5.2 Lattice-based Transformer

对于lattice-based Transformer,它已被用于语音翻译和中文Chinese-source translation翻译。它们之间的主要区别在于表示晶格结构的方式。在中文Chinese-source translation翻译中,肖等(2019)将节点第一个字符的绝对位置和每对节点之间的关系作为结构信息。在语音翻译中,Sperber et al.(2019)使用到起始节点的最长距离来表示晶格结构,Zhang et al.(2019)使用两个节点之间的最短距离。我们的跨度位置编码更自然,可以映射到所有三种方式,但反之亦然。由于NER比翻译对位置信息更敏感,因此我们的模型更适合NER。最近,针对中国NER提出了多孔晶格变压器Porous Lattice Transformer(Mengge et al.,2019)。FLAT和Porus晶格变换器的主要区别在于位置信息的表示方式。我们使用“head”和“tail”来表示标记在晶格中的位置。他们使用“头”、tokens的相对关系(而不是距离)和额外的GRU。他们还使用“多孔Porous”技术来限制注意力分布。在他们的模型中,位置信息是不可恢复的,因为“头”和相对关系会导致位置信息丢失。简而言之,相对距离比相对关系承载更多的信息。

6  Conclusion and Future Work

在这篇文章中,我们介绍了一个平面晶格变换器来整合中文NER的词汇信息incorporate lexicon information for Chinese NER。我们模型的核心是将晶格结构转换为一组跨度,并引入特定的位置编码。实验结果表明,我们的模型在性能和效率上优于其他基于词典的模型。我们把调整模型以适应不同种类的晶格或图形graph作为我们未来的工作。

7  Appendices

7.1 Hyperparameters Selection

对于MSRA和Ontonotes这两大数据集,我们在Ontonotes开发实验的基础上选择了超参数。对于简历和微博这两个小数据集,我们通过随机搜索random-search找到它们的最优超参数。表5列出了从Ontonotes开发实验中获得的超参数。

表6列出了微博、简历数据集的超参数随机搜索范围。对于其中未显示的超参数,它们与表5中的相同。

 

 

NER