Paper Name: FLAT: Chinese NER Using Flat-Lattice Transformer
论文链接
https://arxiv.org/pdf/2004.11795.pdf
开源代码:
https://github.com/LeeSureman/Flat-Lattice-Transformer
文章来源ACL2020 复旦大学邱锡鹏团队。引入词汇信息用来提升中NER指标。
如上图在MSRA-NER任务中,FLAT+BERT登顶榜首,即使是单层FLAT(1层Transformer),也超越了预训练模型ERNIE.
本文创新点:
- 基于Transfomer设计了一种巧妙Position encoding(位置编码)来融合Lattice结构,无损的引入词汇信息。(因为一般中文都是字符输入)
- 基于Transformer融合了词汇信息的动态结构,支持并行化计算,提升推断速度。
背景:
中文NER通常是以字符为单位进行序列标注建模,主要原因中文分词误差,导致基于字符的要好于基于词汇(分词结果)的序列标注建模方法。
但是引入词汇也有好处:
①词汇信息可以强化实体便捷,尤其是span较长的实体边界更有效
②词汇信息对NLP分类任务也是一个明显的数据增强方法,往往不能直接用于NER,指标增益有限。相反引入词汇信息增强对小样本下的中文NER提升明显。
下文将引入词汇信息增强中文NER性能的方法称为词汇增强
词汇增强的方式有哪些?
- 词向量和词汇列表:利用良好分词结果的词向量,或者不利用词向量,只是用词汇或者实体边界信息,通常通过图网络提取相关信息。该种增强方式,主要有2大范式:
a).Dynamic Architecture: 设计动态抽取框架,能够兼容词汇输入,本文所介绍FLAT就属于这种范式。
b).Adaptive Embedding:基于词汇信息,构建自适应Embedding;与模型框架入关。仅仅在embedding层融合词汇信息,对于词汇信息的引入更简单有效,采取静态加权的方法可以提前离线计算。
c).分词器:单一分词会造成边界错误,引入多源分词器并pooling不同分词结果。ACL2020中将多种分词结果中词汇信息pooling对齐到字符编码中( Enhancing Pre-trained Chinese Character Representation with Word-aligned Attention:)。
Lattice LSTM
在系统理解FLAT之前,必须掌握Lattice LSTM文章(Chinese NER Using Lattice LSTM,
https://arxiv.org/pdf/1805.02023.pdf)。如下图所示,当我们通过词汇信息(词典)匹配一个句子时,可以获得类似Lattice的结构。
Lattice为有向无环图,词汇的开始和结束字符决定了格子位置。Lattice Lstm结构融合了词汇信息到原生LSTM中。
如上图,Lattice LSTM引入word cell结构,对于当前字符,融合以该字符结束的所有word信息,如“店”融合了“人和药店”和"药店"信息。对于每个字符,Lattice LSTM采取attention机制去融合个数可变的word cell单元,主要表达信息如下:
具体参考论文。当前字符有词汇融入时,则采取上述公式进行计算;如当前字符没有词汇时,则采取原生的LSTM进行计算。虽然Lattice LSTM有效提升了NER性能,但也存在一些缺点:
信息损失:
- 每个字符只能获取以该字符结尾的词汇信息。如对于”药“,无法获得”人和药店“的信息。
RNN特性导致前后向词汇信息不能共享。Lasstic LSTM并没有利用前一时刻记忆向量 ,即不保留对词汇信息的持续记忆。- 计算性能低下,不能batch并行化:究其原因是每个字符之间增加word cell(看做节点)数目不一致,不过后续有将Lattice LSTM进行batch化。
- 可迁移性差:只适配LSTM,不具备向其他网络迁移的特性。