一种基于端到端记忆网络的问答方法技术

技术编号:19122093 阅读:15 留言:0更新日期:2018-10-10 05:12
本发明专利技术公开了一种基于端到端记忆网络的问答方法,本方法为:1)对目标数据集进行划分,将该目标数据集中的已知事实、问题和答案分割开并存储;2)将所述已知事实中的每个句子xi转换为词向量;3)将问题转换为词向量,计算每一句子xi对应的词向量mi与问题的词向量的相关度,得到对应句子xi的权重值pi;4)提取问题中的关键词;检索包含关键词的词向量,对于搜索到的每一词向量mi,计算mi中每个单词与关键词的相关度,作为第j个单词的权重;mi中每个单词加权后的向量记为向量ci;5)计算MemN2N模型中每层网络的输出;6)根据MemN2N模型的最终输出作为问题的答案。本发明专利技术大大提升了实问答的准确性。

【技术实现步骤摘要】
一种基于端到端记忆网络的问答方法
本专利技术涉及自然语言处理领域和端到端记忆网络(End-to-EndMemoryNetworks),具体是一种基于端到端记忆网络的问答方法。
技术介绍
2011年,IBM因为推出名为Watson的计算机而受到广泛关注,Watson被设计用来回答游戏节目Jeopardy上的问题,它的表现非常好,足以和最好的玩家相匹敌。想让Watson跟最好的玩家竞争,需要集成大量的知识,而且需要用到很多自然语言处理领域最好的研究成果和大量的人工智能技术。从此,问答系统(Question-Answersystem,QAsystem)便获得了广大研究者的广泛关注。传统的问答系统是人工智能领域的一个应用,通常局限于一个非常狭窄的领域,虽然精巧,但大多由人工编制的知识库加上一个自然语言接口形成,本质上都属于受限于实验室的玩具系统(ToySystem)。随着互联网的发展以及搜索引擎的普及,一些具有商业应用价值的开放式问答系统应运而生。目前开放式问答系统主要分为两类:基于信息检索(InformationRetrievalBased)的系统和基于语义分析(SemanticParsingBased)的系统。基于信息检索的系统首先将问题转化为有效的查询,然后获取大量的候选答案,再通过对候选答案进行打分排序,得到最后的答案;而基于语义分析的系统更侧重于通过语义分析系统来获取问题的精准释义,然后从知识库中获取正确答案。随着深度学习的发展,研究者们开始探索如何实现一种端到端训练的问答系统模型。2015年,Facebook人工智能实验室提出一种新颖的基于循环神经网络和外部存储块的端到端问答系统模型(MemN2N),与传统的问答系统模型相比,该模型在训练阶段降低了监督粒度的要求,从而使得MemN2N能够更容易地应用到实际任务中。人工智能领域,创建模型一直面临着两大难题:一是模型能够在回答问题或者完成任务时提供多个计算步骤;二是模型能够描述序列数据中长期依赖关系。注意力机制(AttentionMechanism)是解决上述问题的一个有效方法,并在图像识别领域得到了广泛的应用。但是直到最近,该机制才开始被用于自然语言处理领域的一些任务。注意力机制是效仿人类视觉,即人类视线会专注于某一区域,这一区域的图像呈现“高分辨率”而该区域周围呈现“低分辨率”。注意力机制在确定“Attention”时需要计算每个输入和输出之间的相关度,通过比较这些相关度数据(模型的内部状态)选择“Attention”。因此注意力的实现实际上更类似于内存访问,而不是“Attention”。但是这种内存访问不同于传统的内存访问,注意力机制访问的是所有计算单元以及他们的权重因子,而不是一个内存单元中的数据。相对于上述注意力机制,记忆机制(MemoryMechanism)则可以追溯到更早的工作中,一个标准的循环神经网络的隐藏层状态就是一种记忆机制。循环神经网络存在梯度流失的问题,该问题会进一步妨碍循环神经网络学习和获取数据的长期依赖关系。后来,Hochreiter等人引入门机制(GatingMechanism)来改进上述循环神经网络。门机制是一种让信息选择式通过的方法,允许显示内存删除或更新网络内部状态。最近,研究者们提出越来越复杂的记忆机制,比如文章中提出的一种端到端记忆网络(End-to-EndMemoryNetworks)。该模型是一种新颖的循环神经网络结构,它能够在一定程度上有效地解决上述问题。该模型在输出信号之前允许网络循环多次的在一块足够大的内存中进行读写操作,并且每次访问内存操作都会更新内存单元的内容。该模型的参数一旦通过某种特定的方式进行设置后,模型采用的记忆机制就演变为注意力机制。该模型是对文章中提出的记忆神经网络(MemoryNeuralNetwork,MemNN)的一种变体,即各模块之间是连续的,本专利技术后面的内容都简称该模型为MemN2N模型。MemN2N是RNNsearch模型的一个扩展版本,MemN2N在得到输出信号前会经过多层计算单元,下文中本专利技术将每一层的计算称为一个hop。MemN2N的输入为一个离散的集合X(x1,…,xn)和一个查询或者问题q,最后输出答案a。xi,q以及a中每个符号都来自同一个包含V个词的字典,MemN2N会把每个xi写入到固定大小的内存,然后将X和q通过一些方法转换为一个特殊的连续空间中的连续表示(ContinuousRepresentation),这样在训练后期即可应用BP算法进行反向调优,模型的整体结构如图1所示。MemN2N能够灵活地增加模型的计算单元(hop),实验结果表明,增加模型的计算单元可以提高模型的整体性能。MemN2N模型每层的计算单元结构都是一致的,区别在于每层的模型参数不同,图1(a)展示的是仅包含一层计算单元(onehop)的情况,主要包含以下几个模块:1.输入内存表示(Inputmemoryrepresentation)。MemN2N首先将输入集合X=(x1,…,xn)存入内存中,其中x1,…,xn代表本专利技术中涉及的句子,并且将集合中的每个{xi}都转换为内存向量{mi}。每个{mi}都是对应的{xi}在一个连续空间经过转换而来的d维向量,最简单的转换方式就是通过一个d×V维的转换矩阵A。对于查询q,MemN2N采用类似的转换方式。另外,通过一个与A维度相同的转换矩阵B,得到句子的词向量u,然后就可以转换后的空间中通过内积度量每个mi和u之间的相关度,最后通过公式1将该内积度量转换为概率形式。pi=Softmax(uTmi)(1)其中,2.输出内存表示(Outputmemoryrepresentation)。和上面输入向量的转换类似,这里也通过一个转换矩阵C(与A,B的维度相同)来得到{xi}的对应的输出向量,表示为{ci}。最终模型的响应向量(responsevector)o是对输入ci的加权求和,如公式2所示,其中pi来自输入内存表示模块。o=∑ipici(2)直观上看,输入内存表示到输出内存表示的过程是连续的,因此可以用BP算法来对整个模型进行训练。3.生成最后的预测值(GeneratingthefinalPrediction)。对于只有一层计算单元的模型,MemN2N首先将响应向量o和查询的内部表示u进行加和,然后再将一个维度与上述转换矩阵一致的加权矩阵W来作用该加和结果,最后通过Softmax计算出最后的预测标签,计算公式如下:本专利技术可以通过叠加计算单元来进一步增强模型的性能,如图1(b)所示。这里展示的一个包含三层(threehops)计算单元的模型,其中,叠加计算单元的算法流程如下:(1)模型每一层计算单元的的输入都是基于上一层的输入ik和输出ok:ik+1=ok+ik(4)(2)每一层的计算单元都有自己的转换矩阵Ak,而Bk用来转换输入X中的每个{xi}。为了方便训练,减少训练参数,MemN2N提供了两种方式来对这些矩阵进行约束:1)Adjacent方式。每一层计算单元的输出内存表示对应的转换矩阵等于上一层输入内存表示的转换矩阵,Ak+1=Ck(5)而对于生成最终预测的加权矩阵W,本专利技术将其设置为与最上层计算单元的输出内存表示的转换矩阵相等WT本文档来自技高网...
一种基于端到端记忆网络的问答方法

【技术保护点】
1.一种基于端到端记忆网络的问答方法,其步骤包括:1)对目标数据集进行划分,将该目标数据集中的已知事实、问题和答案分割开并存储;2)将所述已知事实中的每个句子xi转换为词向量并存储到Memory模块中;3)将所述问题转换为词向量,计算Memory中每一句子xi对应的词向量mi与所述问题的词向量的相关度,得到对应句子xi的权重值pi;4)提取所述问题中的关键词key;在Memory模块中检索包含所述关键词key的词向量,对于搜索到的每一词向量mi,计算该词向量mi中每个单词与所述关键词key的相关度,作为第j个单词的权重pij_key;该词向量mi中每个单词加权后的向量记为向量ci;5)计算MemN2N模型中每层网络的输出o=∑i(pi+pij_key*Axij)*ci;其中,Axij表示句子xi中第j个单词的词向量;如果MemN2N模型为单层网络,则o即为MemN2N模型的输出;如果MemN2N模型为多层网络,则计算uk+1=ok+uk+keyn作为第k+1层的输入;其中,keyn表示第n个关键词key的词向量,ok为第k层网络的输出,uk为第k层网络的输入,uk+1为第k+1层网络的输入;6)根据MemN2N模型的最终输出作为所述问题的答案。...

【技术特征摘要】
1.一种基于端到端记忆网络的问答方法,其步骤包括:1)对目标数据集进行划分,将该目标数据集中的已知事实、问题和答案分割开并存储;2)将所述已知事实中的每个句子xi转换为词向量并存储到Memory模块中;3)将所述问题转换为词向量,计算Memory中每一句子xi对应的词向量mi与所述问题的词向量的相关度,得到对应句子xi的权重值pi;4)提取所述问题中的关键词key;在Memory模块中检索包含所述关键词key的词向量,对于搜索到的每一词向量mi,计算该词向量mi中每个单词与所述关键词key的相关度,作为第j个单词的权重pij_key;该词向量mi中每个单词加权后的向量记为向量ci;5)计算MemN2N模型中每层网络的输出o=∑i(pi+pij_key*Axij)*ci;其中,Axij表示句子xi中第j个单词的词向量;如果MemN2N模型为单层网络,则o即为MemN2N模型的输出;如果MemN2N模型为多层网络,则计算uk+1=ok+uk+keyn作为第k+1层的输...

【专利技术属性】
技术研发人员:徐俊刚王琦
申请(专利权)人:中国科学院大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1