李东亚,白 涛,2,3,香慧敏,戴 硕,王震鲁,陈 珍
(1.新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830052;2.智能农业教育部工程研究中心,新疆乌鲁木齐 830052;3.新疆农业信息化工程技术研究中心,新疆 乌鲁木齐 830052;4.新疆科信职业技术学院,新疆 乌鲁木齐 830049)
棉花是我国重要的经济作物之一,也是世界上最重要的纺织原料之一。我国棉花生产区域分为新疆棉区、黄河流域棉区、长江流域棉区三大棉区。新疆拥有独特的自然生态条件,是我国最大的商品棉基地和世界重要的棉花生产地。在棉花种植过程中,病虫害种类多种多样,目前已知有380多种病虫害,其中较为常见的病害有20 余种,虫害有30 余种[1]。棉花病虫害的防治信息大多存在于海量书籍文献中,棉花种植人员无法有效精准地获取到有用的防治信息。构建棉花病虫害知识图谱,将棉花病虫害的名称、症状和防治方法等数据进行知识化,并以图谱形式存储,对于棉花病虫害精准快速的防治具有重要意义[2-3]。
命名实体识别(Named entity recognition,NER)是指识别文本中具有特定意义的实体,主要包括人名、地名、专有名词、机构名等,是构建知识图谱的基础任务,也是关系抽取等任务的前提[4]。目前,针对命名实体识别任务,可以采用基于规则和词典的方法、统计机器学习的方法以及深度学习的方法[5]。近年来,随着计算机算力的不断提升,深度学习方法在命名实体识别任务中的应用越来越广泛,SOTA(State of the art)不断刷新[6-7]。HUANG 等[8]提出 的BiLSTM(Bidirectional longshort-term memory networks)和条件随机场(CRF)相结合的方式有效解决了长距离依赖的问题,成为了目前最为经典的命名实体识别方法。随着预训练模型的蓬勃发展,其被应用到了多个领域,其中基于Transformer 的双向编 码(Bidirectional encoder representations from transformer,BERT)模型是中文命名实体识别中最常用的预训练模型,可以考虑整个输入句子的上下文信息,有助于提高模型对命名实体的理解和识别准确性。郑丽敏等[9]采用BERT-FLAT 模型并对预测结果进行规则修正,有效完成了营养健康领域的命名实体识别。杨飘等[10]利用BERT 预训练生成词向量,提出的基于BERT 的BERT-BIGRU-CRF 模型,在MSRA 中文数据集上进行测试获得了较好的结果,F1 值达到了95.43%。以上模型在其领域语料数据充足的情况下均能取得较好的识别效果,但是无法直接应用到语料匮乏的棉花病虫害领域。
在农业领域,MALARKODI 等[11]使用条件随机场从不同农业领域真实数据中识别命名实体。GUO 等[12]构建了农业病虫害语料库并使用BiLSTM-CRF 模型实现对该语料的命名实体识别。李书琴等[13]以BiGRU-CRF为基本模型,融合了词级别和字符级别的信息对自制的猕猴桃种植领域语料进行试验,结果较好。刘合兵等[14]构建了小麦病虫害实体识别语料库,在ALBERT+BiLSTM+CRF 中文命名实体识别模型的基础上制定了小麦病虫害命名实体规则,该方法能有效识别小麦病虫害命名实体。
以上不同领域的命名实体识别方法,虽都取得了一定的成果,但其均是在实体类别较少的情况下识别效果较好。在模型部分,对于文本特征的抽取均采用的是单一的特征提取方法,不能充分获取文本中的隐含信息。在农业领域命名实体识别任务中,存在着训练数据匮乏、实体复杂多样、包含大量领域特定实体以及嵌套实体等诸多问题。为了能有效解决以上问题,构建了棉花病虫害命名实体语料库CDIPNER,提出了一种基于RoBERTa(A robustly optimized BERT)多特征融合的命名实体识别深度学习模型。RoBERTa 的预训练过程涵盖了大规模的语料库,使其能够更好地捕获通用的语言知识。这为特定领域的实体识别任务提供了更强的迁移能力,使模型能够从有限的领域特定数据中更充分地学习。针对棉花病虫害领域实体内容复杂等问题,使用BiLSTM 和膨胀卷积神经网络(IDCNN)模型联合抽取特征向量,分别获取文本语料的时序特征和空间特征,在最大程度上获取文本序列的特征信息,提高模型的识别精度,为后续构建棉花病虫害知识图谱及基于知识图谱的应用奠定基础。
本研究通过数据采集、数据预处理、语料标注3个步骤构建棉花病虫害领域的命名实体识别语料库CDIPNER。
1.1.1 数据获取及预处理 供试数据主要通过从专业的棉花病虫害防治书籍和文献以及从国家农业科学数据中心等网站中获取。其中书籍部分,选取了7 本具有代表性的棉花病虫害类书籍,书中详细介绍了不同种类棉花病虫害的具体详情、分布与危害及防治方法等内容,作为文本数据的主要来源。书籍信息如表1所示。
表1 棉花病虫害数据来源书籍Tab.1 Data sources of cotton diseases and pests books
首先通过光学字符识别(OCR)技术将书籍中的文本内容统一收集处理。其次,通过Python 的Scrapy 框架从国家农业科学数据中心、百度百科等权威的网站中抓取。将两部分数据合并后进行文本格式转化,通过人工修正文本数据中的错字、乱码及其他特殊符号,去除文本中的无效数据、长文本分句等操作。为了使命名实体识别模型能更好地进行泛化和推理,对数据语料中的命名实体进行了实体标准化处理,将相同的实体标准化为统一的名称。经过上述预处理过程后,最终获得未标注的数据语料共4 137个句子,约25万个中文字符(数据集下载地址:https://github.com/we197064/Crop-pestsdiseases-NER)。
1.1.2 数据标注 由于农业病虫害文本的标注数据库的缺乏,本研究在棉花领域专家的指导下,结合棉花病虫害文本语料特征,充分挖掘潜藏知识,将棉花病虫害语料细粒度划分为11类,包括棉花病害、棉花虫害、别名、危害部位、危害症状、发病规律、防治方法、害虫形态、防治药剂、病害致病原、分布区域[15],具体类别信息如表2所示。
表2 棉花病虫害领域实体类别Tab.2 Entity categories in the field of cotton diseases and pests
对于CDIPNER 语料库的标注,采用BIO 序列标注方法[16],其中每个实体的起始位置使用B-实体标签进行标记;除起始位置外的其他位置使用I-实体标签进行标记;其他全部位置使用O-实体标签进行标记。特定垂直领域实体识别语料一般使用人工方式进行标注[17],本研究最终标注完成的语料库中共包含实体12 836个。序列标注示例如图1所示。
图1 语料序列BIO标注示例Fig.1 Example of corpus sequence BIO annotation
为验证本研究所提模型的有效性及泛化能力,将在不同公开数据集上进行试验。
(1)ResumeNER 数据集包含1 027份简历摘要,实体标注分为人名、国籍、籍贯、种族、专业、学位、机构和职称等8个类别。
(2)WeiboNER 数据集包含1 890 条微博消息,实体类别分为人物、机构组织、地址和地缘政治实体4个类别。
(3)MSRANER 数据集包含5 万多条中文实体识别标注数据,实体类别分为人物、地点和机构3类。
以上数据集均采用BIO 方式进行了标注,本研究数据集及公开数据集规模及划分如表3所示。
表3 模型参数设置Tab.3 Model parameter settings 条
本研究针对棉花病虫害文本数据及实体内容复杂、类型多样等特点,提出了一种基于RoBERTa多特征融合的深度学习模型RoBERTa-BiLSTMIDCNN-MHA-CRF,为方便后续论述,使用RoBERTa+BIAC 表示该模型。模型总体框架如图2所示。
图2 RoBERTa-BiLSTM-IDCNN-MHA-CRF模型框架图Fig.2 RoBERTa-BiLSTM-IDCNN-MHA-CRF model framework diagram
该模型由4 个部分组成:RoBERTa 向量表示层、BiLSTM 及IDCNN 特征抽取层、多头自注意力机制(MHA)特征融合层和CRF 层。输入序列数据通过RoBERTa进行词向量转化;对于词向量中的序列的长距离依赖关系、时序与空间特征通过BiLSTM与IDCNN 模型分别进行提取;抽取得到的特征向量,使用能有效增强模型特征表达能力的多头自注意力机制进行动态融合;最后,采用CRF 获取到最优的标记序列。
1.3.1 RoBERTa 模型 在自然语言处理(NLP)领域中,将文本数据转化为词向量常用的语言模型有One-Hot、Word2Vec、GloVe、ELMO 等,但上述模型训练输出的词向量是静态的,无法表征一词多义的现象[18]。
RoBERTa 相较于BERT 模型[19],在训练方法上,去掉了BERT 模型训练过程中的下一句预测任务。在数据预处理阶段,RoBERTa 每次输入新的序列时都会生成新的掩码模式,这种动态掩码模型能够使模型逐渐适应不同的掩码策略,学习到更丰富的语言表征。此外,RoBERTa 采用了字节级的字节对编码,并将词表大小从BERT 的3 万个提升到了5 万个,对输入也没有进行预处理和分词。
RoBERTa 模型的上述几点改进,使其能够更好地捕获通用的语言知识。这为棉花病虫害实体的识别提供了更强的迁移能力,能够从有限的数据中更加充分地学习。
1.3.2 BiLSTM 模型 由于RoBERTa 是基于Transformer 架构的预训练模型,它的Encoder部分采用了自注意力机制。导致抽取的相对位置信息不准确,输出的特征缺乏顺序性,为了进一步捕获上下文特征并提高特征的顺序性,本研究引入了BiLSTM模型作为后续处理层。
BiLSTM 由前向LSTM(Long short-term memory)和后向LSTM 组成[20],以此来更好地捕捉双向和长距离的语义依赖关系。LSTM 是RNN 模型的变种,能有效地解决长序列训练过程中出现的梯度弥散和梯度爆炸问题,从而可以更好地学习长期依赖信息[21-22]。
LSTM 网络的循环单元结构如图3所示。其中,ct-1表示上一个时刻的内部状态,其需要遗忘多少信息由遗忘门ft控制;c͂t表示当前时刻的候选状态,其有多少信息需要保存由输入门it控制;ct表示当前时刻的内部状态,其有多少信息需要输出给外部状态ht由输出门ot控制。这3个门控机制的计算公式[21]:
图3 LSTM网络的循环单元结构Fig.3 Cyclic unit structure of LSTM network
长期记忆ft和外部状态ft的计算公式:
其中,σ(·)为Logistic 函数,W、U为网络参数,b为偏置,ft为当前时刻的输入。
1.3.3 IDCNN 模型 单一的特征抽取模型只能获取一种类型的特征,由于棉花病虫害文本数据的复杂性,在使用BiLSTM 模型抽取特征的同时,使用IDCNN 来充分捕捉文本的上下文和全局特征[23],从而提高模型对复杂棉花病虫害文本的建模能力和识别性能。这对RoBERTa 克服在相对位置信息和顺序性方面的缺陷起到了积极作用。
传统的CNN 有明显的计算优势,但是在经过卷积之后,容易发生过拟合现象。为解决该问题,YU等[24]于 2015 年 提 出 了 膨 胀 卷 积(Dilated convolutions),又叫空洞卷积。膨胀卷积可以更好地捕捉句子中的上下文信息,与普通卷积的区别如图4所示。IDCNN 的核心思想是通过在卷积层中多次应用扩张卷积来增大感受野,可以更好地捕捉不同命名实体之间的上下文关系和语义信息,从而提高了对棉花病虫害命名实体的识别准确率。在每次迭代中,扩张卷积的卷积核大小和扩张率(Dilation rate)都会逐渐增加,使得卷积层能够看到更远距离的输入信息。其由4个结构相同的膨胀卷积模块拼接而成[24-25],每个模块中包含3 层膨胀宽度依次为1、1、2的DCNN模型。
图4 普通卷积与膨胀卷积Fig.4 Ordinary convolutions and dilated convolutions
1.3.4 多头自注意力机制 在NLP 任务中,注意力机制可以通过某种运算来计算句子中每个位置上的注意力权重,从而得到整个句子的隐含向量表示[26-27]。
在本研究模型的特征抽取层中,采用了BiLSTM 和IDCNN 模型同时获取序列特征,应用多头自注意力机制分别计算出它们之间的相关性并进行加权平均计算,完成对不同特征向量的动态融合[28]。这种特征提取的方式能够更全面地捕捉棉花病虫害文本序列的信息,进而能够提高模型的性能。
多头自注意力机制模型结构如图5所示。
图5 多头自注意力机制模型Fig.5 Model diagram of multi-head self-attention mechanism
该方法通过独立学习得到h组不同的线性投影对查询、键和值进行变换。这h组变换后的查询、键和值并行地进行注意力池化。最终,将这h个输出进行拼接,并通过另一个可学习的线性投影进行变换,得到最终输出。这种并行计算的方式可以同时从不同的角度关注输入序列,从而更好地捕捉到序列中的信息。每个注意力头hi(i= 1,…,h)的计算公式[5]:
其中,Wo为可学习参数,RPv和RPo为实数空间。
1.3.5 CRF 模型 CRF 是在NLP 任务中广泛应用的模型,主要应用于文本的分词、词性标注等任务中。CRF 能够通过学习序列标签之间的相互关系,捕捉到句子级别的标签信息,从而得到全局最优的标签序列,提高实体抽取的准确性[29]。
在本研究模型中,特征融合层通过多头自注意力机制获取到的特征向量,使用CRF 层进行条件约束,从而得到最优的序列。对于每个输入序列xi,都有与其对应的标签序列yi,通过公式(8)[29]计算分数,得出最终结果。
其中,n代表字符总个数,W代表标签转移的分数值,P代表第i个字符预测为标签yi分数值。
1.4.1 试验环境及模型参数 试验所使用的计算机硬件环境包括13th Gen Intel(R)Core(TM)i9-13900H 处理器、NVIDIA GeForce RTX4060 laptop 显卡以及32 GB 的内存。同时,试验使用的软件环境包括Python3.6 版本和PyTorch 框架的1.7.1+cu110版本。模型试验参数如表4所示。
表4 模型参数设置Tab.4 Model parameter settings
1.4.2 模型评价指标 目前,使用深度学习方法进行命名实体识别任务时,通常采用精确率(P)、召回率(R)以及F1 值作为实体抽取效果的评估标准[30],具体计算公式如下。
其中,TP 为真阳性,即预测为正,实际为正(Truth,预测正确);FP 为假阳性,即预测为正,实际为负(False,预测错误);FN 为假阴性,即预测为负,实际为正(False,预测错误);TN 为阴性,即预测为负,实际为负(Truth,预测正确)。
为验证RoBERTa+BIAC 模型在CDIPNER 数据集上的有效性,设置了IDCNN-CRF、BiLSTM-CRF、BILSTM-MHA-CRF、 BERT-BiGRU-MHA-CRF、BERT-BiLSTM-MHA-CRF 5个模型分别进行试验。不同模型训练的评价指标结果如表5 所示。通过表5 可以看出,RoBERTa+BIAC 模型相较于其他模型在精确率、召回率以及F1 值上取得了最好的结果,分别为96.60%、95.76%、96.18%,这说明该模型在处理棉花病虫害命名实体内容较为复杂的情况下能够有效识别,具有较好的性能。BiLSTM-CRF模型在F1 值上比IDCNN-CRF 模型表现更好。这表明IDCNN 模型相较于BiLSTM 模型在获取全局特征的能力上较弱。BiLSTM-CRF 模型在处理命名实体识别任务时能够更好地捕获文本序列中的上下文信息,从而提高了性能。
表5 不同模型训练结果Tab.5 Training results of different models %
预训练模型可以极大地提升模型的性能,提高识别效果。本研究使用的RoBERTa 模型通过预训练,在大规模语料上学习通用语言表示,具有强大的语义表达能力,能够在命名实体识别任务中捕捉更多的语义信息,从而提高了模型在复杂文本中的性能。
对比不同模型对棉花病虫害命名实体的识别效果可以发现,RoBERTa 模型与BERT 模型相比性能的提升并不明显,因此,使用2种预训练模型结合BiLSTM-MHA-CRF 及IDCNN-MHA-CRF 模型进行对比验证,结果如表6 所示。通过表6 可以发现,使用RoBERTa 预训练模型总体上比BERT 模型更好。棉花病虫害命名实体多为农业领域词语,且大多包含生僻的中文汉字。RoBERTa 预训练模型的全词遮蔽技术相较于BERT 对模型的提升有一定的帮助,而且其在掩码学习及语义表征能力上比BERT模型更强。结果表明,使用RoBERTa预训练模型进行字符级向量转化,能更有效地提升模型的表征能力。
为了验证RoBERTa+BIAC 模型在特征抽取层使用2种模型进行联合以及使用多头自注意力机制进行特征融合对训练效果的影响,在RoBERTa+BIAC 模型的基础上进行了消融试验,-MHA 表示去除多头自注意力机制,对抽取的特征向量进行拼接;-BiLSTM 表示去除BiLSTM 模型,仅通过IDCNN模型获取特征;-IDCNN表示去除IDCNN模型,仅通过BiLSTM 模型获取特征。上述模型均在CDIPNER语料库上进行试验,结果如表7所示。
表7 消融试验训练结果Tab.7 Training results of ablation experiments %
通过表7可以看出,去除BiLSTM模型或IDCNN模型分别使得训练结果中F1 值降低了2.28、1.36 百分点,去除多头自注意力机制后,使用拼接向量的方式进行特征融合,模型训练结果的F1 值降低了0.90 百分点,这表明多头自注意力机制在特征融合方面具有一定优势,能够提升模型的泛化能力和特征融合能力。该方法能有效地减少无效信息对模型的影响,从而提高模型的性能和稳定性。
在特征抽取层,由一种模型进行特征的提取,会导致模型性能的下降,也说明了不同的特征信息对于实体识别任务均具有关键性作用。通过消融试验,说明RoBERTa+BIAC 模型通过使用多头自注意力机制和BiLSTM、IDCNN 模型联合抽取等技术,对于提升模型的性能和特征融合能力起到了积极作用,为棉花病虫害命名实体识别任务的成功实现提供了有效的方法和依据。
为验证RoBERTa+BIAC 模型在其他公开数据集上的效果及泛化能力,在ResumeNER 数据集、WeiboNER 数据集和MSRANER 数据集上进行了试验并与CDIPNER 进行对比,结果如表8 所示。通过表8 可以发现,RoBERTa+BIAC 模型在棉花病虫害命名实体识别数据集CDIPNER 以及其他公开数据集上的训练结果均表现良好,对于文本语料数据较少且文本格式不规范的WeiboNER 数据集,训练结果的F1 值也能达到75.44%,进一步证明了RoBERTa+BIAC 模型的有效性及泛化能力。
表8 不同数据集模型训练结果Tab.8 Model training results of different datasets %
RoBERTa+BIAC 模型在棉花病虫害文本中各实体类别的识别评价结果如表9所示。实体类别中别名和病害致病原两类实体的结果均为100%,预训练模型通过掩码任务等预训练目标,学习字词级别的表示。由于病害致病原往往以“菌”字结尾,病害和虫害名称、别名大多以“病”、“虫”字结尾,预训练模型能够学习到这些特征,并从中捕获病虫害实体的边界特征,从而提高识别率。防治方法及害虫形态的召回率和F1值均低于90%,这两类实体的内容复杂、多样,难以识别。其他各类实体的识别评价结果均高于90%,这也表明了模型在整体的命名实体识别上性能良好。
表9 各实体识别结果Tab.9 Identification results of each entity %
针对棉花病虫害领域命名实体识别任务训练语料匮乏等问题,构建了包含了棉花病虫害名称、害虫形态、病害病原、防治方法等11 类实体类别的棉花病虫害语料库CDIPNER。为有效解决棉花病虫害命名实体识别精度不高、实体内容复杂等问题,提出了一种基于RoBERTa多特征融合的命名实体识别深度学习模型。与不同模型进行对比发现,该模型对棉花病虫害命名实体的识别效果最好,精确率达到了96.60%。通过使用RoBERTa 提取字符序列的动态词嵌入向量,使嵌入层能输出更丰富的上下文信息。采用BiLSTM 和IDCNN 模型对特征进行联合抽取,并使用多头自注意力机制对特征向量进行动态融合,相较于使用单一模型进行特征抽取的方法,能够更好地获取语料中的长距离依赖关系、时序与空间特征。将抽取的特征使用多头自注意力机制进行融合而不是简单的向量拼接能够有效减少文本中无效信息对模型的影响。通过消融试验证明,该方法能够有效提升模型对棉花病虫害命名实体识别的准确率,也进一步说明了这种改进方法的有效性。同时,该模型在其他公开数据集上也取得了不错的效果,说明该模型具有一定的泛化能力。
虽然本研究提出的基于RoBERTa 多特征融合的命名实体识别模型在棉花病虫害领域命名实体识别任务上有一定效果,但是在减少模型的训练时间、提升模型对于复杂实体识别的准确度等方面仍有改进的空间。后续可以考虑通过减少模型复杂度从而减少参数量,使模型能更好地嵌入到设备中完成语义识别等任务,通过进一步完善数据集,使模型具有更好的泛化能力,进一步提升识别的准确率。