硬肝三千字!位元組跳動發表的中文糾錯模型 Soft-Masked BERT 論文詳解

語言: CN / TW / HK

本文主要介紹的是由 ByteDance AI Lab 發表的一篇關於中文糾錯模型 Soft-Masked BERT 的論文,收錄於 2020 年 ACL 。論文地址:http://arxiv.org/pdf/2005.07421.pdf

中文拼寫錯誤糾正 (CSC)

給定 n 個字元的序列 X = (x1, x2, · · · , xn),目標是將其轉換為另一個相同長度的字元序列 Y =(y1,y2,...,yn),其中 X 不正確的字元被替換為正確的字元以獲得 Y 。該任務可以看作是一個序列標記問題,其中模型是一個對映函式 f : X → Y 。然而這項任務相對來說更容易,因為通常只需要替換幾個字元即可。

摘要

  • 提出了一種新的神經架構來解決中文拼寫錯誤糾正(CSC),被稱為 Soft-Masked BERT ,它由一個基於 Bi-GRU 的錯誤檢測網路和一個基於 BERT 的錯誤糾正網路組成,錯誤檢測網路用於預測字元在每個位置出錯的概率,然後利用該概率對該位置的字元嵌入進行 soft-masking 操作,然後將每個位置的 soft-masking 嵌入輸入到糾正網路中。
  • 本文提出的方法在端到端聯合訓練期間,可以使模型在檢測網路的幫助下學習正確的上下文以進行糾錯
  • soft-masking 是傳統 “hard-masking” 的擴充套件,當錯誤概率等於 1 時,前者退化為後者
  • 方法的效能明顯優於基於 BERT 在內的其他模型

貢獻

  • 針對 CSC 問題提出新的神經架構 Soft-Masked BERT
  • Soft-Masked BERT 有效性的驗證
  • 使用 SIGHAN 和 News Title 兩份資料集,Soft-Masked BERT 在準確度測量方面明顯優於兩個資料集上的其他比較模型

模型框架

Problem and Motivation

CSC 最先進的方法是基於 BERT 來完成任務。現在本文發現,如果能找出更多錯誤的字元,則可以進一步提高該方法的效能。一般來說,基於 BERT 的方法傾向於不進行更正,或只是複製原始字元。可能的解釋是,在 BERT 的預訓練中,只有 15% 的字元被遮蔽以進行預測,導致模型的學習不具備足夠的錯誤檢測能力。這促使我們設計一個新模型。

Model

本文提出了一種稱為 Soft-Masked BERT 的新型神經網路模型,如圖所示。Soft-Masked BERT 由基於 Bi-GRU 的檢測網路和基於 BERT 的校正網路組成。檢測網路預測錯誤的概率,糾正網路預測錯誤糾正的概率,而前者使用 soft masking 將其預測結果傳遞給後者。更具體地說:

  • 我們的方法首先為輸入句子中的每個字元建立一個嵌入,稱為輸入嵌入。
  • 將嵌入序列作為輸入,並使用檢測網路輸出字元序列的錯誤概率。
  • 以錯誤概率為權重,它計算 input embedding 和 [MASK] 嵌入的加權和。計算出的嵌入以一種軟方式掩蓋了序列中可能的錯誤。
  • 然後將軟掩碼嵌入序列作為輸入,並使用校正網路輸出糾錯概率,這是一個 BERT 模型
  • 最後一層由所有字元的 softmax 函式組成,輸入嵌入和最後一層的嵌入之間也存在殘差連線。

Detection Network

檢測網路是一個二分類模型,由經典的 Bi-GRU 實現。公式如下:

輸入是嵌入序列 E = (e1, e2, · · · , en),其中 ei 表示字元 xi 的embedding ,是 word embedding 、position embedding 和 segment embedding 的總和。輸出是一個標籤序列 G = (g1, g2 , ... , gn),其中 gi 表示第 i 個字元的標籤,1 表示字元不正確,0 表示正確。對於每個字元,都有一個概率 pi 表示其為 1 的可能性。pi 越高,該字元錯誤的可能性越大。

軟掩碼相當於以錯誤概率作為權重,輸入嵌入和的掩碼嵌入的加權總和。如果出錯概率高,則 soft-masked embedding e′i 接近 mask embedding emask ;否則它接近輸入嵌入 ei 。第 i 個字元的 soft-masked embedding e′i ,公式如下:

其中 ei 是輸入嵌入,emask 是掩碼嵌入。

Correction Network

校正網路是基於 BERT 的順序多分類模型。輸入是 soft-masked 嵌入序列 E' = (e'1, e'2, · · · , e'n) ,輸出是字元序列 Y =(y1, y2, ... , yn) 。

BERT 由 12 個相同塊組成,將整個序列作為輸入。每個塊包含一個多頭自注意力操作,然後跟一個前饋神經網路。

將 BERT 最後一層的隱狀態序列表示為 Hc = (hc1,hc2,··· ,hcn) ,對於序列的每個字元,錯誤修正的概率定義為:

其中 Pc(yi = j | X) 表示字元 xi 被更正為候選列表中字元 j 的條件概率,softmax 是 softmax 函式,從候選列表中選擇概率最大的字元作為字元 xi 的輸出,h′i 表示隱藏狀態,公式為:

其中 hci 是最後一層的隱藏狀態,ei 是字元 xi 的輸入嵌入。

Learning

Soft-Masked BERT 的學習是端到端進行的,前提是對 BERT 進行了預訓練,並給出了由原始序列和校正序列對組成的訓練資料,表示為 = {(X1,Y1),(X2 ,Y2),...,(XN,YN)}。 建立訓練資料的一種方法是在給定一個沒有錯誤的序列 Yi,使用混淆表重複生成包含錯誤的序列 Xi

學習過程由優化兩個目標驅動,分別對應於錯誤檢測和錯誤糾正。

其中 Ld 是檢測網路的訓練目標,Lc 是校正網路的訓練目標。 這兩個函式線性組合為學習的總體目標。

實驗

Datasets

本文使用了包含 1100 個文字和 461 種錯誤型別的 SIGHAN 資料集,按照標準分成訓練集、開發集和測試集。

另外為測試和開發建立了一個更大的資料集,稱為 News Title ,該資料集包含 15730 個文字,有 5423 篇文字包含錯誤,分為 3,441 種類型。我們將資料分為測試集和開發集,每個包含 7,865 個文字。

此外,遵循 CSC 中的常見做法來自動生成用於訓練的資料集,抓取了大約 500 萬條新聞標題,我們還建立了一個混淆表,其中每個字元都與一些作為潛在錯誤的同音字符相關聯。接下來,我們將文字中 15% 的字元隨機替換為其他字元來人為地產生錯誤,其中 80% 是混淆表中的同音字符,其中 20% 是隨機字元。這是因為在實踐中,人們使用基於拼音的輸入法,大約 80% 的中文拼寫錯誤是同音字。

Experiment Setting

使用了句子級別的準確率、準確率、召回率和 F1 分數作為評估標準

實驗中使用的預訓練 BERT 模型是 http://github.com/huggingface/transformers 提供的模型。在BERT的微調中,我們保留了預設的超引數,只使用 Adam 微調了引數。為了減少訓練技巧的影響,我們沒有使用動態學習率策略並在微調中保持學習率 2e-5。 Bi-GRU 中隱藏單元的大小為 256,所有模型使用的批大小為 320。

在 SIGHAN 上的實驗中,對於所有基於 BERT 的模型,我們首先用 500 萬個訓練樣本對模型進行微調,然後在 SIGHAN 中繼續對訓練樣本進行微調。我們刪除了訓練資料中沒有變化的文字以提高效率。

在 News Title 的實驗中,模型僅使用 500 萬個訓練示例進行了微調。

SIGHAN 和 News Title 的開發集用於的超引數調整。為每個資料集選擇了超引數 λ 的最佳值。

Main Results

表中展示了所有方法在兩個測試資料集上的實驗結果。從表中可以看出,所提出的模型 Soft-Masked BERT 在兩個資料集上都明顯優於基線方法。

Soft-Masked BERT、BERT-Finetune 和 FASPell 的三種方法的效能優於其他基線,而 BERT-Pretrain 的方法效能相當差。結果表明,沒有微調(即 BERT-Pretrain)的 BERT 不起作用,而經過微調(即 BERT-Finetune 等)的 BERT 可以顯著提高效能。在這裡我們看到了 BERT 的另一個成功應用,它可以獲得一定量的語言理解知識。此外,Soft-Masked BERT 可以在兩個資料集上大幅擊敗 BERT-Finetune。結果表明,錯誤檢測對於在 CSC 中使用 BERT 很重要,soft masking 確實是一種有效的手段。

Effect of Hyper Parameter

表中展示了 Soft-Masked BERT 在 News Title 的測試資料上的結果,以說明引數和資料大小的影響。

顯示了 Soft-Masked BERT 以及 BERT-Finetune 使用不同大小的訓練資料學習的結果。 可以發現,對於 Soft-Masked BERT,表明使用的訓練資料越多,可以實現的效能越高。 還可以觀察到 Soft-Masked BERT 始終優於 BERT-Finetune。

Impact of Different Values of λ.png

更大的 λ 值意味著更高的糾錯權重。 錯誤檢測比糾錯更容易,因為本質上前者是一個二分類問題,而後者是一個多類分類問題。 經過實驗發現當 λ 為 0.8 時,獲得最高的 F1 分數,這意味著達到了檢測和校正之間的良好折衷。

Ablation Study

我們在兩個資料集上對 Soft-Masked BERT 進行了消融研究。論文中只給出了在 News Title 的測試結果,因為 SIGHAN 的結果類似。

Soft-Masked BERT Ablation Study.png

在 Soft-Masked BERT-R 中,模型中的殘差連線被刪除。在 Hard-Masked BERT 中,如果檢測網路給出的錯誤概率超過閾值,則當前字元的嵌入設定為 [MASK] 令牌的嵌入,否則嵌入保持不變。在 Rand-Masked BERT 中,錯誤概率隨機化為 0 到 1 之間的值。研究發現 Soft-Masked BERT 的所有主要元件都是實現高效能所必需的。

本文還嘗試了 BERT-Finetune+Force 模型的效能可以看作是一個上限。在該方法中,我們讓 BERT-Finetune 只在有錯誤的位置進行預測,並從候選列表的其餘字元中選擇一個字元。結果表明,Soft-Masked BERT 比 BERT-Finetune+Force 效能較差,仍有很大的改進空間。