知识增强预训练语言模型知识注入和训练方法及系统与流程
未命名
07-23
阅读:127
评论:0
1.本发明涉及机器学习技术领域,特别涉及一种知识增强预训练语言模型知识注入和训练方法及系统。
背景技术:
2.预训练语言模型(pre-trained language models,plm)可以从海量数据中学习句子词语的表征,以提升语言模型在下游任务中的表现。尽管plm已经取得了很好的结果,并在许多自然语言处理(natural language processing,nlp)任务中发挥着作用,但忽略了将知识融入到语言理解中去。为了更好地将plm应用于知识驱动和语义理解任务,提出了通过注入丰富的外部知识以提高语言理解能力的plm,即知识增强预训练模型(knowledge-enhanced pre-trained language model,keplm)。keplm通过从知识图谱(knowledge graph,kg)注入外部知识三元组来提高plm的性能,为了从注入的知识三元组的学习知识,keplm设计了知识相关的预训练任务,迫使模型学习注入的知识。已有的知识增强预训练语言模型,例如ernie、k-bert、kepler、colake等,都是将三元组或预训练的知识注入到语料库句子中的每个实体,来实现知识学习和训练的。
技术实现要素:
3.本技术发明人发现,目前的keplm存在以下两个重要的问题:
4.以前的keplm对知识注入没有侧重,这会引入知识噪声降低模型性能。知识噪声包括冗余和无关的知识,例如在一句话中出现多次的实体等,这些冗余知识会带来重复信息。此外,涉及某些实体或实体对应子图的无关知识与整个句子的语义几乎没有关联,因此无关实体对最终任务的评价指标是没有贡献的。由于对知识三元组没有侧重的学习导致的知识噪声的存在,使系统的鲁棒性比较差。
5.以前的keplm使用额外的知识编码器修改模型的结构,使其的应用范围受限。此外,keplm设计了知识相关的任务来迫使模型学习到知识三元组中的信息,在进行系统参数更新时要更新系统的所有参数,这样的方式对计算资源的消耗很大,也增加了训练keplm的成本开销。
6.因此,怎么对知识三元组进行有重点的学习增强模型的鲁棒性,并且降低keplm的训练成本是具有挑战且拥有现实应用意义的任务。
7.鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种知识增强预训练语言模型知识注入和训练方法及系统。
8.本发明实施例提供一种知识增强预训练语言模型训练方法,包括:
9.基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和/或通过出现频率检测出的长尾词;
10.将所述重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据。
11.在一些可选的实施例中,所述基于领域知识图谱,识别预训练语句中的重要元素,包括:
12.基于领域知识图谱中的三元组,检测预训练语句中的实体,通过预训练语句与对检测到的实体进行实体替换后的替换语句的语义相关性,检测出预训练语句中的重要实体;所述三元组包括实体、关系、实体;
13.根据预训练语料中的词出现频率,检测出所述预训练语句中的长尾词。
14.在一些可选的实施例中,所述通过预训练语句与对检测到的实体进行实体替换后的替换语句的语义相关性,检测出预训练语句中的重要实体,包括:
15.对所述预训练语句中的实体进行实体替换,得到包括替换实体的替换语句;
16.基于层归一化函数,获得预训练语句的嵌入表征和替换预句的嵌入表征,根据所述预训练语句的嵌入表征和替换预句的嵌入表征,确定预训练语句和替换语句的语义相关性,
17.将语义相关性符合预设条件的实体,确定为重要实体。
18.在一些可选的实施例中,上述方法还包括:
19.将检测出的重要元素的嵌入表征存储到预先建立的记忆库中,所述记忆库包括用于存储重要实体嵌入表征的实体库和用来存储长尾词嵌入表征的词库;或基于检测出的重要元素的嵌入表征更新记忆库中存储的该重要元素的嵌入表征;
20.相应的,将所述重要元素注入预训练语言模型的训练数据中,包括:将记忆库中存储的所述重要元素的嵌入表征注入预训练语言模型的训练数据中。
21.在一些可选的实施例中,所述基于检测出的重要元素的嵌入表征更新记忆库中存储的该重要元素的嵌入表征,包括:
22.获取检测出的重要元素的嵌入表征在记忆库中的存储位置;
23.将所述存储位置处该重要元素的存储嵌入表征和本次检测到该重要元素后获得的新嵌入表征进行求和,得到该重要元素更新后的嵌入表征。
24.本发明实施例一种知识增强预训练语言模型训练方法,包括:
25.将知识增强的训练数据输入知识增强预训练语言模型中;所述知识增强的训练数据是使用上述的知识增强预训练语言模型知识注入方法得到的;
26.针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;
27.将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;
28.基于预设的损失函数更新所述知识路径的参数。
29.在一些可选的实施例中,所述根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数,包括:
30.采用归一化指数函数,获取训练数据的输入序列对应的对知识评估目标生成正确答案的概率;
31.针对每个神经元,根据所述对知识评估目标生成正确答案的概率的梯度,确定所述神经元的知识归因分数。
32.在一些可选的实施例中,所述将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径,包括:
33.将每一层中知识归因分数最高的神经元确定为该层的知识神经元,通过路径连接每层的知识神经元,生成知识路径。
34.在一些可选的实施例中,所述基于预设的损失函数更新所述知识路径的参数,包括:
35.针对训练语句中包括的实体经transformer编码器处理得到的嵌入表征,采用对比学习的方式,确定对比学习的损失函数,所述损失函数使得所述模型输出的预测正确答案与真实值相似度最大化,与替换实体对应的伪造答案的相似度最小化;
36.根据损失函数计算模型参数的梯度,更新所述知识路径的梯度。
37.本发明实施例一种知识增强预训练语言模型知识注入系统,包括:
38.transformer编码器,用于基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和/或通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中;
39.记忆库,用于存储重要元素的嵌入表征。
40.本发明实施例一种知识增强预训练语言模型训练系统,包括:
41.transformer编码器,基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中,其中设有动态路由模块,用于将知识增强的训练数据输入知识增强预训练语言模型中;针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;基于预设的损失函数更新所述知识路径的参数;
42.记忆库,用于存储重要元素的嵌入表征。
43.本发明实施例提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的知识增强预训练语言模型知识注入方法和/或上述的知识增强预训练语言模型训练方法。
44.本发明实施例提供一种电子设备,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的知识增强预训练语言模型知识注入方法和/或上述的知识增强预训练语言模型训练方法。
45.本发明实施例提供的上述技术方案的有益效果至少包括:
46.本发明实施例提供的知识增强预训练语言模型知识注入方法,基于领域知识图谱,识别预训练语句中的重要元素,例如重要实体和长尾词,将识别出的重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据,从而能够在知识注入学习过程中实现有侧重的学习,减少冗余知识和无关知识带来的知识噪声,提高系统的鲁棒性。
47.本发明实施例提供的知识增强预训练语言模型训练方法,通过对重要元素的识别,减少知识噪声,提高系统的鲁棒性,通过对比学习实现对神经元中知识神经元的识别,
针对知识神经元组成的知识路径进行模型参数更新,而不必更新全部的系统参数,减少参数更新的数据处理量,降低资源开销,提高更新处理的速度和效率,也降低了硬件成本。
48.本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
49.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
50.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
51.图1为本发明实施例中知识增强预训练语言模型知识训练模型示意图;
52.图2为本发明实施例一中知识增强预训练语言模型知识注入方法的流程图;
53.图3为本发明实施例中知识增强预训练语言模型知识训练方法的原理示意图;
54.图4为本发明实施例二中知识增强预训练语言模型知识训练方法的流程图;
55.图5为本发明实施例中知识增强预训练语言模型知识注入装置的结构示意图;
56.图6为本发明实施例中知识增强预训练语言模型知识训练装置的结构示意图。
具体实施方式
57.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
58.由于现有的keplm对知识注入没有侧重,且在进行系统参数更新时要更新系统的所有参数,使keplm系统存在鲁棒性差、资源开销大、成本高等问题。
59.例如:信息实体增强的语言表示模型(enhanced language representation with informative entities,ernie)引入了新的实体编码器(entity encoder)用于捕获实体与句子间的语义关联,然后使用降噪自动编码器(denoising entity auto-encoder,dea)随机掩藏(mask)掉一部分实体后来预测被mask掉的实体是什么。然而引入了新的entity encoder意味着引入了新的参数,并且修改了模型结构不利于它的泛用性。
60.知识嵌入和预训练语言表示的统一模型(a unified model for knowledge embedding and pre-trained language representation,kepler)使用同一个编码器(transformer)将文本和实体编码到统一的语义空间中。对于实体,将实体与其描述文本一起输入transformer中,并使用transe的编码方式减小头实体、关系、尾实体之间的距离。但其对全部实体的注入并没有考虑到实体中隐藏的噪声会对模型产生不利影响。
61.可分解的利用知识增强的预训练语言模型(decomposable knowledge-enhanced pre-trained language model for natural language understanding,dkplm)通过检测知识感知长尾实体作为知识注入的目标,增强keplm的语义理解能力,避免注入冗余信息。长尾实体的嵌入被相关知识三元组形成的“伪表示”所取代,并设计了用于预训练的关系知识解码任务,以通过关系重构迫使模型真正理解注入的知识。但是关系知识解码任务引入
需要模型计算损失并更新模型全部参数,计算量大。
62.因此,为了对知识三元组(knowledge triples)中的实体有侧重的学习并加速知识增强预训练语言模型的训练,本发明提出了一种realm的新型keplm训练方法,参见图1所示的plm、keplm和realm之间的差异,plm通常使用掩码语言建模作为预训练对象,通过transformer编码器(transformer encoder)对输入表征进行处理。keplm利用了外部知识源,例如kg,并设计需要额外知识编码器的知识感知任务,通过transformer编码器对输入表征进行处理,通过知识编码器对输入实体进行处理,通过融合模块融合两者的处理结果。realm增加了记忆库(memory bank)来记忆重要实体和长尾词等重要元素的表征,对于transformer编码器增加了知识路径识别功能,realm在预训练期间使用共享编码器和知识增强记忆库来注入事实知识,且只需要使用动态知识路由方法更新transformer模块中的部分ffn参数,以减少更新的参数数量,减少资源消耗。
63.本发明提供的新型keplm训练方法能够更稳健和高效地训练keplm,是一种鲁棒优化的bert预训练方法(a robustly optimized bert pretraining approach,roberta)。为了减少引入过多的知识噪声,通过计算语义重要性来检测重要实体和长尾词作为知识注入的目标。构建了一个知识增强记忆网络(knowledge-augmented memory bank,kmb)来促进学习重要实体和长尾词的表示,它可以引导预训练过程中对实体的学习并加速网络收敛。此外,为了减少计算资源的消耗,通过动态知识路由(dynamic knowledge routing,dkr)选择性地更新transformer模块中的参数。具体来说,通过知识相关的任务来识别储存知识的神经元(knowledge neurons,kn)和知识神经元组成的知识路径,从而能够选择性地更新模型参数来加速模型训练。
64.实施例一
65.本发明实施例一提供一种知识增强预训练语言模型知识注入方法,其流程如图2所示,其原理参见图3所示,该方法包括如下步骤:
66.步骤s101:基于领域知识图谱,识别预训练语句中的重要元素,其中,重要元素包括通过语义相关方法检测出的重要实体和/或通过出现频率检测出的长尾词。
67.步骤s102:将重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据。
68.上述步骤s101中,基于领域知识图谱,识别预训练语句中的重要元素,包括重要实体的检测和长尾词的检测,当然也可以包括其他重要元素的检测,可以根据模型训练的需选择要检测的重要元素。
69.对于重要实体的检测,基于领域知识图谱中的三元组,检测预训练语句中的实体,通过预训练语句与对检测到的实体进行实体替换后的替换语句的语义相关性,检测出预训练语句中的重要实体;其中三元组包括实体、关系、实体。
70.可选的,检测重要实体的过程包括:对预训练语句中的实体进行实体替换,得到包括替换实体的替换语句;基于层归一化函数,获得预训练语句的嵌入表征和替换预句的嵌入表征,根据所述预训练语句的嵌入表征和替换预句的嵌入表征,确定预训练语句和替换语句的语义相关性,将语义相关性符合预设条件的实体,确定为重要实体。
71.对于长尾词的检测,根据预训练语料中的词出现频率,检测出预训练语句中的长尾词。
72.可选的,对于检测出的重要元素,可以通过设置的记忆网络进行记忆,并用于后续的模型训练过程中。即上述方法还包括:
73.将检测出的重要元素的嵌入表征存储到预先建立的记忆库中,记忆库可以包括用于存储重要实体嵌入表征的实体库和用来存储长尾词嵌入表征的词库;或基于检测出的重要元素的嵌入表征更新记忆库中存储的该重要元素的嵌入表征。
74.在从预训练语料库的预训练语句中第一次检测到一个重要元素时,将其嵌入表征存储到记忆库,当再次检测到该重要元素时,根据再次检测到该重要元素时获得的新的嵌入表征,对记忆库中存储的该重要元素的嵌入表征进行更新,将新的嵌入表征和存储的嵌入表征相加后得到更新后的嵌入表征。
75.在对记忆库中的重要元素进行更新时,根据重要元素的存储位置进行更新。获取检测出的重要元素的嵌入表征在记忆库中的存储位置;将存储位置处该重要元素的存储嵌入表征和本次检测到该重要元素后获得的新嵌入表征进行求和,得到该重要元素更新后的嵌入表征。
76.相应的,将重要元素注入预训练语言模型的训练数据中,包括:将记忆库中存储的重要元素的嵌入表征注入预训练语言模型的训练数据中。
77.本实施例的上述方法中,基于领域知识图谱,识别预训练语句中的重要元素,例如重要实体和长尾词,将识别出的重要元素注入预训练语言模型已有的训练数据中,得到知识增强的训练数据作为模型的输入数据,从而能够在知识注入学习过程中实现有侧重的学习,减少冗余知识和无关知识带来的知识噪声,提高系统的鲁棒性。
78.实施例二
79.本发明实施例二提供一种知识增强预训练语言模型训练方法,其流程如图4所示,包括如下步骤:
80.步骤s201:基于领域知识图谱,识别预训练语句中的重要元素。
81.步骤s202:将重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据。
82.步骤s203:将知识增强的训练数据输入知识增强预训练语言模型中。
83.步骤s204:针对预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据对知识评估目标生成正确答案的概率确定每个神经元的知识归因分数。
84.针对预训练语言模型的每一层前馈网络,比如ffn中的输入层、中间层、输出层等,对每一层中的每一个神经元确定其知识归因分数,以便根据知识归因分数确定出每一层中的知识神经元。
85.在确定知识归因分数时,采用归一化指数函数,获取训练数据的输入序列对应的对知识评估目标生成正确答案的概率;针对每个神经元,根据知识评估目标生成正确答案的概率的梯度,确定神经元的知识归因分数。
86.步骤s205:将每一层中知识归因分数符合预设条件的神经元作为知识神经元,生成包括知识神经元的知识路径。
87.本步骤中,将每一层中知识归因分数最高的神经元确定为该层的知识神经元,通过路径连接每层的知识神经元,生成知识路径。一层中识别出一个知识归因分数最高的神
经元作为知识神经元,可选的,也可以设置识别条件,识别出每一层中符合条件的神经元作为知识神经元,连接每一层知识神经元即可生成知识路径,以便对知识路径的参数进行更新。
88.步骤s206:基于预设的损失函数更新知识路径的参数。
89.针对训练语句中包括的实体经transformer编码器处理得到的嵌入表征,采用对比学习的方式,确定对比学习的损失函数,损失函数使得模型输出的预测正确答案与真实值相似度最大化,与替换实体对应的伪造答案的相似度最小化;根据损失函数计算模型参数的梯度,更新知识路径的梯度。
90.本实施例中,通过对重要元素的识别,减少知识噪声,提高系统的鲁棒性,通过对比学习实现对神经元中知识神经元的识别,针对知识神经元组成的知识路径进行模型参数更新,而不必更新全部的系统参数,减少参数更新的数据处理量,降低资源开销,提高更新处理的速度和效率,也降低了硬件成本。
91.实施例三
92.本发明实施例三提供一种知识增强预训练语言模型知识注入和训练方法的一种具体过程,该方法是一种训练keplm的新框架,其中,设计了两种创新机制来加速将知识信息注入plm,而无需额外的参数:(1)考虑重要实体注入的知识增强记忆网络。(2)通过动态知识路由方法,更新与事实知识相关的知识路径,加快plm的训练,并增强模型的语言理解能力。实验表明,keplm的模型在知识探测任务和知识感知语言理解任务上达到了较优的性能。
93.参见图3所示的,本发明实施例三提供的知识增强预训练语言模型注入和训练方法,包括三个阶段:输入阶段、前向传播阶段和反向传播阶段。
94.输入阶段:
95.通过语义相关性检测重要实体、通过出现频次检测长尾词,将包括重要实体和长尾词等的重要元素注入到输入文本中作为模型的输入,减小所有实体注入带来的知识噪声。
96.如图3所示的,知识图谱中包括知识三元组,知识三元组可以包括实体、关系、实体。例如可以是头实体、关系、尾实体。对于重要实体的检测,以预训练语料库中的预训练语句“the walt disney company,commonly known as disney,is an american multinational mass media and entertainment conglomerate headquartered at the walt disney studios complex in burbank,california.(华特迪士尼公司,通常被称为迪斯尼,是一家美国跨国大众媒体和娱乐集团,总部位于加利福尼亚州伯班克的华特迪士尼影城)”为例。根据知识图谱中的知识三元组,检测出的重要实体有“the walt disney company(华特迪士尼公司)”和“mass media(大众传媒)”,检测出的长尾词有“conglomerate(企业集团)”。
97.重要实体是指预训练语句中的某个实体被替换为其他实体后,语句的意思就变了,这样的实体就是重要实体,如果替换后语句的意思没发生变化,则不是重要实体。
98.对重要实体的检测,使用语义相关性si(e)来衡量,基于知识三元组构造用于替换重要元素的实体的嵌入表征时,在重要元素是知识三元组的头实体时,嵌入表征包括尾实体嵌入表征减去关系词嵌入表征;在重要元素是知识三元组的尾实体时,嵌入表征包括头
实体嵌入表征加上关系词嵌入表征。
99.语义相关性si(e)表示如下:其中ho是原始语句的表征,h
rep
是替换了实体后的替换语句的表征:
[0100][0101]
如果语句中的实体是知识三元组中的头部实体eh,则eh的表征由替换;如果句子中的实体是知识三元组中的尾部实体e
t
,则e
t
的表征由替换。
[0102]
其中,
[0103][0104]
是层归一化(layernorm)函数,是将头实体eh的token输入到plm中最后一层输出的句子表示《cls》,可以采用类似的方法得到,wr是训练的参数。
[0105]
长尾词是指出现频率比较低的词,或者说稀有词,这些稀有词的稀有性导致模型学不到这个词的好的表征(embedding),导致遇到该词时模型理解不了。
[0106]
如果是第一次检测到该重要元素,将检测到的重要元素的嵌入表征存入记忆库中,如果不是第一次检测到该重要元素,将检测到的重要元素的嵌入表征(token embedding)与记忆库中存储的该重要实体的嵌入表征进行合并,即将存储值(stored value)和新值(new value)相加,得到替换表征(replaced embedding),将该重要元素新的嵌入表征存储到记忆库中。
[0107]
在本实施例中,可选的,记忆库可以包括两个库,一个是词库,其中存储有长尾词的embedding,一个是实体库,其中存储有重要实体的embedding。
[0108]
通过知识增强的记忆网络或说记忆库,可以加深模型对重要元素的认知,如果e是一个长尾实体,那么记忆库中对于e的“记忆”可以表示为:
[0109][0110]
其中hi∈r
d1
是位置i上transformer编码器的输出,并用作x的上下文表示,x表示输入序列。l和r是实体e的起始和结束位置,k是窗口的大小,以控制周围令牌的数量,即控制记忆网络中保存实体e周围的信息多少。由于实体e可能在预训练语料库中出现多次,kmb中实体e的“记忆”表示为经常使用获得的每个m(e,x)的移动平均值进行更新。知识增强的记忆网络中的值可以按以下公式更新,γ是超参数,实现中选取为γ∈(0,1):
[0111][0112]
当位置p的嵌入表征是长尾词或重要实体等重要元素时,对于第p个位置的最终嵌
入表征可以通过以下公式得到:
[0113][0114]
其中ε
p
是第p个位置的嵌入表征(token embedding),是ej的embedding,λ是控制对记忆网络的依赖程度。
[0115]
前向传播阶段:
[0116]
在每一次前向传播过程中,记忆库中的重要元素可以通过公式(3)更新,公式(3)中的m(e,x)通过公式(2)得到。
[0117]
为了使模型理解注入的知识,在掩码语言模型任务(masked language model task)基础上设计了知识感知任务(knowledge-aware task),即对比学习知识任务。将表示为transformer编码器最后一层eh中对应的表征,给定和hr,若想要预测尾部实体的第i个嵌入表征{hdi}可以通过以下方式迭代生成,其中δd是缩放系数,wd是可学习参数,而初始化为
[0118][0119]
对于嵌入表征使用对比学习来强制模型捕获知识,是目标之间的匹配函数。token层面的对比学习损失函数如下:
[0120][0121]
其中,yi是真实值,比如前边例子中的加利福尼亚,y
′i是通过负采样得到的负例,比如替换语句中随机替换成了上海或者北京。通过损失函数让模型输出的预测正确答案和真实值的相似度最大化,与替换后的伪造答案的相似度最小化。
[0122]
对比学习损失函数通过灵活定义正样本负样本,可以让正样本的得分远大于负样本。在前向传播阶段计算损失函数,以便在反向传播阶段根据损失函数调整模型参数。
[0123]
为了获得知识路径,需要在前向传播中寻找知识神经元。动态知识路由(dynamic knowledge routing,dkr)通过知识归因寻找ffn中的知识神经元以及知识路径,实现有选择的更新模型参数。
[0124]
在每个ffn层中,通过知识评估任务计算神经元的归因分数,基于归因分数,筛选出知识神经元并获得知识路径。在前向传播之后,可以用最后一个transformer层的输出来更新存储在知识增强记忆网络(knowledge-augmented memory bank)的重要元素的嵌入表征。
[0125]
对于给定输入序列x,将定义为对知识评估目标生成正确答案的概率:
[0126][0127]
其中p表示softmax函数,y
*
表示正确答案,表示第l个ffn中的第i个神经元,为的给定值。
[0128]
对于ffn网络中的神经元,以第l层ffn中第i个神经元为例,可以通过的梯度来获得的归因分数,其归因分数可以通过以下公式计算得到:
[0129][0130]
当α从0变为1时,表示由使用积分梯度引起的输出概率的变化。由于连续积分很难直接计算。在实践中,可以使用使用黎曼近似后的公式(7),并根据经验设置m的值,例如设置m的值为20:
[0131][0132]
根据归因分数可以找到每一层的知识神经元,例如将每一层归因分数最高的神经元作为知识神经元,连接各层的(例如输入层、中间层、输出层等)的知识神经元,可以获得知识路径:
[0133][0134]
用表示第层ffn的输入层的第i个节点,表示第层ffn的中间层的第j个节点,表示第层ffn的输出层的第k个节点。那么根据每层的知识神经元获得的知识路径可以用表示,更新这部分与知识相关的知识路径就可以达到更新网络中部分参数而加速网络训练的效果。
[0135]
反向传播阶段:
[0136]
本实施例中,在反向传播阶段只更新模型的部分参数,在前向传播阶段找到知识路径后,更新前向传播中找到的知识路径对应的参数来加速训练。在进行参数更新时可以根据损失函数计算梯度w,更新属于知识路径的梯度w。可以根据公式(5)得到,也可以根据公式(5)计算不同实体的损失后,基于设置的超参数加权求和获得
[0137]
针对加速知识增强的语言模型训练并具有更高的鲁棒性,利用重要实体注入的知识增强记忆网络对知识有侧重的注入。并且通过动态知识路由方法,通过计算网络中神经元的归因值找到知识神经元和知识路径,更新与事实知识相关的知识路径,加快plm的训练并增强模型的语言理解能力。实验表明,realm的模型在知识探测任务和知识感知语言理解
任务上达到了较优的性能。
[0138]
基于同一发明构思,本发明实施例还提供一种知识增强预训练语言模型知识注入系统,参见图1所示的,包括:
[0139]
transformer编码器,用于基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中。
[0140]
记忆库,用于存储重要元素的嵌入表征。
[0141]
基于同一发明构思,本发明实施例还提供一种知识增强预训练语言模型训练系统,参见图1所示的,包括:
[0142]
transformer编码器,基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中,其中设有动态路由模块,用于将知识增强的训练数据输入知识增强预训练语言模型中;针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;基于预设的损失函数更新所述知识路径的参数。
[0143]
记忆库,用于存储重要元素的嵌入表征。
[0144]
基于同一发明构思,本发明实施例还提供一种知识增强预训练语言模型注入装置,该装置可以设置在电子设备中,该装置的结构如图5所示,包括:
[0145]
识别模块11,用于基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和通过出现频率检测出的长尾词;
[0146]
注入模块12,用于将所述重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据。
[0147]
基于同一发明构思,本发明实施例还提供一种知识增强预训练语言模型训练装置,该装置可以设置在电子设备中,该装置的结构如图6所示,包括:
[0148]
输入模块21,用于将知识增强的训练数据输入知识增强预训练语言模型中;
[0149]
动态路由模块22,用于针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;
[0150]
参数更新模块23,用于基于预设的损失函数更新所述知识路径的参数。
[0151]
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现上述的知识增强预训练语言模型知识注入方法和/或上述的知识增强预训练语言模型训练方法。
[0152]
本发明实施例还提供一种电子设备,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的知识增强预训练语言模型知识注入方法和/或上述的知识增强预训练语言模型训练方法。
[0153]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法
的实施例中进行了详细描述,此处将不做详细阐述说明。
[0154]
本发明实施例的上述方法和装置,可以集成在nlp算法框架的开源代码库中。
[0155]
本发明实施例提供的上述方法,是一种面向知识增强的预训练语言模型的鲁棒性知识注入和训练加速算法,是一种能够更鲁棒、更有效的学习知识的模型框架。由于语料库中的词和实体遵循长尾分布,其中一些通常没有被语言模型很好的学习,并减缓了预训练过程。通过更鲁棒地注入知识三元组并使用知识增强的记忆网络(knowledge-augmented memory bank)来捕获有用的知识来解决这个问题。此外,在反向传播中仅更新前馈网络(ffn)中存储事实知识的一小部分神经元是一种效率更高的训练方式。具体来说,通过动态知识路由(dynamic knowledge routing)来识别前馈网络中的知识路径,并在预训练期间选择性地更新着部分参数。实验结果表明,本方案减少了至少50%的预训练时间,并且在知识探测任务(knowledge probing)和多个知识感知语言理解(knowledge-aware language understanding)任务的效果优于其他知识增强预训练语言模型。
[0156]
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
[0157]
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
[0158]
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
[0159]
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
[0160]
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动磁盘、cd-rom或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质
可以位于asic中。该asic可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
[0161]
对于软件实现,本技术中描述的技术可用执行本技术所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
[0162]
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
技术特征:
1.一种知识增强预训练语言模型知识注入方法,其特征在于,包括:基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和/或通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据作为模型的输入数据。2.如权利要求1所述的方法,其特征在于,所述基于领域知识图谱,识别预训练语句中的重要元素,包括:基于领域知识图谱中的三元组,检测预训练语句中的实体,通过预训练语句与对检测到的实体进行实体替换后的替换语句的语义相关性,检测出预训练语句中的重要实体;所述三元组包括实体、关系、实体;根据预训练语料中的词出现频率,检测出所述预训练语句中的长尾词。3.如权利要求2所述的方法,其特征在于,所述通过预训练语句与对检测到的实体进行实体替换后的替换语句的语义相关性,检测出预训练语句中的重要实体,包括:对所述预训练语句中的实体进行实体替换,得到包括替换实体的替换语句;基于层归一化函数,获得预训练语句的嵌入表征和替换预句的嵌入表征,根据所述预训练语句的嵌入表征和替换预句的嵌入表征,确定预训练语句和替换语句的语义相关性,将语义相关性符合预设条件的实体,确定为重要实体。4.权利要求1-3任一项所述的方法,其特征在于,还包括:将检测出的重要元素的嵌入表征存储到预先建立的记忆库中,所述记忆库包括用于存储重要实体嵌入表征的实体库和用来存储长尾词嵌入表征的词库;或基于检测出的重要元素的嵌入表征更新记忆库中存储的该重要元素的嵌入表征;相应的,将所述重要元素注入预训练语言模型的训练数据中,包括:将记忆库中存储的所述重要元素的嵌入表征注入预训练语言模型的训练数据中。5.权利要求1-3任一项所述的方法,其特征在于,所述基于检测出的重要元素的嵌入表征更新记忆库中存储的该重要元素的嵌入表征,包括:获取检测出的重要元素的嵌入表征在记忆库中的存储位置;将所述存储位置处该重要元素的存储嵌入表征和本次检测到该重要元素后获得的新嵌入表征进行求和,得到该重要元素更新后的嵌入表征。6.一种知识增强预训练语言模型训练方法,其特征在于,包括:将知识增强的训练数据输入知识增强预训练语言模型中;所述知识增强的训练数据是使用权利要求1-5任一所述的知识增强预训练语言模型知识注入方法得到的;针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;基于预设的损失函数更新所述知识路径的参数。7.如权利要求6所述的方法,其特征在于,所述根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分
数,包括:采用归一化指数函数,获取训练数据的输入序列对应的对知识评估目标生成正确答案的概率;针对每个神经元,根据所述对知识评估目标生成正确答案的概率的梯度,确定所述神经元的知识归因分数。8.如权利要求6所述的方法,其特征在于,所述将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径,包括:将每一层中知识归因分数最高的神经元确定为该层的知识神经元,通过路径连接每层的知识神经元,生成知识路径。9.如权利要求6-8任一所述的方法,其特征在于,所述基于预设的损失函数更新所述知识路径的参数,包括:针对训练语句中包括的实体经transformer编码器处理得到的嵌入表征,采用对比学习的方式,确定对比学习的损失函数,所述损失函数使得所述模型输出的预测正确答案与真实值相似度最大化,与替换实体对应的伪造答案的相似度最小化;根据损失函数计算模型参数的梯度,更新所述知识路径的梯度。10.一种知识增强预训练语言模型知识注入系统,其特征在于,包括:transformer编码器,用于基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和/或通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中;记忆库,用于存储重要元素的嵌入表征。11.一种知识增强预训练语言模型训练系统,其特征在于,包括:transformer编码器,用于基于领域知识图谱,识别预训练语句中的重要元素,所述重要元素包括通过语义相关方法检测出的重要实体和通过出现频率检测出的长尾词;将所述重要元素注入预训练语言模型的训练数据中,其中设有动态路由模块,用于将知识增强的训练数据输入知识增强预训练语言模型中;针对所述预训练语言模型的每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据所述概率确定每个神经元的知识归因分数;将每一层中所述知识归因分数符合预设条件的神经元作为知识神经元,生成包括所述知识神经元的知识路径;基于预设的损失函数更新所述知识路径的参数;记忆库,用于存储重要元素的嵌入表征。12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现权利要求1-5任一所述的知识增强预训练语言模型知识注入方法和/或权利要求6-9任一所述的知识增强预训练语言模型训练方法。13.一种电子设备,其特征在于,包括:存储器、处理器及存储于存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-5任一所述的知识增强预训练语言模型知识注入方法和/或权利要求6-9任一所述的知识增强预训练语言模型训练方法。
技术总结
本发明公开了一种知识增强预训练语言模型知识注入和训练方法及系统。该方法包括:基于领域知识图谱,识别预训练语句中的重要元素,将重要元素注入预训练语言模型的训练数据中,得到知识增强的训练数据,将知识增强的训练数据输入预训练语言模型中,针对每一层前馈网络,根据输入的训练数据和知识评估目标,确定对知识评估目标生成正确答案的概率,根据概率确定每个神经元的知识归因分数;将每一层中知识归因分数符合预设条件的神经元作为知识神经元,生成包括知识神经元的知识路径;基于预设的损失函数更新知识路径的参数。通过对注入的知识有侧重的学习来减少知识噪声,鲁棒性强,且能够识别知识路径减少更新的系统参数,降低资源消耗。降低资源消耗。降低资源消耗。
技术研发人员:汪诚愚 严俊冰 黄俊
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2023.03.20
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
