橫掃13項中文NLP任務:香儂科技提出漢語字形表徵向量Glyce+田字格CNN
最近,香儂科技發表研究,提出了一種漢語字形向量 Glyce。該研究基於漢字的進化過程,採用多種漢字古今文字和多種書寫風格,專為中文象形字元建模設計了一種 CNN 架構——田字格 CNN。Glyce 在 13 個(幾乎所有)中文 NLP 任務上達到了當前最佳效能。
漢字是一種象形文字,可以被分解為更小、更基礎的音義結合體:象形(即物件的影象化表述,如「亻」、「日」、「木」)和形聲(用於發音,如「晴」中的「青」)。漢朝的《說文解字》利用圖形化的部首來索引漢字,這一傳統一直沿用到今天。許多漢字由影象演化而來(如圖 1 所示),因此漢字的語素中編碼著豐富的語義資訊。
圖 1:許多漢字由影象演化而來(圖源:維基百科)
分散式表徵(Mikolov et al., 2013; Pennington et al., 2014)的出現為表徵文字語義提供了一種簡潔的方式,並已廣泛應用於中文自然語言處理。主流深度學習演算法大多使用詞或字元作為基礎語義單元(Zheng et al., 2013; Chen et al., 2015b,a; Xu et al., 2016; Cai and Zhao, 2016),在詞/字元層面學習嵌入表徵。然而字形表徵(Glyph representation)卻很少被使用到。
很明顯,考慮漢語圖形資訊應該有助於語義建模。最近的研究間接地支援這一點:偏旁部首被證明在許多語言理解任務中有用(Shi et al., 2015; Li et al., 2015b; Yin et al., 2016; Sun et al., 2014; Shao et al., 2017)。研究表明,使用五筆編碼技術可以提高中英機器翻譯的效能(Tan et al., 2018)。雖然部首和五筆表徵一定程度上編碼了一些關於字元結構的資訊,有助於構建更好的字元表徵,但部首和五筆表徵都是用 ID 編碼的,因此無法觸及更深的漢語圖形資訊。
近年來,一些研究者嘗試在字元的視覺特徵上應用基於 CNN 的演算法。不幸的是,他們的研究沒有實現持續的效能提升(Liu et al., 2017; Zhang and LeCun, 2017),一些研究甚至得出了負面結果(Dai and Cai, 2017)。例如,Dai 和 Cai(2017)在漢字影象上執行 CNN 來獲取漢字表徵,然後在下游的語言建模任務中使用這些表徵。他們發現,字形的加入實際上降低了效能,基於 CNN 的表徵無法為語言建模提供額外的有用資訊。Liu 等人(2017)和 Zhang、LeCun(2017)在文字分類任務上利用相似的策略測試了這一思路,結果模型效能只在非常有限的幾種情況下有所提升。
研究者認為之前基於 CNN 的模型 (Dai and Cai, 2017) 得到消極結果的原因如下:1)未使用正確的文字版本:漢字系統經過了很長的進化過程,如圖 2 所示。最著名的版本包括甲骨文(公元前 2000 年 - 公元前 300 年)、隸書(公元前 200 年 - 公元 200 年)、篆書(公元前 100 年 - 公元 420 年)、魏碑(公元 420 年 - 公元 588 年)等。這一文字進化過程是遵循特定模式的。最初的漢字易於繪製,然後逐漸轉變成容易書寫。此外,漢字的象形性、具象性逐漸弱化。
目前最廣泛使用的漢字版本是簡體中文,這種字型易於書寫,但不可避免地丟失了大部分象形資訊。這導致了僅使用簡體中文訓練的模型效能不好。2)未使用合適的 CNN 結構:與大小為 800*600 的 ImageNet 影象不同,漢字影象的大小要小得多(通常是 12*12)。這就需要不同的 CNN 架構來捕捉字元影象的區域性圖資訊。3)之前的研究未使用調節函式(regulatory function):與包含數千萬資料點的 ImageNet影象分類任務不同,漢字僅有約一萬個。因此輔助訓練目標對防止過擬合、提升模型泛化能力非常關鍵。本研究使用影象分類作為輔助訓練目標。
圖 2:漢字的進化過程(圖來自網路)。
在本文中,研究者提出了 Glyce,一種漢字表徵字形向量。他們將漢字當作影象,並使用 CNN 來獲取它們的表徵。作者使用以下技術解決了上面提到的問題:
-
研使用歷史漢字和當代漢字(如青銅器銘文、隸書、篆書和繁體中文等)以及不同的書寫風格(如草書)來豐富字元影象的象形資訊。
-
研究者使用了 Tianzige-CNN (田字格) 架構,該架構專為中文象形字元建模而設計。
-
通過新增影象分類損失函式,研究者利用多工學習方法增強了模型的泛化能力。
論文:Glyce: Glyph-vectors for Chinese Character Representations
論文地址:https://arxiv.org/abs/1901.10125
摘要:直觀上來看,針對中文等語素文字的 NLP 任務應該受益於這些語言中的字形資訊。然而,由於字形中缺乏豐富的象形資訊,以及標準計算機視覺模型在字元資料上的泛化能力較差,現在還未找到有效利用字形資訊的方法。
本文提出了漢字表徵字形向量 Glyce,填補了這一空白。本文有三大創新:1)使用了古代漢字(如青銅器銘文、篆文、繁體中文等)來豐富文字中的象形證據;2)設計了適合漢字影象處理的 CNN 架構;3)將影象分類作為多工學習設定中的輔助任務,以提高模型的泛化能力。
我們首次展示了基於字形的模型能夠在很多中文 NLP 任務中持續超過基於單詞/字元 ID 的模型。通過 Glyce,我們在 13 個(幾乎所有)中文 NLP 任務上達到了當前最佳效能,包括字元級語言建模、詞級語言建模、中文分詞、命名實體識別、詞性標註、依存句法分析、語義角色標註、句子語義相似度、句子意圖識別、中英機器翻譯、情感分析、文件分類和語篇分析任務。
3 Glyce
3.1 使用歷史漢字
表 1:Glyce 使用的歷史漢字和書寫風格。
3.2 Glyce 的 Tianzige-CNN 架構
圖 3:Glyce 的 CNN 架構。
表 2:Glyce 中的 tianzige-CNN 架構。
圖 4:如圖所示,田字格是 2 × 2 的結構,其模式表明漢字偏旁部首的排列以及漢字的書寫筆畫。
圖 6:組卷積機制。
圖 5:Glyce 字元嵌入和詞嵌入概覽。
4 實驗結果
該研究在語言建模、命名實體識別、詞性標註等 13 個任務上對 Glyce 的效能進行了測試,並與其它模型做了對比。
4.1 任務 1:字元級語言建模
表 3:字元語言建模任務結果。
4.2 任務 2:詞級語言建模
表 4:詞級語言建模的 ppl。
4.3 任務 3:命名實體識別
4.4 任務 4:中文分詞
4.5 任務 5:詞性標註
4.6 任務 6:依存句法分析
4.7 任務 7:語義角色標註
4.8 任務 8:句子語義相似度
4.9 任務 9:意圖識別
4.10 任務 10:中英機器翻譯
4.11 任務 11:情感分析
4.12 任務 12:文件分類
4.13 任務 13:語篇分析