CN113378574A - 一种基于kgann的命名实体识别方法 - Google Patents
一种基于kgann的命名实体识别方法 Download PDFInfo
- Publication number
- CN113378574A CN113378574A CN202110732903.9A CN202110732903A CN113378574A CN 113378574 A CN113378574 A CN 113378574A CN 202110732903 A CN202110732903 A CN 202110732903A CN 113378574 A CN113378574 A CN 113378574A
- Authority
- CN
- China
- Prior art keywords
- size
- knowledge
- output
- input
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 210000002569 neuron Anatomy 0.000 claims abstract description 50
- 238000012549 training Methods 0.000 claims abstract description 35
- 238000013528 artificial neural network Methods 0.000 claims abstract description 22
- 238000013136 deep learning model Methods 0.000 claims abstract description 18
- 239000013598 vector Substances 0.000 claims description 88
- 239000011159 matrix material Substances 0.000 claims description 33
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 18
- 238000003062 neural network model Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 6
- 239000013589 supplement Substances 0.000 claims description 5
- 230000009286 beneficial effect Effects 0.000 claims description 4
- 238000004140 cleaning Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 230000009193 crawling Effects 0.000 claims description 2
- 238000002372 labelling Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 239000000047 product Substances 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims description 2
- 238000013135 deep learning Methods 0.000 abstract description 4
- 230000004927 fusion Effects 0.000 abstract description 4
- 238000000605 extraction Methods 0.000 description 9
- 201000010099 disease Diseases 0.000 description 7
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000003745 diagnosis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Databases & Information Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Animal Behavior & Ethology (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种基于KGANN(Knowledge Graph Artificial Neural Network,KGANN)的命名实体识别方法,该方法通过重构知识图谱的神经元,在保留知识图谱内容和结构的基础上,使其可被深度学习训练方法训练,从而达到知识图谱和深度学习模型高度融合。KGANN通过引入领域知识,从而在小规模数据集上表现优异。本发明所提方法相较传统命名实体识别方法具有明显提升,在小样本数据下具有更强的鲁棒性。
Description
技术领域
本发明属于命名实体识别技术领域,具体涉及一种基于KGANN的命名实体识别方法。
背景技术
随着互联网的发展,产生了海量有价值的信息资源。但是上述信息资源通常是难以直接利用的非结构化数据,为了更好的非结构化数据,必须将非结构化数据转化为结构化数据。在这个转换过程中,使用最多的技术就是知识抽取,而命名实体识别就是其中重要的步骤。然而在使用深度学习模型进行命名实体识别的过程中往往缺少高质量的标注数据,然而深度学习模型高度依赖高质量的标注数据,因此如何提高深度学习模型在小规模数据集下的效果愈发重要,知识注入就是解决上述问题的重要方法。
在物理学中,能量守恒定律的发现至关重要,它被定义为封闭系统的能量必须保持恒定,如果不与外部系统联系,他既不能增加也不能减少。在NLP领域同样遵循着“信息守恒定律”,这意味着封闭的数据集合上的信息必须保持恒定,如果不与外部系统联系,信息既不能增加也不能减少。由于在传统机器学习时代,模型的特征提取能力很弱,往往无法挖掘数据集所包含的所有信息,因此研究人员更多将注意力放在模型的改进上,所以上述条件往往被忽略。然而,伴随着深度学习的飞速发展,深度学习的特征提取能力和传统机器学习相比有了质的飞跃,有时数据集所包含的信息是可以被完全挖掘出来。这个时候,数据集成为了“木桶效应”中的短板。这种情况往往出现在数据偏小的情况,强大的深度学习模型学到了少量数据集所包含的所有信息,然而少量数据集所包含的信息本身是有限的,所以就造成了深度学习模型在少量数据集情况下的过拟合现象。
发明内容
本发明要解决的技术问题是:提供一种命名实体识别方法,特别在小规模数据集情况下具有较好的表现。为此本发明提出一种基于知识图谱的神经网络模型,该模型将知识图谱改造成神经网络,并使其可以使用反向传播的方式进行训练。所提模型可以主动学习针对当前任务具体选择哪些知识;并且所提模型将知识融入神经元,当该神经元被激活时,知识将主动和特征向量进行融合;知识和特征向量融合时的权重也会在模型训练时被确定。所提模型抛弃了以往融合模型以深度学习模型为主的思路,利用知识图谱的结构来构建深度学习模型,将传统深度学习模型和知识图谱结合起来,两者不再是孤立的部分,而是统一的整体。知识的选择和两者的权重完全由模型训练得到。
本发明的技术方案为一种基于KGANN(Knowledge Graph Artificial NeuralNetwork)的命名实体识别方法,包括以下步骤:
步骤S1,选择适当的领域知识图谱,如果缺少该领域知识图谱,则先手工构建该知识图谱;领域知识图谱和任务领域相匹配;
步骤S2,抽取领域知识图谱结构,该结构作为后续神经网络模型隐藏层的结构,利用领域知识图谱生成知识向量;
步骤S3,对数据进行采集、预处理、标注数据和数据集划分;
步骤S4,构建KGANN神经网络模型,该模型包括输入层、隐藏层和输出层三部分;
其中输入层负责将输入语料转化为词向量,即将S3得到的数据集作为输入,通过BERT模型将数据进行向量化表示;
隐藏层使用S2的知识图谱结构,并且将S2生成的知识向量作为神经元的组成部分;隐藏层的具体层次数和每层所包含的神经元数量均由知识图谱结构决定,每个神经元由特征向量和知识向量两部分组成,特征向量表示传统的神经网络部分,通过训练可以提取语料的语义特征,知识向量表示具体的领域知识,作为任务的有益补充;两部分通过训练过程给予不同的权重,利用该权重将特征向量和知识向量进行拼接,作为最终的特征表示;
输出层包括全连接层和功能实现层,其中全连接层将隐藏层的高维空间降至低维空间,功能实现层由条件随机场构成,负责提供全局最优解,形成全局最优的序列标签,并将识别结果输出;
步骤S5,利用训练集训练S4所构建的神经网络模型,直至模型收敛达到最佳效果时,保存该模型,以便后续使用。
进一步的,所述知识图谱是在本体库的基础上构建起来的,因此所有知识图谱都具有本体意义上的顶点,依据该顶点作为起始位置,以该节点的一跳节点作为第一层隐藏层,以该节点的二跳节点作为第二层隐藏层,直到覆盖本体库所包含的所有层;同时知识图谱以三元组形式保存,而三元组格式无法直接使用,因此需要对三元组格式的知识进行向量化表示,使用TransE方法构建知识空间,在该高维空间内,所有的三元组知识被转化为唯一且包含知识的特征向量;
具体来说,使用TransE方法将实体和属性转化为长度为kl的特征向量,接着对每一个知识<实体,关系,实体>都转换为对应的3个特征向量,然后将3个特征向量进行拼接,则该知识可以使用长度为3kl的向量进行表示,接着使用KGMi表示第i层隐藏层的知识向量,KGMi∈R3kl×il,其中il表示第i层隐藏层的知识个数,同时也是该层的神经元个数。
进一步的,所述的S3中,对任务所在领域的数据进行处理,包括四个步骤:采集、预处理、数据标注和数据集划分;其中,
数据采集包含两种途径,首先是领域相关的文件和资料,其次是爬虫爬取领域相关数据;领域相关的文件和资料获取便捷,爬虫的方式则更加灵活,两者均可以获得任务针对性强的数据;预处理包括语料清洗、分句、去除停用词三个步骤,首先语料清洗负责将任务针对性弱、语句不完整、语句存在严重错误的句子进行剔除,由于神经网络是以句子为单位进行识别,因此需要将文章和段落拆分为句子,接着去除无意义的停用词;最后使用人工的方式对数据进行标注,并将其打乱顺序后划分为训练集和测试集。
进一步的,步骤S4中隐藏层的构建方式如下;
其中,单一隐藏层的计算过程如式1所示:
output=Ws[nn;kg] (1)
其中Ws为转换矩阵,负责将拼接向量转换为指定长度的特征向量,nn表示neuralnetwork部分,nn使用感知机的结构,其表达方式如式2所示,其中weight1表示神经网络部分在后续拼接向量时的权重,kernel表示神经网络内部的权重,x表示输入向量,biases表示偏置值;kg表示knowledge部分,在该部分引入先验知识,其表达方式如式3所示,其中weight2表示先验知识部分在后续拼接向量时的权重,x表示输入向量,KGM为先验知识矩阵
nn=weight1·(kernel·x+biases) (2)
kg=weight2·x·KGM (3)
nn仅在普通神经元形式前加入对应的权重系数,kg将输入与知识矩阵相乘,再此基础上加入对应的权重系数;此时,分别讨论两个部分的维度,进而调整其计算方式,输入的x对应输入的训练数据,使用[batch_size,max_len,input_size]表示S矩阵的维度,其中batch_size表示BP反向调参时的批次大小,max_len表示模型输入的最大长度,input_size表示输入句子的长度;k表示该层神经元从输入到输出映射关系,其维度使用[input_size,output_size]来表示,其中output_size表示模型输出矩阵的维度;biases和weight1和weight2分别为神经元的偏置向量、每个神经元nn部分的权重和每个神经元kg部分的权重,维度应与神经元个数保持一致,其维度均使用[output_size]表示;KGM为知识矩阵,其维度可以用[output_size,3kg_len]表示,其中kg_len表示TransE方法生成知识向量的维度,因此,式2的维度表示如式4所示:
nn=[output_size]·([input_size,output_size]·[batch_size,max_len,input_size]+[output_size]) (4)
由于式4维度并不匹配,无法进行点乘计算,因此调整下顺序,并求weight1的对角矩阵,将其维度由[output_s ize]变为[output_s ize,output_s ize],如式5所示,其中diag表示将weights_nn处理为对角矩阵,weights_nn表示神经网络的权重,其维度表示如式6所示,化简后的输出维度如式7所示:
nn=(input·kernel+biases)·diag(weights_nn) (5)
nn=([batch_size,max_len,input_size]·[input_size,output_size]+[output_size])·[output_size,output_size] (6)
nn=[batch_size,max_len,output_size] (7)
式3的维度表示如式8所示:
kg=[output_size]·[batch_s ize,max_len,input_size]·[m,3kg_len] (8)
式8维度不匹配,无法进行后续计算,同样对其顺序进行调整,并使对角矩阵对weightskg进行表示,调整后的形式如式9所示,其维度表示如式10所示,化简后的输出维度如式11所示:
kg=inputs·diag(weightskg)·KGM (9)
kg=[batch_size,max_len,input_size]·[output_size,output_size]·[output_size,3kg_en] (10)
kg=[batch_size,max_len,input_size]·[output_s ize,3kg_len] (11)
在式11中存在两个关系为“或”的约束条件才能继续计算,约束条件如式11和式12所示,
s.t.input_size=output_size (12)
s.t.input_size=3kg_len (13)
在第一层隐藏层中,input_size表示词向量的维度,由voc_embedding表示,由于voc_embedding为固定值,则构建深度学习模型时式12表示的第一个约束条件难以满足,所以使用式13表示的第二个约束条件,由于模型使用的Embedding方法为BERT模型,所以voc_embedding=768,则3kg_len=voc_embedding=768,kg_len=256;则kg应该重写为:kg=inputs·diag(weightskg)·KGMT,其中weightskg表示先验知识的权重,维度为kg=[batch_size,max_len,output_size],最终隐藏层的计算方式如式14所示,输出特征向量的维度如式15所示:
output=Ws[(input·kernel+biases)·diag(weights_nn);inputs·diag(weightskg)·KGMT] (14)
output=[batch_size,max_len,2output_size] (15)
第二层隐藏层中,需要对两处地方进行修改,首先需要满足式12-13所表示的约束条件,为了保证不同层之间的知识矩阵在同一空间中,则kg_len应该保持一致,此时只能使得模型满足式12,为保证input_size=output_s ize,在第一层隐藏层之后添加一层全连接层,将维度升至第二层隐藏层的神经元个数,进而满足式12;然后,虽然知识图谱的二跳节点数相较于一跳的节点数更多,但是第一层隐藏层和第二层隐藏层神经元之间是否连接由知识图谱决定,此时通过weight矩阵表示神经元之间是否连接,不相连的位置使用Non代替,则该位置不参与模型后续的计算,从而减少模型的参数量,后续隐藏层的构建方式和第二层隐藏层相同。
进一步的,所述的步骤S5中,当模型构建好以后,其中的变量由符合截断正态分布的随机数初始化。使用S2所得的数据集和合适的参数对模型进行训练,使模型较好的契合当前任务。当训练好适应当前任务的模型后,对该模型结构和变量进行保存,以便后续使用。
与现有技术相比,本发明的优点和有益效果为:本发明方法通过重构知识图谱的神经元,在保留知识图谱内容和结构的基础上,使其可被深度学习训练方法训练,从而达到知识图谱和深度学习模型高度融合。KGANN通过引入领域知识,从而在小规模数据集上表现优异。本发明所提方法相较传统命名实体识别方法具有明显提升,在小样本数据下具有更强的鲁棒性。
附图说明
图1为本发明的整体流程图。
图2为KGANN的神经元模型图。
图3为思知知识图谱结构图。
图4为70%训练集下不同模型的F1值曲线图。
图5为40%训练集下不同模型的F1值曲线图。
图6为10%训练集下不同模型的F1值曲线图。
具体实施方式
下面结合具体实例和附图对本发明做进一步说明。
1整体步骤
本发明提供的一种基于KGANN的命名实体识别方法,包括以下步骤:
步骤S1,选择适当的领域知识图谱,如果缺少该领域知识图谱,则先手工构建该知识图谱;领域知识图谱和任务领域相匹配;
步骤S2,抽取领域知识图谱结构,该结构作为后续神经网络模型隐藏层的结构,利用领域知识图谱生成知识向量;
步骤S3,对数据进行采集、预处理、标注数据和数据集划分;
步骤S4,构建KGANN神经网络模型,该模型包括输入层、隐藏层和输出层三部分;
其中输入层负责将输入语料转化为词向量,即将S3得到的数据集作为输入,通过BERT模型将数据进行向量化表示;
隐藏层使用S2的知识图谱结构,并且将S2生成的知识向量作为神经元的组成部分;隐藏层的具体层次数和每层所包含的神经元数量均由知识图谱结构决定,每个神经元由特征向量和知识向量两部分组成,特征向量表示传统的神经网络部分,通过训练可以提取语料的语义特征,知识向量表示具体的领域知识,作为任务的有益补充;两部分通过训练过程给予不同的权重,利用该权重将特征向量和知识向量进行拼接,作为最终的特征表示;
输出层包括全连接层和功能实现层,其中全连接层将隐藏层的高维空间降至低维空间,功能实现层由条件随机场构成,负责提供全局最优解,形成全局最优的序列标签,并将识别结果输出;
步骤S5,利用训练集训练S4所构建的神经网络模型,直至模型收敛达到最佳效果时,保存该模型,以便后续使用。
2 KGANN结构
KGANN整体结构如图1所示,模型共分为输入层、隐藏层、输出层三部分。输入层使用BERT模型将输入语料转换为词向量,进而输入模型。隐藏层利用知识图谱的知识和结构构建,其中的神经元与传统深度学习模型的神经元不同,在传统神经元基础上增加了知识部分,将知识图谱所包含的知识和结构信息直接注入深度学习模型。输出层主要包含全连接层和功能实现层,其中全连接层将隐藏层的高维空间降至低维空间,以便CRF层可以合并局部最优解进而形成全局最优的序列标签,并将识别结果输出。
2.1问题表述
由于医疗领域任务复杂,数据获取困难,且人们往往更倾向于选择解释性更强的模型,因此本发明选择了医疗领域的命名实体识别任务验证方法的有效性,数据集使用公开数据及CCKS2019任务一:面向中文电子病历的命名实体识别。为了匹配该任务,知识图谱使用思知知识图谱,如图3所示,该知识图谱为开放的疾病知识图谱。
首先知识图谱可以表示为K={k1,k2,...,km},其中m表示知识图谱所含三元组的数量。输入的训练数据可以表示为S={s1,s2,..,sn},其中S∈Rn×512×768,n表示训练数据集的batch-size,512是句子最大长度,768表示BERT模型的输出维度,同时也是词向量的长度。目标是得到输入序列Si的标签T={t1,t2,..,tn},T∈Rn×512。
2.2构建知识矩阵
由于传统意义上的知识图谱都是在本体库的基础上构建起来的,因此所有知识图谱都具有本体意义上的顶点,我们依据该顶点作为起始位置,以该节点的一跳节点作为第一层隐藏层,以该节点的二跳节点作为第二层隐藏层,直到覆盖本体库所包含的所有层。同时知识图谱以三元组形式保存,而三元组格式无法直接使用,因此我们需要对三元组格式的知识进行向量化表示。我们使用TransE方法构建知识空间,在该高维空间内,所有的三元组知识可以被转化为唯一且包含知识的特征向量。
具体来说,我们使用TransE方法将实体和属性转化为长度为kl的特征向量,接着对每一个知识<实体,关系,实体>都可以转换为对应的3个特征向量,然后将3个特征向量进行拼接,则该知识可以使用长度为3kl的向量进行表示。接着我们使用KGMi表示第i层隐藏层的知识向量,KGMi∈R3kl×il,其中il表示第i层隐藏层的知识个数,同时也是该层的神经元个数。
2.3隐藏层
由于知识图谱由本体库作为概念上的支撑,隐藏层结构由知识图谱的结构决定,这样可以隐藏层所包含的知识也是由抽象到具体,由浅层到深层,更加符合人类对事物理解的过程。隐藏层的神经元由特征提取部分和知识向量部分所构成,通过在两个部分前分别添加权重系数,在模型训练的过程中,可以学习到针对当前任务不同知识的重要程度。在该过程中,与任务密切相关的知识将会得到更高的权重,与之相反,与任务无关的知识的权重将会被调低。该过程完全由模型自主训练完成,降低了对人工选择知识质量的要求。
如图2所示,具体来说,单一隐藏层的计算过程如式1所示:
output=Ws[nn;kg] (1)
其中Ws为转换矩阵,负责将拼接向量转换为指定长度的特征向量,nn表示neuralnetwork部分,nn使用感知机的结构,其表达方式如式2所示,其中weight1表示神经网络部分在后续拼接向量时的权重,kernel表示神经网络内部的权重,x表示输入向量,biases表示偏置值;kg表示knowledge部分,我们将在该部分引入先验知识,其表达方式如式3所示,其中weight2表示先验知识部分在后续拼接向量时的权重,x表示输入向量,KGM为先验知识矩阵。
nn=weight1·(kernel·x+biases) (2)
kg=weight2·x·KGM (3)
nn仅在普通神经元形式前加入对应的权重系数,kg将输入与知识矩阵相乘,再此基础上加入对应的权重系数。此时,我们分别讨论两个部分的维度,进而调整其计算方式。输入的x对应2.1中的S矩阵,我们使用[batch_s ize,max_len,input_size]表示S矩阵的维度,其中batch_size表示BP反向调参时的批次大小,max_len表示模型输入的最大长度,input_size表示输入句子的长度;k表示该层神经元从输入到输出映射关系,其维度使用[input_size,output_s ize]来表示,其中output_size表示模型输出矩阵的维度;biases、weight1和weight2分别为神经元的偏置向量、每个神经元nn部分的权重和每个神经元kg部分的权重,维度应与神经元个数保持一致,其维度均使用[output_size]表示;KGM为知识矩阵,其维度可以用[output_size,3kg_len]表示,其中kg_len表示TransE方法生成知识向量的维度。因此,式2的维度表示如式4所示:
nn=[output_s ize]·([input_size,output_s ize]·[batch_s ize,max_len,input_size]+[output_size]) (4)
此时我们发现式4维度并不匹配,无法进行点乘计算,因此我们调整下顺序,并求weight1的对角矩阵,将其维度由[output_size]变为[output_s ize,output_size],如式5所示,其中diag表示将weights_nn处理为对角矩阵,weights_nn表示神经网络的权重,其维度表示如式6所示,化简后的输出维度如式7所示:
nn=(input·kernel+biases)·diag(weights_nn) (5)
nn=([batch_size,max_len,input_size]·[input_size,output_size]+[output_s ize])·[output_size,output_s ize] (6)
nn=[batch_s ize,max_len,output_s ize] (7)
式3的维度表示如式8所示:
kg=[output_size]·[batch_s ize,max_len,input_size]·[m,3kg_len](8)
式8维度不匹配,无法进行后续计算,我们同样对其顺序进行调整,并使对角矩阵对weight2进行表示,调整后的形式如式9所示,其维度表示如式10所示,化简后的输出维度如式11所示:
kg=inputs·diag(weightskg)·KGM (9)
kg=[batch_size,max_len,input_size]·[output_s ize,output_s ize]·[output_size,3kg_len] (10)
kg=[batch_s ize,max_len,input_size]·[output_size,3kg_len] (11)
在式11中存在两个关系为“或”的约束条件才能继续计算,约束条件如式11和式12所示,
s.t.input_size=output_size (12)
s.t.input_size=3kg_len (13)
在第一层隐藏层中,input_size表示词向量的维度,由voc_embedding表示,由于voc_embedding为固定值,则构建深度学习模型时式12表示的第一个约束条件难以满足。所以使用式13表示的第二个约束条件,由于模型使用的Embedding方法为BERT模型,所以voc_embedding=768,则3kg_l en=voc_embedding=768,kg_l en=256。则kg应该重写为:kg=inputs·diag(weightskg)·KGMT,其中weightskg表示先验知识的权重,维度为kg=[batch_s ize,max_len,output_s ize]。最终隐藏层的计算方式如式14所示,输出特征向量的维度如式15所示:
output=Ws[(input·kernel+biases)·diag(weights_nn);inputs·diag(weightskg)·KGMT] (14)
output=[batch_s ize,max_len,2output_s ize] (15)
第二层隐藏层中,需要对两处地方进行修改,首先需要满足式12-13所表示的约束条件,为了保证不同层之间的知识矩阵在同一空间中,则kg_len应该保持一致,此时只能使得模型满足式12,为保证input_size=output_s ize,我们在第一层隐藏层之后添加一层全连接层,将维度升至第二层隐藏层的神经元个数,进而满足式12。然后,虽然知识图谱的二跳节点数相较于一跳的节点数更多,但是第一层隐藏层和第二层隐藏层神经元之间是否连接由知识图谱决定,此时可以通过weight矩阵表示神经元之间是否连接,不相连的位置使用Non代替,则该位置不参与模型后续的计算,从而减少模型的参数量。后续隐藏层的构建方式和第二层隐藏层相似。
3实验与分析
3.1数据集
实验采用CCKS2019下的任务一:面向中文电子病历的医疗实体识别及属性抽取。该任务包含两个子任务:医疗命名实体识别和医疗实体及属性抽取,本文选择子任务1对模型进行评估。数据集情况如表1所示:
表1面向中文电子病历的医疗实体情况
3.2知识图谱
实验中的知识图谱选择思知知识图谱,这是一个医疗领域开源疾病的中文知识图谱。该知识图谱包含了482468条三元组,75825个命名实体,222种关系。通过对知识图谱的分析,可以得到知识图谱结构如图3所示。我们从中选择了和任务关联度较高的769种疾病,并将疾病名称作为头实体,一级科室作为关系,疾病作为尾实体,将三者合并为三元组组成第一层隐藏层。接着,我们将769种疾病对应的19821条知识填充进第二层隐藏层。
3.3实验设置及评价指标
使用TransE模型作为知识图谱的向量化表示工具,训练长度为256,epoch为50。接着使用BERT-Base模型作为预料的词向量模型,将输入句子转化为富含一定语义信息的向量。模型训练时使用Adam优化器,初始学习率为0.0001,损失函数为交叉熵损失,batch_size为32,dropout为0.5,迭代次数为20。为了评估模型,本发明使用Precision、Recall和F1得分作为模型的综合评价指标,具体定义如下:
其中TP表示识别正确的实体数,FP表示识别错误的实体数,FN表示未识别出的实体数。P可以表示模型识别正确实体占所有识别出实体的比例,R表示模型识别正确实体占所有实体的比例,F1得分可以视作P和R的调和平均数,是一种更加平衡的评价指标,最终结果使用十次实验的平均值表示。
3.4不同类别命名实体实验结果
表2不同类别命名实体实验结果
由表可知,word2vec作为词向量模型的F1得分整体低于BERT模型作为词向量模型的F1得分。其中word2vec+CRF模型F1得分最低,仅有68.13%,由于word2vec模型产生的词向量仅包含少量浅层语义信息,并且模型缺少特征提取能力,因此结果并不理想。当在上述模型中添加RNN层后,模型具有了一定的特征提取能力,F1得分提高了4.73%。但是由于RNN模型在提取长文本特征时,不但容易出产生梯度消失或梯度保证等问题,而且缺乏对逆向预料特征进行提取,因此在使用BILSTM替换RNN后,LSTM通过门机构确保对当前任务有效的特征得以保留,无效的特诊得以遗忘,BILSTM通过引入双向LSTM提取正向和逆向两种特征,使得模型的F1得分提高了2.39%。
由于BERT模型使用Transformer作为特征提取器,具有更强的特征提取能力,并且预训练的数据更大,使得生产的词向量包含了更丰富的语义信息。所以,当使用BERT模型替代Word2vec模型时,F1得分分别提高了9.16%、9.3%、9.6。KGANN不但使用BERT模型生成词向量,还使用两层的ANN模型作为特征提取器,并依赖于ANN的结构,将知识图谱所包含的领域数据注入到模型中。使得ANN在提取特征时,使用先验知识对特征向量进行补充或约束。因此KGANN模型在仅适用ANN作为特征提取器的情况下F1得分依然取得了85.45%。
从表中的类别可以看出,检查、检验、药物的F1得分明显低于平均值,在Word2vec模型下最为明显,Word2vec+CRF模型中,疾病&诊断类别与检查类别的F1得分相差5.72%,而BERT+CRT模型该差值缩减到4.10%,KGANN将该差值缩减到1.96%。由此可见,KGANN在小规模数据下表现优异。
3.5小规模训练数据结果
为了测试KGANN在小规模数据下的表现,本发明设计了一组对照试验,对照试验分别将训练集缩减至70%、40%、10%,实验结果如图4-6所示。
由图4可知,当训练集缩减至70%时,除了KGANN模型,其他模型的F1得分都有明显的下降,其中基于BERT的模型的F1得分要高于Word2vec模型,KGANN具有最高的F1得分。由图5可知,当训练集缩减至40%时,包括KGANN在内的所有模型的F1得分都有下降。其中基于Word2vec的模型都陷入了过拟合状态,保持较低的F1得分进行迭代。基于BERT的模型略优于基于word2vec的模型,但是依然处于较低的水平。KGANN的F1得分高达83.58。由图6可知,由于数据量过少,所有模型都处于未收敛的状态,但是明显看到KGANN的震荡幅度较大,当模型即将过拟合时,领域知识尝试对模型进行补充和约束,试图使模型摆脱过拟合现象,但是由于数据集过少,使得模型依然难以收敛。
随着数据规模的不断降低,仅依赖特征提取器提取训练数据中的特征很困难,当特征提取器提取特征的能力较弱时,无法有效提取有效特征。当特征提取器提取特征的能力较强时,很容易造成过拟合。因此在处理小样本数据集时,引入先验知识可以有效帮助模型收敛。
4总结
与传统的神经网络方法不同,所提方法完整保留了知识图谱的结构,并基于此结构来构建深度学习模型,最后使用该深度学习模型进行命名实体识别。此举不仅充分保留了知识图谱的结构信息和知识信息,并且给予了模型更高的自主权,使得模型不但可以平衡知识和深度学习模型之间的关系,还可以自主分析哪些知识对当前的任务更具帮助,从而减轻了人们选择知识时的困惑,提高了命名实体识别的效果,并在小规模数据集上具有更好的表现。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (5)
1.一种基于KGANN的命名实体识别方法,其特征在,具体包括以下步骤:
步骤S1,选择适当的领域知识图谱,如果缺少该领域知识图谱,则先手工构建该知识图谱;领域知识图谱和任务领域相匹配;
步骤S2,抽取领域知识图谱结构,该结构作为后续神经网络模型隐藏层的结构,利用领域知识图谱生成知识向量;
步骤S3,对数据进行采集、预处理、标注数据和数据集划分;
步骤S4,构建KGANN神经网络模型,该模型包括输入层、隐藏层和输出层三部分;
其中输入层负责将输入语料转化为词向量,即将S3得到的数据集作为输入,通过BERT模型将数据进行向量化表示;
隐藏层使用S2的知识图谱结构,并且将S2生成的知识向量作为神经元的组成部分;隐藏层的具体层次数和每层所包含的神经元数量均由知识图谱结构决定,每个神经元由特征向量和知识向量两部分组成,特征向量表示传统的神经网络部分,通过训练可以提取语料的语义特征,知识向量表示具体的领域知识,作为任务的有益补充;两部分通过训练过程给予不同的权重,利用该权重将特征向量和知识向量进行拼接,作为最终的特征表示;
输出层包括全连接层和功能实现层,其中全连接层将隐藏层的高维空间降至低维空间,功能实现层由条件随机场构成,负责提供全局最优解,形成全局最优的序列标签,并将识别结果输出;
步骤S5,利用训练集训练S4所构建的神经网络模型,直至模型收敛达到最佳效果时,保存该模型,以便后续使用。
2.根据权利要求1所述的一种基于KGANN的命名实体识别方法,其特征在于:所述知识图谱是在本体库的基础上构建起来的,因此所有知识图谱都具有本体意义上的顶点,依据该顶点作为起始位置,以该节点的一跳节点作为第一层隐藏层,以该节点的二跳节点作为第二层隐藏层,直到覆盖本体库所包含的所有层;同时知识图谱以三元组形式保存,而三元组格式无法直接使用,因此需要对三元组格式的知识进行向量化表示,使用TransE方法构建知识空间,在该高维空间内,所有的三元组知识被转化为唯一且包含知识的特征向量;
具体来说,使用TransE方法将实体和属性转化为长度为kl的特征向量,接着对每一个知识<实体,关系,实体>都转换为对应的3个特征向量,然后将3个特征向量进行拼接,则该知识可以使用长度为3kl的向量进行表示,接着使用KGMi表示第i层隐藏层的知识向量,KGMi∈R3kl×il,其中il表示第i层隐藏层的知识个数,同时也是该层的神经元个数。
3.根据权利要求1所述的一种基于KGANN的命名实体识别方法,其特征在于:所述的S3中,对任务所在领域的数据进行处理,包括四个步骤:采集、预处理、数据标注和数据集划分;其中,
数据采集包含两种途径,首先是领域相关的文件和资料,其次是爬虫爬取领域相关数据;领域相关的文件和资料获取便捷,爬虫的方式则更加灵活,两者均可以获得任务针对性强的数据;预处理包括语料清洗、分句、去除停用词三个步骤,首先语料清洗负责将任务针对性弱、语句不完整、语句存在严重错误的句子进行剔除,由于神经网络是以句子为单位进行识别,因此需要将文章和段落拆分为句子,接着去除无意义的停用词;最后使用人工的方式对数据进行标注,并将其打乱顺序后划分为训练集和测试集。
4.根据权利要求1所述的一种基于KGANN的命名实体识别方法,其特征在于:步骤S4中隐藏层的构建方式如下;
其中,单一隐藏层的计算过程如式1所示:
output=Ws[nn;kg] (1)
其中Ws为转换矩阵,负责将拼接向量转换为指定长度的特征向量,nn表示neuralnetwork部分,nn使用感知机的结构,其表达方式如式2所示,其中weight1表示神经网络部分在后续拼接向量时的权重,kernel表示神经网络内部的权重,x表示输入向量,biases表示偏置值;kg表示knowledge部分,在该部分引入先验知识,其表达方式如式3所示,其中weight2表示先验知识部分在后续拼接向量时的权重,x表示输入向量,KGM为先验知识矩阵
nn=weight1·(kernel·x+biases) (2)
kg=weight2·x·KGM (3)
nn仅在普通神经元形式前加入对应的权重系数,kg将输入与知识矩阵相乘,再此基础上加入对应的权重系数;此时,分别讨论两个部分的维度,进而调整其计算方式,输入的x对应输入的训练数据,使用[batch_size,max_len,input_size]表示S矩阵的维度,其中batch_size表示BP反向调参时的批次大小,max_len表示模型输入的最大长度,input_size表示输入句子的长度;k表示该层神经元从输入到输出映射关系,其维度使用[input_size,output_size]来表示,其中output_size表示模型输出矩阵的维度;biases和weight1和weight2分别为神经元的偏置向量、每个神经元nn部分的权重和每个神经元kg部分的权重,维度应与神经元个数保持一致,其维度均使用[output_size]表示;KGM为知识矩阵,其维度可以用[output_size,3kg_len]表示,其中kg_len表示TransE方法生成知识向量的维度,因此,式2的维度表示如式4所示:
nn=[output_size]·([input_size,output_size]·[batch_size,max_len,input_size]+[output_size]) (4)
由于式4维度并不匹配,无法进行点乘计算,因此调整下顺序,并求weight1的对角矩阵,将其维度由[output_size]变为[output_size,output_size],如式5所示,其中diag表示将weights_nn处理为对角矩阵,weights_nn表示神经网络的权重,其维度表示如式6所示,化简后的输出维度如式7所示:
nn=(input·kernel+biases)·diag(weights_nn) (5)
nn=([batch_size,max_len,input_size]·[input_size,output_size]+[output_size])·[output_size,output_size] (6)
nn=[batch_size,max_len,output_size] (7)
式3的维度表示如式8所示:
kg=[output_size]·[batch_s ize,max_len,input_size]·[m,3kg_len] (8)
式8维度不匹配,无法进行后续计算,同样对其顺序进行调整,并使对角矩阵对weightskg进行表示,调整后的形式如式9所示,其维度表示如式10所示,化简后的输出维度如式11所示:
kg=inputs·diag(weightskg)·KGM (9)
kg=[batch_size,max_len,input_size]·[output_size,output_size]·[output_size,3kg_en] (10)
kg=[batch_size,max_len,input_size]·[output_size,3kg_len] (11)
在式11中存在两个关系为“或”的约束条件才能继续计算,约束条件如式11和式12所示,
s.t.input_size=output_size (12)
s.t.input_size=3kg_len (13)
在第一层隐藏层中,input_size表示词向量的维度,由voc_embedding表示,由于voc_embedding为固定值,则构建深度学习模型时式12表示的第一个约束条件难以满足,所以使用式13表示的第二个约束条件,由于模型使用的Embedding方法为BERT模型,所以voc_embedding=768,则3kg_len=voc_embedding=768,kg_len=256;则kg应该重写为:kg=inputs·diag(weightskg)·KGMT,其中weightskg表示先验知识的权重,维度为kg=[batch_size,max_len,output_size],最终隐藏层的计算方式如式14所示,输出特征向量的维度如式15所示:
output=Ws[(input·kernel+biases)·diag(weights_nn);inputs·diag(weightskg)·KGMT] (14)
output=[batch_size,max_len,2output_size] (15)
第二层隐藏层中,需要对两处地方进行修改,首先需要满足式12-13所表示的约束条件,为了保证不同层之间的知识矩阵在同一空间中,则kg_len应该保持一致,此时只能使得模型满足式12,为保证input_size=output_size,在第一层隐藏层之后添加一层全连接层,将维度升至第二层隐藏层的神经元个数,进而满足式12;然后,虽然知识图谱的二跳节点数相较于一跳的节点数更多,但是第一层隐藏层和第二层隐藏层神经元之间是否连接由知识图谱决定,此时通过weight矩阵表示神经元之间是否连接,不相连的位置使用Non代替,则该位置不参与模型后续的计算,从而减少模型的参数量,后续隐藏层的构建方式和第二层隐藏层相同。
5.根据权利要求1所述的一种基于KGANN的命名实体识别方法,其特征在于:所述的步骤S5中,当模型构建好以后,其中的变量由符合截断正态分布的随机数初始化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732903.9A CN113378574B (zh) | 2021-06-30 | 2021-06-30 | 一种基于kgann的命名实体识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110732903.9A CN113378574B (zh) | 2021-06-30 | 2021-06-30 | 一种基于kgann的命名实体识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113378574A true CN113378574A (zh) | 2021-09-10 |
CN113378574B CN113378574B (zh) | 2023-10-24 |
Family
ID=77579976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110732903.9A Active CN113378574B (zh) | 2021-06-30 | 2021-06-30 | 一种基于kgann的命名实体识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113378574B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114118779A (zh) * | 2021-11-24 | 2022-03-01 | 武汉大学 | 一种基于kgann的面向互联网舆情事件的企业风险识别方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019024704A1 (zh) * | 2017-08-03 | 2019-02-07 | 阿里巴巴集团控股有限公司 | 实体标注方法、意图识别方法及对应装置、计算机存储介质 |
CN110019839A (zh) * | 2018-01-03 | 2019-07-16 | 中国科学院计算技术研究所 | 基于神经网络和远程监督的医学知识图谱构建方法和系统 |
CN110866121A (zh) * | 2019-09-26 | 2020-03-06 | 中国电力科学研究院有限公司 | 一种面向电力领域知识图谱构建方法 |
CN111813950A (zh) * | 2020-05-20 | 2020-10-23 | 淮阴工学院 | 一种基于神经网络自适应寻优调参的建筑领域知识图谱构建方法 |
US20210012199A1 (en) * | 2019-07-04 | 2021-01-14 | Zhejiang University | Address information feature extraction method based on deep neural network model |
CN112733541A (zh) * | 2021-01-06 | 2021-04-30 | 重庆邮电大学 | 基于注意力机制的BERT-BiGRU-IDCNN-CRF的命名实体识别方法 |
-
2021
- 2021-06-30 CN CN202110732903.9A patent/CN113378574B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019024704A1 (zh) * | 2017-08-03 | 2019-02-07 | 阿里巴巴集团控股有限公司 | 实体标注方法、意图识别方法及对应装置、计算机存储介质 |
CN110019839A (zh) * | 2018-01-03 | 2019-07-16 | 中国科学院计算技术研究所 | 基于神经网络和远程监督的医学知识图谱构建方法和系统 |
US20210012199A1 (en) * | 2019-07-04 | 2021-01-14 | Zhejiang University | Address information feature extraction method based on deep neural network model |
CN110866121A (zh) * | 2019-09-26 | 2020-03-06 | 中国电力科学研究院有限公司 | 一种面向电力领域知识图谱构建方法 |
CN111813950A (zh) * | 2020-05-20 | 2020-10-23 | 淮阴工学院 | 一种基于神经网络自适应寻优调参的建筑领域知识图谱构建方法 |
CN112733541A (zh) * | 2021-01-06 | 2021-04-30 | 重庆邮电大学 | 基于注意力机制的BERT-BiGRU-IDCNN-CRF的命名实体识别方法 |
Non-Patent Citations (2)
Title |
---|
张志剑: "基于深度学习的高血压知识图谱构建研究", 万方学位论文库 * |
曾平: "基于文本特征学习的知识图谱构建技术研究", 万方学位论文库 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114118779A (zh) * | 2021-11-24 | 2022-03-01 | 武汉大学 | 一种基于kgann的面向互联网舆情事件的企业风险识别方法 |
CN114118779B (zh) * | 2021-11-24 | 2024-05-10 | 武汉大学 | 一种基于kgann的面向互联网舆情事件的企业风险识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113378574B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110083705B (zh) | 一种用于目标情感分类的多跳注意力深度模型、方法、存储介质和终端 | |
CN108681539B (zh) | 一种基于卷积神经网络的蒙汉神经翻译方法 | |
CN111160467B (zh) | 一种基于条件随机场和内部语义注意力的图像描述方法 | |
CN112579778B (zh) | 基于多层次的特征注意力的方面级情感分类方法 | |
CN109189925A (zh) | 基于点互信息的词向量模型和基于cnn的文本分类方法 | |
CN108549658B (zh) | 一种基于语法分析树上注意力机制的深度学习视频问答方法及系统 | |
CN110502753A (zh) | 一种基于语义增强的深度学习情感分析模型及其分析方法 | |
CN112487143A (zh) | 一种基于舆情大数据分析的多标签文本分类方法 | |
CN113435211B (zh) | 一种结合外部知识的文本隐式情感分析方法 | |
CN108628935A (zh) | 一种基于端到端记忆网络的问答方法 | |
CN110991190B (zh) | 一种文档主题增强系统、文本情绪预测系统和方法 | |
CN115048447B (zh) | 一种基于智能语义补全的数据库自然语言接口系统 | |
CN112199504B (zh) | 一种融合外部知识与交互注意力机制的视角级文本情感分类方法及系统 | |
CN111858940A (zh) | 一种基于多头注意力的法律案例相似度计算方法及系统 | |
CN111125333A (zh) | 一种基于表示学习与多层覆盖机制的生成式知识问答方法 | |
Li et al. | Biomedical named entity recognition based on the two channels and sentence-level reading control conditioned LSTM-CRF | |
CN115879546A (zh) | 一种复合神经网络心理医学知识图谱构建方法及系统 | |
CN113378574A (zh) | 一种基于kgann的命名实体识别方法 | |
CN114328866A (zh) | 应答流畅准确的强拟人化智能对话机器人 | |
CN112199503B (zh) | 一种基于特征增强的非平衡Bi-LSTM的中文文本分类方法 | |
CN113868374A (zh) | 基于多头注意力机制的图卷积网络生物医学信息提取方法 | |
CN116543289B (zh) | 一种基于编码器-解码器及Bi-LSTM注意力模型的图像描述方法 | |
Xia et al. | Study of text emotion analysis based on deep learning | |
CN107622047A (zh) | 一种设计决策知识的提取和表达方法 | |
Yao | [Retracted] Deep Learning‐Based Text Sentiment Analysis in Chinese International Promotion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |