作者:刘锁阵
单位:燕山大学
论文地址:https://arxiv.org/pdf/2004.11795.pdf
代码地址:https://github.com/LeeSureman/Flat-Lattice-Transformer
Character-word lattice结构对于解决中文NER问题是有效的,然而由于格子结构是复杂的和动态的,大多数现在的基于格子的模型很难完全利用GPU的并行计算能力,并且通常有着比较低的推断速度。
在本篇paper中,作者提出了FLAT:Flat-Lattice Transformer for Chinese NER,将格子结构转换为由位置区间组成的平坦结构。 每个区间对应一个字符或潜在单词及其在原始格中的位置。通过使用Transformer和特定的位置编码方案,Flat可以充分利用格子信息,并具有出色的并行化能力。
在本篇论文中,作者提出了Flat Lattice Tranformer。
在根据词典从文本中得到格子之后,将其展平。如Figure 1(c)所示,Flat-Lattice被定义为区间的集合,一个区间对应一个token,一个head和一个tail。
对于在格子中的两个区间 x i x_i xi和 x j x_j xj,他们有三种关系:
使用dense vector来对他们的关系进行建模。因为区间包含头部和尾部信息,所以不仅可以使用它表示两个token的关系,而且还能够表示一些更详细的信息,例如一个字符和一个单词之间的距离。
假定 h e a d [ i ] head[i] head[i]和 t a i l [ i ] tail[i] tail[i]表示区间 x i x_i xi的头部和尾部位置。显然,可以得到4种相关距离:
相关位置编码:
R i j = R e L U ( W r ( P d i j h h ⊕ P d i j t h ⊕ P d i j h t ⊕ P d i j t t ) ) R_{ij} = ReLU(W_r(P_{d_{ij}^{hh}}\oplus P_{d_{ij}^{th}}\oplus P_{d_{ij}^{ht}}\oplus P_{d_{ij}^{tt}})) Rij=ReLU(Wr(Pdijhh⊕Pdijth⊕Pdijht⊕Pdijtt))
计算 p d p_d pd(Vaswani et al. (2017))
P d 2 k = s i n ( d / 1000 0 2 k / d m o d e l ) P_d^{2k} = sin(d/10000^{2k/d_{model}}) Pd2k=sin(d/100002k/dmodel)
P d 2 k + 1 = c o s ( d / 1000 0 2 k / d m o d e l ) P_d^{2k+1} = cos(d/10000^{2k/d_{model}}) Pd2k+1=cos(d/100002k/dmodel)
然后通过一个注意力机制的变体(Dai et al., 2019))来使用相关位置编码:
A i , j ∗ = W q T E x i T E x j W k , E + W q T E x i T R i j W k , R + u T E x j W k , E + v T R i , j W k , R A_{i,j}^{*} = W_q^T E_{x_i}^T E_{x_j} W_{k,E} + W_q^T E_{x_i}^T R_{ij}W_{k,R} + u^T E_{x_j}W_{k,E} + v^T R_{i,j}W_{k,R} Ai,j∗=WqTExiTExjWk,E+WqTExiTRijWk,R+uTExjWk,E+vTRi,jWk,R
接下来的计算与vanilla Transformer相同。
在FLAT之后,只将字符表示传入输出层,再之后是CRF。
作者使用了四个中文数据集来用于评估模型:
数据集展示:
结果对比:
注意力机制优于Lattice-LSTM的两个原因:
计算效率对比:
与BERT的兼容:
可以看到,对于大数据集例如onenotes和MSRA,FLAT+BERT能够相比BERT有不错的提升。对于小数据集Resume和Weibo,提升效果比较小。
在本篇论文中,作者引入了一个flat-lattice Transformer来结合中文NER的词典信息。
模型的核心是将lattice结构转换为区间集合,并引入了特定位置编码。
实验结果表明FLAT模型在效果和性能上都明显优于其它基于词典的模型。