段建勇 袁陽 王昊
基于Transformer局部信息及語法增強架構的中文拼寫糾錯方法
段建勇 袁陽 王昊?
北方工業(yè)大學信息學院, 北京 100043; ?通信作者, E-mail: wanghaomails@gmail.com
針對中文拼寫糾錯, 提出兩種新的改進方法。其一, 在 Transformer 注意力機制的基礎上, 添加高斯分布的偏置矩陣, 用于提高模型對局部文本的關注程度, 加強對錯誤文本中錯誤字詞和周邊文字的信息提取。其二, 使用 ON_LSTM 模型, 對錯誤文本表現(xiàn)出的特殊語法結構特征進行語法信息提取。實驗結果表明, 所提出的兩種方法均能有效提高準確率和召回率, 并且, 將兩種方法融合后的模型取得最高 F1 值。
拼寫糾錯; Transformer模型; 局部信息; 語法增強
在文字編寫、內容審核以及文本識別等多個場景中, 經常出現(xiàn)兩種文本錯誤。比如, 由 OCR 的錯誤識別或“五筆”輸入法的錯誤輸入導致的同形字錯誤; 或者, 在拼音輸入法下, 由錯誤拼寫導致的同音字錯誤。拼寫糾錯任務用于檢測并糾正文本中出現(xiàn)的錯誤, 可以在很大程度上解決上述兩類文本錯誤問題。然而, 目前關于中文糾錯的研究較少, 缺少有效的通用方法。
拼寫糾錯是自然語言處理(natural language processing, NLP)領域的一個重要任務。在 20 世紀60 年代, 已經有學者對英文糾錯展開研究, 其中比較著名的是 1960 年 IBM 在 IBM/360 和 IBM/370 上, 用 UNIX 實現(xiàn)的一個 TYPO 英文拼寫檢查器[1]。此后, 文本糾錯任務研究取得長足的進展, 涌現(xiàn)很多優(yōu)秀的算法模型。
糾錯任務需要有監(jiān)督的語料進行模型訓練, 這種局限性往往導致在訓練過程中沒有充足的文本糾錯語料可用。N-gram 模型很好地解決了這一弊端, 可利用大量無監(jiān)督的語料來訓練統(tǒng)計語言模型[2]。N-gram 是最簡單、最常用的模型, 但該模型在使用困惑集對文本內部的字符進行替換時, 沒有考慮上下文的語義信息, 經常造成雖然臨近詞正確, 但放在整個句子中卻不符合邏輯的情況, 導致結果得分不高。
隨著機器學習的逐漸興起, 越來越多的學者把深度學習的方法運用到糾錯任務中。一般將糾錯任務當作文本生成任務, 此場景下應用最廣泛的結構就是序列到序列結構(Seq2Seq)。比較常用的是基于 LSTM 的 Seq2Seq 模型[3]和 Transformer 模型[4], 這兩種模型巧妙地將錯誤句子作為輸入語句, 將正確的語句作為輸出語句進行訓練, 得到錯誤文本與正確文本之間的對應關系, 從而實現(xiàn)文本糾錯。深度學習的優(yōu)點在于, 模型可以學習到文本的深層信息, 加強對文本語義的理解, 也加深對文本結構的學習, 對獲取推薦修改選項有更好的幫助。
可以將拼寫糾錯任務視為由錯誤句子產生正確句子的生成任務。在目前常用的生成模型中, RNN模型[3]在多數(shù)的生成任務中表現(xiàn)出色, 在文本生成和機器翻譯等領域獲得廣泛的應用。但是, 經典的RNN 模型在處理長距離文本時, 容易出現(xiàn)梯度消失和梯度爆炸的問題, 所以本文采用 Transformer 模型[4], 對中文文本中的同音和同形字錯誤進行糾錯處理。
在文本糾錯過程中, 應注意以下兩個方面。1)與英文不同, 中文文本字符之間沒有空格, 且部分字符需要與另外的字符結合才具有一定的意義, 所以在處理中文文本時, 一般需要先對中文進行分詞, 將文本拆分成字或詞, 從而形成一個獨立的單位。2)中文中沒有“字錯誤”這種說法, 也就是說, 錯誤只會在詞或句子級別產生。因此, 錯誤字符以及錯誤字符周邊的信息是需要重點關注的內容, Yang等[5]提出一種關注局部信息的方法, 將局部性建模設計為一種可學習的高斯偏差。本文采用上述方法, 在局部范圍內加強對錯誤文本特征的提取以及對錯誤規(guī)律的發(fā)現(xiàn)能力。
拼寫糾錯模型以生成模型為最常見[3–4,6], 訓練數(shù)據(jù)為原語句與目標語句構成的語對, 原語句編碼后, 解碼生成目標語句。在糾錯任務中, 原語句與目標語句之間可能只有一個或幾個字符有所不同, 在整個語句中的字符數(shù)量占比很小, 模型訓練往往達不到很好的效果。Wang 等[7]通過構造大量的訓練數(shù)據(jù), 使該問題得到緩解。另外, 由于錯誤字符占比小, 使得原語句與目標語句之間的文本編輯距離很小, 但仍有可能導致原語句與目標語句相比, 在語法結構上發(fā)生較大的變化。針對此問題, 本文在原始模型的基礎上, 采用 Shen 等[8]提出的 ON_ LSTM 方法, 對 LSTM 結構進行修改, 使其能夠考慮到語句的語法結構對糾錯效果的影響, 同時將ON_LSTM 模型作為 Transformer 模型的輸入層, 幫助模型學習語句的語法結構。
Transformer的核心是使用自注意力機制, 該機制因高效的并行性及長距離信息依賴性, 在機器翻譯、文本生成和對話系統(tǒng)等領域有重要的作用, 獲得廣泛的關注。該模型擺脫了傳統(tǒng)RNN 模型長距離信息利用不充分、梯度消失和梯度爆炸的問題, 已應用于各種 NLP 任務中。
給定句子={1,2, …,I}, 經過詞向量層及位置編碼層后, 由 3 個權重矩陣分別生成 query∈ R(I×d), key∈R(I×d)和 value∈R(I×d)。每一層的注意力結果可以通過下式計算:
Content=ATT(,), (1)
其中, ATT(.)是點乘計算公式:
ATT(,)=softmax (scores), (2)
實際上, 糾錯任務的特殊性在于錯誤文本與正確文本之間的差別很小, 而模型關注的范圍過于寬泛, 所以模型的重點關注范圍是錯誤文本周邊一定范圍內的字符, 提取錯誤字符特征, 加強模型對糾錯任務的適應能力。
本文采用Yang等[5]局部模型的思想, 在自注意力得分的基礎上, 添加一個類似高斯分布的二次函數(shù)偏置項, 用于減少對非錯誤部分的關注。如圖1所示, 在原始分布的基礎上添加以錯誤字符“柏”為中心的高斯分布, 使模型能夠加強對該字符以及周邊字符的注意力, 并且該高斯分布的參數(shù)是可訓練的。共有兩種分布模式: 高斯分布和強化的高斯分布。這兩種分布模式都重點關注錯誤部分的信息, 區(qū)別在于強化的高斯分布減少了對錯誤點的預測, 增加對周邊信息的關注, 以便提高模型的召回率。
計算注意力得分后, 將偏置加入得分中, 用于掩蓋自注意力的部分得分:
圖1 兩種不同的高斯分布
ATT(,)=softmax (scores+), (4)
其中, scores 由式(3)計算得到,是添加的偏置項, 計算方法如下:
參數(shù)將標量p和z投影到 0 到句子長度之間,P依賴p和z分別進行計算。值得注意的是, Anastaso-poulos 等[9]提出 Transformer 在不同的文本層中編碼信息是有所區(qū)別的, 在較低的層, 模型對主要文本的語法結構編碼, 而在高層, 模型對語義信息編碼。為了加強模型對文本底層的結構信息編碼, 僅在編碼端和解碼端的第一層使用該方法, 在其他層中, 編碼方式與常規(guī)的自注意力保持一致??紤]到如果在所有的編碼層中全部進行計算, 運行時間會變長, 故模型只在編碼端和解碼端的最底層添加偏置, 以期在效率上達到平衡。
1.2.1 中心位置預測
通過一層前線傳播神經網(wǎng)絡, 將 query 矩陣轉化為位置隱藏狀態(tài)矩陣, 然后通過線性投影p∈R, 將隱藏狀態(tài)矩陣映射到標量p:
p=pTtanh (p), (7)
其中,p∈R×是可訓練的模型參數(shù)。
1.2.2 查詢窗口
查詢窗口z的計算方法如下:
z=dTtanh (p), (8)
其中,d∈d是可訓練的線性投影參數(shù)矩陣, 式(7)和(8)共享同一參數(shù)p, 這樣可以簡化運算, 同時用不同的d和p來計算窗口范圍及中心點位置。
在計算注意力得分時, 通常需要對周邊信息更多的關注, 并減少對本身信息的關注。所以, 本文對 LF 模型進行改進, 在式(5)的基礎上添加偏置以及取絕對值的操作, 并設置為 0.1,為 0.1。計算方法如下:
與原始模型相比, 該模型減少了對本身及遠距離內容的關注, 并加強周邊范圍內容的計算, 讓模型學習更多錯誤的規(guī)律, 提升糾錯效果。
錯誤文字會在很大程度上導致語法結構被破壞。如圖 2 所示, 在例句“孩子喜歡拍皮球”中, 如果輸入時將“拍”錯誤輸入成“柏”, 可以明顯地看出錯誤句子的語法結構發(fā)生較大的變化。為了提取被破壞的語法結構信息, 本文采用 Chollampatt 等[6]中層級結構的 LSTM, 并稱之為 ON_LSTM。
模型的總體結構如圖 3 所示, 在 Transformer 結構外添加 ON_LSTM 層, 將其輸出結果與輸入信息相加后送入 Transformer 模型。在左側, 我們額外添加一層編碼層。在內部的自注意力部分, 添加高斯偏置, 增加對錯誤部分信息的獲取。最后, 將添加的編碼層及右側常規(guī)的 6 個 Transformer 編碼層的輸出信息進行融合, 送入解碼端進行解碼。不同于傳統(tǒng)的 LSTM 結構, ON_LSTM 結構在編碼過程中通過控制高層信息和低層信息的更新頻率來學習句子的語法結構。本文將 ON_LSTM 產生的結構信息與原文的文本信息相加, 最后將得到的信息送入 Tr-ansformer 的編碼層, 進行聯(lián)合編碼。這種結構類似Transformer 中編碼部分的殘差模塊, 意在加強數(shù)據(jù)的流通性, 減少在深層模型中梯度消失的問題。
圖2 因錯誤字引發(fā)的語法結構變化實例
圖3 模型的總體結構
訓練數(shù)據(jù)分為兩部分: 一部分是 Wang 等[7]提供的約 27 萬條糾錯數(shù)據(jù)集, 其中包括同音字和同形字錯誤; 另一部分來自文獻[10]。測試集同樣來自公開評測任務中提供的評測數(shù)據(jù)集, 具體信息如表 1 所示。由于數(shù)據(jù)全部是繁體中文, 為了適應簡體中文任務, 我們使用開源工具 OpenCC(https://git hub.com/BYVoid/OpenCC)將繁體中文轉化為簡體中文。
表1 實驗數(shù)據(jù)
本文采用準確率、召回率和 F1 值作為模型的評價指標, 這些指標通常用于 CSC(Chinese spell correction)任務中的評價。表 2 列出模型的主要參數(shù)以及對應的數(shù)值。
在糾錯任務中, Vaswani 等[4]提出的 Transfor-mer 效果超越傳統(tǒng)的統(tǒng)計模型和 RNN 模型(如混淆集約束下的指針生成網(wǎng)絡模型(Confusionset)[11]和基于 N-gram 的糾錯模型(LMC)[12]), 結果如表 3 所示。在應用于糾錯任務的 Transformer 模型中, 本文將 Wang 等[13]的方法作為基線模型。該模型采用transformer 結構, 并采用語法增強架構來提升模型效果, 我們稱之為 DR 模型。DR 模型在 Transfor-mer 的基礎上添加動態(tài)殘差結構, 不僅幫助模型獲取更加豐富的語義信息, 還可以有效地減少深層模型因模型過深導致的梯度消失問題。
表2 模型參數(shù)
表3 不同改進對模型性能的影響(%)
本文共進行 3 組實驗: 第一組對比不同模型的效果, 第二組驗證局部關注模型以及強化局部關注模型的有效性, 第三組證明 ON_LSTM 的語法結構信息可以明顯地提升模型的準確率和召回率等 指標。
對 Transformer 模型的改進如表 3 所示, 共有 3個獨立模型以及一個融合模型, DR 模型為基線模型。LF 模型和 ALF 模型在 Transformer 的自注意力結構中添加高斯偏置, 其 F1 值比基線模型分別提高 0.37%和 0.72%。ALF 模型的準確率比基線模型有明顯的提高, 并且 F1 值比 LF 模型提高 0.35%。
在 Transformer 模型中單獨添加 ON_LSTM 結構使模型的 F1 值提升 0.91%, 證明了該結構的有效性。為了將 Transformer 模型和 ON_LSTM 結構的優(yōu)勢有效地融合在一起, 采用如圖 3 所示的模型結構。值得注意的是, 融合實驗的前兩組(LF+ON_ LSTM 和 ALF+ON_LSTM)僅在編碼的自注意力部分添加 LF/ALF 結構, 而后兩組(LF(DS)+ON_ LSTM和 ALF(DS)+ON_LSTM)在編碼和解碼部分都采用LF/ALF 結構。從表 3 可以看出, 編碼與解碼同時采用 ALF 結構可以使模型達到最優(yōu)的效果。
如表 3 所示, 與 LF 模型相比, ALF 模型準確率的提升幅度比較大, 召回率略微下降, 但 F1 值提升 0.35%。原因是 ALF 模型減少了對錯誤字符本身的關注, 在錯誤字符與正確字符之間對應關系的計算方面被弱化, 但加強了對周邊范圍內字符信息的關注, 會促使模型加強對錯誤字符的檢測能力。模型訓練結果如圖 4 所示, ALF 模型在準確率提升幅度較大, 召回率與 LF 持平, F1 相對穩(wěn)定, 但高于LF 模型。為更好地對比 LF 模型與 ALF 模型的糾錯效果, 此部分實驗沒有添加如圖 3 所示的額外結構, 僅在 Transformer 編碼與解碼的第一層添加 LF 和ALF。
Transformer 模型中共有三部分使用注意力模塊, 本文分別在 Transformer 編碼端的自注意力部分、解碼端的前向注意力和自注意力部分添加 LF結構, 并進行多組實驗。從表 4 可以看出, 在編碼和解碼部分的自注意力模塊添加 LF 結構會使模型的 F1 值達到最高。
圖4 ALF 和 LF 模型的準確率、召回率和 F1 值
為探究式(9)中參數(shù)對 ALF 模型的影響, 分別設置=1, 2, 4, 0.1, 結果見表 5。以ES_DS_LF 作為參考, ALF 其他參數(shù)與 LF 保持一致, 則當=0.1 時, 模型的準確率最高, F1 值同樣達到最高。
從表 3 可以看出, 添加 X+ON_LSTM 結構模型的準確率有明顯的提升, 驗證了之前的猜想: 糾錯任務中, 語法結構是敏感的, 充分利用語法信息可以幫助模型提升準確率和召回率等指標。
為了驗證 LSTM 結構和 ON_LSTM 結構對整體模型的影響, 進行第三組實驗, 結果如表 6 所示。若直接將兩種結構的輸出結果傳入 Transformer 模型, 糾錯的準確率和召回率都有所下降, 但將兩種結構的輸出結果與輸入信息相加后再傳入Transfor-mer 模型, 糾錯效果有很大的提升, 準確率的提升尤為明顯。這是因為, 無論是 LSTM 層還是 ON_ LSTM 層輸出的信息直接傳入 Transformer, 都會導致極大的信息丟失, X+LSTM(X)/ON_LSTM(X)結構在輸入 Transformer 模型之前, 在輸入數(shù)據(jù)中獲取了文本的其他特征, 與原文的信息融合之后, 對模型起到助推作用。因此, 該結構是對 Transformer 的一種信息補充, 無論是 LSTM 的時序關系結構, 還是 ON_LSTM 的語法結構, 都能有效地提高 Trans-former 模型的糾錯效果, 而語法結構信息對 Trans-former 模型的糾錯效果幫助最大。
表4 LF模型添加位置對于模型的影響(%)
說明: ES, DS 和 DSR 分別代表編碼層自注意力、解碼層自注意力和解碼層中對編碼層的注意力。
表5 參數(shù)a對模型的影響(%)
表6 LSTM和ON_LSTM結構的對比(%)
在將不同模型進行融合的過程中, 我們發(fā)現(xiàn), 如果將 ON_LSTM 的結果直接輸入帶有高斯偏置的編碼層中, 最終得到的結果性能會下降。因此, 語法結構信息會對 LF/ALF 產生影響。為了解決這個問題, 本文將輸入的信息分為兩個部分, 一部分通過 ON_LSTM 層直接進入 Transformer 的編碼層, 另外一部分輸入信息則送入帶有高斯偏置的編碼層中, 并將兩部分結構的輸出結果相加后送入編碼層。實驗證明, 這種方式可以優(yōu)化模型結構, 加速收斂, 提升模型糾錯率。
Transformer 對由字錯誤或詞錯誤導致的句子的語法錯誤相對不敏感且糾錯不準確, 而本文模型對此類型錯誤糾的正表現(xiàn)較好, 并且錯誤糾正的范圍更大(圖 5)。
本文從兩個方面對 Transformer 模型進行改進。首先采用局部關注的思想, 在自注意力部分添加高斯分布偏置項, 用于提高模型對局部信息的關注, 然后針對拼寫糾錯任務的語法結構特點, 采用 ON_LSTM 結構, 加強模型對語法結構信息的獲取。實驗數(shù)據(jù)表明, 兩種方法都會幫助模型提高糾錯效果, 且二者的融合結構使模型提升更多。
圖5 Transformer以及本文模型在不同錯誤語句上的表現(xiàn)
中文拼寫糾錯是一個依賴知識的任務, 知識是文本信息構成的知識庫。在對錯誤字符進行處理時, 需要大量的先驗知識, 所以將來的工作就是構建文本知識庫, 用于輔助模型對錯誤文本進行檢測和修改。
[1] Kukich K. Techniques for automatically correcting words in text. ACM Computing Surveys, 1992, 24(4): 377–439
[2] Huang Q , Huang P , Zhang X , et al. Chinese spelling check system based on tri-gram model // Proceedings of The Third CIPS-SIGHAN Joint Conference on Chinese Language Processing. Wuhan, 2014: 173–178
[3] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks // Advances in Neural Information Processing Systems. Montreal, 2014: 3104–3112
[4] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need // Neural Information Processing Sys-tems. Red Hook, 2017: 5998–6008
[5] Yang B, Tu Z, Wong D F, et al. Modeling localness for self-attention networks // Empirical Methods in Natural Language Processing. Brussels, 2018: 4449–4458
[6] Chollampatt S, Ng H T. A multilayer convolutional encoder-decoder neural network for grammatical error correction [EB/OL]. (2018–01–26)[2020–05–01]. https: //arxiv.org/abs/1801.08831
[7] Wang D, Song Y, Li J, et al. A hybrid approach to automatic corpus generation for Chinese spelling check // Empirical Methods in natural language pro-cessing. Brussels, 2018: 2517–2527
[8] Shen Y, Tan S, Sordoni A, et al. Ordered neurons: integrating tree structures into recurrent neural net-works [EB/OL]. (2019–05–08)[2020–05–01]. https:// arxiv.org/abs/1810.09536
[9] Anastasopoulos A, Chiang D. Tied multitask learning for neural speech translation [EB/OL]. (2018–04–26) [2020–05–01]. https://arxiv.org/abs/1802.06655
[10] Tseng Y H , Lee L H , Chang L P , et al. Introduction to SIGHAN 2015 bake-off for Chinese spelling check // Proceedings of the 8th SIGHAN Workshop on Chinese Language Processing (SIGHAN’15). Beijing, 2015: 32–37
[11] Wang D, Tay Y, Zhong L, et al. Confusionset-guided pointer networks for Chinese spelling check // Mee-ting of the Association for Computational Linguistics. Florence, 2019: 5780–5785
[12] Xie W, Huang P, Zhang X, et al. Chinese spelling check system based on N-gram model // Proceedings of the Eighth SIGHAN Workshop on Chinese Language. Beijing, 2015: 128–136
[13] Wang Chencheng, Yang Liner, Wang Yingying, et al. 基于 Transformer 增強架構的中文語法糾錯方法. 中文信息學報, 2020, 34(6): 106–114
Chinese Spelling Correction Method Based on Transformer Local Information and Syntax Enhancement Architecture
DUAN Jianyong, YUAN Yang, WANG Hao?
School of Information Science and Technology, North China University of Technology, Beijing 100043; ?Corresponding author, E-mail: wanghaomails@gmail.com
Two new methods for improving Chinese spelling correction are proposed. The first one is to add Gaussian Bias matrices to the Transformer’s attention mechanism, which is used to improve the model’s attention to local text and to extract information from the wrong words and the surrounding text in the error text. Secondly, the ON_LSTM model is used to extract grammatical information on the special grammatical structure features exhibited by the error text. The experimental results show that both methods are effective in improving accuracy and recall, and the model after fusing the two methods achieves the highest F1 value.
spelling correction; Transformer model; local information; grammatical enhancement
10.13209/j.0479-8023.2020.081
2020–05–29;
2020–08–13
國家自然科學基金(61972003, 61672040)資助