CN110162608A - 计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 - Google Patents
计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110162608A CN110162608A CN201910141435.0A CN201910141435A CN110162608A CN 110162608 A CN110162608 A CN 110162608A CN 201910141435 A CN201910141435 A CN 201910141435A CN 110162608 A CN110162608 A CN 110162608A
- Authority
- CN
- China
- Prior art keywords
- dialogue
- chain
- predicted
- progress
- artificial intelligence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Machine Translation (AREA)
Abstract
本发明提供了一种计算机实现的对话管理方法,包括:获取待预测对话链;获取该待预测对话链的对话进度,其包括:将该待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到该待预测对话链的对话进度;以及基于该待预测对话链的对话进度对该待预测对话链进行对话管理,本发明还提供的对应的设备和计算机可读存储介质。
Description
技术领域
本申请涉及对话管理,更具体地,涉及一种用于计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质。
背景技术
现有的对话往往在很大程度上不可控,例如,一个本来活跃的对话由于一个不合适的言论的介入而骤然停止,又例如,一个本该简洁高效的会议因为无休止的辩论而被无限延长。另一方面,自动识别出有趣的、能吸引人积极参与的对话能够助益于多种应用场景:例如舆情监控、产品营销、对话系统等等。因此自动跟踪对话的进度十分有用。现有技术尚不能够预测对话已经进行的进度,而只能预测当前对话是否已经结束,或者说是否会有新的对话轮次。
发明内容
本发明并不旨在解决现有技术中的所有问题,也并不只在限于解决上述现有技术中存在的问题。本发明的实施例提供了一种对话管理的方法、设备以及计算机可读存储介质。所述技术方案如下:
根据本发明的第一方面,提供一种计算机实现的对话管理方法,包括:获取待预测对话链;获取该待预测对话链的对话进度,其包括:将该待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到该待预测对话链的对话进度;以及基于该待预测对话链的对话进度对该待预测对话链进行对话管理。
根据一个实施例,其中获取该待预测对话链的对话进度进一步包括:确定该待预测对话链的每个轮次的词向量序列;将该待预测对话链的每个轮次的词向量序列按轮次顺序依次输入到第一人工智能神经网络单元,该第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,并输出每个轮次对应的第一隐层表示矩阵;将该第一隐层表示矩阵输入到第二人工智能神经网络单元,该第二人工智能神经网络单元配置来编码每一个对话轮次及其紧邻的前后两个对话轮次之间的交互关系,并输出第二隐层表示矩阵,将基于第二隐层表示矩阵的输入输入到第三人工智能神经网络单元,该第三人工智能神经网络单元配置来确定第三隐层表示矩阵;将该基于第二隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束;以及将该第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度。
根据一个实施例,其中获取该待预测对话链的对话进度进一步包括:确定该待预测对话链的每个轮次的词向量序列;将该待预测对话链的每个轮次的词向量序列按轮次顺序依次输入到第一人工智能神经网络单元,该第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,并输出每个轮次对应的第一隐层表示矩阵;将基于第一隐层表示矩阵的输入输入到第三人工智能神经网络单元,该第三人工智能神经网络单元配置来确定第三隐层表示矩阵;将该基于第一隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束;以及将该第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度。
根据一个实施例,其中该人工智能神经网络基于双向长短时记忆网络构建。
根据一个实施例,其中该基于第二隐层表示矩阵的输入是该待预测对话链的最后一个轮次对应的第二隐层表示矩阵,或者是该待预测对话链的所有轮次对应的各个第二隐层表示矩阵的结合。
根据一个实施例,其中该基于第一隐层表示矩阵的输入是该待预测对话链的最后一个轮次对应的第一隐层表示矩阵,或者是该待预测对话链的所有轮次对应的各个第一隐层表示矩阵的结合。
根据一个实施例,其中该人工智能神经网络的中间结果通过将该双向长短时记忆网络的两个方向上最后一个状态矩阵进行结合而获得。
根据一个实施例,其中该结合包括相加、合并和取平均值。
根据一个实施例,其中该人工智能神经网络被预先训练,该训练方式如下:获取用于训练的若干个对话链的集合;针对每一个用于训练的对话链,从中随机选取一个轮次作为当前轮次;确定该当前轮次的对话进度以及对话是否结束;以该每一个用于训练的对话链中该当前轮次之前的所有轮次为输入,以该当前轮次的对话进度以及对话是否结束为输出,对该人工智能神经网络进行训练。
根据一个实施例,其中针对每一个用于训练的对话链,该确定该当前轮次的对话进度的方式如下:确定若干对话进度区间;确定该用于训练的对话链中该当前轮次之前的所有轮次的数目与该用于训练的对话链的所有轮次的数目的比值;确定该比值所在的该对话进度区间的序号,以该序号作为该当前轮次的对话进度。
根据一个实施例,该训练采用的目标函数为:
,
其中N表示用于训练的对话链的个数,其中d(x,y)表示x和y之间的距离,是超参数,取值为0或者1,分别表示序号为i的用于训练的对话链结束或者未结束,表示序号为i的用于训练的对话链的对话进度。
根据一个实施例,根据确定的该当前轮次的对话进度以及对话是否结束,通过反向传播算法对进行调整。
根据一个实施例,该第一人工智能神经网络单元和/或第二人工智能神经网络单元对输入采用注意力机制进行处理。
根据一个实施例,该对话管理包括以下一个或多个:结束该待预测对话;提示该对话进度;根据该对话进度向用户发出建议。
根据本发明的第二方面,提供一种用于对话管理的设备,包括:对话链获取单元,配置来获取待预测对话链;对话进度获取单元,配置来获取该待预测对话链的对话进度,其包括:将该待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到该待预测对话链的对话进度;对话管理单元,配置来基于该待预测对话链的对话进度对该待预测对话链进行对话管理。
根据本发明的第三方面,提供了一种用于对话管理的设备,包括:处理器;以及存储器,配置为在其上存储有计算机可执行指令,该指令当在该处理器中执行时使得实现上面第一方面的方法。
根据本发明的第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得该计算机实现上面第一方面的方法。
根据本发明的一些实施例,不仅能够预测对话是否已经结束,还能够对对话的进度做出较细粒度的判断。根据本发明的一些实施例,能够自动学习每一个对话轮次的内容以及不同对话轮次之间的交互特征,因此,无需通过耗时耗力的特征工程,可以采用端到端的方式预测对话的进度。根据本发明的一些实施例,无需依赖于任何社交介质上独有的特征,因此不限于预测社交介质上的对话进度,而可以广泛应用于多种不同类型的对话,包括任意线上对话、线下日常对话、工作场景对话以及人机对话等等。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1图示了根据本发明实施例的用于对话管理的方法的一个流程图。
图2a图示了根据本发明实施例的用于对话管理的方法的一个细化的流程图。
图2b图示了根据本发明实施例的用于对话管理的方法的另一个细化的流程图。
图3图示了根据本发明实施例的用于训练本发明实施例的人工智能神经网络的方法的流程图。
图4图示了根据本发明实施例的用于训练人工智能神经网络的方法的另一流程图。
图5图示了根据本发明实施例的用于训练人工智能神经网络的过程示意图。
图6a图示了根据本发明实施例的人工智能神经网络的一种结构示意图。
图6b图示了根据本发明实施例的人工智能神经网络的另一种结构示意图。
图7图示了根据本发明实施例的用于对话管理的装置的框图。
图8图示了根据本发明实施例的硬件环境图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本文中,对话伦次,指对话中由一个参与者在一个轮次中说的话(utterance),通常被定义为对话的最小单元,例如微信聊天中的一条消息。特别地,对于人与人的对话而言,一个对话伦次被定义为用户发表的一条消息(message),对于人机对话而言,一个对话伦次被定义为一个用户的问题(prompt)或者一个机器的回复(response)。对话链,指由对话轮次组成的序列,通常地,在对话链上的后一个轮次是对前一个轮次的响应。特别地,对于社交介质的对话,因为对话中的一个消息可能引发多条回复,其大多数情况下社交介质对话以树的结构存在,在本发明中,对话树上的一个从根节点到叶子节点的路径被定义为一个对话链。在后文中,如无特殊指明,“对话”作为对话链的简写出现。本文中所述的“计算机”可以做广义理解,即至少具有计算能力的机器,以至少区别于人力。
现有的用于对话管理的技术主要聚焦于社交介质上的对话,从方法层面可以分为两种。第一种主要采用人工提取的特征来预测对话可继续进行的对话轮次个数,人工提取的特征例如:可见的最后一个对话轮次是否以问号结尾,或者给定的每个对话轮次是否包含情感词等等。然而,这种技术有两个方面的局限性:其一,这种技术往往经过耗费时间和人力的特征工程,且往往需要依赖于社交介质独有的特征,例如:用户的社交网络特征、消息的传播结构等等;其二,预测对话的进度是一个困难的问题,难以用有限的规则去总结。用于训练的一种方法参见 Yunhao Jiao, Cheng Li, Fei Wu, Qiaozhu Mei: Find theConversation Killers: A Predictive Study of Thread-ending Posts. WWW 2018:1145-1154,首次采用端到端的技术来预测一个对话是否已经结束,这个工作提出的模型能够自动学习特征,这在很大程度上解放了人力,但是该工作所述的技术只能预测是否会有新的对话轮以延续对话,而无法对对话即将发生的对话轮次个数做出更细粒度的预测。
图1图示了根据本发明实施例的用于对话管理的方法的一个流程图。该方法开始于步骤101,在其中获取待预测对话链。该待预测对话链可以获取自文字对话链,或者语音对话链,其中语音对话链可以通过语音识别等技术转换为文字对话链。该待预测对话链可以获取自社交介质(例如微信、QQ等),也可以获取自其它线上对话,或者线下日常对话、工作场景对话以及人机对话等等。该待预测对话链可以是实时获取的,也可以获取自所存储的包含语音或文字的文件等。
在步骤102, 获取步骤101中所获取的待预测对话链的对话进度,其包括:将所述待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到所述待预测对话链的对话进度。其中,将所述待预测对话链处理成待预测对话链的各个轮次的词向量序列,每一个词向量代表对话轮次中的一个词,其可以使用现有的神经网络模型(例如Google公司的word2vec)来生成,也可以使用基于已有的语料而自己训练的神经网络模型来生成。
词向量处理是自然语言处理中常见的一个操作,一种词向量处理方式是将每个词表示成一个实数向量——独热向量(one-hot vector),其长度为字典大小,每个维度对应一个字典里的每个词,除了这个词对应维度上的值是1,其他元素都是0,但这种方式体现不出两个词的相关性,任何两个独热向量之间都是垂直关系。我们经常要比较两个词或者两段文本之间的相关性,为了做这样的比较,我们往往先要把词表示成计算机适合处理的方式。在机器学习领域里,各种“知识”被各种模型表示,词向量模型(word embedding model)就是其中的一类。通过词向量模型可将一个独热向量映射到一个维度更低的实数向量,如“母亲节”表示为[0.3,4.2,−1.5,...],“康乃馨”表示为[0.2,5.6,−2.3,...],在这个映射到的实数向量表示中,希望两个语义(或用法)上相似的词对应的词向量“更像”,这样如“母亲节”和“康乃馨”的对应词向量的余弦相似度不会为零,能够体现词与词之间的关系。词向量模型可以是概率模型、共生矩阵 (co-occurrence matrix)模型或神经网络模型。
word2vec的本质是一个神经网络模型,基于神经网络模型进行分布式词向量的训练,使用一层神经网络将独热形式的词向量映射到分布式形式的词向量。
除了使用现有的神经网络模型,还可以使用基于已有的语料而自己训练的神经网络模型,在后一种情况下,可以和根据本发明实施例的人工智能神经网络的其它部分一起作为一个整体进行训练,并且词向量和用于生成词向量的神经网络模型的参数在训练的过程中是一起优化的。
其中,配置来计算对话进度的人工智能神经网络可以通过训练而生成。训练过程参见下文结合图4、5和6的描述。在步骤103,基于所述待预测对话链的对话进度对所述待预测对话链进行对话管理。对话管理包括以下一个或多个:例如对于线上对话或者人机对话,可以从设备侧结束所述待预测对话;而对于实时对话,可以以声音、文字或者图像等方式提示所述对话进度,以便于对话参与方调整对话内容;对于实时对话,还可以进一步根据所述对话进度向用户发出建议,例如,根据对话进度快慢而建议锁定当前对话主题,或者建议更换主题等。
取决于所使用的人工智能神经网络的结构,步骤102还可以进一步细化。图6a描述了一种三层结构的人工智能神经网络,其中包括第一、第二和第三人工智能神经网络单元,基于该结构,我们描述步骤102的一种细化方法。该方法始于步骤1021a,在其中确定所述待预测对话链的每个轮次的词向量序列。给定任何一个已经持续了T轮的待预测对话链,其中的任何一个对话轮次表示为词序列,其中表示对话轮次的词数。关于从词到词向量的确定方法,上文已阐述,在此不再赘述。待预测对话链的每个轮次的多个词对应的词向量构成了词向量序列。
在步骤1022a,将所述的每个轮次的词向量序列输入到第一人工智能神经网络单元,所述第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,输出第一隐层表示矩阵。其中每个轮次是按轮次顺序依次输入的。第一人工智能神经网络单元可以是双向长短时记忆网络(BiLSTM),第一隐层表示矩阵是BiLSTM在两个方向上最后一个状态结合之后的表示矩阵,记为。所述结合包括相加、合并和取平均值等各种结合方式。两个矩阵相加即将两个矩阵对应位置的值分别相加而得到相加后的矩阵,两个矩阵合并即将两个矩阵的列依次排在一起,或者将两个矩阵的行依次排在一起,而得到合并后的矩阵,两个矩阵取平均值即两个矩阵对应位置的值分别取平均值而得到取平均值后的矩阵。
而后在步骤1023a,将每个轮次对应的所述第一隐层表示矩阵按轮次顺序依次输入到第二人工智能神经网络单元,所述第二人工智能神经网络单元配置来编码每一个对话轮次及其紧邻的前后两个对话轮次和之间的交互关系,输出每个轮次对应的第二隐层表示矩阵。第二人工智能神经网络单元也可以是双向长短时记忆网络,第二隐层表示矩阵可以是BiLSTM在两个方向上最后一个状态结合之后的表示矩阵,所述结合包括相加、合并和取平均值等各种结合方式。
而后在步骤1024a,将基于第二隐层表示矩阵的输入输入到第三人工智能神经网络单元,所述第三人工智能神经网络单元配置来输出第三隐层表示矩阵。在一个示例中,这里输入的基于第二隐层表示矩阵的输入是待预测对话链的最后一个轮次对应的第二隐层表示矩阵。在另一个示例中,这里输入的基于第二隐层表示矩阵的输入是待预测对话链的所有轮次对应的各个第二隐层表示矩阵的结合。所述第三人工智能神经网络单元也可以是双向长短时记忆网络,第三隐层表示矩阵是BiLSTM在两个方向上最后一个状态结合之后的表示矩阵,记为,所述结合包括相加、合并和取平均值等各种结合方式。
而后,根据本发明的实施例,将输出两种预测结果。其中一个预测结果输出对话是否已经结束,用二值变量表示,当=0,表示待预测对话链已经结束,当=1,则表示待预测对话链还在继续,预期该待预测对话链未来将有新的对话轮次加入,的计算方式例如:
。
另一个预测结果输出对话的进度,用表示,计算方式例如:
。
Softmax()函数,或称归一化指数函数,其定义是:,其中表示序列中的第i个向量,K表示序列的向量数。
具体而言,在步骤1025a,将所述基于第二隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束,例如上述的。在步骤1026a,将所述第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度,例如上述的。
在根据本发明上述实施例一个示例中,可以在第一人工智能神经网络单元和/或第二人工智能神经网络单元处增加注意力机制,以对第一人工智能神经网络单元和/或第二人工智能神经网络单元的输入中的重要部分赋予更高的权重。人工智能的注意力机制源于人类的视觉注意力机制,这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息,可以帮助人工智能神经网络模型对输入序列的每个部分赋予不同的权重,抽取出关键及重要的信息,使模型做出更加准确的判断。有关注意力机制的更多信息,可以参考文献Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learningto align and translate,作为ICLR 2015的会议论文公开。
图6b描述了一种两层结构的人工智能神经网络,其相比于图6a少了第二人工智能神经网络单元。基于该结构,我们描述步骤102的另一种细化方法。该方法始于步骤1021b,同步骤1021a一样的方式,在其中确定所述待预测对话链的每个轮次的词向量序列。
在步骤1022b,将所述的每个轮次的词向量序列输入到第一人工智能神经网络单元,所述第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,输出第一隐层表示矩阵。其中每个轮次是按轮次顺序依次输入的。第一人工智能神经网络单元可以是双向长短时记忆网络(BiLSTM),第一隐层表示矩阵是BiLSTM在两个方向上最后一个状态结合之后的表示矩阵,记为。所述结合包括相加、合并和取平均值等各种结合方式。
而后在步骤1023b,将基于第一隐层表示矩阵的输入直接输入到第三人工智能神经网络单元,所述第三人工智能神经网络单元配置来输出第三隐层表示矩阵。在一个示例中,这里输入的基于第一隐层表示矩阵的输入是待预测对话链的最后一个轮次对应的第一隐层表示矩阵。在另一个示例中,这里输入的基于第一隐层表示矩阵的输入是待预测对话链的所有轮次对应的各个第一隐层表示矩阵的结合。所述第三人工智能神经网络单元也可以是双向长短时记忆网络,第三隐层表示矩阵是BiLSTM在两个方向上最后一个状态结合之后的表示矩阵,记为,所述结合包括相加、合并和取平均值等各种结合方式。
而后,根据本发明的实施例,将输出两种预测结果。其中一个预测结果输出对话是否已经结束,用二值变量表示,当=0,表示待预测对话链已经结束,当=1,则表示待预测对话链还在继续,预期该待预测对话链未来将有新的对话轮次加入,的计算方式例如:
。
另一个预测结果输出对话的进度,用表示,计算方式例如:
。
具体而言,在步骤1024b,将所述基于第一隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束,例如上述的。在步骤1025b,将所述第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度,例如上述的。
在根据本发明上述实施例一个示例中,可以在第一人工智能神经网络单元处增加注意力机制,以检测第一人工智能神经网络单元的输入中的重要部分。
在结合图6a和图6b的实施例中,上述第一、第二和第三人工智能神经网络单元还可以是其他神经网络,例如卷积神经网络(Convolutional Neural Networks (CNN))、循环神经网络(Recurrent Neural Networks (CNN))、单向长短时记忆网络(Long Short-termMemory (LSTM))等等。卷积神经网络主要用于处理序列数据,在卷积神经网络中,每个序列中前后单元不独立,一个序列当前的输出与前一时刻的输出也有关,表现为会对历史的信息进行记忆,并将其保存在网络的隐藏状态中。单向长短时记忆网络是一种循环神经网络。该网络通过门结构选择去除或者增加对信息的记忆。其包含三个门(gate),分别为遗忘门(forget gate),输入门(input gate) 和输出门(output gate)。遗忘门决定当前网络是否丢弃该信息,输入门决定将什么新信息存放到当前网络中,输出门决定将网络中的哪一部分进行输出。单向循环神经网络只根据历史的信息推算出未来的信息,但在很多情况中,只看历史的信息是不够的,未来信息也需要考虑。相比而言,双向长短时记忆网络同时编码正向序列和反向序列,并结合双向序列的编码结果作为序列表示。
虽然从结构上将图6a和图6b的的人工智能神经网络划分为了若干单元,然而对于用户而言,只需要了解需要输入什么,会得到什么输出即可,对于单元之间的数据输入输出,用户是不用参与的。输入端(输入待预测对话链)到输出端(输出进度预测的结果)仅用一个人工智能神经网络相连,实现端到端的进度预测。
人工智能神经网络在投用之前是需要经过训练的,图3图示了根据本发明实施例的用于训练本发明实施例的人工智能神经网络的方法的流程图。训练方式如下。在步骤301,获取用于训练的若干个对话链的集合,用于训练的对话链的数目越多,训练得到的人工智能神经网络预测越准确。在步骤302,针对每一个用于训练的对话链,从中随机选取一个轮次作为当前轮次。在步骤303,确定该当前轮次的对话进度以及对话是否结束,这在神经网络的训练中常称为标注,通常基于当前轮次与所在对话链的关系,这可以通过接收人工输入而确定,也可以通过计算机算法根据当前轮次在对话链中的位置来确定。而后在步骤304,以所述每一个用于训练的对话链中所述当前轮次之前的所有轮次为输入,以所确定的当前轮次的对话进度以及对话是否结束为输出,对如图6a或图6b的人工智能神经网络进行训练。所述训练采用的目标函数为:
,
其中N表示用于训练的对话链的个数,d(x,y)表示x和y之间的距离,是超参数,取值为0或者1,分别表示序号为i的用于训练的对话链结束或者未结束,表示序号为i的用于训练的对话链的对话进度。在训练过程中,可以根据确定的当前轮次的对话进度以及对话是否结束,通过反向传播算法对进行调整。反向传播算法是适合于多层神经网络的一种学习算法,主要由两个环节(激励传播、权重更新)反复循环迭代,直到人工智能神经网络对输入的响应达到预定的目标范围为止。每次迭代的激励传播环节包含两步:一个是前向传播阶段,将用于训练的对话链送入本发明实施例的人工智能神经网络以获得激励响应,一个是反向传播阶段,求出激励响应同用于训练的对话链对应的输出之间的差,从而获得各个隐层和最后输出的响应误差。每次迭代的权重更新环节包含以下步骤:是将用于训练的对话链和响应误差相乘,从而获得权重的梯度;然后将这个梯度乘上一个比例并取反后加到权重上。这个比例将会影响到训练过程的速度和效果,因此称为“训练因子”。
图4图示了根据本发明实施例的用于训练人工智能神经网络的方法的另一流程图。该流程图针对每一个用于训练的对话链,图示了按以下步骤确定当前轮次的对话进度。在步骤401,确定若干对话进度区间。例如,对话进度从0到100%被划分为3个区间——(0,25%], (25%,75%],以及(75%,100%],其中圆括号表示不包括端点值,方括号表示包括端点值。在步骤402,确定所述用于训练的对话链中所述当前轮次之前的所有轮次的数目与所述用于训练的对话链的所有轮次的数目的比值。例如,某个用于训练的对话链共有10个轮次,当前是第3轮次,则计算该比值的计算为:。在步骤403,确定所述比值所在的所述对话进度区间的序号,以所述序号作为所述当前轮次的对话进度。继续上面的例子,比值0.2落在区间(0,25%]的范围内,按照0、1、2的序号对上述区间(0,25%]、(25%,75%]以及(75%,100%]依次标记的话,则区间(0,25%]的序号为0,将该序号0作为当前轮次的对话进度。当然,本发明不限于该一种进度表示方式,而可以采用任何可能的方式,例如以区间的结束值、区间的中间值等来表示当前轮次的对话进度。
图5图示了根据本发明实施例的用于训练人工智能神经网络的过程示意图。训练一个人工智能神经网络一般需要三个阶段——数据准备阶段、训练阶段和训练之后的测试阶段。根据本发明的实施例,在数据准备阶段,首先获取用于训练的若干个对话链的集合,用于训练的对话链的数目越多,训练得到的人工智能神经网络则可能预测越准确。基于该对话链的集合,获取用于训练人工智能神经网络的输入和输出数据,其中需要针对每一个用于训练的对话链,从中随机选取一个轮次作为当前轮次,而后确定该当前轮次的对话进度以及对话是否结束,这在神经网络的训练中常称为标注,通常基于当前轮次与所在对话链的关系,这可以通过接收人工输入而确定,也可以通过计算机算法根据当前轮次在对话链中的位置来确定。然后以每一个用于训练的对话链中所选取的当前轮次之前的所有轮次作为输入数据,以所确定的当前轮次的对话进度以及对话是否结束作为输出数据。该输入数据和对应的输出数据的组合的部分或者全部可以用作训练数据集,用于在训练阶段对图6a或图6b所示的人工智能神经网络进行训练,从而得到可以用于预测对话进度的模型。而后,上述输入数据和输出数据的组合的部分或者全部可以作为测试数据集,对生成的模型进行测试。这里,训练数据集和测试数据集可以完全重合、有交集、或者甚至完全没有交集。完全没有交集是理想的情况,这样测试的结果相对可靠。测试的过程是将用于测试数据集的输入数据输入到模型中,将用于测试数据集的输出数据与模型的输出结果进行比较,以确定进度预测成功或识别失败,当测试数据集的进度预测成功率大于预定的阈值,即说明该模型已经训练完成,可以投入使用了,而当进度预测失败,则可以将该次失败的预测对应的测试数据加入训练数据集继续训练模型,直至预测成功率大于预定的阈值。
图7图示了根据本发明实施例的用于对话管理的装置700的框图。如图所示,用于对话管理的装置700包括对话链获取单元701、对话进度获取单元702和对话管理单元703。其中对话链获取单元701配置来获取待预测对话链,该待预测对话链可以获取自文字对话链,或者语音对话链,其中语音对话链可以通过语音识别等技术转换为文字对话链。该待预测对话链可以获取自社交介质(例如微信、QQ等),也可以获取自其它线上对话,或者线下日常对话、工作场景对话以及人机对话等等中的对话链。该待预测对话链可以是实时获取的,也可以获取自所存储的包含语音或文字的文件等。对话进度获取单元702配置来获取所述待预测对话链的对话进度,其包括:将所述待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到所述待预测对话链的对话进度,其中,将所述待预测对话链处理成待预测对话链的每个轮次的词向量序列,每一个词向量代表对话轮次中的一个词,其可以通过已经训练好的词向量初始化,例如Google公司的word2vec开源词向量,也可以随机初始化。对话管理单元703配置来基于所述待预测对话链的对话进度对所述待预测对话链进行对话管理,对话管理包括以下一个或多个:例如对于线上对话或者人机对话,可以从设备侧结束所述待预测对话;而对于实时对话,可以以声音、文字或者图像等方式提示所述对话进度,以便于对话参与方调整对话内容;对于实时对话,还可以进一步根据所述对话进度向用户发出建议,例如,根据对话进度快慢而建议锁定当前对话主题,或者建议更换主题等。
需要说明,本公开中的方法步骤的描述先后不代表他们的执行先后,所描述的方法步骤可以以可能的、合理的顺序执行或同时执行。
参见图8,在本发明实的实施方式中,用于对话管理的设备800可以包括处理器804,其中包括硬件原件810。处理器804例如包括一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或多个处理器。如本文中所使用的术语“处理器”可指上述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的功能性可提供于经配置以用于为用户分配使用权限的专用硬件和/或软件模块内。并且,可将所述技术完全实施于一个或多个电路或逻辑元件中。本公开中描述各种元件(例如“器”)以强调经配置以执行所公开的技术的装置的功能方面,但不一定需要通过不同硬件单元来实现。而是,如上所述,各种单元可在同一硬件单元中组合或由互操作硬件单元(包含如上所述的一个或多个处理器)的集合结合合适软件和/或固件来提供。
在一个或多个示例中,所描述的功能可以硬件、软件、固件或其任一组合来实施。如果以软件实施,那么功能可作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质806传输,且由基于硬件的处理器执行。计算机可读介质806可包含对应于例如数据存储介质等有形介质的计算机可读存储介质,或包含促进计算机程序例如根据通信协议从一处传送到另一处的任何介质的通信介质。以此方式,计算机可读介质806通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)例如信号或载波等通信介质。数据存储介质可为可由一个或多个计算机或者一个或多个处理器读取以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包含计算机可读介质806。
举例来说且并非限制,此类计算机可读存储介质可包括RAM、ROM、EEPROM、CD_ROM或其它光盘等存储器、磁盘存储器或其它磁性存储器、闪存或可用来以指令或数据结构的形式存储所要程序代码且可由计算机读取的任何其它存储器812。而且,恰当地将任何连接称作计算机可读介质806。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波等无线技术包含于介质的定义中。然而应了解,计算机可读存储介质和数据存储介质不包含连接、载波、信号或其它瞬时介质,而是针对非瞬时有形存储介质。如本文中所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再生数据。上文的组合也应包含在计算机可读介质806的范围内。
用于对话管理的设备800还包括用于传输数据的I/O接口、以及其他功能814。用于对话管理的设备800可以包括不同的装置,例如可以包括个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、数字介质播放器、视频游戏装置、蜂窝或卫星无线电话、智能电话、音/视频电话会议装置、音/视频流式传输装置,甚至数码相机、数字记录装置以及其它类似的装置,图中仅示出了计算机816和移动装置818,这些配置中的每一个包括可以具有一般不同的构造和能力的设备,并且因此可以根据不同设备类别中的一个或多个配置用于对话管理的设备800。此外本发明实的技术还可以通过使用分布式系统、诸如通过如下所述的平台824在“云”822上全部或部分地实现。
云822包括和/或代表用于资源826的平台824。平台824抽象云822的硬件(例如,服务器)和软件资源的底层功能。资源826可以包括在远离用于对话管理的设备800的服务器上执行计算机处理时可以使用的应用和/或数据。资源826还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台824可以抽象资源和功能以将用于对话管理的设备800与其他计算设备连接。平台824还可以用于抽象资源的分级以提供遇到的对于经由平台824实现的资源826的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个用于对话管理的设备800内。例如,功能可以部分地在用于对话管理的设备800上以及通过抽象云822的功能的平台824来实现。
根据本发明的一些实施例,不仅能够预测对话是否已经结束,还能够对对话的进度做出较细粒度的判断。根据本发明的一些实施例,能够自动学习每一个对话轮次的内容以及不同对话轮次之间的交互特征,因此,无需通过耗时耗力的特征工程,可以采用端到端的方式预测对话的进度。根据本发明的一些实施例,无需依赖于任何社交介质上独有的特征,因此不限于预测社交介质上的对话进度,而可以广泛应用于多种不同类型的对话,包括任意线上对话、线下日常对话、工作场景对话以及人机对话等等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (15)
1.一种计算机实现的对话管理方法,包括:
获取待预测对话链;
获取所述待预测对话链的对话进度,其包括:将所述待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到所述待预测对话链的对话进度;以及
基于所述待预测对话链的对话进度对所述待预测对话链进行对话管理。
2.如权利要求1所述的方法,其中获取所述待预测对话链的对话进度进一步包括:
确定所述待预测对话链的每个轮次的词向量序列;
将所述待预测对话链的每个轮次的词向量序列按轮次顺序依次输入到第一人工智能神经网络单元,所述第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,并输出每个轮次对应的第一隐层表示矩阵;
将每个轮次对应的所述第一隐层表示矩阵按轮次顺序依次输入到第二人工智能神经网络单元,所述第二人工智能神经网络单元配置来编码每一个对话轮次及其紧邻的前后两个对话轮次之间的交互关系,并输出第二隐层表示矩阵,
将基于第二隐层表示矩阵的输入输入到第三人工智能神经网络单元,所述第三人工智能神经网络单元配置来确定第三隐层表示矩阵;
将所述基于第二隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束;以及
将所述第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度。
3.如权利要求1所述的方法,其中获取所述待预测对话链的对话进度进一步包括:
确定所述待预测对话链的每个轮次的词向量序列;
将所述待预测对话链的每个轮次的词向量序列按轮次顺序依次输入到第一人工智能神经网络单元,所述第一人工智能神经网络单元配置来编码每一个对话轮次中出现的词的语义特征,并输出每个轮次对应的第一隐层表示矩阵;
将基于第一隐层表示矩阵的输入输入到第三人工智能神经网络单元,所述第三人工智能神经网络单元配置来确定第三隐层表示矩阵;
将所述基于第一隐层表示矩阵的输入进行归一化指数函数处理,得到的结果表示待预测对话链的对话是否结束;以及
将所述第三隐层表示矩阵进行归一化指数函数处理,得到的结果表示待预测对话链的对话进度。
4.如权利要求2或3所述的方法,其中所述基于第二隐层表示矩阵的输入是所述待预测对话链的最后一个轮次对应的第二隐层表示矩阵,或者是所述待预测对话链的所有轮次对应的各个第二隐层表示矩阵的结合;其中所述基于第一隐层表示矩阵的输入是所述待预测对话链的最后一个轮次对应的第一隐层表示矩阵,或者是所述待预测对话链的所有轮次对应的各个第一隐层表示矩阵的结合。
5.如权利要求2或3所述的方法,其中所述第一、第二和/或第三人工智能神经网络单元基于双向长短时记忆网络构建。
6.如权利要求5所述的方法,其中所述隐层表示矩阵通过将所述双向长短时记忆网络的两个方向上最后一个状态矩阵进行结合而获得。
7.如权利要求1-6中任一个所述的方法,其中所述人工智能神经网络被预先训练,所述训练方式如下:
获取用于训练的若干个对话链的集合;
针对每一个用于训练的对话链,从中随机选取一个轮次作为当前轮次;
确定所述当前轮次的对话进度以及对话是否结束;
以所述每一个用于训练的对话链中所述当前轮次之前的所有轮次为输入,以所述当前轮次的对话进度以及对话是否结束为输出,对所述人工智能神经网络进行训练。
8.如权利要求7所述的方法,其中针对每一个用于训练的对话链,所述确定所述当前轮次的对话进度的方式如下:
确定若干对话进度区间;
确定所述用于训练的对话链中所述当前轮次之前的所有轮次的数目与所述用于训练的对话链的所有轮次的数目的比值;
确定所述比值所在的所述对话进度区间的序号,以所述序号作为所述当前轮次的对话进度。
9.如权利要求8所述的方法,
所述训练采用的目标函数为:
,
其中N表示用于训练的对话链的个数,其中d(x,y)表示x和y之间的距离,是超参数,取值为0或者1,分别表示序号为i的用于训练的对话链结束或者未结束,表示序号为i的用于训练的对话链的对话进度。
10.如权利要求9所述的方法,
根据确定的所述当前轮次的对话进度以及对话是否结束,通过反向传播算法对进行调整。
11.权利要求2或3所述的方法,所述第一人工智能神经网络单元和/或第二人工智能神经网络单元对输入采用注意力机制进行处理。
12.如权利要求1-11中任一个所述的方法,所述对话管理包括以下一个或多个:
结束所述待预测对话;
提示所述对话进度;
根据所述对话进度向用户发出建议。
13.一种用于对话管理的设备,包括:
对话链获取单元,配置来获取待预测对话链;
对话进度获取单元,配置来获取所述待预测对话链的对话进度,其包括:将所述待预测对话链输入到被配置来计算对话进度的人工智能神经网络,以得到所述待预测对话链的对话进度;
对话管理单元,配置来基于所述待预测对话链的对话进度对所述待预测对话链进行对话管理。
14.一种用于对话管理的设备,包括:
处理器;以及
存储器,配置为在其上存储有计算机可执行指令,所述指令当在所述处理器中执行时使得实现如权利要求1-12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得所述计算机实现如权利要求1-12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910141435.0A CN110162608A (zh) | 2019-02-26 | 2019-02-26 | 计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910141435.0A CN110162608A (zh) | 2019-02-26 | 2019-02-26 | 计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110162608A true CN110162608A (zh) | 2019-08-23 |
Family
ID=67645403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910141435.0A Pending CN110162608A (zh) | 2019-02-26 | 2019-02-26 | 计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162608A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559700A (zh) * | 2020-11-09 | 2021-03-26 | 联想(北京)有限公司 | 一种应答处理方法、智能设备及存储介质 |
CN115982336A (zh) * | 2023-02-15 | 2023-04-18 | 创意信息技术股份有限公司 | 动态对话状态图学习方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273406A (zh) * | 2017-04-27 | 2017-10-20 | 上海奔影网络科技有限公司 | 任务对话系统中的对话处理方法及装置 |
CN108134876A (zh) * | 2017-12-21 | 2018-06-08 | 广东欧珀移动通信有限公司 | 对话分析方法、装置、存储介质及移动终端 |
CN108304489A (zh) * | 2018-01-05 | 2018-07-20 | 广东工业大学 | 一种基于强化学习网络的目标引导型个性化对话方法与系统 |
CN108415923A (zh) * | 2017-10-18 | 2018-08-17 | 北京邮电大学 | 封闭域的智能人机对话系统 |
CN114911911A (zh) * | 2021-02-08 | 2022-08-16 | 中国移动通信有限公司研究院 | 一种多轮对话方法、装置及电子设备 |
-
2019
- 2019-02-26 CN CN201910141435.0A patent/CN110162608A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107273406A (zh) * | 2017-04-27 | 2017-10-20 | 上海奔影网络科技有限公司 | 任务对话系统中的对话处理方法及装置 |
CN108415923A (zh) * | 2017-10-18 | 2018-08-17 | 北京邮电大学 | 封闭域的智能人机对话系统 |
CN108134876A (zh) * | 2017-12-21 | 2018-06-08 | 广东欧珀移动通信有限公司 | 对话分析方法、装置、存储介质及移动终端 |
CN108304489A (zh) * | 2018-01-05 | 2018-07-20 | 广东工业大学 | 一种基于强化学习网络的目标引导型个性化对话方法与系统 |
CN114911911A (zh) * | 2021-02-08 | 2022-08-16 | 中国移动通信有限公司研究院 | 一种多轮对话方法、装置及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559700A (zh) * | 2020-11-09 | 2021-03-26 | 联想(北京)有限公司 | 一种应答处理方法、智能设备及存储介质 |
CN115982336A (zh) * | 2023-02-15 | 2023-04-18 | 创意信息技术股份有限公司 | 动态对话状态图学习方法、装置、系统及存储介质 |
CN115982336B (zh) * | 2023-02-15 | 2023-05-23 | 创意信息技术股份有限公司 | 动态对话状态图学习方法、装置、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11836593B1 (en) | Devices, systems, and methods for learning and using artificially intelligent interactive memories | |
CN110600017B (zh) | 语音处理模型的训练方法、语音识别方法、系统及装置 | |
Liu et al. | Iterative policy learning in end-to-end trainable task-oriented neural dialog models | |
Goel et al. | Prayas at emoint 2017: An ensemble of deep neural architectures for emotion intensity prediction in tweets | |
CN110837548B (zh) | 答案匹配方法、装置、电子设备及存储介质 | |
KR20210008520A (ko) | 화자 임베딩(들)과 트레이닝된 생성 모델을 이용한 화자 분리 | |
CN108028043A (zh) | 在参与者之间的对话中检测可行动项 | |
CN110110062A (zh) | 机器智能问答方法、装置与电子设备 | |
US11551159B2 (en) | Schema-guided response generation | |
KR20210070213A (ko) | 음성 사용자 인터페이스 | |
CN107112005A (zh) | 深度神经支持向量机 | |
CN110069612B (zh) | 一种回复生成方法及装置 | |
CN116070169A (zh) | 模型训练方法、装置、电子设备及存储介质 | |
WO2020104499A1 (en) | Action classification in video clips using attention-based neural networks | |
CN114127849A (zh) | 语音情感识别方法和装置 | |
WO2016173326A1 (zh) | 基于主题的交互系统及方法 | |
US10770072B2 (en) | Cognitive triggering of human interaction strategies to facilitate collaboration, productivity, and learning | |
CN109637527A (zh) | 对话语句的语义解析方法及系统 | |
WO2021127982A1 (zh) | 语音情感识别方法、智能装置和计算机可读存储介质 | |
CN111783955A (zh) | 神经网络的训练、对话生成方法及装置、存储介质 | |
CN110597968A (zh) | 一种回复选择方法及装置 | |
CN110162608A (zh) | 计算机实现的对话管理的方法、用于对话管理的设备以及计算机可读存储介质 | |
CN112733043A (zh) | 评论推荐方法及装置 | |
CN113793599B (zh) | 语音识别模型的训练方法和语音识别方法及装置 | |
CN111046157B (zh) | 一种基于平衡分布的通用英文人机对话生成方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |