论文笔记 | 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可以充分利用格子信息,并具有出色的并行化能力

背景介绍

Figure 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结构设计了一个位置编码方案。

模型设计

在这里插入图片描述

将格子转换为平坦结构

在根据词典从文本中得到格子之后,将其展平。如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
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值