卓奕煒,田澤佳,門 豪
(1.武漢郵電科學(xué)研究院,湖北武漢 430047;2.南京烽火天地通信科技有限公司,江蘇 南京 210019)
隨著智能時(shí)代的到來,自然語(yǔ)言處理領(lǐng)域中的中文拼寫糾錯(cuò)(Chinese Spelling Check,CSC)任務(wù)正變得越來越重要。上世紀(jì)出現(xiàn)的N-gram 模型利用無監(jiān)督語(yǔ)料訓(xùn)練統(tǒng)計(jì)語(yǔ)言模型[1-2],較好地解決了糾錯(cuò)語(yǔ)料不足的問題。然而N-gram 模型僅考慮了鄰近詞,易導(dǎo)致訂正結(jié)果嚴(yán)重脫離原文。隨著深度學(xué)習(xí)的興起,糾錯(cuò)任務(wù)被看作一類文本生成任務(wù),基線模型就是RNN Seq2Seq[3-7]、ConvS2S[8-9]和Transformer 模型[10-13]等序列到序列(Seq2Seq)的模型。深度學(xué)習(xí)可自動(dòng)提取文本中的深層語(yǔ)義特征,這對(duì)需要處理復(fù)雜錯(cuò)誤的文本糾錯(cuò)任務(wù)[13]尤為重要。
中文不存在類似英文的分隔符,且漢字同其他字組合后才具有意義[14]。因此需要重點(diǎn)關(guān)注潛在錯(cuò)誤字符為中心的局部文本環(huán)境。該文提出在局部范圍強(qiáng)化特征提取,以提升對(duì)文本出錯(cuò)規(guī)律的學(xué)習(xí),并結(jié)合自注意力網(wǎng)絡(luò)實(shí)現(xiàn)上述改進(jìn)思路,以提升糾錯(cuò)性能。后續(xù)實(shí)驗(yàn)顯示,和基線模型相比,該文所提出的基于局部語(yǔ)義增強(qiáng)的中文拼寫糾錯(cuò)模型F1 值可以提升高達(dá)1.74%。
該文從中文文本特點(diǎn)的角度出發(fā),提出深度學(xué)習(xí)做中文拼寫糾錯(cuò)任務(wù)時(shí),可用于模型訓(xùn)練的深層語(yǔ)義特征主要來源于潛在出錯(cuò)位置的局部上下文環(huán)境。并據(jù)此提出了兩種改進(jìn)的Transformer 糾錯(cuò)模型,主要在自注意力計(jì)算單元上添加一個(gè)高斯分布的二次函數(shù)偏置項(xiàng)。這種結(jié)構(gòu)會(huì)促使注意力權(quán)重分布結(jié)果更多地集中在當(dāng)前位置附近,以此強(qiáng)化對(duì)出錯(cuò)文本局部語(yǔ)義特征的關(guān)注。
中文拼寫糾錯(cuò)與英文拼寫糾錯(cuò)的區(qū)別在于中文文本當(dāng)中不存在分隔符,一部分漢字在同其他漢字組合后才具有含義。同時(shí)錯(cuò)誤文本與正確文本之間往往沒有太多差別,如果模型再去關(guān)注全局范圍信息就降低了模型的學(xué)習(xí)效率[15-16]。因此,以潛在出錯(cuò)字符為中心的局部上下文環(huán)境,是中文拼寫糾錯(cuò)任務(wù)中尤其需要重點(diǎn)關(guān)注的對(duì)象。強(qiáng)化對(duì)局部上下文語(yǔ)義特征的學(xué)習(xí),相對(duì)減少對(duì)中長(zhǎng)距離語(yǔ)義特征的學(xué)習(xí),對(duì)提升糾錯(cuò)效果具有重要促進(jìn)作用。
基于當(dāng)前主流的Transformer 模型,文獻(xiàn)[17]提出了一種在訓(xùn)練語(yǔ)言模型過程中突出局部語(yǔ)義信息的方法。該模型沒有采用卷積單元或循環(huán)單元,而是全部采用了自注意力(Self-Attention)計(jì)算單元對(duì)全局文本作注意力權(quán)重計(jì)算,以獲取需要重點(diǎn)注意的信息。為了將重點(diǎn)關(guān)注范圍集中在當(dāng)前位置周邊一定范圍內(nèi)的字符,可以在自注意力計(jì)算單元上額外添加一個(gè)高斯分布的二次函數(shù)偏置項(xiàng)。這種結(jié)構(gòu)會(huì)促使注意力權(quán)重分布結(jié)果更多地集中在當(dāng)前位置的附近,以此強(qiáng)化對(duì)出錯(cuò)文本局部語(yǔ)義特征的關(guān)注。
該文利用上述強(qiáng)化局部上下文語(yǔ)義特征學(xué)習(xí)方法,提出了兩種基于局部語(yǔ)義增強(qiáng)方法的文本糾錯(cuò)模型。改進(jìn)的中文拼寫糾錯(cuò)模型與過去最優(yōu)糾錯(cuò)模型相比,F(xiàn)1 值最多可以取得1.74 的提升。
該文采用在局部范圍內(nèi)加強(qiáng)提取文本特征的方法,來提升糾錯(cuò)模型對(duì)文本出錯(cuò)規(guī)律的學(xué)習(xí)效果。在自注意力得分的基礎(chǔ)上,添加一個(gè)類高斯分布的二次函數(shù)偏置項(xiàng),用于減少對(duì)遠(yuǎn)距離非錯(cuò)誤部分的關(guān)注。如圖1 所示,對(duì)語(yǔ)句“我現(xiàn)在正在踢球”的識(shí)別結(jié)果中,出現(xiàn)了將“踢”識(shí)別為“提”的替換錯(cuò)誤。但是,自注意力網(wǎng)絡(luò)在針對(duì)“提”字符學(xué)習(xí)全局的注意力權(quán)重時(shí),可能最后訓(xùn)練得到的注意力權(quán)重分布重心并不在“提”字符附近位置。因此在原始注意力權(quán)重分布上添加了以錯(cuò)誤字符“提”附近為中心的高斯分布,使模型能夠加強(qiáng)對(duì)該字符以及周邊字符的注意力。
圖1 添加類高斯分布的偏置項(xiàng)后注意力權(quán)重分布走勢(shì)的改變
對(duì)于一個(gè)特定的文本序列x={x1,x2,…,xl},首先利用詞向量層提取文本字符的分布式表示,再與三個(gè)隨機(jī)初始化的權(quán)重矩陣相乘,分別生成Query 矩陣Q∈RI×d、Key 矩陣K∈RI×d和Value 矩陣V∈RI×d。自注意力計(jì)算結(jié)果Content 可利用如下公式計(jì)算:
其中,Attention(·)用于計(jì)算點(diǎn)乘自注意力,計(jì)算公式如下:
在當(dāng)前位置的注意力權(quán)重分布計(jì)算完成之后,再額外添加一個(gè)高斯分布偏置項(xiàng)G,用于改變?cè)孀宰⒁饬Ψ植嫉淖邉?shì)。改進(jìn)后的自注意力計(jì)算公式如下:
scores 是原版自注意力公式中點(diǎn)乘計(jì)算得出的相似度項(xiàng),計(jì)算公式如下:
其中,σi表示標(biāo)準(zhǔn)差,σi=,其中Di是一個(gè)窗口的大小。Pi是指預(yù)測(cè)的中心位置。Pi和Di的計(jì)算方式如下:
其中,I是放縮系數(shù),用于將Pi和Di放縮至輸入長(zhǎng)度范圍以內(nèi)。
1.2.1 中心位置預(yù)測(cè)
由于高斯分布的中心位置pi不一定在當(dāng)前字符的位置上,而是在其附近,因此需要基于當(dāng)前位置對(duì)應(yīng)的query 矩陣來預(yù)測(cè)得到中心位置pi。利用一個(gè)前向傳播層Wp,可將query 矩陣Qi映射為位置隱藏狀態(tài)矩陣,再通過線性投影矩陣Up∈Rd將該隱藏狀態(tài)矩陣映射為標(biāo)量pi,計(jì)算公式如下:
其中,Wp∈Rd×d是模型可訓(xùn)練的參數(shù)。
1.2.2 查詢窗口
類似地,高斯分布的窗口大小zi同樣需要由當(dāng)前位置對(duì)應(yīng)的query 矩陣預(yù)測(cè)得到。利用一層前向傳播神經(jīng)網(wǎng)絡(luò)Wd,將query 矩陣Qi轉(zhuǎn)換為窗口隱藏狀態(tài),再通過線性投影矩陣Ud∈Rd將該隱藏狀態(tài)矩陣映射為標(biāo)量zi,其計(jì)算公式如下:
其中,Ud∈Rd是可訓(xùn)練的線性投影參數(shù)矩陣。
在計(jì)算注意力得分時(shí),由于當(dāng)前位置存在出錯(cuò)的可能,因此需要減少對(duì)當(dāng)前位置語(yǔ)義信息的關(guān)注,而進(jìn)一步增加對(duì)局部上下文信息的關(guān)注。該節(jié)對(duì)上述局部語(yǔ)義增強(qiáng)模型進(jìn)行了再次改進(jìn),在高斯偏置項(xiàng)G的計(jì)算公式中,再額外添加偏置b并取絕對(duì)值,改進(jìn)為如下所示的計(jì)算公式:
其中,系數(shù)a設(shè)為0.1,系數(shù)b設(shè)為0.1。與原始改進(jìn)模型相比,經(jīng)過二次局部語(yǔ)義增強(qiáng)的模型可以進(jìn)一步減少對(duì)當(dāng)前位置語(yǔ)義信息的關(guān)注,并加強(qiáng)周邊局部范圍信息的關(guān)注,促使模型更加高效地學(xué)習(xí)文本出錯(cuò)規(guī)律。
實(shí)驗(yàn)的訓(xùn)練數(shù)據(jù)由訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集兩個(gè)部分組成。訓(xùn)練集中一部分是文獻(xiàn)[5]提供的開源糾錯(cuò)語(yǔ)料,錯(cuò)誤種類主要包括了同音字和同形字的替換錯(cuò)誤;另外一部分則來自公開測(cè)評(píng)任務(wù)SIGHAN 2015 Bake-off[18-20]提供的開源糾錯(cuò)語(yǔ)料,合計(jì)274 766條語(yǔ)句。測(cè)試集則采用了公開測(cè)評(píng)任務(wù)SIGHAN 2015 Bake-off 放出的測(cè)試集,合計(jì)1 099 條語(yǔ)句。該文需要使用可開放獲取的繁簡(jiǎn)轉(zhuǎn)換工具OpenCC 來處理訓(xùn)練語(yǔ)料中的繁體字字符。
中文拼寫糾錯(cuò)任務(wù)普遍采用準(zhǔn)確率(Precision,P)、召回率(Recall,R)和F1 值對(duì)模型進(jìn)行評(píng)價(jià)。
當(dāng)前中文拼寫糾錯(cuò)任務(wù)普遍采用Transformer 模型作為基準(zhǔn)模型。文中采用的Transformer 模型為開源文本生成框架Fairseq 提供的基準(zhǔn)模型。具體的模型參數(shù):模型的編碼器、解碼器分別由6 層自注意力模塊所構(gòu)成,每層由8 個(gè)注意力頭單元并行構(gòu)成,其中前向傳播層的維度定為2 048,采用Adam 優(yōu)化器訓(xùn)練模型,學(xué)習(xí)率初始值設(shè)為1×10-7,在前4 000個(gè)batch 的訓(xùn)練中,線性地增長(zhǎng)到5×10-4,在后續(xù)的訓(xùn)練中逐步下降,直到訓(xùn)練結(jié)束,Dropout 設(shè)置為0.1,Label-smoothing 設(shè)置為0.1。模型在每輪(epoch)訓(xùn)練結(jié)束后,都要在驗(yàn)證集上對(duì)模型效果進(jìn)行驗(yàn)證,最后需要取其中5 個(gè)最佳結(jié)果的模型權(quán)重參數(shù),并計(jì)算權(quán)重的平均值,作為最終模型的權(quán)重設(shè)置。而到了解碼階段,則將波束搜索(beam search)的波束寬度定為8 條,將取得的最佳結(jié)果作為模型的輸出結(jié)果。
該文對(duì)兩種采用局部信息增強(qiáng)方法的中文拼寫糾錯(cuò)模型進(jìn)行了對(duì)比實(shí)驗(yàn),上述改進(jìn)方法可提升模型對(duì)各類文本錯(cuò)誤的訂正效果,并進(jìn)行驗(yàn)證。如表1所示,該節(jié)對(duì)比了基于局部信息增強(qiáng)方法的Transformer模型與基線模型的糾錯(cuò)效果??梢园l(fā)現(xiàn),在上述模型的編碼器部分或解碼器部分單獨(dú)添加局部信息增強(qiáng)組件,均可有效提升模型性能,其中,F(xiàn)1 值與基線模型相比分別提高了0.56%和0.47%;但最好在兩個(gè)部分均添加局部信息增強(qiáng)組件,F(xiàn)1 值綜合提高了1.34%;而添加改進(jìn)的局部信息增強(qiáng)組件對(duì)模型性能的提升效果最為明顯,F(xiàn)1 值相比于第一種改進(jìn)方法又進(jìn)一步提高了0.40%。
表1 局部信息增強(qiáng)方法對(duì)糾錯(cuò)性能的改進(jìn)效果
其中,Transformer-LSE 代表采用局部信息增強(qiáng)的Transformer 糾錯(cuò)模型,Transformer-LSE+代表采用改進(jìn)局部信息增強(qiáng)的Transformer 糾錯(cuò)模型??梢园l(fā)現(xiàn),Transformer-LSE+模型相對(duì)Transformer-LSE 模型在準(zhǔn)確率上具有一定的提升效果,而召回率下降,但是F1 值對(duì)比Transformer-LSE 模型有所提升。猜測(cè)出現(xiàn)這樣結(jié)果的原因是,Transformer-LSE+模型對(duì)當(dāng)前錯(cuò)誤字符的關(guān)注相較Transformer-LSE 模型來說有所減少,因此錯(cuò)誤字符與正確字符之間對(duì)應(yīng)關(guān)系的學(xué)習(xí)效果變差;但模型同時(shí)加強(qiáng)了對(duì)周邊局部語(yǔ)義信息的關(guān)注,最后促使模型加強(qiáng)了拼寫糾錯(cuò)能力。
該文基于對(duì)中文文本錯(cuò)誤現(xiàn)象結(jié)構(gòu)特征的分析,采用局部語(yǔ)義增強(qiáng)的思路,對(duì)Transformer 糾錯(cuò)模型進(jìn)行改進(jìn),成功提升了模型在中文拼寫糾錯(cuò)任務(wù)上的表現(xiàn)。主要思路是在自注意力網(wǎng)絡(luò)中強(qiáng)化對(duì)當(dāng)前位置相鄰文本信息的學(xué)習(xí),同時(shí)減少對(duì)當(dāng)前位置字符的關(guān)注,因此可以有效提升模型的拼寫糾錯(cuò)性能。實(shí)驗(yàn)表明,該文提出的改進(jìn)方法對(duì)中文拼寫糾錯(cuò)任務(wù)的精確率、召回率和F1 值均有提升,其中,F(xiàn)1值與過往最好成果相比可提升1.74%。
中文拼寫糾錯(cuò)任務(wù)需要重點(diǎn)關(guān)注以潛在錯(cuò)誤字符為中心的上下文語(yǔ)義信息,因此挖掘更多種類的結(jié)構(gòu)性文本特征具有進(jìn)一步提升模型性能的潛力。因此,下一步工作就是在糾錯(cuò)語(yǔ)句中嘗試構(gòu)造多種結(jié)構(gòu)性語(yǔ)義特征并加以利用,進(jìn)一步提升糾錯(cuò)模型對(duì)文本出錯(cuò)規(guī)律的學(xué)習(xí)效果。