尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
本文原載於微信公眾號:AI部落聯盟(AI_Tribe),AI研習社經授權轉載。歡迎關注 AI部落聯盟 微信公眾號、知乎專欄 AI部落、及AI研習社博客專欄。
在 總結 | 對話系統中的口語理解技術(SLU)(一),我們一起聊了聊任務型對話中的NLU之領域分類和意圖識別;在 總結 | 對話系統中的口語理解技術(SLU)(二),我們一起聊了聊任務型對話中的NLU之槽填充。今天我們一起來聊聊任務型對話中的NLU之上下文LU、結構化LU以及SLU各方法的對比、SLU的評估等。
自然語言理解(NLU)就是要獲得一個計算機能直接使用的語義表示,比如Distributional semantics、Frame semantics、Model-theoretic semantics等,本文採用的是frame semantics。NLU在很多NLP領域或任務都有涉及,比如問答、信息檢索、閱讀理解、對話系統以及很多需要NLG的任務(一般需要先理解才能生成)等。不同任務下的NLU也不一樣,今天我們簡單來聊聊對話系統中的NLU。
1. 簡介
對話系統按功能來劃分的話,分為閒聊型、任務型、知識問答型和推薦型。在不同類型的聊天系統中,NLU也不盡相同。
1.1. 閒聊型對話中的NLU就是根據上下文進行意圖識別、情感分析等, 並作為對話管理(DM)的輸入;
1.2.任務型對話中的NLU就是領域分類和意圖識別、槽填充。他的輸入是用戶的輸入Utterance,輸出是Un=(In, Zn), In是intention,Zn是槽植對。如果不太明白,可以看看我之前發的文章「任務型對話系統公式建模&&實例說明」。
1.3.知識問答型對話中的NLU主要是根據用戶的問題,進行問句類型識別與問題分類,以便於更精準的進行信息檢索或文本匹配而生成用戶需要的知識(知識、實體、片段等)。
1.4.推薦型對話系統中的NLU就是根據用戶各種行為數據和愛好進行興趣匹配,以便於找到更精準的推薦候選集。
2. 上下文LU、結構化LU
先來看看我匯總的任務型對話系統中的NLU之上下文LU、結構化LU。
上下文LU
結構化LU
2.1 上下文LU
這是一類結合上下文來進行SLU的方法,這類方法的主要好處是:在多輪對話中,解決歧義問題。
先來看看多輪對話和單論對話的區別:
單輪對話VS多輪對話
為了把抽象問題具體化,再來看個歧義的例子:
人:我想去美國。
機器:那你有什麼需要呢?
人:我想問下簽證的時間。
機器:一臉懵逼(因為可能是問簽證的有效期,也肯能是問辦理簽證需要多長時間)
人:我想在那邊待3個月。
機器:好的,簽證的有效期是xxxx。(根據上句話可以確定是問簽證的有效期)
歧義問題
明確了這類方法的定位和需要解決的問題,接下來我們分別介紹幾種常用的方法:
Hori et al, 2015
基於Seq2Seq模型對上下文建模,一次輸入一個詞,每句結束時輸出標籤。這種模型還具有對話者角色相關的LSTM層,並使用角色狀態控制門來決定角色是不是active,而且角色狀態隨時間而線性傳播,agent和client的角色也被加以區分。這種方法對上下文比較敏感,能解決多輪對話的歧義問題。
Chen et al., 2016 這篇論文的所有作者都是任務型對話領域的知名學者。
這種方法的主要idea是在作slot tagging時加入上下文知識, 然後以一種潛在的方式進行對話狀態的追蹤。
這是一種基於端到端的記憶網路攜帶Knowledge來做多輪對話中的上下文理解,將RNN和Memory Networks結合起來應用於SLU模塊。具體分為4步:
1.記憶表示:為了存儲前面對話輪中的知識,通過RNN將前面對話輪中的每個話語嵌入到連續的空間中,將每個話語轉換成一個記憶向量;
2.知識注意力分布:在嵌入空間中,通過取內積然後softmax來計算當前輸入和每個記憶向量間的匹配,該結果可以被看作是為了理解當前輸入而建模知識傳遞的注意力分布;
3.知識編碼表示:為了對來自歷史的知識進行編碼,歷史向量是對由注意力分布加權的記憶嵌入的總和;
4.序列標註:提供攜帶的知識來提高序列標註的效果。
Bapna et.al., SIGDIAL 2017 對話
使用RNN探索新的建模對話上下文的方法,提出了序列對話編碼網路,它允許按時間順序對來自對話歷史的上下文編碼。之前輪和當前輪的encodings被輸入一個共享所有存儲器權重的前饋網路。並將序列對話編碼網路的性能與僅使用先前的上下文的模型、在memory網路中編碼失去對話順序的上下文的模型進行比較,在多域對話數據集上的實驗表明,序列對話編碼網路能減少歧義。
2.2結構化LU(Chen et al., 2016)
本文提出了K-SAN:用先驗知識當作引導,句子結構知識當作menory來存儲。這是由先驗知識引導的結構化注意力網路,其實就是RNN+attention+先驗知識,但是跟RNN不同的是:該模型充分利用自然語言豐富的、結構化的信息而不再是線性扁平鏈。
該模型的兩大優勢是:可從少量數據中獲取重要的子結構,增強模型的泛化能力;針對給定句子,可自動找出對其語義標籤至關重要的顯著子結構,從而緩解測試集中的unseen data,進一步提升NLU的效果。並在ATIS數據上表明 K-SAN 可以使用注意力機制有效地從子結構中提取出顯著的知識,達到SOTA的效果。
3. SLU各方法的對比
以上簡單介紹了對話系統中的SLU中的領域分類和意圖識別、槽填充、上下文LU和結構化LU技術,下面簡單總結下它們的優勢和劣勢。
4.SLU的評估
任何一項技術想要取得進步,那麼他的評測方法是至關重要的(就相當於目標函數之於機器學習算法),所以我列出一些關於SLU的評估。遺憾的是,目前SLU的評估我感覺並不成熟,這也是制約SLU發展的一個重要原因,如果誰能想出更好的評估方法或整理出一個業內公認的高質量評測數據集,那麼一定會在對話系統領域有一席之地,引用量也會蹭蹭上漲。
5. 本文涉及到的論文
以上是我關於對話NLU中的上下文LU、結構化LU以及SLU各方法的對比、SLU的評估等的一些總結。下面貼出了一些代表性的paper,大家可以深入學習。另外,如果看完論文還是不太懂的歡迎微信找我討論。
5.1Contextual LU
5.1.1 Context Sensitive Spoken Language Understanding using Role Dependent LSTM layers,Hori et al, 2015
5.1.2E2E MemNN for Contextual LU
End-to-End Memory Networks with Knowledge Carryover for Multi-Turn Spoken Language Understanding, Chen et al., 2016
5.1.3Sequential Dialogue Encoder Network
Sequential Dialogue Context Modeling for Spoken Language Understanding,Bapna et.al., SIGDIAL 2017
5.2 Structural LU
K-SAN:prior knowledge as a teacher,Sentence structural knowledge stored as memory
Knowledge as a Teacher: Knowledge-Guided Structural Attention Networks,Chen et al., 2016
5.3 LU Importance
Investigation of Language Understanding Impact for Reinforcement Learning Based Dialogue Systems,Li et al., 2017
【AI求職百題斬】已經悄咪咪上線啦,還不趕緊來答題?!