[发明专利]一种层次注意力LSTM和知识图谱的多轮对话管理方法有效
申请号: | 201810699042.7 | 申请日: | 2018-06-29 |
公开(公告)号: | CN108874782B | 公开(公告)日: | 2019-04-26 |
发明(设计)人: | 高扬;王丹;其他发明人请求不公开姓名 | 申请(专利权)人: | 北京寻领科技有限公司 |
主分类号: | G06F17/27 | 分类号: | G06F17/27;G06F16/36;G06F16/332;G06N3/04;G06N3/08 |
代理公司: | 北京理工正阳知识产权代理事务所(普通合伙) 11639 | 代理人: | 王民盛 |
地址: | 100095 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种层次注意力LSTM和知识图谱的多轮对话管理方法,属于自然语言处理领域。本方法的核心思想为:将会话中用户和系统的对话内容作为上下文,利用上下文在单词和句子层面的重要、时序信息抽取上下文深层语义,具体分两步,首先在单词层面利用第一层注意力机制LSTM抽取句子语义,其次在句子层面利用第二层注意力机制LSTM抽取上下文语义;其中,注意力机制保留重要信息,且注意力机制通过知识图谱作为外部知识来实现,LSTM保留时序信息,这些信息共同识别用户意图,识别结果用来判定是否开启下一个会话。本发明利用知识图谱和LSTM学习了上下文深层语义、利用注意力机制过滤掉无用信息,从而提高了识别用户意图的效率和准确率。 | ||
搜索关键词: | 注意力机制 图谱 抽取 语义 对话管理 句子层面 时序信息 用户意图 会话 多轮 单词 注意力 自然语言处理 上下文语义 对话内容 核心思想 句子语义 无用信息 重要信息 第一层 准确率 保留 过滤 判定 外部 学习 | ||
【主权项】:
1.一种层次注意力LSTM和知识图谱的多轮对话管理方法,其特征在于:将会话中用户和系统的对话内容作为上下文,利用上下文在单词和句子层面的重要、时序信息抽取上下文深层语义,具体分两步,首先在单词层面利用第一层注意力机制LSTM抽取句子语义,其次在句子层面利用第二层注意力机制LSTM抽取上下文语义;其中,注意力机制保留重要信息,且注意力机制通过知识图谱作为外部知识来实现,LSTM保留时序信息,这些信息共同识别用户意图,识别结果用来判定是否开启下一个会话;本方法利用知识图谱和LSTM学习了上下文深层语义、利用注意力机制过滤掉无用信息,采用如下技术方案:首先进行相关定义,具体如下:定义1:query,是指用户会向系统提出的一些问题,每一个query都会对应一个用户意图,query又分为两类:first query和非first query;其中,first query和非first query,是指在一个会话中的用户的第一个query,相对应的会话中剩余的query就称为非first query;定义2:用户意图,即用户query的主题,是用户提出query的意图,该用户意图和知识图谱中的实体相对应;定义3:上下文,由若干个有序的句子构成,对于会话中的任意一个非firstquery而言,其前面出现的所有对话称为当前query的上下文;定义4:层次注意力的LSTM,有两层网络,第一层是注意力机制和LSTM结合,第二层是将第一层的结果作为输入,然后将注意力机制和LSTM结合,从而组成层次注意力的LSTM;定义5:输入序列,指词向量序列或者句向量序列,层次注意力的LSTM的第一层输入序列是词向量序列,第二层输入序列是句向量序列;定义6:上下文语义向量序列,上下文中每一个句子用一个句向量来表示,那么上下文中所有句子对应的句向量序列就是上下文语义向量序列;定义7:上下文语义向量,用一个向量表示上下文中所有的句子,该向量就是上下文语义向量;所述层次注意力LSTM和知识图谱的多轮对话管理方法,包括如下步骤:步骤1、构建词表、语料集、分词,再利用word2vec算法对分词结果进行学习,得出知识图谱中用户意图的词向量,具体又包括如下子步骤:步骤1.1构建词表,将知识图谱中的用户意图作为单词整理成词表;步骤1.2构建语料集,具体为:通过爬虫工具在维基百科以及百度知道网站中爬取涵盖步骤1.1词表中单词的句子;步骤1.3将步骤1.2爬取的句子进行分词;步骤1.4训练词向量,具体用word2vec算法对步骤1.3的分词结果进行训练,输出词向量;步骤2、输入当前query,并判断当前query是否为会话的first query,如果是则执行步骤3,否则执行步骤4;其中,当前query,是指需要判断用户意图的query;会话是指对话内容,当前会话是指系统和用户已完成的对话内容,新会话是指上下文的用户意图和当前query的用户意图不同时,清除已完成对话内容,并开启新一轮的对话;步骤3、对当前query分词并利用规则方法识别用户意图,具体又包括如下子步骤:步骤3.1利用nltk包对当前query进行分词,得到分词结果,记为:q=[q1,q2,...,qn];步骤3.2将步骤3.1输出的分词结果和知识图谱中的用户意图进行一一匹配,若匹配成功,则匹配结果就是用户意图,输出匹配结果并跳至步骤6;若匹配失败,则执行步骤3.3;步骤3.3利用大规模中文概念图谱CN‑Probase将步骤3.1分词结果映射成概念集合p=[p1,p2,...,pm],再令q=p,执行步骤3.2;步骤4、利用基于注意力机制LSTM模型计算上下文中第s个句子的语义向量、上下文语义向量序列;其中,上下文由若干个有序的句子构成,对于会话中的任意一个非first query而言,其前面出现的所有对话称为当前query的上下文;步骤4具体又包括如下子步骤:步骤4.1将s赋值1;步骤4.2训练上下文单词的词向量、计算上下文中句子的隐含层向量、词向量权重和上下文中第s个句子语义向量,具体又包括如下子步骤:步骤4.2.1利用word2vec算法训练上下文所有单词的词向量;步骤4.2.2计算Contexts的隐含层向量,记为hs,其中,Contexts表示上下文中第s个句子的语义向量;hs具体通过公式(1)计算:其中,表示t时刻遗忘门,表示t时刻的输入门,表示t时刻更新的信息,表示t时刻的信息,表示t‑1时刻的信息,表示t时刻的输出门,表示t时刻隐含层向量,表示参数矩阵,表示步骤4.1.1中t时刻对应的词向量,表示矩阵参数,表示t‑1时刻的隐含层向量,表示偏置向量参数,σ表示Sigmoid函数,是LSTM模型的激活函数,tanh表示双曲正切函数,是LSTM模型的激活函数,表示向量的叉乘,n表示输入序列中词向量序列的长度,为零向量;步骤4.2.3利用用户意图和步骤4.2.2得到的隐含层向量,计算输入序列中词向量权重,记为αs,具体通过公式(2)的注意力机制来完成:其中,表示输入序列中词向量权重的第k维,UI表示用户意图,是以向量的方式表示,hs_k表示隐含层向量hs的第k维,hs_j表示隐含层向量hs的第j维,w表示权重维度大小,e表示指数函数,g是一个前向神经网络;步骤4.2.4利用步骤4.2.2输出的隐含层向量和步骤4.2.3输出的权重计算Contexts,具体通过公式(3)计算:其中,表示上下文中第s个句子语义向量的第k维,表示隐含层向量的第k维,表示i时刻隐含层向量;步骤4.3判断s是否等于K,若不等于则s加1,跳步骤4.2;若等于则跳入步骤5;其中,K是上下文中句子的个数;步骤5、利用层次注意力LSTM和知识图谱,计算上下文语义向量、识别用户意图,具体又包括如下子步骤:步骤5.1计算上下文语义向量序列的隐含层向量、句向量权重、上下文语义向量、识别用户意图,具体又包括如下子步骤:步骤5.1.1计算Semantic的隐含层向量,记为hide;其中,Semantic表示上下文语义向量;hide具体通过公式(4)计算:ft=σ(WfContextt+Ufht‑1+bf)it=σ(WiContextt+Uiht‑1+bi)ot=σ(WoContextt+U0ht‑1+bo)1≤t≤mhide=hm其中,ft表示t时刻遗忘门,it表示t时刻的输入门,表示t时刻更新的信息,ct表示t时刻的信息,ct‑1表示t‑1时刻的信息,ot表示t时刻的输出门,ht表示t时刻隐含层向量,Wf,Wi,Wo表示参数矩阵,Contextt表示上下文语义向量序列中的第t个,Uf,Ui,Uo表示矩阵参数,ht‑1表示t‑1时刻的隐含层向量,bf,bi,bo表示偏置向量参数,σ表示Sigmoid函数,是LSTM模型的激活函数,tanh表示双曲正切函数,是LSTM模型的激活函数,表示向量的叉乘,m表示输入序列中句向量序列的长度,h0为零向量;步骤5.1.2利用用户意图UI和步骤5.1.1输出的隐含层向量,计算输入序列中句向量权重,记为α,具体通过公式(5)的注意力机制来计算:其中,αk表示输入序列中句向量权重的第k维,UI表示用户意图,是以向量的方式表示,hk表示在k时刻的隐含层向量,hj表示在j时刻的隐含层向量,g是一个前向神经网络;步骤5.1.3利用步骤5.1.1得到的隐含层向量和步骤5.1.2得到的权重计算上下文语义向量Semantic,具体通过公式(6)计算:1≤k≤mSemantic=[Semantic1,Semantic2,...,Semanticn]其中,Semantick表示上下文语义向量的第k维,αk表示输入序列中句向量权重的第k维,hi_k表示隐含层向量hi的第k维;步骤5.2利用步骤5.1输出的上下文语义向量和知识图谱识别用户意图,具体是通过逻辑回归的方法进行分类,目标函数如公式(7):其中,UInext表示需要识别的用户意图,UI表示上下文对应的用户意图,θnext表示UInext对应的参数,θi表示词表中i位置单词所对应的参数,表示向量的连接,|V|表示词表的大小,Semantic表示上下文语义向量,Σ表示求和;步骤5.3利用交叉熵的方法通过公式(8)计算计算步骤5.2中目标函数(7)的损失函数:L=‑log(P(y=UInext|UI)) (8)其中,UInext表示需要识别的用户意图,log表示以10为底的对数函数,UI表示上下文对应的用户意图;损失函数(8)通过Sampled Softmax算法和随机梯度下降参数更新方法进行求解并输出识别的用户意图;步骤6判断输出结果和用户意图UI是否一致,如果一致,则仍然延用当前会话,不需要开启新会话,如果不一致,则关闭当前会话并开启一个新会话。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京寻领科技有限公司,未经北京寻领科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810699042.7/,转载请声明来源钻瓜专利网。