CN114492443A - 训练实体识别模型的方法及***和实体识别方法及*** - Google Patents
训练实体识别模型的方法及***和实体识别方法及*** Download PDFInfo
- Publication number
- CN114492443A CN114492443A CN202210078338.3A CN202210078338A CN114492443A CN 114492443 A CN114492443 A CN 114492443A CN 202210078338 A CN202210078338 A CN 202210078338A CN 114492443 A CN114492443 A CN 114492443A
- Authority
- CN
- China
- Prior art keywords
- entity
- sentence
- loss
- match
- vector
- 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.)
- Pending
Links
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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- 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
- G06N3/045—Combinations of networks
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Animal Behavior & Ethology (AREA)
- Databases & Information Systems (AREA)
- Machine Translation (AREA)
Abstract
公开了一种用于训练实体识别模型的方法,包括:构造训练集;以及将该训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出,基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失;至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失;确定该实体识别模型的总损失,该总损失为该序列标注损失和该实体匹配损失的加权和;以及迭代执行训练以最小化该实体识别模型的总损失,从而得到经训练的实体识别模型。本申请还涉及相对应的实体识别方法以及相关***、装置和介质。本方案能够全面、高效地识别出包括隐喻实体在内的感兴趣实体。
Description
技术领域
本申请涉及句子中的实体识别,尤其涉及用于训练实体识别模型的方法和实体识别方法及相关***、装置和介质。
背景技术
命名实体识别技术已经得到广泛应用。在命名实体识别技术中,机器学习模型已经被用于识别文本(如句子)中的命名实体。命名实体识别技术又可称为“专名识别”,可识别出文本中的人名、地名、机构名、专有名词等。命名实体识别技术可具有许多应用,例如用于文本分析、问答对话、机器翻译等等。
然而,在许多情况下,文本(如句子)中可能并不包括实体本身。例如,对于“我点的饭配送超时太久了”这一句子,其所指向的实体可能是某网络订餐服务,然而该句子中本身并不包括该网络订餐服务的名称。本领域现有的实体识别方案尚未能解决这一问题。实际上,现有技术中可能从未认识到这一问题的存在。
因此,需要能够准确识别更加全面地识别文本中的实体的方案。
发明内容
为了克服现有技术的缺陷,本说明书的一个或多个实施例使用基于K-BERT的模型来执行序列标注和实体匹配两种任务,从而能够全面、高效地识别出文本中的实体,包括显式感兴趣实体以及隐喻实体。
本说明书的一个或多个实施例通过以下技术方案来实现其上述目的。
在一个方面中,提供了一种1.一种用于训练实体识别模型的方法,包括:
构造训练集,其中所述训练集包括多个训练样本d={Sinput,XNER,XTER},其中Sinput为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签,所述隐喻实体标签用于表示该句子的隐喻实体,其中隐喻实体是该句子实际指向、但未出现在该句子中的实体;
使用所述训练集对所述实体识别模型执行训练,所述实体识别模型基于经预训练的K-BERT模型,其中对所述实体识别模型执行训练包括:
将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出,
基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match;
确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match,其中α指示实体匹配损失的权重;以及
迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。
优选地,与所述句子相关联的知识图谱也被输入到所述实体识别模型。
优选地,确定该句子的实体匹配损失Loss_match包括:
使用与所述知识图谱相关联的图神经网络来生成该句子的隐喻实体向量;
确定所述句子的实体匹配预测输出与该隐喻实体向量之间的向量距离;以及
确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比。
优选地,确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的随机实体,其中所述随机实体是随机获取的实体;
使用所述图神经网络来生成该句子的随机实体向量;以及
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和随机实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该随机实体向量之间的向量距离成反比。
优选地,确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体,该知识嵌入实体是基于所述知识图谱嵌入到该句子中的不同于该隐喻实体的实体;
使用所述图神经网络来生成该句子的知识嵌入实体向量;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和知识嵌入实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比。
优选地,确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体和随机实体,该知识嵌入实体是基于所述知识图谱嵌入到该句子中的不同于该隐喻实体的实体,该随机实体是随机获取的实体;
使用所述图神经网络来生成该句子的随机实体向量和知识嵌入实体向量;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体、知识嵌入实体和随机实体来确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比,和该实体匹配预测输出与该随机实体向量之间的向量距离成反比,且和该知识嵌入实体向量与该随机实体向量之间的向量距离成反比。
优选地,所述图神经网络为图卷积网络。
优选地,在初始化所述图神经网络时,使用所述实体识别模型的K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。
在另一方面,公开了一种用于实体识别的方法,包括:
获取待处理的句子;
使用基于如本文所述的方法训练的实体识别模型来对所述待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别的实体;
如果所述实体识别模型没有识别出实体,则输出所述实体识别模型的实体匹配预测输出;
使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量;以及
将与所检索出的实体向量相对应的实体作为所识别的实体。
优选地,所述实体向量库是通过对与所述输入句子相关联的知识图谱执行向量化得到的。
优选地,所述实体向量库是通过图神经模型对所述输入句子执行向量化得到的,所述图神经模型在训练所述实体识别模型的同时被迭代更新。
优选地,使用所述实体匹配预测输出在实体向量库中执行检索是通过FAISS库实现的。
在另一方面,公开了一种用于训练实体识别模型的***,包括:
训练集构造模块,用于构造训练集,其中所述训练集包括多个训练样本d={Sinput,XNER,XTER},其中Sinput为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签,所述隐喻实体标签用于表示该句子的隐喻实体,其中隐喻实体是该句子实际指向、但未出现在该句子中的实体;以及
实体识别模型训练模块,用于使用所述训练集对所述实体识别模型执行训练,所述实体识别模型基于经预训练的K-BERT模型,其中所述实体识别模型训练模块包括:
预测模块,用于将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出,
损失计算模块,用于基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence;至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match;以及确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match,其中α指示实体匹配损失的权重;以及
迭代训练模块,用于迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。
优选地,与所述句子相关联的知识图谱也被输入到所述实体识别模型。
优选地,所述损失计算模块包括实体向量化模块,所述实体向量化模块用于使用图神经网络将实体向量化为实体向量。
优选地,在初始化所述图神经网络时,使用所述实体识别模型的K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。
在另一方面,公开了一种用于实体识别的***,包括:
句子获取模块,用于获取待处理的句子;
实体识别模型,用于对所述待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别的实体,而如果所述实体识别模型没有识别出实体,则输出所述实体识别模型的实体匹配预测输出;
检索模块,用于使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量,以及将与所检索出的实体向量相对应的实体作为所识别的实体。
在又一方面,公开了一种用于训练实体识别模型的装置,包括:
存储器;以及
处理器,所述处理器被配置成执行如上所述的用于训练识别实体模型的方法。
在又一方面,公开了一种用于执行实体识别的装置,包括:
存储器;以及
处理器,所述处理器被配置成执行用于执行实体识别的方法。
在又另一方面中,提供了一种存储指令的计算机可读存储介质,该指令当被计算机执行时,使所述计算机执行上述方法。
与现有技术相比,本说明书的一个或多个实施例能够实现以下技术效果中的一者或多者:
不仅能够识别显式感兴趣实体,还能够识别出隐喻实体;
能够执行端到端的训练,在包含隐喻实体时,无需重新预测,而是可以直接使用所得到的匹配实体向量执行向量检索,从而大大提升了效率。
附图说明
以上发明内容以及下面的具体实施方式在结合附图阅读时会得到更好的理解。需要说明的是,附图仅作为所请求保护的发明的示例。在附图中,相同的附图标记代表相同或类似的元素。
图1示出根据本说明书实施例的用于执行实体识别模型的多任务学习的过程的非常概括性的示意框图。
图2示出知识图谱的具体示例的一部分。
图3示出根据本说明书实施例的使用知识图谱来扩充句子的示例的示意图。
图4示出根据本说明书实施例的序列标注任务的过程的示意图。
图5示出根据本说明书实施例的实体匹配任务的过程的示意图。
图6示出根据本说明书实施例的总模型的损失的示意图。
图7示出根据本说明书实施例的用于训练实体识别模型的示例方法的示意流程图。
图8示出根据本说明书实施例的利用该实体识别模型来识别实体的方法的流程图。
图9示出根据本说明书实施例的用于训练实体识别模型的示例***的示意图。
图10示出根据本说明书实施例的用于实体识别的示例***的示意图。
图11示出用于实现根据本说明书一个或多个实施例的***的装置的示意框图。
具体实施方式
以下具体实施方式的内容足以使任何本领域技术人员了解本说明书的一个或多个实施例的技术内容并据以实施,且根据本说明书所揭露的说明书、权利要求及附图,本领域技术人员可轻易地理解本说明书的一个或多个实施例相关的目的及优点。
如上文所述,命名实体识别技术已被应用于信息抽取、关系抽取、句法分析、信息检索、问答***、机器翻译等等各种场景。然而,目前的命名实体识别技术通常仅能识别出文本中出现的实体(或其近义词)。
在实际应用中,在许多情况下,文本(如句子)中可能并不包括实体本身。例如,在智能客服、自动化问答等场景中,客户的发言中可能没有出现实体本身。例如在智能客服场景中,用户可能没有确切描述出具体出问题的服务/产品,而仅仅描述了出现的现象及问题,因此需要根据用户的描述,推理识别出用户反馈的具体功能/产品。
一个具体的示例是某网络订餐服务,客户可能在反馈中发表“我点的饭配送超时太久了”这一评论。该评论所指向的是该网络订餐服务,但该评论中并不存在该网络订餐服务的名称,甚至不存在该网络订餐服务的近义词。在这种情况下,使用传统的命名实体识别技术可能难以准确识别出该评论所指向的实体。
为便于描述,下面介绍本说明书实施例中可能用到的三种实体:隐喻实体、知识嵌入实体和随机实体。
显式实体,是指句子中出现的实体。但应领会,句子中可能出现多个实体,其中一些可能是用户感兴趣的,而另一些实体可能是用户不感兴趣的;甚至在一些情况下,所有显式实体可能都不是用户感兴趣的。在后文中,可将用户感兴趣的显示实体称为“显式感兴趣实体”,而用户不感兴趣的实体可被称为“显式其他实体”。
隐喻实体,是指句子实际指向、但未出现在该句子中的实体。在大多数情况下,隐喻实体存在于基于所述知识图谱嵌入到句子的实体中。需要领会的是,此处的“句子实际指向的实体”是指与该句子有关的,用户所感兴趣的实体。其具体为哪个实体可由用户根据实际需求通过标注来确定。因此,隐喻实体也可被称为“隐式感兴趣实体”。
知识嵌入实体,是指基于知识图谱嵌入到该句子中的、不同于该隐喻实体的实体。
随机实体,是指随机获取的实体。在多数情况下,随机实体是指没有嵌入到该句子中的实体,即在经知识融入的句子中不存在的实体。在许多情况下,该随机实体可以是从知识图谱中随机选择的,除嵌入到句子中的实体外的实体。在另一些情况下,该随机实体可独立于知识图谱而被生成。
以“我点的饭配送超时太久了,好在味道不错”这个句子为例,存在显式实体“我”、“饭”、“配送”、“超时”、“味道不错”等等。取决于具体应用(或取决于用户的兴趣),这些显式实体中的一个或多个可能是用户感兴趣的实体(即显式感兴趣实体),而另一些实体可能是用户不感兴趣的实体(即显式其他实体),或者也可能都是用户不感兴趣的实体。在本说明书的示例应用中,这些显式实体都不是显式感兴趣实体,而是显式其他实体。
通过知识融入来对该句子进行扩充并得到知识融入的句子之后,该句子变成“我点的饭配送超时饿了么快递太久了,好在味道不错饿了么口碑。”通过扩充,有三个实体被融入到句子中,即“饿了么”、“快递”、“口碑”。在本说明书的示例应用中,仅“饿了么”是感兴趣的实体。因此,“饿了么”是隐式感兴趣实体,即隐喻实体;而“快递”、“口碑”则是知识嵌入实体。任何其它实体可以是随机实体。
本说明书提供了用于全面、高效地执行实体识别的方案。具体而言,本方案通过以训练融合序列匹配任务和实体匹配任务的多任务学习方式来训练融入知识图谱的K-BERT模型,并在必要时执行向量检索,能够准确且高效地识别出感兴趣实体,而且能够识别出隐喻实体。
参见图1,其示出根据本说明书实施例的用于执行实体识别模型的多任务学习的过程的非常概括性的示意框图。
如图1所示,所输入的句子102连同所使用的知识图谱104一起,被输入到K-BERT模型106。通常,该K-BERT模型106可以是经预训练的K-BERT模型。例如,可使用大规模开放语料库来对该K-BERT模型进行预训练,以得到经预训练的K-BERT模型。这样的大规模开放语料库的示例可包括WikiZh、WebtextZh等。
随后,可使用K-BERT模型106执行序列标注任务110。
此外,还可使用该K-BERT模型并使用相关联的实体执行实体匹配任务112。
通过序列标注任务110得到的序列标注损失与通过实体匹配任务112得到的实体匹配损失组合起来(例如通过加权求和),得到实体识别模型的总损失。通过迭代序列,使得该总损失最小化,可以得到经训练(或称经微调)的实体识别模型。
应当领会,图1仅仅是为了说明本说明书实施例的方案的大概框架,其示出了非常粗略甚至不太准确的框图,其具体细节应参考下文的描述。
图1的具体细节将在下文参考图4和图5进一步详细描述。
图1中的知识图谱目前已被广泛应用。图2示出了知识图谱(Knowledge Graph)的具体示例的一部分。知识图谱是一种使用图形结构化数据模型或拓扑结构来将知识聚集起来的知识库。如图2所示,知识图谱可包括节点和边,其中节点代表各种实体或概念,而边可代表这些实体或概念之间的关联。在一些示例中(图2未示出),边可具有具体含义(例如可指示实体间的隶属关系等等)。知识图谱的示例可包括CN-DBpedia、MedicalKG、HowNet等。
优选地,可使用针对具体应用领域(application domain)的知识图谱。例如,在饿了么网络订餐服务的应用场景中,知识图谱可包括与该网络订餐服务相关联的实体或概念。例如,快递可与退钱和配送时效相关联,而退钱和配送时效均与饿了么相关联。此外,额度调整可与花呗相关联,而花呗可能造成页面卡顿等等。
下面首先简单介绍一下本申请中所使用的K-BERT模型。K-BERT模型将知识图谱融入BERT模型,从而能够帮助模型更准确地理解语言知识。具体而言,K-BERT模型采用了语句树的形式向输入句子中融入知识,并在预训练模型的表示空间中获取向量表示。K-BERT模型主要包括四个组件:知识层(Knowledge layer)、嵌入层(Embedding layer)、查看层(Seeing layer)和掩码转换器编码器(Mask-Transformer Encoder)。关于K-BERT模型的更多细节可参看Weijie Liu等人所发表的论文《K-BERT:使用知识图谱赋能语言表示(K-BERT:Enabling Language Representation with Knowledge Graph)》(下称“K-BERT论文”)。通过援引将该论文的内容全部纳入于此,且在此不再详细描述K-BERT的更多细节。
参见图3,其示出了根据本说明书实施例的使用知识图谱来扩充句子的示例的示意图。如以上提及的K-BERT论文中所述,可在K-BERT模型的知识层中用知识图谱来扩充输入句子Sinput={s0,s1,…si,…,sn}(其中si为第i个字符),并最终得到经知识融入的句子Sknowledge={s0,s1,…si{(ri0,si0),…,(rik,sik)},…,sn},其中sik表示与si连接的第k个实体(即知识图中与实体si的节点连接的第k个节点),而rik表示实体sik与实体si之间的关系(即知识图中节点si与节点sik之间的边)。
在图3的示例中,假设正在处理输入句子“我点的饭配送超时太久了,好在味道不错。”在融入如图2所示的知识图谱之后,由于“配送超时(即配送时效)”与“饿了么”、“快递”相连接,“味道不错(即味道评价)”与“饿了么”、“口碑”相连接,所以该句子被转换为融入了知识的句子树“我点的饭配送超时饿了么快递太久了,好在味道不错饿了么口碑。”。可以看出,通过将相连接的实体嵌入到句子中,得到了融入了知识的句子。该融入了知识的句子树在下文中可被称为“经知识融入的句子”。需要注意,虽然在图3中仅示出了所融入的内容,而并未呈现为句子树的形式,但在实际操作中,其可被处理为句子树结构。在输入句子中融入知识的过程通常由K-BERT模型的知识层来完成。上述手段的具体细节可参考K-BERT模型的知识嵌入层的实现。
随后,经知识融入的句子可被K-BERT模型的后续模块处理。具体而言,经知识融入的句子将被输入到嵌入层和查看层,且嵌入层和查看层的输出又被输入到掩码转换器编码器从而输出经知识融入的句子的句子表示,该句子表示可被用来执行各种任务,如分类、序列标注,包括如本说明书实施例所述的实体识别等等。
根据在该K-BERT论文中所讨论的原理,可采用与上文不同的方式来使用知识图谱扩充句子以得到经知识融入的句子,其具体细节在此不再赘述。
参见图4,其示出了根据本说明书实施例的序列标注任务的过程的示意图。该过程可与图1中的左半部分结合起来看。
通过上文中提及的K-BERT论文描述,可知晓如何使用K-BERT模型来得到输入句子的序列标注预测输出,并进一步通过所得到的向量来执行序列标注任务。在下文中,对此过程进行简单介绍。在实体识别模型的训练过程中,该序列标注任务用于得到序列标注任务损失,该序列标注任务损失构成实体识别模型的总损失的一部分。在用实体识别模型执行实体识别任务的过程中,该序列标注任务用于执行命名实体识别,从而得到待处理的句子的显式感兴趣实体。
在下文中,具体描述根据本说明书实施例的实体识别模型的训练及使用。该实体识别模型是基于K-BERT的模型(如下文描述的基于K-BERT的模型406和基于K-BERT的模型506)。该K-BERT模型可以是经过预训练的K-BERT模型。具体而言,该实体识别模型以K-BERT模型为基础,并结合用于执行具体任务(如序列标注、实体匹配)等的其它层,来实现。
在下文中,实体识别模型和基于K-BERT的模型可互换使用。
如图4所示,输入句子402和知识图谱404被输入到基于K-BERT的模型406。
该基于K-BERT的模型以K-BERT为基础,以及可能的其它处理层,以便执行具体的任务,如Sigmoid层、Softmax层、LTSM层、CRF层等。该模型406可基于知识图谱404来处理该输入句子402,并生成序列标注预测输出408,该序列标注预测输出408为该输入句子的所预测的序列标注表示。例如,可通过K-BERT模型得到该输入句子的预测向量表示,并且通过LTSM层或CRF层等得到该输入句子的序列标注表示,作为该输入句子的序列标注预测输出408。
为了针对序列标注任务(在本实施例中具体为命名实体识别(NER)任务)来执行训练,可首先对训练集中的样本进行序列标注。可使用任何合适的标注策略或标注格式来对该输入句子执行用于命名实体识别的序列标注。通过这种方式可以得到经标注的序列标注样本dNER={Sinput,XNER},其中Sinput为输入句子{s0,s1,…si,…,sn},而XNER为对该经知识融入的句子进行命名实体标注后的标签{x0,x1,…xi,…,xn},其中xi为第i个字符的命名实体标注标签。
例如,参见图3中所示的示例,对于句子“在饿了么点了鸡排饭”,其经扩充并经添加开始符号(token)“[CLS]”和结束符号“[SEP]”的序列为“[CLS]在饿了么点了鸡排饭[SEP]”,其经命名实体标注后的标签XNER为{O O B-T I-T I-T O O B-T I-T I-T O}。虽然在此示例中采用BIO格式进行标注,但也可采用其它适用的标注格式。
可使用本领域技术人员知晓的任何方式来针对命名实体识别对样本中的句子进行序列标注,以标注出显式感兴趣实体。针对命名实体识别来对输入句子的进行标注的具体细节是本领域所熟知的,在此不再赘述。注意,可不标注句子中的所有命名实体,而仅标注感兴趣的实体。例如,在“在饿了么点了鸡排饭”的示例中,可仅标注“饿了么”,而不标注“鸡排饭”,即经命名实体标注后的标签XNER为{O O B-T I-T I-T O O O O O O}。通过这种方式,可仅识别出感兴趣的实体。
另外,假如输入句子中的所有实体均不是感兴趣实体,即均是“显式其他实体”,则经命名实体标注后的标签XNER中的元素可均为O。例如,在“我点的饭配送超时太久了,好在味道不错。”的示例中,假设该句子中没有感兴趣的实体(实际感兴趣的为隐喻实体“饿了么”),则该句子的标签可均为O,即XNER={O O O……}。
随后,可基于该序列标注预测输出408与该输入句子的序列标注标签412,来确定该句子的序列标注损失410。该序列标注损失例如可被表示为Loss_sequence。在一个示例中,序列标注损失Loss_sequence可被定义如下:
Loss_sequence=cross_entropy_loss(label,target)
其中label为序列标注标签412,而target为该输入句子的由BERT模型输出的序列标注预测输出408。其中cross_entropy_loss为交叉熵损失函数,交叉熵损失函数是本领域技术人员已知的,例如其可在多个公开库(如Pytorch)中找到(CrossEntropyLoss()函数)且可被直接调用,在此不再赘述。
可以领会,上面的交叉熵损失函数仅是示例而非限制,可采用本领域技术人员可构想的任何其它适用的损失函数来计算序列损失标注。
在传统的单任务训练过程中,只需要将该序列标注损失Loss_sequence最小化,即可得到针对该序列标注任务的经训练的K-BERT模型。
然而,在执行多任务学习时,并非简单地单独将该序列标注损失Loss_sequence最小化,而是要将多个任务的总损失最小化,其具体过程将在下文中描述。
需要指出的是,上述对序列标注任务的描述仅仅是为了便于理解,而不是为了限制本发明的范围,可采用与上述方式不同的任何适当方式来利用K-BERT模型执行序列标注任务并生成相应的序列标注损失。
参见图5,其示出了根据本说明书实施例的实体匹配任务的过程的示意图。该过程可与图1中的右半部分结合起来看。
在实体识别模型的训练过程中,该序列标注任务用于得到序列标注任务损失,该序列标注任务损失构成实体识别模型的总损失的一部分。在用实体识别模型执行实体识别任务的过程中,该序列标注任务用于执行命名实体识别,从而得到待处理的句子的显式感兴趣实体。
下面,通过多个示例来介绍实体匹配任务。
第一示例
输入句子502和知识图谱504被输入到基于K-BERT的模型506中(例如输入到K-BERT模型中)。类似地,得到实体匹配预测输出508。具体而言,该实体匹配预测输出508可以是由K-BERT模型输出的该句子的向量表示。在实际实现中,该句子的向量表示通常可以取该句子的第一个符号的向量表示,即“[CLS]”的向量表示。需要理解,可采用本领域技术人员可构想的任何方式来获得输入句子502的输出向量,作为实体匹配预测输出508。
如图5所示,为了针对实体识别任务来执行训练,可首先对训练集中的样本进行隐喻实体标注以获得其隐喻实体标签。
对隐喻实体的标注可采用多种方式进行。
在一种实现中,可人工对输入句子进行隐喻实体标注。例如,可人工将隐喻实体嵌入到输入句子中,并对所嵌入的隐喻实体进行标注。通常,该人工标注可由专门人员进行。通常,该专门人员知晓该隐喻实体与该输入句子中的实体的知识图谱关联,因此在进行人工标注时,所确定的隐喻实体可以是知识图谱中与该输入句子中的实体相关的实体。例如,在“我点的饭配送超时太久了,好在味道不错。”的示例中,该专门人员知晓“配送超时”与“饿了么”以及“快递”在知识图谱中的关联,并相应地进行标注。在一些示例中,该专门人员可使用对知识图谱的参考(例如查询知识图谱)来协助进行标注。
在另一实现中,可基于规则对输入句子进行隐喻实体标注。例如,可基于知识图谱中的关联,且根据特定的感兴趣实体库来进行标注。例如,在“我点的饭配送超时太久了,好在味道不错。”的示例中,通过自动查询知识图谱,能够得到“饿了么”、“快递”和“口碑”这些实体。随后,可在感兴趣实体库中进行检索。例如,可检索到上述实体中“饿了么”在感兴趣实体库中,此时可自动将“饿了么”标注为该句子的隐喻实体。
通过对输入句子进行隐喻实体标注,能够得到隐喻实体512。
通过这种方式可以得到经隐喻实体标注的实体匹配样本dER={Sinput,XTER},其中Sinput为输入句子{s0,s1,…si,…,sn},而XTER为该输入句子的隐喻实体标签。
隐喻实体标签可采用任何适当的形式。例如,该隐喻实体标签可以为该输入句子的隐喻实体510的名称。例如,参见图3中所示的示例,对于句子“我点的饭配送超时太久了……”,其经扩充并经添加开始符号(token)“[CLS]”和结束符号“[SEP]”(图3中未示出)的句子为“[CLS]我点的饭配送超时饿了么快递太久了……”,其经隐喻实体标注后的隐喻实体标签XTER为“饿了么”,即XTER=“饿了么”。
隐喻实体标签也可采用本领域技术人员可构想的其它形式。例如,可采用与序列标注常用的标签类似的形式,只是所标注的是经知识融入的句子。例如,对于图3中的“[CLS]我点的饭配送超时饿了么快递太久了……”的示例,其隐喻实体标签可以是“O O OO O O O O O B-T I-T I-T O O O O O……”,即将“饿了么”标注为感兴趣实体的序列表示。也就是说,即XTER={O O O O O O O O O B-T I-T I-T O O O O O……}。
可以领会,不论采用哪种标签形式,通过隐喻实体标签510,可以得到隐喻实体512。
随后,通过图神经网络518来处理该隐喻实体512,以将该隐喻实体512向量化,从而获得该隐喻实体标签的隐喻实体向量520。利用知识图谱GCN来对实体进行向量化的具体过程将在下文中详细描述。
应当领会,在通过基于K-BERT的模型506获得该输入句子502的实体匹配预测输出508,并得到与该输入句子502的隐喻实体512的隐喻实体向量520之后,可计算该实体匹配任务的实体匹配损失526,该实体匹配损失例如可被表示为Loss_match。在一个示例中,该实体匹配损失Loss_match可按以下方式计算:
Loss_match=distance(e_i,e_t)(公式1)
其中e_i为由K-BERT模型输出的该句子的实体匹配预测输出508(其为由K-BERT模型输出的该句子的向量表示),而e_t为该句子的隐喻实体向量520。其中distance为向量距离函数,用于比较向量间的向量距离,向量距离越大,该函数的值越大。也就是说,在该第一示例中,该句子的实体匹配损失Loss_match和该实体匹配预测输出508与该隐喻实体向量之间的向量距离成正比。
可采用各种方式来实现上述向量距离函数distance,例如可计算两个向量间的余弦距离、欧式距离、皮尔逊相关系数、杰卡德相似系数等等。
可以看出,上述损失函数的计算方式使得句子的实体匹配预测输出与隐喻实体向量尽量相似,从而使得所预测的实体尽量与隐喻实体相似。
第二示例
在优选示例中,在确定实体匹配损失时,除了隐喻实体512之外,还可引入知识嵌入实体516。知识嵌入实体是指是基于知识图谱被嵌入到句子中的不同于隐喻实体的实体。
与隐喻实体通过隐喻实体标签来标注不同,无需针对知识嵌入实体进行标注,而是可由该实体识别模型基于算法自动确定知识嵌入实体。
例如,在确定了嵌入句子中的实体之后,将嵌入句子中的实体中排除掉被标注的隐喻实体512,即可得到知识嵌入实体516。优选地,可通过K-BERT模型的知识层来确定将哪些实体嵌入了句子,如在上文中已描述的。
在确定了知识嵌入实体之后,可任选其中一个知识嵌入实体放入一样本中作为知识嵌入实体516。通过这种方式,可生成多个样本。
随后,类似地,知识嵌入实体516同样可通过图神经网络518来处理,以将该知识嵌入实体516向量化,从而获得该知识嵌入实体516的知识嵌入实体向量524。利用知识图谱GCN来对实体进行向量化的具体过程将在下文中详细描述。
在此优选示例中,该实体匹配损失Loss_match可按以下方式计算:
Loss_match=distance(e_i,e_t)–β*distance(e_i,e_s),(公式2)
其中e_s为知识嵌入实体向量524,β为权重参数。对于β的取值可使用本领域已知的任何方式来实现。
可以看出,上述损失函数意在使得句子的实体匹配预测输出与隐喻实体向量尽量相似,并使得实体匹配预测输出与知识嵌入实体向量尽量不相似,从而使得所预测的实体尽量与隐喻实体相似,而与知识嵌入实体不相似。也就是说,在该第二示例中,该句子的实体匹配损失Loss_match和该实体匹配预测输出508与该隐喻实体向量之间的向量距离成正比,而和该实体匹配预测输出508与知识嵌入实体向量524之间的向量距离成反比。
引入知识嵌入实体增大了信息量,使得训练后的模型能够区分知识图谱中的隐喻实体和知识嵌入实体。
第三示例
在确定实体匹配损失时,除了隐喻实体516之外,还可引入随机实体514。
知识嵌入实体是指是根据知识图谱被嵌入到句子中的除隐喻实体之外的实体。
然而,无需针对知识嵌入实体进行标注,而是可由模型基于算法自动确定随机实体514。
顾名思义,随机实体是随机获取的实体,例如,该随机实体例如可以是该知识图谱中除隐喻实体和知识嵌入实体之外的实体。例如,在图2和图3的示例中,已经确定“饿了么”为隐喻实体,此时可确定“快递”以及“口碑”为知识嵌入实体,“花呗”、“乘车码”等等为随机实体。
替代地,该随机实体可以是用其它方式随机构造的实体,例如其可以是不包括在知识图谱中的实体。例如,该随机实体可以是从更广泛的数据库中随机抽取的实体,或者可以是用任何方式随机生成的实体。
随后,类似地,随机实体514同样可通过图神经网络518来处理,以将该随机实体514向量化,从而获得该随机实体514的随机实体向量522。利用知识图谱GCN来对实体进行向量化的具体过程将在下文中详细描述。
在此优选示例中,该实体匹配损失Loss_match可按以下方式计算:
Loss_match=distance(e_i,e_t)–β*distance(e_i,e_r),(公式3)
其中e_r为随机实体向量522,β为权重参数。对于β的取值可使用本领域已知的任何方式来实现。该β可与上面第二示例中的β相同或不同。
可以看出,上述损失函数意在使得句子的实体匹配预测输出与隐喻实体向量尽量相似,并使得实体匹配预测输出与随机实体向量尽量不相似,从而使得所预测的实体尽量与隐喻实体相似,而与随机实体不相似。也就是说,在该第三示例中,该句子的实体匹配损失Loss_match和该实体匹配预测输出508与该隐喻实体向量之间的向量距离成正比,而和该实体匹配预测输出508与随机实体向量522之间的向量距离成反比。
引入知识嵌入实体增大了信息量,使得训练后的模型能够区分知识图谱中的隐喻实体和随机实体。也就是说,可使得训练后的模型能够知晓该隐喻实体为知识图谱中出现的实体,而不是随机的实体。
第四示例
在更优选示例中,可同时考虑隐喻实体、知识嵌入实体和随机实体。此时,实体匹配损失Loss_match可按以下方式计算:
Loss_match=distance(e_i,e_t)–β*(distance(e_i,e_r)+distance(e_i,e_s)+distance(e_r,e_s)),(公式4)
可以看出,上述损失函数意在使得句子的实体匹配预测输出与隐喻实体向量尽量相似,并使得实体匹配预测输出、知识嵌入实体向量、随机实体向量两两不相似。也就是说,在该第四示例中,该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比,和该实体匹配预测输出与该随机实体向量之间的向量距离成反比,且和该知识嵌入实体向量与该随机实体向量之间的向量距离成反比。
可以领会,上面的公式4仅仅是一个特殊示例,可以采用满足上述正反比关系的任何示例,例如:
Loss_match=distance(e_i,e_t)–(β1*distance(e_i,e_r)+β2*distance(e_i,e_s)+β3*distance(e_r,e_s)),(公式5)
引入知识嵌入实体增大了信息量,使得训练后的模型能够区分隐喻实体、知识嵌入实体和随机实体。
如上文所述,在存在多个知识嵌入实体或多个随机实体的情况下,可对隐喻实体、知识嵌入实体和随机实体进行组合,使得每个样本中包括一个隐喻实体、零个或一个知识嵌入实体、以及零个或一个随机实体。通过这种方式,对于同一句子,可以得到多个输入样例,这些输入样例可包括不同的嵌入实体和/或随机实体。
如上文已提及的,需要对隐喻实体512、随机实体514和知识嵌入实体516中的一者或多者向量化,以便得到相应的隐喻实体向量520、随机实体向量522和知识嵌入实体向量524。可以理解,对上述实体的向量化应当在知识图谱的背景中执行。在本说明书实施例中,使用与知识图谱相关联的图神经网络来将实体向量化。具体而言,使用图神经网络来将该知识图谱向量化,从而获得知识图谱中的实体的向量。
在优选示例中,可使用与知识图谱相关联的图卷积网络(简称“知识图谱GCN”)来将实体向量化。
具体而言,在一个示例中,在对知识图谱GCN进行初始化时,可使用由K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。随后,可通过知识图谱GCN来每个节点的初始嵌入表示进行进一步处理(例如池化等),从而获得每个节点的最终层嵌入表示。随后,可在对实体识别模型的训练过程中迭代更新知识图谱GCN,以实现对知识图谱中的节点的最佳向量化。图卷积网络的具体实现细节是本领域技术人员知晓的,在此不再赘述。
应当领会,图卷积网络仅仅是图神经网络的示例,可采用本领域技术人员可构想的任何合适的图神经网络。
在分别计算出序列标注任务的损失和实体匹配任务的损失之后,可计算整个模型的总损失。参见图6,其示出了根据本说明书实施例的总模型的损失的示意图。
通过将上面执行两个任务的训练集组合起来,能够得到根据本说明书实施例的实体识别模型的总的训练样本。例如,通过将用于序列标注任务的训练样本{Sinput,XNER}和用于实体匹配任务的训练样本{Sinput,XTER}相结合,可以得到用于训练整体的实体识别模型的训练样本d={Sinput,XNER,XTER}。
如图6所示,通过将序列标注损失和实体匹配损失组合起来,就可得到该模型的总损失。
随后,根据上文所述的方式进行训练,并分别得到序列标注损失Loss_sequence和实体匹配损失Loss_match。
随后,该模型的总损失Loss_total可通过以下公式计算:
Loss_total=Loss_sequence+α*Loss_match
其中α为超参数,其指示实体匹配损失的权重,可用于调节序列标注损失和实体匹配损失对总损失的影响程度。可根据经验或者基于实验数据来确定α值。
根据上文参考图1-图6的描述,可以领会本申请的实体识别模型的组成及其训练过程。
在获得总损失Loss_total的函数表示之后,可迭代地执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。在已经描述了样本和损失函数的情况下,本领域技术人员知晓如何通过迭代训练来获得经训练的实体识别模型,在此不再赘述。
综合上面的描述,下面概括性地描述实体识别模型的训练方法。参见图7,其示出根据本说明书实施例的用于训练实体识别模型的示例方法700的示意流程图。该方法的操作的具体细节可参考上文的描述。
如图7所示,方法700可包括:在操作702,可构造训练集。如上文所述,该训练集可包括多个训练样本d={S,XNER,XTER},其中S为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签。如上文所述,该序列标注标签可标注了该句子中的显式感兴趣实体(如有)。该隐喻实体标签可用于表示该句子的隐喻实体。如上文所述,隐喻实体是该句子实际指向、但未出现在该句子中的实体。
在构造训练集之后,可使用所构造的对实体识别模型进行训练。如上文所述,该实体识别模型可基于经预训练的K-BERT模型。具体而言,该实体识别模型的底层可以是经预训练的K-BERT模型,且后续层可以是用于执行具体任务的其它层。所述其他层的具体实现可由本领域技术人员根据其任务来进行选择,本说明书实施例在此方面不受限制。可以理解,除了训练样本集之外,与所述句子相关联的知识图谱也被输入到所述实体识别模型。该知识图谱例如可以是用于特定应用领域的知识图谱。
具体而言,对实体识别模型的训练可采用以下方式来执行。
如图7所示,方法700可包括:在操作704,可将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出。如上文所述,该句子的序列标注预测输出可以是该句子的序列标注表示,其可采用上文结合图4描述的过程来实现。该句子的实体匹配预测输出可以是该句子的向量表示,其可采用上文结合图5描述的过程来实现。该向量表示例如可采用该句子的第一个字符(即“[CLS]”)的向量表示。
方法700还可包括:在操作706,可基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence。
方法700还可包括:在操作708,可至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match。
如上文中的第一示例所示,可仅基于该隐喻实体标签来确定句子的实体匹配损失。
在此情况下,操作708可包括以下步骤:
首先,可使用与所述知识图谱相关联的图神经网络来生成该句子的隐喻实体向量。该隐喻实体可从隐喻实体标签来获得,且使用与该知识图谱相关联的图神经网络(例如知识谱图GCN)可得到对应于该隐喻实体的隐喻实体向量。
随后,可确定所述句子的实体匹配预测输出与该隐喻实体向量之间的向量距离。向量距离的计算可参考上文的描述。
然后,可确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比。可参考上文的公式1。
如上文的第二示例所示,还可基于隐喻实体标签以及所确定的知识嵌入实体来确定句子的实体匹配损失。
在此情况下,操作708可包括以下步骤:
首先,可至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体。如上文所述,知识嵌入实体可指基于所述知识图谱嵌入到该句子中的不同于该隐喻实体的实体。通过隐喻实体标签,可确定隐喻实体。基于知识图谱(例如利用K-BERT的知识层)可获得要嵌入到句子中的一个或多个实体,将隐喻实体从该一个或多个实体排除后,即可获得该句子的知识嵌入实体。
随后,可使用所述图神经网络来生成该句子的知识嵌入实体向量。
然后,可确定该实体匹配预测输出与该知识嵌入实体向量之间的向量距离。也可确定该实体匹配预测输出与该隐喻实体向量之间的向量距离。
然后,可至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和知识嵌入实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比。也就是说,实体匹配损失可和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,并和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比。可参考上文的公式2。
如上文的第三示例所示,还可基于隐喻实体标签以及随机实体来确定句子的实体匹配损失。
在此情况下,操作708可包括以下步骤:
首先,可至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的随机实体,其中所述随机实体是随机获取的实体。获取随机实体的过程可参考上文的描述。优选地,该随机实体不同于该隐喻实体和该知识嵌入实体,但不必如此。
随后,可使用所述图神经网络来生成该句子的随机实体向量。
然后,可确定该实体匹配预测输出与随机实体向量之间的向量距离。同时,也可确定该实体匹配预测输出与该隐喻实体向量之间的向量距离
然后,可至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和随机实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该随机实体向量之间的向量距离成反比。也就是说,实体匹配损失可和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,并和该实体匹配预测输出与该随机实体向量之间的向量距离成反比。可参考上文的公式3。
如上文的第四示例所示,还可基于隐喻实体标签以及知识嵌入实体、随机实体的组合来确定句子的实体匹配损失。
首先,可至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体和随机实体。
随后,可使用所述图神经网络来生成该句子的随机实体向量和知识嵌入实体向量。
然后,可确定所述句子的实体匹配预测输出与该隐喻实体向量之间的向量距离。可确定该句子的实体匹配预测输出与该知识嵌入实体向量。可确定该句子的实体匹配预测输出与该随机实体向量之间的向量距离。还可确定该句子的实体匹配预测输出与与该随机实体向量之间的向量距离。
然后,可至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体、知识嵌入实体和随机实体来确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比,和该实体匹配预测输出与该随机实体向量之间的向量距离成反比,且和该知识嵌入实体向量与该随机实体向量之间的向量距离成反比。可参见上文的公式4和公式5。
在将隐喻实体、随机实体或知识嵌入实体分别转换为相应的隐喻实体向量、随机实体向量或知识嵌入实体向量所使用的图神经网络可采用各种适用的模型。优选地,该图神经网络为图卷积网络。在对该图神经网络进行初始化时,优选地,可使用所述实体识别模型的K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。
可以领会,虽然在图7中操作708被示出在操作706之外,但这并非限制。在实际应用时,操作706和操作708可按照任何次序执行,也可并行执行。
方法700还可包括:在操作710,可确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match。其中α指示实体匹配损失的权重。
方法700还可包括:在操作712,可迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。例如,可使用训练集中的大量训练样本迭代地执行上述操作,从而最小化总损失。
可以领会,该总损失反应了两个任务:其一方面能够使得所输出的序列标注预测输出能够与显式感兴趣实体尽量匹配,另一方面又使得所输出的实体匹配预测输出尽量与隐喻实体向量相似(和/或与知识嵌入实体及随机实体不相似)。通过这样的训练,能够实现以下效果:或者能够直接通过序列标注预测出显式感兴趣实体,或者能够输出与隐喻实体相似的实体的实体向量,该实体向量随后能被用来在实体想良苦中执行检索。
下面描述使用该实体识别模型来识别实体的具体过程。参见图8,其示出根据本说明书实施例的利用该实体识别模型来识别实体的示例方法800的流程图。
如图8所示,方法800可包括:在操作802,可获取待处理的句子。该待处理的句子是指要对其执行实体识别的句子。
方法800还可包括:在操作804,可使用如上所述的经训练的实体识别模型来对待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别得到的实体。也就是说,如果该待处理句子中识别出显式感兴趣实体,则可在操作806直接输出所识别得到的实体作为实体识别的结果。
方法800还可包括:在操作808,如果所述实体识别模型没有识别出实体,则可输出所述实体识别模型的实体匹配预测输出。该实体匹配预测输出是与隐喻实体相似的实体向量,其可用于后续直接执行实体向量检索。
方法800还可包括:在操作810,可使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量。该实体向量库例如可以是通过对与所述输入句子相关联的知识图谱执行向量化得到的。该向量化例如可以是通过图神经模型执行的。该图神经模型优选地可以是知识图谱GCN模型。在执行预测时所使用的图神经模型是与在对该实体识别模型执行训练时所使用的实体识别模型相同。如上文所述,该图神经模型在训练所述实体识别模型的同时被迭代更新。优选地,使用所述实体匹配预测输出在实体向量库中执行检索是通过FAISS库实现的。FAISS库是由Facebook公司开发的用于高效地执行向量检索的库。使用FAISS库执行向量检索的具体过程在此不再赘述。
方法800还可包括:在操作812,可将与所检索出的实体向量相对应的实体作为所识别的实体。例如,可通过该图神经网络来获得该实体向量的对应实体。
参见图9,其示出根据本说明书实施例的用于训练实体识别模型的示例***900的示意图。该***900可被用于执行实体识别模型的训练。
如图9所示,***900可包括训练集构造模块902,用于构造训练集,其中所述训练集包括多个训练样本d={Sinput,XNER,XTER},其中Sinput为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签,所述隐喻实体标签用于表示该句子的隐喻实体,其中隐喻实体是该句子实际指向、但未出现在该句子中的实体。
***900还可包括实体识别模型训练模块904,用于使用所述训练集对所述实体识别模型执行训练,所述实体识别模型基于经预训练的K-BERT模型。其中该实体识别模型训练模块904进一步包括:
预测模块906,其用于将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出。具体而言,其可包括序列标注预测模块和实体匹配预测模块(图中未示出)。
损失计算模块908,用于基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence,以及至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match。具体而言,其可包括序列标注损失计算模块和实体匹配损失计算模块。
损失计算模块908还用于确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match,其中α指示实体匹配损失的权重。
迭代训练模块910,用于迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。
相关操作的具体细节可参考上文对方法700的具体描述。
参见图10,其示出根据本说明书实施例的用于实体识别的示例***1000的示意图。该***可被用于使用经训练的实体识别模型来执行实体识别。
如图10所示,***1000可包括句子获取模块1002,其可用于获取待处理的句子。
***1000还可包括实体识别模型1004,其可用于对所述待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别的实体,以及如果所述实体识别模型没有识别出实体,则输出所述实体识别模型的实体匹配预测输出。
***1000还可包括:检索模块1006,其可用于使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量,以及将与所检索出的实体向量相对应的实体作为所识别的实体。
相关操作的具体细节可参考上文对方法800的具体描述。
图11示出用于实现根据本说明书一个或多个实施例的***(如上文的***900或***1000)的装置1100的示意框图。该装置可包括处理器1110以及存储器1115,所述处理器被配置成执行如上所述的任何方法,如图2、图4、图5、图6、图7和图8中所示的方法等等。该存储器可存储例如训练集、待处理的句子输入、各种中间数据以及相关联的算法等等。
该装置1100可包括网络连接元件1125,例如可包括通过有线连接或无线连接来连接到其它设备的网络连接设备。该无线连接例如可以为WiFi连接、蓝牙连接、3G/4G/5G网络连接等。例如,用于获取数据或输出数据的模块可通过网络连接元件来从各种数据源获取数据以及将数据输出至其它设备。还可经由网络连接元件接收用户从其它设备所进行的输入或者将数据传送到其它设备以供显示。
该装置还可选地包括其它***元件1120,例如输入装置(如键盘、鼠标)、输出装置(如显示器)等。例如,在基于用户输入的方法中,用户可经由输入装置执行输入操作。还可经由输出装置向用户输出相应的信息。
这些模块中的每一者可彼此直接或间接通信,例如,经由一条或多条总线(例如总线1105)。
而且,本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
此外,本申请还公开了一种装置,该装置包括处理器以及存储有计算机可执行指令的存储器,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
此外,本申请还公开了一种***,该***包括用于实现本文所述的各实施例的方法的装置。
可以理解,根据本说明书的一个或多个实施例的方法可以用软件、固件或其组合来实现。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参考即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参考方法实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
同样,需要指出的是,虽然已参考当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本说明书的一个或多个实施例,在没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (20)
1.一种用于训练实体识别模型的方法,包括:
构造训练集,其中所述训练集包括多个训练样本d={Sinput,XNER,XTER},其中Sinput为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签,所述隐喻实体标签用于表示该句子的隐喻实体,其中隐喻实体是该句子实际指向、但未出现在该句子中的实体;
使用所述训练集对所述实体识别模型执行训练,所述实体识别模型基于经预训练的K-BERT模型,其中对所述实体识别模型执行训练包括:
将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出,
基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match;
确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match,其中α指示实体匹配损失的权重;以及
迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。
2.如权利要求1所述的方法,其中与所述句子相关联的知识图谱也被输入到所述实体识别模型。
3.如权利要求2所述的方法,其中确定该句子的实体匹配损失Loss_match包括:
使用与所述知识图谱相关联的图神经网络来生成该句子的隐喻实体向量;
确定所述句子的实体匹配预测输出与该隐喻实体向量之间的向量距离;以及
确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比。
4.如权利要求3所述的方法,其中确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的随机实体,其中所述随机实体是随机获取的实体;
使用所述图神经网络来生成该句子的随机实体向量;以及
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和随机实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该随机实体向量之间的向量距离成反比。
5.如权利要求3所述的方法,其中确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体,该知识嵌入实体是基于所述知识图谱嵌入到该句子中的不同于该隐喻实体的实体;
使用所述图神经网络来生成该句子的知识嵌入实体向量;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签和知识嵌入实体标签确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比。
6.如权利要求3所述的方法,其中确定该句子的实体匹配损失Loss_match包括:
至少基于所述知识图谱和该句子的隐喻实体标签来确定该句子的知识嵌入实体和随机实体,该知识嵌入实体是基于所述知识图谱嵌入到该句子中的不同于该隐喻实体的实体,该随机实体是随机获取的实体;
使用所述图神经网络来生成该句子的随机实体向量和知识嵌入实体向量;
至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体、知识嵌入实体和随机实体来确定该句子的实体匹配损失Loss_match,其中该句子的实体匹配损失Loss_match和该实体匹配预测输出与该隐喻实体向量之间的向量距离成正比,和该实体匹配预测输出与该知识嵌入实体向量之间的向量距离成反比,和该实体匹配预测输出与该随机实体向量之间的向量距离成反比,且和该知识嵌入实体向量与该随机实体向量之间的向量距离成反比。
7.如权利要求3-6中任一项所述的方法,其中所述图神经网络为图卷积网络。
8.如权利要求3-6中任一项所述的方法,其中在初始化所述图神经网络时,使用所述实体识别模型的K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。
9.一种用于实体识别的方法,包括:
获取待处理的句子;
使用基于权利要求1-8中任一项的方法训练的实体识别模型来对所述待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别的实体;
如果所述实体识别模型没有识别出实体,则输出所述实体识别模型的实体匹配预测输出;
使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量;以及
将与所检索出的实体向量相对应的实体作为所识别的实体。
10.如权利要求9所述的方法,其中所述实体向量库是通过对与所述输入句子相关联的知识图谱执行向量化得到的。
11.如权利要求10所述的方法,其中所述实体向量库是通过图神经模型对所述输入句子执行向量化得到的,所述图神经模型在训练所述实体识别模型的同时被迭代更新。
12.如权利要求9所述的方法,其中使用所述实体匹配预测输出在实体向量库中执行检索是通过FAISS库实现的。
13.一种用于训练实体识别模型的***,包括:
训练集构造模块,用于构造训练集,其中所述训练集包括多个训练样本d={Sinput,XNER,XTER},其中Sinput为句子,XNER为该句子的序列标注标签,XTER为该句子的隐喻实体标签,所述隐喻实体标签用于表示该句子的隐喻实体,其中隐喻实体是该句子实际指向、但未出现在该句子中的实体;以及
实体识别模型训练模块,用于使用所述训练集对所述实体识别模型执行训练,所述实体识别模型基于经预训练的K-BERT模型,其中所述实体识别模型训练模块包括:
预测模块,用于将所述训练集中的训练样本输入到实体识别模型,以得到该训练样本中的句子的序列标注预测输出和实体匹配预测输出,
损失计算模块,用于基于该句子的序列标注预测输出和该句子的序列标注标签确定该句子的序列标注损失Loss_sequence;至少部分地基于该句子的实体匹配预测输出和该句子的隐喻实体标签确定该句子的实体匹配损失Loss_match;以及确定所述实体识别模型的总损失Loss_total,所述总损失为所述序列标注损失和所述实体匹配损失的加权和,即:Loss_total=Loss_sequence+α*Loss_match,其中α指示实体匹配损失的权重;以及
迭代训练模块,用于迭代执行训练以最小化所述实体识别模型的总损失,从而得到经训练的实体识别模型。
14.如权利要求13所述的***,其中与所述句子相关联的知识图谱也被输入到所述实体识别模型。
15.如权利要求13所述的***,其中所述损失计算模块包括实体向量化模块,所述实体向量化模块用于使用图神经网络将实体向量化为实体向量。
16.如权利要求15所述的***,其中在初始化所述图神经网络时,使用所述实体识别模型的K-BERT模型的字嵌入来生成知识图谱中的每个节点的初始嵌入表示。
17.一种用于实体识别的***,包括:
句子获取模块,用于获取待处理的句子;
实体识别模型,用于对所述待处理句子进行处理,如果所述实体识别模型的序列标注预测输出中得到实体,则输出所得到的实体作为所识别的实体,而如果所述实体识别模型没有识别出实体,则输出所述实体识别模型的实体匹配预测输出;
检索模块,用于使用所述实体匹配预测输出在实体向量库中执行检索,以在所述实体向量库中检索出与所述实体匹配预测输出相匹配的实体向量,以及将与所检索出的实体向量相对应的实体作为所识别的实体。
18.一种用于训练实体识别模型的装置,包括:
存储器;以及
处理器,所述处理器被配置成执行如权利要求1-8中任一项所述的方法。
19.一种用于执行实体识别的装置,包括:
存储器;以及
处理器,所述处理器被配置成执行如权利要求9-12中任一项所述的方法。
20.一种存储指令的计算机可读存储介质,所述指令当被计算机执行时,使所述计算机执行如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210078338.3A CN114492443A (zh) | 2022-01-24 | 2022-01-24 | 训练实体识别模型的方法及***和实体识别方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210078338.3A CN114492443A (zh) | 2022-01-24 | 2022-01-24 | 训练实体识别模型的方法及***和实体识别方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114492443A true CN114492443A (zh) | 2022-05-13 |
Family
ID=81475191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210078338.3A Pending CN114492443A (zh) | 2022-01-24 | 2022-01-24 | 训练实体识别模型的方法及***和实体识别方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114492443A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115358239A (zh) * | 2022-08-17 | 2022-11-18 | 北京中科智加科技有限公司 | 一种命名实体和关系识别方法及存储介质 |
CN117251650A (zh) * | 2023-11-20 | 2023-12-19 | 之江实验室 | 地理热点中心识别方法、装置、计算机设备和存储介质 |
-
2022
- 2022-01-24 CN CN202210078338.3A patent/CN114492443A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115358239A (zh) * | 2022-08-17 | 2022-11-18 | 北京中科智加科技有限公司 | 一种命名实体和关系识别方法及存储介质 |
CN115358239B (zh) * | 2022-08-17 | 2023-08-22 | 北京中科智加科技有限公司 | 一种命名实体和关系识别方法及存储介质 |
CN117251650A (zh) * | 2023-11-20 | 2023-12-19 | 之江实验室 | 地理热点中心识别方法、装置、计算机设备和存储介质 |
CN117251650B (zh) * | 2023-11-20 | 2024-02-06 | 之江实验室 | 地理热点中心识别方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111613339B (zh) | 一种基于深度学习的相似病历查找方法与*** | |
CN108932342A (zh) | 一种语义匹配的方法、模型的学习方法及服务器 | |
CN105404632B (zh) | 基于深度神经网络对生物医学文本序列化标注的***和方法 | |
CN110298043B (zh) | 一种车辆命名实体识别方法及*** | |
KR101136007B1 (ko) | 문서 감성 분석 시스템 및 그 방법 | |
CN112015868B (zh) | 基于知识图谱补全的问答方法 | |
CN111368094A (zh) | 实体知识图谱建立、属性信息获取、门诊分诊方法及装置 | |
CN111782769B (zh) | 基于关系预测的知识图谱智能问答方法 | |
CN112347229A (zh) | 一种答案抽取方法、装置、计算机设备及存储介质 | |
US11461613B2 (en) | Method and apparatus for multi-document question answering | |
CN114492443A (zh) | 训练实体识别模型的方法及***和实体识别方法及*** | |
CN110765240A (zh) | 多相关句子对的语义匹配评估方法 | |
CN112328800A (zh) | 自动生成编程规范问题答案的***及方法 | |
CN113764112A (zh) | 一种在线医疗问答方法 | |
CN115599899B (zh) | 基于飞行器知识图谱的智能问答方法、***、设备及介质 | |
CN111914556A (zh) | 基于情感语义转移图谱的情感引导方法及*** | |
US20230267338A1 (en) | Keyword based open information extraction for fact-relevant knowledge graph creation and link prediction | |
CN113722507B (zh) | 基于知识图谱的住院费用预测方法、装置及计算机设备 | |
CN114579705A (zh) | 一种面向可持续发展教育的学习辅助方法及*** | |
VeeraSekharReddy et al. | An attention based bi-LSTM DenseNet model for named entity recognition in english texts | |
CN116383354A (zh) | 一种基于知识图谱的图可视化自动问答方法 | |
EP4300375A1 (en) | Method and system for information retrieval | |
Hsu et al. | Recurrent neural network encoder with attention for community question answering | |
CN116403608A (zh) | 基于多标签纠正和时空协同融合的语音情感识别方法 | |
Alwaneen et al. | Stacked dynamic memory-coattention network for answering why-questions in Arabic |
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 |