Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?

機器學習 英語 日語 文章 雷鋒網 雷鋒網 2017-08-19

雷鋒網 AI科技評論按:就在前幾天,Yann LeCun(中文名:楊立昆,被稱為卷積網絡之父)與其學生 張翔在arXiv上發表了一篇新作《Which Encoding is the Best for Text Classification in Chinese, English, Japanese and Korean?》。這篇文章做了一個包含473種模型的大型對比實驗,實驗的目的是對文本分類任務中不同語言(英語、漢語、韓語和日語)不同的level(utf-8 、字符等)和不同的encoding(bag-of-words等)在不同模型(linear models、fastText、ConvNets等)中組合使用的效果進行測試,得到了一系列有參考價值的結論。本文中雷鋒網將對這篇論文進行詳細分析。

Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?

文本分類是自然語言處理中最普遍的一個應用,例如文章自動分類、郵件自動分類、垃圾郵件識別、用戶情感分類等等,在生活中有很多例子。但是由於不同語言之間差別很大(例如像漢語、韓語、日語這樣的CJK語言與英語這樣的字母語言在處理上有很大不同)。例如最近有人使用字符級編碼的神經網絡(ConvNets)來處理語言中的單詞分割問題,但是很不幸的是,用字符來處理CJK語言並不很好,因為這時候字符的數量會變得非常巨大。所以能否找到一種在處理所有這些自然語言上都表現優良的模型呢?作者的方法就是,列出一系列模型(473個), 然後比較它們的表現。

一、數據集(data sets)

這篇文章考慮了4種語言,分別為漢語、英語、日語和韓語。作者分別從大眾點評(漢語,餐飲)、京東(漢語,網店)、Rakuten(網店,日語)、11st(網店,韓語)、Amazon(英語,網店)、鳳凰網(漢語,新聞)、中國日報(漢語,新聞)、NYnews(英語,新聞)等八個網站爬取了8個情感分類數據集。其中京東、Rakuten、11st和Amazon的數據集又分為全五星分類和雙分法類(1、2星為負,3星捨棄,4、5星為正)。另外因為這四個網站都是網店類型,所以可以用它們來組合成兩個joint數據集(全五星和雙分法),這兩個數據集由於是混合了四種語言,所以可以用來檢測模型處理不同語言的能力。綜上共有14個情感分類的數據集。

二、編碼級別(encoding level)

所謂編碼級別,簡單說就是考慮文本分析時的最小單位。在文中提及的編碼級別包括:字符(characters)、UTF-8(byte)、羅馬化字符(romanized characters)、詞(words)、羅馬化詞(romanized words)等。

三、編碼機制(encoding Mechanism)

本文選擇的深度學習模型為卷積網絡模型(ConvNets),根據網絡層數分為large Net(12層)和small Net(8層)。在卷積網絡模型訓練中,必須對文本進行編碼機器才能識別。在這篇文章中包含三種編碼機制,分別為:字符字形編碼(Character Glyph)、獨熱編碼(One-hot Encoding)、嵌入編碼(Embedding)。

1、字符字形編碼(Character Glyph)

所謂字形就是在讀寫中可以識別的一個符號,例如漢字中的筆畫“丿”或英語中的“a”,都是一個可識別的字形。在這篇文章中作者將每一個字形轉化成一個16*16的像素點陣。很明顯這種編碼機制對於CJK語言(字符較為豐富)非常合適。不過這種方式只能在字符級進行,所以只能構建出一種卷積網絡模型,稱之為GlyphNet。

2、獨熱編碼(One-hot Encoding)

獨熱碼, 直觀來說就是有多少個狀態就有多少比特,而且只有一個比特為1,其他全為0的一種碼制。例如,有6個狀態的獨熱碼狀態編碼為:000001,000010,000100,001000,010000,100000。如果是英文字母的編碼,那麼就需要狀態碼長度為26了。獨熱碼編碼的最大優勢在於狀態比較時僅僅需要比較一個位,從而一定程度上簡化了譯碼邏輯。但是,很顯然,如果字符數量非常多(CJK語言)的情況下,獨熱碼的碼長就會非常大。不過在這篇文章中,作者考慮了兩種方式來解決這個問題:第一種是將所有的文本(UTF-8)看成是一個字節序列,在字節層次進行編碼,構建的卷積網絡模型稱之為byte-level OnehotNet;第二種是將文本羅馬化,也即用英語字母來編碼(值得注意的是,這種方式等價於用羅馬化文本在字節層次進行編碼),構建的卷積網絡模型稱之為Romanization OnehotNet。字節級處理的優勢在於,它們可以應用到任何一種語言當中,無論這種語言在字符或者字體級別有多少實體,所以它們也可以很容易地應用到CJK語言當中。

3、嵌入編碼(Embedding)

所謂嵌入碼,即將每一個實體用一個固定長度的向量來表示。比如,對於“A B A C B F G”這樣的一個序列,也許我們最後能得到:A對應的向量為[0.1 0.6 -0.5],B對應的向量為[-0.2 0.9 0.7] (此處的數值只用於示意)。由於這種向量表示是隨機的初始化的,它不像獨熱碼那樣嚴格,所以相比獨熱碼它在內存中會更小。另外一個優點就是它可以應用到任何編碼級別。所以在本文當中,作者使用嵌入編碼從字節、字符、單詞、羅馬化字符、羅馬化單詞等不同的編碼級別來分別編碼比較,嵌入碼向量長度都為256。

通過這種方式構建的卷積網絡模型稱之為EmbedNet。這種模型編碼可以分別在characters、byte、romanized characters、words、romanized words五個級別進行,所以共有五種模型。

綜上所述,共有(1+2+5)*2=16種卷積網絡模型。

三、線形模型和fastText模型

除了卷積網絡模型外,在這篇文章中作者還選取了線形模型(linear model)和fastText模型進行對比。

1、線形模型(linear model)

傳統的文本分類方法的流程就是人工設計一些特徵,從原始文檔中提取特徵,然後指定分類器如LR、SVM,訓練模型對文本進行分類。比較經典的特徵提取方法如頻次法(文章中用plain表示)、TF-IDF等。所謂頻次法顧名思義就是記錄和統計每個文本中實體(例如character、word、romanized word)的次數分佈,以此來分類。但是有些詞如“的”“了”等雖然出現的次數比較多,但實際並沒有意義。所以就提出了另一種線形模型TF-IDF。TF即term frequency,仍然表示項目在文本中出現的頻次,但加入了IDF(inverse document frequency)的權重,在全部文檔中出現頻次越大,該term在樣本中的IDF就越小。於是TF*IDF就可以作為一個項目的統計結果了,這要比簡單的頻率統計更為準確。

2、fastText模型

fastText模型是2016年Joulin等人提出的一個快速分類模型。該模型併入了分層softmax和特徵散列等技巧,這種模型能夠以ConvNets模型幾個數量級的速度處理輸入文本。本質上fastText模型就是一個沒有非線性的2層全連接神經網絡。

在以上這兩個模型中,作者選擇了character、word、romanized word三種編碼級別,但是還有一個問題沒有解決,即以多大的單位進行統計/判斷?這就涉及到一個概念: n-gram。它的意思就是將給定文本轉化為長度為n的項目(term)的序列。例如“你今天休假了嗎”,它的2-gram依次是:“你今,今天,天休,休假,假了,了嗎”。作者為線形模型選擇了1-gram和5-gram兩種,為fastText模型選擇了1-gram、2-gram和5-gram。

綜上所述,作者共構建了3*2*2=12種線形模型和3*3=9種fastText模型。

四、結果

針對以上四種語言,漢語、日語、韓語以及joint共11個數據集,每個數據集都有37個模型;英語的3個數據集,每個有22個模型。總計有473個模型參與到對比中。表格中的數據表示訓練誤差的百分比。

Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?

另外每一種模型所花費的時間也是不一樣,其量級差別非常大。作者通過對joint 二分數據集的100萬個樣本進行訓練得到下面這個對比數據。這個對比只是作為參考,具體情況會根據計算環境而變。

Yann LeCun新作:473種模型大對比,中日韓文本分類到底要用哪種編碼?

五、結論

通過比較以上表格中的誤差率,作者得出以下結論:

1、fastText模型對中、日、韓文本(CJK語言文本)在character級編碼的處理結果更好;而對英語文本則在word級編碼的處理結果更好;

2、對於fastText和線性模型,CJK語言的word級編碼在沒有完美分割的情況下效果相當;

3、卷積網絡的最佳編碼機制是byte級獨熱編碼(byte-level one-hot encoding)。 這表明卷積網絡能夠從低級別的表示中理解文本,並提供了一致的和統一的方式來處理多種語言。

4、fastText相比於卷積網絡更傾向於過擬合,而相比於線形模型也並沒有表現出更多的表示能力(representation capacity)。

當然,儘管作者在此列了473種模型進行對比,但仍不是全部。例如深度學習模型本文只用了卷積網絡模型,但其實還有別的一些有意思的模型,例如週期性網絡(recurrent networks)等。作者似乎計劃在之後會對週期性網絡進行研究,同時還會改進卷積網絡模型,看會有什麼樣的效果。

雷鋒網消息,據說論文中用到的源代碼和數據集隨後將全部公佈。

論文下載:https://arxiv.org/pdf/1708.02657.pdf

相關推薦

推薦中...