近三千字肝貨!騰訊中文糾錯模型 PLOME 論文詳解!簡單易懂包學包會!

語言: CN / TW / HK

本文主要介紹騰訊 AI Platform Department 發表的一篇關於中文糾錯模型的論文,收錄在第 2021 年 ACL ,論文地址:https://aclanthology.org/2021.acl-long.233.pdf

功能

PLOME 是為中文拼寫糾正(CSC) 任務設計的,旨在檢測和糾正中文文字中的拼寫錯誤。

摘要

  • 本文為中文拼寫糾正 (CSC) 提出了一種帶有拼寫錯誤知識的預訓練掩碼語言模型 PLOME ,可以在與訓練期間學習語義和拼寫錯誤知識
  • PLOME 根據混淆集用相似的字元遮蔽所選的標記,而不是像 BERT 那樣使用固定標記 “[MASK]”
  • 除了字元預測,PLOME 還引入了字元的發音和筆畫作為輸入,通過恢復掩碼位置的真實字元和語音來學習字元和語音級別的拼寫錯誤知識
  • PLOME 利用 GRU 網路對語音和筆畫進行建模

貢獻

  • 本文方法相對於最先進的方法取得了顯著的優勢
  • 釋出原始碼和預訓練模型供社群使用: https://github.com/liushulinle/PLOME
  • PLOME 是第一個專為中文拼寫糾正而設計的特定任務語言模型,且是第一個在字元和語音級別上對該任務進行建模的
  • PLOME 引入了拼音和筆畫,這使它能夠對任意字元之間的相似性進行建模

模型框架

下面是 PLOME 的主要框架圖。

The framework of the proposed PLOME.png

Confusion Set based Masking Strategy

PLOME 只遮蓋輸入的 15% 的 token ,它不像 BERT 只是用 MASK 進行遮蓋,而是對遮蓋的 token 執行四種可能的不同的變化,具體例子看下圖案例:

  • 60% 的可能變成語音相似字元
  • 15% 的可能變成視覺相似字元
  • 15% 的可能不變
  • 10% 的可能從詞表中隨機選取一個

Embedding Layer

通過看上面的框架圖知道每個字元的最終嵌入是 character embedding 、position embedding 、phonic embedding 和 shape embedding 的總和,前兩者是通過查詢表獲得的,其中詞表大小和嵌入維度與 BERTbase 中的相同。

在本文中,使用 Unihan Database3 來獲取漢字-拼音對映(沒有音調),將每個字的拼音字母輸入到 1 層 GRU 網路以生成 Phonic Embedding ,期望相似的拼音有相似的嵌入。下圖中間部分給出了一個示例。

phonic GRU network and shape GRU network.png

使用 Stroke Order4 來表示一個漢字筆畫序列。在本文中,筆畫資料是通過 Chaizi Database5 獲得的。為了建模字元之間的視覺關係,將每個漢字的筆畫順序輸入另一個 1 層 GRU 網路以生成 Shape Embedding ,在上圖的底部給出了一個示例。

Transformer Encoder

PLOME 中用到的 Transformer 的架構與 BERTbase 中的架構相同。 共有 12 層 ,每層隱單元大小為 768 ,注意力頭數為 12 。

Output Layer

PLMOE 對每個選定的字元進行兩部分內容預測:

  • Character Prediction: 與 BERT 類似,PLOME 根據最後一個 Transformer 層生成的嵌入來預測每個掩碼標記的原始字元

  • Pronunciation Prediction:語音錯誤在漢語拼寫錯誤中占主導地位。大約 80% 的拼寫錯誤是語音錯誤。為了在語音層面學習拼寫錯誤的知識,PLOME 還預測每個掩碼標記的真實發音,其中發音由拼音呈現,沒有音調。

Learning

上面預測有兩部分,模型的學習過程自然也是有兩部分目標驅動的,分別是 Character Prediction 和 Pronunciation Prediction 。 其中 Lc 是字元預測的目標,li 是 xi 的真實字元,Lp 是發音預測的目標,ri 是真實拼音。

總體目標定義為:

Fine-tuning Procedure

PLOME 是為 CSC 任務設計的,旨在檢測和糾正中文文字中的拼寫錯誤。形式上,給定由 n 個字元組成的字元序列 X = {x1, x2, ..., xn},該模型預期生成目標序列 Y = {y1, y2, ..., yn},其中的錯誤能得到糾正。

Training:學習目標與預訓練過程中的完全相同。此過程類似於預訓練,不同之處在於: (1) 混淆集掩碼策略被去掉了 ;(2)所有輸入字元都需要預測,而不是像預訓練那樣只選擇 token 。

Inference:由於 PLOME 預訓練時候預測每個遮蔽 token 的字元分佈和發音分佈,因此構建了聯合分佈為:

其中 pj (yi = j |X ) 是結合字元和發音預測,將 xi 的原始字元預測為第 j 個字元的概率,pc 和 pp 在等式 1 和等式 2 中分別定義,jp是第 j 個字元的發音。為此構建了一個指標矩陣 I∈Rnc×np,其中如果第 i 個字元的發音是第 j 個拼音,則 Ii,j 設定為 1 ,否則設定為 0 。那麼聯合分佈可以是計算方式:

使用聯合概率作為預測分佈。對於每個輸入的 token ,選擇聯合概率最高的字元作為最終輸出。聯合分佈同時考慮了字元和發音預測,因此更準確。

實驗

Pre-training

Dataset:使用 wiki2019zh6 作為預訓練語料庫,它由 100 萬個中文維基百科頁面組成。 此外還有 300 萬篇新聞文章。 將這些頁面和文章拆分成句子,總共獲得了 1.621 億個句子。 然後連線連續的句子以獲得最多 510 個字元的文字片段,用作訓練樣例。

Parameter Settings:略

Fine-tuning

Dataset:訓練資料由來自 2013 年、2014 年、2015 年的 SIGHAN 資料集構成 10K 手動註釋樣本和 271K 自動生成的樣本組成。

Evaluation Data:使用最新的 SIGHAN 測試資料集來評估所提出的模型,該模型包含 1100 篇文字和 461 種錯誤型別。

Evaluation Metrics:使用最常見的準確率、召回率和 F1 分數作為評估指標。

Parameter Settings :略

Main Results

從上面的測試結果表中,可以得到以下一些結論:

  • 在沒有微調的情況下,中間組中的預訓練模型取得了較好的結果,甚至以顯著的收益優於監督方法 PN 。這表明基於混淆集的遮蔽策略使模型能夠在預訓練期間學習特定於任務的知識。
  • cBERT-finetune 在所有指標上都優於 BERT-finetune,這表明所提出的掩碼策略提供了必要的知識,並且無法通過微調來學習。
  • 結合語音和形狀嵌入,PLOME-Finetune 在句子級檢測和糾正方面的絕對改進超過 cBERT-Finetune 2.3% 和 2.8%。這表明字元的拼音和筆畫提供了有用的資訊,並且很難從混淆集中學習。
  • SpellGCN 和本文方法使用的相同混淆集。 但採用不同的策略來學習其中包含的知識。 SpellGCN 構建了一個 GCN 網路來對這些資訊進行建模,而 PLOME 在預訓練期間從大規模資料中學習它。 PLOME 在所有指標上都取得了更好的效能,這表明本文方法更有效地對此類知識進行建模。

  • 從上面的圖,使用整個測試集和 SIGHAN 進行比較, PLOME 在所有指標上幾乎始終優於 BERT 和 SpellGCN。
  • 另外還在 SIGHAN13 和 SIGHAN14 上評估了所提出的模型, PLOME 始終優於所有比較模型。

Effects of Prediction Strategy

PLOME 預測每個字元的三個分佈:字元分佈 pc、發音分佈 pp 和聯合分佈 pj。後兩個分佈與發音預測有關,CSC 任務需要字元預測,因此只比較字元預測 pc 和聯合預測 pj 的效果。

從實驗中觀察到聯合分佈在所有評估指標上都優於字元分佈。尤其是精度分數的差距更加明顯。聯合分佈同時考慮了字元和發音預測,因此預測結果更加準確。

Effects of Initialization Strategy

一般來說,初始化策略對深度模型的效能有很大影響。本文基於 cBERT 和 PLOME 實現了四個基線。從實驗中觀察到用 BERT 初始化的 cBERT 和 PLOME 都獲得了更好的效能。特別是所有評估的召回分數都有顯著提高。本文認為以下兩個原因可以解釋這種現象。 1) BERT 中豐富的語義資訊可以有效提高泛化能力。 2)PLOME 由兩個 1 層 GRU 網路和一個 12 層 transformer 編碼器組成,總共包含超過 110M 的引數。從頭開始訓練如此大規模的模型時,很容易陷入區域性優化。

Phonic/Shape Embedding Visualization

通過 GRU 網路為每個字元生成語音和形狀嵌入,然後將它們視覺化。根據 GRU 網路生成的 768 維嵌入的餘弦相似度說明了最接近“錠”的 30 個字元,該相似度通過 t-SNE 進行視覺化。 一方面,幾乎所有的“錠”、“綻放”等類似“錠”的漢字都比較接近。 另一方面,彼此相似的字元彼此非常接近。 這些現象表明學習的形狀嵌入很好地模擬了形狀相似性。 另外圖中還顯示了和 “ding” 相似的拼音都聚集在一塊的情況。

The visualization of shape embeddings..png

The visualization of phonicemb eddings..png

Converging Speed of Various Models

由於基於混淆集的掩蔽策略,cBERT 和 PLOME 在預訓練過程中學習了特定於任務的知識,因此它們在訓練開始時取得了比 BERT 更好的效能。 此外,本文所提出的模型需要更少的訓練步驟來實現相對較好的效能。 PLOME 只需要 7k 步就可以達到 80% 的分數,而 BERT 需要 47k 步。

Thetestcurvesforcharacter-leveldetection metrics of various models in the fine-tuning procedure.png

尾記

  • 本文撰寫不易,轉載標明出處
  • 希望各位同學能學到知識,如果能點贊支援一下當然就更加完美🙏
  • 歡迎評論區交流討論