赵颂歌 张浩 常宝宝
摘 要:科技术语提取是科技术语自动处理的重要环节,对后续的机器翻译、信息检索、QA问答等任务有重要意义。传统的人工科技术语提取方法耗费大量的人力成本。而一种自动提取科技术语方法是将术语提取转化为序列标注问题,通过监督学习方法训练出标注模型,但是面临缺乏大规模科技术语标注语料库的问题。文章引入远程监督的方法来产生大规模训练标注语料。另外又提出基于自注意力机制的Bi-LSTM的模型架构来提高科技术语提取结果。发现新模型在发现新的科技术语的能力上远远优于传统机器学习模型(CRF)。
关键词:科技术语提取;远程监督;自注意力
中图分类号:TP391;N04;H083文献标识码:ADOI:10.3969/j.issn.1673-8578.2021.02.003
Research on Automatic Extraction of Scientific Terminology from Texts Based on Self-Attention//ZHAO Songge,ZHANG Hao,CHANG Baobao
Abstract: Scientific terminology uses specific words to represent certain scientific concepts. The extraction of scientific terminology is an important part of the automatic processing of scientific terminology, and it is of great significance for the following tasks such as machine translation, information retrieval, and questions and answers. The traditional extraction of scientific terminology consumes a lot of manpower cost, and an automatic method for extracting scientific terminology is transforming terminology extraction into tagging problem and training out the tagging model through supervised learning methods, while the lack of annotated large-scale scientific terminology corpus is the problem. This paper introduces the method of distant supervision to generate large-scale annotated training corpus, and proposes Bi-LSTM model architecture based on Self-attention mechanism for the purpose of improving the extraction results of scientific terminology. We found that the ability of discovering new scientific terminology about our new model is far superior to the traditional machine learning model (CRF).
Keywords: the extraction of scientific terminology; distant supervision; self-attention
引言
科技术语作为科技领域信息知识的载体,有着广泛的使用。在科技迅猛发展的今天,新的术语更是被不断创造出来。科技术语的及时发现也是了解这些领域的关键。对于这些新出现的术语,相关组织每年都要花费巨大的人力物力进行统计和抽取,如何自动地提取术语是术语工作人员迫切希望解决的一个问题。传统的基于人工的科技术语提取方法当今已经不再适用,为此国内外的许多学者也对术语提取这个任务开展了一系列的研究工作。
早期Kageura[1]提出了术语具有术语度(termhood)和单元度(unithood)两个属性。研究者基于这两个属性开展了很多的研究。Pantel[2]尝试利用互信息(mutual-information)和對数似然比(log-likelihood)来衡量单元度;Hisamitsu[3]尝试利用共现(co-occurrence);Chang[4]尝试利用域间熵(inter-domain entropy)来判别术语;Frantzi[5]在2000年提出C/NC value,用来衡量候选术语的术语度;Nakagawa[6]基于C-value提出MC-value;Wermter[7]针对多词术语,提出P-Mod(paradigmatic modifiability)指标,也有人使用术语方差(term variance)、术语方差质量(term variance quality)及术语贡献度(term contribution)。同时,有人尝试使用机器学习,例如:Zhou[8]使用 SVM 对候选术语做多分类, Zhang[9]尝试使用 CRF,Li[10]尝试利用话题模型的变种来解决。
科技术语提取任务面临很多需要解决的问题,主要包括以下两点。
(一)对于有监督的机器学习模型来说,需要大规模标注语料,由于人工标注成本巨大,且目前对于科技术语提取任务来说标注语料非常少,数据稀少。所以更高效地获取大规模的标注语料对于有监督的模型来说是亟须解决的难题。
(二)对于传统机器学习模型来说,需要设计更加精细的人工特征,即特征工程。而特征工程任务非常烦琐,需要耗费人员巨大的精力。所以对于科技术语提取任务来说,特征的选择也是亟须解决的问题。
本文针对第一个问题,引入远程监督的训练方法,通过术语词典对无标注语料自动标注,高效快捷地产生大规模训练标注语料;针对第二个问题,在单层和多层Bi-LSTM基础上引入自注意力机制提高模型提取科技术语的能力,从而省去特征工程的烦琐。
1 术语标注数据集的自动构建
远程监督是一种典型的弱监督机器学习方法,在机器学习的算法当中,我们很多情况下是需要训练数据用来训练模型的。那么传统获得训练数据的方式就是人工标注,例如:对于“婚姻”这个关系,人们会将“克林顿”和“希拉里”当作是“婚姻”這个关系的正例。但是在海量的数据中人工标注的代价是很大的,也因为数据量太大,人工标注也会有误标的情况。针对这个局限,基于半监督学习的思想,Mintz等人[11]提出了远程监督(distant supervision)。Mintz 等人当时要处理的问题背景是关系提取这个任务,人工标注的语料太小,于是作者就根据 Freebase 里出现的实体对无标注语料(《纽约时报》新闻文本)进行自动标注关系(例如:“克林顿”和“希拉里”在 Freebase 里是 “婚姻”关系,那么在一个无标注语料的句子中如果出现了“克林顿”和“希拉里”,那么我们认为这个句子中的“克林顿”和“希拉里”就是一种婚姻关系,这个句子就会被当作“婚姻”关系的正例)。通过这种方法,可以将海量的无标注数据自动标注为有标注数据。
所以本研究的思路是利用给定的科技文本和科技术语词典,采用远程监督的思想来快速构建标注语料库。给定一段科技文本,如果有词语出现在科技术语词典里,那么我们就认为这是“属于术语”关系的正例,该词就被打上了术语的标签。图1很好地解释了我们标注的过程,红色代表科技术语。
如图1所示,我们在科技术语词典查询分词后的句子的每个单词,如果找到了对应的词条就认为该词为科技术语,否则就不是科技术语,作为负例。
本研究遵循最长匹配优先的方法。另外考虑到各个领域都积累了大量的术语词典资源,利用这种方式构造术语标注语料,不会面临术语词典缺乏的问题。
2 基于Bi-LSTM科技术语提取
2.1 基于单层Bi-LSTM科技术语提取
本节主要利用单层Bi-LSTM(双向长短期记忆网络)结构来进行科技术语提取。这里我们把科技术语提取当作序列标注任务,每一个词语都与一个标签对应。我们采用了比较常见的BIEOS标签,即B(科技术语开始的位置),I(科技术语中间的位置),E(科技术语结束的位置),O(科技术语以外的位置),S(单独作为一个科技术语)。
给定模型输入句子,X=x1,x2,x3,x4,…,xn,其中xn代表输入句子中的每个词语,模型输出Y=y1,y2,y3,y4,…,yn,其中yn代表每个词语的标签,也就是BIEOS中的一种。
鉴于语篇特征对科技术语识别具有重要作用。这一点与词类标注、分词等典型序列标注任务不同,为了使模型表现能力更强,我们选择Tf、Idf两个特征作为额外信息输入。
Tf:term frequency(词频),指目标词在整个文本中出现的次数,在整个文本里出现得越多,说明越重要。这是一种简单直观的特征。
Idf:inverse document frequency(逆向文本频率)。如公式(1)所示,分子是语料库中文件总数,分母是包含目标词的文件总数,二者相除再取一个对数,Idf是对一个词普遍性的重要度量。而在实际的应用当中,为了防止有些词的频率为0,即没有出现过,导致分母为0,通常取加1的平滑处理。
图2是单层Bi-LSTM模型结构图,给定输入通过Embedding层转换成词向量,另外我们还选择了每个词的词性作为输入,把词向量和经过随机初始化的词性向量连同Tf、Idf拼接起来一起作为最终输入。对于Bi-LSTM的输出,把正向和反向的结果拼接在一起,然后经过MLP(多层感知机),再经过激活函数。经过比较,我们选择了ReLU函数作为激活函数。
idfi=logDj:ti∈dj+1(1)
H;H=BiLSTMX(2)
H=H;H(3)
Hmlp=Wmlp*H+Bmlp(4)
Hrelu=RelUHmlp(5)
对于非线性层的输出,我们利用softmax函数来进行类别概率的预测,然后选择标签概率最大的当作最终结果。公式如下:
PY=i|Hrelu,Wsoftmax,Bsoftmax=softmaxi(WsoftmaxHrelu+Bsoftmax)(6)
Ypred=argmaxiPY=i|Hrelu,Wsoftmax,Bsoftmax(7)
而我们的损失函数是交叉熵损失函数(cross-entropy cost function),如公式(8)所示
Lθ=W,B=-∑nk=1∑5i=1pkilogyki(8)
其中pki是第K个样本术语类别i的概率,yki是我们网络模型对第K个样本预测属于类别i的概率,而我们一共有5个类别。
2.2 基于多层Bi-LSTM科技术语提取
对于多层Bi-LSTM,每一层的输出要经过正反向拼接。向量维度会变成原来的2倍也就是2 * hidden_size,为了使维度不变,我们利用一层MLP(多层感知机)来达到压缩维度的目的。多层Bi-LSTM的输出处理和单层Bi-LSTM一样,具体可参见2.1小节。
3 基于自注意力机制的科技术语提取
由于注意力机制能更好地捕捉到局部信息,在任务中科技术语往往和临近的单词的关系最为密切。在“研究/了/机抖/陀螺/的/零偏/和/温度/的/关系/”这句话中,加粗的就是要提取的科技术语,但是直观上看,“零偏”“温度”等一些词对术语提取没有影响,而“机抖”“陀螺”作为宾语修饰了“研究”这个动词,它们直接的关系应该比较密切,并且“机抖”“陀螺”这两个词构成科技术语,它们本身的联系也应当比较紧密。所以我们的出发点就是想利用注意力机制这种原理,探究在分类的问题上能不能取得一定的效果,让分类器在注意力机制的帮助下更好地观察到局部信息,而不是全局信息。由于对序列标注任务来说,只有句子单独的信息,所以attention操作要对自己进行,所以我们在每一个时间维度上面都要对其他向量做一次attention操作。图3就是网络的具体结构示意图。
ci=∑Txj=1αijhj(9)
αij=expeij∑Txk=1exp eik(10)
eij=ahi-1,hj(11)
ahi-1,hj=hTi-1hjdothTi-1WahjgeneralvTatanhWahTi-1;hjconcat(12)
Ho=concatH:C(13)
其中h是Bi-LSTM在每个时间点拼接后的输出,ci是每个当前时间点的输出对其他时间点的输出做的attention过程加权求和得到的向量。而对于计算得分函数,经过对比实验结果,最终选择了general的方法。另外一点不同的是,因为经过self-attention拼接后,输出的向量维度变成了4 * hidden_size大小,如果把4 * hidden_size大小的向量直接映射到hidden_size 大小,会造成信息的局部损失,所以我们选择了两层MLP和非线性层进行处理,使模型的表达能力更强一些。
4 实验结果及分析
4.1 科技术语标注语料库产生过程
我们发现科技论文的摘要非常适合做科技术语提取任务,因为摘要作为一篇论文的精髓总结,不仅具有非常强的专业领域性,而且出现新词的概率非常大,所以我们采用了科技论文摘要来构建语料库。下面介绍具体的产生过程。
1)转换论文格式文本为可处理的文本
首先我们找到了一些国内计算机领域期刊的caj格式的论文,批量地将caj 格式转化为pdf格式,成功转化pdf的文件有116 107个,然后基于Linux 的一个工具包 pdf to text,批量地将 pdf 文件转化为txt文件。
2)清洗数据和分词及词性标注
对每个txt 文件根据关键字进行定位,其中基于“摘要”和“关键词”获得相应的文本信息,因为原始文本是论文格式的,在格式转化过程中,会有空格、断词、连词的问题出现。对于中文,我们把所有的空格、缩进符等无用字符删除即可得到过滤后的中文文本,最终获得的中文摘要数量有64 919个。然后我们利用NLTK工具包对中文摘要进行自动分词和词性标注。
3)自动标注训练语料
我们利用爬虫程序爬取了一个计算机领域的中英文科技术语词典,经过处理后得到 70 669个中文科技术语,为了在远程监督的自动标注中避免短词造成的误标,剔除了3个词以下的科技术语,只保留长度大于等于3的科技术语,经过剔除最终剩下64 748个中文科技术语。然后利用最长匹配优先的方法在训练语料中进行匹配。如果训练语料中出现了科技术语词典中的词,我们就将其标记为科技术语并标注相应的标签。最终,从64 919个术语中随机选取100个进行人工标注作为测试集,从剩下的文本中随机选取60 000个作为训练集。
4.2 模型参数
我们使用word2vec[12]于整个训练集进行了预训练,获得了50维,100维向量,最终比较实验结果和权衡计算速度我们选取了50维的向量。词性向量我们使用了随机初始化的30维向量,初始学习率为0.1,Bi-LSTM隐层大小(hidden_size)选择100。为了减少过拟合问题,模型增加Dropout和L2正则化,Dropout为0.5,L2系数为0.001。训练方法我们采用了随机梯度下降(SGD)。
4.3 实验结果对比
本文在我们提出的语料库上做了CRF,单层和多层Bi-LSTM 以及基于自注意力机制的Bi-LSTM的对照实验。实验评测指标我们选取了整个科技术语(term)的准确率Pterm,召回率Rterm和F值Fterm。
CRF:我们考虑将CRF引入的原因,是基于有指导学习的术语识别多采用CRF(zhang[9])方法,因此选择CRF在构造的数据集上实验作为基线对比。
我们利用CRF++[13]工具选取了5个模板。对于条件随机来说,由于无法利用词向量和词性向量这样的特征,为了和深度学习模型保持一致,我们选词语本身、词性分类名以及Tf、Idf作为特征。Unigram和Bigram模板分别生成CRF的状态特征函数slyi,x,i和转移特征函数tkyi-1,yi,x,i。其中yi代表类别标签,x代表观察序列,i代表当前节点位置。给定序列X=…xi-2,xi-1,xi,xi+1,xi+2…和当前位置i我们可以定义xi-1,w,xi,w,xi,w,xi,tf等一系列Unigram模板,其中w,tf分别代表词语本身和Tf值。Bigram是在Unigram的基础上增加了上一个节点的标签。5种CRF模板的Unigram选择依据是从只考虑前后2个词逐步增加上下文信息,增加词性、Tf、Idf等特征。Unigram的数量也在逐步增加。Bigram模板只考虑前后2个节点的标签。在实验过程中,我们使用的是CRF++工具包,工具包分别利用crf_learn和 crf_test 对训练数据、训练模型和对测试数据进行预测。最终5个模板會训练出5个模型,对应个测试实验结果。表2是对应5个模板的特征选择和实验结果,其中模板4的结果最好。
表3是我们利用不同层数Bi-LSTM以及加入自注意力机制之后的结果以及和CRF结果最好的模板4对比。可以明显看出在加入自注意力机制之后,Fterm在原来的基础上都有了不同程度的提高,证明了自注意力机制确实能在一定程度上更好捕捉到局部信息,加强关键科技术语词与词的联系,从而提高结果。
4.4 自注意力机制可视化分析
从图4中可以看出对于“研究”这个词,自注意力机制学到了它和“机抖”“陀螺”之间有着很强的依赖关系。这也符合汉语语法中“研究”和“机抖陀螺”组成动宾短语的关系。而“机抖”“陀螺”这两个词构成科技术语,它们之间也存在着很强的依赖关系,通过图4也可以看出它们对应的方块颜色比较深,这也说明了自注意力机制能比较好地捕捉到局部信息。
4.5 发现新词
新词即为没有出现在我们标注所用的科技术语的词典中的新的科技术语。我们经过分析每个模型的测试集结果输出,发现 CRF 模型能够根据训练数据学习到科技术语上下文的特征信息。但是由于模型本身的缺陷,这种能力非常有限,只能发现非常少量的新词。对于简单的单层以及多层Bi-LSTM而言抽象能力有限,发现的断词比较多,比如“主成分”“路由”等,在加入自注意力机制后模型有了更强的抽象能力,也更好地捕获了局部信息,对应地找到了“主成分分析法”“路由优化算法”这些完整的科技术语。测试集标注结果去重后共有448个科技术语,其中新词有225个,两层自注意力机制Bi-LSTM发现的新词有54个,发现率为24%,同等条件下CRF模型发现率仅为5.3%。
为了解决在科技术语提取任务方面缺少大规模标注语料库的问题,我们利用远程监督的方法,快速高效地构建了带标注的语料库,并且提出了利用自注意力机制来更好地抽象模型,捕获局部信息,提高科技术语提取F值。另外又做了多组对比试验,包括CRF、单层和多层Bi-LSTM以及基于自注意力机制的单多层Bi-LSTM,证明了自注意力機制的有效性。另外通过分析实验结果发现我们的模型在发现新词的能力上要远远强于传统机器学习方法。
参考文献
[1] KAGEURA K, UMINO B. Methods of Automatic Term Recognition [J].Terminology , 1996, 3(2):29-35.
[2] PANTEL P, LIN D. A Statistical Corpus-Based Term Extractor[M]//STUMPTNER M, CORBETT D, BROOKS M. Advances in Artificial Intelligence.Berlin Heidelberg: Springer-Verlag,2001:36-46.
[3] HISAMITSU T,NIWA Y,TSUJII J. A method of measuring term representativeness baseline method using co-occurrence distribution[C]. COLING, 2000:320-326.
[4] CHANG J S. Domain specific word extraction from hierarchical web documents: a first step toward building lexicon trees from web corpora[C]//Proceedings of the 4th SIGHAN Workshop on Chinese Language Learning: 64-71.
[5] FRANTZI K, ANANIADOU S,MIMA H. Automatic recognition of multi-word terms: the C value/NC-value method[J]. International Journal on Digital Libraries, 2000,3(2):115-130.
[6] NAKAGAWA H, MORI T. A simple but powerful automatic term extraction method[C]//Proceedings of 2nd International Workshop on Computational Terminology. COLING-2002 WORKSHOP, 2002, 109(4):229-30.
[7] WERMTER, JOACHIM, HAHN, et al. Paradigmatic modifiability statistics for the extraction of complex multi-word terms[J].Proceedings of HLT-EMNLP05, 2005:843-850.
[8] JU Z, ZHOU M, ZHU F. Identifying biological terms from text by support vector machine[J]. Industrial Electronics and Applications, 2011:455-458.
[9] ZHANG X, SONG Y, FANG A C. Term recognition using Conditional Random fields[J]. International Conference on Natural Language Processing and Knowledge Engineering,2010:1-6.
[10] LI S, LI J, SONG T, et al. A novel topic model for automatic term extraction[C]//Proceedings of the 36th international ACM SIGIR conference on Research and development in information retrieval (SIGIR13). 2013:885-888.
[11] MINTZ M, BILLS S, SNOW R, et al. Distant supervision for relation extraction without labeled data[C]. Meeting of the association for computational linguistics, 2009: 1003-1011.
[12]word2vec project.[EB/OL].(2013-07-30)[2020-04-07]. https://code. google. com/p/word2vec.
[13] CRF++: Yet Another CRF toolkit.[EB/OL].(2013-02-13)[2020-04-08]. http://taku910. github. io/crfpp.
作者簡介:赵颂歌(1995—),男,北京大学信息科学技术学院研究生。研究方向为术语抽取、自然语言生成等。通信方式:zhaosongge@pku.edu.cn。
张浩(1993—),男,北京大学软件与微电子学院硕士研究生。研究方向为术语抽取、语义搜索、视频推荐等。通信方式:hao-zhang@pku.edu.cn。
常宝宝(1971—),博士,北京大学信息科学技术学院副教授。主要研究领域为自然语言处理。先后主持了多个国家自然科学基金和国家社会科学基金等项目。在包括ACL、EMNLP、COLING、IJCAI、AAAI等国际顶级会议在内的国内外学术会议及期刊上发表论文近百篇。作为主要成员,先后获得教育部科技进步一等奖、中国电子学会科技进步一等奖、国家科技进步二等奖等。担任《中国科技术语》编委、《中文信息学报》编委、中国中文信息学会计算语言学专业委员会委员、中国人工智能学会自然语言理解专业委员会委员等。通信方式:chbb@pku.edu.cn。