楊金鋒,盧薇冰,賈桂敏,師一華
(中國民航大學(xué)天津市智能信號與圖像處理重點實驗室,天津 300300)
民航業(yè)發(fā)展一百多年來,陸空通話作為通話方式也由簡單隨意性的交流變?yōu)橐婚T專業(yè)語言,并且有自己的特色及要求。在民航領(lǐng)域中導(dǎo)致飛行事故和事故癥候的原因有很多,其中由于飛行員對管制員陸空通話指令復(fù)誦失誤而引發(fā)的飛行事故和事故癥候不勝枚舉。通過美國航空航天局(NASA)的調(diào)查結(jié)果發(fā)現(xiàn),指令復(fù)誦失誤主要包括通話內(nèi)容不正確、用語不規(guī)范、信息紕漏、復(fù)誦錯誤等[1]。盡管國際民航組織在陸空通話規(guī)則和人員培訓(xùn)方面進(jìn)行了不斷完善,但此類民航問題仍層出不窮。而在現(xiàn)階段的民航安全領(lǐng)域研究中,針對陸空通話內(nèi)容一致性的研究卻很少。使用深度學(xué)習(xí)中的卷積神經(jīng)網(wǎng)絡(luò)方法。針對陸空通話的復(fù)誦內(nèi)容進(jìn)行語義一致性校驗的研究是十分必要的。
對兩個語義可能相近的句子進(jìn)行匹配是自然語言處理領(lǐng)域(NLP,natural language processing)中十分重要的任務(wù)。本文主要針對陸空通話復(fù)誦內(nèi)容的語義一致性進(jìn)行研究,使用的方法是在NLP領(lǐng)域中逐漸嶄露頭角的CNN。語義是自然語言研究中很重要的部分[2]。語義向量作為語義研究中不可缺少的一部分,是將句子的語義映射為一個有意義的向量,在很多NLP任務(wù)中都有使用。在傳統(tǒng)生成語義向量的方法中,詞袋模型會受到維度災(zāi)難的影響[3],而其他方法都是依據(jù)上下文得到句子的語義向量,這種方法因為丟失了句子本身詞語的順序,所以在一些NLP任務(wù)中并沒有得到較好的結(jié)果。
深度學(xué)習(xí)是一種新興的多層神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,在各個領(lǐng)域中都有不俗的表現(xiàn)[4]。在NLP領(lǐng)域中使用到的淺層神經(jīng)網(wǎng)絡(luò)系統(tǒng)都有一些不可避免的缺點[5],因此近年來深層網(wǎng)絡(luò)逐漸進(jìn)入到人們的研究中,如Collobert&Weston利用深度學(xué)習(xí)完成了很多自然語言處理任務(wù)[6]。而在眾多的深度學(xué)習(xí)網(wǎng)絡(luò)中,CNN逐漸在NLP領(lǐng)域中取得了矚目的成就。
首先介紹了針對陸空通話語義一致性校驗的算法流程,其次介紹了CNN的基本結(jié)構(gòu),再次針對陸空通話的復(fù)誦內(nèi)容進(jìn)行了一致性校驗實驗。實驗結(jié)果證明CNN在陸空通話語義一致性校驗方面效果良好,并且使用傳統(tǒng)詞向量能得到更好的結(jié)果。
CNN在近年來已成為眾多科學(xué)領(lǐng)域的研究熱點之一,特別是在模式識別領(lǐng)域[7],并且在NLP領(lǐng)域中逐漸引起重視。例如2014年微軟實驗室提出的DSSM(deep semantic similarity model),用來分析文章、提取讀者最感興趣部分等NLP任務(wù)[8],并且對不同的數(shù)據(jù)庫進(jìn)行實驗,均得到了不錯的效果。同年,Shen Yelong在DSSM的基礎(chǔ)上增加窗,進(jìn)一步提出C-DSSM模型,對句子的語義進(jìn)行建模[9]。2015年,諾亞方舟實驗室的Hu Baotian,在對于兩個句子之間語義的匹配以及一致性的度量方面,提出了一種新的對句子建模的卷積結(jié)構(gòu)[10],即根據(jù)語義建模方面的CNN結(jié)構(gòu),再結(jié)合陸空通話的特點,利用圖1所示的CNN結(jié)構(gòu)進(jìn)行實驗。
圖1 句子語義向量的CNN模型結(jié)構(gòu)Fig.1 CNN structure of sentence semantic vector
在卷積層(convolutional layer)中,輸入數(shù)據(jù)或者上一層得到的特征圖在這一層中與固定大小的卷積核進(jìn)行卷積,卷積之后的結(jié)果經(jīng)過激勵函數(shù)后輸出就形成了這一卷積層的輸出特征圖。一般每一層的輸出特征圖都與上一層輸出有關(guān)系。卷積層所進(jìn)行的運算如下
其中:zl表示第l層的輸出;σ表示激勵函數(shù);M表示代表輸入特征圖的選擇;Wl表示第l層的卷積核;bl表示第l層的偏置。
假設(shè)卷積層的卷積核大小為k,與卷積層的每一個神經(jīng)元與輸入數(shù)據(jù)的k×k鄰域相連接,且步長默認(rèn)為1,所以對于輸入為n×m的數(shù)據(jù),在卷積層輸出形成的每個特征圖大小為(n-k+1)×(m-k+1)。
在一般的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,卷積層和池化層(pooling layer)都是成對出現(xiàn)的。通過上一層的卷積層獲得特征圖之后,下一步就是對這些特征進(jìn)行類似第二次特征提取的操作。將上一層卷積層的輸出作為下一層池化層的輸入,假設(shè)池化層的池化大小為s,對大小為s×s的區(qū)域內(nèi)數(shù)據(jù)取最大值,這種池化處理就叫做最大池化,其主要起到降低維度的作用,而且在數(shù)據(jù)集尺度較小時減小過擬合情況發(fā)生的概率。若對s×s區(qū)域內(nèi)的數(shù)據(jù)取平均值的話,就叫做平均池化。兩種池化都是不重疊的池化,因此若上一層的輸出特征圖大小為u×v,則池化層所形成的每一個特征圖的大小為(u/s)×(v/s)。如圖 2 所示,(a)為上一層的輸出,(b)為最大池化層的輸出(圖中假設(shè)池化大小s=2)。使用到的池化方式是最大池化,不僅因為這種池化在大部分的自然語言處理中得到應(yīng)用,更因為它的物理意義為提取對句子語義貢獻(xiàn)了最大部分。
圖2 最大池化層的處理Fig.2 Processing of max-pooling layer
實驗采用的結(jié)構(gòu)是卷積層和池化層交替出現(xiàn),將輸入數(shù)據(jù)輸入至CNN進(jìn)行兩次卷積和池化處理,形成的向量稱之為語義空間中的語義向量。每一層都包含可訓(xùn)練的參數(shù)。最后輸出為語義空間的句子語義向量,用來表征中文句子的語義。
根據(jù)上文的CNN語義向量模型,可得到相應(yīng)陸空通話語義模型的一種典型結(jié)構(gòu),如圖3所示。
圖3 基于CNN的語義一致性校驗Fig.3 Semantic consistency verification based on CNN
將訓(xùn)練生成的詞向量按照復(fù)誦對中每句話詞語出現(xiàn)的順序進(jìn)行疊放,這樣形成的矩陣可代表復(fù)誦對中每一句話的語義。訓(xùn)練樣本的矩陣即可形成CNN語義模型的輸入,通過CNN的處理可提取出每一句話的語義向量。復(fù)誦對的兩個句子分別通過CNN處理后各自形成語義向量,這樣復(fù)誦對語義一致性的計算就可轉(zhuǎn)化為兩個語義向量之間的相似性[11],最后通過分類器將余弦相似度進(jìn)行分類,即可完成語義一致性校驗的目的。
值得注意的是,在陸空通話過程中復(fù)誦對的詞語數(shù)目不一定,也就是句子長度是變化的。因此在形成CNN數(shù)據(jù)時取最長句子的詞語數(shù),然后將詞語數(shù)少于最大值的句子在后面通過加零的方法將其補(bǔ)充成一樣大小的矩陣。通過這種方法可將不同長度的句子形成相同維度的矩陣,作為CNN模型的輸入數(shù)據(jù)。另外,由于陸空通話語料庫規(guī)模相對較小,所以在CNN訓(xùn)練過程當(dāng)中極易發(fā)生過擬合現(xiàn)象。為抑制這種現(xiàn)象的發(fā)生,訓(xùn)練時在卷積層使用ReLu函數(shù)作為激勵函數(shù),其公式如式(2)所示。且采用這種激勵函數(shù),在CNN的誤差反饋過程中更易求得其梯度為
在相似性的度量方法上,可以用余弦相似度進(jìn)行描述,也可以用歐式距離進(jìn)行描述,主要采用余弦相似度方法[12],即
在對陸空通話的數(shù)據(jù)進(jìn)行處理、語義一致性校驗的任務(wù)時,實驗處理步驟有4個。
1)形成語料庫 將陸空通話的錄音轉(zhuǎn)變?yōu)槲谋靖袷?,再?jīng)過中文分詞以及詞向量的轉(zhuǎn)化分別形成陸空通話的語料庫以及詞表的詞向量庫。語料庫中的樣本成對出現(xiàn),管制員的指令語句和飛行員的復(fù)誦語句,詞向量庫中詞語后面為其對應(yīng)的詞向量;
2)形成樣本語義向量 利用CNN對樣本中的陸空通話復(fù)誦對進(jìn)行處理,形成語義向量;
3)對語義向量進(jìn)行相似度計算 對在第二步中得到的一對陸空通話復(fù)誦對樣本語義向量進(jìn)行相似度的計算,計算得到的相似度為兩句話語義內(nèi)容上的相似程度;
4)語義識別 在計算得到語義相似度之后,利用常用的分類器對其相似度進(jìn)行分類,通過這種方法進(jìn)行語義識別。
值得注意的是,在第一步中,對于中文的數(shù)據(jù)庫,首先將句子中的詞語進(jìn)行分割,形成若干獨立的詞語,為使計算機(jī)對自然語言進(jìn)行學(xué)習(xí)處理,將他們表征成詞向量。按照句子中詞語出現(xiàn)的順序排列起來,形成的二維矩陣,這就相當(dāng)于圖像處理中的原始“圖像”。形成了這個“圖像”才能在第二步中經(jīng)由卷積神經(jīng)網(wǎng)絡(luò)分別對復(fù)誦對提取語義向量。
在上述實驗過程中首先要形成管制員指令句和飛行員復(fù)誦句組成的陸空通話復(fù)誦對的語料庫。實驗所用的數(shù)據(jù)是真實的復(fù)誦錄音,在收集到的錄音中找到質(zhì)量較高的樣本,再由專業(yè)人員將其轉(zhuǎn)化為文本,這就形成了原始語料庫。原始語料庫由管制員指令和飛行員復(fù)誦成對組成,稱之為復(fù)誦對。經(jīng)過相關(guān)人員的校對,從中挑選出質(zhì)量較高的文本。這些復(fù)誦對構(gòu)成了語料庫中的正樣本。通過結(jié)合實際管制員的經(jīng)驗,在正樣本的基礎(chǔ)上人工構(gòu)建了負(fù)樣本的語料。正負(fù)樣本的語料共同構(gòu)成了使用的語料庫,共計800對。
對語料庫中的每一句話進(jìn)行中文分詞,詞與詞之間由空格隔開。在實驗中使用的分詞軟件是中科院ICTCLAS系統(tǒng)[13],其使用在中文任務(wù)中性能良好,消耗時間短,是世界上對中文處理最好的中文處理器。分詞結(jié)果顯示如表1所示。
表1 分詞結(jié)果Tab.1 Segment result
分詞之后的語料庫中每一個詞語需進(jìn)行詞向量的轉(zhuǎn)化。在詞向量的轉(zhuǎn)化過程中主要使用到了兩種類型的詞向量轉(zhuǎn)化方法:淺層神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)方法。
近年來,Word2vec和 GloVe(global vectors for word representation)是形成詞向量方法中使用較為廣泛的神經(jīng)網(wǎng)絡(luò)方法[14]。使用這兩種方法的有兩個優(yōu)點:①可對詞向量的維度進(jìn)行控制。在訓(xùn)練詞向量時就可對詞向量的維度進(jìn)行自主設(shè)置。經(jīng)過多次實驗,包括實驗100維、150維等不同的維度,本實驗設(shè)置詞向量的維度為50維,訓(xùn)練時間最少,精度最高,這與2015年關(guān)于詞向量的評價文章中得到的結(jié)論相同[13]。②通過這種方法生成的詞向量之間是有語義相關(guān)性的,即越是語義相似的詞向量,其余弦值也會越大。
Word2vec與GloVe同樣都是淺層神經(jīng)網(wǎng)絡(luò)詞向量生成的方法,但其之間也有區(qū)別:Word2vec是一個“預(yù)測”模型,而GloVe是一個“基于計數(shù)”的模型[15]。實驗對兩種方法進(jìn)行了結(jié)果統(tǒng)計。實驗中為完成對語義的一致性判斷,采用較為簡單的3種分類方法,即支持向量機(jī)(SVM)、K 近鄰(KNN)和隨機(jī)森林(nTree)。表2為進(jìn)行50次實驗統(tǒng)計的平均精度結(jié)果。
表2 Word2vec和GloVe詞向量實驗平均精度結(jié)果Tab.2 Average accuracy of Word2vec and GloVe word vector experiment
通過分析,兩種詞向量生成方法都沒能達(dá)到很好效果。其主要原因是因為在Word2vec和GloVe這種神經(jīng)網(wǎng)絡(luò)方法在訓(xùn)練詞向量時,只有在大量的語料庫的前提下,才能形成高質(zhì)量的詞向量。實驗中使用的是小數(shù)據(jù)集,不能訓(xùn)練成高質(zhì)量的詞向量。所以這種詞向量生成方法并不合適該文中的模型結(jié)構(gòu)。
通過觀察以上實驗結(jié)果,神經(jīng)網(wǎng)絡(luò)詞向量生成方法并不能適用于本論文實驗,普遍精度都不是很高,因此本文中嘗試使用傳統(tǒng)詞向量方法。在對形成的語料庫進(jìn)行統(tǒng)計并形成詞表,每一個詞語所在位置為1,其余位置為0,形成維度為詞表大小的詞向量。比如“南航”在詞表中的位置為第3個,則“南航”的詞向量為{0,0,1,0,0,...,0}。詞向量的維度大小是整個詞表的大小,維度較大,所以需要最大池化層來降維,因此實驗所使用的CNN模型只有第一種。表3是50次實驗的平均精度結(jié)果。
表3 One-hot詞向量實驗平均精度結(jié)果Tab.3 Average accuraly of One-hot word vector experiment
表3的結(jié)果顯示,使用傳統(tǒng)詞向量方法的實驗結(jié)果比使用神經(jīng)網(wǎng)絡(luò)詞向量更好。其實驗數(shù)據(jù)有兩個特點:專業(yè)和數(shù)據(jù)量小。專業(yè),是指陸空通話復(fù)誦過程中,專業(yè)詞匯頻繁出現(xiàn),并且按照特殊語法進(jìn)行復(fù)誦;數(shù)據(jù)量小,如上文所說,此處使用的語料庫規(guī)模較小,因此神經(jīng)網(wǎng)絡(luò)詞向量方法效果并不好。傳統(tǒng)詞向量方法只和詞語在詞表中出現(xiàn)的位置有關(guān)系,因此更適用于本文的情況。
首先,在專業(yè)人員的幫助下,將收集到的真實陸空通話錄音轉(zhuǎn)化成為文本格式,從中挑出質(zhì)量較高的復(fù)誦對組成語料庫。然后對語料庫進(jìn)行中文分詞,對分詞的結(jié)果進(jìn)行詞向量的轉(zhuǎn)化。通過將句子中的詞向量按順序疊放得到用來表示句子的矩陣,將其當(dāng)作CNN模型的輸入,經(jīng)過CNN處理得到復(fù)誦對的語義向量。最后利用余弦相似度就可以度量語義的相似性,并使用分類器完成一致性校驗的任務(wù)。研究結(jié)果表明,使用CNN對陸空通話復(fù)誦對的語義一致性校驗?zāi)軌蛴休^好的結(jié)果,并從實驗結(jié)果中發(fā)現(xiàn)利用傳統(tǒng)詞向量能夠取得較高的精度。
[1]National Transportation Safety Board.Review of US Civil Aviation Accident,Calender Year 2010,NTSB/ARA-12/01[R].Washington DC,2010.
[2]WANG PENG,XU JIAMING,XU BO,et al.Semantic Clustering and Convolutional Neural Network for Short Text Categorization[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing(Short Papers),2015:352-357.
[3]LAI SIWEI,LIU KANG,XU LIHENG,et al.How to generate a good word embedding[J].IEEE Intelligent Systems,2016,31(6):5-14.
[4]郭麗麗,丁世飛.深度學(xué)習(xí)研究進(jìn)展[J].計算機(jī)科學(xué),2015,42(5):29-33.
[5]翟劍鋒.深度學(xué)習(xí)在自然語言處理中的應(yīng)用[J].電腦編程技巧與維護(hù),2013(18):74-76.
[6]RONAN C,WESTON J,BOTTOU L,et al.Natural language processing(almost)from scratch[J].Journal of Machine Learning Research,2011(12):2493-2537.
[7]陳先昌.基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究[D].杭州:浙江工商大學(xué),2013.
[8]GAO JIANFENG,PANTEL P,GAMON M,et al.Modeling Interestingness with Deep Neural Networks[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing(EMNLP),2014:2-13.
[9]SHEN YELONG,HE XIAODONG,GAO JIANFENG,et al.Learning Semantic Representations Using ConvolutionalNeural Networks for Web Search[C]//Proceedings of the 23rd International Conference on World Wide Web.2014:373-374.
[10]HU BAOTIAN,LU ZHENGDONG,LI HANG,et al.Convolutional Neural Network Architectures for Matching Natural Language Sentences[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems,2015:2042-2050.
[11]SHEN YELONG,HE XIAODONG,GAO JIANFENG,et al,Learning Semantic Representations Using Convolutional Neural Networks for Web Search[C]//Proceedings of the companion publication of the 23rd international conference on World wide web companion,2014:373-374.
[12]SANTUS E,CHIU TINSHING,LU QIN,et al.Unsupervised Measure of WordSimilarity:Howto Outperform Co-occurrence and Vector Cosine in VSMs[C]//AAAIConferenceonArtificialIntelligence,2016:4260-4261.
[13]RAO YANGHUI.Contextual Sentiment Topic Model for Adaptive Social EmotionClassification[J].IEEEIntelligentSystems,2015,31(1):41-47.
[14]BORDES A,GLOROT X,WESTON J,et al.A semantic matching energy function for learning with multi-relational data[J].Machine Learning,2014,94(2):233-259.
[15]BARONI M,DINU G,KRUSZEWSKI G.Don’t count,Predict!A Systematic Comparison of Context-counting vs.Context-predicting Semantic Vectors[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics,2014:238-247.