1 簡(jiǎn)介
在之前的篇章我們對(duì)中文文本糾錯(cuò)做了一個(gè)系統(tǒng)的介紹,曾經(jīng)盛行的糾錯(cuò)系統(tǒng)都是基于混淆集+n-gram語(yǔ)言模型的,其中混淆集構(gòu)建成本巨大,同時(shí)相對(duì)笨重,而n-gram語(yǔ)言模型也沒(méi)考到句子的語(yǔ)義信息,所以導(dǎo)致最終的F1得分都比較小,很難滿足真實(shí)場(chǎng)景的需要,泛化能力很比較差。同時(shí)以往的糾錯(cuò)系統(tǒng)都是基于pipeline的,檢測(cè)任務(wù)跟糾錯(cuò)任務(wù)是相互分開(kāi)的,各個(gè)環(huán)節(jié)緊急相連,前面的環(huán)節(jié)如果出現(xiàn)了錯(cuò)誤,后面的環(huán)節(jié)也很難進(jìn)行修正。任何一個(gè)環(huán)節(jié)出現(xiàn)了問(wèn)題,都會(huì)影響整體的結(jié)果。
隨著深度學(xué)習(xí)的興起,人們逐漸用深度學(xué)習(xí)模型去替換以往的混淆集+n-gram語(yǔ)言模型的方式,根據(jù)句子的語(yǔ)義信息去進(jìn)行糾錯(cuò),同時(shí),還將檢測(cè)任務(wù)跟糾正任務(wù)聯(lián)合到一起,做成一個(gè)end2end的系統(tǒng),避免pipeline方式帶來(lái)的問(wèn)題。在這里我們介紹幾種基于深度學(xué)習(xí)的中文糾錯(cuò)模型,讓大家對(duì)于中文文本糾錯(cuò)有更加深入的理解。
2Confusionset-guided Pointer Network
Confusionset-guided Pointer Network是一個(gè)seq2seq模型,同時(shí)學(xué)習(xí)如何從原文本復(fù)制一個(gè)正確的字或者從混淆集中生成一個(gè)候選字。整個(gè)模型分為encoder跟decoder兩部分。其中encoder用的BiLSTM用于獲取原文本的高層次表征,例如圖中左下角部分,decoder部分用的帶注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò),在解碼的每個(gè)時(shí)刻,都能生成相應(yīng)的上下文表征。生成的上下文表征有兩個(gè)用途,第一個(gè)是利用這部分表征作為輸入,通過(guò)矩陣乘法跟softmax來(lái)計(jì)算當(dāng)前位置生成全詞表中各個(gè)字的概率(右邊的概率圖)。第二個(gè)用途是利用這部分上下文表征加上位置信息來(lái)計(jì)算當(dāng)前時(shí)刻復(fù)制原文本某個(gè)位置的字的概率或者需要生成原文本中不存在的字的概率(左邊的概率圖,這里其實(shí)是一個(gè)分類模型,假設(shè)原文本的長(zhǎng)度是n,那么全部分類有n+1種,其中1至n的標(biāo)簽的概率代表當(dāng)前時(shí)刻要復(fù)制原文本第i個(gè)位置的字的概率,第n+1的類別代表當(dāng)前時(shí)刻要生成原文本不存在的字的概率。如果是1至n中某個(gè)類別的概率最大,那么當(dāng)前位置的解碼結(jié)果就是復(fù)制對(duì)應(yīng)概率最大的原文本的某個(gè)字,如果是第n+1個(gè)類別概率最大,那么就會(huì)用到前面提及的第一個(gè)用途,計(jì)算當(dāng)前位置詞表中各個(gè)字的概率,取其中概率最大的字作為當(dāng)前時(shí)刻解碼的結(jié)果)。這里要注意的是,生成新字為了保證結(jié)果更加合理,會(huì)事先構(gòu)建好一個(gè)混淆集,對(duì)于每個(gè)字,都有若干個(gè)可能錯(cuò)別字(形近字或者同音字等),模型會(huì)對(duì)生成的候選會(huì)限制在這個(gè)字的混淆集中,也不是在全詞表中選擇,所以才稱為confusionset-guided。訓(xùn)練時(shí)會(huì)聯(lián)合encoder跟decoder一同訓(xùn)練,以預(yù)測(cè)各個(gè)類別的交叉熵?fù)p失作為模型優(yōu)化目標(biāo)。
Confusionset-guided Pointer Network看起來(lái)跟之前提及的CopyNet思路很接近文本生成系列之文本編輯,同時(shí)考慮到copy原文跟生成新字兩種可能性,相對(duì)于之前的seq2seq模型的改進(jìn)主要是引入混淆集來(lái)控制可能的候選字符。這種設(shè)置也比較合理,中文的錯(cuò)別字多是在形狀或者發(fā)音上有一定相似之處,通過(guò)混淆集可以進(jìn)一步約束糾錯(cuò)的結(jié)果,防止糾錯(cuò)的不可控。但是由于生成的結(jié)果一定來(lái)源于混淆集,所以混淆集的質(zhì)量也影響了最終糾錯(cuò)的效果。一個(gè)合理的混淆集的構(gòu)建都需要付出比較大的代價(jià)。
圖1:Confusionset-guided Pointer Network框架
3 FASPell
這是愛(ài)奇藝發(fā)布在EMNLP2019的基于詞的中文糾錯(cuò)的方法,F(xiàn)ASPell有兩個(gè)特別的點(diǎn),一個(gè)是用BERT為基礎(chǔ)的DAE取代了傳統(tǒng)的混淆集,另一點(diǎn)是使用置信度-相似度的解碼器來(lái)過(guò)濾候選集,從而提高糾錯(cuò)效果。
FASPell首先利用Bert來(lái)生成句子每個(gè)字符的可能候選結(jié)果,但是Bert的預(yù)訓(xùn)練任務(wù)MLM中選中的token有10%是被隨機(jī)替代的,這跟文本糾錯(cuò)的場(chǎng)景不符,所以需要對(duì)Bert進(jìn)行一定的微調(diào)。具體過(guò)程就是對(duì)MLM任務(wù)做一定調(diào)整,調(diào)整策略如下
a)如果文本沒(méi)有錯(cuò)誤,那么沿用之前Bert的策略。
b)如果文本有錯(cuò)誤,那么隨機(jī)選擇的要mask的位置的字,如果處于錯(cuò)誤的位置,那么設(shè)置對(duì)應(yīng)的標(biāo)簽為糾錯(cuò)后的字,也就是相對(duì)應(yīng)的正確的字。如果不是處于錯(cuò)誤的位置,那么設(shè)置對(duì)應(yīng)的標(biāo)簽為原來(lái)文本中的字。
在獲得文本可能的候選結(jié)果后,F(xiàn)ASPell利用置信度-相似度的解碼器來(lái)過(guò)濾這些候選結(jié)果。這里為什么需要對(duì)Bert生成的候選字進(jìn)行過(guò)濾呢?因?yàn)闈h語(yǔ)中常見(jiàn)的錯(cuò)誤大部分在字形或者發(fā)音有一定相似之處,但是Bert生成的候選字并沒(méi)有考慮到中文糾錯(cuò)的背景,所以Bert提供的候選結(jié)果很多都是糾錯(cuò)任務(wù)不相關(guān)的。這里每個(gè)位置的候選詞的置信度由Bert計(jì)算得到,相似度這里包括字形相似度跟音素相似度,其中因素相似度考慮到在多種語(yǔ)言中的發(fā)音。對(duì)于每個(gè)位置的候選詞,只有當(dāng)置信度,字形相似度跟音素相似度滿足某個(gè)條件時(shí),才會(huì)用這個(gè)候選字符替代到原文對(duì)應(yīng)字符。至于這個(gè)過(guò)濾條件,一般是某種加權(quán)組合,通常需要置信度跟相似度的加權(quán)和超過(guò)一定閾值才會(huì)進(jìn)行糾錯(cuò),加權(quán)相關(guān)的參數(shù)可以通過(guò)訓(xùn)練集學(xué)習(xí)得到,在推理時(shí)就可以直接使用。
FASPell沒(méi)有單獨(dú)的檢測(cè)模塊,利用BERT來(lái)生成每個(gè)位置的候選字,避免了以往構(gòu)建混淆集的工作,同時(shí)利用后續(xù)的置信度-相似度的解碼器,對(duì)候選結(jié)果進(jìn)行過(guò)濾,從而進(jìn)一步提高糾錯(cuò)效果。
圖2: FASPell框架
4Soft-Masked BERT
Soft-masked Bert是字節(jié)發(fā)表在ACL 2020的中文糾錯(cuò)方法,針對(duì)目前主流的深度學(xué)習(xí)糾錯(cuò)方法都是利用Bert生成各個(gè)位置的可能候選,但是Bert本身缺乏判斷每個(gè)位置是否需要糾錯(cuò)的能力,也就是缺乏檢測(cè)能力。為此,提出了一個(gè)包含檢測(cè)網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò)的中文糾錯(cuò)方法。整個(gè)流程是經(jīng)過(guò)檢測(cè)網(wǎng)絡(luò),然后再經(jīng)過(guò)糾錯(cuò)網(wǎng)絡(luò)。其中檢測(cè)網(wǎng)絡(luò)是的雙向GRU+全連接層做一個(gè)二分類任務(wù),計(jì)算原文本每個(gè)位置是否有錯(cuò)誤的概率。每個(gè)位置有錯(cuò)別字的概率為p,沒(méi)有錯(cuò)別字的概率是1-p,如圖中左邊部分。糾正網(wǎng)絡(luò)采用的是預(yù)訓(xùn)練模型Bert,但是在嵌入層的地方有所不同,每個(gè)位置的嵌入是由原文本中對(duì)應(yīng)位置的字的詞嵌入跟[MASK]的詞嵌入的加權(quán)和得到的,這里的[MASK]的權(quán)重等于檢測(cè)網(wǎng)絡(luò)預(yù)測(cè)的當(dāng)前位置是錯(cuò)別字的概率。具體如圖4所示,所以如果檢測(cè)網(wǎng)絡(luò)判斷當(dāng)前位置是錯(cuò)別字的概率較高,那么在糾正網(wǎng)絡(luò)中該位置的詞嵌入中[MASK]的權(quán)重就更高,反之,如果檢測(cè)網(wǎng)絡(luò)判斷當(dāng)前位置是錯(cuò)別字的概率很低,那么在糾正網(wǎng)絡(luò)中該位置的詞嵌入中[MASK]的權(quán)重就更低。利用Bert獲得每個(gè)位置的表征后,將Bert最后一層的輸出加上原文本中對(duì)應(yīng)位置的詞嵌入作為每個(gè)時(shí)刻最終的表征,通過(guò)全連接層+Softmax去預(yù)測(cè)每個(gè)位置的字,最終選擇預(yù)測(cè)概率最大的字作為當(dāng)前結(jié)果的輸出。訓(xùn)練過(guò)程中聯(lián)合訓(xùn)練檢測(cè)網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò)的,模型的目標(biāo)包括兩部分,一個(gè)是檢測(cè)網(wǎng)絡(luò)的對(duì)數(shù)似然函數(shù),另一個(gè)是糾正網(wǎng)絡(luò)的對(duì)數(shù)似然函數(shù),通過(guò)加權(quán)求和聯(lián)合這兩部分,使得加權(quán)和的負(fù)數(shù)盡可能小,從而同時(shí)優(yōu)化這兩個(gè)網(wǎng)絡(luò)的參數(shù)。
圖3: Soft-Masked BERT框架
圖4: Softed-masked embedding
Soft-Masked BERT相比直接采用預(yù)訓(xùn)練模型BERT,利用檢測(cè)網(wǎng)絡(luò)從而得到更合理的soft-masked embedding,緩解了Bert缺乏充足檢測(cè)能力的問(wèn)題,雖然改動(dòng)不大,但是效果提升明顯。
5 MLM-phonetics
個(gè)人感覺(jué)MLM-phonetics是在soft-masked BERT的基礎(chǔ)上做的優(yōu)化,思路也比較接近,同樣是包括檢測(cè)網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò),主要有幾點(diǎn)不同,
圖5: MLM-phonetics框架
a)糾正網(wǎng)絡(luò)的詞嵌入組成不同,Soft-Masked BERT的詞嵌入由原文本中各個(gè)位置本身的詞嵌入和[MASK]的詞嵌入組成,而MLM-phonetics則是將相應(yīng)[MASK]的詞嵌入替換為相應(yīng)位置對(duì)應(yīng)的拼音序列的嵌入。
b)目標(biāo)函數(shù)不同,MLM-phonetics在糾正網(wǎng)絡(luò)的目標(biāo)函數(shù)中加入了檢測(cè)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果作為一個(gè)權(quán)重項(xiàng)。
c)檢測(cè)網(wǎng)絡(luò)不同,MLM-phonetics的檢測(cè)網(wǎng)絡(luò)采用了預(yù)訓(xùn)練模型Bert。
d) BERT預(yù)訓(xùn)練任務(wù)不同,為了更加適配中文糾錯(cuò)任務(wù)的場(chǎng)景,MLM-phonetics的Bert的MLM任務(wù)中預(yù)測(cè)的字都是根據(jù)漢字常見(jiàn)的錯(cuò)誤選取的,要不在字形上有相似之處,要不在發(fā)音上有相似之處。
圖6: MLM-phonetics預(yù)訓(xùn)練任務(wù)
6 總結(jié)
為了對(duì)比上述幾種中文糾錯(cuò)方法之間的差異,可以直接比較這幾種方法在幾個(gè)常見(jiàn)中文糾錯(cuò)數(shù)據(jù)集上的性能表現(xiàn),在F1值上都遠(yuǎn)超基于混淆集+n-gram語(yǔ)言模型的方式。
圖7:不同糾錯(cuò)模型的效果對(duì)比
除此之外,關(guān)于中文糾錯(cuò)任務(wù),還有一些需要注意的點(diǎn)。
a)由于糾錯(cuò)任務(wù)可以分為檢測(cè)跟糾正兩個(gè)過(guò)程,所以相應(yīng)的錯(cuò)誤也可以分為這兩種類型。目前基于BERT的中文糾錯(cuò)方法的檢測(cè)錯(cuò)誤的比例要高于糾正錯(cuò)誤的比例,這也得益于Bert訓(xùn)練過(guò)程的MLM任務(wù)。
b)中文糾錯(cuò)方法基本都是以字為基本單位,很大程度是因?yàn)橐栽~為單位的話會(huì)引入分詞模塊的錯(cuò)誤,但是可以用分詞的結(jié)構(gòu)來(lái)作為字的特征增強(qiáng)。
c)目前中文糾錯(cuò)任務(wù)有兩種類型的錯(cuò)誤還沒(méi)有很好的解決。第一種是模型需要強(qiáng)大推理能力才能解決,例如“他主動(dòng)牽了姑娘的手,心里很高心,嘴上卻故作生氣?!边@里雖然容易檢測(cè)出“高心”是錯(cuò)別字,但是至于要把它糾正為“寒心”還是“高興”需要模型有強(qiáng)大的推理能力才可以。第二種錯(cuò)誤是由于缺乏常識(shí)導(dǎo)致的(缺乏對(duì)這個(gè)世界的認(rèn)識(shí)),例如“蕪湖:女子落入青戈江,眾人齊救援?!毙枰老嚓P(guān)的地理知識(shí)才能把“青戈江”糾正為“青弋江”。
審核編輯 :李倩
-
檢測(cè)
+關(guān)注
關(guān)注
5文章
4509瀏覽量
91629 -
文本
+關(guān)注
關(guān)注
0文章
118瀏覽量
17100 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121369
原文標(biāo)題:中文文本糾錯(cuò)系列之深度學(xué)習(xí)篇
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論