每天给你送来NLP技术干货!

作者:杨坚新

来自:YeungNLP
01
任务概述
命名实体识别(简称NER)是NLP中的经典任务,即给定一个输入文本,让模型识别出文本中的实体信息。
在中文NER任务中,可以分为
 Character-based (字符粒度) 和 Word-based (词语粒度) 两种方法。
  1. Word-based (词语粒度) :基于词语粒度的中文NER任务,首先会对输入文本进行分词,将每个词语视为一个token,模型对每个词语进行打标签,从而识别出实体。该方法存在一个天然的缺陷,分词的效果严重影响模型的效果,如果分词的边界出现了问题,则模型无论如何也无法识别出正确的实体。
  2. Character-based (字符粒度) :基于字符的中文NER模型不需要对输入进行分词,输入中的每个汉字表示一个token,不存在分词边界的问题。然而该类方法无法充分利用词汇信息,但词汇信息对于实体识别却又至关重要,它能够引入汉字之间的关联性,辅助我们进行实体边界判断。
从下图的例子【南京市长江大桥】中,我们可以看到,若只以汉字为粒度进行NER任务,必然会缺失大量的先验的词汇知识。如果我们能够将这些词汇信息融入到模型中,想必能够提升模型的性能。
基于上述原因,目前在中文NER任务中,Character-based (字符粒度) 的NER做法更为普遍。但由于该类方法缺少重要的词汇信息,所以目前很多方法都致力于将词汇信息引入模型中。
在本文中,我们将介绍ACL2021的一个中文NER模型:LEBERT,并且对该模型在Resume、Ontonote、Msra、Weibo等四个中文数据集上进行实验复现。
论文链接:
https://arxiv.org/abs/2105.07148
实验复现代码:

https://github.com/yangjianxin1/LEBERT-NER-Chinese
02
论文解读
模型概述
目前为止,有许多工作尝试将BERT与词汇特征进行结合,来进行中文的NER任务。当前较为普遍做法如下图(a)所示,首先使用BERT
对字符序列进行建模
,捕获字符之间的依赖关系,然后将BERT输出的字符特征与词汇特征进行融合,最后输入到神经网络标注模型中。

该方法在一定程度上能够将词汇特征引入序列标注模型中,但由于仅在BERT末端的浅层神经网络中引入词汇特征,没有充分地利用上BERT模型的序列建模能力。因此,作者提出了在BERT的底层注入词汇特征的方法,模型整体示意图如下图(b)所示。

就整体结构而言,模型的主要创新点如下:
  1. 引入了字符-词语对(Char-Words Pair)作为模型的输入特征。
  2. 基于模型适配器的思想,设计了一种Lexicon Adapter的结构,将词语特征与字符特征进行融合。
Char-Words Pair Sequence
为了在模型中引入词语特征,作者设计了一种字符-词语对(Char-Words Pair)的结构,对于输入文本中的每个字符,找出它在输入文本中匹配到的所有词语。

对于下图中的输入文本【美国人民】,字符【美】匹配到的词语为【美国、美国人】,字符【国】
匹配到的
词语为【美国、美国人、国人】,以此类推。其中,作者会提前构建一棵字典树(Trie树),用来匹配输入序列中的词语,然后得到每个字符对应的词语序列。

给定长度为n的输入序列  ,其中  表示输入序列中的第i个字符。使用字典树进行词语匹配,得到每个字符对应的词语列表  ,其中  表示第i个字符匹配到的词语列表。最终得到字符-词语对  作为模型的输入。
Lexicon Adapter
对于每个位置,都包含了两种特征:字符特征与词语特征。为了将这两种特征进行融合,作者设计了一种Lexicon Adapter的结构,在第i个位置,Lexicon Adapter的输入表示为  ,这是个字符特征-词语特征对。
  1. 字符特征:其中  可以视为第i个字符的特征,表示由BERT的某一个transformer layer所输出的第i个字符的向量表征。具体由哪一个transformer layer输出可以自行设定,该问题会在论文的实验部分进行讨论。 
  2. 词语特征:  是一个词向量列表,  表示第i个位置的字符匹配到的第j个词语的词向量。
Lexicon Adapter
的大致可以分为以下几个步骤:

  1. 维度对齐:将词向量与字符向量进行维度对齐。
  2. 权重计算:对于每个字符,计算它所匹配到的每个词向量的权重。
  3. 加权求和:对于每个字符,将词向量进行加权求和,得到该字符的加权词语向量。
  4. 特征融合:字符向量与加权词语向量相加,得到Lexicon Adapter的输出。
维度对齐:
由于字符向量 
 与词向量 
 的维度不一致,所以首先将词向量进行非线性映射,将其与字符向量进行维度对齐。

权重计算:
对于每个字符,其词语列表中的每个词语的重要程度是不一样的,所以需要对每个词向量计算权重。令  ,则每个词语的权重计算方式如下:
其中  ,  表示第i个字符的第j个词向量的权重,  表示双线性注意力权重矩阵。
加权求和:
对于每个字符,根据其匹配到的每个词语的权重,对词向量进行加权求和,得到该字符的加权词语向量  。
特征融合:
将字符向量与加权词语向量相加,得到特征融合向量  ,最后将  进行dropout、layer norm和残差连接等操作,得到Lexicon Adapter的最终输出。
Lexicon Enhanced BERT
如下图所示,将Lexicon Adapter与BERT相结合,得到最终的模型结构。其中Lexicon Adapter可以插到任意一个Tranformer Layer的后面进行词语特征融合。经过作者的消融实验,发现Lexicon Adapter插到第一个Tranformer Layer后面的效果最好。具体的实验结果可以参考下一小节。
在解码阶段,作者采用CRF对LEBERT的输出进行解码,从而得到每个字符的label。

实验结果
作者在四个中文NER数据集上进行了实验,实验结果如下图。可以看到,LEBERT在所有数据集上的表现均为最佳,甚至超过了FLAT模型。证明了LEBERT的词汇信息引入的方式的有效性。
除此之外,作者还对Lexicon Adapter的插入位置进行了消融实验。作者尝试了在不同的layer后面单独插入Lexicon Adapter,也尝试了在多个layer后面同时插入Lexicon Adapter,消融实验如下表所示。
可以看到,当Lexicon Adapter插到BERT的第一层后面时,模型效果最好,这大概率是由于字符信息与词语信息能够在BERT中进行更加充分的信息交互。然而将Lexicon Adapter同时插入到多个layer后面时,模型效果不升反降,这是由于多层融合导致的模型过拟合。
03
实验复现
本文在Resume、Ontonote、Msra、Weibo等四
个中文数据集
上,对LEBERT进行了实验复现。主要复现了
BERT-Softmax、LEBERT-Softmax、BERT-Crf、LEBERT-Crf等四个模型。
实验细节
本项目的实验设置如下:
  1. 所有模型均使用bert-base-chinese的预训练权重。
  2. 本项目将词向量信息在BERT的第一层之后进行融合,并且每个汉字,最多融合3个词向量。
  3. 在训练的时候,batch size均为32,BERT的原始参数的学习率设置为1e-5,LEBERT和CRF所引入的参数的学习率设置为1e-4。
  4. 对于Ontonote、Msra数据集训练10个epoch, 对于Resume和Weibo数据集训练30个epoch。
  5. 原论文的词向量使用的是包含两千万词语的tencent-ailab-embedding-zh-d200-v0.2.0。本项目使用的词向量为tencent-ailab-embedding-zh-d200-v0.2.0-s,其中包含两百万预训练的词向量,维度为200。
词向量下载地址:

https://ai.tencent.com/ailab/nlp/en/download.html
实验结果
各模型在
测试集
上的表现如下表所示:

各模型在验证集上的表现如下表所示:
从复现结果来看,我们可以得出以下结论:
  1. 在四个数据集上,LEBERT的表现均优于BERT,这说明基于Lexicon Adapter的词汇信息引入方式是有效的。
  2. 在四个数据集上,LEBERT-Softmax的指标只比BERT-Softmax提升0.5-1.0个点,没有带来特别大的收益(也可能是训练策略、实现细节、词向量质量的原因)。
  3. 本项目复现的LEBERT-Softmax模型基本都达到了原论文的水平,并且BERT-Softmax模型在各个测试集上的表现均优于原论文的结果。这也就导致了,相较于原论文的实验,复现实验中的LEBERT-Softmax没有在LEBERT-Softmax的基础上提升很多。
  4. 相比于Softmax解码方式,CRF解码方式有时候会带来更差的效果(可能是因为训练策略的原因,如CRF学习率的设置不够合理,有待进一步验证)。
训练过程分析
在这一小节中,我们将展示在训练过程中,BERT-Softmax与LEBERT-Softmax在各个测试集上的F1得分的变化曲线。
如果仅从F1的变化曲线来比较,两者之间并没有拉开特别大的差距,这也从侧面印证了上一节中我们提到的,LEBERT-Softmax的指标只比BERT-Softmax提升了0.5-1.0个点,没有带来特别大的收益。
所有测试集上的F1变化曲线:
Weibo测试集上的F1变化曲线:
Resume测试集上的F1变化曲线:
Ontonote测试集上的F1变化曲线:
Msra测试集上的F1变化曲线:
04
结语
本文介绍了中文NER模型LEBERT的主要思想,在Resume、Ontonote、Msra、Weibo等四个中文数据集上进行了实验复现,并且介绍了复现实验的实现细节、实验结果与分析等。
总体来说,LEBERT模型的效果要优于BERT的效果,并且复现实验也基本达到了论文的实验效果,验证了基于Lexicon Adapter的词汇信息引入的有效性。不过笔者认为,这种词表增强的方法,非常依赖词表的质量,若使用的词向量质量不佳,会带来负面效果。如果在垂直领域内,构建该领域内的词表,并且对词向量进行预训练,应该能够得到较好的效果。
本项目的实验复现代码与使用到的中文NER数据集地址:
https://github.com/yangjianxin1/LEBERT-NER-Chinese

最近文章

下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!后台回复【五件套
下载二:南大模式识别PPT后台回复南大模式识别
整理不易,还望给个在看!
继续阅读
阅读原文