论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer


作者:刘锁阵
单位:燕山大学


论文地址: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: Chinese NER Using Flat-Lattice Transformer_第1张图片
使用Lattice的两种方式:

  • 一种是设计一个模型与格子输入兼容,例如Lattice LSTM和LR-CNN。在Lattice LSTM中,如Figure 1(b)所示,采用了一个额外的单词单元对潜在单词进行编码,并使用注意机制在每个位置融合变量节点。LR-CNN使用CNN来在不同的窗口编码可能的单词。然而,RNN和CNN都很难构建长距离依赖模型。由于动态的lattice 结构,这些方法不能完全利用GPU的并行计算能力。
  • 另一种方法是将格子转换为图,并使用GNN来进行编码,例如LGN和CGN。

在本篇论文中,作者提出了Flat Lattice Tranformer。

  • Transformer采用了全连接的注意力机制来对文本序列中的长距离信息进行建模,为了记录位置信息,引入了文本序列中每个token的位置表示。
  • 并针对lattice结构设计了一个位置编码方案。

模型设计

论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer_第2张图片

将格子转换为平坦结构

在根据词典从文本中得到格子之后,将其展平。如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种相关距离:

  • d i j h h = h e a d [ i ] − h e a d [ j ] d_{ij}^{hh} = head[i] - head[j] dijhh=head[i]head[j]
  • d i j h t = h e a d [ i ] − t a i l [ j ] d_{ij}^{ht} = head[i]-tail[j] dijht=head[i]tail[j]
  • d i j t h = t a i l [ i ] − h e a d [ j ] d_{ij}^{th} = tail[i] - head[j] dijth=tail[i]head[j]
  • d i j t t = t a i l [ i ] − t a i l [ j ] d_{ij}^{tt} = tail[i] - tail[j] dijtt=tail[i]tail[j]

相关位置编码:
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(PdijhhPdijthPdijhtPdijtt))

计算 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。

实验结果和分析

作者使用了四个中文数据集来用于评估模型:

  1. Onenotes 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)

数据集展示:
论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer_第3张图片
结果对比:
论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer_第4张图片
注意力机制优于Lattice-LSTM的两个原因:

  • 所有的字符能够直接与它匹配的单词交互
  • 长距离依赖能够被完全建模

计算效率对比:
论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer_第5张图片
与BERT的兼容:
论文笔记 | FLAT: Chinese NER Using Flat-Lattice Transformer_第6张图片
可以看到,对于大数据集例如onenotes和MSRA,FLAT+BERT能够相比BERT有不错的提升。对于小数据集Resume和Weibo,提升效果比较小。

结论

在本篇论文中,作者引入了一个flat-lattice Transformer来结合中文NER的词典信息。

模型的核心是将lattice结构转换为区间集合,并引入了特定位置编码。

实验结果表明FLAT模型在效果和性能上都明显优于其它基于词典的模型。

你可能感兴趣的:(笔记,自然语言处理)