526
技術社區[雲棲]
讓機器聽懂你的意圖:首屆中文人機對話技術評測用戶意圖領域分類比賽參賽曆程
本文講的是讓機器聽懂你的意圖:首屆中文人機對話技術評測用戶意圖領域分類比賽參賽曆程
1. 前言
近年來,人機對話技術,也稱為口語對話係統(spoken dialogue system,SDS)受到了學術界和產業界的廣泛關注。在第六屆全國社會媒體處理大會(SMP 2017)上,由中國中文信息學會社會媒體處理專委會主辦,哈爾濱工業大學和科大訊飛股份有限公司承辦的 SMP 2017 中文人機對話技術評測(ECDT),為人機對話技術相關的研發人員提供了一個良好的溝通平台。
我們華南農業大學口語對話係統研究室(scau_SIGSDS)參加了這次評測的用戶意圖領域分類任務。主辦方根據是否僅允許使用其提供的評測數據進行訓練和開發分為封閉式和開放式兩項評測。在最後的評測測試中,我們的係統取得了封閉式和開放式兩項第一名。單項(封閉式和開放式)比賽前三名的結果如下所示。前十名平均評測 F 值分別是 0.8993(開放式)和 0.8995(開放式)。詳細的比賽結果可見官方發布的排行榜[1]。
- 開放式評測
口語語言理解(spoken language understanding, SLU)是 SDS 中的重要環節,而話語領域分類(domain classification)則是 SLU 的關鍵任務之一[2]。話語領域分類的任務是把話語劃分到定義好的不同領域標簽[3],進而將話語正確地分進不同的 SLU 子係統。如用戶提出“幫我寫一封郵件”,係統則應該將其劃分到“郵件”領域之中,對該話語進行專門針對“郵件”領域的語言理解。
由於口語對話具有長度短小的特點,領域分類通常會被看作是短文本分類。早期的領域分類多采用較為複雜的人工特征,如語法信息、韻律信息、詞匯信息等[4][5],分類模型采用傳統的統計學習模型,如隨機森林、隱馬爾科夫、條件隨機場等。
深度學習流行以來,許多研究者開始用深度學習方法解決自然語言處理(natural language processing, NLP)任務,許多任務得到了長足的發展,也包括了領域分類[3][6][7]。代表性的模型包括了深度置信網絡(deep belief network, DBN)、卷積神經網絡(convolutional neural networks, CNN)和長短期記憶網絡(long and short-term memory, LSTM)等。
我們也采用了 LSTM 分類模型,並針對樣本訓練集數量有限的特點,采用基於數據的領域關鍵詞提取算法以及構建外部領域知識表(在開放式評測中),進一步提升領域分類效果。
2. 方案及結果
任務概述
用戶意圖領域分類比賽數據集包含 31 個話語類別,包括聊天類(chat)和垂類(30 個垂直領域)。任務很明確,就是正確地將用戶的輸入話語分類到相應的領域中,如:
特征表達和模型選擇
我們嚐試了多種特征表達方式,包括 BOW、onehot、詞向量等,並對比了隨機森林、CNN、LSTM 等分類模型。為了方便,在驗證和開發我們采用了正確率的評價指標。
通過十折交叉驗證,我們發現采用詞向量(由 1.5G 微博數據訓練)特征表達以及 LSTM 模型的 31 分類器取得了最佳的驗證結果,分類正確率達到 91.38%。在進一步增加到 10G 微博數據訓練詞向量並結合詞匯分類體係(如 Hownet)進行詞語向量表達修正後分類正確率達到 91.73%。
基於LSTM的領域分類
相比於 CNN,循環神經網絡(Recurrent Neural Networks, RNN)有利於學習到句子中字詞間的長距離依賴關係,但存在梯度消失/發散問題。目前常用的是 RNN 的一些變體,如 LSTM、GRU(Gated Recurrent Unit)等,他們通過門控機製很大程度上緩解了 RNN 的梯度消失問題,並防止梯度發散。
我們在給定數據集上驗證了不同 RNN 變體的領域分類效果,包括普通的 LSTM、GRU 以及帶隱層的 LSTM。而他們的驗證分類正確率分別是 91.73%、91.91%、92.04%。因此,我們選擇了在正確率上略有優勢的帶隱層的 LSTM。
在開發集做預測時,我們采用最佳 10 折交叉驗證的超參數組合的 10 個模型進行集成投票,正確率達到 92.22%。然而,在對模型結果的 badcase 分析時,我們依然發現了一些在人看來類別顯而易見的樣例被模型錯分。這主要是由於數據量的不足引起的,一些具有分類作用的特征字詞組合無法在模型中起足夠的作用。
針對這個問題,在技術架構中,我們在 LSTM 分類器前麵增加一個基於領域關鍵詞的領域識別模塊,並針對開放式測試額外添上了基於領域知識表的領域識別模塊。
基於領域關鍵詞的領域識別
對於封閉式評測,我們采用了基於數據的領域關鍵詞提取算法,通過對訓練集和開發集進行統計,抽取足夠置信度和支持率的 2 和 3 字“詞”構成的領域關鍵詞表。對於開放式評測,我們進一步結合人工知識擴展了領域關鍵詞表,增添了主辦方提供的原始數據以外的領域關鍵詞。在開發集上的測試表明,分類正確率由之前的 92.22% 分別提升到 92.74%(封閉式)和 92.87%(開放式)。
基於領域知識表的領域識別
對於開放式評測,通過分析領域話語特點,我們針對若幹個領域(如health),結合外部信息構建了領域知識表(如疾病名列表)。通過基於領域知識表的領域識別,開發集上的測試結果進一步提升到了 93%。
3. 參考文獻
[1] https://ir.hit.edu.cn/SMP2017-ECDT-RANK
[2] Tur G, Deng L, Hakkani-Tür D, et al. Towards deeper understanding: Deep convex networks for semantic utterance classification[C]// Proceedings of the 37th IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2012), 2012:5045-5048.
[3] Ravuri S, Stolcke A. A comparative study of recurrent neural network models for lexical domain classification C]// Proceedings of the 41th IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2016), 2016: 6075-6079.
[4] Haffner P, Tur G, Wright J H. Optimizing SVMs for complex call classification[C]// Proceedings of the 28th IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2003), 2003: I-632-I-635.
[5] Chelba C, Mahajan M, Acero A. Speech utterance classification[C]// Proceedings of the 28th IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2003), 2003:I-280-I-283.
[6] Sarikaya R, Hinton G E, Deoras A. Application of deep belief networks for natural language understanding[J]. IEEE/ACM Transactions on Audio Speech & Language Processing, 2014, 22(4):778-784.
[7] Ravuri S, Stoicke A. A comparative study of neural network models for lexical intent classification[C]// Proceedings of the 2015 IEEE Workshop on Automatic Speech Recognition and Understanding (ASRU 2015), 2015: 368-374.
原文發布時間為:2017-09-21
作者丨唐傑聰
本文來自雲棲社區合作夥伴“PaperWeekly”,了解相關信息可以關注“PaperWeekly”微信公眾號
最後更新:2017-09-21 16:32:49