《FLAT: Chinese NER Using Flat-Lattice Transformer》论文详解

  • 作者首先讨论了《Chinese NER Using Lattice LSTM》中关于lattice网络的应用,以及lattice网络所具有的优缺点。
    在这里插入图片描述
    Lattice LSTM 中,由于格子结构的复杂性和动态性,所以很难完全利用GPU资源进行并行计算,推理速度比较低。
    在这里插入图片描述

  • 作者基于上述问题,提出了 Flat-Lattice Transformer 模型。

    • Transformer 使用注意力机制替换掉了原来的 LSTM,既满足的长距离信息建模,也提升了计算效率。

    • Flat-Lattice 部分则是针对原来的 lattice 进行了改进,将词组信息编入了 transformer 的位置信息中,进行了信息的扁平化。
      在这里插入图片描述

  • 作者认为lattice的相对位置,对于NER识别来说很重要,所以使用了两个编码,head position encodingtail position encoding 来对每一个 token 进行位置标记。对于序列中的任意两个 token x i x_i xi x j x_j xj,他们存在三种关系:相交、包含相离,所有的关系均可以使用他们的头和尾两两组合来确定,例如 x i x_i xi x j x_j xj 的四种关系可以表示为:

    d i j ( h h ) = h e a d [ i ] − h e a d [ j ] d_{ij}^{(hh)} = head[i] - head[j] dij(hh)=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] dij(ht)=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] dij(th)=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] dij(tt)=tail[i]tail[j]

    d i j ( h h ) d_{ij}^{(hh)} dij(hh) 表示 i 的 headj 的 head 的距离,其他三项含义相似。则不同跨度之间的最终相对位置由以上四个距离进行简单非线性转换。

    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(Pdij(hh)Pdij(th)Pdij(ht)Pdij(tt)))

    其中 W r W_r Wr 是可学习权重, ⊕ \oplus 表示拼接运算。 P d P_d Pd 的计算方式与 Transformer 一样。

    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}}) Pd(2k)=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}}) Pd(2k+1)=cos(d/100002k/dmodel)

    在计算时,将 d 替换成 d i j ( h h ) d_{ij}^{(hh)} dij(hh) 等, d m o d e l d_{model} dmodelk 则分别表示 token编码的维度token编码的维度的索引。然后再使用一种自注意力的变体来利用位置编码。

    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^T_q E^T_{x_i} E_{x_j} W_{k,E} + W^T_q E^T_{x_i} R_{ij} W_{k,R} + u^T E_{x_j} W_{k,E} + v^T R_{ij} W_{k,R} Ai,j=WqTExiTExjWk,E+WqTExiTRijWk,R+uTExjWk,E+vTRijWk,R

    其中 W q , W k , R , W k , E ∈ R d m o d e l ∗ d h e a d W_q,W_{k,R},W_{k,E} \in R^{d_{model} * d_{head}} Wq,Wk,R,Wk,ERdmodeldhead u , v ∈ R d h e a d u,v \in R^{d_{head}} u,vRdhead,都是可训练权重。 d m o d e l = H ∗ d h e a d d_{model} = H * d_{head} dmodel=Hdhead d h e a d d_{head} dhead是每个头的维度, d m o d e l d_{model} dmodel是模型输入的空间向量维度。 例如: d m o d e l = 768 d_{model}=768 dmodel=768,如果使用 H = 12 H = 12 H=12个头,那么 d h e a d = 768 / 12 = 64 d_{head} = 768/12 = 64 dhead=768/12=64,意味着每个头有64个输出维度。

    然后使用 A ∗ A^* A 替换掉注意力机制中的 A,就得到了新的模型。(其实就是在Transformer 模型的基础上调整了注意力权重的计算逻辑)。

    A t t ( A ∗ , V ) = s o f t m a x ( A ∗ ) V Att(A^*,V) = softmax(A^*) V Att(A,V)=softmax(A)V

在这里插入图片描述

  • 疑问部分

    • 文章并没有明确说明词组的处理方式,猜测应该和字符一样,需要拼接在句子末尾,然后进行词嵌入。

    • Padding部分如何处理,文章没有明确说明,尤其是Padding部分的位置信息如何处理,猜测应该和Transformer一样被mask掉了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值