廖勝蘭,殷 實,陳小平,張 波,歐陽昱,張 衡
(1.中國科學技術大學計算機科學與技術學院,合肥 230026;2.國網安徽省電力有限公司,合肥 230022;3.國網阜陽市城郊供電公司,安徽阜陽 236000)
自從1950 年圖靈測試被提出后,人工智能的目標就是構建能夠自然地與人類溝通的交互系統。人機交互是指人類可以通過自然語言來控制機器人,或者與機器人進行交流溝通,以實現自己的目的。因此,從功能上來說,現有的對話系統主要分為任務導向型對話系統[1]和非任務導向型聊天對話系統[2]。顧名思義,任務導向型系統主要是針對特定領域或業務背景下的對話,目的是為了幫助人們完成特定的任務,例如訂票系統、智能客服等。因此任務導向型的對話系統的評估指標為盡量少的對話輪數以及盡量高的任務完成率。本文中意圖識別的研究背景是基于電力系統業務的任務導向型對話系統,用戶描述自己要辦理的業務后,機器人給予業務引導的回答。目前傳統的電力營業廳存在服務資源不足、業務辦理流程繁瑣等問題,而智能機器人可以為客戶提供業務辦理指南、業務導引等服務,可以顯著地提升營業廳的運行效率和服務質量[3]。
對話系統的研究是自然語言處理(Natural Language Processing,NLP)領域的一個重要課題,對話系統主要由語音識別(Automatic Speech Recognition,ASR)、口語理解(Spoken Language Understanding,SLU)、對 話 管 理(Dialog Management,DM)、對話生成(Dialog Generation,DG)和語音生成(Text to Speech,TTS)這5 個部分組成[4]。意圖識別是口語理解模塊中的一個子模塊,也是整個人機交互系統中極其重要的模塊。通過準確的意圖識別,對話系統才能夠理解用戶的意圖,從而進行下一步的對話決策。
意圖識別又稱為意圖分類,可以看作是一種特殊的文本分類,有著文本較短、命令祈使句較多等特點。早期的意圖分類主要是使用基于規則和模板的方法,然而規則和模板的設計需要耗費大量的人力,并且很難應用到其他場景中。隨著深度學習的發展,越來越多的研究團隊用深度神經網絡來進行文本分類的研究。例如卷積神經網絡(Convolution Neural Network,CNN)[5]、循環神經網絡(Recurrent Neural Network,RNN)[6]等常用的神經網絡模型都已經應用到文本分類任務中。深度學習方法不依賴于規則與先驗知識,可以完全從數據中學習規律來進行分類,因此在很大程度上能夠節省人力和資源。
深度學習的模型訓練依賴于大量的有標注的數據集,許多特定領域的意圖分類任務還沒有相關的數據集,電力業務領域也是如此。為了完善電力業務領域的對話系統研究,并且為學界提供有效的公開標注數據,本文通過對供電營業廳采集的語音數據進行清洗、整理、擴充,構建了一個電力業務相關的意圖分類數據集。數據集包含將近一萬條用戶業務咨詢語句及其所屬的業務類別。數據集目前公開發布地址為https://pan.baidu.com/s/1ysJrAlCI6TljOFh72Hehew。后 續 將把數據集及其相關信息發布在團隊主頁http://ai.ustc.edu.cn/上進行開源。
據了解,本文所述的工作是電力業務領域內首個與對話相關的數據集。數據集包含9 577 條問詢語句與35 個業務類別。業務類別中包括許多常見的居民用電服務業務。為了在對話系統中實際應用,本文采用了意圖識別領域和文本分類中的幾個常用經典模型,包括統計學習方法與深度學習方法,在數據集基礎上進行實驗后得到了不同的性能與準確率。統計學習模型包括Logistic回歸(Logistic Regression,LR)模型和支持向量機(Support Vector Machine,SVM)模型,深度學習模型包括FastText模型[7]、Text-CNN模型[5]和Text-RCNN模型[8]。本文將得到準確率最高的Text-RCNN 模型應用到了電力營業廳業務引導機器人的對話系統的研究中。實驗結果表明,本文提出的人工標注數據集可以有效提升意圖分類器的準確性,從而提升整個對話系統的業務引導性能,提高用戶滿意度。
因此,本文發布的數據集可以有效地驅動電力業務領域內的智能服務機器人、語音機器人等研究,從而實現線上語音、線下營業廳的智能化服務。
意圖識別通常被看作是人機交互對話的第一步。因為首先需要確定用戶的意圖,才能精準地給予相應的回答。如今隨著機器人技術與人機對話的發展,意圖分類任務也引起了許多研究團隊的關注。
在過去的意圖分類工作中,傳統的方法主要是基于模板和規則的方法,模型構建簡單,在小數據集上能較快地實現。但是傳統模型難以維護、可移植性差,并且一般需要專家構建規則模板以及類別信息。例如Ramanand 等[9]在消費意圖識別的任務中,提出了基于規則和圖的方法來獲取意圖模板,并且在此單一領域能夠取得較好的分類效果。但是Li 等[10]研究發現,即使在同一領域內,不同的表達方式也會導致規則模板數量的增加,因此會耗費大量的資源。所以,傳統的方法雖然在小數據集上就可以實現意圖分類功能,但是由于不同的任務需要專門構建不同的模板規則,依賴于專家系統,成本較高。
20世紀90年代興起了統計學習方法,文本分類也由此發展出基于統計特征的方法。統計分類方法的過程分為人工特征工程與淺層分類建模兩個步驟。通過對語料文本進行特征提取,如字、詞特征、N-Gram、TF-IDF(Term Frequency-Inverse Document Frequency)特征權重等,然后再基于提取的特征訓練分類器。常用的分類器有Logistic 回歸[11]、支持向量機[12]、樸 素 貝 葉 斯(Na?ve Bayes,NB)[13]和AdaBoost(Adaptive Boosting)[14]等。但是這些統計分類方法都需要人工進行特征工程,成本依然很高,且特征表達的能力有限。因此后來的研究者在特征的降維和分類器的設計方面做了大量的工作,Yang 等[15]對各種特征選擇方法,包括信息增益(Information Gain)、互信息(Mutual Information)、卡方統計量等,在實驗上進行了系統的分析和比較。Joachims[16]第一次將線性核函數的支持向量機用于文本分類,與傳統的算法相比,支持向量機在分類性能上有了非常大的提高,并且在不同的數據集上顯示了算法的魯棒性。
傳統的統計學習方法面臨的主要問題是文本表示是高維度高稀疏的,特征的表達能力很弱。隨著在圖像和語音領域取得的巨大成功,深度學習也相應地推動了NLP領域的發展。而深度學習最初之所以能夠在圖像和語音上取得巨大成功,一個很重要的原因是圖像和語音原始數據是連續和稠密的,有局部相關性。因此,將深度學習應用于NLP 領域最重要的就是解決文本表示。從詞向量(Word Embedding)的分布式表示[17]提出后,深度學習模型就可以提取到文本更深層的特征,從而進行高準確率的分類。如今深度學習的模型在文本分類上已經取得了不錯的效果,越來越多的學者們將卷積神經網絡(CNN)[5]、循環神經網絡(RNN)[6]和其變體長短時記憶(Long Short-Term Memory,LSTM)網絡[18]、門控循環單元(Gated Recurrent Unit,GRU)[19]和注意力機制(Attention Mechanism)[20]等應用于意圖識別任務中。深度學習模型可以免去復雜的人工特征工程,直接端到端地實現一個分類系統,并且提高分類的準確率。
中文領域的意圖分類任務由于分詞等影響,也面臨著挑戰。文獻[21]介紹了中文領域內從基于規則的方法、基于機器學習的方法到混合模型的方法的意圖分類方法研究,并在iDeepWise 公司第三代機器人積累的日志數據集上進行層次網絡的實驗。該數據集包含了68 850 條自然語言問句,涉及到訂票類、天氣類、音樂類等13 個通用領域。同樣針對這個數據集,文獻[22]提出了一種雙通道卷積神經網絡模型,通過兩個通道可以同時接收字級別的詞向量和詞級別的詞向量進行卷積運算。在CCL2018-Task1(中國計算語言學大會)的中國移動客服領域用戶意圖分類數據集上,文獻[23]提出了一種混合神經網絡層的模型。對于常常聯系在一起的意圖識別和槽位填充(Slot filling)任務,文獻[24]提出了結合條件隨機場(Conditional Random Field,CRF)和注意力機制的LSTM 聯合模型。
除了在模型方法上的研究創新,構建一個意圖分類器最重要的便是數據的驅動。如今的深度學習方法,需要大量的包含相應意圖的文本作為訓練數據。根據調研發現,現有開源的意圖分類數據集幾乎都是面向語音助手任務的數據,例如第6屆全國社會媒體處理大會SMP2017中發布的中文人機對話技術評測數據集,其內容包括訂票、打電話、播放音樂等任務。調研過程中還發現了一個包含買手機、買電腦、買電影票等意圖的消費意圖數據集[25]。總之,目前在特定的領域內,很難獲得大量的標注訓練語料。調研發現,目前在電力公司業務領域,還沒有相關的開源數據集可以用來構建對話系統,因此本文構建了一個較大規模的電力業務意圖識別數據集,有助于驅動電力業務相關的對話系統的研究。
為了在交互機器人對話系統中實現高準確率的意圖識別功能,意圖識別模塊擬采用深度學習模型來實現。深度學習模型的優點是無需大量的特征工程,通過端到端的訓練方式就可得到較高的準確率;但是缺點是需要大量的數據來訓練模型。由于目前暫無公開的電力業務相關數據集,并且電力公司的業務具有領域性,不能用其他公開的文本分類數據集。因此,本文與電力公司營業廳合作進行數據采集,對得到的語音數據進行清洗、整理和擴充,構建了一個面向電力公司業務的用戶意圖數據集。該數據集可以為其他電力公司的智能客服、交互機器人等研究提供相應的幫助。
本文提出的數據集所包含的內容來自供電營業廳真實的用戶詢問語句,涵蓋了在營業廳真實場景中發生的大部分常見業務。語音數據通過線下錄音筆收集得到。由于是真實的業務場景,所以數據具有真實性和多樣性等特點,但因此數據也同時含有一些無意義的停頓、語氣詞等。為了使數據集更有利于意圖分類模型的使用,本文通過項目小組內10 名成員對數據進行處理與標注。
2.2.1 語音轉文字
原始語音數據收集完畢之后,需要對數據進行處理和標注。由于收集到的是語音數據,因此需要將其轉化為文本格式,才能進行下一步的意圖分類工作。語音轉文字的過程采用了科大訊飛的語音識別接口(https://www.xfyun.cn/services/lfasr)來實現。
2.2.2 人工校驗
目前的語音識別工具無法達到百分百的準確率,并且真實場景中的語音數據中會含有噪聲、停頓過長、語氣詞過多等問題對語音識別過程進行干擾,因此本文對轉換后的文字數據進行人工校驗,去除掉無效數據,并對有效數據進行修改。
例如,語音轉文字后得到的語句“你好,那個,我們家里的電表最近,額,感覺走的不正常,很快,嗯。”經過人工校驗后,去掉其中的無意義詞,得到:“我們家里的電表最近感覺走的不正常,很快。”
2.2.3 敏感信息過濾
由于數據是在真實場景中得到的,因此需要對數據中涉及的敏感信息進行過濾,例如人名、身份證號、電力賬戶號等。過濾的目的是為了保護用戶的隱私,并且能夠用過濾后的數據集訓練出通用、普適的意圖分類模塊。同時,敏感信息過濾也可以避免任何使用本文提供的數據集進行訓練的對話系統公開用戶的隱私或生成使用戶感到不適的回復。
本文背景所研究的智能客服機器人主要是起到業務引導作用,并不涉及后續的復雜業務辦理階段。因此,收集到的數據中主要是用戶對業務需求的描述,例如“我家電表好像壞了”“辦理過戶應該帶什么證件”等。因此,大部分數據中不包含實際的人名、電力賬戶號等敏感信息。
對數據預處理過后可以得到有效的文本數據。本項目小組的10 名成員根據電力公司提供的常見業務類別以及每個類別的示例對話來對數據進行標注。每一條問詢語句對應一個電力業務類別。標注的類別一共有35 個,包括了繳費、供電報修等十分常見的業務,也包括了商業用電增容等較罕見的業務。
在標注過程中還遇到了語義模糊無法標注的數據。因為有小部分數據采集時可能來自老年人或使用方言的用戶,因此語音轉文字后得到的文字數據語義模糊。針對這樣的數據,小組成員重新聽語音,如果能聽懂語句意圖則人工轉寫為文字數據并標注業務類別,聽不懂則作為無效數據刪去。
在采集到的數據中,常見業務的數據量較多,而罕見業務的數據量較少。例如,分布式光伏發電、高低壓界定、高壓增容等面向企業用戶的業務在日常的營業廳咨詢語句中占比例較小,采集到的數據較少,而居民電費繳納、在線辦理業務、居民分時電價等面向居民的常見業務采集到的數據較多。因此,為了保證業務類別的平衡性,避免在訓練過程中造成數據傾斜的情況,本項目小組的成員根據采集到的真實數據進行轉寫擴充。
根據電力公司提供的業務類別及其示例語句,以及采集到的數據,本項目小組成員對數據較少的業務進行補充。例如,對業務“商業更換分時”補充示例如表1 所示,根據原語句采用不同的敘述方式進行擴充。

表1 數據擴充示例Tab.1 Example of data augmentation
最后本文構建的數據集一共有9 577條數據,平均的數據長度為18.41字。其中業務的類別分布如表2所示,數據中用戶語句的平均長度特征如表3所示。
可以看出,電力業務一共標注了35 個類別,涵蓋了大部分電力營業廳的常見業務,可以滿足業務引導機器人的日常需求。

表2 數據集類別分布Tab.2 Category distribution of dataset

表3 數據集中語句平均長度Tab.3 Average length of sentences in dataset
為了測試本文提出數據集的有效性,本文基于最終標注的數據集上采用幾個常見的文本分類模型進行基準實驗,包括統計學習方法和深度學習方法。在實驗過程中,采用結巴分詞工具(https://github.com/fxsjy/jieba)中的默認分詞模式對數據集進行分詞,在深度學習模型中,采用word2vec工具[26]進行詞向量的預訓練。
本文采用多個經典的統計學習方法和深度學習方法模型來進行實驗,既可以驗證數據集的有效性,又可以直觀地得到各個文本分類模型在短文本對話數據集上的實驗效果。
Logistic 回歸(Logistic Regression,LR)是統計學習中的經典分類方法,屬于一種對數線性模型。LR 模型的優點是它直接對分類的可能性進行建模,無需事先假設數據分布,這樣就避免了假設分布不準確所帶來的問題。又因為它是針對分類的可能性進行建模的,所以它不僅能預測出類別,還可以得到屬于該類別的概率。
在本文的基準實驗中,用多分類的LR模型對數據集進行基準實驗。特征提取方法采用詞袋模型特征和詞頻-逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)特征。
SVM的應用是統計學習模型在文本分類上最重要的進展之一。雖然SVM 在大數據集上的訓練收斂速度較慢,需要大量的存儲資源和很高的計算能力,但它的分隔面模式有效地克服了樣本分布、冗余特征以及過擬合等因素的影響,具有很好的泛能力。
本文選用SVM 的線性核函數,分別用兩種特征提取方法和不同的懲罰因子參數C進行實驗。
FastText[7]是Facebook 公司在2016 年開源的一個詞向量與文本分類工具,典型應用場景是“帶監督的文本分類問題”。它提供簡單而高效的文本分類和表征學習的方法,性能比肩深度學習而且速度更快。
因此,現在許多大規模的文本分類都會采用FastText 作為實驗基準。由于其簡單、便捷的特點,本文也選用FastText模型來進行意圖分類。
首先需要對數據進行分詞處理、去除停用詞,以及添加Label。之后將分詞過后的數據轉換成FastText 的標準輸入格式,即用“__label__”來分割文本和標簽。最后將數據分割成訓練集和驗證集,用驗證集來評估學習到的分類器對新數據的性能好壞。
卷積神經網絡(CNN)最開始是應用在圖像處理領域的,最近幾年隨著詞向量的發展,自然語言處理領域的數據稀疏問題得到解決。Kim 等[5]在EMNLP2014 提出的Text-CNN 方法,嘗試將CNN 應用在文本分類領域中,并且在多個數據集上取得了很好的效果。
Text-CNN 模型首先將文本映射成向量,然后利用多個濾波器來捕捉文本的局部語義信息,接著使用最大池化,捕捉最重要的特征。最后將這些特征輸入到全連接層,得到標簽的概率分布。
本文用Text-CNN 模型在提出的電力公司業務用戶意圖數據集上進行意圖分類,學習率設為0.01,訓練的迭代輪數為50,詞向量維度設為300,批處理大小設為32。
Text-RCNN[8]是一個結合了RNN 和CNN 各自優點的模型。首先利用雙向循環神經網絡(Bidirectional Recurrent Neural Network,Bi-RNN)來捕捉前后的上下文表征,將上文的所有信息和下文的所有信息進行編碼,與詞向量拼接起來,得到一個包含上下文信息和本身詞向量表示的“詞向量”。接著使用CNN 中濾波器filter_size=1的卷積層,并使用最大池化操作得到與文檔最相關的向量表征,即獲取潛在的最相關語義表示。最后將這些向量輸入到Softmax 層,得到標簽的概率表征,從而進行文本的分類。
本文用Text-RCNN 模型在提出的電力公司業務用戶意圖數據集上進行意圖分類,參數設置如下,學習率設為0.01,訓練的迭代輪數為50,詞向量維度設為300,批處理大小設為32。
本文用第3 章介紹的幾個經典模型在數據集上進行實驗后,得到的意圖分類準確率如表4、5所示。表4顯示了統計學習方法的結果,表5顯示了深度學習方法的結果。
本文采用測試集上的準確率Accuracy作為評估指標,并且保證測試集的數據在訓練集中不曾出現。準確率Accuracy表示預測出的類別和數據集中標注的類別相同的數據占所有測試數據的比例。表4分別列出了LR模型和SVM模型在數據集上訓練后的訓練集準確率train-acc和測試集準確率test-acc。

表4 統計學習模型實驗結果 單位:%Tab.4 Experimental results of statistical learning methods unit:%
實驗過程中,對于LR模型,使用詞袋特征提取方法時,在懲罰因子C=2 時取得最佳測試準確率,為80.27%,訓練時間為3.02 s。使用詞頻-逆文檔頻率特征時,在C=5 時取得最佳測試準確率80.43%,訓練時間為1.39 s。對于SVM 模型,兩種特征提取方法都是在C=1 時取得最佳準確率,且訓練時間也都為約17.56 s。

表5 深度學習模型實驗結果Tab.5 Experimental results of deep learning methods
在深度學習模型的實驗結果中,3 個模型得到的準確率都要高于統計學習模型。尤其是FastText 模型,訓練時間短,準確率較高,很適合作為基準模型用于數據集的驗證。實驗結果得到的測試集最高準確率來自Text-RCNN 模型,它融合了循環神經網絡(RNN)和卷積神經網絡(CNN)的優點,模型并不復雜但是能夠得到更好的結果。
從實驗結果可以看出,雖然統計學習模型訓練速度快,但是準確率較低。而深度學習的模型在免去提取特征步驟,并且端到端地進行訓練后,能夠達到更高的準確率。
在電力業務對話系統研究中,本項目小組采用了準確率最高的Text-RCNN 模型作為意圖識別模塊。結合對話系統中關鍵詞實體抽取、對話管理、回答生成等模塊,可以得到一個有效的針對電力領域的業務導向機器人。與使用通用閑聊數據集的對話系統相比,本意圖識別數據集可以提升意圖識別的準確率,從而使機器人給出更精準的回答。使用本數據集與使用通用閑聊數據集的對話系統回復對比如表6 所示。對于相同的用戶問詢語句,以本數據集構建的意圖分類模型可以有效識別出用戶語句中的潛在意圖,而使用通用閑聊數據集的對話系統則無法精準識別出用戶意圖。

表6 使用不同數據集的對話系統回復對比示例Tab.6 Example of dialogue system response comparison with the use of different datasets
基于對電力業務對話系統的研究工作,本文構建了一個大規模的人工標注電力業務意圖識別數據集,其中包含了35個業務類別以及9 577 條業務意圖數據。該數據集是電力領域對話系統相關的第一個開源的數據集。在此數據集中,每條數據是根據電力公司給出的業務類別進行分類標注,較全面地涵蓋了供電營業廳中的常見業務。幾個基準實驗表明,基于本文發布的電力公司業務用戶意圖數據集進行訓練后,意圖分類的準確率最高可以達到87.1%。結合后續對話系統中對話管理模塊、關鍵字抽取模塊等,可以得到一個精準識別用戶意圖并給予可靠回復的電力業務引導對話系統,得到較好的用戶體驗。因此,本文所述數據集在實驗的驗證下證明了具有客觀性和有效性,可以助益于供電營業廳場景中的聊天機器人的訓練與評估。
但是本文所構建的數據集目前的規模還不足夠大,數據中業務類別的分布也沒有足夠均衡。后續本小組將在研究進行的過程中得到更多數據,并進行更準確的標注。目前本文的基準實驗主要是采用一些文本分類領域中經典的模型,但是現在已經有了許多更新、準確率更高的模型。因此,未來工作中也將采用更先進的模型對數據集進行實驗。
由于目前特殊時期的原因,本文發布的數據集暫時公布在https://pan.baidu.com/s/1ysJrAlCI6TljOFh72Hehew。后 續會將數據集正式發布在團隊主頁http://ai.ustc.edu.cn,并補充相關授權信息。