一种基于深度学习的多轮情感对话方法
技术领域
本发明涉及人机交互技术领域,尤其涉及一种基于深度学习的多轮情感对话方法。
背景技术
对话系统是人机交互领域的核心技术,也是实现和谐人机交互的重要途径,具有重大的研究意义和应用价值。当前,对话系统在各个领域越来越引起人们的重视,深度学习技术的不断进步极大地推动了对话系统的发展。对于对话系统,深度学习技术可以利用大量的数据来学习特征表示和回复生成策略,这其中仅需要少量的手工操作。现如今,我们可以很容易地访问网络上对话的“大数据”,我们也许能够学习如何回复,以及如何回复几乎任何的输入,这将极大地允许我们在人类和计算机之间建立数据驱动的、开放的对话系统。另一方面,深度学习技术已经被证明是有效的,可以在大数据中捕获复杂的模式,并拥有大量的研究领域,如计算机视觉、自然语言处理和推荐系统等。
具体来说,对话系统可分为两类,任务导向型对话系统和非任务导向型对话系统。基于任务的对话系统旨在帮助用户完成实际具体的任务,例如帮助用户寻找美食,预订车票、酒店和餐厅等。非任务导向的对话系统与人类交互,通常应用于客户服务和智能机器人等领域。
情感对话系统赋予机器情感,使得人机交互更加和谐,增强用户体验。
目前的对话系统往往只关注单轮对话,或者最多两次,因为很难赋予系统长期的计划能力,进行流畅,连贯,有意义的多轮次对话。与此同时,现有对话系统容易生成生硬冰冷的回复,无法生成具有情感的对话回复,使得用户想尽早结束对话,无法实现多轮对话。
发明内容
本发明目的就是为了弥补已有技术的缺陷,提供一种基于深度学习的多轮情感对话方法。
本发明是通过以下技术方案实现的:
一种基于深度学习的多轮情感对话方法,包括以下步骤:
(1)获取用户输入的文本信息,对用户输入的文本信息进行分词,并使用预训练的词向量将用户输入的文本向量化;
(2)使用深度学习模型对用户输入的文本进行情感分析,并分析对话主题和背景;
(3)基于检索的方式从情感语料库中检索与用户对话内容相匹配的回复;
(4)基于用户对话的情感类别,以及聊天主题和背景,使用对抗的方法生成自然的对话回复;
(5)根据两种不同的对话生成方法生成的对话回复,选择对话情感和主题背景与用户对话最相关的结果发送给用户。
步骤(1)中所述的对用户输入的文本信息进行分词,并通过预训练的词向量对文本进行向量化,具体为:
对用户输入的文本使用分词工具进行分词处理,然后使用停用词表去除用户输入文本中出现的停用词;
用自然语言处理的方法对分词后的文本进行句法、语义分析;
使用预先训练的词向量模型将分词后的文本向量化,合成代表用户输入文本的词向量矩阵X:
X=(x1,x2,...,xn)
其中x1,x2,...,xn分别代表用户话语中每个词的词向量,n为用户话语的长度。
步骤(2)中所述的使用深度学习模型对用户输入的文本进行情感分析,并分析对话主题和背景,具体为:
将用户对话的文本信息输入预先训练的神经网络模型,得到对话的情感向量,将对话情感分为五类,分别是快乐、伤感、愤怒、厌烦和好感;
根据对话的神经网络模型中记忆的上下文信息,结合句法分析和语义分析的结果,分析用户对话主题以及对话背景,并生成相应的主题背景向量。
步骤(3)中所述的基于检索的方式从情感语料库中检索与用户对话内容相匹配的回复,具体为:
结合用户对话的情感向量和主题背景向量,依据句法、语义分析的结果,从情感对话语料库中检索符合要求的前k条结果;
对k条检索的结果按照一定的规则R进行评估,选择最优结果作为生成的对话回复Y1。
步骤(4)中所述的基于用户对话的情感类别,以及聊天主题和背景,使用对抗的方法生成自然的对话回复,具体为:
对用户输入的文本X使用长短记忆网络LSTM编码:
ht=LSTMencoder(xt,ht-1)
c=f(h1,h2,…,hn),
其中,ht是t时刻隐藏层的状态,h1,h2,…,hn分别代表不同时刻隐藏层的状态, n为用户话语的长度,c是通过使用注意力机制计算得到的上下文向量;
通过使用情感对话语料库联合训练的生成器模型和鉴别器模型,对系统生成的话语质量进行优化,话语优化的过程是一个强化学习问题,生成器生成的话语欺骗鉴别器相信它是人说的而不是机器产生的,鉴别器评判生成器生成的话语是人说的还是机器生成的,输出一个结果作为生成器的奖励,生成器根据奖励对生成的话语进行优化,推动它产生更接近人类的对话。
所述的生成器模型和鉴别器模型,包括:
对于用户的对话输入X=(x1,x2,...,xn),模型需要从策略中抽样生成对话回复Y=(y1,y2,...,ym)),其中m表示生成对话的长度,整个句子的生成过程是基于长短记忆网络LSTM组成的编码—解码的网络结构;
生成器模型G定义了在给定对话历史X时生成响应的策略,它是一个序列- 序列SEQ-SEQ模型,模型的输出是通过Softmax函数计算的生成对话的每个单词的概率:
p(yt{y1,y2,...,yt-1,X})=Softmax(st,et,ct)
其中et为t时刻的情感向量,ct是用来预测当前词的上下文向量,st为t时刻解码器的隐藏状态:
st=LSTMdecoder(st-1,yt-1)
鉴别器模型D是一个二元分类器,它将一系列对话语言{x,y}作为输入,并输出一个标签,指示输入是由人类(用Q+({x,y})表示)还是机器生成的(用Q_({x,y})表示);
模型使用策略梯度方法优化,将鉴别器产生的当前话语的分数作为生成器的奖励,使用REINFORCE算法最大化生成话语的期望奖励:
其中,θ是模型参数,Q+({x,y})是生成器的奖励,给定对话输入x,对话系统通过从策略中抽样生成话语y,然后将x和y输入到鉴别器,通过优化策略对生成的话语进行优化,直到鉴别器认定生成的话语是人产生而不是机器产生的,最终生成对话回复Y2。
步骤(5)中所述的根据两种不同的对话生成方法生成的对话回复,选择对话情感和主题背景与用户对话最相关的结果发送给用户,具体为:
对于基于检索生成的对话回复Y1和基于对抗方法生成的对话回复Y2,选取对话情感和主题背景两个特征,分别计算用户话语X和生成话语Y的选取特征的余弦相似性(cosine similarity);
比较(X,Y1)和(X,Y2)两组余弦相似性,选择与用户输入对话的情感和主题背景相似性高的系统回复发送给用户。
本发明的优点是:本发明使用两种不同的对话生成方式生成对话回复,使系统能够产生更高质量的对话回复,从而增加人机对话的轮数,提升用户体验。使用基于检索的方式生成对话,能够充分利用情感语料库中的对话回复,避免生成模型产生沉闷无聊且没有实际意义的对话;使用对抗生成对话回复,有利于系统产生更接近人类水平的对话。对话过程中持续捕捉用户的对话情感和主题背景,并依此产生对话回复,使得对话过程更加个性化。
附图说明
图1是本发明的工作流程图。
图2是基于深度学习生成对话回复的模型图。
具体实施方式
如图1、2所示,一种基于深度学习的多轮情感对话方法,包括步骤:
获取用户输入的文本信息;
对用户输入的文本信息进行分词,并使用预训练的词向量将用户输入的文本向量化;
使用深度学习模型对用户输入的文本进行情感分析,并分析对话主题和背景;
基于检索的方式从情感语料库中检索与用户对话内容相匹配的回复;
基于用户对话的情感类别,以及聊天主题和背景,使用对抗的方法生成自然的对话回复;
根据两种不同的对话生成方法生成的对话回复,选择对话情感和主题背景与用户对话最相关的结果发送给用户。
本发明所述的一种基于深度学习的多轮情感对话方法,对用户输入的文本信息进行分词,并使用预训练的词向量将用户输入的文本向量化,具体为:
对用户输入的文本使用分词工具进行分词处理,然后使用停用词表去除用户输入文本中出现的停用词。分词的方法是基于全局归一化的条件随机场,对情感语料库建模,根据观测到的数据(标注好的语料)对模型参数进行训练。在分词阶段使用训练好的模型计算各种分词出现的概率,将概率最大的作为最终的分词结果。例如,用户输入“今天天气很好,非常适合出门郊游”,分词的结果为“今天/天气/很好/非常/适合/出门/郊游。”
用自然语言处理的方法对分词后的文本进行句法、语义分析。句法分析是将输入句子从序列形式变成树状结构,从而可以捕捉到句子内部词语之间的搭配或者修饰关系,对用户输入的文本使用依存结构句法体系方法进行句法分析,可以很容易地表示词语之间的语义关系,比如句子成分之间可以构成施事,受事,时间等关系。句法分析既有助于提升从语料库中检索对话的准确率,又能够加快深度学习模型生成对话的解码速度。
语义分析的目的是理解用户要表达的真实语义。系统使用角色标注的语义分析技术,给定句子中的一个谓词,语义角色标注的任务就是从句子中标注出这个谓词的施事、受事、时间、地点等参数。语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。
使用预先训练的词向量模型将分词后的文本向量化,合成代表用户输入文本的词向量矩阵X:
X=(x1,x2,...,xn)
其中x1,x2,...,xn分别代表用户话语中每个词的词向量,n为用户话语的长度。词向量模型是基于收集的情感对话语料使用Word2Vec训练的词向量模型。
本发明所述的一种基于深度学习的多轮情感对话方法,使用深度学习模型对用户输入的文本进行情感分析,并分析对话主题和背景,具体为:
将用户对话的文本信息输入预先训练的神经网络模型,得到对话的情感向量,一般将对话情感分为五类,分别是快乐、伤感、愤怒、厌烦和好感;
根据对话的神经网络模型中记忆的上下文信息,结合句法分析和语义分析的结果,分析用户对话主题以及对话背景,并生成相应的主题背景向量。例如,用户输入文本“我今天生病了,考试发挥好。”系统对用户对话进行情感分析可推测用户的情绪状态为伤感,对话的主题和背景为生病,考试没发挥好。
本发明所述的一种基于深度学习的多轮情感对话方法,基于检索的方式从情感语料库中检索与用户对话内容相匹配的回复,具体为:
结合用户对话的情感向量和主题背景向量,依据句法、语义分析的结果,从情感对话语料库中检索符合要求的前k条结果;
对k条检索的结果按照一定的规则R进行评估,选择最优结果作为生成的对话回复Y1;
为了加快检索的速度,需要预先对语料库的对话建立索引,依据对话的情感和主题作为索引的标签。
本发明所述的一种基于深度学习的多轮情感对话方法,基于用户对话的情感类别,以及聊天主题和背景,使用对抗的方法生成自然的对话回复。图2是基于深度学习生成对话回复的模型图,具体为:
对用户输入的文本X使用长短记忆网络(LSTM)编码:
ht=LSTMencoder(xt,ht-1)
c=f(h1,h2,…,hn)
其中,ht是t时刻隐藏层的状态,h1,h2,…,hn分别代表不同时刻隐藏层的状态, n为用户话语的长度,c是通过使用注意力机制计算得到的上下文向量;
通过使用情感对话语料库联合训练的生成器和鉴别器模型,对系统生成的话语质量进行优化。话语优化的过程是一个强化学习问题,生成器生成的话语欺骗鉴别器相信它是人说的而不是机器产生的,鉴别器评判生成器生成的话语是人说的还是机器生成的,输出一个结果作为生成器的奖励,生成器根据奖励对生成的话语进行优化,推动它产生更接近人类的对话。
本发明所述的一种基于深度学习的多轮情感对话方法,生成器模型和鉴别器模型,具体为:
对于用户的对话输入X=(x1,x2,...,xn),模型需要从策略中抽样生成对话回复Y=(y1,y2,...,ym)),其中m表示生成对话的长度,整个句子的生成过程是基于长短记忆网络(LSTM)组成的编码—解码的网络结构;
生成器模型G定义了在给定对话历史X时生成响应的策略,它是一个序列- 序列(SEQ-SEQ)模型,模型的输出是通过Softmax函数计算的生成对话的每个词的概率:
p(yt{y1,y2,...,yt-1,X})=Softmax(st,et,ct)
其中et为t时刻的情感向量,ct是用来预测当前词的上下文向量,st为t时刻解码器的隐藏状态:
st=LSTMdecoder(st-1,yt-1)
鉴别器模型D是一个二元分类器,它将一系列对话语言{x,y}作为输入,并输出一个标签,指示输入是由人类(用Q+({x,y})表示)还是机器生成的(用 Q-({x,y})表示);
模型使用策略梯度方法优化,将鉴别器产生的当前话语的分数作为生成器的奖励,使用REINFORCE算法最大化生成话语的期望奖励:
其中,θ是模型参数,Q+({x,y})是生成器的奖励,给定对话输入x,对话系统通过从策略中抽样生成话语y,然后将x和y输入到鉴别器,通过优化策略对生成的话语进行优化,直到鉴别器认定生成的话语是人产生而不是机器产生的,最终生成对话回复Y2。
本发明所述的一种基于深度学习的多轮情感对话方法,根据两种不同的对话生成方法生成的对话回复,选择对话情感和主题背景与用户对话最相关的结果发送给用户,具体为:
对于基于检索生成的对话回复Y1和基于对抗方法生成的对话回复Y2,选取对话情感和主题背景两个特征,分别计算用户话语X和生成话语Y的选取特征的余弦相似性(cosine similarity);
比较(X,Y1)和(X,Y2)两组余弦相似性,选择与用户输入对话的情感和主题背景相似性高的系统回复发送给用户。