0
雷鋒網(wǎng) AI科技評論按:就在前幾天,Yann LeCun(中文名:楊立昆,被稱為卷積網(wǎng)絡之父)與其學生 張翔在arXiv上發(fā)表了一篇新作《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等)中組合使用的效果進行測試,得到了一系列有參考價值的結(jié)論。本文中雷鋒網(wǎng)將對這篇論文進行詳細分析。
文本分類是自然語言處理中最普遍的一個應用,例如文章自動分類、郵件自動分類、垃圾郵件識別、用戶情感分類等等,在生活中有很多例子。但是由于不同語言之間差別很大(例如像漢語、韓語、日語這樣的CJK語言與英語這樣的字母語言在處理上有很大不同)。例如最近有人使用字符級編碼的神經(jīng)網(wǎng)絡(ConvNets)來處理語言中的單詞分割問題,但是很不幸的是,用字符來處理CJK語言并不很好,因為這時候字符的數(shù)量會變得非常巨大。所以能否找到一種在處理所有這些自然語言上都表現(xiàn)優(yōu)良的模型呢?作者的方法就是,列出一系列模型(473個), 然后比較它們的表現(xiàn)。
這篇文章考慮了4種語言,分別為漢語、英語、日語和韓語。作者分別從大眾點評(漢語,餐飲)、京東(漢語,網(wǎng)店)、Rakuten(網(wǎng)店,日語)、11st(網(wǎng)店,韓語)、Amazon(英語,網(wǎng)店)、鳳凰網(wǎng)(漢語,新聞)、中國日報(漢語,新聞)、NYnews(英語,新聞)等八個網(wǎng)站爬取了8個情感分類數(shù)據(jù)集。其中京東、Rakuten、11st和Amazon的數(shù)據(jù)集又分為全五星分類和雙分法類(1、2星為負,3星舍棄,4、5星為正)。另外因為這四個網(wǎng)站都是網(wǎng)店類型,所以可以用它們來組合成兩個joint數(shù)據(jù)集(全五星和雙分法),這兩個數(shù)據(jù)集由于是混合了四種語言,所以可以用來檢測模型處理不同語言的能力。綜上共有14個情感分類的數(shù)據(jù)集。
所謂編碼級別,簡單說就是考慮文本分析時的最小單位。在文中提及的編碼級別包括:字符(characters)、UTF-8(byte)、羅馬化字符(romanized characters)、詞(words)、羅馬化詞(romanized words)等。
本文選擇的深度學習模型為卷積網(wǎng)絡模型(ConvNets),根據(jù)網(wǎng)絡層數(shù)分為large Net(12層)和small Net(8層)。在卷積網(wǎng)絡模型訓練中,必須對文本進行編碼機器才能識別。在這篇文章中包含三種編碼機制,分別為:字符字形編碼(Character Glyph)、獨熱編碼(One-hot Encoding)、嵌入編碼(Embedding)。
所謂字形就是在讀寫中可以識別的一個符號,例如漢字中的筆畫“丿”或英語中的“a”,都是一個可識別的字形。在這篇文章中作者將每一個字形轉(zhuǎn)化成一個16*16的像素點陣。很明顯這種編碼機制對于CJK語言(字符較為豐富)非常合適。不過這種方式只能在字符級進行,所以只能構建出一種卷積網(wǎng)絡模型,稱之為GlyphNet。
獨熱碼, 直觀來說就是有多少個狀態(tài)就有多少比特,而且只有一個比特為1,其他全為0的一種碼制。例如,有6個狀態(tài)的獨熱碼狀態(tài)編碼為:000001,000010,000100,001000,010000,100000。如果是英文字母的編碼,那么就需要狀態(tài)碼長度為26了。獨熱碼編碼的最大優(yōu)勢在于狀態(tài)比較時僅僅需要比較一個位,從而一定程度上簡化了譯碼邏輯。但是,很顯然,如果字符數(shù)量非常多(CJK語言)的情況下,獨熱碼的碼長就會非常大。不過在這篇文章中,作者考慮了兩種方式來解決這個問題:第一種是將所有的文本(UTF-8)看成是一個字節(jié)序列,在字節(jié)層次進行編碼,構建的卷積網(wǎng)絡模型稱之為byte-level OnehotNet;第二種是將文本羅馬化,也即用英語字母來編碼(值得注意的是,這種方式等價于用羅馬化文本在字節(jié)層次進行編碼),構建的卷積網(wǎng)絡模型稱之為Romanization OnehotNet。字節(jié)級處理的優(yōu)勢在于,它們可以應用到任何一種語言當中,無論這種語言在字符或者字體級別有多少實體,所以它們也可以很容易地應用到CJK語言當中。
所謂嵌入碼,即將每一個實體用一個固定長度的向量來表示。比如,對于“A B A C B F G”這樣的一個序列,也許我們最后能得到:A對應的向量為[0.1 0.6 -0.5],B對應的向量為[-0.2 0.9 0.7] (此處的數(shù)值只用于示意)。由于這種向量表示是隨機的初始化的,它不像獨熱碼那樣嚴格,所以相比獨熱碼它在內(nèi)存中會更小。另外一個優(yōu)點就是它可以應用到任何編碼級別。所以在本文當中,作者使用嵌入編碼從字節(jié)、字符、單詞、羅馬化字符、羅馬化單詞等不同的編碼級別來分別編碼比較,嵌入碼向量長度都為256。
通過這種方式構建的卷積網(wǎng)絡模型稱之為EmbedNet。這種模型編碼可以分別在characters、byte、romanized characters、words、romanized words五個級別進行,所以共有五種模型。
綜上所述,共有(1+2+5)*2=16種卷積網(wǎng)絡模型。
除了卷積網(wǎng)絡模型外,在這篇文章中作者還選取了線形模型(linear model)和fastText模型進行對比。
傳統(tǒng)的文本分類方法的流程就是人工設計一些特征,從原始文檔中提取特征,然后指定分類器如LR、SVM,訓練模型對文本進行分類。比較經(jīng)典的特征提取方法如頻次法(文章中用plain表示)、TF-IDF等。所謂頻次法顧名思義就是記錄和統(tǒng)計每個文本中實體(例如character、word、romanized word)的次數(shù)分布,以此來分類。但是有些詞如“的”“了”等雖然出現(xiàn)的次數(shù)比較多,但實際并沒有意義。所以就提出了另一種線形模型TF-IDF。TF即term frequency,仍然表示項目在文本中出現(xiàn)的頻次,但加入了IDF(inverse document frequency)的權重,在全部文檔中出現(xiàn)頻次越大,該term在樣本中的IDF就越小。于是TF*IDF就可以作為一個項目的統(tǒng)計結(jié)果了,這要比簡單的頻率統(tǒng)計更為準確。
fastText模型是2016年Joulin等人提出的一個快速分類模型。該模型并入了分層softmax和特征散列等技巧,這種模型能夠以ConvNets模型幾個數(shù)量級的速度處理輸入文本。本質(zhì)上fastText模型就是一個沒有非線性的2層全連接神經(jīng)網(wǎng)絡。
在以上這兩個模型中,作者選擇了character、word、romanized word三種編碼級別,但是還有一個問題沒有解決,即以多大的單位進行統(tǒng)計/判斷?這就涉及到一個概念: n-gram。它的意思就是將給定文本轉(zhuǎn)化為長度為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個數(shù)據(jù)集,每個數(shù)據(jù)集都有37個模型;英語的3個數(shù)據(jù)集,每個有22個模型??傆嬘?73個模型參與到對比中。表格中的數(shù)據(jù)表示訓練誤差的百分比。
另外每一種模型所花費的時間也是不一樣,其量級差別非常大。作者通過對joint 二分數(shù)據(jù)集的100萬個樣本進行訓練得到下面這個對比數(shù)據(jù)。這個對比只是作為參考,具體情況會根據(jù)計算環(huán)境而變。
通過比較以上表格中的誤差率,作者得出以下結(jié)論:
1、fastText模型對中、日、韓文本(CJK語言文本)在character級編碼的處理結(jié)果更好;而對英語文本則在word級編碼的處理結(jié)果更好;
2、對于fastText和線性模型,CJK語言的word級編碼在沒有完美分割的情況下效果相當;
3、卷積網(wǎng)絡的最佳編碼機制是byte級獨熱編碼(byte-level one-hot encoding)。 這表明卷積網(wǎng)絡能夠從低級別的表示中理解文本,并提供了一致的和統(tǒng)一的方式來處理多種語言。
4、fastText相比于卷積網(wǎng)絡更傾向于過擬合,而相比于線形模型也并沒有表現(xiàn)出更多的表示能力(representation capacity)。
當然,盡管作者在此列了473種模型進行對比,但仍不是全部。例如深度學習模型本文只用了卷積網(wǎng)絡模型,但其實還有別的一些有意思的模型,例如周期性網(wǎng)絡(recurrent networks)等。作者似乎計劃在之后會對周期性網(wǎng)絡進行研究,同時還會改進卷積網(wǎng)絡模型,看會有什么樣的效果。
雷鋒網(wǎng)消息,據(jù)說論文中用到的源代碼和數(shù)據(jù)集隨后將全部公布。
論文下載:https://arxiv.org/pdf/1708.02657.pdf
相關文章:
論文被拒千百遍,團隊不受待見,Yann LeCun為何仍待深度學習如初戀?
AI科技評論專訪Yann LeCun: 關于深度學習未來的14個問題
Yoav Goldberg與Yann LeCun論戰(zhàn)背后:arXiv是個好平臺,但和學術會議是兩碼事
Yann LeCun最新研究成果:可以幫助GAN使用離散數(shù)據(jù)的ARAE
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。