文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.191013
中文引用格式: 龔永罡,裴晨晨,廉小親,等. 基于Transformer模型的中文文本自動(dòng)校對(duì)研究[J].電子技術(shù)應(yīng)用,2020,46(1):30-33,38.
英文引用格式: Gong Yonggang,Pei Chenchen,Lian Xiaoqin,et al. Research on automatic proofreading of Chinese text based on Transformer model[J]. Application of Electronic Technique,2020,46(1):30-33,38.
0 引言
在如今信息量與日俱增的大數(shù)據(jù)時(shí)代,每天都會(huì)產(chǎn)生大量的文本信息,隨之而來(lái)的文本校對(duì)任務(wù)也越來(lái)越繁重,傳統(tǒng)的人工校對(duì)不僅校對(duì)周期長(zhǎng)、勞動(dòng)強(qiáng)度大,而且效率低,研究快速高效的自動(dòng)校對(duì)方法是十分必要的。
基于概率統(tǒng)計(jì)的中文文本校對(duì)方法通過(guò)構(gòu)建混淆集,分析目標(biāo)詞語(yǔ)與其上下文詞語(yǔ)的同現(xiàn)特征及搭配特征,判斷哪些錯(cuò)誤需要校對(duì),并在混淆集中選取概率值最高的詞語(yǔ)替換目標(biāo)詞語(yǔ),從而進(jìn)行文本校對(duì)[1]。然而,對(duì)于長(zhǎng)距離的文本錯(cuò)誤及語(yǔ)義錯(cuò)誤,此類方法往往效果不佳。近年來(lái),隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,將深度學(xué)習(xí)技術(shù)應(yīng)用于中文文本自動(dòng)校對(duì)任務(wù)成為了一種新的發(fā)展方向。
深度學(xué)習(xí)技術(shù)中的Transformer模型在Google于2017年6月發(fā)布在arXiv上的一篇文章《Attention is all you need》中提出[2],使用完全基于Self-Attention即“自注意力機(jī)制”的網(wǎng)絡(luò)結(jié)構(gòu),拋棄了傳統(tǒng)Encoder-Decoder即“編碼器-解碼器”模型必須使用RNN或CNN的固有模式[3]。本文首次將其應(yīng)用于中文文本自動(dòng)校對(duì)任務(wù),實(shí)驗(yàn)結(jié)果表明該模型可以較好地解決中文文本自動(dòng)校對(duì)中的遠(yuǎn)距離信息丟失問(wèn)題,進(jìn)一步提升校對(duì)性能。
1 背景
1.1 中文文本自動(dòng)校對(duì)的國(guó)內(nèi)外研究現(xiàn)狀
國(guó)外最早于20世紀(jì)60年代開(kāi)始展開(kāi)英文文本自動(dòng)校對(duì)研究,發(fā)展至今,已取得突破性進(jìn)展,擁有高準(zhǔn)確率和高召回率的校對(duì)方法也已經(jīng)應(yīng)用到實(shí)際產(chǎn)品當(dāng)中[4]。而國(guó)內(nèi)關(guān)于中文文本自動(dòng)校對(duì)的研究起步較晚,于20世紀(jì)90年代開(kāi)始在國(guó)外對(duì)英文文本自動(dòng)校對(duì)研究的基礎(chǔ)上,進(jìn)行中文文本自動(dòng)校對(duì)技術(shù)研究[5]。
目前,國(guó)內(nèi)對(duì)于中文文本自動(dòng)校對(duì)技術(shù)的研究方法主要有以下3種:(1)基于規(guī)則或語(yǔ)言學(xué)知識(shí)的方法[6];(2)基于統(tǒng)計(jì)、概率的方法,如N-gram模型[7];(3)基于特征和Winnow學(xué)習(xí)模型,通過(guò)構(gòu)造混淆集進(jìn)行校對(duì)[8]。以上3種方法均為傳統(tǒng)的中文文本校對(duì)方法[9],本文則是通過(guò)深度學(xué)習(xí)技術(shù)進(jìn)行中文文本自動(dòng)校對(duì),而傳統(tǒng)的深度學(xué)習(xí)技術(shù)通常采用RNN或CNN進(jìn)行中文文本自動(dòng)校對(duì)[10]。
1.2 RNN與CNN在中文文本自動(dòng)校對(duì)的局限性
使用RNN進(jìn)行中文文本自動(dòng)校對(duì)任務(wù)時(shí),通常采用雙向RNN結(jié)構(gòu)[11]。即通過(guò)一個(gè)RNN進(jìn)行從左往右的壓縮表示,另一個(gè)RNN進(jìn)行從右往左的壓縮表示,將兩種壓縮表示結(jié)合起來(lái),作為最終序列的分布式表示。因?yàn)閷?duì)序列中的元素按順序處理,所以兩個(gè)詞之間的交互距離即相對(duì)距離。因此,RNN在長(zhǎng)距離序列中存在信息丟失問(wèn)題,即使是加入了門控機(jī)制的LSTM[12]和GRU,依然無(wú)法解決該問(wèn)題。
使用CNN進(jìn)行中文文本自動(dòng)校對(duì)任務(wù)時(shí),一般使用多層結(jié)構(gòu)來(lái)實(shí)現(xiàn)序列從局部表示到全局表示[13]。一個(gè)詞首先會(huì)在底層CNN單元上與其距離較近的詞產(chǎn)生交互,然后在稍高層次的CNN單元上與更遠(yuǎn)一些的詞產(chǎn)生交互。詞之間的交互距離,與它們的相對(duì)距離成正比,因此使用CNN進(jìn)行中文文本自動(dòng)校對(duì)任務(wù)同樣會(huì)導(dǎo)致遠(yuǎn)距離信息丟失問(wèn)題。
2 Transformer模型
Transformer模型是一種對(duì)序列信息建模的新方法,該模型依然沿用了經(jīng)典的Encoder-Decoder結(jié)構(gòu),不同的是Transformer模型不再使用RNN或CNN,而是使用Self-Attention機(jī)制。該機(jī)制的優(yōu)勢(shì)就是可以獲取文本語(yǔ)義信息而不受詞語(yǔ)之間的相對(duì)距離影響,從而解決遠(yuǎn)距離信息丟失問(wèn)題,提高校對(duì)性能。
2.1 Self-Attention
Self-Attention機(jī)制作為Transformer模型最核心的特點(diǎn),其可以建立當(dāng)前位置詞語(yǔ)與其上下文相關(guān)詞語(yǔ)之間的聯(lián)系。實(shí)現(xiàn)方式為:首先,將輸入向量分別與3個(gè)隨機(jī)初始化的權(quán)值矩陣WQ、WK和WV相乘,計(jì)算得出3個(gè)新的向量,分別為查詢向量q、鍵向量k和值向量v。其中q向量表示為了編碼當(dāng)前詞語(yǔ),需要去注意文本中的其他詞;k向量是當(dāng)前詞的可以被用于檢索的信息;v向量則表示當(dāng)前詞語(yǔ)的實(shí)際內(nèi)容。接下來(lái)計(jì)算Self-Attention的分?jǐn)?shù)值,其決定了在對(duì)輸入句子中的某個(gè)詞語(yǔ)進(jìn)行編碼時(shí),對(duì)句子中其他部分的關(guān)注程度。
如圖1所示,針對(duì)“生度”這個(gè)詞,通過(guò)查詢向量與鍵向量點(diǎn)乘,計(jì)算出其他詞對(duì)于該詞的一個(gè)分?jǐn)?shù)值。首先針對(duì)于本身即q1×k1,然后針對(duì)于第二個(gè)詞即q1×k2;為了減少乘積值過(guò)大對(duì)之后歸一化的影響,將點(diǎn)乘得到的結(jié)果分別除以向量維度的開(kāi)方;之后再做歸一化處理,得到的結(jié)果即每個(gè)詞與當(dāng)前位置詞語(yǔ)的相關(guān)性大?。蛔詈髮⒅迪蛄縱與歸一化后的結(jié)果相乘再相加,得到的結(jié)果即Self-Attetion在當(dāng)前節(jié)點(diǎn)的值。計(jì)算方式如圖1所示。
為了提高計(jì)算速度,本文采用矩陣的方式進(jìn)行計(jì)算,計(jì)算方法如式(1)所示。
其中,Q、K、V分別表示對(duì)應(yīng)的3個(gè)向量矩陣,即查詢矩陣、鍵矩陣和值矩陣;dkey表示向量維度,本文取64維。
2.2 Multi-Headed Attention
為了提升模型性能,加入了 Multi-Headed Attention機(jī)制[14],即“多頭注意力”機(jī)制,通過(guò)初始化多組權(quán)值矩陣進(jìn)行計(jì)算,本文選取8組。將計(jì)算得到8個(gè)矩陣拼接為一個(gè)矩陣,再將一個(gè)隨機(jī)初始化的矩陣與拼接好的矩陣相乘,得到最終矩陣。該機(jī)制的結(jié)構(gòu)如圖2所示。
“多頭注意力”機(jī)制有多個(gè)“注意力頭”,因此可以并行計(jì)算,提高模型訓(xùn)練速度。并且每個(gè)“注意力頭”都有對(duì)應(yīng)的權(quán)值矩陣,實(shí)現(xiàn)不同的線性變換,因此擴(kuò)展了模型關(guān)注序列不同位置的信息的能力,可以對(duì)文本的語(yǔ)義信息有更完整的理解,從而進(jìn)一步提高校對(duì)性能。
3 Transformer模型的實(shí)現(xiàn)
3.1 數(shù)據(jù)預(yù)處理
在Transformer模型構(gòu)造之前,需要對(duì)輸入的數(shù)據(jù)進(jìn)行預(yù)處理[15],包括:數(shù)據(jù)加載、數(shù)據(jù)清洗、分詞、語(yǔ)料轉(zhuǎn)換、分析統(tǒng)計(jì)。其中,數(shù)據(jù)加載是將數(shù)據(jù)集中的數(shù)據(jù)導(dǎo)入模型;數(shù)據(jù)清洗是去除語(yǔ)料中的特殊字符;分詞使用中文分詞工具“jieba分詞”,對(duì)語(yǔ)料進(jìn)行分詞[16];語(yǔ)料轉(zhuǎn)換是將中文詞語(yǔ)轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字編碼,以及對(duì)應(yīng)的數(shù)字編碼轉(zhuǎn)換為中文詞語(yǔ);分析統(tǒng)計(jì)是對(duì)語(yǔ)料進(jìn)行分析,了解語(yǔ)料特征。
3.2 Transformer模型結(jié)構(gòu)
本文中的Transformer模型由6個(gè)編碼器層和6個(gè)解碼器層堆疊組成。待校對(duì)文本在編碼器端輸入,正確文本在解碼器端輸入,通過(guò)監(jiān)督學(xué)習(xí)來(lái)訓(xùn)練模型。即訓(xùn)練階段將訓(xùn)練集中的輸入語(yǔ)料作為編碼器輸入,將對(duì)應(yīng)的正確語(yǔ)料作為解碼器的輸入;在測(cè)試階段將測(cè)試集的待校對(duì)語(yǔ)料作為編碼器的輸入,解碼器端無(wú)輸入,僅依賴前一時(shí)刻的解碼器輸出信息進(jìn)行校對(duì)。其整體結(jié)構(gòu)如圖3所示。
編碼器層內(nèi)部包含兩個(gè)子層,即一個(gè)Self-Attention層和一個(gè)全連接的前饋神經(jīng)網(wǎng)絡(luò)層。Self-Attention層中的查詢向量、鍵向量和值向量均來(lái)自于前一個(gè)編碼器層,因此編碼器層的每個(gè)位置都能去關(guān)注前一層輸出的所有信息,使得當(dāng)前節(jié)點(diǎn)不僅關(guān)注當(dāng)前信息,還能獲得上下文的語(yǔ)義信息。前饋神經(jīng)網(wǎng)絡(luò)層應(yīng)用于Self-Attention層的輸出,由兩個(gè)線性變換和一個(gè)ReLU激活函數(shù)組成。計(jì)算方法如式(2)所示。
其中,W1和W2為模型中神經(jīng)元的權(quán)值,b1和b2為偏置值,x為輸入向量。
編碼器層與解碼器層的結(jié)構(gòu)如圖4所示。
解碼器層不僅包含編碼器層中的兩個(gè)子層,還添加了一個(gè)注意力子層對(duì)編碼器的輸出執(zhí)行多頭注意,其查詢向量來(lái)自于前一個(gè)解碼器層,鍵向量和值向量來(lái)自于編碼器的輸出,因此解碼器的每個(gè)位置都可以關(guān)注到編碼器輸入序列的全部信息,幫助當(dāng)前解碼器節(jié)點(diǎn)獲取到需要關(guān)注的重點(diǎn)內(nèi)容。此外,解碼器的Self-Attention子層加入了masked部分,其可以對(duì)某些值進(jìn)行掩蓋,從而防止模型注意到后續(xù)位置信息。這種屏蔽確保了當(dāng)前的預(yù)測(cè)只能依賴于之前的已知輸出。
3.3 Transformer模型實(shí)現(xiàn)過(guò)程
Transformer模型的內(nèi)部結(jié)構(gòu)如圖5所示。
3.3.1 Embedding
首先,模型對(duì)輸入數(shù)據(jù)進(jìn)行Embedding,即詞嵌入,將輸入詞語(yǔ)轉(zhuǎn)變成向量[17]。將向量輸入到編碼器和解碼器的第一層,經(jīng)過(guò)多頭注意力機(jī)制處理后傳入前饋神經(jīng)網(wǎng)絡(luò),得到的輸出信息作為下一層編碼器和解碼器的輸入[18]。
3.3.2 Positional Encoding
因?yàn)門ransformer模型缺少對(duì)輸入序列中詞語(yǔ)順序的表示,所以需要在編碼器層和解碼器層的輸入添加一個(gè)Positional Encoding向量,即位置編碼向量,維度與輸入向量的維度相同,本文取512維。該向量決定當(dāng)前詞在序列中的位置,計(jì)算方法如式(3)、式(4)所示:
其中,pos是指當(dāng)前詞語(yǔ)在句子中的位置;i表示pos對(duì)應(yīng)的向量值,取值范圍為0~255;dmodel表示向量維度。在偶數(shù)位置,使用正弦編碼;在奇數(shù)位置,使用余弦編碼。最后將位置編碼向量與輸入向量相加,作為輸入傳入模型。
3.3.3 殘差連接和歸一化
編碼器層和解碼器層中每個(gè)子層都加入了殘差連接和歸一化[19]。子層先進(jìn)行殘差連接,避免誤差反向傳播時(shí)的梯度消失,接著對(duì)輸出進(jìn)行歸一化,避免梯度消失或梯度爆炸。剩余連接和歸一化后的輸出表示如式(5)所示:
其中,x為前一層前饋神經(jīng)網(wǎng)絡(luò)或多頭注意力層的輸出向量,SubLayer為注意力機(jī)制函數(shù),LayerNorm為歸一化函數(shù)。
3.3.4 輸出層
當(dāng)解碼器層全部執(zhí)行完畢后,為了將得到的向量映射為本文需要的詞語(yǔ),需要在最后一個(gè)解碼器層后添加一個(gè)全連接層和Softmax層。全連接層輸出logits向量,作為Softmax層的輸入。假設(shè)詞典包括n個(gè)詞語(yǔ),那最終Softmax層會(huì)輸出n個(gè)詞語(yǔ)分別對(duì)應(yīng)的概率值,概率值最大的對(duì)應(yīng)詞語(yǔ)就是最終的輸出結(jié)果。
4 結(jié)果與分析
針對(duì)上述模型,本文設(shè)計(jì)了以下的實(shí)驗(yàn)。本實(shí)驗(yàn)運(yùn)行環(huán)境操作系統(tǒng)為Windows 10,CPU為Intel CoreTM i5-8265,GPU為GTX 1070Ti,運(yùn)行內(nèi)存8 GB。一共進(jìn)行4組實(shí)驗(yàn),分別為傳統(tǒng)的Seq2Seq、加入BiLSTM的Seq2Seq、基于注意力機(jī)制的BiLSTM Seq2Seq與Transformer共4種模型。實(shí)驗(yàn)使用的數(shù)據(jù)集來(lái)自于2018 NLPCC共享的訓(xùn)練數(shù)據(jù)集Task 2,其中提供了717 206條中文文本語(yǔ)句對(duì),將其中的700 000條作訓(xùn)練集,17 206條作測(cè)試集,劃分過(guò)程隨機(jī)。Src代表待校對(duì)語(yǔ)料,Trg表示原句所對(duì)應(yīng)的正確語(yǔ)料。數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1所示,分為訓(xùn)練集和測(cè)試集,統(tǒng)計(jì)了正確語(yǔ)料和錯(cuò)誤語(yǔ)料,以及分詞后的詞語(yǔ)總數(shù)。
為了對(duì)不同模型的校對(duì)效果進(jìn)行評(píng)價(jià),本次實(shí)驗(yàn)采用準(zhǔn)確率、召回率和F1值作為指標(biāo),對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)估,實(shí)驗(yàn)結(jié)果如表2所示。
實(shí)驗(yàn)結(jié)果表明,BiLSTM和注意力機(jī)制均可以在傳統(tǒng)Seq2Seq模型的基礎(chǔ)上提升中文文本校對(duì)效果,然而,Transformer模型的表現(xiàn)更好。并且,深度學(xué)習(xí)模型的校對(duì)效果受到訓(xùn)練次數(shù)和訓(xùn)練數(shù)據(jù)集大小的影響,如果增加Transformer模型的訓(xùn)練次數(shù)和增大訓(xùn)練數(shù)據(jù)集,模型將擁有更好的校對(duì)效果。
5 結(jié)論
本文將Transformer模型應(yīng)用于中文文本自動(dòng)校對(duì)領(lǐng)域,通過(guò)公開(kāi)數(shù)據(jù)集對(duì)該模型的校對(duì)性能進(jìn)行驗(yàn)證,得出該模型的校對(duì)效果相比較于其他的模型在準(zhǔn)確率和召回率方面均有很大提升。
本次實(shí)驗(yàn)由于數(shù)據(jù)集的局限性[20],導(dǎo)致并未展現(xiàn)出Transformer模型的全部能力,但是該模型在中文文本自動(dòng)校對(duì)中的表現(xiàn)依然優(yōu)異,也為Transformer模型應(yīng)用于其他自然語(yǔ)言處理任務(wù)提供了可能性。
參考文獻(xiàn)
[1] 張仰森,俞士汶.文本自動(dòng)校對(duì)技術(shù)研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2006(6):8-12.
[2] VASWANI A,SHAZEER N,PARMAR N,et al.Attention is all you need[J].Comouting Research Respository,2017,arXiv:1706:87-90.
[3] ZHANG C,WANG X,YU S,et al.Research on keyword extraction of Word2vec model in Chinese corpus[C].IEEE/ACIS 17th International Conference on Computer and Information Science(ICIS).IEEE,2018:339-343.
[4] 張濤.中文文本自動(dòng)校對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2017.
[5] 劉亮亮,王石,王東升,等.領(lǐng)域問(wèn)答系統(tǒng)中的文本錯(cuò)誤自動(dòng)發(fā)現(xiàn)方法[J].中文信息學(xué)報(bào),2013,27(3):77-83.
[6] 劉亮亮,曹存根.中文“非多字詞錯(cuò)誤”自動(dòng)校對(duì)方法研究[J].計(jì)算機(jī)科學(xué),2016,43(10):200-205.
[7] 張仰森,曹大元,俞士汶.基于規(guī)則與統(tǒng)計(jì)相結(jié)合的中文文本自動(dòng)查錯(cuò)模型與算法[J].中文信息學(xué)報(bào),2005,20(4):1-8.
[8] 張仰森,唐安杰,張澤偉.面向政治新聞?lì)I(lǐng)域的中文文本校對(duì)方法研究[J].中文信息學(xué)報(bào),2014,28(6):79-84.
[9] 張仰森,鄭佳.中文文本語(yǔ)義錯(cuò)誤偵測(cè)方法研究[J].計(jì)算機(jī)學(xué)報(bào),2017,40(4):911-924.
[10] Wu Yonghui,SCHUSTER M,Chen Zhifeng,et al.Google′s neural machine translation system bridging the gap between human and machine translation[J].Computing Research Repository,2016,arXiv:1609:56-59.
[11] Chung Junyoung,GULCEHRE C,CHO K,et al.Empirical evaluation of gated recurrent neural networks on sequence modeling[J].CoRR,2014,abs/1412:78-81.
[12] Cheng Jianpeng,LAPATA M.Long short-term memory-networks for machine reading[J].arXiv Preprint 2016,arXiv:1601:127-130.
[13] GEHRING J,AULI M,GRANGIER D,et al.Convolutional sequence to sequence learning[J].arXiv Preprint 2017,arXiv:1705:68-71.
[14] LUONG M T,LE Q V,SUTSKEVER I,et al.Multi-task sequence to sequence learning[J].arXiv Preprint 2015,arXiv:1511:114-117.
[15] 王潔,喬藝璇,彭巖,等.基于深度學(xué)習(xí)的美國(guó)媒體“一帶一路”輿情的情感分析[J].電子技術(shù)應(yīng)用,2018,44(11):102-106.
[16] 孫鐵利,劉延吉.中文分詞技術(shù)的研究現(xiàn)狀與困難[J].2012(1):187-192.
[17] Lin Zhouhan,F(xiàn)eng Minwei,NOGUEIRA C,et al. A struc-tured self-attentive sentence embedding[J].arXiv Preprint 2017,arXiv:1703:116-119.
[18] PRESS O,WOLF L.Using the output embedding to improve language models[J].arXiv Preprint 2016,arXiv:1608:67-70.
[19] BA J L,KIROS J R,HINTON G E.Layer normalization[J].arXiv Preprint 2016,arXiv:1607:45-49.
[20] 字云飛,李業(yè)麗,孫華艷.基于深度神經(jīng)網(wǎng)絡(luò)的個(gè)性化推薦系統(tǒng)研究[J].電子技術(shù)應(yīng)用,2019,45(1):14-18.
作者信息:
龔永罡,裴晨晨,廉小親,王嘉欣
(北京工商大學(xué) 計(jì)算機(jī)與信息工程學(xué)院食品安全大數(shù)據(jù)技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京100048)