美文网首页
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