基于结构化注意力机制的答案选择系统及方法与流程

文档序号:11514906阅读:161来源:国知局
基于结构化注意力机制的答案选择系统及方法与流程

本发明涉及计算机程序基于组件对象的软件工程技术领域,特别涉及一种基于结构化注意力机制的答案选择系统及方法。



背景技术:

答案选择(answerselection)是问答系统中非常重要的一个子问题。在过去几年中,answerselection被广泛关注。其中,用深度学习的解决answerselection工作取得了很好的效果。其中端到端的注意力机制,在该问题上取得了最好的结果。端到端的attention计算了答案和问题之间的词语权重。然而,端到端的注意力机制,把整个语句看作一个有序的字符串,依次处理来生成句子的表示,这种表示方式没有考虑到句子之间的句法信息,以及句子之间的更复杂的联系。



技术实现要素:

本发明旨在至少解决上述技术问题之一。

为此,本发明的一个目的在于提出一种基于结构化注意力机制的答案选择系统,该系统能够更好地解决答案选择问题,在wikiqa数据集上取得了很好的效果。

本发明的第二个目的在于提出一种基于结构化注意力机制的答案选择方法。

为了实现上述目的,本发明第一方面的实施例提出了一种基于结构化注意力机制的答案选择系统,包括:处理模块,所述处理模块用于根据treelstm处理输入的句子,以生成所述句子的语义表示;第一计算模块,所述第一计算模块用于根据所述句子的语义表示,计算问题和答案之间的注意力权重;第二计算模块,所述第二计算模块用于根据所述注意力权重计算出所述答案的最终表示。

另外,根据本发明上述实施例的基于结构化注意力机制的答案选择系统还可以具有如下附加的技术特征:

在一些示例中,所述treelstm的计算过程如下式:

在一些示例中,所述第二计算模块用于:利用averagepooling计算出问题的表示oq:

其中,oq,i表示oq的第i个元素,hqt,表示,hqt的第i个元素;

在得到问题的表示之后,根据注意力机制计算答案的最终表示如下:

maq(t)=wamha(t)+wqmoq,

在一些示例中,所述第二计算模块还用于:根据余弦相似度计算oq和oa之间的得分:

s(oq,oa)=oq.oa。

在一些示例中,所述第二计算模块还用于:将hingeloss作为神经网络的目标函数,定义如下:

其中,n表示所有负例答案的集合,m表示边界,s表示计算得分的函数,q表示问题,a+表示正例答案,a-表示负例答案。

根据本发明实施例的基于结构化注意力机制的答案选择系统,利用treelstm来生成的句子的表示,然后在treelstm所计算出的词语表示上来计算attention,能够更好地解决答案选择问题,在wikiqa数据集上取得了很好的效果。

为了实现上述目的,本发明第二方面的实施例提出了一种基于结构化注意力机制的答案选择方法,包括以下步骤:根据treelstm处理输入的句子,以生成所述句子的语义表示;根据所述句子的语义表示,计算问题和答案之间的注意力权重;根据所述注意力权重计算出所述答案的最终表示。

另外,根据本发明上述实施例的基于结构化注意力机制的答案选择方法还可以具有如下附加的技术特征:

在一些示例中,所述treelstm的计算过程如下式:

在一些示例中,所述计算出所述答案的最终表示,进一步包括:利用averagepooling计算出问题的表示oq:

其中,oq,i表示oq的第i个元素,hqt,i表示,hqt的第i个元素;

在得到问题的表示之后,根据注意力机制计算答案的最终表示如下:

maq(t)=wamha(t)+wqmoq,

在一些示例中,还包括:根据余弦相似度计算oq和oa之间的得分:

s(oq,oa)=oq.oa。

在一些示例中,还包括:将hingeloss作为神经网络的目标函数,定义如下:

其中,n表示所有负例答案的集合,m表示边界,s表示计算得分的函数,q表示问题,a+表示正例答案,a-表示负例答案。

根据本发明实施例的基于结构化注意力机制的答案选择方法,利用treelstm来生成的句子的表示,然后在treelstm所计算出的词语表示上来计算attention,能够更好地解决答案选择问题,在wikiqa数据集上取得了很好的效果。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明实施例的基于结构化注意力机制的答案选择系统的结构框图;

图2是根据本发明一个实施例的循环神经网络rnn的结构示意图;

图3是根据本发明一个实施例的双向lstm的结构示意图;

图4是根据本发明一个实施例的treelstm的计算过程示意图;

图5是根据本发明一个具体实施例的基于结构化注意力机制的答案选择系统的网络结构示意图;

图6是根据本发明实施例的基于结构化注意力机制的答案选择方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

以下结合附图描述根据本发明实施例的基于结构化注意力机制的答案选择系统及方法。

图1是根据本发明一个实施例的基于结构化注意力机制的答案选择系统的结构框图。图5是根据本发明一个实施例的基于结构化注意力机制的答案选择系统的网络结构示意图。如图5所示,该系统的网络结构主要包括:embeddinglayer,treelstmlayer,poolinglayer,attentionlayer,scorelayer以及hingeloss。如图1所示,该系统100包括:处理模块110、第一计算模块120和第二计算模块130。

其中,处理模块110用于根据treelstm处理输入的句子,以生成句子的语义表示。

具体地说,循环神经网络(recurrentneuralnetworks,rnn)是一种常见的人工神经网络,网络中结点间的连接线形成有向环,rnn在许多自然语言处理任务中都有重要的应用。区别于前向反馈神经网络(feed-forwardneuralnetworks,fnn)中输入输出是相互独立的关系,rnn能够有效利用到上一时刻的输出结果。因此,rnn用来处理序列数据比较合适。理论上讲,rnn可以处理任意长的序列,但在实际中是做不到的。rnn在语言模型、文本生成、机器翻译、语言识别和图像描述生成等任务中都取得了很不错的效果。rnn的训练优化算法是backpropagationthroughtime,例如图2所示。

长短期记忆单元(longshort-termmemorynetwork,lstm),是一种特殊形式的rnn网络。在传统rnn网络的梯度后向传播阶段,梯度信号最后会与rnn隐含层中相关的权重相乘多次(次数与步长一样),这就意味着,相关权重的大小会对网络的学习训练过程产生巨大的影响。如果权重太小(或者说是权重矩阵的特征向量小于1.0),就会导致“梯度消失”,梯度变得越来越小使得网络学习过程缓慢,甚至完全停止。对于“长距离(长期)依赖”问题,由于梯度消失问题,使得rnn的学习变得非常困难(在理论上,rnn是能够解决长期依赖问题的,但在实践中似乎无法处理,这个问题已经被hochreiter等人深入探讨过,并且找到了根本性原因)。如果权重太大(或者说是权重矩阵的特征向量大于1.0),会导致梯度爆炸,无法收敛。因此,为了解决rnn存在的这些问题,hochreiter等人提出了lstm记忆单元结果。lstm的特殊结构能够有效地避免这些问题。lstm计算如下:

进一步地,lstm分为单向lstm和双向lstm。其中,单向lstm的一个缺点是它只能利用出现在当前节点之前的信息。在句子文本建模任务中,充分利用过去和未来的信息能够更全面的掌握语义信息,生成更有效的句子向量。双向lstm利用两个独立的隐含层双向处理文本来达到同时利用上下文的目的,两个隐含层的结果最后都送入到同一个输出层,例如图3所示。

基于此,在本发明的一个实施例中,treelstm的计算过程如图4所示,具体地,treelstm的计算过程如下式:

第一计算模块120用于根据句子的语义表示,计算问题和答案之间的注意力权重。

第二计算模块130用于根据注意力权重计算出答案的最终表示。

换言之,即在上面计算出问题和答案的隐状态之后,利用averagepooling计算出问题的表示。具体地,在本发明的一个实施例中,第二计算模块130用于:

利用averagepooling计算出问题的表示oq:

其中,oq,i表示oq的第i个元素,hqt,i表示,hqt的第i个元素;

在得到问题的表示之后,根据注意力机制计算答案的最终表示如下:

maq(t)=wamha(t)+wqmoq,

在本发明的一个实施例中,第二计算模块130还用于:根据余弦相似度计算oq和oa之间的得分,对应于图5中的scorelayer。oq和oa之间的得分具体为

s(oq,oa)=oq.oa。

在本发明的一个实施例中,结合图5所示,第二计算模块130还用于:将hingeloss作为神经网络的目标函数,定义如下:

其中,n表示所有负例答案的集合,m表示边界,s表示计算得分的函数,q表示问题,a+表示正例答案,a-表示负例答案。进一步地,利用反向传播计算梯度,利用adam方法更新网络的参数。

在具体实施例中,本发明实施例的系统例如基于linuxubuntu64位操作系统,采用torch深度学习框架开发实现,为了测试模型的有效性,通过在wikiqa数据集上进行实验,且实验结果表明本发明实施例的模型比传统的lstm模型表现更好。

综上,根据本发明实施例的基于结构化注意力机制的答案选择系统,利用treelstm来生成的句子的表示,然后在treelstm所计算出的词语表示上来计算attention,能够更好地解决答案选择问题,在wikiqa数据集上取得了很好的效果。

本发明的进一步实施例还提出了一种基于结构化注意力机制的答案选择方法。

图6是根据本发明一个实施例的基于结构化注意力机制的答案选择方法的流程图。如图6所示,该方法包括以下步骤:

步骤s1:根据treelstm处理输入的句子,以生成句子的语义表示。

具体地,在本发明的一个实施例中,treelstm的计算过程如下式:

步骤s2:根据句子的语义表示,计算问题和答案之间的注意力权重。

步骤s3:根据注意力权重计算出答案的最终表示。

具体地,在本发明的一个实施例中,计算出所述答案的最终表示,进一步包括:

利用averagepooling计算出问题的表示oq:

其中,oq,i表示oq的第i个元素,hqt,表示,hqt的第i个元素;

在得到问题的表示之后,根据注意力机制计算答案的最终表示如下:

maq(t)=wamha(t)+wqmoq,

进一步地,在本发明的一个实施例中,还包括:根据余弦相似度计算oq和oa之间的得分:

s(qq,oa)=qq.oa。

进一步地,在本发明的一个实施例中,还包括:将hingeloss作为神经网络的目标函数,定义如下:

其中,n表示所有负例答案的集合,m表示边界,s表示计算得分的函数,q表示问题,a+表示正例答案,a-表示负例答案。

需要说明的是,本发明实施例的基于结构化注意力机制的答案选择方法的具体实现方式与本发明实施例的基于结构化注意力机制的答案选择系统的具体实现方式类似,具体请参见系统部分的描述,为了减少冗余,此处不再赘述。

综上,根据本发明实施例的基于结构化注意力机制的答案选择方法,利用treelstm来生成的句子的表示,然后在treelstm所计算出的词语表示上来计算attention,能够更好地解决答案选择问题,在wikiqa数据集上取得了很好的效果。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1