一种基于改进ELMO模型的组织机构名识别方法
2020-12-04胡万亭郭建英张继永
胡万亭,郭建英,张继永
(1.河南大学 濮阳工学院,河南 濮阳 457000; 2.西南交通大学 信息科学与技术学院,四川 成都 610000)
0 引 言
实体指文本中的专有名词、时间、日期等。命名实体是以名称标识的实体,主要是人名、地名和组织机构名。命名实体识别是自然语言处理的重要环节,但是不能通过简单的词典匹配来识别,所以具有一定难度。组织机构名主要包括四大类:民间组织团体、体育艺术专业团队、行政事业单位和企业公司。一般通用的命名实体识别算法中,组织机构名相较于其他实体名的识别准确率最低,研究专门的组织机构名识别方法非常有必要。
早期命名实体识别主要是基于规则方法,从分析机构名的构词规则和语义上下文规则入手,通过规则匹配确定组织机构名[1],这类方法的弊端就是花费人力制定规则和词典,规则不具有可移植性,识别效果不理想。随着技术的发展,统计学习的方法逐渐占据主流,主要有最大熵模型[2]、支持向量机[3]、隐马尔可夫模型[4]、条件随机场模型等[5]。文献[6]从分析组织机构名构成为出发点,利用大规模机构名语料计算机构词概率,可以快速识别组织机构名。
近年来,基于神经网络的深度学习发展迅速,也被应用到了命名实体识别领域,取得非常好的效果。神经网络模型(long short term memory,LSTM)可以将token映射到label,但是没有考虑输出label之间的关系,条件随机场考虑标签的转移概率,可以有更好的标记结果,所以目前主要的识别方法是神经网络和条件随机场结合的模型。Huang等人[7]提出双向LSTM-CRF模型,在CoNLL2003数据集上进行命名实体识别时,F1值达到了90.10%。Ma等人[8]提出BiLSTM-CNNs-CRF模型,在CoNLL2003的数据集上,F1值达到了91.21%。
张晗等人[9]将生成式对抗网络与BiLSTM-Attention-CRF模型相结合,对领域命名实体进行识别。石春丹等人[10]结合潜在词信息和基于字符的BGRU-CRF模型进行中文命名实体识别,有效避免实体歧义。武惠等人[11]提出一种基于迁移学习和深度学习的TrBiLSTM-CRF模型,利用迁移学习算法有效解决少量数据学习能力不足的问题。
神经网络模型的输入需要将词表达为向量,最简单的one-hot向量维度太高,容易造成维度灾难,而且不能有效表达单词之间的关系。2013年,谷歌提出词嵌入模型Word2Vec,降低了数据维度,而且取得了很好的效果。不过Word2vec词向量对每个词只能表示成一个向量,对于一词多义的情况无法表达。2018年以来,词嵌入模型迅速发展,ELMO、BERT、ERNIE等模型快速更迭,特别是基于BERT的各种改进模型在自然语言处理各个领域不断取得更好的成绩,百度也宣称ERNIE模型能更好地适用于中文处理领域。中文的ELMO模型生成的是词向量,中文的BERT、ERNIE模型生成的是字向量,在自然语言处理的各个领域里字符向量和词向量没有明显区别,甚至字符向量效果更好。文献[12]提出了预训练模型BERT。文献[13-14]将BERT预训练模型用于中文命名实体识别,取得较高的F1值。
组织机构名和其他实体对比,文本较长,识别准确率相对较低,所以为了进一步提高组织机构名识别的准确率,该文提出一种基于改进ELMO中文组织机构名识别方法。主要工作是对ELMO词向量的预训练过程进行改进,在哈工大ELMO工具的基础上,重新整理训练字典,融入高频机构构成词。生成的字词向量嵌入BiLSTM-CRF进行词性标注,提升了组织机构名的标注效果。
1 相关技术
1.1 条件随机场
概率图模型被广泛用于自然语言处理的序列标注问题,包括节点集合和边的集合,节点表示随机变量,边表示变量之间的概率依赖关系。概率图模型主要包括隐马尔可夫模型(hidden Markov model,HMM)和条件随机场模型(conditional random field,CRF)。
条件随机场属于判别式概率模型,是依据随机变量X生成随机变量Y的马尔可夫随机场。基于条件概率分布模型P(Y|X),X是输入变量,表示观测序列,Y是输出变量,表示状态序列,在实体识别中代表标记序列。
图1 线性链条件随机场
常用的线性链条件随机场如图1所示,X=(X1,X2,…,Xn)为输入随机变量序列,Y=(Y1,Y2,…,Yn)为输出随机变量序列,如果模型满足马尔可夫性,即P(Yi|X,Y1,…,Yi-1,Yi+1,…,Yn),则该概率分布模型就构成了条件随机场。在命名实体识别中,X是可观测的字符序列,Y是对应的词性标注序列,由X产生Y的概率如式1:
(1)
其中,tk是观测序列和位置i、i-1标记的转移特征函数,λk是tk的权值。sl是观测值和当前位置标记的状态特征函数,ul是sl的权值,有效特征权值变大,无效特征权值变小。Z(X)是归一化因子,将全部标记序列概率和归为一。
模型实际上相当于一个分类模型,最大概率值对应的标记序列就是分类结果,如式(2)所示。
(2)
1.2 ELMO
ELMO是一种具有上下文语义的词表达方法,由Matthew E.等人[15]在NAACL2018会议上发表的论文中提出。该方法利用双向LSTM模型进行词向量的预训练,可以灵活运用到下游任务,比如文本分类、问答系统、情感分析等领域,效果显著。
ELMO模型需要输入字符文本序列,将每个单词字符序列通过CharCNN转换成单词向量。将向量分别导入正向LSTM和逆向LSTM,两个通道生成的向量做一个拼接作为每个单词的词向量,就是ELMO模型的输出结果。当然双向LSTM也可以设置多层,每层的输出经过加权混合生成的向量作为ELMO模型的输出结果。
单层双向LSTM的中文ELMO模型如图2所示,双向LSTM的输入是n个token序列(t1,t2,…,tk,…,tn),对前向LSTM模型,输出是上下文表征序列,即每个token的词表示。参数通过求序列出现的概率公式训练,参数要满足式(3)概率最大化。反向LSTM模型训练与正向同理,过程逆序,即由后面tokens计算当前token的概率,序列出现的概率由式(4)确定。
(3)
(4)
结合式(3)、式(4),可以得到ELMO的目标函数,训练参数就是使得目标函数最大化。为了简化计算,利用最大似然估计将目标函数定义为式(5)。
(5)
其中,Θx是开始输入的向量,Θs是softmax层参数,ΘLSTM是LSTM的参数。
2 组织机构名识别模型
组织机构名和其他实体对比,文本较长,识别准确率相对较低。为了进一步提高组织机构名识别的准确率,该文提出一种组织机构名识别方法。在哈工大ELMO工具的基础上,重新整理字典,融入高频机构构成词,对于中文ELMO预训练过程加以改进,最后将自训练的字词向量和BiLSTM-CRF模型结合预测字词标签,从而识别组织机构名。
2.1 机构词词表
机构词来源有两个,一是人工整理机构后缀词,非单字的后缀词全部加入机构词词表,比如“公司”、“公安局”、“艺术团”等词。二是根据《人民日报》语料和百科词条,统计高频机构构成词。首先,从《人民日报》1998年版、2014年版标注语料和微软亚洲研究院MSRA里根据标注抽出组织机构名。为了增加语料的丰富性,加入四百多万个百度词条名,百度词条有类别标签,用ICTCLAS、哈工大分词分别分词,共同识别组织机构名,单个分词系统识别的组织机构名,如果词条名的类别是“团体”、“组织”、“机构”、“协会”的名词也确认为组织机构名。对于极少数识别错误和漏识别的组织机构名,对统计高频机构词影响不大,它们作为噪声数据和低频机构词都会被淘汰。开始统计机构名构成词构成机构名的概率值,通过式(6)确定:
fi=Ii/Ci
(6)
其中,Ii是单词i在机构名内出现的频数,Ci是单词i在整个语料里出现的频数。
单词频数过低的可能是噪声数据,取词频数大于5,且f>0.1的词语。将高频词加入机构构成词表,词表大小约为300左右。
2.2 改进的中文ELMO模型
自然语言处理很多领域里字向量比词向量有更好的效果,主要原因可能包括未登录词问题和分词错误问题。显然字向量(char embedding)与词向量(word embedding)相比不存在未登录词问题(这里的未登录词不包括正在识别的实体),可以直接用char embedding,或者通过charCNN生成word embedding,而组织机构名有很多不在词典中的新词。另外,断字不存在分词错误的问题。所以对于预训练模型,该文选择以字向量为基本单位进行训练,中文模型的字典里有6 000多个字符。
但是分词组织机构名识别率远低于姓名和地名识别率的原因,主要是数量多、文本长、构成结构复杂。将上节统计的高频机构词加入字典,构成的词典是文本分词标注的基本单位,文本被分成单个的中文字符和少部分的中文词,降低了机构名组成的字词长度,而且将机构词内字之间语义相关度提前学习到,期待识别机构名会有更好的效果。
用自己构造的词典作为ELMO训练文本分词的基本单位,训练得到的字词向量作为识别模型嵌入层的输入,如图3中的ELMO嵌入。从图中可以看到,文本基本被分成字:“我”、“在”、“盛”、“友”,然后高频的机构词“股份”和后缀词“公司”未被分开。词典中“股”、“份”、“公”、“司”、“股份”、“公司”都存在,仍然可以避免未登录词问题。
2.3 标注模型
模型共有三部分,分别是ELMO词嵌入、双向LSTM和CRF,如图3所示。
图3 组织机构名识别模型
模型输入的是自训练的ELMO词向量,输出的是每个词对应的标注。词嵌入层主要是以字为单位,融入了少部分机构名后缀词和高频机构词。对词典来说的少部分词对组织机构名却是高频词,词内各个字的语义相关性不用再通过学习得到。主体以字为单位的好处可以通过上面例子分析。比如“盛友”对于分词词典来说是未登录词,机构名“盛大”、“盛安”、“盛天”、“全友”、“双友”都是词典里的词,这些机构名对于“盛友”的机构名特征作用有限。但是以字为单位的时候,“盛”、“友”这些字的机构名特征都可以学习到,对于识别机构名是有帮助的。
通过双向LSTM网络可以获取序列的上下文语义特征。但是如果用它直接进行标签预测,会出现一些错误,比如预测结果里连续出现两个“E-ORG”标签,这显然是一种预测错误。所以一般都是在RNN层后接上CRF层。CRF具有转移概率矩阵,能够考虑标签之间的转移概率,预测标签依赖序列的最优联合概率。比如会学习到“E-ORG”前面应该是“B-ORG”或者“I-ORG”。
3 实验及分析
3.1 数据预处理
实验数据来源于《人民日报》1998版、2014版标注数据和微软亚洲研究院的MSRA数据集,将它们经过预处理后融合在一起。
命名实体标注采用BIOE策略,B表示实体开始词,I表示实体内部词,O表示非实体词,E表示实体结束词。人民日报标注语料,标注了所有词的词性,包括动词、名词、形容词、时间词等各种词性,也包括“nr”、“nt”、“ns”等命名实体;MSRA标注了所有实体词,比如用“ns”标注地址,用“nt”标注组织机构名,其他非实体词语词语用“O”表示。通过输入预处理,将数据标签“nt”转化成“B-ORG”、“I-ORG”、“E-ORG”,将其他非实体词转化成“O”。
3.2 实验结果
实验用标注模型对处理过的数据进行词性标注的训练和预测,80%的数据作为训练集,20%的数据作为测试集。第一步用改进的ELMO模型进行字词向量的预训练,将文本分成机构词和字的序列,然后经过模型生成字词向量序列;第二步将ELMO字词向量嵌入BiLSTM-CRF的输入层,对参数变量进行训练,生成标注模型;第三步将测试数据输入模型,输出层输出测试数据字词序列被预测出的标注序列,进一步抽取出组织机构名。用准确率(P)、召回率(R)和F1值进行识别评价,P是组织机构名词性标注的准确率,R是组织机构名词性标注的召回率,F1值见式(7)。
(7)
实验结果见表1,其中charELMO代表词嵌入是字符向量,OrgELMO代表词嵌入是融入机构词的字词向量。
表1 组织机构名词性标注结果
3.3 结果分析
实验结果中,OrgELMO-CRF词性标注结果的F1值比CharELMO高了1.3%。基于字向量的词嵌入,不存在未登录词的问题,也不存在分词错误的干扰。加入高频机构词到字典,既没有引入以上问题,又利用了组织机构名构成词的语义特征,改善了识别效果。
前文分析过组织机构名识别率低的原因主要是数量多、文本长、构成复杂。通过统计高频机构构成词发掘语义特征,将机构词加入到词典中,一方面因为减少了词向量数从而缩短了运算时间,另一方面提前学习了构成词内字与字的语义关系,向量矩阵可以更好地表达组织机构名。
该预训练模型使用的数据规模相对较小,预训练模型选择百度用大规模数据训练出的ERNIE,或者哈工大训练好的中文BERT模型,应该会有更好的效果。为了减少训练时间,可以去掉BiLSTM层,同时不固定ELMO参数让预训练ELMO参数继续参与训练,也可以保证训练效果。以上不是该文的研究重点,不再赘述。实验选择固定ELMO参数只训练BiLSTM-CRF参数,改进预训练模型,验证了词嵌入层用融入机构词的字词向量比字向量在组织机构名识别上有更好的效果。
4 结束语
随着深度学习技术的快速发展,深度学习结合CRF的命名实体识别效果不断提升。但是命名实体识别中组织机构名识别效果相对较差,该文基于字向量构建词嵌入预训练模型,又将高频机构词当作一种特殊的“字”加入到字典进行预训练,结合LSTM、CRF进行组织机构名识别,比普通字词向量做词嵌入的识别效果更好。
组织机构名识别仍有很大的提升空间,通过采用更适合的词嵌入技术或者更好的机器学习方法作词性标注,以期进一步提高识别效果。