一种基于层次化记忆网络的问答方法与流程

文档序号:11864752阅读:270来源:国知局
一种基于层次化记忆网络的问答方法与流程
本发明涉及自动问答系统构建
技术领域
,更具体地涉及一种基于层次记忆网络的端到端问答方法。
背景技术
:长期以来,自动问答一直都是自然语言处理问题中最具挑战性的任务之一,该任务需要对文本进行深层次理解并筛选出候选答案作为系统响应。目前已有的传统方法包括:采用流水线模式对文本处理过程中各个模块进行独立训练,然后融合输出的模式;构建大规模结构化知识库,并基于此知识库进行信息推理和答案预测。近些年,基于深度学习方法的端到端系统被广泛用于解决各种任务,这些方法无须手工构造特征,且无需对各个模块进行单独调优。问答系统大致可分为两个步骤:首先定位相关语义信息,该步骤称为“激活阶段”,然后基于相关信息进行响应生成,该步骤称为“生成阶段”。最近,神经记忆网络模型在问答系统任务中取得了较好地效果。但是,这些模型最大的缺点是采用单层次句粒度的记忆单元,无法较好地解决低频词或未登录词问题。而且通常情况下,为了降低模型的时间复杂度,常需要减少词典规模。此时,现有的端到端神经网络模型无法较好地选择出低频或未登录词作为答案输出。即当目标答案词在训练词典之外时,现有方法于在线测试阶段无法较好地选择准确答案作为模型输出。以下述对话文本为例:1.先生您好,叫什么名字?2.呃,我叫威廉姆森。3.请告诉我您的护照号码。4.好的,是577838771。5.还有您的电话号码?6.号码是0016178290851。假定“威廉姆森”,“577838771”和“0016178290851”是低频词或未登录词,如果传统方法将这些词丢弃或者统一以“unk”符号替换的话,这些方法均无法从对话文本中选择出准确的用户信息。然而,在实际应用中,多数答案信息来自于低频词或长尾词,如何设计一种能够有效解决未登录词的答案选择方法是目前自动问答系统领域迫切亟需的任务。技术实现要素:(一)要解决的技术问题为了解决现有技术问题,本发明提供了一种基于层次化记忆网络的问答方法。(二)技术方案本发明提供了一种基于层次化记忆网络的问答方法,包括:步骤S101:融合词的位置和句子的时间序列信息,对句子集合中的句子进行句粒度记忆编码,得到句粒度记忆单元的双通道记忆编码;步骤S102:在问题语义编码的刺激下,通过多轮迭代的注意力机制完成所述句粒度记忆单元的信息推理,得到所述句粒度记忆单元上在词典维度的输出词概率分布;步骤S103:对所述句粒度记忆单元的信息推理结果进行k最大采样,从所述句子集合中筛选出k最大采样重要句子集合;步骤S104:利用双向循环神经网络模型对所述句子集合进行词粒度记忆编码,得到词粒度记忆单元的记忆编码;步骤S105:基于所述问题语义编码、词粒度记忆单元的记忆编码和k最大采样重要句子集合,通过注意力机制得到词粒度输出词概率分布;以及步骤S106:从句粒度和词粒度记忆单元中联合预测输出词概率分布,并利用交叉熵进行监督训练。(三)有益效果从上述技术方案可以看出,本发明的基于层次化记忆网络的问答方法具有以下有益效果:(1)本发明首先进行句粒度记忆编码,并在问题语义编码的刺激下,通过多轮迭代的注意力机制完成句粒度记忆单元的信息推理,可以提高自动问答的准确性和及时性,有利于低频词和未登录词的答案选择;(2)通过k最大采样对句子进行筛选,可以提高自动问答的效率,降低计算复杂度;(3)在句粒度记忆编码的基础上还进行词粒度记忆编码,即在两个层次进行记忆编码,形成层次化的记忆编码,可以进一步提高自动问答的准确性;(4)利用循环神经网络进行词粒度记忆编码时,是在全句子集合X上操作的,该方式可以在词粒度记忆编码过程中引入词在句子全集合中的上下文环境语义信息,可以提高自动问答的准确性和及时性;(5)词粒度记忆单元上的注意力机制是在k采样后的词粒度记忆单元子集合上运算的,避免了记忆编码中的干扰信息,并减少了词粒度注意力机制的计算量;(6)利用句粒度和词粒度记忆单元联合预测输出词概率分布,可以进一步提高自动问答的准确性,有效解决了低频词和未登录词的答案选择问题。附图说明图1为本发明实施例的基于层次化记忆网络的问答方法的流程图;图2为本发明实施例的基于层次化记忆网络的问答方法的框架示意图;图3为本发明实施例的句粒度记忆编码及基于句粒度记忆编码的信息推理示意图;图4为本发明实施例的词粒度记忆编码及基于词粒度记忆编码的注意力激活示意图;图5为本发明实施例的基于层次化记忆网络的问答方法的性能示意图1;图6为本发明实施例的基于层次化记忆网络的问答方法的又一性能示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。本发明公开了一种基于层次化记忆网络的问答方法,其基于一种全神经网络结构的端到端模型,可以实现句子集合中的信息推理,筛选和词粒度选择,有效解决大数据下问答系统对低频词或未登录词的答案选择问题。本发明的问答方法将具有时间序列信息的句子集合分别进行两个层次化的记忆编码,分别为:句粒度记忆编码和词粒度记忆编码。然后基于层次化记忆网络进行信息推理、筛选和激活,联合预测候选答案词概率分布。本发明的问答方法,通过层次化记忆网络先对句子集合进行句向量化记忆编码,考虑词在句子中的位置信息及句子在句子集合中的序列时间信息,然后通过多轮迭代的注意力机制完成句粒度记忆单元的信息推理,并基于该推理结果进行k最大采样,筛选出重要的句子信息。然后利用双向循环网络模型对句子集合进行词粒度的序列编码,并通过注意力机制从被筛选的信息中进行词粒度记忆单元的信息激活,最后分别从句粒度和词粒度记忆单元中预测输出词概率分布并通过Softmax进行联合监督训练,学习端到端的自动问答模型。下面结合附图对作为本发明实施例的基于层次化记忆网络的问答方法进行详细描述。图1为本发明实施例的基于层次化记忆网络的问答方法的流程图,参照图1,该问答方法包括:步骤S101:融合词的位置和句子的时间序列信息,对句子集合中的句子进行句粒度记忆编码,得到句粒度记忆单元的双通道记忆编码。参照图3,步骤S101包括:子步骤S101a:对句子集合中具有时间序列信息的句子进行双通道词向量映射,得到句子的双通道词向量化编码。子步骤S101a包括:给定具有时间序列信息的句子集合X={xi}i=(1,2,...,n),其中,i为句子的当前时间序列,n为句子集合的最大时间序列长度;随机初始化两个词向量矩阵和其中,|V|为词典维度,d为词向量的维度,A和C分别采用标准差为0.1、均值为0的正态分布作为随机初始化参数,对句子集合X中的句子xi进行双通道词向量映射,则句子xi中的词xij的双通道向量化编码为和j为词在句子xi中的位置信息。子步骤S101b:根据词在句子中的位置信息对双通道词向量化编码进行更新。子步骤S101b包括:根据词在句子中的位置信息j及词向量的维度d生成更新矩阵l,则更新后的双通道词向量化编码为lgj·(Axij)和lgj·(Cxij),其中:lgj=(1-j/Ji)-(g/d)(1-2j/Ji)(1)其中,Ji是句子xi中词的个数,而g为维度为d的词向量中的当前维度值,且1≤j≤J和1≤g≤d。子步骤S101c:融合句子的时间序列信息对句子进行句粒度记忆编码,得到句粒度记忆单元的双通道记忆编码。子步骤S101c包括:随机初始化两个句子时间序列的向量化矩阵和其中,n为句子集合的最大时间序列长度,d为时间向量维度,与词向量的维度相同,TA和TC分别采用标准差为0.1、均值为0的正态分布作为随机初始化参数,则句粒度记忆单元的双通道记忆编码为M(S)={{ai},{ci}},其中:ai=Σjlj·(Axij)+TA(i)---(2)]]>ci=Σjlj·(Cxij)+TC(i)---(3)]]>其中,lj为中更新矩阵l在句子xi中第j个词的更新向量,操作符·为向量间元素乘法操作,如公式(2)中lj·(Axij)表示向量lj和向量(Axij)进行元素乘法操作。步骤S102:在问题语义编码的刺激下,通过多轮迭代的注意力机制完成句粒度记忆单元的信息推理,得到句粒度记忆单元上在词典维度的输出词概率分布。步骤S102包括:子步骤S102a:对问题文本进行向量化表示,得到问题的语义编码。子步骤S102a包括:利用所述词向量矩阵对问题文本q中第j个词qj进行向量化表示并基于词在问题文本中的位置j对该向量化表示进行更新,得到问题的语义编码:u1(S)=Σjlj·(Aqj)---(4)]]>同所述公式(2)和(3),lj为更新矩阵l在句子xi中第j个词的更新向量。子步骤S102b:在问题语义编码的刺激下,利用注意力机制在句粒度记忆单元的双通道记忆编码中进行信息激活;子步骤S102b包括:采用点积方式计算问题语义编码在句粒度记忆单元的注意力权重:αi(S)=softmax(aiTu1(S))---(5)]]>则在问题语义编码刺激下,句粒度记忆单元的双通道记忆编码的激活信息为:子步骤S102c:通过多轮迭代的注意力机制完成在句粒度记忆单元的信息推理,得到句粒度记忆单元上在词典维度的输出词概率分布。子步骤S102c包括:在句粒度记忆单元上进行R轮信息激活,找到候选句子集合,得到第R轮的激活信息OR,其中,在第r+1轮信息激活中,ur+1(S)=or+ur(S)---(6)]]>αi(S)=softmax(aiTur+1(S))---(7)]]>ai=Σjlj·(Ar+1xij)+TAr+1(i)---(8)]]>or+1=Σiαi(S)ci---(9)]]>ci=Σjlj·(Cr+1xij)+TCr+1(i)---(10)]]>其中,1≤r≤(R-1),在第r+1轮信息激活中采用独立的词向量矩阵Ar+1和Cr+1和时间向量矩阵和对句子集合进行向量化表示,且Cr和分别采用标准差为0.1、均值为0的正态分布作为随机初始化参数。通过R轮迭代的注意力机制完成在句粒度记忆单元的信息推理,得到句粒度记忆单元上在词典维度的输出词概率分布为:p(S)(w)=softmax((CR)T(oR+uR(S)))---(11)]]>其中,为词典维度词集合,为第R轮信息激活的词向量矩阵,而T为转置操作符。本发明首先进行句粒度记忆编码,并在问题语义编码的刺激下,通过多轮迭代的注意力机制完成句粒度记忆单元的信息推理,可以提高自动问答的准确性和及时性,有利于低频词和未登录词的答案选择。步骤S103:对句粒度记忆单元的信息推理结果进行k最大采样,从句子集合中筛选出k最大采样重要句子集合。步骤S103包括:子步骤S103a:对句粒度记忆单元上第R轮信息激活的注意力权重向量从中选取其k个最大的注意力权重子集合子步骤S103b:选取k个最大的注意力权重子集合对应的句子集合作为k最大采样重要句子集合重要句子集合中的句子为重要句子。本发明k最大采样对句子进行筛选,可以提高自动问答的效率,降低计算复杂度,更加有利于低频词和未登录词的答案选择。步骤S104:利用双向循环神经网络模型对句子集合进行词粒度记忆编码,得到词粒度记忆单元的记忆编码。参照图4,步骤S104包括:子步骤S104a:利用双向循环网络模型对重要句子集合中的词按时间序列进行编码,得到双向循环网络模型的隐状态。双向循环网络模型有多种现有模型,本实施例采用其中的一种:门循环网络模型(GRU)。子步骤S104a包括:利用门循环网络模型(GRU)分别对句子集合X中的所有词按时间序列进行正向和反向编码,对于t时刻的词特征,前向GRU编码的隐状态为后向GRU编码的隐状态为其中,|t|为按照时间序列对句子集合X中所有词进行排列后的词最大序列长度,和的维度与词向量的维度d相同,CR为句粒度记忆单元中第R轮信息激活过程中的词向量矩阵。子步骤S104b:对双向循环网络模型的隐状态进行融合,得到词粒度记忆单元的记忆编码。子步骤S104b包括:将双向循环网络模型的隐状态直接相加,得到词粒度记忆单元的记忆编码M(W)={mt}t=1,2,..|t|),其中本发明利用循环神经网络进行词粒度记忆编码时,是在全句子集合X上操作的,该方式可以在词粒度记忆编码过程中引入词在句子全集合中的上下文环境语义信息,可以提高自动问答的准确性和及时性,有利于低频词和未登录词的答案选择。步骤S105:基于问题语义编码、词粒度记忆单元的记忆编码和k最大采样重要句子集合,通过注意力机制得到词粒度输出词概率分布。步骤S105包括:子步骤S105a:根据问题语义编码和词粒度记忆单元的记忆编码计算词粒度记忆单元的注意力权重;子步骤S105a包括:基于句粒度记忆单元上第R轮信息激活过程中的问题语义编码词粒度记忆单元的记忆编码M(W)={mt}t=1,2,..,|t|)和k最大采样重要句子集合得到归一化后的词粒度记忆单元的注意力权重向量其中:αt(w)=softmax(vTtanh(WuR(S)+Um^t))---(12)]]>其中,是k最大采样重要句子集合中的词集合所对应的词粒度记忆编码M(W)={mt}t=(1,2,...,|t|)中的子集合注意力权重向量α(W)的维度与按照时间序列对重要句子集合中所有词进行排列后的词最大序列长度一致,即为和均为学习参数,v、W和U均采用标准差为0.1、均值为0的正态分布进行随机初始化,在训练阶段进行更新。子步骤S105b:根据词粒度记忆单元的注意力权重得到词粒度输出词概率分布。在本发明的实施例中,直接采用归一化后的词粒度记忆单元的注意力权重α(W)作为词粒度输出词概率分布:p(W)(w^)=α(W)---(13)]]>此时,词粒度输出词概率分布与注意力权重的维度一致,即为重要句子集合中所有词的集合本发明在句粒度记忆编码的基础上还进行词粒度记忆编码,即在两个层次进行记忆编码,形成层次化的记忆编码,可以进一步提高自动问答的准确性,更加有利于低频词和未登录词的答案选择。同时,词粒度记忆单元上的注意力机制是在k采样后的词粒度记忆单元子集合上运算的,避免了记忆编码中的干扰信息,并减少了词粒度注意力机制的计算量。步骤S106:从句粒度和词粒度记忆单元中联合预测输出词概率分布,并利用交叉熵进行监督训练。步骤S106包括:子步骤S106a:基于句粒度记忆单元上在词典维度的输出词概率分布和词粒度输出词概率分布进行输出词联合预测,联合预测输出词分布p(w)表达式为:p(w)=p(S)(w)+p(W)(w)=p(S)(w)+trans(p(W)(w^))---(14)]]>其中,trans(·)表示将子集合的词粒度输出词概率分布映射到词典维度全集合的词粒度输出词概率分布该映射操作具体是指输出词概率分布中概率值按照其对应词子集合中的词在词典维度词全集合中的位置进行概率值映射,若全集合中的某些词在子集合中未出现,则将其输出概率置为0,得到映射后的词输出概率分布子步骤S106b:利用目标答案词分布对联合预测输出词分布进行交叉熵监督训练。给定训练集的目标答案词分布为y,则基于目标答案词分布y与联合预测输出词分布p(w)的交叉熵函数进行联合优化。本发明的一个示例性实施例中,采用随机梯度下降方法进行误差反向传播对联合优化中的目标函数进行优化,优化参数包括词粒度记忆单元中的词向量矩阵{Ar}r=(1,2,...,R)和{Cr}t=1,2,...,R)和时间向量矩阵和词粒度记忆编码过程中所采用双向GRU模型的所有参数集合{θGRU}及计算词粒度记忆单元的注意力权重(公式(12))中的v,W和U。本发明在句粒度和词粒度记忆单元中联合预测输出词概率分布,可以进一步提高自动问答的准确性,更加有利于低频词和未登录词的答案选择。图2为作为本发明一个实施例的基于层次化记忆网络的问答方法的框架示意图。参照图2,基于层次化记忆网络的问答方法共有两个层次的记忆网络单元,分别为:记忆单元一:句子集合以时间序列进行句粒度的编码记忆;记忆单元二:句子集合中所有词按照时间序列进行词粒度的编码记忆。不同记忆单元层次间采用k最大采用进行重要信息筛选和过滤。模型信息处理阶段有两处信息激活机制,分别为:激活机制一:在句粒度记忆单元上采用推理机制进行信息激活;激活机制二:在词粒度记忆单元上采用注意力机制进行词选择。整个模型训练阶段共有两处监督信息进行指导,分别为:监督信息一:句粒度记忆单元进行信息推理后的输出向量进行解码和Softmax输出后对目标词的拟合信息;监督信息二:词粒度记忆单元进行注意力机制激活和Softmax输出后对目标词的拟合信息。为了准确评估本发明方法的自动问答响应性能,本发明通过对比模型选择输出的答案词和数据真实答案词不一致的错误样本数对比本发明方法的性能。表1数据领域训练/测试问答对词典大小(全部/训练/测试)未登录目标词(百分比)机票预订7,000/7,00010,682/5,612/5,6185,070(72.43%)本发明的实验中采用一种中文机票订票领域文本数据集,该数据集共包含2,000个完整对话历史,14,000个问答对,将其5∶5分为训练集和测试集。针对这些文本数据集,本发明不做任何处理(包括去停用词和词干还原等操作)。数据集的具体统计信息如表1所示,可以看到,在测试集中的未登录目标词占有72.43%,对传统模型训练会产生比较大的影响。本发明的实验中采用以下对比方法:对比方法一:基于注意力机制的指针网络模型,该方法将句子集合中的所有词按照时间序列看成一个长句进行编码,直接利用问题与词编码的注意力机制生成答案;对比方法二:神经记忆网络模型,该方法对句子集合进行句粒度编码,利用问题的编码向量进行语义激活后的信息直接在全词典空间上进行答案匹配。本发明实验中采用参数设置如表2所示:表2ndRklrbs16100310.0110表2中,参数n为实验数据的句子集合的句子最大时间序列,d为词向量维度及隐层编码维度,R是句粒度记忆单元上推理机制的迭代次数,k为不同层次记忆间的最大采样数,lr是采用随机梯度下降方法进行模型参数优化时的学习率,bs是进行模型训练时每批样本的数量。本发明实验中,进行15轮迭代训练,所有方法均收敛如图5所示,最终收敛后的实验结果如表3所示:表3方法错误样本数对比方法一109对比方法二56本发明方法0图5和表3为本发明方法、对比方法一和对比方法二在数据集上的错误样本数评测结果。实验结果表明,本发明方法的收敛速度显著优越于其他方法。且根据表3中的最终收敛结果,可以看到,本发明方法明显优于其他方法,可以完全解决未登录词集合上的答案选择问题,达到100%的正确率。同时,本发明实验验证在层次记忆单元间信息筛选的最大采样数k对答案选择问题中错误样本数的性能影响,实验结果如图6和表4所示。可以看到,当最大采样数为1时,本发明方法性能的收敛速度和最终收敛结果可达到最优,进一步说明层次记忆单元间进行信息选择的重要性。表4最大采样数错误样本数352410至此,已经结合附图对本发明实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明的一种基于层次化记忆网络的问答方法有了清楚的认识。本发明一种基于层次化记忆网络的问答方法,首先进行句粒度记忆编码,并在问题语义编码的刺激下,通过多轮迭代的注意力机制完成句粒度记忆单元的信息推理,可以提高自动问答的准确性和及时性,有利于低频词和未登录词的答案选择;并通过k最大采样对句子进行筛选,可以提高自动问答的效率,降低计算复杂度,句粒度记忆编码的基础上还进行词粒度记忆编码,即在两个层次进行记忆编码,形成层次化的记忆编码,可以进一步提高自动问答的准确性;利用循环神经网络进行词粒度记忆编码时,是在全句子集合X上操作的,该方式可以在词粒度记忆编码过程中引入词在句子全集合中的上下文环境语义信息,可以提高自动问答的准确性和及时性;词粒度记忆单元上的注意力机制是在k采样后的词粒度记忆单元子集合上运算的,避免了记忆编码中的干扰信息,并减少了词粒度注意力机制的计算量;利用句粒度和词粒度记忆单元联合预测输出词概率分布,可以进一步提高自动问答的准确性,有效解决了低频词和未登录词的答案选择问题。需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属
技术领域
中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件的定义并不仅限于实施例中提到的各种方式,本领域普通技术人员可对其进行简单地更改或替换,例如:(1)实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向,并非用来限制本发明的保护范围;(2)上述实施例可基于设计及可靠度的考虑,彼此混合搭配使用或与其他实施例混合搭配使用,即不同实施例中的技术特征可以自由组合形成更多的实施例。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1