對話系統中的口語理解技術(二)
本文原載於微信公眾號:AI部落聯盟(AI_Tribe),AI研習社經授權轉載。歡迎關注AI部落聯盟 微信公眾號、知乎專欄 AI部落、及AI研習社博客專欄。
在總結 | 對話系統中的口語理解技術(SLU)(一),我們一起聊了聊任務型對話中的NLU之領域分類和意圖識別。今天我們一起來聊聊任務型對話中的NLU之槽填充。 自然語言理解(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. 槽填充
先來看看我匯總的任務型對話系統中的NLU之槽填充。
槽填充技術匯總
下面分別介紹下對話系統中不同槽填充技術。
2.1.CRF (Wang and Acero,Interspeech 2006)(Raymond and Riccardi,Interspeech 2007)
上面也說了,槽填充一般是序列標註問題,因此在序列標註任務中廣泛應用的CRF和RNN以及各種變種很自然的就可以用於槽填充。事實也確實如此,槽填充的最早研究也確實用了很多CRF。CRF已經爛大街了,不再贅述。
第一篇實驗結果
第一篇實驗結果
第一篇實驗結果
第二篇條件概率的定義
第二篇實驗結果
2.2.CRF+CNN(Puyang Xu and Ruhi Sarikaya 2013)
這篇工作在ATIS數據集把意圖識別跟槽填充聯合起來做的,主要方法是CNN+ triangular CRF,意圖識別的準確率為94.09%、槽填充的F1為95.42%,可以看出比起前面基於CRF的模型效果好不少。 triangular-CRF與CRF的主要區別是輸入前先用前向網路得到每個標籤的類別。
下面分別介紹下意圖識別和槽填充如何實現。
意圖識別:
先得到隱藏層的特徵h,再使用max pooling來獲取整句的表示,最後用softmax做意圖分類。
槽填充:
輸入詞向量到卷積層得到特徵表示h,再用triangular-CRF打分。具體打分公式如下:
其中,t(Yi-1,Yi)為轉移打分,hij為CNN得到的特徵,每時刻的特徵經過前向網路得到每個標籤的概率,然後結合起來作為最終得分。
該工作的模型圖
2.3.RNN(n-grams)(Yao et al. 2013)(Mesnil et al, 2015)
這類基於RNN的模型使用了n-grams,也是在ATIS數據集做的實驗
方法一
方法一
方法二
2.4.RNN(encoder-decoder) (Kurata et al., EMNLP 2016) (Simonnet et al.,NIPS 2015)
這類基於RNN的模型使用了encoder-decoder,第二篇還加入了Attention,Attention是根據ht 和st 用feed- forward 網路來計算的。也是在ATIS數據集做的實驗。
方法一例子
方法一模型
方法二模型
另外,基於Attention的RNN還有interspeech 2016的一篇工作(Liu and Lane 2016),本文也是把意圖識別和槽填充結合起來做,主要提供兩種思路和模型,下面具體說下。
思路一:
採用encoder-decoder,encoder的最後輸出+文本向量做意圖分類。下面說下a、b、c三圖的區別:圖a隱層為非對齊attention的模型,decoder隱層為非對齊的方式;圖b為隱層為對齊無attention的模型;圖c隱層為對齊attention的模型。
思路二:
decoder的隱層輸出加權得到最後的意圖分類,BiRNN得到特徵並與文本向量拼接後作為單層decoder的輸入,然後識別槽位。
2.5.LSTM(Yao et al. 2014) GRU(Zhang and Wang 2016)
這部分的兩類方法主要是RNN的兩大最有名的變種LSTM和GRU。也是在ATIS數據集做的實驗。
方法一
方法二也基於Attention,是2016年IJCAI的一篇paper,把意圖識別和槽填充結合起來做的。輸入詞向量,使用雙向GRU學習特徵。基於學習的隱層特徵,使用max pooling得到全句的表示,再用softmax進行意圖分類;對隱層輸入用前向網路得到每個標籤的概率,再用CRF進行全局打分得到最優序列標註結果,根據序列標註結果完成槽填充。需要說明的一點是:聯合損失函數為槽與意圖的極大似然。也是在ATIS數據集做的實驗。
模型結構圖
與之前模型的對比
Joint後效果更好
2.6.Multi-task Learning
這類方法是跨領域的多任務同時學習,主要思想是在數據較多的領域或任務訓練模型,然後遷移到數據較少的領域或任務,以便於提升其效果。這類方法底層網路跨領域或任務都是共享的,高層網路因為任務或領域不同而不同。代表性的工作包括:
Zhai et al., AAAI 2017
這個工作主要是把 Segmentation 和 槽填充聯合起來做的,對segments進行雙向LSTM編碼,再用LSTM解碼並得到序列標註結果,最後就實現了槽填充。
Hakkani-Tur et al.,Interspeech 2016
這篇工作是把 Semantic Frame Parsing 與 意圖分類、槽填充 聯合起來做。另外說句題外話,這篇文章的作者們都是任務型對話領域的一流學者。需要注意的是,意圖分類和槽填充在一個序列完成,跟下一種方法不一樣。
Liu and Lane, Interspeech 2016
這篇工作是基於Attention的RNN,把意圖識別與槽填充結合起來做,其實在上面RNN(encoder-decoder)的方法中已經介紹過這個方法。為了跟上一種方法對比,需要注意的是,意圖分類和槽填充不在同一個序列完成,decoder的隱層輸出加權得到最後的意圖分類,BiRNN得到特徵並與文本向量拼接後作為單層decoder的輸入,然後識別槽位。
2.7.Domain AdaptationAdaptation Adaptation(Jaech et al., Interspeech 2016)
這個方法是遷移學習中的領域適配。領域適配解決這類任務的主要思路是:利用源領域與目標領域分布之間的KL散度對目標領域模型進行Regularize。
2.8.Parameter transfer(Yazdani and Henderson 2015)
這個方法是遷移學習中的參數轉移。參數轉移解決這類任務的主要思路是:使用詞嵌入向量和相似標籤分類器之間的參數共享,因此相似的分類器具有相似的超平面。
另外需要指出的是,這個方法還使用了Zero-Shot Learning(舉例說明的話:假如訓練數據沒有斑馬,但是要識別斑馬,那麼可以用馬的外形+老虎的條紋+熊貓的黑白色來組合訓練)。
2.9Instance based transfer(Tur 2006)
這個方法是遷移學習中的基於Instance的轉移。在領域之間自動映射相似的類別,並跨領域傳遞相似的實例。方法比較久遠,不再贅述。
2.10RecNN+Viterbi (Guo et al., 2014)
這個方法也是基於ATIS數據集做的。輸入為詞向量,每個詞性看作權重向量 ,每個詞在其路徑的運算為詞向量與詞性權重向量的點積運算。基於根節點的輸出向量做意圖分類;採用基於Viterbi進行全局優化,採用基於tri-gram語言模型極大化標註序列進行槽填充。
CRF (Wang and Acero 2006; Raymond and Riccardi 2007):
Discriminative Models for Spoken Language Understanding; Wang and Acero ,Interspeech,2006
Generative and discriminative algorithms for spoken language understanding; Raymond and Riccardi,Interspeech,2007
Puyang Xu and Ruhi Sarikaya.Convolutional neural network based triangular crf for joint intent detection and slot filling.IEEE, 2013.
RNN (Yao et al. 2013; Mesnil et al. 2013, 2015; Liu and Lane 2015);
Recurrent neural networks for language understanding,interspeech2013
Using recurrent neural networks for slot filling in spoken language understanding,Mesnil et al, 2015
Grégoire Mesnil, Yann Dauphin, Kaisheng Yao, Yoshua Bengio, Li Deng, Dilek Hakkani-Tur, Xiaodong He, Larry Heck, Gokhan Tur, Dong Yu and Geoffrey Zweig - Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding, IEEE
Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding.;Mesnil et al,Interspeech,2013
Recurrent Neural Network Structured Output Prediction for Spoken Language Understanding, B Liu, I Lane,NIPS, 2015
LSTM (Yao et al. 2014)
Spoken language understanding using long short-term memory neural networks
Bi-LSTMs and Input sliding window of n-grams
Recurrent neural networks for language understanding,interspeech2013
Using recurrent neural networks for slot filling in spoken language understanding,Mesnil et al, 2015
Grégoire Mesnil, Yann Dauphin, Kaisheng Yao, Yoshua Bengio, Li Deng, Dilek Hakkani-Tur, Xiaodong He, Larry Heck, Gokhan Tur, Dong Yu and Geoffrey Zweig - Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding, IEEE
Encoder-decoder networks
Leveraging Sentence-level Information with Encoder LSTM for Semantic Slot Filling, Kurata et al.,EMNLP2016
Attention-based encoder-decoder
Exploring the use of attention-based recurrent neural networks for spoken language understanding, Simonnet et al., 2015
2015. Exploring the use of attention-based recurrent neural networks for spoken language understanding. In Proc.NIPS
Multi-task learning
Domain Adaptation of Recurrent Neural Networks for Natural Language Understanding,Jaech et al.,Interspeech2016
Joint Segmentation and Slot Tagging
Neural Models for Sequence Chunking,Zhai et al.,AAAI2017
Joint Semantic Frame Parsing
Slot filling and intent prediction in the same output sequence
Multi-Domain Joint Semantic Frame Parsing using Bi-directional RNN-LSTM,Hakkani-Tur et al.,Interspeech2016
Intent prediction and slot filling are performed in two branches
Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling, Liu and Lane,Interspeech2016
Transfer Learning
Gokhan Tur. Multitask learning for spoken language understanding. In 2006IEEE
G?khan Tür. Model adaptation for spoken language understanding, 2005.
A Model of Zero-Shot Learning of Spoken Language Understanding
【AI求職百題斬】已經悄咪咪上線啦,你還不趕緊來答題?!
※要找房,先用Python做個爬蟲看看
※關於LeNet-5網路結構的問題
TAG:AI研習社 |