一种基于自适应融合多注意力网络的问题和答案匹配方法

文档序号:25483141发布日期:2021-06-15 21:43阅读:90来源:国知局
一种基于自适应融合多注意力网络的问题和答案匹配方法
本发明涉及自然语言处理
技术领域
,更具体的,涉及一种基于自适应融合多注意力网络的问题和答案匹配方法。
背景技术
:深度学习具有很强的函数拟合能力,利用深度学习进行答案选择任务,具有运行速度快便于计算,优于传统效果等优点。通过精心设计网络结构,模拟人在进行答案选择时的思维过程,预期应该可以得到很好的效果。从前人的研究中,我们得知问题表征的学习在答案选择中有着非常重要的作用。一个好的答案选择模型,应该要能生成高质量的问题向量和答案向量,并且全面的捕捉问题与答案中的交互关系。实际上很难让一个简单的自注意力网络能够对所有问题都收集到有用的信息,因为一个双层前向网络的拟合能力有限。另外由于其时序特性,训练起来也比一般的全连接网络更困难。显然难以具备对所有问题都适用的收集信息的能力。一个方法是使用多个自注意力网络,然后强迫每个自注意力网络各自关注句子中的不同部分。它在训练时引入一个惩罚项,使得不同的自注意力网络产生的权值越相似,这个额外的惩罚损失就越大,从而达到强迫关注不同部分的目的。但是,目前使用多个自注意力网络的模型是通过多轮处理进行的,每轮处理之间存在依赖关系,所以更多的是应该将其理解为通过多轮处理增强对问题和答案的理解,而不是获得问题和答案的多角度、多方面的信息。现有技术中,如2018-11-23公开的中国专利,基于交叉注意力神经网络的答案选择方法、装置和电子设备,公开号为cn108875074a,通过注意力机制利用不同候选答案之间的相互信息进行交叉评分以确定问题数据和答案数据之间的相关性,从而提升答案选择的准确性,但没有获得问题和答案的多角度、多方面的信息。技术实现要素:本发明为克服目前使用多个自注意力网络的模型是通过多轮处理增强对问题和答案的理解,而不是获得问题和答案的多角度、多方面的信息的技术缺陷,提供一种基于自适应融合多注意力网络的问题和答案匹配方法。为解决上述技术问题,本发明的技术方案如下:一种基于自适应融合多注意力网络的问题和答案匹配方法,包括以下步骤:s1:分别将问题和答案里的每个单词都转化为词向量,并对问题和答案中的词向量进行编码,得到问题和答案的词向量序列;s2:根据词向量序列使用多个自注意网络提取一个问题中不同方面的信息,并分别编码为不同的问题向量;s3:使用序列注意力网络为每个问题向量生成对应的答案向量;s4:计算出每个问题向量及其对应的答案向量的匹配度得分,并通过评估出一个问题中每个问题向量的权重以自适应地融合多个方面信息的匹配度得分,根据融合后的匹配度得分进行问题和答案的匹配。优选的,在步骤s1中,采用双向lstm分别对问题和答案中的词向量进行编码。优选的,给定包含l个单词的句子s=(w1,w2,...,wl),利用双向lstm编码词向量,获取对应的隐藏层:当给定的句子s为问题时,则得到问题中每个词向量的隐藏层向量序列hq={hq(1),...,hq(l)},将hq={hq(1),...,hq(l)}作为问题的词向量序列;当给定的句子s为答案时,则得到答案中每个词向量的隐藏层向量序列ha={ha(1),...,ha(l)},将ha={ha(1),...,ha(l)}作为答案的词向量序列;其中,w1,w2,...,wl分别为句子s中的l个单词,为前向lstm的在t时刻的隐层状态,表示前向lstm的编码过程,为前向lstm的在t-1时刻的隐层状态,wt是t时刻输入lstm进行编码的的单词向量,为后向lstm的在t时刻的隐层状态,表示后向lstm编码的编码过程,为后向lstm的在t-1时刻的状态,ht是双向lstm的最终编码结果,hq(1),...,hq(l)分别为问题中的l个词向量,ha(1),...,ha(l)分别为答案中的l个词向量。优选的,在步骤s2中,第k个自注意力网络通过以下公式计算得到问题向量且每个不同的问题向量都提取了问题不同方面的信息:其中,为第k个自注意力网络从原始的问题向量hq(t)中提取得到的注意力向量,和均为第k个自注意网络的参数,为词向量的权重。优选的,步骤s3包括以下步骤:s3.1:获取答案中每个词向量的隐藏层向量序列ha={ha(1),...,ha(l)};s3.2:对于第k个问题向量通过将同一个序列注意力模型应用到ha上,生成对应的第k个答案词向量的权重s3.3:计算ha的加权和作为第k个答案向量优选的,在序列注意力模型中,使用lstm计算每个答案词向量的权重。优选的,将lstm的输入定义为:将向量输入到一个双向lstm中,获取对应的隐藏层之后把隐藏层的各个维度相加,获取权重分数;然后获取答案词向量的权重最后,通过计算答案隐藏层的加权和,获取答案向量优选的,在步骤s4中,通过余弦相似度计算出每个问题向量及其对应的答案向量的匹配度得分。优选的,通过采用多层感知机网络评估出一个问题中每个问题向量的权重。优选的,通过以下公式自适应地融合多个方面信息的匹配度得分:其中,q表示问题,a表示答案,k为问题向量的总数,αk为第k个问题向量的权重,为第k个问题向量,为第k个答案向量,ws1和均为可训练的网络参数,sk为对第k个问题向量通过自注意力得到的注意力向量。与现有技术相比,本发明技术方案的有益效果是:本发明提供了一种基于自适应融合多注意力网络的问题和答案匹配方法,利用多个自注意力网络专注不同的方向,以此多角度、多方面地抽取问题和答案的信息,并对抽取到的信息进行自适应地融合,极大地提升了网络性能。附图说明图1为本发明的技术方案实施步骤流程图;图2为本发明的技术方案实施框架示意图。具体实施方式附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。下面结合附图和实施例对本发明的技术方案做进一步的说明。实施例1如图1所示,一种基于自适应融合多注意力网络的问题和答案匹配方法,包括以下步骤:s1:分别将问题和答案里的每个单词都转化为词向量,并对问题和答案中的词向量进行编码,得到问题和答案的词向量序列;s2:根据词向量序列使用多个自注意网络提取一个问题中不同方面的信息,并分别编码为不同的问题向量;其中,一个自注意网络提取一个问题中一个方面的信息,对应得到一个问题向量;s3:使用序列注意力网络为每个问题向量生成对应的答案向量;s4:计算出每个问题向量及其对应的答案向量的匹配度得分,并通过评估出一个问题中每个问题向量的权重以自适应地融合多个方面信息的匹配度得分,根据融合后的匹配度得分进行问题和答案的匹配。实施例2更具体的,如图2所示,在步骤s1中,采用双向lstm分别对问题和答案中的词向量进行编码,以此获得了包含了上下文信息的词向量表征。更具体的,给定包含l个单词的句子s=(w1,w2,...,wl),利用双向lstm编码词向量,获取对应的隐藏层:当给定的句子s为问题时,则得到问题中每个词向量的隐藏层向量序列hq={hq(1),...,hq(l)},将hq={hq(1),...,hq(l)}作为问题的词向量序列;当给定的句子s为答案时,则得到答案中每个词向量的隐藏层向量序列ha={ha(1),...,ha(l)},将ha={ha(1),...,ha(l)}作为答案的词向量序列;其中,w1,w2,...,wl分别为句子s中的l个单词,为前向lstm的在t时刻的隐层状态,表示前向lstm的编码过程,为前向lstm的在t-1时刻的隐层状态,wt是t时刻输入lstm进行编码的的单词向量,为后向lstm的在t时刻的隐层状态,表示后向lstm编码的编码过程,为后向lstm的在t-1时刻的状态,ht是双向lstm的最终编码结果,hq(1),...,hq(l)分别为问题中的l个词向量,ha(1),...,ha(l)分别为答案中的l个词向量。更具体的,在步骤s2中,第k个自注意力网络通过以下公式计算得到问题向量且每个不同的问题向量都提取了问题不同方面的信息:其中,为第k个自注意力网络从原始的问题向量hq(t)中提取得到的注意力向量,hq(t)得自于双向lstm最终隐状态,和均为第k个自注意网络的参数,为词向量的权重。更具体的,步骤s3包括以下步骤:s3.1:获取答案中每个词向量的隐藏层向量序列ha={ha(1),...,ha(l)};s3.2:对于第k个问题向量通过将同一个序列注意力模型应用到ha上,生成对应的第k个答案词向量的权重s3.3:计算ha的加权和作为第k个答案向量更具体的,在序列注意力模型中,使用lstm计算每个答案词向量的权重。在具体实施过程中,使用lstm去计算每个答案词向量的权重,而非一般注意力模型里那样使用感知机或者双线性乘积。通过这种方式,在计算权重时能引入上下文信息。更具体的,将lstm的输入定义为:不同于序列注意力网络的原本设置,此处拼接了和ha(t)的元素乘法和欧几里得距离作为输入;元素乘法的意义,在于获取和每个词的隐藏层ha(t)中各个维度的相似性;欧几里得距离的意义,则在于获取各个维度之间的差异性;从而能够得到意义更准确的序列注意力,提高筛选的精确性;将向量输入到一个双向lstm中,获取对应的隐藏层之后把隐藏层的各个维度相加,获取权重分数;然后获取答案词向量的权重最后,通过计算答案隐藏层的加权和,获取答案向量更具体的,在步骤s4中,通过余弦相似度计算出每个问题向量及其对应的答案向量的匹配度得分。更具体的,通过采用多层感知机网络评估出一个问题中每个问题向量的权重。更具体的,通过以下公式自适应地融合多个方面信息的匹配度得分:其中,q表示问题,a表示答案,k为问题向量的总数,αk为第k个问题向量的权重,为第k个问题向量,为第k个答案向量,ws1和均为可训练的网络参数,sk为对第k个问题向量通过自注意力得到的注意力向量。在具体实施过程中,尽管让问题生成了k个问题向量,但实际上并不是所有问题向量都是有意义的,因为问题一般不会有那么多方面的信息。因此,当个一个问题向量确实提取了有意义的信息时,需要给这个问题向量的匹配分赋高权重。当它没有提取到信息时,需要给它低权重。实施例3在本实施例中,选用三个被多篇论文所引用的公开数据集作为评估数据集,进行所述的一种基于自适应融合多注意力网络的问题和答案匹配方法的实证研究。表1是三个公开数据集的情况。表1数据集trecqawikiqainsuranceqa训练/验证/测试问题数1162/65/68873/126/24312887/1000/1800x2平均问题长度867平均答案长度282595平均候选答案数目389500为了与过去的研究进行公平对比,本实施例在同一数据集上沿用了前人的评价标准。在trecqa和wikiqa上,本实施例采用了meanaverageprecision(map)和meanreciprocalrank(mrr)去评价模型的表现。另一方面,insuranceqa沿用前人用的top1正确率,它要求正确答案必须排在第一名。对所有对比的模型,本实施例报告它们原论文里的正确率。所述的一种基于自适应融合多注意力网络(adaptivefusionofmultipleself-attentionnetwork,简称afman)的问题和答案匹配方法使用pytorch框架实现,使用一个840b文本预训练的300维glove作为词向量。词向量在训练过程中固定不变。对问题和答案进行编码的双向lstm共享参数。编码句子和做序列注意力的lstm都由一层构成。为了防止过拟合,本实施例采用了p=0.3的dropout层,设置在lstm的输入之前。在训练的过程中,本实施例计算了每个问题负样本和正样本的marginloss(margin=0.1)。为了进一步提升效果,本实施例对每个问题计算多个负样本的loss,但仅取loss最大的负样本进行优化。另外,还采用了平均词向量作为额外的问题向量,从而提升性能。对所有的数据集,本实施例都选择了adam优化器。在训练过程中,本实施例在验证集上调参,并使用验证集上效果最好的模型在测试集上观察效果。对于trecqa数据集,将批量大小设置为100,并将负责编码句子的lstm隐藏层设置为141。此外,在自注意力网络和序列注意力网络中,隐藏层设置为282。在这个数据集中,将自注意力网络的个数k设置为5,并在训练集上迭代训练20次。而在训练insuranceqa数据集上,采用了类似与trecqa的参数设置,除了将训练迭代次数设置为50(因为数据集要更大)。wikiqa是本实施例中测试的数据集中最小的一个。因此,本实施例把lstm的隐藏层设置为96,注意力网络的隐藏层设置为144。另外,由于在wikiqa中更多的自注意力网络对性能没有帮助,故把k设置为1以加快运算速度。在训练时,把批量大小设置为50并迭代训练20次。表2是在trecqa数据集上的实验结果。表2模型mapmrrqa-lstm0.6820.765qa-lstm/cnnwith0.7280.824ap-bilstm0.7130.803ap-cnn0.7530.851iarnn-gate0.7370.821rnn-poa0.7810.851bimpm0.8020.875multihopattentionnetworks0.8130.893afman0.8270.902在trecqa数据集上的正确率如表2所示,本实施例中的afman不仅大幅地超越了经典的qa-lstm模型,同时也比近期提出的注意力模型要更好。与使用了两路注意力机制的ap-cnn相比,afman所用的注意力方式被实验证实是更优越的方案,分别在map和mrr上超越了ap-cnn模型7.4%和5.1%。它也比基于位置注意力的rnn在map/mrr上提升约5%。而且,afman比最新提出的bimpm和多跳注意力网络表现得更加优秀,获得了trecqa上的先进表现。表3是在insuranceqa数据集上的实验结果。表3模型mapmrrqa-lstm0.6310.580qa-lstmwithattention0.6810.622ap-cnn0.6980.663ap-bilstm0.7170.664iarnn-gate0.7010.628multihopattentionnetworks0.7050.669afman0.7380.694可以从表1看出,insuranceqa是更大规模的数据集,不仅问题数量更大,而且答案的平均长度也比trecqa和wikiqa要长得多。这意味着答案里可能含有更多方面的信息(包括更多的冗余信息),问题和答案的联系也会更加复杂,对答案选择任务而言更具有挑战性。在表3,afman大幅超越了所有其他对比方法,意味着afman在解决复杂答案选择任务上的优越性能。表4是在wikiqa数据集上的实验结果。表4表4报告了在wikiqa数据集上的实验结果。首先,本实施例中的afman比起ap-cnn超出了约4%性能。另外,iarnn获得了最好的map结果,稍微超过了afman。与最近bimpm和man相比,afman在map和mrr上约有1-2%的提升。afman在wikiqa上取得的提升不如在insuranceqa与trecqa上明显,其归因于wikiqa的规模要远小于另外两个数据集,因此模型复杂度较高的afman缺乏足够的训练数据进行拟合。总体来说,afman在wikiqa数据集上也获得了较好的性能表现。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1