[發明專利]一種層次注意力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 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 注意力機制 圖譜 抽取 語義 對話管理 句子層面 時序信息 用戶意圖 會話 多輪 單詞 注意力 自然語言處理 上下文語義 對話內容 核心思想 句子語義 無用信息 重要信息 第一層 準確率 保留 過濾 判定 外部 學習 | ||
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≤m
hide=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≤m
Semantic=[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是否一致,如果一致,則仍然延用當前會話,不需要開啟新會話,如果不一致,則關閉當前會話并開啟一個新會話。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京尋領科技有限公司,未經北京尋領科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810699042.7/1.html,轉載請聲明來源鉆瓜專利網。





