一种基于条件随机场结构化注意力网络的对话行为识别方法及系统与流程

文档序号:15981725发布日期:2018-11-17 00:24阅读:337来源:国知局
本发明涉及自然语言处理对话系统领域,具体涉及一种基于条件随机场结构化注意力网络的对话行为识别方法及系统。
背景技术
近年来,随着人机交互技术的逐渐成熟,大量搭载着人机交互系统的产品走进千家万户。例如智能手机助手siri,cortana,智能音响小爱同学,天猫精灵等,此类产品的出现,让人们深切地感受到技术给人类带来的方便与享受。与此同时,人机交互对话系统也受到了广泛来自工业界和学术界研究者的关注。本发明的主要研究领域,是对话系统中不可或缺的技术之一——对话行为识别。对话行为识别的目的,是针对一段对话内容,在给定上下文对话内容前提下,预测当前对话的行为,从而可以识别说话者的意图。一个高效准确的对话行为识别模型,需要能够明确捕捉上下文语境信息,同时能够对对话内容进行状态追踪,从而明确当前对话说话者的意图,进行行为识别。对于机器来说,能够准确识别说话者的行为意图,即可相应生产准确的对话回复,这在人机交互对话系统中是一个重要的技术难点。目前,主流的对话行为识别技术,主要从两方面进行研究。一种是将对话行为识别问题定义成一个文本多分类问题。例如khanpour等人在2016年coling会议上提出的论文《dialogueactclassifcationindomain-independentconversationsusingadeeprecurrentneuralnetwork》提出的lstm-softmax算法,结合深度学习和软分类算法,将对话行为识别问题定义成一个简单的文本多分类问题。blunsom等人在2013年computerscience期刊刊登的论文《recurrentconvolutionalneuralnetworksfordiscoursecompositionality》提出的rcnn算法,结合分层卷积神经网络对句子模型和对话模型进行分层建模,提取深层语义信息后进行文本分类。季阳峰等人在2016年naacl-hlt会议论文《alatentvariablerecurrentneuralnetworkfordiscourserelationlanguagemodels》中提出的drlm-conditional模型,同样考虑神经网络结构和概率图模型,将不同对话行为的句子按照概率最大化原则进行标签分类,达到对话行为识别目的。还有另一种方法,是将对话行为识别问题定义成了一个结构化时序标注问题,通常采用隐马尔科夫模型和条件随机场模型,可以考虑整个对话内容的上下文关联关系。该方法对问题的定义方式与文本多分类问题中每个对话行为独立存在的定义是完全不同的。结构化时序标注,更多地考虑当前这句话受到前面上下文语境的影响状态,每个当前状态都会受到前一个状态的影响。例如kumar等人在康奈尔公开网站上发布的论文《dialogueactsequencelabelingusinghierarchicalencoderwithcrf》提出的bi-lstm-crf模型,将简单的条件随机场算法放置于分层深度学习神经网络的最后一层输出层,从而进行对话行为识别。stolcke等人在2006年dialogue杂志上发表的论文《dialogueactmodelingforautomatictaggingandrecognitionofconversationspeech》直接提出用简单文本特征提取方法与隐马尔科夫模型相结合,进行结构化序列预测。很明显,单纯地将对话行为识别问题定义成独立文本多分类问题,失去了对话场景中丰富的上下文关联信息。在对话过程中,说话者的说话意图会被之前的对话内容所影响,例如当前一句的对话行为是打招呼时,下一句的对话行为很大概率也是打招呼。或者前一句对话行为是提问题时,下一句的对话行为很大可能就是回答问题。而另一种解决方式,利用普通条件随机场和隐马尔科夫模型的方法,虽然能够捕捉到上下文对话内容的关联性,却被严重地局限在了对话前一状态的影响,没有考虑到整体对话内容在划分话题时候对对话行为识别的影响。通常来说,它们会将整段对话内容摊开来看成一整段均等的长文本,没有经过划分小节的方式将对话内容中不同话题进行区分。这就好比人类在多轮对话过程中,话题是经常更换的,一会聊这个话题,一会又聊另一个话题。两个话题之间其实并没有太大的关联性,更应该把这两个话题独立区别开。技术实现要素:本发明提供了一种基于条件随机场结构化注意力网络的对话行为识别方法,很好地解决了谈话内容过程中因为话题转移引起的行为识别准确率低的问题,提高了对话行为识别受到上下文关联影响时的鲁棒性。一种基于条件随机场结构化注意力网络的对话行为识别方法,包括包括以下步骤:(1)结合记忆网络,将对话语义信息按照单词层、句子层、对话层进行分层推理,语义建模;(2)应用结构化注意力网络,根据对话内容之间的相关性,对对话内容进行结构小节划分;(3)将得到的结构化信息应用于线性条件随机场算法上,根据上下文语境预测当前对话行为。本发明可以理解成机器通过深度学习语义理解,理解整段对话内容,将对话划分小节,将关联性比较大的几句对话内容放在一起,而尽量将关联性小的对话彼此分离。再利用结构化注意力网络,能够动态识别对话行为之间的关联性,并与条件随机场算法相结合,达到结构化预测对话行为目的。本发明对对话内容进行语义理解,捕捉对话内容深层次的语义信息。对话行为识别的首要前提条件,需要对对话内容进行准确的语义理解。由于对话内容天然具有层次性特征,本发明在这一步采用了分层建模的方式对语义进行处理。单词组成了句子,而句子组成了整段对话内容,根据对话内容判别每句话相应的行为。步骤(1)中,所述对话语义信息的单词层推理公式如下:e=fconcat(ew,ea,epos,ener)其中,e为单词最终的完整向量表示,由四种不同维度单词信息拼接而成,fconcat是拼接的函数表示,ew表示单词从谷歌预训练好的英文词向量模型得到的word2vec向量;ea表示由字母组合信息通过循环神经网络学习到的单词表示向量;表示该单词组成的各个字母;epos表示nltk工具包处理后的单词词性信息;ener表示nltk工具包处理后的单词实体类别信息。要想达到语义理解目的,要求模型对单词必须有足够的理解力。本发明利用每个单词丰富的词性信息和词法信息,来增强单词在语义空间的表达能力。步骤(1)中,所述对话语义信息的对话层推理具体步骤如下:(1-1)采用双向门控循环单元,将每个单词的前向隐含表示和后向隐含表示拼接,得到整个句子的空间语义向量表示,公式为:u=fbigru(e1,…,en)其中,u表示整个句子的空间语义向量表示,ei表示句子中第i个单词;(1-2)获得当前句子在上下文语境中的语义表示,公式为:ct=tanh(wm-1ct-1+wm+1ct+1+bm)其中,ct表示为第t句话在上下文语境中的语义表示,ct-1和ct+1为前句话和后句话隐含表示,wm-1,wm+1,bm是训练得到的参数,tanh是激活函数,也就是说,在上下文语境中,第t句话受到它前句话和后句话的共同影响;(1-3)采用记忆神经网络,结合注意力机制对两种对话表示进行整合,得到最终融合的对话语义信息。这里面的u仅仅独立地将每句话的向量隐含表示学习到,却忽略句子在上下文中受到前后语境的影响。为了进一步学习每句话在上下文语境中的隐含表示,本发明提出一个变量c,表示当前句子在上下文语境中的隐含表示。步骤(1-3)的具体步骤如下:(1-3-1)通过softmax归一化得到原始句子表示ut和上下文语境中的语义表示ct之间的相关性:其中,表示为句子原始向量表示的转置向量,pj,i表示原始句子表示ut和上下文语境表示ct之间的相关性,可以理解是两者之间的注意力权值。(1-3-2)引入记忆网络来生成最终的记忆输出ot,公式如下:ot=∑ipj,ict最终的输出ot可以看成是上下文语境隐含表示ct中每个隐含状态受到原始句子影响后的语义理解。由于记忆网络可以任意叠加多层,每加一层可表示成对原始句子的理解更深一层。(1-3-3)在经过k层记忆网络之后,本发明采用了堆栈操作,即将上一层的输出与相加,得到下一层的句子最终表示,具体公式为:其中,表示受上一次记忆网络的影响,得到的对话句子最终语义理解表示。意味着模型对当前对话的理解,经过了多层复杂的交互理解,融合了对话内容原始的语义理解和经过上下文影响的语义理解。经过以上步骤,可以保证模型对对话语义内容已经有了充分的理解。步骤(2)中,所述的结构小节通常包括打招呼小节、聊天小节、问答小节和告别小节等。同一小节之间的上下文关联紧密,而不同小节之间关联则比较疏远。本发明认为,对小节的划分,将很大程度上影响对话行为在序列标注上的准确性。让u={u1,u2…,un}表示每一句对话内容,y={y1,y2…,yn}表示每句话对应的行为类别,z={z1,z2…,zn}表示离散隐含变量,任意一个zi∈{0,1},0代表上下文无关,1代表上下文相关。引入结构化注意力机制的目的,是使得模型在预测对话行为时,可以根据上下文对话内容以及上下文每句话对应的行为类型,推断出当前对话与上下文之间的关联性,从而参考上下文对应的对话行为,预测当前对话行为。在对话行为识别任务中,每次以贪心的方式单独预测每句话的行为类别,可能并不会带来最优解决方案。相反,最好能够根据上下文对话内容和上下文每句话对应的行为标签,联合决定最好的标签序列。因此,线性条件随机场的作用就凸显出来。步骤(3)中,所述线性条件随机场算法具体为:对于整段对话,对话内容及各自对应的对话行为为线性链表示的随机变量序列,在给定随机变量序列x的条件下,随机变量序列y的条件概率分布p(y|x)构成条件随机场,条件随机场概率分布可以表示为:其中,θi(zi)表示条件随机场在每个隐含对话节点上的概率分布,用统一的条件随机场设置:对于每句对话内容,都总结本句内容与上一句内容在关联性上的相关关系,通过使用结构化边缘概率函数p(z1,…,zn|u,y),结合前后向传播算法,计算基于条件随机场的整段对话内容的对话行为分布概率p(y1,..,yn,u1,..,un;θ):本发明设计了端到端的训练算法和测试算法,采用最大似然估计算法来学习条件随机场—结构化注意力网络参数。给定训练集(u,y),对数似然函数可以表示成:其中,θ表示神经网络学到的参数。l表示训练定义的损失函数。本发明的目标函数定义成:表示l2正则化,λ为损失函数l(θ)和正则项之间的权衡参数。对于测试阶段,本发明使用维特比算法来获取最优序列预测。通过动态规划算法,对话行为预测可以通过以下方式获取:y′=argmaxy∈yp(y|u,θ)y′表示模型预测出的对话行为标签,argmax函数为取条件随机场概率分布中最大项作为预测结果。本发明还提供了一种基于条件随机场结构化注意力网络的对话行为识别系统,具体模块包括:单词层表示模块:用于获取单词的word2vec预训练向量、字符层面的向量、词性向量和实体类别向量,并将这四个向量拼接形成该单词的最终表示向量;对话层表示模块:利用深度循环神经网络,得到句子原始的语义表示向量,并结合记忆网络,结合上下文语境和结构化注意力机制得到整段对话语义表示;行为层表示模块:用于根据对话内容预测对话相对应的行为类别;上下文语义理解模块:用于利用深度循环神经网络捕捉对话过程中的上下文信息;初始化对话状态模块:用于初始化对话模型在训练过程和测试过程中的超参数;条件随机场概率分布模块:用于计算在预测当前对话行为时,上下文对话行为对当前对话的影响程度。测试模块:在模型训练完毕之后,对外输出对话行为预测结果。本发明具有以下有益效果:1、与以往的研究不同,本发明从扩展条件随机场结构化依赖的角度进行对话行为识别。本发明所提出的结构化注意力网络,提供了一种既关注对话语义内容又关注对话小节结构的新的解决方案。2、本发明提出的分层深度循环神经网络与记忆增强机制相结合,充分模拟对话内容的语义表示。所提出的框架可以做到端到端的训练,并且此模型能够很方便地扩展到不同的对话任务中。3、本发明在两个流行的数据集swda和mrda上,通过大量实验证明,展示了优于其他基准线算法的模型性能。从实验证明了模型的优越性。附图说明图1为本发明在上下文语义理解的整体结构示意图;图2为本发明对话内容的深度循环神经网络示意图;图3为本发明真实对话场景下的对话小节分割示意图;图4为本发明基于线性条件随机场的结构化隐含语义分割示意图;图5为本发明基于条件随机场结构化注意力网络的对话行为识别系统模块流程图;图6为本发明在swda数据集上进行的十大对话行为标签热力图;图7为本发明对话行为识别系统与cvae对话生成系统相结合后,对话行为类别数量对对话生成的影响。具体实施方式下面结合附图和具体实施方式对本发明做进一步阐述和说明。如图1所示,本发明框架采用分层语义理解方式,总共分为三层:(a)单词层:对于一个单词,获取该单词的word2vec预训练向量,字符层面的向量,词性向量和实体类别向量。将这四个向量拼接形成这个单词的最终表示向量。首先,本发明利用谷歌预训练好的英文词向量模型,得到每个单词的word2vec向量ew;其次,每个单词是有各个字母组成,不同字母的组合方式,可以很好地表示单词的词根和词源。通过深度循环神经网络,本发明可以得到另一个基于字母层面的单词向量ea;另外,每个单词都有对应的词性信息,例如是形容词,名词还是动词,本发明通过nltk工具包,得到单词对应的词性信息epos;还有单词所属的实体信息,例如是地名,人名,时间或者事件等某具体实体信息,同样用nltk工具包得到ener。通过这种方式,一个单词本发明就得到了四种不同维度表示的单词语义信息,最终将这四个表示向量连接成同一个向量,表示该单词最终完整的空间表示。(b)对话层:利用深度循环神经网络,得到句子原始的语义表示向量。实现方式为:u=fbigru(e1,…,en)。结合上下文语境和结构化注意力机制得到整段对话语义表示。实现方式为:ct=tanh(wm-1ct-1+wm+1ct+1+bm)。在得到对话的原始向量表示u和上下文中语义表示c之后,采用记忆网络,不断更新u和c之间的交互程度,使得模型对对话语义理解程度更加增强。意味着模型对当前对话的理解,经过了多层复杂的交互理解,融合了对话内容原始的语义理解和经过上下文影响的语义理解。经过以上步骤,可以保证模型对对话语义内容已经有了充分的理解。(c)行为层:与以往直接利用条件随机场算法不同,本发明引入了结构化注意力机制,不再是将整段对话看成一篇扁平的文章,而是将整段对话看成一个结构化信息,由不同小节组合而成。例如对于一段谈话,通常会有打招呼小节、聊天小节、问答小节、告别小节等等。同一小节之间的上下文关联紧密,而不同小节之间关联则比较疏远。本发明认为,对小节的划分,将很大程度上影响对话行为在序列标注上的准确性。让u={u1,u2…,un}表示每一句对话内容,y={y1,y2…,yn}表示每句话对应的行为类别,z={z1,z2…,zn}表示离散隐含变量,任意一个zi∈{0,1},0代表上下文无关,1代表上下文相关。引入结构化注意力机制的目的,是使得模型在预测对话行为时,可以根据上下文对话内容以及上下文每句话对应的行为类型,推断出当前对话与上下文之间的关联性,从而参考上下文对应的对话行为,预测当前对话行为。假设将一段对话看成是一个拥有n个节点的无向图结构,对话中的每句谈话即为无向图的一个节点。条件随机场可以通过学习隐含变量参数θc(zc)∈r分割得到。在此定义下,结构化注意力概率可以定义成:p(z|u,y;θ)=softmax(∑cθc(zc))其中,p(z|u,y;θ)为在参数θ情况下,受到谈话内容u和行为类别y影响的注意力概率,zc表示离散隐含变量,表征上下文是否关联,θc(zc)为划分小节的隐含参数函数。相对应的,最终整段对话内容的表示c,可以由谈话内容u和相对应的隐含对话行为状态z表示:其中我们将标注函数f定义成f(u,y,z)=∑cfc(u,y,zc),表示对话小节选择的隐含状态表示。对话内容c可以理解成是对对话小节内容很敏感,关注对话行为的一段谈话内容,将所有对话小节选择的可选状态都根据隐含变量z~p进行了加权平均。这里面p被定义成对话内容u和对话行为y的一个映射函数。在实际应用中,本发明将标注函数定义成fi(u,y,zi)=1{zi=1}(ui,yi),即对于对话内容相关的小节,标注函数会标注成1,而对于对话内容不相关的上下文,彼此关联设置为0。通过这种定义,整个函数期望可以表示成对于一段对话,每句谈话中应该放置多少注意力权重在上下文的对话行为标注上。公式表示成:其中代表整段话的整体小节注意力期望。ui和yi分别代表第i句谈话内容,以及对应的行为类型。p(zi=1|u,y)代表当前对话内容与上一句对话是属于同一小节的概率。对于整段对话来说,条件随机场概率分布可以表示为:其中θi(zi)表示条件随机场在每个隐含对话节点上的概率分布,可以用统一的条件随机场设置:对于每句对话内容,都总结本句内容与上一句内容在关联性上的相关关系。通过使用结构化边缘概率函数p(z1,…,zn|u,y),结合前后向传播算法,可以计算基于条件随机场的整段对话内容的对话行为分布概率p(y1,..,yn,u1,..,un;θ):如图2所示,对话内容的深度循环神经网络示意图中,每个单词都包含原词,字符层,词性,命名实体类别四大信息,这使得对话内容的原始语义表示更加准确。具体实施方式为:e=fconcat(ew,ea,epos,ener),ew表示单词从谷歌预训练好的word2vec向量中直接提取;ea表示由字母组合信息通过循环神经网络学习到的单词表示向量,表示该单词组成的各个字母;epos表示nltk工具包处理后的单词词性信息;ener表示nltk工具包处理后的单词实体类别信息。在得到单词完整的语义表示之后,采用了深度循环神经网络,对整句对话内容进行语义理解。如图3所示,本段对话可以分成三个小节,第一个小节是打招呼,第二个小节是问答,第三个小节是告别。这三个小节彼此之间没有太大的关联性,所以很明显可以分开来进行对话行为识别。如图4所示,是基于线性条件随机场的结构化隐含语义分割示意图。zi表示第i句对话的结构化隐含表示,用于对话小节语义分割。如图5所示,一种基于条件随机场结构化注意力网络的对话行为识别系统,总共分为七大模块,具体模块包括:单词层表示模块:对于一个单词,获取该单词的word2vec预训练向量,字符层面的向量,词性向量和实体类别向量。将这四个向量拼接形成这个单词的最终表示向量。对话层表示模块:利用深度循环神经网络,得到句子原始的语义表示向量。并结合记忆网络,结合上下文语境和结构化注意力机制得到整段对话语义表示。行为层表示模块:根据对话内容,预测对话相对应的行为类别。上下文语义理解模块:利用深度循环神经网络,用于捕捉对话过程中的上下文信息。初始化对话状态模块:用于初始化对话模型在训练过程和测试过程中的超参数。条件随机场概率分布模块:利用条件随机场的特性,在预测当前对话行为时,考虑上下文对话行为对当前对话的影响程度。测试模块:该模块是在模型已经训练完毕之后,对外输出对话行为预测结果的模块。通过该模块,系统可以以产品形式展示算法的最终效果。本发明在两个主流的对话行为识别数据集swda和mrda上与其他目前最前沿的对话生成方式进行对比。两大数据集介绍分别如下:swda语料库:swda是一个大的基于人工标记的数据集,它由1155个对话从电话对话场景中获取而来。每次实验都随机挑选两位陌生人,他们从话题中随机挑选一个并交流。mrda语料库:mrda是从75个会议内容中录音得到的数据集,也是通过人工标注每句话的意图类别,达到对话行为识别目的。具体关于语料库的介绍,可以通过表格1得知:表1数据集类别数量词汇量训练集验证集测试集swda4219k1003(173k)112(22k)19(4k)mrda510k51(76k)11(15k)11(15k)本发明主要利用对话行为准确度作为评判指标。总共比较了7个目前主流的对话行为识别算法,分别为:bi-lstm-crf,drlm-conditional,lstm-softmax,rcnn,crf,hmm,svm。表2表示各大算法模型在swda语料库上的识别准确率,表3表示各大算法模型在mrda语料库上的识别准确率。表2模型准确度(%)人类标注84.0本发明算法80.8bi-lstm-crf79.2drlm-conditional77.0lstm-softmax75.8rcnn73.9crf71.7hmm71.0svm70.6表3模型准确度(%)本发明算法91.4bi-lstm-crf90.9lstm-softmax86.8crf83.9svm81.8从表2和表3可以看出,本发明提出的基于条件随机场结构化注意力网络框架,在两大数据集上相较于其他算法均获得最优效果,充分展示了本发明算法的优越性。另外,本发明在swda数据集上进行了十大对话行为标签的匹配可视化。如图6所示,横坐标代表真实对话行为标签,纵坐标代表本发明模型预测出来的对话行为标签。图中的每个节点,颜色越深,代表横坐标的值和纵坐标的值越相近。最后,本发明对话行为识别系统与cvae对话生成系统相结合,通过对对话行为的识别,辅助对话生成系统生成与上下文含义相关有意义的回复。如图7所示,本发明的对话行为识别系统,相比于其他识别系统,在辅助对话生成的效果上明显准确度更搞。也侧面证明了本发明所提出的模型在对比其他前沿算法的优越性。这充分说明本发明所提出的算法,在辅助对话回复的稳定性上,比其他模型更加优异。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1