Spelling Error Correction with Soft-Masked BERT
基于Soft-Masked BERT的拼寫糾錯(cuò)
Abstract
拼寫錯(cuò)誤糾正是一項(xiàng)重要而又具有挑戰(zhàn)性的任務(wù)拒啰,因?yàn)橐粋€(gè)令人滿意的解決方案本質(zhì)上需要人類水平的語言理解能力。在不失一般性的前提下徒河,本文考慮了漢語拼寫錯(cuò)誤校正問題。該任務(wù)的一種最先進(jìn)的方法是根據(jù)BERT(語言表示模型)從候選字符列表中選擇一個(gè)字符首装,在句子的每個(gè)位置進(jìn)行糾正(包括不糾正)擂仍。但是,由于BERT沒有足夠的能力檢測(cè)每個(gè)位置是否有錯(cuò)誤氏豌,因此該方法的準(zhǔn)確性可能是次優(yōu)的亿卤,這顯然是由于使用掩碼語言建模對(duì)其進(jìn)行預(yù)訓(xùn)練的方式造成的愤兵。在這項(xiàng)工作中,我們提出了一種新的神經(jīng)網(wǎng)絡(luò)來解決上述問題排吴,該網(wǎng)絡(luò)由基于BERT的錯(cuò)誤檢測(cè)網(wǎng)絡(luò)和錯(cuò)誤校正網(wǎng)絡(luò)組成秆乳,前者通過軟掩蔽技術(shù)與后者連接。我們使用“ Soft-Masked BERT”的方法是通用的,并且可以用于其他語言檢測(cè)校正問題屹堰。在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明肛冶,我們提出的方法的性能明顯優(yōu)于baseline,包括僅基于BERT的baseline扯键。
1 Introduction
拼寫錯(cuò)誤糾正是一項(xiàng)旨在糾正單詞和字符級(jí)別拼寫錯(cuò)誤的任務(wù)睦袖。常常被用在搜索(比如百度知道的你要找的是不是:xxx),光學(xué)字符識(shí)別(糾錯(cuò)后能提高準(zhǔn)確率)和論文得分荣刑。 ? 本篇論文考慮的是字符級(jí)別的中文拼寫錯(cuò)誤糾正馅笙。一個(gè)糾錯(cuò)實(shí)例如表1.
第一個(gè)例子中,“金子塔”改為“金子塔”需要人類的世界知識(shí)(world knowledge)厉亏。 ? 第二個(gè)例子中董习,“求勝欲”改為“求生欲”需要根據(jù)上下文來推理。 ? 總結(jié)了下過去的非BERT方法爱只,重點(diǎn)說了下用指針網(wǎng)絡(luò)那篇皿淋。 目前BERT用于CSC任務(wù)的方法:首先用大型未標(biāo)記數(shù)據(jù)集對(duì)字符級(jí)BERT進(jìn)行預(yù)訓(xùn)練,再使用標(biāo)記數(shù)據(jù)集微調(diào)恬试。標(biāo)記數(shù)據(jù)可以通過數(shù)據(jù)擴(kuò)充獲得窝趣,比如使用大的混淆集生成拼寫錯(cuò)誤。最后忘渔,使用該模型根據(jù)給定句子每個(gè)位置的候選列表獲取最可能出現(xiàn)的字符高帖。 ? 這種方法功能強(qiáng)大,因?yàn)锽ERT具有一定的獲取知識(shí)進(jìn)行理解的能力畦粮。 ? 不過作者進(jìn)行的實(shí)驗(yàn)證明,準(zhǔn)確性可以進(jìn)一步提高乖阵。一是模型的錯(cuò)誤檢測(cè)能力不夠高宣赔,檢測(cè)到錯(cuò)誤才能有更好的機(jī)會(huì)進(jìn)行糾正。假設(shè)這是因?yàn)镸LM模型進(jìn)行預(yù)訓(xùn)練導(dǎo)致的瞪浸,因?yàn)镸LM模型僅僅掩蓋了15%的字符儒将,因此僅僅學(xué)習(xí)了掩碼令牌的分布,并且傾向于選擇不進(jìn)行任何更改对蒲。 ? 為了解決這個(gè)問題钩蚊,作者提出了一種叫做SoftMasked-BERT的神經(jīng)網(wǎng)絡(luò),它包含兩個(gè)網(wǎng)絡(luò)蹈矮,基于BERT的檢測(cè)網(wǎng)絡(luò)和一個(gè)糾正網(wǎng)絡(luò)砰逻。 ? 矯正網(wǎng)絡(luò)使用的是類似于近似于BERT的方法。檢測(cè)網(wǎng)絡(luò)使用的是Bi-GRU網(wǎng)絡(luò)泛鸟,可以預(yù)測(cè)字符在每個(gè)位置出現(xiàn)錯(cuò)誤的可能性蝠咆,然后利于該概率對(duì)位置上的字符進(jìn)行軟掩膜。 ? 軟掩膜是對(duì)傳統(tǒng)掩膜的一種擴(kuò)展,當(dāng)錯(cuò)誤概率為1是刚操,兩者相同闸翅。 ? 軟掩膜后將每個(gè)位置的軟掩膜嵌入輸入到矯正網(wǎng)絡(luò)進(jìn)行矯正,這種方法可以在端到端聯(lián)合訓(xùn)練期間菊霜,迫使模型在檢測(cè)網(wǎng)絡(luò)的幫助下學(xué)習(xí)正確的上下文以進(jìn)行錯(cuò)誤糾正坚冀。 ? 然后進(jìn)行了實(shí)驗(yàn)證明了軟掩膜的有效性。
2 Our Approach
2.1 Problem and Motivation
CSC任務(wù)可以形式化為: 原序列:?鉴逞,目標(biāo)序列:? 兩個(gè)序列長(zhǎng)度相同(不處理刪除记某、插入錯(cuò)誤),X中的錯(cuò)誤字符在Y中被正確替換华蜒。 目前CSC任務(wù)的SOTA方法使用了BERT來完成辙纬。作者進(jìn)行的實(shí)驗(yàn)表明,如果指定錯(cuò)誤字符叭喜,該方法性能會(huì)提高贺拣。但是基于BERT的方法更加傾向于不做修正,作者認(rèn)為原因是因?yàn)樵贐ERT的預(yù)訓(xùn)練中捂蕴,只有15%的字符被掩膜用于預(yù)測(cè)譬涡,從而導(dǎo)致模型不具有足夠的錯(cuò)誤檢測(cè)能力。
2.2 Model
本文提出的Soft-Masked BERT的模型結(jié)構(gòu)如圖1所示啥辨。它由基于Bi-GRU的檢測(cè)網(wǎng)絡(luò)和基于BERT的糾正網(wǎng)絡(luò)組成涡匀,檢測(cè)網(wǎng)絡(luò)預(yù)測(cè)錯(cuò)誤概率,矯正網(wǎng)絡(luò)預(yù)測(cè)錯(cuò)誤矯正的概率溉知,他們之間通過軟掩膜來傳遞結(jié)果陨瘩。 這種方法首選為輸入句子中的每個(gè)字符創(chuàng)建輸入嵌入,將其輸入到檢測(cè)網(wǎng)絡(luò)中輸入每個(gè)字符嵌入的錯(cuò)誤概率级乍。之后舌劳,計(jì)算輸入嵌入和[mask]嵌入的加權(quán)綜合(錯(cuò)誤概率加權(quán))。計(jì)算出的嵌入以一種“軟”的方式掩蓋序列中可能的錯(cuò)誤玫荣,再將軟掩膜嵌入序列輸入到矯正網(wǎng)絡(luò)中輸出錯(cuò)誤矯正的概率甚淡。矯正網(wǎng)絡(luò)是BERT,最終層是所有字符的softmax函數(shù)組成捅厂。輸入嵌入和最后一層嵌入之間還存在著一些鏈接贯卦。
2.3 Detection network
檢測(cè)網(wǎng)絡(luò)是一個(gè)二進(jìn)制序列標(biāo)注模型,輸入為嵌入序列?其中?是字符?的嵌入焙贷,是字符嵌入撵割,位置嵌入和端嵌入的總和(BERT)。輸出是標(biāo)簽?的序列盈厘,其中?表示第i個(gè)字符的標(biāo)簽睁枕,1表示字符不正確,0表示字符正確。對(duì)于每個(gè)字符外遇,有一個(gè)概率?注簿,?越高,字符不正確可能性越大跳仿。 作者的檢測(cè)網(wǎng)絡(luò)為雙向GRU網(wǎng)絡(luò)诡渴,對(duì)于序列中的每個(gè)字符,錯(cuò)誤?的概率定義為:
其中菲语,?表示檢測(cè)網(wǎng)絡(luò)給出的條件概率妄辩,?表示sigmoid函數(shù),?表示Bi-GRU的隱藏狀態(tài)山上,?和?是模型的參數(shù)眼耀。 隱藏狀態(tài)被定義為:
其中?代表兩個(gè)方向串聯(lián)的GRU隱藏狀態(tài)。 軟掩膜等于以錯(cuò)誤概率為權(quán)重的輸入嵌入和掩膜嵌入的加權(quán)總和佩憾,軟掩膜的第i個(gè)字符的嵌入?為
其中哮伟,?是輸入嵌入,?是掩膜嵌入妄帘。如果錯(cuò)誤可能性很高楞黄,軟掩膜嵌入就接近于掩膜嵌入,否則接近于輸入嵌入抡驼。
2.4 Correction Network
矯正網(wǎng)絡(luò)是基于BERT的序列多分類標(biāo)記模型鬼廓。輸入時(shí)軟掩膜嵌入的序?,輸出時(shí)字符序列? BERT由12個(gè)相同的塊組成,以整個(gè)序列作為輸入致盟。每個(gè)block包含一個(gè)多頭部的self-attention操作碎税,隨后是一個(gè)前饋網(wǎng)絡(luò),定義為:
最后一層的隱藏狀態(tài)表示為? 對(duì)于序列的每個(gè)字符馏锡,糾錯(cuò)的概率定義為:? 其中蚣录,?表示表示在候選列表中將字符?校正為字符?的概率,softmax是softmax函數(shù)眷篇,?是隱藏狀態(tài),W和b是參數(shù)荔泳。隱藏狀態(tài)?通過與殘差連接的線性組合得到:? 其中?是最后一層的隱藏狀態(tài)蕉饼,?是字符?的輸入嵌入。矯正網(wǎng)絡(luò)的最后一層利用softmax函數(shù)玛歌,從候選列表中選擇概率最大的字符作為字符?的輸出昧港。
2.5 Learning
只要對(duì)BERT進(jìn)行預(yù)訓(xùn)練并給出原始序列-糾正序列這種序列對(duì)后,就可以實(shí)現(xiàn)端對(duì)端地軟掩膜BERT學(xué)習(xí)支子。訓(xùn)練對(duì)記為?创肥。 創(chuàng)建訓(xùn)練數(shù)據(jù)的一種方法是使用混淆集添加錯(cuò)誤。 學(xué)習(xí)過程通過優(yōu)化兩個(gè)目標(biāo)來驅(qū)動(dòng),這兩個(gè)目標(biāo)分別對(duì)應(yīng)錯(cuò)誤檢測(cè)和錯(cuò)誤矯正:
?是檢測(cè)網(wǎng)絡(luò)的訓(xùn)練目標(biāo)叹侄,?是矯正網(wǎng)絡(luò)訓(xùn)練的目標(biāo)巩搏。這兩個(gè)目標(biāo)線性組合一起成為總目標(biāo)。
3 Experimental Results
3.1 Datasets
基礎(chǔ)數(shù)據(jù)集使用了SIGHAN趾代。 除此之外贯底,在今日頭條上采集了新聞標(biāo)題,進(jìn)行了添加錯(cuò)誤撒强,錯(cuò)誤的概率比較高禽捆。三人進(jìn)行了五輪標(biāo)記,以仔細(xì)糾正標(biāo)題中的拼寫錯(cuò)誤飘哨。數(shù)據(jù)集包含15,730個(gè)文本胚想。共有5,423個(gè)包含錯(cuò)誤的文本,共3,441種類型芽隆。我們將數(shù)據(jù)分為測(cè)試集和開發(fā)集浊服,每個(gè)測(cè)試集包含7,865文本。 此外摆马,還有自動(dòng)生成的錯(cuò)誤數(shù)據(jù)臼闻,約500萬個(gè)新聞標(biāo)題。將文中15%的文本替換為其他字符囤采,其中80%是混淆集中的諧音字符述呐,20%隨機(jī)字符。
3.2 Baseline
NTOU:一種使用n-gram和規(guī)則的分類器的方法 NCUT-NTUT:詞向量和crf的方法 Hanspeller++:HMM蕉毯、過濾去和重排的方法 Hybrid:數(shù)據(jù)增強(qiáng)和BiLSTM Confusionset:seq2seq乓搬、指針網(wǎng)絡(luò)、復(fù)制機(jī)制 Faspell:seq2seq ,采用bert作為降噪自動(dòng)編碼和解碼器 BERTPretrain:預(yù)訓(xùn)練BERT BERT-Finetune:微調(diào)BERT
3.3 Experiment Setting
句子級(jí)別的準(zhǔn)確率代虾、精確率进肯、召回率、F1棉磨。
3.4 Main Result
3.5 Effect of Hyper Parameter
使用的訓(xùn)練數(shù)據(jù)越多江掩,性能就越高。還可以觀察到乘瓤,軟掩膜BERT始終優(yōu)于BERT-Finetune环形。
3.6 Ablation Study
3.7 Discussions
與BERT-Finetune相比,Soft-Masked BERT能夠更有效地使用全局上下文信息衙傀。通過軟掩蔽抬吟,可以識(shí)別可能的錯(cuò)誤,因此统抬,該模型可以更好地利用BERT的功能火本,不僅可以引用局部上下文危队,還可以引用全局上下文,從而對(duì)錯(cuò)誤進(jìn)行合理的推理钙畔。
4 Related Works
5 Conclusion
我們稱為軟掩膜BERT的模型由檢測(cè)網(wǎng)絡(luò)和基于BERT的校正網(wǎng)絡(luò)組成茫陆。檢測(cè)網(wǎng)絡(luò)識(shí)別給定句子中可能不正確的字符并對(duì)其進(jìn)行軟掩蓋。校正網(wǎng)絡(luò)以軟掩蔽字符為輸入刃鳄,并對(duì)字符進(jìn)行校正盅弛。軟掩膜技術(shù)是通用的,在其他檢測(cè)校正任務(wù)中可能很有用叔锐。在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明挪鹏,軟掩膜BERT明顯優(yōu)于僅使用BERT的最新方法。在將來的工作中愉烙,我們計(jì)劃將軟掩膜BERT擴(kuò)展到其他問題讨盒,例如語法錯(cuò)誤糾正,并探索實(shí)現(xiàn)檢測(cè)網(wǎng)絡(luò)的其他可能性步责。