一种基于记忆网络的多轮对话下的意图识别方法技术

技术编号:19479930 阅读:669 留言:0更新日期:2018-11-17 10:31
本发明专利技术公开了一种基于记忆网络的多轮对话下的意图识别方法,主要采用循环神经网络,记忆网络和注意力机制结合的神经网络模型。本发明专利技术首先将语言数学化处理,然后利用循环神经网络对每轮的对话进行编码,得到对话的编码向量,再利用外部存储器保存历史对话信息,通过注意力机制从记忆中选择与该轮对话意图相关的历史对话信息,从而得到历史信息的编码向量,对于当前的对话编码向量和历史的对话编码向量,利用一个控制门,判断是否在分类器中引入历史信息,得到最终用于分类的编码信息,利用多标签的分类器,得到每轮对话的意图。

【技术实现步骤摘要】
一种基于记忆网络的多轮对话下的意图识别方法
本专利技术属于自然语言处理的对话领域,涉及一种记忆网络的神经网络学习方法。
技术介绍
随着人们生活水平不断的提高,人工智能设备的出现其实满足了大众心理的“小刚需”,如人工智能设备之一的智能音响。通过语音控制播放音乐,或者躺在冬天的被窝里关灯等等智能服务,其都在一定程度上大大的便捷了人们的生活。2017年国内智能音箱市场的爆发式增长惊人,2017年的销售数据足以表明智能音箱在国内的受欢迎程度。这一年是智能音箱市场增长最快的一年,不少品牌通过自身的软件或者硬件优势快速赢得市场。当然成功的背后,这个市场并非看起来那么顺利,还有很多技术还未成熟。单轮对话下的任务处理还存在诸多的瓶颈,而多轮对话下的服务和需要克服的问题还没有引起广大研究人员的重视。对话系统最早被提出是在1950年,艾伦·图灵(AlanTuring)提出了一种方法来测试一台机器的智能水平,这个机器被普遍称为图灵测试或模仿游戏。在图灵测试中,一台机器被要求与人交谈。机器的智能水平取决于机器如何能够欺骗人类评估者,使其相信机器是基于文本响应的人类。目前主要有以下三种对话系统:1)闲聊系统2)基于框架的目标导向系统3)交互式问答系统(QA)。由于人类交流时,酝酿语言的过程较短,句法结构比较简单,多用短句和省略形式等习惯,对话的内容很难单轮对话中交代清楚。这就导致上述的三大对话系统都必须满足多轮对话的刚性需要。记忆网络是一类神经网络模型,可以通过操作内存中的内容(存储、取回、过滤和重用)来进行自然语言推理。记忆网络已被成功地应用于很多自然语言任务中了,例如问答系统,语言建模以及对话。记忆网络中的存储器部分可以嵌入长期记忆(例如,关于真实世界的常识)和短期上下文(例如,最近的几段对话)。而短期上下文的记忆可以采用内部记忆方式和外部记忆方式。循环神经网络的记忆是内部记忆方式,其依靠rnnCell或者lstmCell实现,但是rnn和lstm的记忆能力实在有限,最多也就记忆十几个时间步长。而外部的记忆方式可以任意增加加入模型的知识量,同时对模型本身做出最小限度改变。
技术实现思路
技术问题:本专利技术提供一种可以引入历史信息实现多轮对话的意图识别,也考虑拒绝历史信息的引入实现单轮对话的意图识别,实现合理对话场景下意图分类的基于记忆网络的多轮对话下的意图识别方法,在考虑多轮对话的意图识别的同时,兼顾单轮对话的意图识别。技术方案:本专利技术的基于记忆网络的多轮对话下的意图识别方法,包括以下步骤:A、利用公开文本数据库提供的接口获取用于训练词向量模型的语料库,对所述语料库经过文本预处理后,训练词向量模型,得到文本数据中词语对应的词向量集合V,每个词向量表示为Vi,所述词向量模型采用共现矩阵和GloVe模型学习词向量,具体过程如下:1)基于语料库构建词的共现矩阵X,:使用窗口将整个语料库遍历一遍,将整个语料库中,单词i和单词j共同出现在一个窗口中的次数作为共现矩阵X的元素Xij,即可得到共现矩阵X;2)根据下式构建训练词向量模型的目标函数:其中J为目标函数的值,f(x)是权重函数,x表示词频,xmax为自定义的最大词频,f(Xi,j)为元素Xi,j的权重,Vi,Vj分别是单词i和单词j的词向量,bi,bj是单词i和单词j的偏置参数,元素Xij表示为整个语料库中,单词i和单词j共同出现在一个窗口中的次数,N为语料库的词汇表的大小,T为矩阵转置;B、读取文本数据,并将其处理成网络模型能够接受的量化数据,具体步骤如下:1)读入对话文本数据,给每个词编号,建立包含编号-词语映射的词典D,编号从1开始;2)根据训练好的词向量模型,对应词典D,找到每个编号下对应的词语在词向量模型中的词向量vi,建立词向量矩阵P,词向量矩阵P的每一行P[i]存储词向量vi,词向量矩阵P的第一行P[0]存储一个元素全为零的词向量;3)按照词序生成每轮对话文本ui的编号向量bi,编号向量bi的元素为词语的编号,编号向量bi采用固定长度L,不足长度的位置补零;4)根据编号向量bi构建编号矩阵B,编号矩阵B的每一行B[i]采用One-hotRepresentation表示向量,这个向量的维度是词典D的大小,其中只有一个维度的值为1,其他元素为0,这个值为1的维度就是编号向量bi的对应编号;5)生成输入矩阵I,即网络模型能够接受的量化数据如下:I=B*P;C、将每轮对话的文本内容利用长短时记忆网络LSTM编码成对应的编码向量,遍历对话集合,每轮对话ui都作为一个输入,生成每轮对话ui的对应编码向量si;si=LSTM(ui)D、构建每个对话的编码向量si的历史记忆信息矩阵Mi,具体过程如下:1)原始对话文本数据中包含多个对话片段{T1,T2,T3,…,Ta},对于每一个对话片段Ti中包含多轮对话[u0,…,ub],其中a表示文本数据中的对话片段个数,b表示每个对话片段中对话信息的轮数;设置一个历史信息保留窗口,窗口大小为k,对于每个对话片段Ti的每轮对话ui保留其前面的k轮对话作为历史信息[ui-k,…,ui-1],如果ui之前的轮数少于窗口大小k,则前向补零,历史信息为[0,…,0,u0,…,ui-1];2)对于每轮对话ui的历史信息[ui-k,…,ui-1]的每个元素利用步骤C中的长短时记忆网络LSTM生成每个元素对应的编码向量[si-k,…,si-1],构建成每轮对话ui的历史记忆信息矩阵Mi:E、通过注意力机制,从每轮对话ui的历史记忆信息矩阵Mi抽取与当前对话意图相关的信息,然后根据下式计算当前对话的对应编码向量si和其历史记忆信息矩阵Mi中第j个历史信息的权重pj:通过pj和历史记忆信息矩阵Mi的加权和得到历史信息的向量表示hi:F、根据下式计算控制门的权重ai:ai=sigmoid(W[hi,si])其中,sigmoid函数为激活函数,W为控制门的网络参数,hi为历史信息的向量表示,si为当前对话的编码向量;G、根据下式计算最终用于分类的编码向量oi:oi=sigmoid(Wkg(aihi+si))其中,sigmoid函数为激活函数,Wkg为分类器的网络参数,ai为控制门的权重,hi为历史信息的向量表示,si为当前对话的编码向量。H、采用多层感知机(MLP)作为分类器:label=MLP(oi)其中,oi为步骤G中生成的编码向量,label为每个标签对应的概率分布向量,向量维度为标签集合的大小/()。进一步的,本专利技术方法中,步骤A中的词向量是用实数向量将文本映射到量化空间的一种表示方法,采用DistributedRepresentation的编码方式,向量的距离用欧氏距离或余弦夹角来衡量。进一步的,本专利技术方法中,步骤B的3)中不足长度的位置补零采用前向补零或后向补零,且所有编号向量补零方式必须一致。进一步的,本专利技术方法中,步骤C中编码成对应的向量是用实数向量将序列文本映射到量化空间的一种表示方法。进一步的,本专利技术方法中,步骤H中分类器采用能够同时预测多个意图的多标签分类器,将编码向量Oi作为分类器的输入,分类器为全链接的单层神经网络,输出为一个一维的向量,向量的维度为数据集的标签集合的元素个数。本专利技术主要采用循环神经网络,记忆网络和注意力机制结合的神经本文档来自技高网
...

【技术保护点】
1.一种基于记忆网络的多轮对话下的意图识别方法,其特征在于,该方法包括以下步骤:A、利用公开文本数据库提供的接口获取用于训练词向量模型的语料库,对所述语料库经过文本预处理后,训练词向量模型,得到文本数据中词语对应的词向量集合V,每个词向量表示为Vi,所述词向量模型采用共现矩阵和GloVe模型学习词向量,具体过程如下:1)基于语料库构建词的共现矩阵X,:使用窗口将整个语料库遍历一遍,将整个语料库中,单词i和单词j共同出现在一个窗口中的次数作为共现矩阵X的元素Xij,即可得到共现矩阵X;2)根据下式构建训练词向量模型的目标函数:

【技术特征摘要】
1.一种基于记忆网络的多轮对话下的意图识别方法,其特征在于,该方法包括以下步骤:A、利用公开文本数据库提供的接口获取用于训练词向量模型的语料库,对所述语料库经过文本预处理后,训练词向量模型,得到文本数据中词语对应的词向量集合V,每个词向量表示为Vi,所述词向量模型采用共现矩阵和GloVe模型学习词向量,具体过程如下:1)基于语料库构建词的共现矩阵X,:使用窗口将整个语料库遍历一遍,将整个语料库中,单词i和单词j共同出现在一个窗口中的次数作为共现矩阵X的元素Xij,即可得到共现矩阵X;2)根据下式构建训练词向量模型的目标函数:其中J为目标函数的值,f(x)是权重函数,x表示词频,xmax为自定义的最大词频,f(Xi,j)为元素Xi,j的权重,Vi,Vj分别是单词i和单词j的词向量,bi,bj是单词i和单词j的偏置参数,元素Xij表示为整个语料库中,单词i和单词j共同出现在一个窗口中的次数,N为语料库的词汇表的大小,T为矩阵转置;B、读取文本数据,并将其处理成网络模型能够接受的量化数据,具体步骤如下:1)读入对话文本数据,给每个词编号,建立包含编号-词语映射的词典D,编号从1开始;2)根据训练好的词向量模型,对应词典D,找到每个编号下对应的词语在词向量模型中的词向量vi,建立词向量矩阵P,词向量矩阵P的每一行P[i]存储词向量vi,词向量矩阵P的第一行P[0]存储一个元素全为零的词向量;3)按照词序生成每轮对话文本ui的编号向量bi,编号向量bi的元素为词语的编号,编号向量bi采用固定长度L,不足长度的位置补零;4)根据编号向量bi构建编号矩阵B,编号矩阵B的每一行B[i]采用One-hotRepresentation表示向量,这个向量的维度是词典D的大小,其中只有一个维度的值为1,其他元素为0,这个值为1的维度就是编号向量bi的对应编号;5)生成输入矩阵I,即网络模型能够接受的量化数据如下:I=B*P;C、将每轮对话的文本内容利用长短时记忆网络LSTM编码成对应的编码向量,遍历对话集合,每轮对话ui都作为一个输入,生成每轮对话ui的对应编码向量si;si=LSTM(ui)D、构建每个对话的编码向量si的历史记忆信息矩阵Mi。,具体过程如下:1)原始对话文本数据中包含多个对话片段{T1,T2,T3,…,Ta},对于每一个对话片段Ti中包含多轮对话[u0,…,ub],其中a表示文本数据中的对话片段个数,b表示每个对话片段中对话信息的轮数;设置一个历史...

【专利技术属性】
技术研发人员:杨成彪吴刚
申请(专利权)人:南京柯基数据科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1