一种基于深度学习的行业文本匹配模型方法及装置

文档序号:29522157发布日期:2022-04-06 23:34阅读:143来源:国知局
一种基于深度学习的行业文本匹配模型方法及装置

1.本发明涉及语义匹配技术领域,特别涉及一种基于深度学习的行业文本匹配模型方法及装置。


背景技术:

2.随着互联网技术的迅速发展以及智能交互应用的广泛使用,便捷、轻快、即时已成为当下互联网社会的主要特征。在当下快节奏的学习工作中,各种社交工具、问答系统成为了人们越来越依赖的“必需品”,而这些不断推陈出新的智能交互应用以及各种社交工具与人类之间都有着共同的沟通桥梁——文字、语音、影像等等,其中最稳定、最主流的还是文字交流,而且主要是短文本交流。如何快速、准确的把握不同人群的语言特点是目前各大智能交互应用非常关心的问题,即系统如何要快速、准确地理解不同人群的输入文本含义,在此基础上才能做出正确的反应。使用搜索引擎进行问题输入时,系统自动匹配出的相似问题会自动呈现在用户面前。
3.比如人们使用互联网进行信息搜索、交易购物等学习生活时,针对同一个系统认定的标准问题,不同用户对该问题会有不同的表述方式,而为了适应互联网生态中的快捷方便性,不少线上购物平台都推出了诸如智能客服一类的自动回复系统,通过让用户选择与自己所提问题相近的选项或者根据用户的输入进行相似匹配后进行回复,但这类系统存在着可回复范围有限、无法准确识别疑问句及反问句等明显的不足,对于用户输入的请求,系统按照识别的相近语句进行自动回复的内容有很多不是用户真正想要的,因为很多系统并不能从语义的角度去理解用户的问题,进而无法准确判断用户对该问答系统的需求,从而降低一部分用户的学习和工作效率,对社会的发展和人们的日常生活造成不必要的麻烦,所以进一步完善自动问答系统的语义匹配功能、提高语义匹配的准确率显得尤为重要。
4.此外,不仅针对新兴互联网产业,越来越多的传统行业,如医疗、电力、银行、交通等实体行业,都在致力于开发属于本行业的问答系统。根据社会调查,不同的人们在上述公共场所或平台中遇到的问题大多数是相似的,同时这些问题具有被询问重复率高、表述方式多样而答案一致的特点,如果采用传统的人工服务台,当遇到用户高峰期时便容易出现服务饱和以及无法满足客户需求的情况,所以面对当下数据爆炸式增长的场景以及客户对数据的实时性需求,以人工为主的传统客服团队迫切需要自动问答系统的支持。
5.未来,这些行业的智能问答系统将不仅活跃在线下人们的实际生活中,其核心的语义匹配技术也会在该行业的搜索系统、知识库查询系统、智能线上客服等多方面发挥自己的作用。
6.为了解决上述存在的问题、提高问答系统的语义匹配的准确率,从而使客户在巨大信息量中快速准确的搜索出需要的信息,基于短文本语义相似度匹配的智能自动问答系统迅速发展,该方法是实现智能问答系统的重要支柱。根据深度学习算法,能充分理解客户的语义信息,同时智能问答系统是提供人与机器之间以自然语言交流的方式,它可以在快速、准确地分析并理解客户需求的前提下,向客户提供正确的答案,尤其是对于重复率较高
的常规短文本问题,具有高效率、方便快速的特点。
7.对于一个服务于千万级乃至亿级用户的系统在特别是随着深度学习的提出以及广泛应用,语言信息处理过程可以从传统的词语的向量空间转变到词语embedding层向量空间,或者更加复杂的神经网络隐藏层空间中进行,这种方式很好地弥补了短文本在词向量空间中稀疏、噪音大等缺点,并且能够将无监督学习与监督学习过程无缝结合,为基于问答系统的自然语言处理开辟新的方向。
8.当前问答系统主要分为问句分析和答案匹配,本文所做的研究侧重于问句分析部分,在原有的问句关键词匹配基础上,丰富了对语义特征的提取和匹配功能。目前中文问句的语义相似度分析仍有很大的发展空间,本文从两方面展开研究,首先加强对问句语义信息的特征提取;另外提高两个问句的语义相似度匹配结果。从这两方面展开研究,在一定程度上解决了问答系统中存在的此类问题,进一步完善了系统功能,提升用户的使用体验,总的来说是一项有意义的研究。
9.经过调研发现,目前对于以英文为基础的自动问答系统来说,相关技术已经相对成熟,因为英文语法相对简单、分词也容易一些,而中文属于表意型语言,计算机需要根据机器语言理解语义和分析句法,存在一定的困难,从而导致中文问答系统的研究进展缓慢。传统的中文问答系统仅考虑语句字面意思,并未对实际的语义进行更深层的挖掘,从而很容易偏离正确答案。
10.适应于中文文本的语义相似度匹配算法,国内的研究情况主要包括以下几类:
11.基于知识库的文本相似度匹配:以参考语义词典how net为主,可分为义项、义原和词语三种相似度计算。其中义原被定义为词典中最小的单位,其主要是根据how net中词语在义原层次的距离来计算文本相似度。义项是根据词语来定的,每个词可以有一个或者多个义项,而义项又是由一个或者多个义原构成,因此义项的相似度计算,可以等同义原之间的相似度计算。根据所有义项的组合进行排序,取其中的最大值作为词语的相似度计算结果。
12.基于深度学习的文本相似度匹配:国内研究者chen等人在word2vec的基础上将单个字符串向量融入进词向量对匹配方法进行改进,提出了基于中文的字符特征增强模型,yu等人基于拆分的方式提出了联合学习词嵌入模型,将每个单独的汉字拆成多个由偏旁部构成的独立字体,然后将独立字体向量和词向量进行融合。
13.基于bert预训练模型的语义相似度匹配:国内研究者吴炎等人提出一种基于bert模型(bidirectional encoder representations from transformers)的中文语义匹配算法。该算法将句子转换为特征向量表示,结合attention机制,计算两个句子的语义相似度进行匹配。经过与传统的语义匹配模型bilstm(bi-directional long short-term memory)、esim(enhanced sequential inference model)、bimpm(bilateral multi-perspective matching)的对比实验,基于bert的中文语义匹配算法在测试集上的表现均优于以上语义匹配模型的实验结果。
14.对基于知识库的文本相似度匹配算法来说,该方法过于依赖语料库,均需要上下文进行向量化描述,如果语料库中的重复语句过多,则会出现计算量过大、计算结果可能出现过于稀疏等问题。对基于深度学习的文本相似度匹配算法来说,该方法同样需要大量的专业数据进行网络训练,无法做到很好的行业可迁移性,此外限于网络层深、结构设计等其
他特点,导致传统的深度神经网络在对语义的理解能力上仍然发挥欠佳。对基于bert预训练模型的语义相似度匹配算法来说,虽然该算法利用bert模型替代常用的word2vec模型进行句向量表示可以更好地表征上下文信息,但由于bert模型在设计时没有考虑太多中文语料的特点,同时现有的训练数据也存在不足的情况,导致其效果依然有不少可提升的空间。


技术实现要素:

15.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
16.为此,本发明的一个目的在于提出一种基于深度学习的行业文本匹配模型方法,本发明通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,可以解决不同细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域的语义匹配问题,更重要的是,最终应用的模型可以做到在不需要行业内专业训练数据的情况下,依旧可以实现对不同行业的语义精确匹配任务。
17.本发明的另一个目的在于提出一种基于深度学习的行业文本匹配模型装置。
18.为达到上述目的,本发明一方面提出了基于深度学习的行业文本匹配模型方法,包括以下步骤:获取预设个数的跨行业数据作为训练集,以得到待匹配语句;将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化;基于优化后的预训练模型,经过优化后的预训练模型匹配后输出三个文本匹配结果;根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。
19.本发明实施例的基于深度学习的行业文本匹配模型方法,通过获取预设个数的跨行业数据作为训练集,以得到待匹配语句;将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化;基于优化后的预训练模型,经过优化后的预训练模型匹配后输出三个文本匹配结果;根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。本发明通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,可以解决不同细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域的语义匹配问题,更重要的是,最终应用的模型可以做到在不需要行业内专业训练数据的情况下,依旧可以实现对不同行业的语义精确匹配任务。
20.另外,根据本发明上述实施例的基于深度学习的行业文本匹配模型方法还可以具有以下附加的技术特征:
21.进一步地,在本发明的一个实施例中,所述对函数式相对位置编码优化,包括:所述预训练模型nezha通过采用函数式相对位置编码,输出与注意力得分的计算涉及到相对位置的正弦函数,则函数式相对位置编码公式,如下所示:
[0022][0023][0024]
进一步地,在本发明的一个实施例中,所述对全词覆盖优化,包括:所述预训练模型nezha,采用全词覆盖策略,当一个汉字被覆盖时,属于同一个汉字的其他汉字都被一起覆盖。
[0025]
进一步地,在本发明的一个实施例中,所述对混合精度训练优化,包括:所述预训练模型nezha采用混合精度训练,在每次训练迭代中,将主权值舍入半精度浮点格式,并使用所述半精度浮点格式存储的权值、激活和梯度执行向前和向后传递;将所述梯度转换为单精度浮点格式,并使用所述单精度浮点格式梯度更新主权重。
[0026]
进一步地,在本发明的一个实施例中,所述对优化器优化,包括:所述预训练模型nezha采用lamb优化器,自适应策略为所述lamb优化器中的每个参数调整learning rate。
[0027]
进一步地,在本发明的一个实施例中,所述优化后的预训练模型roberta,包括:
[0028]
多个模型参数量和训练数据;预先调整优化器超参数;所述预训练模型roberta选取预设个数的训练样本数;去掉下一句预测任务,并且数据连续从一个文档中获得;使用动态掩码,通过复制一个训练样本得到多份数据,每份数据使用不同掩码,并加大复制的分数,每次向所述预训练模型roberta输入一个序列时生成新的掩码模式;使用全词掩码。
[0029]
进一步地,在本发明的一个实施例中,所述优化后的预训练模型roberta,还包括:
[0030]
文本编码,所述预训练模型roberta,在文本编码过程中使用预设级别的byte的bpe词汇表训练,且不用对输入作额外的预处理或分词。
[0031]
进一步地,在本发明的一个实施例中,所述优化后的预训练模型ernie-gram,包括:
[0032]
所述ernie-gram模型通过显式引入语言粒度知识,显式n-gram掩码语言模型,学习n-gram粒度语言信息,基于所述显式n-gram掩码语言模型,所述预训练模型ernie-gram以多层次n-gram语言粒度掩码学习。
[0033]
进一步地,在本发明的一个实施例中,所述方法,还包括:对所述优化后的预训练模型nezha、roberta和ernie-gram进行验证,包括:
[0034]
对于所述行业文本匹配模型nerb,当存在任意两种或两种以上预训练模型的结果输出为“相似”时,所述行业文本匹配模型nerb的输出结果就判为“相似”,否则为“不相似”,则所述行业文本匹配模型nerb的准确率为:
[0035]
p=p1*p2*(1-p3)+p1*p3*(1-p2)+p1*p3*(1-p1)+p1*p2*p3
[0036]
=p1*p2+p1*p3+p1*p3

2*p1*p2*p3
[0037]
其中,p1、p2、p3分别为预训练模型nezha、roberta和ernie-gram三个语义匹配模型在进行语义匹配时的准确率。
[0038]
若所述三个语义匹配模型在包含第一预设数量个样本的数据集中都能做到正确判断其中的第二预设数量个样本是否匹配,剩下的第三预设数量个无法正确判断的样本经排序处理后在一个连续的子序列中。
[0039]
为达到上述目的,本发明另一方面提出了一种基于深度学习的行业文本匹配模型装置,包括:获取模块,用于获取预设个数的跨行业数据作为训练集,以得到待匹配语句;训
练模块,用于将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化;输出模块,用于基于优化后的预训练模型,经过优化后的预训练模型匹配后输出三个文本匹配结果;判断模块,用于根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。
[0040]
本发明实施例的基于深度学习的行业文本匹配模型装置,通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,可以解决不同细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域的语义匹配问题,更重要的是,最终应用的模型可以做到在不需要行业内专业训练数据的情况下,依旧可以实现对不同行业的语义精确匹配任务。
[0041]
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0042]
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0043]
图1为根据本发明实施例的基于深度学习的行业文本匹配模型方法流程图;
[0044]
图2为根据本发明实施例的训练集中的句子数目与长度分布示意图;
[0045]
图3为根据本发明实施例的验证集中的句子数目与长度分布示意图;
[0046]
图4为根据本发明实施例的bert和ernie模型的语义建模示例示意图;
[0047]
图5为根据本发明实施例的连续n-gram掩码语言模型vs显式n-gram掩码语言模型示意图;
[0048]
图6为根据本发明实施例的n-gram多层次语言粒度掩码学习示意图;
[0049]
图7为根据本发明实施例的语义匹配综合模型示意图;
[0050]
图8为根据本发明实施例的三种模型在同一样本集中的一种极限表现示意图;
[0051]
图9为根据本发明实施例的三种模型在同一样本集中的另一种极限表现示意图;
[0052]
图10为根据本发明实施例的不同的预训练模型在训练时的损失率变化示意图;
[0053]
图11为根据本发明实施例的不同的预训练模型在训练时的准确率变化示意图;
[0054]
图12为根据本发明实施例的基于深度学习的行业文本匹配模型装置结构示意图。
具体实施方式
[0055]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0056]
下面参照附图描述根据本发明实施例提出的基于深度学习的行业文本匹配模型方法及装置,首先将参照附图描述根据本发明实施例提出的基于深度学习的行业文本匹配模型方法。
[0057]
图1是本发明一个实施例的基于深度学习的行业文本匹配模型方法流程图。
[0058]
如图1所示,该基于深度学习的行业文本匹配模型方法包括以下步骤:
[0059]
步骤s1,获取预设个数的跨行业数据作为训练集,以得到待匹配语句。
[0060]
可以理解的是,本发明获取预设个数的跨行业数据作为训练集,本领域技术人员可以根据实际需求设定,本发明不做限制。
[0061]
具体的,针对细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域,通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,最终在不需要行业内专业训练数据的情况下实现对不同行业的语义精确匹配。
[0062]
可以理解的是,lcqmc(a large-scale chinese question matching corpus),是百度知道领域的中文问题匹配数据集,该数据集从百度知道不同领域的用户问题中抽取构建数据,它的出现解决了在中文领域大规模问题匹配数据集的缺失问题。
[0063]
数据集中的样本都是以句子对的形式出现,在训练集中的每条样本后面还有显示这对句子是否相似的标签“0”和“1”,其中“0”代表不相似,“1”代表相似,即语义匹配。经过统计发现,在训练集中的样本数目(句子对数目)达到了238766对,在验证集中共有样本8802对,在测试集中的样本数目也达到了12500对,如此大规模的语义匹配数据集也为之后整个模型在跨行业句子匹配的不错表现作了基本的铺垫。
[0064]
为了在设计模型时选择更加合适的输入参数,比如“句子长度”,本技术对训练集和验证集中的样本的长度进行了统计,对训练集中的句子进行统计得出其不同长度下的数目分布如图2所示,同理可得验证集中的句子数目与长度分布如图3所示,从中我们可以看到,在训练集和验证集中的样本长度的分布是基本一致的,且大多数样本的长度在5~15之间,这与人们平时在各种交互应用上的习惯输入长度基本符合。
[0065]
步骤s2,将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化。
[0066]
具体的,预训练模型nezha(哪吒)的引进和相关改进。
[0067]
nezha(哪吒),寓意“无所不能,可以解决不同任务”。在模型nezha上,实现了基于gpu多卡多机并行训练,并且对训练过程进行了优化,提高训练效率,最终得到了多中文nlp任务预训练模型nezha,本发明主要介绍其另外的四项改进,即:函数式相对位置编码、全词覆盖、混合精度训练和改进优化器。
[0068]
函数式位置编码;位置编码有函数式和参数式两种,函数式通过定义函数进行直接计算即可。参数式中位置编码涉及距离和维度两个概念,word embedding一般有几百维,每一维各有一个值,一个位置编码的值正是通过位置和维度两个参数来确定。
[0069]
与transformer的绝对位置编码相比,nezha预训练模型则采用了函数式相对位置编码,其输出与注意力得分的计算涉及到相对位置的正弦函数,通过相对位置编码解决了在transformer中词与词之间因为互不知道相隔的距离引发的一系列资源占用问题。
[0070]
在nezha模型中,距离和维度都是由正弦函数导出的,并且在模型训练期间是固定的。也就是说,位置编码的每个维度对应一个正弦,不同维度的正弦函数具有不同的波长,而选择固定正弦函数,则可以使该模型具有更强的扩展性;即当它遇到比训练中序列长度更长的序列时,依然可以发挥作用。函数式相对位置编码公式,如下所示:
[0071][0072][0073]
全词覆盖;通过pre-training with whole word masking for chinese bert研究表明,将随机掩码词汇替换成全词掩码,可以有效提高预训练模型效果,即如果有一个汉字被掩蔽,属于同一个汉字的其他汉字都被掩蔽在一起。而nezha预训练模型,则采用了全词覆盖(wwm)策略,当一个汉字被覆盖时,属于同一个汉字的其他汉字都被一起覆盖。该策略被证明比bert中的随机覆盖训练(即每个符号或汉字都被随机屏蔽)更有效。
[0074]
在nezha的wwm实现中,研究者使用了一个标记化工具jieba2进行中文分词(即寻找中文单词的边界)。在wwm训练数据中,每个样本包含多个覆盖汉字,覆盖汉字的总数约占其长度的12%,随机替换的占1.5%,尽管这样预测整个词运算难度有所增加,但最终取得的效果更好。
[0075]
混合精度训练;传统的深度神经网络训练使用fp32(即单精度浮点格式)来表示训练中涉及的所有变量(包括模型参数和梯度);而混合精度训练在训练中采用了多精度。具体而言,它重点保证模型中权重的单精度副本(称为主权重),即在每次训练迭代中,将主权值舍入fp16(即半精度浮点格式),并使用fp16格式存储的权值、激活和梯度执行向前和向后传递;最后将梯度转换为fp32格式,并使用fp32梯度更新主权重。
[0076]
nezha模型在预训练中采用了混合精度训练技术。该技术可以使训练速度提高2-3倍,同时也减少了模型的空间消耗,从而可以利用较大的批量。
[0077]
改进优化器(lamb optimizer);通常在深度神经网络训练的batch size很大的情况下(超过一定阈值)会给模型的泛化能力带来负面影响,而lamb优化器采用一种通用的自适应策略为每个参数调整learning rate,能够在batch size很大的情况下不损失模型的效果,使得模型训练能够采用很大的batch size,进而极大提高训练速度。
[0078]
实验通过对各种自然语言理解(nlu)任务进行微调来测试预训练模型的性能,并将nezha模型和其他顶尖的汉语预训练语言模型包括谷歌bert(汉语版),bert-wwm以及ernie进行了对比(详细参数见论文),最终结果如表1所示:
[0079]
表1 nezha实验结果
[0080][0081]
可以看到,nezha在大部分情况下,都取得了相较更好的性能;尤其在pd-ner任务下,nezha最高达到了97.87分。另一个表现较亮眼的模型还有ernie baidu 2.0,颇有超越nezha的趋势。关于这个情况,论文中作者也解释到,由于实验设置或微调方法可能存在差异,比较可能不完全公平,之后其它模型新版发布后,他们将在相同的设置下对其进行评估并更新此报告。
[0082]
预训练模型roberta的引入和相关改进
[0083]
作为预训练模型bert的改进版——roberta,具体在模型规模、算力、数据和训练方法上,与bert相比roberta主要有以下几点改进:
[0084]
更大的模型参数量(在cloud tpu v3-256上训练了24小时,相当于在tpu v3-8(128g显存)上需要训练一个月)。
[0085]
更大量、更多样化的训练数据。使用30g中文数据进行训练,包含3亿个句子,100亿个字(即token)。包括新闻、微博、社区讨论、网络书籍以及多个百科等等,覆盖数十万个主题。
[0086]
调整了优化器等超参数。
[0087]
更大bacth size。roberta在训练过程中使用了更大的bacth size。尝试过从256到8000大小不等的bacth size,在本技术中的roberta使用了大小为8000的batch size。
[0088]
去掉下一句预测(nsp)任务,并且数据连续从一个文档中获得。
[0089]
动态掩码。原版的bert通过在数据预处理期间执行一次掩码而得到一个静态掩码。而roberta通过复制一个训练样本得到多份数据,每份数据使用不同掩码,并加大复制的分数,这样每次向模型输入一个序列时都会生成新的掩码模式。在大量数据不断输入的过程中,模型会逐渐适应不同的掩码策略,学习不同的语言表征,即实现了动态掩码效果。
[0090]
使用了全词掩码(whole word mask)。在全词mask中,如果一个完整的词的部分wordpiece子词被mask,则同属该词的其他部分也会被mask,即全词掩码。
[0091]
文本编码。byte-pair encoding(bpe)是字符级和词级别表征的混合,支持处理自然语言语料库中的众多常见词汇。原版的bert实现使用字符级别的bpe词汇,大小为30k,是在利用启发式分词规则对输入进行预处理之后学得的。roberta使用更大的byte级别、包含50k的subword单元的bpe词汇表来训练,且没有对输入作任何额外的预处理或分词。
[0092]
在中文简体阅读理解基线测试时,采用的数据集是哈工大讯飞联合实验室发布的中文机器阅读理解数据——cmrc 2018,任务是根据给定问题,系统需要从篇章中抽取出片段作为答案,形式与squad相同,测试结果如表2所示。
[0093]
表2不同模型在cmrc 2018上的表现
[0094]
模型开发集测试集挑战集bert65.5(64.4)/84.5(84.0)70.0(68.7)/87.0(86.3)18.6(17.0)/43.3(41.3)ernie65.4(64.3)/84.7(84.2)69.4(68.2)/86.6(86.1)19.6(17.0)/44.3(42.8)bert-wwm66.3(65.0)/85.6(84.7)70.5(69.1)/87.4(86.7)21.0(19.3)/47.0(43.9)bert-wwm-ext67.1(65.6)/85.7(85.0)71.4(70.0)/87.7(87.0)24.0(20.0)/47.3(44.6)roberta-wwm-ext67.4(66.5)/87.2(86.5)72.6(71.4)/89.4(88.8)26.2(24.6)/51.0(49.1)
[0095]
预训练模型ernie-gram的引入和相关改进
[0096]
最近几年来,无监督文本的深度神经网络预训练模型大幅提升了各个nlp任务的效果。相比于早期把重点放在与上下文无关的词向量建模工作上,之后提出的cove,elmo,gpt等模型则构建了语句级的语义表示。尤其是google提出的bert模型,通过预测被mask的单词或汉字汉字,利用transformer的多层self-attention双向建模能力,取得了更好的语义表示效果。
[0097]
尽管是语义表示能力更强的bert模型,其建模对象也主要聚焦在原始语言信号
上,而在利用语义知识单元进行建模方面则较少。众所周知,中文的表达体系中有很多都是以词语这种语义知识单元为主要对象,因此这些预训练模型在中文领域的应用就暴露出一个很明显的问题,举例说明,bert在处理中文任务时,是通过预测一个汉字进行建模,此时模型很难学出词语级的语义单元,从而影响了对完整语义表示的认知能力。例如,对于黑[mask]江,羽[mask]球,[mask]奇斗艳这些词,bert模型通过字的搭配,很容易推测出掩码的字信息,但没有显式地对语义概念单元(如黑龙江、羽毛球、争奇斗艳)以及其对应的语义关系进行建模和认知。
[0098]
由此出发,设想如果可以利用海量文本中蕴含的潜在知识,让模型学出词语级的语义单元,那无疑会进一步提升各个nlp任务效果。因此百度提出了基于知识增强的ernie模型。该模型通过对海量数据中的实体概念等先验语义知识进行建模,可以学习中文语境下的语义关系。具体到模型的设计方法中,ernie模型通过对词、实体等语义单元的掩码,使得模型学习完整概念的语义表示。因此可以说,相较于bert学习的原始语言信号,ernie直接对先验语义知识单元进行建模,增强了模型的语义表示能力。
[0099]
这里通过对一句话“钓鱼岛是中国不可分割的一部分.”的学习来举例如下:
[0100]
learned by bert:钓[mask]岛是中[mask]的固有[mask]土。
[0101]
learned by ernie:钓鱼岛是[mask][mask]的固有[mask][mask]。
[0102]
如图4左半部分的bert模型中所示,通过『钓』与『岛』的局部共现,即可判断出『鱼』字,但模型没有学习与『钓鱼岛』相关的知识。而图4右半部分的ernie通过学习词与实体的表达,使模型能够建模出『钓鱼岛』与『中国』的关系,进而学习到『钓鱼岛』是『中国』的固有领土。
[0103]
可见,相比于bert,ernie模型可建模字的组合语义,具备更强的通用性和可扩展性。例如建模红色,黄色,紫色等表示颜色的词语时,ernie可以通过相同字的不同的语义组合来学到不同词之间的语义关系。
[0104]
除此之外,ernie在训练语料方面进行了扩充性的改进,在其中引入了多源数据知识。除了对百科类的文章进行建模,还对新闻资讯类、论坛对话类数据进行建模学习,由于在对话语境中往往存在着相同回复对应的query语义相似的情况,因此对话数据的学习和建模成为了提高语义表示能力的一条重要途径。基于该假设,erine采用dlm(dialogue language model)建模query-response对话结构,将对话pair对作为输入,引入dialogue embedding标识对话的角色,利用dialogue response loss学习对话的隐式关系,通过该方法建模进一步提升模型语义表示能力。
[0105]
综上所述,ernie在实体概念知识的学习以及训练语料的扩展方面进行了改进,增强了模型在中文情景下的语义表示能力。为验证ernie的知识学习能力,研究者通过多种任务对模型进行了考察,包括语义相似度任务、情感分析任务、命名实体识别任务和检索式问答匹配任务等,这里我们以bert和ernie模型分别在语义相似度任务lcqmc上的表现为例。其中lcqmc是哈尔滨工业大学在自然语言处理国际顶会coling2018构建的问题语义匹配数据集,其目标是判断两个问题的语义是否相同。实验结果如表3所示,可以看出,无论是在开发集中还是在测试集中,ernie模型的表现都有了明显的提升。
[0106]
表3 bert和ernie在lcqmc上的表现
[0107][0108]
在2021年5月20日举办的深度学习开发者峰会wave summit上,针对当前预训练模型现存的难点痛点,百度文心ernie开源了最新预训练模型:多粒度语言知识增强模型ernie-gram。
[0109]
从ernie模型诞生起,百度研究者们就在预训练模型中引入知识,通过知识增强的方法提升语义模型的知识表达能力。ernie-gram模型正是通过显式引入语言粒度知识,从而提升模型的效果。具体来说,ernie-gram提出显式n-gram掩码语言模型,学习n-gram粒度语言信息,如图5所示,相对连续的n-gram掩码语言模型大幅缩小了语义学习空间(v^n

v_(n-gram),其中v为词表大小,n为建模的gram长度),显著提升预训练模型收敛速度。
[0110]
此外,在显式n-gram语义粒度建模基础上,ernie-gram提出多层次n-gram语言粒度掩码学习,具体结构如图6所示,利用two-stream双流自注意力机制,实现同时学习n-gram语言单元内细粒度(fine-grained)语义知识和n-gram语言单元间粗粒度(coarse-[0111]
grained)语义知识,实现多层次的语言粒度知识学习。
[0112]
ernie-gram在不增加任何计算复杂度的前提下,在自然语言推断任务、短文本相似度任务、阅读理解任务等多个典型中文任务上,效果显著超越了业界主流开源预训练模型。此外,ernie-gram英文预训练模型也在通用语言理解任务、阅读理解任务上效果超越主流模型。
[0113]
步骤s3,基于优化后的预训练模型,经过优化后的预训练模型匹配后输出三个文本匹配结果。
[0114]
步骤s4,根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。
[0115]
可以里理解的是,本发明设计了一种综合匹配模型——nerb,模型整体结构如图7所示,待匹配的句子对输入模型后,在经过预处理如分词等操作后分别进入到bert预训练模型的不同改进版本——nezha、roberta、ernie-gram,充分发挥三者在语义表达能力上的不同优势,经过不同的预训练模型匹配后输出三个结果,接下来对输出的三个结果进行综合,当存在任意2种结果或3种结果均输出为“相似”时,整体模型的输出结果就判为相似,否则为“不相似”,这样就发挥了不同模型的特有的语义理解能力,并通过结果综合判断进一步提高了整个模型的输出效果。
[0116]
虽然nezha、roberta、ernie-gram三个预训练模型基本都是从bert预训练模型改进而来,但由于三者无论是在训练方法还是模型结构等多方面的改进思路都很不相同,所以三种预训练模型的语义理解能力也是各有特色、互有优劣的,如果将每个预训练模型的表现效果看作是“基本发挥效果+特色化额外效果”,那么综合匹配模型的思路就是想在三种模型的“基本发挥效果”之上,经过综合后再发挥不同模型的“特色化额外效果”,进而给整个模型的最终表现锦上添花。为进一步佐证本技术的发明思路,下面将从两个方面对其
进行验证。
[0117]
假设nezha、roberta、ernie-gram三个预训练模型在进行语义匹配时的准确率分别为p1、p2、p3,三个模型互相独立,对于综合模型而言,当存在任意2种或2种以上预训练模型的结果输出为“相似”时,整体模型的输出结果就判为“相似”,否则为“不相似”,由此可得,整体综合模型的准确率为:
[0118]
p=p1*p2*(1-p3)+p1*p3*(1-p2)+p1*p3*(1-p1)+p1*p2*p3
[0119]
=p1*p2+p1*p3+p1*p3

2*p1*p2*p3
[0120]
若p1=p2=p3=0.9,代入公式得p=0.972,由此可见综合模型的准确率相比子模型具有明显的优势和提升。
[0121]
给出三个语义匹配模型分别为模型1、模型2和模型3,为方便理解和计算,假设三个模型在包含100个样本的数据集中都能做到正确判断其中的90个样本是否匹配,剩下的10个无法正确判断的样本经排序处理后在一个连续的子序列中,首先考虑一种极限情况,如图8所示,此时模型1、模型2和模型3在同一段序列10个样本上判断出错,此时任意抽出一条样本,按照综合模型的判断法则(存在任意2种或2种以上预训练模型的结果判断正确),综合模型的判断正确率为90%,与三个子模型相同,但注意,此时是三个完全不同的预训练模型具有完全一样的判断错误的样本集,这种概率是非常非常低的。
[0122]
如图9所示为另一种极限情况,此时模型1、模型2和模型3判断出错的样本集各不相同,此时任意抽出一条样本,按照综合模型的判断法则(存在任意2种或2种以上预训练模型的结果判断正确),综合模型的判断正确率为100%,远远高于三个子模型。
[0123]
综合以上分析,综合模型在实际中的表现虽然很难达到100%的判断正确率,但考虑样布分布的随机性和三个子模型各自的特色性,综合模型的判断正确率会高于任一子模型,相比子模型具有明显的优势和提升。
[0124]
为了检验模型在行业中的应用效果,本发明分别选取了来自制造行业中的生产线技术领域、医疗行业中的病症咨询领域的数据作为测试,经过数据清洗后,过滤掉无标签等部分指标缺失数据,任意抽取其中10项数据,如表4和表5所示分别是制造行业中的生产线技术领域和医疗行业中的病症咨询领域的部分数据展示,每一条样本都是一个句子对,或相似,或不相似,输入模型后由模型输出判断结果。
[0125][0126]
表4制造行业生产线技术领域的部分数据
[0127]
[0128]
表5医疗行业病症咨询领域的部分数据展示
[0129]
实验环境与实验设置
[0130]
本发明实验环境如下:操作系统为windows10,cpu是intel(r)core(tm)i7-10510u cpu@1.80ghz 2.30ghz,gpu为v100,显存大小为32gb,采用paddle深度学习框架,使用python语言编程实现,开发工具使用的是notebook。
[0131]
实验设置迭代次数为3,采用准确率、损失率作为实验的评价标准。设样本总数为n,被正确分类的样本数为n,则正确率(accuracy)为:
[0132][0133]
本实验模型可视为一个三层网络结构,包括文本向量输入层、语义匹配层和输出层。模型中有许多超参数需要设置和调整,本发明通过多次实验,在每一次迭代完成后,根据实验的准确率和损失率对超参数进行设置和调整。经过多次迭代实验,模型设置的超参数如表6所示。
[0134]
表6各神经网络的超参数
[0135][0136]
2)实验对比与结果分析
[0137]
将本发明所用的nezha、ernie-gram和roberta模型和基础版bert、tiny-bert和albert预训练模型进行对比。
[0138]
本实验中各个采用的损失函数均为“交叉熵”损失函数,在选取优化器时,考虑sgd、adagrad、rmsprop和adam优化器,其中由于adam优化器结合了adagrad和rmsprop两种优化算法的优点,对梯度的一阶矩估计(first moment estimation,即梯度的均值)和二阶矩估计(second moment estimation,即梯度的未中心化的方差)进行综合考虑,不断迭代更新网络参数,很适合应用于大规模的数据及参数的场景,所以本方案选取adam作为各个模型的优化函数。同时,考虑到adam泛化性能差的一个重要原因就是其使用l2正则项并不像在sgd中那么有效,于是结合weight decay的原始定义去修正了这个问题。
[0139]
此外,综合考虑到各个预训练模型的训练成本和效果提升幅度,经多次实验后发现预训练模型在经过3个epoch的训练后,无论是损失率的下降还是准确率的提升都不再明显,以tiny-bert、nezha、ernie-gram三个预训练模型为例,在经历三个epoch的训练后,三种预训练模型的损失率和准确率的变化曲线分别如图10和图11所示,从中可以看出,在经历了三个epoch的训练后,模型的损失率和准确率都不再有明显的变化,所以本技术在实验中将各个模型的训练次数“epoch”均设为3次,激活函数均采用“relu”函数。
[0140]
实验中选用经历了3次epoch的训练后,为了使各个模型得到充分的测试,本技术在实验中选取了lcqmc的语义匹配数据集,共包含待测试样本12500条,经过各个模型在测试集上的测试,得到其对应的在测试集上的准确率和损失率,最终各个模型的实验测试结果对比如表7所示。
[0141]
表7各个模型与本文所提的新型混联模型结果对比
[0142][0143]
从表7可以看出,ernie-gram、nezha和roberta模型在准确率和损失率上相比其他预训练模型均有提升(除了nezha的损失率),无论是bert、albert还是tiny-bert模型,组成nerb语义匹配综合模型的子模型都有着更加出色的效果,这也进一步保障了综合语义匹配模型在进行判断时的准确率和灵活性。而通过大规模数据集在不同预训练模型上的学习与迭代,使得整个nerb语义匹配综合模型既可进行跨行业的迁移应用,同时发挥了不同子模型特有的语义理解能力,并通过对结果的综合判断进一步提高了整个模型的输出效果。
[0144]
根据本发明实施例的基于深度学习的行业文本匹配模型方法,通过获取预设个数的跨行业数据作为训练集,以得到待匹配语句;将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化;基于优化后的预训练模型,经过优化后的预训练模型匹配后输出三个文本匹配结果;根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。本发明通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,可以解决不同细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域的语义匹配问题,更重要的是,最终应用的模型可以做到在不需要行业内专业训练数据的情况下,依旧可以实现对不同行业的语义精确匹配任务。
[0145]
其次参照附图描述根据本发明实施例提出的基于深度学习的行业文本匹配模型装置。
[0146]
图12是本发明一个实施例的基于深度学习的行业文本匹配模型装置结构示意图。
[0147]
如图12所示,该基于深度学习的行业文本匹配模型装置10包括:获取模块100、训练模块200、输出模块300和判断模块400。
[0148]
获取模块100,用于获取预设个数的跨行业数据作为训练集,以得到待匹配语句;
[0149]
训练模块200,用于将待匹配语句输入基于深度学习的行业文本匹配模型nerb,经过数据预处理后分别输入优化后的预训练模型nezha、roberta和ernie-gram;其中,优化后的预训练模型nezha,包括:对函数式相对位置编码、全词覆盖、混合精度训练和优化器的优化;
[0150]
输出模块300,用于基于优化后的预训练模型,经过优化后的预训练模型匹配后输
出三个文本匹配结果;
[0151]
判断模块400,用于根据三个文本匹配结果进行综合判断,当存在任意两种文本匹配结果或三种文本匹配结果输出为相似时,行业文本匹配模型的输出结果判为相似,否则为不相似。
[0152]
根据本发明实施例的基于深度学习的行业文本匹配模型装置,通过引入大规模跨行业数据作为训练集、集成应用多个具有中文特色的预训练模型优势,可以解决不同细分行业如制造业中的汽车生产线技术参考、医疗行业中的患者咨询、商业领域中的交易搜索等多种应用领域的语义匹配问题,更重要的是,最终应用的模型可以做到在不需要行业内专业训练数据的情况下,依旧可以实现对不同行业的语义精确匹配任务。
[0153]
需要说明的是,前述对基于深度学习的行业文本匹配模型方法实施例的解释说明也适用于该装置,此处不再赘述。
[0154]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0155]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0156]
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0157]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0158]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1