摘要:本文先介紹文本分類的特點和應用,并指出傳統處理方法在文本處理方面的瓶頸及不足之處;然后引入深度學習的概念,以卷積神經網絡為例,介紹卷積神經網絡在文本分類中的應用,通過從特征詞入手,經過卷積-池化-分類等步驟對文本的分類進行預測。結果表明,卷積神經網絡自動抽取特征的優點相對傳統的文本分類方法具有更高效的表現。
關鍵詞:樸素貝葉斯;深度學習;卷積神經網絡;文本分類
中圖分類號:TP183:文獻標識碼:A
0 引言
文本分類是自然語言處理的一個重要方面,利用計算機手段推斷出給定的文本(句子、文檔等)的標簽或標簽集合。利用深度學習進行文本分類和語義判斷是一個新興而充滿前途的研究課題。
傳統的文本分類主要是利用貝葉斯原理,基于上下文之間的文本出現的概率對自然語言進行處理。盡管貝葉斯在文本處理方面也非常高效,但其存在“零頻率”和不一定滿足獨立預測的假設等方面的缺陷。而使用深度學習,完全另辟蹊徑從特征詞入手,經過卷積、池化、分類等步驟,自動學習和抽取文本特征,對海量文本進行快速準確的分類。
1 深度學習簡介
加拿大多倫多大學教授 Geoffrey Hinton長期堅持神經網絡的研究,但由于當時支持向量機的流行,神經網絡相關的研究工作遇到了重重阻礙。2006 年,Geoffrey Hinton 在 [1]
提出了一種逐層預訓練的算法,可以有效地初始化Deep Belief Networks(DBN)網絡,從而
使得訓練大規模、深層數(上百萬的參數量)的神經網絡成為可能。在論文中,Geoffrey
Hinton 把深層的神經網絡叫做Deep Neural Network,這一塊的研究也因此稱為 Deep
Learning(深度學習)。
80年代時神經網絡的理論研究基本已經到位,為什么卻沒能充分發掘出深層網絡的巨大潛力?通過對這個問題的討論,本文接下來討論深度學習的典型網絡-卷積神經網絡,這也是層數可以輕松達到上百層的一類神經網絡。
2 卷積神經網絡簡介
2.1 卷積神經網絡的特點
卷積神經網絡作為深度學習的一個典型網絡,通過充分利用局部相關性和權值共享的思想,大大地減少了網絡的參數量,從而提高訓練效率,更容易實現超大規模的深層網絡[1]。2012年,加拿大多倫多大學Alex Krizhevsky 將深層卷積神經網絡應用在大規模圖片識別挑戰賽ILSVRC-2012上,在ImageNet數據集上取得了15.3%的Top-5錯誤率,排名第一,相對于第二名在Top-5錯誤率上降低了10.9%,這一巨大突破引起了業界強烈關注,卷積神經網絡迅速成為計算機視覺領域的新寵,隨后在一系列的任務中,基于卷積神經網絡的形形色色的模型相繼被提出,并在原有的性能上取得了巨大提升。
2.2 卷積神經網絡的基本原理
在數字圖像處理中有一種基本的處理方法叫線性濾波[2]。它將待處理的二維數字看作一個大型矩陣,圖像中的每個像素可以看作矩陣中的每個元素,像素的大小就是矩陣中的元素值。而使用的濾波工具是另一個小型矩陣,這個矩陣就被稱為卷積核。卷積核的大小遠遠小于圖像矩陣,具體的計算方式就是對于圖像大矩陣中的每個元素,計算周圍的像素和卷積核對應位置的乘積,之后將結果相加最終得到的終值就是該像素的值,這樣就完成了一次卷積。
如果采用卷積神經網絡來替代以上提到的手寫數字識別淺層神經網絡,采用三個卷積層,和兩個全連接層,一共只需要13450個參數,而且識別的準確率大幅上升。經過測試,可由原來的91%上升到98%以上。由此可見,卷積層的參數量非常少,主要的參數量集中在全連接層。由于卷積層將輸入特征維度降低很多,從而使得全連接層的參數量不至于過大,因此通過卷積神經網絡可以顯著降低網絡參數量,同時增加網絡深度,大幅提高了識別的準確率。
3 卷積神經網絡的在文本分類中的關鍵技術介紹
卷積神經網絡可以應用在人工智能的很多領域[3],比如圖像和自然語言處理等等。其結合特征提取和目標訓練為一體的模型,能夠很好地利用已有的信息對結果進行反饋訓練。對文本識別的卷積神經網絡來說,同樣也是充分利用特征提取時提取的文本特征,來計算文本特征權重的大小,歸一化處理需要處理的數據[4]。這樣使得原來的文本信息抽象成一個向量化的樣本集,之后將樣本集和訓練好的模板輸入卷積神經網絡進行處理。下面以文本分類為例,說明卷積神經網絡在文本分類中具體的編程方法和步驟。
3.1數據集介紹
本文采用名為“AG”的新聞分類數據集,該數據集是由學術社區ComeToMyHead提供的,從2000多個不同的新聞來源搜集,超過100萬的新聞文章??捎糜谘芯糠诸?、聚類、信息獲?。╮ank、搜索)等非商業活動。在此基礎上,Xiang Zhang為了研究需要從中提取了127600樣本,其中抽出120000樣本作為訓練集,7600作為測試集。該數據集按World、Sport、Business和Sci/Tec進行4類劃分?!癆G”數據集用csv文件格式進行存儲,文件分為新聞分類、新聞標題、新聞內容三列。
3.2 關鍵技術介紹
(1)字符(非單詞)文本數字化的處理
任何一個英文單詞都是由字母構成,因此可以簡單地將英文單詞拆分成字母的表示形式,例如hello->[‘h, ‘e , ‘l , ‘l, ‘o], 此時可以使用one-hot 或字符embedding的方式進行處理。這樣“hello”這個單詞就被轉換成一個[5,n]大小用one-hot表示的矩陣,其中n為所有字符的個數。然后以[新聞內容單詞個數,最大單詞字符數,n]的矩陣形式直接把新聞內容輸入卷積神經網絡進行處理。
(2)解決每個句子文本輸入長度不同的問題
首先找出所有要輸入訓練句子的最大長度,把這個作為標準輸入到卷積神經的網絡的固定長度,其余不足這個長度的句子剩下的空位由0進行填充。
(3)卷積神經網絡文本分類模型的實現
對文本數據集處理完畢后,接著進入卷積神經網絡的分類模型設計。本文采用了一個
5層卷積神經網絡的具體設計,每層的設計如下。
a.輸入層
輸入層是句子中的詞語對應的one-hot組成的字符矩陣,假設最長的句子有 n 個詞,每個詞最大的字符序列為k個字符,每個詞從總共t個字符中選取若干字符構成,則輸入的句子可以用[n,k,t]三維矩陣來表示。(在CNN中可以看作一副高度為n、寬度為k的深度為t的圖像)。
b.卷積層
輸入層通過卷積操作得到若干個Feature Map,卷積窗口的大小為 h ×t ,其中 h 表示縱向詞語的個數。通過這樣一個大型的卷積窗口,將得到若干個列數為1的Feature Map。
c.池化層
本文中采用了一種稱為Max-Pooling的方法。這種方法就是簡單地從之前一維的Feature Map中提出最大的值,最大值代表著最重要的信號??梢钥闯觯@種Pooling方式可以解決可變長度的句子輸入問題。
d. 全連接+softmax層
池化層的一維向量的輸出通過全連接的方式,然后再連接一個Softmax層進行概率計算,最后得出分類的歸屬。
(4)訓練方法
在倒數第二層的全連接部分上使用Dropout技術,Dropout是指在模型訓練時隨機讓網絡某些隱含層節點的權重不工作,不工作的那些節點可以暫時認為不是網絡結構的一部分,但是它的權重得保留下來(只是暫時不更新而已),因為下次樣本輸入時它可能又得工作了,它是防止模型過擬合的一種常用的技巧。同時對全連接層上的權值參數給予L2正則化的限制。這樣做的好處是防止隱藏層單元自適應(或者對稱),從而減輕過擬合的程度。
(5)實驗結果分析
從實驗的結果來看,主要有兩方面問題:
a.訓練metrics不平滑,因為用的batch-sizes很小。如果用大點的batches (或者在整個測試集上進行評估),會得到更平滑的曲線。
b.驗證集的accuracy明顯比訓練集的低,說明網絡過擬合了,應該用更大的數據集,更強的正則化,更少的模型參數,或者使用dropout,能較好改善過擬合問題。
從實驗的規模和效率來看,卷積神經網絡在文本分類中取得了很好的成果,相比于之前淺層的機器學習方法如NB、SVM效果更好,特別實在數據集較大的情況下,并且CNN不用我們手動去提取特征,原淺層ML是需要進行文本特征提取、文本特征表示、歸一化、最后進行文本分類。所以采用卷積神經網絡在處理大量文本的分類的時候,整體效果是好于傳統的淺層神經網絡和機器學習方法的。
4 總結
本文先介紹介紹文本分類的特點和應用,進而引入深度學習的概念,并詳細介紹了深度學習的典型網絡-卷積神經網絡的特點和應用,最后通過使用TensorFlow2.3建立卷積神經網絡,對AG數據集進行識別,從數據獲取、數據預處理、建立卷積神經網絡等一系列步驟進行說明,最后對實驗結果進行分析,如果進一步優化參數,還能取得更好的效果。
參考文獻
[1] 王宇石等.一種基于卷積神經網絡的違禁品探測系統及部署方法[J],科技創新與應用,2020(7).
[2] 曹華軍,吳宗民等.噪聲圖像的線性濾波分析與仿真[J],信息技術與信息華,2017(8).
[3] 閆濤. 深度學習算法實踐 [M]. 電子工業出版社出版社,2020
[4] 來學偉.TensorFlow讀取數據在簡單圖像識別中的應用[J],現代信息科技,2019(6).
作者簡介:翟高粵,男(1975.11)廣西欽州,漢,碩士,副教授,研究方向:軟件理論,人工智能。