LEBERT:基于词汇增强的中文NER模型

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


作者:杨坚新

来自:YeungNLP

01

任务概述

命名实体识别(简称NER)是NLP中的经典任务,即给定一个输入文本,让模型识别出文本中的实体信息。

12206e9bf0d444b1345036ae74cf6598.png

在中文NER任务中,可以分为 Character-based (字符粒度) 和 Word-based (词语粒度) 两种方法。

  1. Word-based (词语粒度) :基于词语粒度的中文NER任务,首先会对输入文本进行分词,将每个词语视为一个token,模型对每个词语进行打标签,从而识别出实体。该方法存在一个天然的缺陷,分词的效果严重影响模型的效果,如果分词的边界出现了问题,则模型无论如何也无法识别出正确的实体。

  2. Character-based (字符粒度) :基于字符的中文NER模型不需要对输入进行分词,输入中的每个汉字表示一个token,不存在分词边界的问题。然而该类方法无法充分利用词汇信息,但词汇信息对于实体识别却又至关重要,它能够引入汉字之间的关联性,辅助我们进行实体边界判断。

从下图的例子【南京市长江大桥】中,我们可以看到,若只以汉字为粒度进行NER任务,必然会缺失大量的先验的词汇知识。如果我们能够将这些词汇信息融入到模型中,想必能够提升模型的性能。

708ea758e7616ac4ae2b2767959f6116.png

基于上述原因,目前在中文NER任务中,Character-based (字符粒度) 的NER做法更为普遍。但由于该类方法缺少重要的词汇信息,所以目前很多方法都致力于将词汇信息引入模型中。

在本文中,我们将介绍ACL2021的一个中文NER模型:LEBERT,并且对该模型在Resume、Ontonote、Msra、Weibo等四个中文数据集上进行实验复现。

1fba60389988b80227320493133f699c.png

论文链接:

https://arxiv.org/abs/2105.07148

实验复现代码:

https://github.com/yangjianxin1/LEBERT-NER-Chinese

02

论文解读

模型概述

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

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

72308f6eb73e060b34e05dd55f16daa8.png

就整体结构而言,模型的主要创新点如下:

  1. 引入了字符-词语对(Char-Words Pair)作为模型的输入特征。

  2. 基于模型适配器的思想,设计了一种Lexicon Adapter的结构,将词语特征与字符特征进行融合。

Char-Words Pair Sequence

为了在模型中引入词语特征,作者设计了一种字符-词语对(Char-Words Pair)的结构,对于输入文本中的每个字符,找出它在输入文本中匹配到的所有词语。


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

1d3d9e943ae63ea29a1ce6f84948e9a1.png

给定长度为n的输入序列  ,其中  表示输入序列中的第i个字符。使用字典树进行词语匹配,得到每个字符对应的词语列表  ,其中  表示第i个字符匹配到的词语列表。最终得到字符-词语对  作为模型的输入。‍

Lexicon Adapter

对于每个位置,都包含了两种特征:字符特征与词语特征。为了将这两种特征进行融合,作者设计了一种Lexicon Adapter的结构,在第i个位置,Lexicon Adapter的输入表示为  ,这是个字符特征-词语特征对。

  1. 字符特征:其中  可以视为第i个字符的特征,表示由BERT的某一个transformer layer所输出的第i个字符的向量表征。具体由哪一个transformer layer输出可以自行设定,该问题会在论文的实验部分进行讨论。 

  2. 词语特征: 

    402 Payment Required

     是一个词向量列表,  表示第i个位置的字符匹配到的第j个词语的词向量。

Lexicon Adapter的大致可以分为以下几个步骤:

  1. 维度对齐:将词向量与字符向量进行维度对齐。

  2. 权重计算:对于每个字符,计算它所匹配到的每个词向量的权重。

  3. 加权求和:对于每个字符,将词向量进行加权求和,得到该字符的加权词语向量。

  4. 特征融合:字符向量与加权词语向量相加,得到Lexicon Adapter的输出。

575b4143199af7543e4e73660eb22169.png

维度对齐:

由于字符向量  与词向量  的维度不一致,所以首先将词向量进行非线性映射,将其与字符向量进行维度对齐。

权重计算:

对于每个字符,其词语列表中的每个词语的重要程度是不一样的,所以需要对每个词向量计算权重。令 

402 Payment Required

 ,则每个词语的权重计算方式如下:

其中  ,  表示第i个字符的第j个词向量的权重,  表示双线性注意力权重矩阵。

加权求和:

对于每个字符,根据其匹配到的每个词语的权重,对词向量进行加权求和,得到该字符的加权词语向量  。

特征融合:

将字符向量与加权词语向量相加,得到特征融合向量  ,最后将  进行dropout、layer norm和残差连接等操作,得到Lexicon Adapter的最终输出。

Lexicon Enhanced BERT

如下图所示,将Lexicon Adapter与BERT相结合,得到最终的模型结构。其中Lexicon Adapter可以插到任意一个Tranformer Layer的后面进行词语特征融合。经过作者的消融实验,发现Lexicon Adapter插到第一个Tranformer Layer后面的效果最好。具体的实验结果可以参考下一小节。

在解码阶段,作者采用CRF对LEBERT的输出进行解码,从而得到每个字符的label。

ecf279b3e8540c37dabd64b63836be42.png

实验结果

作者在四个中文NER数据集上进行了实验,实验结果如下图。可以看到,LEBERT在所有数据集上的表现均为最佳,甚至超过了FLAT模型。证明了LEBERT的词汇信息引入的方式的有效性。

b9f869213b3b353e55c241b472d7a8b1.png

除此之外,作者还对Lexicon Adapter的插入位置进行了消融实验。作者尝试了在不同的layer后面单独插入Lexicon Adapter,也尝试了在多个layer后面同时插入Lexicon Adapter,消融实验如下表所示。

ce8527e670bcc19e2d817a6d207ecaf3.png

可以看到,当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

实验结果

各模型在测试集上的表现如下表所示:

8a8f977828178415e730533dfeb97c1b.png

各模型在验证集上的表现如下表所示:

15c86baf2dae153758176dc0f9a6cae8.png

从复现结果来看,我们可以得出以下结论:

  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变化曲线:

3075a7f04401fabec23a2837eb69a419.png

Weibo测试集上的F1变化曲线:

ae7bc4c2b1d6778ce6de0a931cea88ed.png

Resume测试集上的F1变化曲线:

472b47f13130fd08e0d1f1a2c495eb73.png

Ontonote测试集上的F1变化曲线:

f2d6f324bd92503e02b0155d938d3b2d.png

Msra测试集上的F1变化曲线:

1347cbc5db03dffd21b904d5704c1077.png

04

结语

本文介绍了中文NER模型LEBERT的主要思想,在Resume、Ontonote、Msra、Weibo等四个中文数据集上进行了实验复现,并且介绍了复现实验的实现细节、实验结果与分析等。

总体来说,LEBERT模型的效果要优于BERT的效果,并且复现实验也基本达到了论文的实验效果,验证了基于Lexicon Adapter的词汇信息引入的有效性。不过笔者认为,这种词表增强的方法,非常依赖词表的质量,若使用的词向量质量不佳,会带来负面效果。如果在垂直领域内,构建该领域内的词表,并且对词向量进行预训练,应该能够得到较好的效果。

本项目的实验复现代码与使用到的中文NER数据集地址:

https://github.com/yangjianxin1/LEBERT-NER-Chinese


最近文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型,刷新了14种数据集并达到新SoTA

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值