2.3 文本分類方法概述
2.3.5 決策樹
決策樹 [18] 是一種樹狀結構的分類器,決策樹從根節點開始,根據不同的文本
分成數個樣本子集,每個子集構成一個子節點,生成的決策樹每個樹葉對應一個
20
類別,建立決策樹的目的是尋找特徵和文本之間的關係,並用其預測待定文本的
類別。
決策樹的建立為一種遞迴的過程,分為兩個步驟進行,第一步判斷訓練文本集 D
中所有文本是否都屬於同一類別,若皆為同一類別,則訓練文本集不再分化,形
成樹葉。否則,根據演算法策略選擇特徵,並按照特徵對訓練文件集 D 進行分化,
得到 n 個子文本訓練集,符號為 𝐷𝑖,接著再對每個 𝐷𝑖 進行第一步驟。
經過了 n 次遞迴,決策樹的生成完成,從根節點到葉節點的路徑對應著一條
規則,整顆決策樹就包含一組分析文本類別的規則,在決策樹中,特徵屬性選擇
的方法有很多種,如 ID3、C4.5、CART 等等 [19,20,21]。
在使用決策樹分類器時,最關鍵的部分在於不讓模型有過度擬合的現象發生,
特別在於含有噪音的文本或是有不在規則中屬性時,決策樹容易過度擬合,因此
通常使用決策樹的剪枝來解決此問題,常見的剪枝法有事前修剪法 (Prepruning)
和事後修剪法 (Postpruning)。
21
決策樹分類器的優點在於結構清晰,易於理解和解釋,在建構樹的過程中,
如果出現問題很容易測試,也能很好的應用到大型的資料集,缺點在於容易會有
過度擬合的現象,需要使用良好的剪枝策略,才能達到良好的分類效果。
2.4 文本分類性能評估
由於自動文本分類在自然語言領域有關鍵性地位和廣泛的應用潛力,因此得到了
許多學者的熱切關注。隨著人工智慧、機器學習和統計理論的快速發展,目前有
各式各樣的自動文本分類模型。因此,如何有效且客觀的評估與比較這些分類方
法與模型成為了一個重要課題。
2.4.1 基本指標
文本分類的性能評估基本指標和資訊檢索領域指標類似,如查準率 (Precision)、
查全率 (Recall)、準確率 (Accuracy)、誤報率 (Error)。
真正屬於該類 真正不屬於該類
判斷屬於該類 A B
判斷不屬於該類 C D
表 2.1 分類混和矩陣
22
23
24
第二項綜合指標為平衡點 (Break-Even Point, BEP),其想法為的查準率和查
全率相等時能完美呈現分類器模型的效能,該值稱為平衡點。如果測試時無相等
值出現,則取最為接近的值作為平衡點,此時:
BEP = 𝐹1 = 𝑃 = 𝑅 (2.18)
第三項綜合指標為宏平均 (Macro-Average) 和微平均 (Micro-Average),查全
率和查準率都是在某一類別進行效能評估,為了估計整個資料集的效能,我們使
25
宏平均是對於類別的平均,容易受到文件較少的類別所影響,而微平均則相反,
容易受到文件較多的類別所影響。
26
第 3 章 基礎實驗與配置
3.1 實驗語料
本論文實驗做於主題辨識和情緒分類任務的語料,在本章節將介紹本論文使用的
資料集,本論文使用兩個文件資料集進行實驗。
首先 IMDB 電影評論資料集為本實驗的第一個資料集,本資料集為情緒分類
熱門的資料集,其目的是將待定的電影評論進行正評價和負評價的預測。在本資
料集中,訓練和測試資料集皆包含兩萬五千條影片評論,每條評論擷取自 IMDB
網站上情緒傾向明確且結構良好的文本。評論的資料結構為三元組型態:使用者
識別碼、評價標籤、影片評論。該資料集在 [22] 中推出。
第二個資料集為 20Newsgroups 新聞群組分類,在本資料集中共有 18846 個
新聞群組文檔,在二十個不同的新聞群組中,每個新聞群組對應不同的主題,某
些新聞群組非常密切相關( 例如 comp.sys.ibm.pc.hardware 和
comp.sys.mac.hardware ) 如表 3.1 所示,每個新聞群組的文檔數大約為五百篇文
檔,本資料集最早是由 Ken Lang [23] 所收集,本論文使用的語料為已排序後的
資料集版本,20Newsgroups 也是在目前自動文本分類的應用中熱門的資料集。
27
資料集 訓練/驗證/測試數量 最大/平均/最短長度 類別 IMDB 22500/2500/25000 2470/233/10 2 20Newsgroups 10183/1131/7532 11295/267/20 20
表 3.1 資料文件統計資訊
28
也嘗試了給予的不同輸入特徵於樸素貝葉斯和支持向量機,分類效能也有增進的
趨勢,可以發現考量 bigram 特徵的分類器會有效能上的增長,但支持向量機分類
器的效能還是比樸素貝葉斯分類器來的好。
29
第 4 章 文本表示學習
4.1 表示學習概述
近年來,表示學習 (Representation Learning) [24] 或非監督的特徵學習,由於可
以自動地發現原始資料的特徵,有效地避免複雜的知識工程專家的干涉,成為了
近期重要的研究方向。其中,使用深度學習作為特徵學習,不僅可以利用大量的
訓練資料完成傳統機器學的目標,我們還可以利用模型的訓練過程中產生深層的
特徵,利用此特徵表示我們可以有效的提高模型的準確性,圖 4.1 呈現了傳統機
器學習、表示學習和深度學習的差異。
30
圖 4.1 傳統機器學習、表示學習和深度學習流程圖
4.2 統計語言模型
目前的網路世界發展迅速,每日都會產生大量的文本資訊,要對這些文本資訊進
行處理並挖掘出有價值的資訊,和自然語言處理領域密切相關,其中統計語言模
31
型就是很重要的一部份,統計語言模型是自然語言領域的基礎,該模型也常廣泛
應用於語音識別、資訊檢索、機器翻譯、詞性標記等任務中。
統計語言模型是用來計算一個句子機率的機率模型,給定 S = 𝑊1𝑇 =
(𝑊1, 𝑊2, … 𝑊𝑇)表示由 T 個詞所組成的句子,則𝑊1, 𝑊2, … 𝑊𝑇的聯合機率分布為:
𝑝 (S) = 𝑝 (𝑊1, 𝑊2, … 𝑊𝑇) (4.1)
利用貝氏定理,上述式子可以分解為:
𝑝 (S) = 𝑝 (𝑊1) * 𝑝 (𝑊2|𝑊1) * 𝑝 (𝑊3|𝑊12) * … * 𝑝 (𝑊𝑇|𝑊1𝑇−1) (4.2)
因此我們必須去估計以上語言模型的參數,但在實現上有些困難,以上述例子來
說,句子長度為 T,故須計算 T 個參數,假設資料集的詞彙量為 N,假設不考慮
參數重複的情況,則其複雜度為 T ∗ 𝑁𝑇, 除了參數計算量龐大之外,其儲存的
花費也是一個問題。因此,我們需要一個估計參數較少的模型,在本小節,我們
將介紹 N 元語言模型和類神經網路模型兩種方法。
4.2.1 N 元語言模型(N-gram)
32
33
時,模型效能的提升幅度會縮小。此外使用 N 元語言模型的一個問題在於,測試
時出現了訓練集中沒出現的詞,則模型估計的機率為 0,通常都使用平滑
(Smoothing) 技術來解決。
4.2.2 機率式神經網路語言模型
在 2003 年 Bengio 等人 [26] 提出了機率式神經語言模型,示意圖如下,該
模型為四個層的網路,分別是輸入層 (Input Layer)、投影層 (Projection Layer)、
隱藏層 (Hidden Layer) 和輸出層 (Output Layer),其中 W 和 U 分別為投影層與
隱藏層和隱藏層與輸出層之間的權重矩陣,p 和 q 分別為隱藏層和輸出層的偏移
向量。
圖 4.2 神經網路結構示意圖
34
在 [26] 的實驗中,作者發現使用投影層和輸出層之間的權值矩陣雖然無法提高
模型效果,但能減少模型的迭代次數,近年來,人們更多將圖 4.2 結構視為圖 4.3
的三層結構。
圖 4.3 三層神經網路結構示意圖
對於資料集中的任一個詞𝑤,將 𝐶𝑜𝑛𝑡𝑒𝑥𝑡(𝑤)表示為前 n-1 個詞,對於訓練
樣本(𝐶𝑜𝑛𝑡𝑒𝑥𝑡(𝑤), 𝑤),給定詞向量的長度𝑚,我們將輸入到圖 4.2 的網路,式
子如下:
𝑧𝑤 = tanh(𝑊𝑥𝑤 + 𝑝) (4.7)
𝑦𝑤 = 𝑈𝑧𝑤 + 𝑞 (4.8)
經過上述計算所得到的𝑦𝑤,為一個長度為 N 的向量,我們使用 Softmax 正規化方
法將其表示為當上下文為𝐶𝑜𝑛𝑡𝑒𝑥𝑡(𝑤)時下一個詞為詞典中第 i 個詞的機率,其表
示如下:
35
p(𝑊|𝐶𝑜𝑛𝑡𝑒𝑥𝑡(𝑤)) = ∑𝑁𝑒𝑦𝑤,𝑖𝑤𝑒𝑦𝑤,𝑖
𝑖=1 (4.9) 其中 tanh 為雙曲正切函數,在此為用於隱藏層的激發函數,𝑖𝑤 代表詞 w 在字典
中的索引值。
機率式神經語言模型與 N 元語言模型相比,有以下兩大優勢,第一為詞語之
間的相似程度可以透過詞向量來呈現,例如在一個訓練集中,句子一:”我喜歡
吃蘋果”出現了一千次,而句子二:”我喜歡吃榴槤”只出現了一次,依照 N 元
語言模型的流程,句子一出現的機率會遠大於句子二,但兩句之間的差異只在蘋
果和榴槤,這兩個詞彙在語意和句法上為相同的角色,因此句子一與句子二的機
率應該相近。然而,由機率式神經語言模型算出以上兩句的機率為相似的,因為
在機率式神經語言模型中假設了相似的詞其詞向量也是相似的。第二為機率式神
經語言模型不需要像 N 元模型需用平滑技術處理。
4.3 詞向量(Word Embedding)
在自然語言處理領域中,我們必須將自然語言交由機器學習演算法處理,但是機
器無法直接理解人類的語言,所以我們必須先將自然語言數學化,最直觀且簡單
的詞向量為 one-hot 表示,即使用詞典的大小 N 來表示文本,有出現在詞典中的
36
字向量索引為 1,其他為 0。這種表示法的缺點在於無法很好的描述字詞之間的
關聯程度,且容易受到維度詛咒的影響。
在 1986 年,Hinton 等人 [27] 提出分散式的表示 (Distributed
Representation) 可以很好的改進 one-hot 表示的缺點,其思路在於透過訓練將每個
詞語由固定長度且稠密的向量表示,這些向量組成一個詞向量空間,每一個向量
為空間中的一個點,我們可以在此空間上引入距離的概念,用詞與詞之間的距離
來判斷其語意和語法的相似程度。
使用基於類神經網路的語言模型做為學習詞表示的模型,在近年來掀起了一
股熱潮。在 2013 年由 Mikolov 等人 [28] 所提出的 Word2vec 方法是一個使用一
層隱藏層來學習詞向量的模型,連續詞袋模型 (Continuous Bag of Words, CBOW)
和跳躍式模型 (Skip-gram, SG) 為 Word2vec 模型的兩種實現方式。
4.3.1 連續型詞袋模型(Continuous Bag of Words, CBOW)
連續型詞袋模型是由 Mikolov 等人所提出的兩個經典架構之一,該架構類似於前饋
類神經網路 (Feed-Forward Neural Network),不同之處在於連續型詞袋模型移除非
線性隱藏層 (Non-Linear Hidden Layer)。如此,該模型僅使用線性表示能力來計
37
算詞的實數表示向量,仍然可以保持良好的性能。在連續型詞袋模型中,是透過
一個詞的上下文 (Context) 來預測該詞的機率,如圖 4.4 所示:
圖 4.4 連續型詞袋模型
4.3.2 跳躍式模型(Skip-gram, SG)
跳躍式模型是由 Mikolov 等人所提出的另一經典架構,該模型以簡化的前饋類神
經網路透過逆向訓練目標來學習詞表示法。該模型與連續型詞袋模型相反,是
給定一個詞𝑤來預測其上下文𝐶𝑜𝑛𝑡𝑒𝑥𝑡(𝑤)的機率,如下圖 4.5 所示:
38
4.5 跳躍式模型
4.4 基於 Hierarchical Softmax 模型
本節將介紹基於 Hierarchical Softmax 的連續詞袋模型,在圖 4.6 中顯示連續型詞
本節將介紹基於 Hierarchical Softmax 的連續詞袋模型,在圖 4.6 中顯示連續型詞