美文网首页
FLAT: Chinese NER Using Flat-Lat

FLAT: Chinese NER Using Flat-Lat

作者: 第一个读书笔记 | 来源:发表于2021-08-17 11:44 被阅读0次
FLAT

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结构?

  1. 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上并行训练;。
  2. 基于图的编码,例如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 模型结构
  1. 用span表示字符或者词组,用head[i]和tail[i]表示span的头尾位置坐标。对字符来说,起始和终止位置是相同的。

  2. span距离计算:
    Flat-lattice的span长度不一,如何对变长span编码交互?
    Span之间有3种关系:交叉,包含和相离。从以下4个角度计算x_ix_j的距离:
    d_{ij}^{(hh)} = head[i] - head[j]
    d_{ij}^{(ht)} = head[i] - tail[j]
    d_{ij}^{(th)} = tail[i] - head[j]
    d_{ij}^{(tt)} = tail[i] - tail[j]
    得到4个相对距离矩阵:d^{(hh)},d^{(ht)},d^{(th)},d^{(tt)}。其中,d^{(hh)}表示x_ix_j的起始位置的距离。

  3. 使用Attention is all you need中的正弦/余弦函数进行位置编码p_d
    p_d^{2k} = sin(d/10000^{2k/d_{model}})
    p_d^{2k+1} = cos(d/10000^{2k/d_{model}})

  4. 经过非线性变换,得到x_ix_j的相对位置向量R_{ij}
    R_{ij} = ReLU(W_r(p_{d_{ij}^{(hh)}} \oplus p_{d_{ij}^{(ht)} } \oplus p_{d_{ij}^{(th)}} \oplus p_{d_{ij}^{(tt)}}))

  5. 借鉴Transformer-XL的基于相对位置编码的self-attention:
    Vanilla Transformer使用的是绝对位置编码,考虑到向量内乘积会损失自注意力的方向性,因此本文使用的是相对位置编码。
    A_{i,j}^* = W_q^TE_{x_i}^TE_{x_j}W_{k,E} + W_q^TE_{x_i}^TR_{ij}W_{k,R} + u^TE_{x_j}W_{k,E} + v^TR_{ij}W_{k,R}
    其中:
    W \in R^{d_{model} \times d_{head}}
    u,v \in R^{d_{head}}

  6. 从输出层中提取字向量,进入CRF得到NER标签序列。
    每个attention head可表示为:
    Attn(A^*,V) = softmax(A^*)V
    A_{ij}^*= (\frac {Q_iK_j^T}{\sqrt {d_{head}}})
    [Q,K,V] = E_x[W_q,W_k,W_v]
    其中:
    E:token embedding lookup table/ last transformer layer

实验

实验数据

实验数据

分别在以上4个数据集,进行单层Transformer的FLAT模型。

Self-attention机制 Vs. lattice LSTM相比:

  1. 包含关系中的所有字符和字能充分交互;
  2. 长距离信息依然能够捕捉得到。

基于这样的前提,进行以下mask操作:

  1. msm:mask具有包含关系的span
  2. mld:mask距离过长(>10)的span

模型结果

实验结果F1
  1. 和TENER和CGN比较,F1平均提升了1.51和0.73;
  2. msm的操作,FLAT模型效果下降很多,mld对FLAT的影响略低,反映出词内字符交互的重要性。

推理速度分析

推理速度比较

FLAT效果提升的探索

TENER和FLAT模型相似,前者是基于transformer的相对位置编码,FLAT使用了词典信息,并使用了新的位置编码方式。
Span F:NER模型的F值考虑了span和实体标签的正确性,span F只考虑span的正确性;
Type Acc:span-correct的正确率。
FLAThead:位置向量只使用d_{ij}^{(hh)}

FLAT VS. TENER
结果显示,FLAT性能优于TENER。这也意味着,新的位置编码能更准确的找到实体位置,提升模型实体分类效果。 FLAT VS. BERT

BERT+FLAT:使用BERT的embedding。
结果显示,FLAT在大数据集上效果提升明显,但在Resume和Weibo这两个小数据集上,和BERT差异不大。

相关文章

网友评论

      本文标题:FLAT: Chinese NER Using Flat-Lat

      本文链接:https://www.haomeiwen.com/subject/aetvbltx.html