FLAT
最后更新于
最后更新于
paper : FLAT: Chinese NER Using Flat-Lattice Transformer
source: ACL 2020
code: FLAT
模型当时刷新了中文 NER任务的SOTA,模型还是很值得去学习的。。
模型主要有 2方面的贡献:
无损引入词汇信息:(与SoftLexicon的垂直展开不同,FLAT是将词展平的方式放在query句尾,用attention与原query的字进行交互)
改进Transformer的原有相对位置编码,使得展平的词与字能够进行计算位置信息,更适用于NER任务
受到位置向量表征的启发,FLAT设计了一种position encoding来融合Lattice 结构,对于每一个字符和词汇都构建两个head position encoding 和tail position encoding,这种方式可以重构原有的Lattice结构,如下图。
这样铺平之后,直接做self-attention,建模字符与所有词汇信息间的交互。将Lattice结构展平,将其从一个有向无环图展平为一个平面的Flat-Lattice Transformer结构,由多个span构成:每个字符的head和tail是相同的,每个词汇的head和tail是skipped的。
原生Transformer的绝对位置编码本身缺乏方向性,虽然具备距离感知,但还是被self-attention机制打破了。
仔细分析,BiLSTM在NER任务上的成功,一个关键就是BiLSTM能够区分其上下文信息的方向性,来自左边还是右边。而对于Transformer,其区分上下文信息的方向性是困难的。
因此,作者决定提升Transformer的位置感知和方向感知
每个token都有head和tail这样2个位置信息,所以,作者设计:每2个token间,由4种相对距离表示和之间的关系:head-head,head-tail,tail-head,head-tail这样的相对位置信息,如下图:
那么相对位置emb可以表示为:
的计算方式与Transformer是相同的,三角函数: