魏明飞,潘冀,陈志敏,梅小华,石会鹏
(1.中国科学院大学 计算机科学与技术学院,北京 100049;2.国家空间科学中心,北京 100190;3.国家无线电监测中心,北京 100037;4.华侨大学 信息科学与工程学院,福建 厦门 361021)
为了应对新形势下的航天竞争,相关国家的航天机构,诸如美国国家航空航天局(NASA)、欧洲航天局(ESA)、俄罗斯联邦航天局(Roscosmos)等都在加快做航天情报收集工作.航天情报领域并非热门领域,目前针对此领域的信息处理方法研究较少,所以没有统一的处理范式.传统情报领域的信息抽取任务一直是研究热点,例如金融[1-3]、军事[4-5]等领域的情报信息抽取已经有了比较成熟的研究.
深度学习技术的出现,使自然语言处理(natural language processing,NLP)技术快速发展.命名实体识别(named entity recognition,NER)是自然语言处理领域的一个重要子任务,同时也是文本信息抽取任务的关键技术.作为信息抽取的关键技术之一,基于深度学习的命名实体识别技术在医疗[6]、金融[7]和新闻媒体等诸多领域都得到了成功的应用.但是,在航天情报领域却缺乏此类研究,主要是因为航天情报实体识别(aerospace intelligence entity recognition,AIER)面临专业性强、消歧困难和缺乏标注语料等3个问题,而缺乏标注语料是AIER任务面临的最大难题.标注语料库的方式按标注者的不同,可以分类为人工标注和自动标注.当前,语料库主要是依靠人工进行标注[8-11].冯鸾鸾等[12]在其研究中提出一种人工辅助模型标注的标注框架,并标注了国防领域的技术与术语语料库.自动标注语料库的困难之处在于标注规则的构建[13-14].自从深度学习技术出现后,神经网络开始被用来解决命名实体识别问题,如卷积神经网络(CNN)、循环神经网络(RNN)[15-16]和RNN变体神经网络,以及这些网络结合Attention机制的复杂神经网络等都成功地应用到了NER任务上[17-21].
预训练模型已经被证明可以将内部的语言模型应用到下游的NLP任务中,研究人员将预训练模型框架应用到许多NLP任务中,可以大幅度提升其性能.在标注数据缺乏时,预训练模型显的尤为有用.基于此,本文构建基于预训练模型的航天情报识别系统,将预训练模型的语言表示能力与条件随机场(conditional random fields,CRF)的结构化预测能力相结合,构建BERT(bidirectional encoder representation from transformers)-CRF模型,并将其应用到AIER任务中.
知识数据的来源包括记录航天事件的数据库,互联网上整理的航天事件记录,《航天科学技术叙词表》,互联网百科中关于航天的词条和词条关联的短文描述,航天类科普、新闻、技术类文章.按照数据类型划分,有结构化数据、半结构化数据和非结构化数据.其中数据库中的数据是结构化数据,互联网航天事件记录和《航天科学技术叙词表》为半结构化数据,其余来源都是非结构化数据.对于结构化数据可以直接使用转换工具进行转换,半结构化数据可以用正则提取的方法提取知识.非结构化数据选用智能化算法进行知识的提取[8].
智能化算法提取模块主要包括两个部分:一是TF-IDF等算法提取主题词,二是通用领域实体识别算法提取实体(选择性使用识别结果,在文中仅保留识别的组织结构实体).
假设航天情报信息抽取的目的信息可以被归纳为N个类别,等同于AIER任务中要抽取的N类实体,即得到实体标签集合V,V的大小为N.假设实体集合为E,E为无限集.E和V存在映射关系,对于E中的任一元素e,V中存在唯一元素v与之对应,v=f(e),即f:EV.AIER的任务可以描述为在给定数据集D中,识别所有实体e,e∈E,并为其标注对应的标签v,其中v=f(e).
E是无限集,人为构建的领域知识库无法囊括E中的所有元素.假设在构建知识库过程中,发现的所有实体,构成实体集合Ekb,则Ekb⊂E.同时,将标签集合V和映射关系f也纳入知识库,最终构建航天情报领域知识库KBaie.KBaie本质是包含实体、实体标签的二元组的集合,KBaie集合中任一元素为〈v,e〉,其中e∈Ekb,v=f(e).融合多源异构知识建立知识库的方法流程,如图1所示.
图1 航天邻域知识库的构建
数据集的原始语料来源包括航天情报文档、专业航天网站文章和相关航天论坛文章,其专业性程度依次递减.
将实体识别的问题当作序列标注问题来解决.对于句子S,S={s1,s2,…,sn}.标注模型的任务是找到标注序列T,T={t1,t2,…,tn}.T不唯一,文中采用启发式规则选取合适的标注序列T.
标注AIER数据集的第一步是构建实体词典.将KBaie内的所有实体集合Ekb,存入前缀树中.前缀树(trie tree)又名字典树,是字符串处理任务中常用到的数据结构.前缀树可以将词典存入树结构中,其边用来存储字符信息,节点记录词汇的终止信息,这样存储的好处是可以节省空间,同时方便查询.从前缀树的结构和原理可以看出,其本质就是一个确定有限状态自动机.在本研究中前缀树被用来存储实体词典.
标注AIER数据集的第二步是有词典匹配,核心是匹配算法.最大匹配法(maximum matching,MM)是一种有词典匹配算法,根据匹配初始位置的不同分为正向最大匹配(forward maximum matching,FMM),逆向最大匹配(backward maximum matching,BMM).文中选用的匹配算法是基于两种匹配算法的启发式匹配算法.假设标注句子S,FMM输出标注序列T1,BMM输出标注序列T2,假设T1中的实体集合为E1.E1的实体个数为c1,包含的总字数为w1,定义衡量因子m=w1/c1.匹配算法会生成若干种可能的标注序列,选择所有可能的标注序列中衡量因子m最大的那一个作为标注结果.算法流程如算法1.
算法1Heuristic MM
Input: 原始语料D和KBaie
1.Result ={};
2.While(D非空):
3.Get s from D
4.t1,…,tn=MM(s);
5.m=get M(t)
7.Result append t
8.End while;
Output: Result.
AIER任务可以抽象成对航天情报中的句子进行序列标注.通俗来讲就是为句子中的每个字符标注一个实体标签值.单个实体由一个字符或多个字符组成,所以在句子的位置可能占据一个字符,也可能横跨多个字符.文中句子标注格式选择BIO标注格式.文中的实体标签集合为V,对于句子中一个实体的开始位置,为其标注B-e,对于实体的其他位置,为其标注I-e,e∈V,句子中的字符不在实体内,则为其标注为O.文中标注的AIER数据集符合以上描述的标注方法.AIER数据集的整体标注流程,如图2所示.
图2 AIER数据集标注流程
由此,最终将标注完成的数据集按时间年份划分为训练集和测试集.其中训练集是较早的年份,测试集是最新的年份.这样做的目的是保证训练集中尽可能少地包含测试集里的信息.
预训练模型使用超大规模语料进行训练,为下游任务提供精准的词向量表示.从2013年Mikolov等提出word2vec开始,使用无监督学习算法从大规模语料学习精准词向量表示成为NLP的研究热点,如ELMo,一种堆叠Bi-LSTM的模型,能够生产上下文相关的词向量表示.在NLP任务中,精准的词向量表示能够大幅提升下游任务的性能.预训练模型除了能够学习通用语言表达形式,还具有更好的泛化性能,即预训练模型可以迁移到其他NLP任务上.同时,预训练模型可以很大程度地减轻深层网络经常遇到的过拟合问题.
BERT(bidirectional encoder representation from transformers)作为最出名的预训练模型,在各个方面性能都非常优秀.与以往使用的单向语言模型不同,BERT使用深层双向语言模型.Devlin等[18]指出以往的预训练模型在词向量的表示学习上做的不够,文本编码器层数少,且是单向的.BERT在训练语言模型时使用Mask机制,即随机遮盖句子的一部分词以达到双向训练的目的,同时BERT堆叠深层Transformer的Encoder模块,最终BERT可以得到深层双向语言模型.BERT还借鉴word2vec中的负采样技术,使用句子级别的负采样技术以学习词向量表示,最终构建NLP任务的解决框架.研究人员在使用BERT解决具体NLP任务时,只需为特定的任务定制一个轻量级的输出层.BERT改变了以往需要为每一个NLP任务深层定制网络的工作模式.
将AIER任务看作序列标注问题,在使用BERT做序列标注任务时,需要为上层定制输出层,即标签解码器.常见的标签解码器有MLP+Softmax,CRFs,RNN和指针网络.MLP+Softmax解码器标注序列时都是根据对应位置的上下文表示独立预测的,并不考虑相邻位置的标签值.RNN解码则是一个贪心的过程,即先计算得到首位置的标签,序列后面位置的标签都是基于前面的标签值计算得出.这两类解码器都不能满足AIER任务的需求.条件随机场(CRF)以观测序列为全局条件,求解结果为全局最优.同时,CRF被广泛应用于各种基于深度学习的NER模型中,并取得了不错的效果.所以在文中的研究选择CRF作为上层的标签解码器.
CRF模型服从吉布斯分布,通常用来做结构化预测.在AIER任务中,CRF可以学习相邻标签值的依赖关系.CRF的参数会参与到模型训练,通过梯度下降算法学习到标签转移概率矩阵.Lample等[16]的研究在使用CRF为生成的标签序列“语法”加几个硬约束,因为标签序列的标签值是不满足独立性假设的,CRF为生成序列加的硬约束则可以保证NER任务中生成标签序列的合法性.
将AIER任务抽象为对航天情报数据集的序列标注问题,对通过预训练后的BERT模型进行fine-tune,并与CRF进行结合来解决序列标注问题.AIER模型由BERT模型、线性链条件随机场组成,其中BERT模型顶层带有字符级分类器,文中选用Softmax作为字符级分类器,顶层是线性链条件随机场,主要事进行结构化预测.
对于输入句子S,BERT输出已编码序列T,Softmax将T映射到标签值向量空间,即RHRN.其中H为BERT的隐藏层维度,N为标签集合大小.Softmax最终输出标签域的概率矩阵P,P∈Rn×N.将P输入CRF层进行标签预测,CRF的参数本质上是一个标签转移概率矩阵A,A∈RN+2×N+2.文中研究中A包含额外两个状态“〈start〉”和“〈end〉”.Lample等[16]在其研究中介绍了序列标注理论,依照其理论,对于句子S={s1,s2,…,sn},标注序列y={y1,y2,…,yn},yi∈T,其标注序列的得分为
然后,用Softmax函数对所有可能标注序列的得分进行归一化,可得
BERT-CRF模型的训练目标是最大化正确标注序列得分的对数似然概率,训练阶段的目标函数为
文中的训练方式是fine-tuning,训练时BERT和CRF联合参与训练.BERT-CRF模型的整体架构,如图3所示.
图3 BERT-CRF模型结构图
实验中的数据集选择在文中构建的AIER数据集,预训练模型选择谷歌使用大规模中文语料训练的bert-base-zh.模型重要参数设置如下:BERT隐藏层参数为768,注意力头(attention head)数量为12,隐藏层个数为12,dropout为0.1,隐藏层的激活函数为gelu函数,训练轮数epoch为14轮.
通过建立的基于预训练模型的AIER模型(BERT-CRF),与隐马尔可夫模型(HMM)、条件随机场(CRF)模型、双向长短期记忆网络加条件随机场(BiLSTM-CRF)模型进行实体识别实验对比.该4组实验中的模型均使用PyTorch框架构建,并使用到numpy,sklearn等科学实验包.
在研究中,实验评价标准选择3个NER任务中经典的评价指标,分别是宏准确率(P)、宏召回率(R)与宏F1值,指标公式如下
由于AIER任务中更关心被准确抽取的信息的占比,即召回率.所以,在文中实验更看重召回率评价指标.
文中构建了4个模型并在相同环境对4个模型进行实验,结果如表1所示.从表1可知:基于预训练模型解决AIER任务的效果,明显优于传统统计机器学习模型和基于LSTM的深度学习模型.实验表明预训练模型的表示学习能力在AIER任务仍然有效.
表1 实体识别实验结果分析
BERT-CRF对AIER中实体识别的效果,如表2所示.从表2可知:VEH的识别效果最差,统计训练集和测试集实体个数时发现VEH实体的数量较少(数量最少的是LOC实体),同时VEH的命名具有较强的规则性且是多语言的,和一般语言的语法规律有差异.BERT预训练模型使用的是大规模中文通用语料进行训练,其内部学习的是中文通用语言的语言模型,可能由于VEH本身的多语言性加之命名语法规则特殊和数量不足,导致BERT-CRF模型对VEH实体识别效果不佳.
表2 BERT-CRF模型实体识别结果
为了快速处理航天情报,文中构建了融合多源异构知识的航天情报领域知识库,并且基于知识库和启发式匹配算法标注AIER任务数据集;最后训练基于预训练模型的AIER模型,取得了超过BiLSTM-CRF模型的效果.在一系列对比实验中,结果表明:基于预训练模型的AIER模型表现最好,能够取得93.68%的准确率、97.56%的召回率和95.58%的F1值.