12

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

 3 years ago
source link: http://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650414246&%3Bidx=2&%3Bsn=416b838c9de7e9deb54c5daa0febcf81
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

7z2URfZ.jpg!web

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

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

虽然基于字符的NER系统通常好于基于词汇(经过分词)的方法,但基于字符的NER没有利用词汇信息,而词汇边界对于实体边界通常起着至关重要的作用。

如何在基于字符的NER系统中引入词汇信息,是近年来NER的一个研究重点。本文将这种引入词汇的方法称之为「词汇增强」,以表达引入词汇信息可以增强NER性能。

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

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

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

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

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

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

7JBZZfv.jpg!web

Dynamic Architecture范式

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

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

本文是基于词汇增强方法的中文NER的开篇之作,提出了一种Lattice LSTM以融合词汇信息。 具体地,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。

f6bqii7.png!web

Lattice是一个有向无环图,词汇的开始和结束字符决定了其位置。Lattice LSTM结构则融合了词汇信息到原生的LSTM中:

7Z7fQjF.png!web

如上图所示,Lattice LSTM引入了一个word cell结构,对于当前的字符,融合以该字符结束的所有word信息,如对于「店」融合了「人和药店」和「药店」的信息。对于每一个字符,Lattice LSTM采取注意力机制去融合个数可变的word cell单元,其主要的数学形式化表达为:

IjYJ3iq.png!web

本文不再堆砌繁杂的数学公式,具体看参考原论文。需要指出的是,当前字符有词汇融入时,则采取上述公式进行计算;如当前字符没有词汇时,则采取原生的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)

JrMFFny.png!web

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

iM7R7n7.png!web

本篇论文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)

R3aAZ37.png!web

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个字符节点的特征:

a6fEzun.png!web

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

ARfqaeU.png!web

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

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

EbE3quQ.png!web

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

QV7Zn2j.png!web

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作为底层编码器来捕捉顺序性,通常需要复杂的模型结构。

uaE7J37.png!webFlat-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的。

aaUv6b6.png!web FLAT结构

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

bIbmimN.png!web

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

amimuan.png!web

综上,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)

2QZV3ma.png!webWC-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,含实体类型标签)。

7vYrQz7.png!web

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

aUj2qeq.png!web

Multi-digraph

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

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

3iUf6zY.png!web

而传统的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

jQb2aiJ.png!web

Softword,图片来自[9]

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

第二种:ExtendSoftword

6Nbiaaj.png!web

ExtendSoftword ,图片来自[9]

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

ExtendSoftword也会存在一些问题:

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

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

第三种:Soft-lexicon

JJZJbiN.png!web

Soft-lexicon,图片来自[9]

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

eIVzMvv.png!web

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

eyuquq7.png!web

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

UfmuUj.png!web

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

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

三、总结对比:结果分析

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

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

nUbyaa2.png!web

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

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

6B3Mjui.png!web

数据摘抄自各相关论文

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

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

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

  • 结合BERT效果会更佳。

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

ZJriYjv.png!web

数据来自DeepIE:具体参见https://github.com/loujie0822/DeepIE

同样也可以发现,词汇增强可有效提升中文NER性能。 而在推断速度方面,FLAT论文也与其他方法进行了对比,在指标领先的同时推断速度明显优于其他方法。

Jf67vyV.png!web

获取更多「信息抽取」相关的信息,可关注 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] 结合词典的中文命名实体识别 (复旦大学自然语言处理组)

推荐阅读

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

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

Node2Vec 论文+代码笔记

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

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

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

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

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

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

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

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

关于AINLP

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

qIR3Abr.jpg!web

阅读至此了,点个在看吧 :point_down:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK