一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种融合多头注意力对齐的文本匹配方法

2022-11-30 10:50:32 来源:中国专利 TAG:


1.本发明涉及自然语言处理,更具体地,涉及一种融合多头注意力对齐的文本匹配方法。


背景技术:

2.文本匹配任务是自然语言处理领域的一项基础任务,旨在判定两个语句是否表达相同的语义信息。
3.目前,文本匹配领域最为流行的预训练语言模型是sentence-bert(sbert)。经典孪生网络sbert模型是nils reimers在2019年为了克服bert模型不适用于聚类以及句子回归等无监督训练任务而提出,在nils的论文中提到直接使用bert最后一层的结果作为句向量的效果甚至比词向量更差,直接使用[cls]的效果最差。因此,可以认为bert模型只适用于特定任务下的微调,然后使用bert微调模型进行预测,以获得最佳效果。sbert原文中采用孪生和三元网络结构对bert预训练模型进行微调,从而得出具备语义信息的句子嵌入来计算相似度。这种结构通过对每句话单独编码极大提高了计算效率。例如,在从10000条文本中检测出最相似的两条文本的任务中,单纯使用bert将造成巨大的计算开销,模型将运算n*(n-1)/2=49995000次(约为65小时),这极消耗时间。而在同等条件下,sbert仅需运算10000次(约为5s)获取句子向量表示后,再进行后续的运算,极大的提高了效率。
[0004]
综上,目前流行的文本匹配模型sbert作为一种基于表示型的模型,具有只能提取文本句子级别的表示向量,未能考虑到文本对之间在词级别的交互信息,影响了文本匹配的准确性。


技术实现要素:

[0005]
本发明的目的是克服上述现有技术的缺陷,提供一种融合多头注意力对齐的文本匹配方法,该方法包括:
[0006]
利于语言模型sbert构建文本匹配模型,该文本匹配模型依次包括输入层、bert编码层、交互式句子表示层、融合层和全连接层;
[0007]
基于设定的损失函数训练所述文本匹配模型;
[0008]
利用经训练的所述文本匹配模型估计目标文本间的匹配程度;
[0009]
其中:
[0010]
输入层以第一句子和第二句子两个句子作为输入,并采用字符级向量、位置向量和分段向量对句子进行表征;
[0011]
bert编码层以对应句子的字符级向量、位置向量和分段向量的叠加向量作为输入,提取具有语义信息的隐藏层向量;
[0012]
交互式句子表示层基于所述隐藏层向量进行句向量间的注意力交互,以分别提取两个句子的交互特征;
[0013]
融合层通过计算第一句子与第二句子的交互特征向量之间的差和乘积进行拼接,
得到特征融合向量;
[0014]
全连接层基于所述特征融合向量,获得句子间的匹配结果。
[0015]
与现有技术相比,本发明的优点在于,利用深度学习技术来提高文本匹配的准确性,通过引入多头注意力对齐的机制将基于表示的模型和基于交互的模型进行融合,所改进的模型能够更好地捕捉到原始文本中不同层次的信息,提高文本匹配的准确性。
[0016]
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
[0017]
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
[0018]
图1是根据本发明一个实施例的融合多头注意力对齐的文本匹配方法的流程图;
[0019]
图2是根据本发明一个实施例的文本匹配模型的结构图;
[0020]
附图中,output-输出;fusion-融合;interactive sentence representation-交互式句子表示;mean-pooling-平均池化;last hidden vector-最后的隐藏向量;prediction-预测;sentence a-句子a;sentence b-句子b。sub-减法;mul-乘法。
具体实施方式
[0021]
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0022]
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0023]
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
[0024]
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0025]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0026]
参见图1所示,所提供的融合多头注意力对齐的文本匹配方法包括以下步骤:
[0027]
步骤s110,利用语言模型sbert构建文本匹配模型,该模型考虑文本对之间在词级别的交互信息。
[0028]
在一个实施例中,提出了一种结合多头注意力对齐机制的sbert改进模型,或称为sbmaa(improved sbert algorithm integrating multiple attention alignment mechanism)。参见图2所示,sbmaa模型整体上包括输入层、bert编码层、交互式句子表示层(interactive sentence representation)、融合层(fusion)、全连接层及输出层。bert编码层和交互式句子表示层是孪生网络架构。
[0029]
在下文中,将重点介绍bert编码层、交互式句子表示层和融合层的实施例。
[0030]
1)输入层和bert编码层
[0031]
例如,输入层有两个句子a和b,根据bert模型输入特点,输入层由字符级向量(token_embeddings)、位置向量(position_embeddings)和分段向量(segment embeddings)组成,并将这三个向量相加后输入bert的编码层。
[0032]
字符级向量(token_embeddings)是文本中每个字对应的向量,位置向量(position_embeddings)包含文本中每个字的时序信息,分段向量(segment embeddings)则是将文本按句分段,并对文本做段定位,用标记符号[cls]和[sep]区分不同的句子,[cls]表示分类输出的特殊符号,[sep]表示分隔非连续token序列的特殊符号,同时保存每个句子的位置信息。叠加三层向量后,将其引入transformer编码器中,对每个字用双向编码表示。transformer编码器以字符级向量叠加作为输入,依次经过自注意层、残差层、归一化层和前馈神经网络层,最终得到具有语义信息的隐层向量。
[0033]
2)交互式句子表示层
[0034]
在获取到隐藏层向量后进行句向量间的注意力交互,例如,首先计算相似度矩阵,得到两个句子之间的相似度,然后使用注意力机制分别对每个句子进行编码,具体公式如下:
[0035][0036][0037][0038]
其中,e
ij
为两个隐藏层向量的相似度矩阵,为句子a经过bert后的隐藏层语义向量的转置,为句子b经过bert后的隐藏层语义向量,因此e
ij
表示句子a中第i个词和句子b中第j个词的相似度,表示经过注意力交互后提取出的句a与句b的相似性信息,表示经过注意力交互后提取出的句b与句a的相似性信息。获取到用于预测的重要特征和后,再分别进行平均池化得到特征u和v,la表示句子a中包含的词的数量,lb表示句子b包含的词的数量,e
ik
表示句子a中第i个词和整个句子b的相似度,e
kj
表示句子b中第j个词和整个句子a的相似度。
[0039]
在该步骤中,交互式句子表示层基于隐藏层向量进行句向量间的注意力交互,以分别提取两个句子的交互特征,其中因为考虑到输出的两个隐藏层向量之间的融合,使用点积的方式计算两者之间的attention权重。相对于其他的权重计算方式,本发明采用点积方式计算两个隐藏层之间的交互表示,能够提高计算效率,并且由于序列长度的影响,后续可采取平均池化的方式使结果为固定的长度向量。
[0040]
3)融合层、全连接层及输出层
[0041]
交互式句子表示层提取每个句子中的交互特征u和v,融合层通过计算第一个句子与第二个句子的交互特征向量之间的差和乘积进行拼接来增强局部推理信息,即融合层用于对两个句子的交互特征进行融合,得到特征融合向量。
[0042]
具体地,融合层根据以下公式(4)将两部分交互特征进行融合:
[0043]
f=[u-v;u
·
v]
ꢀꢀꢀ
(4)
[0044]
其中u
·
v是向量间的减法操作,其目的是获取差异特征;u
·
v是向量矩阵相乘操作,目的是获取交互特征。然后,将减法和乘法操作的结果进行向量拼接,得到特征融合向量f。最后,将f输入到一个全连接网络,调整特征的权重,使用例如softmax函数预测分类的结果。全连接层的计算公式表示如下:
[0045][0046][0047]
其中wf表示权重,其是维度与f相同的矩阵,bf表示偏置,其是维度与f相同的一维向量,表示预测概率,预测分类的结果取时得到范围内的最大值。其中,y表示真实标签。
[0048]
在上述步骤中,由于需要综合所有的信息,做全局的分析,因此将所有信息储存在一个序列中,也就是融合特征向量,放入全连接层分类器中进行分类,其中激活函数可采用tan函数,得到的结果送入softmax层,最终获得句子间的匹配结果。
[0049]
综上,本发明实施例利用sbert实现文本向量化表示,在孪生网络架构的基础上引入多头注意力的对齐,增加了句向量的交互,再拼接了一个融合层,使得模型自身拥有获取交互信息的能力。
[0050]
步骤s120,利用设定的损失函数预训练文本匹配模型。
[0051]
损失函数可使用交叉熵损失函数或其他类型的损失函数(如mse损失函数)。训练数据集可采用atec2018 nlp或其他数据集。预训练后,即可获得模型的权重和偏置等优化参数。
[0052]
步骤s130,对于待匹配的目标文本,利用经训练的文本匹配模型获得匹配结果。
[0053]
在本文中,文本匹配可包括预测目标文本之间的相似程度,应用于多种场景,如信息检索、问答系统、复述问题、对话系统、机器翻译等。
[0054]
为了进一步验证本发明效果,进行了对比试验。基于同一数据集,选取其他5种经典的文本匹配模型:esim、sbert、consert、bert-whitening、simcse进行实验对比。其中esim是基于bilstm和tree-lstm的模型,是一种专为自然语言推理而设计的加强版lstm;consert是采用无监督和数据增强方式来微调bert以进行对比学习的模型;bert-whitening是通过简单的白化操作,将嵌入向量转化为各向同性的文本匹配模型;任务中效果可媲美bert-flow;simcse是使用对比学习优化目标函数进行模型微调获取文本向量表示的文本匹配模型。
[0055]
下表1列出了6种不同的深度学习模型在atec2018 nlp数据集上的实验结果。
[0056]
表1在atec2018数据集上的实验结果统计
[0057][0058]
由表1可以看出,本发明提出的sbmaa模型的f1值可达到84.7%,召回率可达到92.6%,整体效果优于其他模型,相比基线模型sbert在f1值上有18.6%的提升。这是因为,本发明在sbert模型基础上增加了句向量间的交互,使得相比于直接捕获句子之间的相似性信息,可以捕获更细粒度上的语义信息。
[0059]
综上所述,sentence-ber作为一种预训练语言模型,基于bert分别获取了两个句子的语义表示进行对比,取得了较好的效果。但由于模型的架构方式不同,它也属于基于表示型的文本匹配算法,此类算法的主要思想是提取两个句子的主语义,在同一向量空间中编码,然后对两个文本的语义进行建模,最后计算相似度。此类方法的缺点是只提取文本句子级别的表示向量,未考虑文本对之间在词级别的交互信息,从而失去了语义焦点,容易产生语义上的偏差,并且很难在上下文中度量单个单词的含义。而本发明提出的sbmaa模型通过将sbert的12层transformer的encoder模块中multi-head attention(多头注意力)部分产生的隐藏层向量进行alignment(交互)获取交互特征进行融合,加强了文本间的交互,从而有效提升了文本信息匹配的效果。
[0060]
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0061]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0062]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外
部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0063]
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 、python等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0064]
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0065]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0066]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0067]
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和
硬件结合的方式实现都是等价的。
[0068]
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献