如何有效提升中文NER性能?词汇增强方法总结

2020 年 6 月 15 日 AINLP


众所周知,与英文NER相比,中文NER通常采取基于字符的方式。究其缘由,由于中文分词存在误差,基于字符的NER系统通常好于基于词汇(经过分词)的方法。而引入词汇信息(词汇增强)的方法,通常能够有效提升中文NER性能。本文对「词汇增强」的系列方法进行介绍。

一、为什么要进行词汇增强?

虽然基于字符的NER系统通常好于基于词汇(经过分词)的方法,但基于字符的NER没有利用词汇信息,而词汇边界对于实体边界通常起着至关重要的作用。
如何在基于字符的NER系统中引入词汇信息,是近年来NER的一个研究重点。本文将这种引入词汇的方法称之为「词汇增强」,以表达引入词汇信息可以增强NER性能。

从另一个角度看,由于NER标注数据资源的稀缺,BERT等预训练语言模型在一些NER任务上表现不佳。特别是在一些中文NER任务上,词汇增强的方法会好于或逼近BERT的性能。因此,关注「词汇增强」方法在中文NER任务很有必要。

二、词汇增强方法有哪些?

近年来,基于词汇增强的中文NER主要分为2条主线[9]:

  • Dynamic Architecture:设计一个动态框架,能够兼容词汇输入;

  • Adaptive Embedding :基于词汇信息,构建自适应Embedding;

本文按照上述2条主线,将近年来各大顶会的相关论文归纳如下:



Dynamic Architecture范式

Dynamic Architecture范式通常需要设计相应结构以融入词汇信息。

[1]  Lattice LSTM:Chinese NER Using Lattice LSTM(ACL2018)

本文是基于词汇增强方法的中文NER的开篇之作,提出了一种Lattice LSTM以融合词汇信息。具体地,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。
Lattice是一个有向无环图,词汇的开始和结束字符决定了其位置。Lattice LSTM结构则融合了词汇信息到原生的LSTM中:
如上图所示,Lattice LSTM引入了一个word cell结构,对于当前的字符,融合以该字符结束的所有word信息,如对于「店」融合了「人和药店」和「药店」的信息。对于每一个字符,Lattice LSTM采取注意力机制去融合个数可变的word cell单元,其主要的数学形式化表达为:

本文不再堆砌繁杂的数学公式,具体看参考原论文。需要指出的是,当前字符有词汇融入时,则采取上述公式进行计算;如当前字符没有词汇时,则采取原生的LSTM进行计算。当有词汇信息时,Lattice LSTM并没有利用前一时刻的记忆向量 ,即不保留对词汇信息的持续记忆。


Lattice LSTM 的提出,将词汇信息引入,有效提升了NER性能;但其也存在一些缺点:


  • 计算性能低下,不能batch并行化。究其原因主要是每个字符之间的增加word cell(看作节点)数目不一致;

  • 信息损失:1)每个字符只能获取以它为结尾的词汇信息,对于其之前的词汇信息也没有持续记忆。如对于「药」,并无法获得‘inside’的「人和药店」信息。2)由于RNN特性,采取BiLSTM时其前向和后向的词汇信息不能共享。

  • 可迁移性差:只适配于LSTM,不具备向其他网络迁移的特性。


[2] LR-CNN:CNN-Based Chinese NER with Lexicon Rethinking(IJCAI2019)

Lattice LSTM采取RNN结构,导致其不能充分利用GPU进行并行化。此外,Lattice LSTM无法有效处理词汇信息冲突问题,如上图所示:字符 [长] 可以匹配到词汇 [市长] 和 [长隆],不同的匹配会导致[长] 得到不同的标签,而对于RNN结构:仅仅依靠前一步的信息输入、而不是利用全局信息,无法有效处理这一冲突问题。显而易见,对于中文NER,这种冲突问题很常见,在不参考整个句子上下文和高层信息的前提下很难有效解决。

本篇论文LR-CNN为解决这一问题,提出了Lexicon-Based CNNs和Refining Networks with Lexicon Rethinking:

  • Lexicon-Based CNNs:采取CNN对字符特征进行编码,感受野大小为2提取bi-gram特征,堆叠多层获得multi-gram信息;同时采取注意力机制融入词汇信息;

  • Refining Networks with Lexicon Rethinking:由于上述提到的词汇信息冲突问题,LR-CNN采取rethinking机制增加feedback layer来调整词汇信息的权值:具体地,将高层特征最为输入通过注意力模块调节每一层词汇特征分布。

如上图,高层特征得到的 [广州市] 和 [长隆]会降低 [市长] 在输出特征中的权重分布。最终对每一个字符位置提取调整词汇信息分布后的multi-gram特征,喂入CRF中解码。
LR-CNN最终相比于Lattice LSTM加速3.21倍,但LR-CNN仍然计算复杂,并且不具备可迁移性。


[3]  CGN: Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network( EMNLP2019)

CGN
由于Lattice LSTM存在信息损失,特别是无法获得‘inside’的词汇信息。 针对这一问题,本篇论文构建了基于协作的图网络,由编码层、图网络层、融合层、解码层组成。 在图网络层,构建了三种不同的建图方式:
  • Word-Character Containing graph (C-graph):字与字之间无连接,词与其inside的字之间有连接。

  • Word-Character Transition graph(T-graph):相邻字符相连接,词与其前后字符连接。

  • Word-Character Lattice graph(L-graph):相邻字符相连接,词与其开始结束字符相连。

图网络层通过Graph Attention Network(GAN)进行特征提取,提取3种图网络中的前n个字符节点的特征:

特征融合则将基于字符的上下文表征H与图网络表征加权融合:

涉及GAN的相关计算公式可参考原论文。


[4] LGN:A Lexicon-Based Graph Neural Network for Chinese NER(EMNLP2019)

本篇论文与LR-CNN出发点类似,Lattice LSTM这种RNN结构仅仅依靠前一步的信息输入,而不是利用全局信息,如上图所示:字符 [流]可以匹配到词汇 [河流] 和 [流经]两个词汇信息,但Lattice LSTM却只能利用 [河流] ;字符 [度]只能看到前序信息,不能充分利用 [印度河] 信息,从而造成标注冲突问题。

LGN
本篇论文通过采取 lexicon-based graph neural network (LGN)来解决上述问题。 如上图所示,将每一个字符作为节点,匹配到的词汇信息构成边。 通过图结构实现局部信息的聚合,并增加全局节点进行全局信息融入。 聚合方式采取Multi-Head Attention,具体计算公式可参考原论文。


[5] FLAT: Chinese NER Using Flat-Lattice Transformer(ACL2020) 

本篇论文来自 @邱锡鹏 老师团队。通过对上述4篇论文的介绍,我们可以发现:


  • Lattice-LSTM和LR-CNN采取的RNN和CNN结构无法捕捉长距离依赖,而动态的Lattice结构也不能充分进行GPU并行。

  • 而CGN和LGN采取的图网络虽然可以捕捉对于NER任务至关重要的顺序结构,但这两者之间的gap是不可忽略的。其次,这类图网络通常需要RNN作为底层编码器来捕捉顺序性,通常需要复杂的模型结构。

Flat-Lattice Transformer

众所周知,Transformer采取全连接的自注意力机制可以很好捕捉长距离依赖,由于自注意力机制对位置是无偏的,因此Transformer引入位置向量来保持位置信息。 受到位置向量表征的启发,这篇论文提出的FLAT设计了一种巧妙position encoding来融合Lattice 结构,具体地,如上图所示,对于每一个字符和词汇都构建两个head position encoding 和 tail position encoding,可以证明,这种方式可以重构原有的Lattice结构。 也正是由于此,FLAT可以直接建模字符与所有匹配的词汇信息间的交互,例如,字符[药]可以匹配词汇[人和药店]和[药店]。

因此,我们可以将Lattice结构展平,将其从一个有向无环图展平为一个平面的Flat-Lattice Transformer结构,由多个span构成:每个字符的head和tail是相同的,每个词汇的head和tail是skipped的。

 FLAT结构

在知乎专栏文章《 如何解决Transformer在NER任务中效果不佳的问题? 》,我们介绍了对于Tranformer结构,绝对位置编码并不适用于NER任务。因此,FLAT这篇论文采取XLNet论文中提出相对位置编码计算attention score:

论文提出四种相对距离表示token之间的关系,同时也考虑字符和词汇之间的关系:

综上,FLAT采取这种全连接自注意力结构,可以直接字符与其所匹配词汇间的交互,同时捕捉长距离依赖。 如果将字符与词汇间的attention进行masked,性能下降明显,可见引入词汇信息对于中文NER 的重要性。
此外,相关实验表明, FLAT有效的原因是 新的相对位置encoding有利于定位实体span,而引入词汇的word embedding有利于实体type的分类。

Adaptive Embedding范式

Adaptive Embedding范式仅在embedding层对于词汇信息进行自适应,后面通常接入LSTM+CRF和其他通用网络,这种范式与模型无关,具备可迁移性。

[6] WC-LSTM: An Encoding Strategy Based Word-Character LSTM for Chinese NER Lattice LSTM(NAACL2019)

WC-LSTM

Lattice LSTM中每个字符只能获取以它为结尾的词汇数量是动态的、不固定的,这也是导致Lattice LSTM不能batch并行化的原因。WC-LSTM为改进这一问题,采取Words Encoding Strategy,将每个字符为结尾的词汇信息进行固定编码表示,即每一个字符引入的词汇表征是静态的、固定的,如果没有对应的词汇则用<PAD>代替,从而可以进行batch并行化。
这四种encoding策略分别为:最短词汇信息、最长词汇信息、average、self-attenion。以「average」为例:即将当前字符引入所有相关的词汇信息对应的词向量进行平均。

WC-LSTM仍然存在信息损失问题,无法获得‘inside’的词汇信息,不能充分利用词汇信息。虽然是Adaptive Embedding范式,但WC-LSTM仍然采取LSTM进行编码,建模能力有限、存在效率问题。


[7] Multi-digraph: A Neural Multi-digraph Model for Chinese NER with Gazetteers(ACL2019)

不同于其他论文引入词汇信息的方式是基于一个词表(由论文Lattice LSTM 提供,没有实体标签,通常需要提取对应的word embedding),本篇论文引入词汇信息的方式是利用实体词典(Gazetteers,含实体类型标签)。

虽然引入实体词典等有关知识信息对NER性能可能会有所帮助,但实体词典可能会包含不相关甚至错误的信息,这会损害系统的性能。如上图所示,利用4个实体词典:「PER1」、「PER2」、「LOC1」、「LOC2」进行匹配,错误实体就有2个。

Multi-digraph
为了更好的利用词典信息,本文提出了一种多图结构更好地显示建模字符和词典的交互。如上图所示,结合自适应的Gated Graph Sequence Neural Networks (GGNN)和LSTM+CRF,基于上下文信息对来自不同词典的信息进行加权融合,解决词典匹配冲突的问题。

具体地,本文通过图结构建模Gazetteers信息,关键在于怎么融入不同词典的信息。上述图结构中「边」的label信息即包含字符间的连接信息,也包含来自不同m个Gazetteers的实体匹配信息,共有L个label:

而传统的GGNN不能处理带有不同label信息的「边」,为了能够处理上述的多图结构,本文将邻接矩阵A扩展为包括不同标签的边,对边的每一个label分配相应的可训练参数:

上述图结构的隐状态采用GRU更新,具体更新方式可参考原论文。最后,将基于GGNN提取字符所对应的特征表示喂入LSTM+CRF中。


[8] Simple-Lexicon:Simplify the Usage of Lexicon in Chinese NER(ACL2020)

由上述分析可以发现Lattice LSTM只适配于LSTM,不具备向其他网络迁移的特性,同样Lattice LSTM存在的信息损失也不容小觑。本篇论文为避免设计复杂的模型结构、同时为便于迁移到其他序列标注框架,提出了一种在embedding层简单利用词汇的方法。本文先后对比了三种不同的融合词汇的方式:
第一种:Softword

Softword,图片来自[9]

如上图所示,Softword通过中文分词模型后,对每一个字符进行BMESO的embedding嵌入。显而易见,这种Softword方式存在由分词造成的误差传播问题,同时也无法引入词汇对应word embedding。

第二种:ExtendSoftword

ExtendSoftword ,图片来自[9]
ExtendSoftword则将所有可能匹配到的词汇结果对字符进行编码表示。 如上图中,对于字符「山」来说,其可匹配到的词汇有中山、中山西、山西路,「山」隶属 {B,M,E}。 论文对于字符对应的词汇信息按照BMESO编码构建5维二元向量,如「山」表示为[1,1,1,0,0].

ExtendSoftword也会存在一些问题:

  1. 仍然无法引入词汇对应的word embedding;

  2. 也会造成信息损失,无法恢复词汇匹配结果,例如,假设有两个词汇列表[中山,山西,中山西路]和[中山,中山西,山西路],按照ExtendSoftword方式,两个词汇列表对应字符匹配结果是一致的;换句话说,当前ExtendSoftword匹配结果无法复原原始的词汇信息是怎样的,从而导致信息损失。

第三种:Soft-lexicon

Soft-lexicon,图片来自[9]

为了解决Softword和ExtendSoftword存在的问题,Soft-lexicon对当前字符,依次获取BMES对应所有词汇集合,然后再进行编码表示。

由上图可以看出,对于字符[语],其标签B对应的词汇集合涵盖[语言,语言学];标签M对应[中国语言];标签E对应[国语、中国语];标签S对应[语]。当前字符引入词汇信息后的特征表示为:

很容易理解,上述公式则将BMES对应的词汇编码与字符编码进行拼接,其计算方式为:

S为词汇集合, z(w )代表词频。考虑计算复杂度,本文没有采取动态加权方法,而采取如同上式的静态加权方法,即:对词汇集合中的词汇对应的word embedding通过其词频大小进行加权。词频根据训练集和测试集可离线统计。

综上可见,Soft-lexicon这种方法没有造成信息损失,同时又可以引入word embedding,此外,本方法的一个特点就是模型无关,可以适配于其他序列标注框架。

三、总结对比:结果分析

通过第二部分对于「词汇增强」方法主要论文的介绍,我们可以发现无论是Dynamic Architecture还是Adaptive Embedding,都是想如何更好的融入词汇信息。这些方法的出发点无外于两点:1)如何更充分的利用词汇信息、最大程度避免词汇信息损失;2)如何设计更为兼容词汇的Architecture,加快推断速度。

下面对于上述「词汇增强」方法进行汇总:

ACL2020中的两篇论文FLAT和Simple-Lexicon分别对应于Dynamic Architecture和Adaptive Embedding,这两种方法相比于其他方法:1)能够充分利用词汇信息,避免信息损失;2)FLAT不去设计或改变原生编码结构,设计巧妙的位置向量就融合了词汇信息;Simple-Lexicon对于词汇信息的引入更加简单有效,采取静态加权的方法可以提前离线计算。

最后,我们来看一下,上述各种「词汇增强」方法在中文NER任务上的性能:

数据摘抄自各相关论文

上图可以发现:总的来看,ACL2020中的FLAT和Simple-Lexicon效果最佳。具体地说:

  • 引入词汇信息的方法,都相较于baseline模型biLSTM+CRF有较大提升,可见引入词汇信息可以有效提升中文NER性能。

  • 采用相同词表对比时,FLAT和Simple-Lexicon好于其他方法。

  • 结合BERT效果会更佳。

除了上述中文NER任务,笔者还在医疗NER任务(CCKS2019)上进行了简单实验:

数据来自DeepIE:具体参见https://github.com/loujie0822/DeepIE
同样也可以发现,词汇增强可有效提升中文NER性能。 而在推断速度方面,FLAT论文也与其他方法进行了对比,在指标领先的同时推断速度明显优于其他方法。

获取更多「信息抽取」相关的信息,可关注DeepIE

DeepIE介绍:https://github.com/loujie0822/DeepIE,基于深度学习的信息抽取技术集散地,欢迎大家关注,包含实体、关系、属性、事件、链接&标准化等。


Reference

  • [1]  Lattice LSTM:Chinese NER Using Lattice LSTM

  • [2] LR-CNN:CNN-Based Chinese NER with Lexicon Rethinking

  • [3] CGN:Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network

  • [4] LGN: A Lexicon-Based Graph Neural Network for Chinese NER

  • [5] FLAT: Chinese NER Using Flat-Lattice Transformer

  • [6] WC-LSTM: An Encoding Strategy Based Word-Character LSTM for Chinese NER Lattice LSTM

  • [7] Multi-digraph: A Neural Multi-digraph Model for Chinese NER with Gazetteers

  • [8] Simple-Lexicon:Simplify the Usage of Lexicon in Chinese NER

  • [9] 结合词典的中文命名实体识别 (复旦大学自然语言处理组)

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

这门斯坦福大学自然语言处理经典入门课,我放到B站了

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,点个在看吧👇


登录查看更多
25

相关内容

命名实体识别(NER)(也称为实体标识,实体组块和实体提取)是信息抽取的子任务,旨在将非结构化文本中提到的命名实体定位和分类为预定义类别,例如人员姓名、地名、机构名、专有名词等。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
最新《动态网络嵌入》综述论文,25页pdf
专知会员服务
136+阅读 · 2020年6月17日
专知会员服务
155+阅读 · 2020年4月21日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
面向新闻媒体的命名实体识别技术
PaperWeekly
18+阅读 · 2019年4月17日
命名实体识别(NER)综述
AI研习社
66+阅读 · 2019年1月30日
基于Lattice LSTM的命名实体识别
微信AI
47+阅读 · 2018年10月19日
神经网络结构在命名实体识别(NER)中的应用
全球人工智能
11+阅读 · 2018年4月5日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
Arxiv
4+阅读 · 2019年9月26日
Neural Response Generation with Meta-Words
Arxiv
6+阅读 · 2019年6月14日
Arxiv
5+阅读 · 2018年5月5日
VIP会员
相关VIP内容
最新《动态网络嵌入》综述论文,25页pdf
专知会员服务
136+阅读 · 2020年6月17日
专知会员服务
155+阅读 · 2020年4月21日
相关资讯
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
面向新闻媒体的命名实体识别技术
PaperWeekly
18+阅读 · 2019年4月17日
命名实体识别(NER)综述
AI研习社
66+阅读 · 2019年1月30日
基于Lattice LSTM的命名实体识别
微信AI
47+阅读 · 2018年10月19日
神经网络结构在命名实体识别(NER)中的应用
全球人工智能
11+阅读 · 2018年4月5日
干货|从LSTM到Seq2Seq
全球人工智能
15+阅读 · 2018年1月9日
Top
微信扫码咨询专知VIP会员