王天極,陳柏霖,黃瑞章,3,任麗娜,2,陳艷平,3,秦永彬,3
(1. 貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025; 2. 貴州輕工職業(yè)技術(shù)學(xué)院 貴州 貴陽 550025;3. 貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 公共大數(shù)據(jù)國家重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽 550025)
隨著社會(huì)發(fā)展,僅針對錯(cuò)別字的拼寫檢查已經(jīng)難以滿足人們對自動(dòng)校對技術(shù)的需求,語法錯(cuò)誤校對已成為此方向研究的重點(diǎn)。目前自動(dòng)校對技術(shù)能夠處理的語法錯(cuò)誤以搭配不當(dāng)、語序不當(dāng)、成分殘缺或贅余為主。語法錯(cuò)誤校對有兩種實(shí)現(xiàn)方式,第一種是一階段生成類模型,用文本生成的方式直接輸出修改后的文本,這類模型容易受到錯(cuò)誤影響而傾向輸出錯(cuò)誤答案,加劇了此類模型本身具有的幻覺現(xiàn)象[1],性能難以滿足實(shí)際需要。而為了增強(qiáng)生成類模型的性能,約束其輸出結(jié)果,往往需要擴(kuò)充大量數(shù)據(jù)、使用多種特征、引入外部知識(shí)等方法,導(dǎo)致模型過于復(fù)雜,而且難以訓(xùn)練;第二種是檢測-糾錯(cuò)二階段模型,此類模型先對文本做語法錯(cuò)誤檢測,再根據(jù)檢測結(jié)果做糾正,是目前可行性較高的方法。而作為語法錯(cuò)誤糾正的前置任務(wù),語法錯(cuò)誤檢測的性能對于整體模型性能起到至關(guān)重要的作用,也是當(dāng)前此方向研究的重點(diǎn)。
中文語法規(guī)律復(fù)雜多變,其語法、句法信息主要由語序和虛詞來提供,句子中的語法錯(cuò)誤和錯(cuò)別字會(huì)嚴(yán)重影響其錯(cuò)誤位置局部范圍的語義,甚至整個(gè)句子的語義。二階段模型是目前可行性較高的方法。
早期的文本檢錯(cuò)模型通常使用N-gram語言模型來檢測語法錯(cuò)誤[2],但由于語法的靈活性很強(qiáng), 此類模型性能都較弱,難以滿足使用需要。隨后出現(xiàn)的神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯模型[3-4]能夠直接將有語法錯(cuò)誤的句子“翻譯”為正確句子,大多數(shù)NMT系統(tǒng)采用序列到序列的模型,這類模型需要使用大量的正誤句子對訓(xùn)練,而且由于語法錯(cuò)誤帶來的噪聲,模型性能較差。由于語法錯(cuò)誤檢測與改正任務(wù)的源序列和目標(biāo)序列非常相似,所以將其視為序列標(biāo)注任務(wù)簡單且高效。
通過研究中文語法錯(cuò)誤檢測(Chinese GramMatical Error Diagnosis,CGED)shared task提供的漢語學(xué)習(xí)者在漢語水平考試中所寫的作文數(shù)據(jù)集,研究實(shí)驗(yàn)不同模型在此任務(wù)中的表現(xiàn),我們發(fā)現(xiàn)在不涉及邏輯類語病錯(cuò)誤時(shí),搭配不當(dāng)、語序不當(dāng)、成分殘缺或贅余類錯(cuò)誤均與其鄰近Token的相對位置和語義有較強(qiáng)的相關(guān)性,有效利用錯(cuò)誤位置Token本身特征及其周邊位置的語義信息能夠提升模型的性能。
因此本文提出一種基于Electra的下游模型——門控雙線性神經(jīng)網(wǎng)絡(luò)Gated-Bilinear,用于中文語法錯(cuò)誤檢測模型,重點(diǎn)關(guān)注輸入序列中相鄰Token的特征,與預(yù)訓(xùn)練語言模型Electra[5]結(jié)合能夠有效彌補(bǔ)Transformer[6]結(jié)構(gòu)僅使用絕對位置編碼,而不能有效利用相對位置信息的缺陷。該模型利用Electra對文本進(jìn)行字向量編碼,得到文本特征,然后將該字向量輸入Gated-Bilinear網(wǎng)絡(luò),最后使用條件隨機(jī)場對Gated-Bilinear層的輸出做解碼得到序列標(biāo)簽。本文在2020年CGED測試數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),單模型F1值可達(dá)0.395 8,使用簡單的多模型集成時(shí)F1值可達(dá)到0.411 5,兩者均超過目前其他模型的性能。
英文語法錯(cuò)誤檢測任務(wù)在眾多研究者多年的研究下,已經(jīng)取得了很好的進(jìn)展。而漢語作為分析語,特點(diǎn)是不會(huì)通過詞形變化(即詞的內(nèi)部形態(tài)變化,又稱作屈折變化)來表達(dá)語法意義,而是通過獨(dú)立的虛詞和固定的詞序來表達(dá)特定的語法意義。
比起英文這種更加偏向屈折語的語言文字,中文語法錯(cuò)誤檢測更困難,且中文語法錯(cuò)誤檢測研究起步晚,同時(shí)缺少數(shù)據(jù)集和有效的方法。隨著近年來NLPTEA論壇舉辦的幾屆CGED shared task,中文語法錯(cuò)誤檢測相關(guān)研究也越來越多,在2017年后進(jìn)入到快速發(fā)展時(shí)期,Yang等人[7]在CGED 2017公開任務(wù)中取得綜合成績第一,其做法是在神經(jīng)網(wǎng)絡(luò)序列標(biāo)注模型Bi-LSTM+CRF模型上,加入了分詞、詞性、依存句法等特征,同時(shí)將無監(jiān)督學(xué)習(xí)到的語言模型知識(shí)應(yīng)用到神經(jīng)網(wǎng)絡(luò)中。
2018年,Fu等人[8]在當(dāng)年的CGED任務(wù)中取得第一名,將位置級別的F1指標(biāo)提高到了0.361 2,使用的方法是對神經(jīng)網(wǎng)絡(luò)序列標(biāo)注模型Bi-LSTM+CRF進(jìn)行改進(jìn),引入一些新的語言學(xué)特征,如分詞、高斯ePMI、詞性PMI聯(lián)合特征等先驗(yàn)知識(shí),然后將多個(gè)Bi-LSTM模型的輸出加權(quán)融合,再經(jīng)過CRF層計(jì)算最終結(jié)果,最后使用外部融合機(jī)制,如模板匹配、重復(fù)項(xiàng)處理等,發(fā)揮了不同模型的優(yōu)勢。
在2020年的CGED shared task中,Wang等人[9]將位置級別的F1值提高到了0.404 1,排名第一位,這個(gè)模型使用了ResElectra作為基礎(chǔ)模型,再使用集成學(xué)習(xí)的方法提高性能。Luo等人[10]提出StructBert-GCN模型,利用StructBert與GCN結(jié)合取得第二名的成績,其模型使用句法依存樹,以詞為單位構(gòu)建句法圖,也用到了集成學(xué)習(xí)方法,其最終位置級別的F1為0.397 7。以上兩種方法的缺點(diǎn)都是使用了大量模型集成學(xué)習(xí),很難用于實(shí)際應(yīng)用。
本文提出了一種基于Electra、門控雙線性網(wǎng)絡(luò)Gated-Bilinear的中文語法錯(cuò)誤檢測模型Electra-Gated-Bilinear-CRF,該模型整體分為Electra特征提取層、Gated-Bilinear特征融合層、CRF解碼層三個(gè)部分。首先用Electra獲得文本語義信息和文本錯(cuò)誤特征,再使用Gated-Bilinear對相鄰Token的語義和錯(cuò)誤特征進(jìn)行融合,并獲取更具體的語法錯(cuò)誤特征,解碼器為條件隨機(jī)場CRF,學(xué)習(xí)標(biāo)簽間的依賴關(guān)系。在CGED任務(wù)中,語序錯(cuò)誤(W)可能與其他錯(cuò)誤(Q,包括成分缺失M、成分冗余R,錯(cuò)別字詞S)存在嵌套關(guān)系,為了處理標(biāo)簽沖突的情況,門控雙線性特征融合層的第二層使用了兩個(gè)雙線性層分別預(yù)測語序錯(cuò)誤和其他錯(cuò)誤,對應(yīng)的解碼層也使用了兩個(gè)CRF,整體結(jié)構(gòu)和預(yù)測流程如圖1所示。
圖1 Electra-Gated-Bilinear-CRF模型結(jié)構(gòu)和預(yù)測結(jié)果舉例
中文句子首先經(jīng)過Electra特征提取層,提取文本的語義和基本的文本錯(cuò)誤特征,并用全連接層對其降維;然后經(jīng)過一個(gè)兩層的門控雙線性網(wǎng)絡(luò),第一層將Token與其后繼Token特征融合,再使用GLU的門控機(jī)制選擇特征;第二層將Token與后繼Token的新特征輸入兩個(gè)平行的雙線性層計(jì)算,分別得到語序錯(cuò)誤特征和其他錯(cuò)誤特征;兩者經(jīng)過兩個(gè)CRF層分別解碼,可以得到對應(yīng)語序錯(cuò)誤和其他三種錯(cuò)誤的標(biāo)簽,最后解析標(biāo)簽就能夠得到錯(cuò)誤三元組。
特征提取層能夠在一定程度上獲取文本的語義信息和文本中存在的基本錯(cuò)誤特征。特征提取層使用Electra通過對文本進(jìn)行編碼操作得到768維的字向量,再經(jīng)過全連接層降維得到128維字向量。若直接將Electra的768維輸出作為雙線性神經(jīng)網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)的參數(shù)量會(huì)特別巨大,因此本模型首先使用全連接層對其降維。為平衡模型性能和訓(xùn)練效率,特征提取層的輸出維度設(shè)為128。
基于Transformer結(jié)構(gòu)的BERT在預(yù)訓(xùn)練語言模型領(lǐng)域取得了非常好的效果,其訓(xùn)練方式是掩碼語言模型(Masked Language Model, MLM),在預(yù)訓(xùn)練過程中,輸入的Token的15%會(huì)被隨機(jī)替換為“[MASK]”,模型需要預(yù)測該位置的原本Token,通過這種完型填空式的方式訓(xùn)練模型的語義理解能力。然而BERT在預(yù)訓(xùn)練過程中出現(xiàn)的“[MASK]”字符并不會(huì)在序列標(biāo)注等任務(wù)中出現(xiàn),這種預(yù)訓(xùn)練和下游任務(wù)存在著信息不匹配的情況,導(dǎo)致BERT在某些任務(wù)上的性能不佳。
Clark等人基于對抗網(wǎng)絡(luò)設(shè)計(jì)了預(yù)訓(xùn)練模型Electra,Electra是BERT[11]模型的一種改進(jìn)變種,其模型結(jié)構(gòu)與BERT一致,如圖2所示。
圖2 Electra判別器的Transformer結(jié)構(gòu)
Electra與BERT僅有預(yù)訓(xùn)練任務(wù)不同,該模型提出了RTD(Replace Token Detection)生成對抗預(yù)訓(xùn)練任務(wù),與MLM任務(wù)不同,RTD的預(yù)訓(xùn)練任務(wù)是區(qū)分輸入的詞是否被替換的二分類任務(wù),其中Electra是預(yù)訓(xùn)練任務(wù)中的判別器,訓(xùn)練中使用性能較弱的MLM語言模型作為生成器來對輸入Token做隨機(jī)替換,然后用Electra判斷MLM輸出的Token序列中被替換的Token,如圖3所示。這種訓(xùn)練方式使得模型對錯(cuò)別字、突兀的語義非常敏感,適合用于語法錯(cuò)誤檢測任務(wù),本文使用哈工大訊飛聯(lián)合實(shí)驗(yàn)室基于官方ELECTRA訓(xùn)練代碼以及大規(guī)模的中文數(shù)據(jù)訓(xùn)練出中文ELECTRA預(yù)訓(xùn)練模型[12]權(quán)重,其性能大幅高于使用MLM任務(wù)訓(xùn)練的BERT。
圖3 Electra訓(xùn)練過程示例
預(yù)訓(xùn)練Transformer模型返回的字向量已經(jīng)包含足夠的語義信息,但其位置向量使用絕對位置編碼,不能有效利用Token之間的相對位置信息。相對位置信息在檢測語法錯(cuò)誤中起到重要作用,因此本文提出Gated-Bilinear神經(jīng)網(wǎng)絡(luò)作為Electra的下游任務(wù)模型,利用相鄰Token的特征增強(qiáng)模型對語法錯(cuò)誤的檢測能力。Gated-Bilinear使用線性層降低字向量維度,減少雙線性神經(jīng)網(wǎng)絡(luò)的參數(shù)量,同時(shí)使用門控機(jī)制、層標(biāo)準(zhǔn)化來增強(qiáng)模型的性能和穩(wěn)定性。
本文提出的Gated-Bilinear結(jié)構(gòu)由雙線性特征融合層、門控線性單元GLU、Dropout層、LayerNorm層[13]、兩個(gè)分別對應(yīng)語序錯(cuò)誤和其他錯(cuò)誤的雙線性特征分類層組成。其具體結(jié)構(gòu)如圖4所示。
Gated-Bilinear特征融合層會(huì)接收Electra特征提取層的輸出x={x1,x2,x3,…,xi,…}作為輸入,其中,xi是第i個(gè)Token對應(yīng)的字向量,其維度為128。輸入的張量首先經(jīng)過特征融合層,其中Bilinear特征融合層接收xi與xi+1作為輸入,輸出一個(gè)256維的新張量x′i,對于整條序列張量x而言,Bilinear特征融合層的輸入是x本身和x在序列維度右移1步后的結(jié)果(Electra模型在序列開始和結(jié)尾部分各加入一個(gè)特殊標(biāo)記,這里可以將第一個(gè)Token視為最后一個(gè)Token的后繼,特殊標(biāo)記對標(biāo)簽預(yù)測影響很小),如式(1)所示。
x′=xT·W·roll(x,1)+b
(1)
其中,roll函數(shù)將張量在序列維度上右移1步,W和b分別是雙線性神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置量。
門控線性單元可以利用門機(jī)制做特征選擇,首先將張量x′在最后一個(gè)維度對半切分為維度均為128的張量A和B,然后使用門控線性單元運(yùn)算得到新的向量x″,如式(2)所示。
x″=A?Sigmoid(B)
(2)
Dropout層對張量中的元素以15%的概率隨機(jī)置0,作用是增強(qiáng)模型的泛化能力,x″經(jīng)過Dropout層后,再經(jīng)過層標(biāo)準(zhǔn)化(LayerNorm)層,LayerNorm的公式如式(3)所示。
(3)
其中,E[x″]是x″的平均值,Var[x″]是x″的方差,ò是一個(gè)很小的值,用于避免除0,γ、β是可學(xué)習(xí)的參數(shù)。LayerNorm層在每條輸入的句子維度做標(biāo)準(zhǔn)化操作,避免了梯度消失、梯度爆炸問題,使隱藏狀態(tài)的傳遞更加穩(wěn)定。
由于語法錯(cuò)誤存在嵌套的情況,嵌套方式通常是語序錯(cuò)誤內(nèi)部嵌套其他錯(cuò)誤,因此為解決嵌套標(biāo)簽問題,此模型使用了兩個(gè)雙線性特征分類層(Bilinear-W、Bilinear-Q)做最后的特征分類,分別處理語序錯(cuò)誤和其他錯(cuò)誤,提升嵌套錯(cuò)誤識(shí)別性能。此處雙線性網(wǎng)絡(luò)輸出的特征維度等于標(biāo)簽數(shù)量,運(yùn)算過程與式(1)相同,接下來使用兩個(gè)CRF層將Bilinear-W、Bilinear-Q的輸出分別解碼為兩組標(biāo)簽。
條件隨機(jī)場能夠在解碼時(shí)考慮標(biāo)簽的依賴關(guān)系,因此對連續(xù)標(biāo)簽預(yù)測的性能與Softmax相比有較大提升。對于標(biāo)簽序列,定義其概率為:
(4)
其中,y表示所有可能的標(biāo)簽序列,T為轉(zhuǎn)移矩陣,Tyi-1,yi為從標(biāo)簽yi-1到標(biāo)簽yi的轉(zhuǎn)移概率,Oi,yi表示輸入的第i個(gè)特征被預(yù)測為標(biāo)簽yi的概率。在預(yù)測解碼時(shí),使用維特比算法來找到概率最高的標(biāo)簽序列y*,其計(jì)算如式(5)所示。
(5)
為驗(yàn)證模型對于漢語學(xué)習(xí)者作文中語法錯(cuò)誤的檢測能力,本文采用了由NLPTEA主辦的中文語法錯(cuò)誤檢測(CGED)shared task提供的數(shù)據(jù)集。該數(shù)據(jù)集將語法錯(cuò)誤歸納為四個(gè)大類,分別是成分冗余(Redundant,R)、成分缺失(Missing,M)、選詞錯(cuò)誤(Selection,S)和語序錯(cuò)誤(Words Disordering,W)。這些文本數(shù)據(jù)來自漢語水平考試(簡體數(shù)據(jù),簡稱HSK)和華語文能力測驗(yàn)(繁體數(shù)據(jù),簡稱TOCFL)的考生作文。
在原始數(shù)據(jù)集中,標(biāo)注被表示為文本ID、錯(cuò)誤文本、0個(gè)或多個(gè)錯(cuò)誤三元組的形式。如表1中“最重要的是做孩子想學(xué)的環(huán)境?!边@句話標(biāo)注的錯(cuò)誤三元組是“6,6,S”,表示在按字符位置的[6,6]閉區(qū)間內(nèi)存在選詞錯(cuò)誤(S錯(cuò)誤),即“做”是錯(cuò)詞。
表1 語法錯(cuò)誤類型舉例
本文統(tǒng)計(jì)了實(shí)驗(yàn)數(shù)據(jù)集中的錯(cuò)誤數(shù)量和錯(cuò)誤覆蓋字?jǐn)?shù),如表2所示。語序錯(cuò)誤數(shù)量雖少,但其平均覆蓋范圍最大,為5.48字,故識(shí)別難度最大,其范圍內(nèi)可以包含其他種類錯(cuò)誤,也容易被識(shí)別為一對S、R錯(cuò)誤。選詞錯(cuò)誤平均字?jǐn)?shù)為1.78,說明此類錯(cuò)誤多數(shù)是兩個(gè)字所組成的詞。成分冗余錯(cuò)誤平均字?jǐn)?shù)是1.36,說明這類錯(cuò)誤以單字為主。使用CRF能夠有效學(xué)習(xí)不同語法錯(cuò)誤特征對應(yīng)標(biāo)簽的字?jǐn)?shù)范圍。
表2 實(shí)驗(yàn)數(shù)據(jù)集錯(cuò)誤統(tǒng)計(jì)
本實(shí)驗(yàn)使用的訓(xùn)練集由以下幾個(gè)部分組成: 2016年的HSK和TOCFL訓(xùn)練集(TOCFL被轉(zhuǎn)化為簡體),2017、2018、2020年的HSK訓(xùn)練集(1)從2020年訓(xùn)練集中抽取語法錯(cuò)誤分布比較均勻的103條作為驗(yàn)證集,其余1 026條作為訓(xùn)練集。,并補(bǔ)充了2018年HSK和1026條2020年HSK數(shù)據(jù)中正確句子作為負(fù)例。本文使用Electra-Gated-Bilinear-CRF和其他模型在2020年HSK測試集上的性能作為最終實(shí)驗(yàn)結(jié)果進(jìn)行對比。
語法錯(cuò)誤檢測的性能指標(biāo)分為四類,分別是整句級別的假陽性率(false positive rate,FPR)和檢測(Diagnosis)、識(shí)別(Identification)、位置(Position)三個(gè)級別的準(zhǔn)確率、召回率和F1值,其中位置級別性能是最重要的評判指標(biāo),因?yàn)槠潢P(guān)系到后續(xù)的語法糾錯(cuò)任務(wù)。
CGED任務(wù)的性能計(jì)算步驟如下:
首先將預(yù)測結(jié)果表示為“ID+correct”的二元組或“ID+錯(cuò)誤三元組”構(gòu)成的四元組;再按預(yù)測結(jié)果是否與標(biāo)準(zhǔn)答案集存在匹配計(jì)算預(yù)測結(jié)果中真陽性tp、真陰性tn、假陽性fp、假陰性fn的個(gè)數(shù),按句子級別和位置級別分別統(tǒng)計(jì);最后根據(jù)以下公式分別計(jì)算各個(gè)級別的性能。
FPR當(dāng)一個(gè)正確的句子中有任何位置被檢測出錯(cuò)誤時(shí),此句子會(huì)被視為一個(gè)誤報(bào);誤報(bào)的句子總數(shù)與所有正確句子數(shù)量的比值即為整句級別的誤報(bào)率FPR。
(6)
檢測級別與FPR類似,檢測級別也是句子級別的檢測能力評價(jià)指標(biāo)。此級別只評價(jià)模型判斷句子是否正確的二分類性能。
識(shí)別級別此級別相當(dāng)于一個(gè)多分類任務(wù)評價(jià)指標(biāo),模型需要預(yù)測一個(gè)句子中存在的所有錯(cuò)誤類型。
位置級別此評價(jià)指標(biāo)會(huì)檢查預(yù)測結(jié)果二元組或四元組,只有當(dāng)其存在于標(biāo)準(zhǔn)答案中時(shí)才被視為正確。
各個(gè)指標(biāo)具體的準(zhǔn)確率P、召回率R和F1值計(jì)算如式(7)~式(9)所示。
基線模型本文所選擇基線模型直接使用ELECTRA判別器做特征提取層,接下來使用兩個(gè)全連接層、兩個(gè)CRF層,分別預(yù)測兩類沖突的錯(cuò)誤標(biāo)簽。
ResElectra此模型將殘差網(wǎng)絡(luò)與預(yù)訓(xùn)練Transformer模型Electra相結(jié)合,提出Res-Electra作為錯(cuò)誤檢測的編碼部分,解碼部分同樣使用BIO標(biāo)注形式,再使用不同的隨機(jī)種子和Dropout Rate進(jìn)行訓(xùn)練,采用Stepwise集成學(xué)習(xí)的方法提高性能,共計(jì)有80個(gè)模型參與集成。
StructBERT-GCN StructBERT[14]的訓(xùn)練方式比原版Bert增加字序預(yù)測和句序預(yù)測兩個(gè)新的訓(xùn)練目標(biāo)。此方法同時(shí)使用句法依存樹,以詞為單位構(gòu)建句法圖,將圖結(jié)構(gòu)信息表示的語法依存關(guān)系融入訓(xùn)練過程。此方法也用到了模型集成,有38個(gè)StructBERT-GCN-CRF模型和65個(gè)多任務(wù)訓(xùn)練的StructBERT-CRF模型參與集成。
訓(xùn)練參數(shù)訓(xùn)練時(shí)均使用72作為Batch Size,Electra部分的學(xué)習(xí)率為0.000 01,CRF部分的學(xué)習(xí)率為0.001,其余部分的學(xué)習(xí)率為0.000 1;模型中涉及Dropout的部分丟棄概率均為0.15;輸入時(shí)限制輸入序列的長度為128,超過部分會(huì)被截?cái)唷TO(shè)置Early Stop值為4,即驗(yàn)證集性能連續(xù)4輪沒有提升會(huì)停止訓(xùn)練。
實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)比較了Electra-Gated-Bilinear-CRF、基線模型和CGED 2020性能排行前2名的模型在CGED 2020測試集上的最終結(jié)果。對比實(shí)驗(yàn)?zāi)P蚏esElectra和StructBERT-GCN的性能數(shù)據(jù)來源為CGED 2020官方綜述[15]。在中文語法糾錯(cuò)任務(wù)上,Position Level的性能是最重要的,也是本文對比的重點(diǎn)。實(shí)驗(yàn)結(jié)果中準(zhǔn)確率能夠反映模型在檢錯(cuò)任務(wù)上的效率,而召回率反映模型對語法錯(cuò)誤的敏感程度,CGED任務(wù)官方認(rèn)為準(zhǔn)確率和召回率同等重要,因此使用F1值衡量模型整體性能。而在中文語法檢錯(cuò)的實(shí)際應(yīng)用中,召回率通常是模型首先需要考慮的性能指標(biāo),因?yàn)闄z錯(cuò)任務(wù)通常是作為自動(dòng)校對的前置任務(wù),其召回率對后續(xù)的糾錯(cuò)性能影響更為顯著。在此次實(shí)驗(yàn)中,Electra-Gated-Bilinear-CRF的模型集成方式是肯定性策略,即組內(nèi)所有模型的結(jié)果都被認(rèn)為是正確的結(jié)果被輸出,也是由于這種集成方式對召回率提升最大。
如表3所示,Electra-Gated-Bilinear-CRF(表中簡稱Electra-GB-CRF)單模型在Position Level上的F1性能與CGED 2020的第一名ResElectra和第二名StructBERT-GCN差距已經(jīng)很小。后兩者均通過使用不同的隨機(jī)數(shù)種子和不同的優(yōu)化器訓(xùn)練大量模型權(quán)重,如Res-Electra使用80個(gè)模型集成,StructBERT-GCN共使用103個(gè)模型集成。三者的召回率差距不大,而ResElectra在準(zhǔn)確率上領(lǐng)先較多,這也是ResElectra性能更高的原因。
表3 CGED 2020 HSK測試數(shù)據(jù)集模型性能對比
本文集成的Electra-Gated-Bilinear-CRF僅將一次訓(xùn)練過程中驗(yàn)證集性能前7名模型的預(yù)測結(jié)果簡單疊加,就大幅提升了召回率,結(jié)果更具有實(shí)用價(jià)值,并在準(zhǔn)確率未下降過多的情況下使F1值超過其他模型。這也表示同一個(gè)模型在一次訓(xùn)練過程中對語法錯(cuò)誤檢測的隨機(jī)性較大,這可能是由于語法錯(cuò)誤檢測任務(wù)的結(jié)果是開放性的,同一病句有多種修改方式,都可以達(dá)到錯(cuò)誤糾正的效果,這也證明此任務(wù)中召回率的重要性。
為了驗(yàn)證Gated-Bilinear層(圖表中簡稱GB)中各子模塊對整體網(wǎng)絡(luò)結(jié)構(gòu)的貢獻(xiàn),本文通過消融實(shí)驗(yàn)對比了去掉門控線性單元、層標(biāo)準(zhǔn)化及同時(shí)去掉兩者的模型性能。如表4所示,實(shí)驗(yàn)表明,門控機(jī)制和層標(biāo)準(zhǔn)化操作對模型性能的提升有重要作用。其中性能數(shù)據(jù)為驗(yàn)證集性能前7的模型權(quán)重在測試集上性能表現(xiàn)的平均值。
表4 消融實(shí)驗(yàn)性能對比
第一組實(shí)驗(yàn)為完整的門控雙線性層,其訓(xùn)練過程中性能和穩(wěn)定性最強(qiáng),前7個(gè)權(quán)重在訓(xùn)練集上F1值最高為0.401 4,最低為0.384 7。
第二組只使用一組雙線性錯(cuò)誤分類層和CRF層,在處理數(shù)據(jù)的時(shí)候?qū)⑶短渍Z法錯(cuò)誤中與其他錯(cuò)誤沖突的語序錯(cuò)誤覆蓋掉,用來驗(yàn)證沖突標(biāo)簽開預(yù)測的性能;第三組去掉了CRF層,是為了驗(yàn)證CRF可以利用連續(xù)語法錯(cuò)誤標(biāo)簽的依賴關(guān)系;
第四組去掉了層標(biāo)準(zhǔn)化,第五組去掉了門控線性單元,第六組同時(shí)去掉層標(biāo)準(zhǔn)化和門控線性單元,這三組消融實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果能夠體現(xiàn)兩個(gè)雙線性層中間加入LayerNorm和GLU的作用。
從表4可以看出沖突標(biāo)簽分組、CRF、層標(biāo)準(zhǔn)化、門控線性單元的組合對提升模型性能和穩(wěn)定性有明顯的貢獻(xiàn)。其中CRF對性能的影響最大,其通過對連續(xù)錯(cuò)誤標(biāo)簽更加準(zhǔn)確的預(yù)測,大幅提高召回率來提升整體性能。將語序錯(cuò)誤與其他錯(cuò)誤分開預(yù)測,能夠在Identification Level和Position Level上同時(shí)提高準(zhǔn)確率和召回率,小幅度提高模型性能。
同時(shí),消融實(shí)驗(yàn)的訓(xùn)練過程也能體現(xiàn)門控線性單元和層標(biāo)準(zhǔn)化模塊對提高訓(xùn)練穩(wěn)定性和減少過擬合程度有較大貢獻(xiàn)。本文將消融實(shí)驗(yàn)中每輪訓(xùn)練結(jié)束時(shí)的模型權(quán)重保存下來,在驗(yàn)證集和測試集上分別預(yù)測,將兩個(gè)數(shù)據(jù)集的預(yù)測結(jié)果繪制成折線圖,圖中標(biāo)記了驗(yàn)證集、測試集上性能最高的輪次數(shù)和對應(yīng)的F1值,如圖5所示。可以看出,Gated-Bilinear的性能、在驗(yàn)證集和測試集上的穩(wěn)定性和泛化能力大幅度優(yōu)于其他幾個(gè)模型。對比去除各個(gè)模塊的模型可以發(fā)現(xiàn),層標(biāo)準(zhǔn)化LayerNorm模塊可以增強(qiáng)模型的穩(wěn)定性,減少模型性能的大幅波動(dòng);門控線性單元可以提高模型性能,兩者結(jié)合還可以顯著降低過擬合程度。
圖5 訓(xùn)練過程中性能穩(wěn)定性和過擬合程度對比
在本文中我們提出了一種基于Electra和門控雙線性神經(jīng)網(wǎng)絡(luò)Gated-Bilinear的中文語法錯(cuò)誤檢測模型,這種模型有效利用了相鄰Token的特征,彌補(bǔ)了Transformer結(jié)構(gòu)不能有效利用相對位置信息的缺陷,對于中文語法錯(cuò)誤檢測任務(wù)的性能和穩(wěn)定性提升效果顯著。實(shí)驗(yàn)表明,其單模型F1值可達(dá)0.395 8,簡單的多模型疊加的F1值可達(dá)到0.411 5,超過之前最佳模型的復(fù)雜集成方法。