文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.191013
中文引用格式: 龔永罡,,裴晨晨,廉小親,,等. 基于Transformer模型的中文文本自動校對研究[J].電子技術應用,,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ù)時代,每天都會產(chǎn)生大量的文本信息,,隨之而來的文本校對任務也越來越繁重,,傳統(tǒng)的人工校對不僅校對周期長、勞動強度大,,而且效率低,,研究快速高效的自動校對方法是十分必要的。
基于概率統(tǒng)計的中文文本校對方法通過構建混淆集,,分析目標詞語與其上下文詞語的同現(xiàn)特征及搭配特征,,判斷哪些錯誤需要校對,并在混淆集中選取概率值最高的詞語替換目標詞語,,從而進行文本校對[1],。然而,對于長距離的文本錯誤及語義錯誤,,此類方法往往效果不佳,。近年來,隨著深度學習技術的快速發(fā)展,,將深度學習技術應用于中文文本自動校對任務成為了一種新的發(fā)展方向,。
深度學習技術中的Transformer模型在Google于2017年6月發(fā)布在arXiv上的一篇文章《Attention is all you need》中提出[2],使用完全基于Self-Attention即“自注意力機制”的網(wǎng)絡結構,,拋棄了傳統(tǒng)Encoder-Decoder即“編碼器-解碼器”模型必須使用RNN或CNN的固有模式[3],。本文首次將其應用于中文文本自動校對任務,實驗結果表明該模型可以較好地解決中文文本自動校對中的遠距離信息丟失問題,,進一步提升校對性能,。
1 背景
1.1 中文文本自動校對的國內(nèi)外研究現(xiàn)狀
國外最早于20世紀60年代開始展開英文文本自動校對研究,發(fā)展至今,,已取得突破性進展,,擁有高準確率和高召回率的校對方法也已經(jīng)應用到實際產(chǎn)品當中[4],。而國內(nèi)關于中文文本自動校對的研究起步較晚,于20世紀90年代開始在國外對英文文本自動校對研究的基礎上,,進行中文文本自動校對技術研究[5]。
目前,,國內(nèi)對于中文文本自動校對技術的研究方法主要有以下3種:(1)基于規(guī)則或語言學知識的方法[6],;(2)基于統(tǒng)計、概率的方法,,如N-gram模型[7],;(3)基于特征和Winnow學習模型,通過構造混淆集進行校對[8],。以上3種方法均為傳統(tǒng)的中文文本校對方法[9],,本文則是通過深度學習技術進行中文文本自動校對,而傳統(tǒng)的深度學習技術通常采用RNN或CNN進行中文文本自動校對[10],。
1.2 RNN與CNN在中文文本自動校對的局限性
使用RNN進行中文文本自動校對任務時,,通常采用雙向RNN結構[11]。即通過一個RNN進行從左往右的壓縮表示,,另一個RNN進行從右往左的壓縮表示,,將兩種壓縮表示結合起來,作為最終序列的分布式表示,。因為對序列中的元素按順序處理,,所以兩個詞之間的交互距離即相對距離。因此,,RNN在長距離序列中存在信息丟失問題,,即使是加入了門控機制的LSTM[12]和GRU,依然無法解決該問題,。
使用CNN進行中文文本自動校對任務時,,一般使用多層結構來實現(xiàn)序列從局部表示到全局表示[13]。一個詞首先會在底層CNN單元上與其距離較近的詞產(chǎn)生交互,,然后在稍高層次的CNN單元上與更遠一些的詞產(chǎn)生交互,。詞之間的交互距離,與它們的相對距離成正比,,因此使用CNN進行中文文本自動校對任務同樣會導致遠距離信息丟失問題,。
2 Transformer模型
Transformer模型是一種對序列信息建模的新方法,該模型依然沿用了經(jīng)典的Encoder-Decoder結構,,不同的是Transformer模型不再使用RNN或CNN,,而是使用Self-Attention機制。該機制的優(yōu)勢就是可以獲取文本語義信息而不受詞語之間的相對距離影響,,從而解決遠距離信息丟失問題,,提高校對性能,。
2.1 Self-Attention
Self-Attention機制作為Transformer模型最核心的特點,其可以建立當前位置詞語與其上下文相關詞語之間的聯(lián)系,。實現(xiàn)方式為:首先,,將輸入向量分別與3個隨機初始化的權值矩陣WQ、WK和WV相乘,,計算得出3個新的向量,,分別為查詢向量q、鍵向量k和值向量v,。其中q向量表示為了編碼當前詞語,,需要去注意文本中的其他詞;k向量是當前詞的可以被用于檢索的信息,;v向量則表示當前詞語的實際內(nèi)容,。接下來計算Self-Attention的分數(shù)值,其決定了在對輸入句子中的某個詞語進行編碼時,,對句子中其他部分的關注程度,。
如圖1所示,針對“生度”這個詞,,通過查詢向量與鍵向量點乘,,計算出其他詞對于該詞的一個分數(shù)值。首先針對于本身即q1×k1,,然后針對于第二個詞即q1×k2,;為了減少乘積值過大對之后歸一化的影響,將點乘得到的結果分別除以向量維度的開方,;之后再做歸一化處理,,得到的結果即每個詞與當前位置詞語的相關性大小,;最后將值向量v與歸一化后的結果相乘再相加,,得到的結果即Self-Attetion在當前節(jié)點的值。計算方式如圖1所示,。
為了提高計算速度,,本文采用矩陣的方式進行計算,計算方法如式(1)所示,。
其中,,Q、K,、V分別表示對應的3個向量矩陣,,即查詢矩陣、鍵矩陣和值矩陣,;dkey表示向量維度,,本文取64維,。
2.2 Multi-Headed Attention
為了提升模型性能,加入了 Multi-Headed Attention機制[14],,即“多頭注意力”機制,,通過初始化多組權值矩陣進行計算,本文選取8組,。將計算得到8個矩陣拼接為一個矩陣,,再將一個隨機初始化的矩陣與拼接好的矩陣相乘,得到最終矩陣,。該機制的結構如圖2所示。
“多頭注意力”機制有多個“注意力頭”,,因此可以并行計算,,提高模型訓練速度。并且每個“注意力頭”都有對應的權值矩陣,,實現(xiàn)不同的線性變換,,因此擴展了模型關注序列不同位置的信息的能力,可以對文本的語義信息有更完整的理解,,從而進一步提高校對性能,。
3 Transformer模型的實現(xiàn)
3.1 數(shù)據(jù)預處理
在Transformer模型構造之前,需要對輸入的數(shù)據(jù)進行預處理[15],,包括:數(shù)據(jù)加載,、數(shù)據(jù)清洗、分詞,、語料轉換,、分析統(tǒng)計。其中,,數(shù)據(jù)加載是將數(shù)據(jù)集中的數(shù)據(jù)導入模型,;數(shù)據(jù)清洗是去除語料中的特殊字符;分詞使用中文分詞工具“jieba分詞”,,對語料進行分詞[16],;語料轉換是將中文詞語轉換成對應的數(shù)字編碼,以及對應的數(shù)字編碼轉換為中文詞語,;分析統(tǒng)計是對語料進行分析,,了解語料特征。
3.2 Transformer模型結構
本文中的Transformer模型由6個編碼器層和6個解碼器層堆疊組成,。待校對文本在編碼器端輸入,,正確文本在解碼器端輸入,通過監(jiān)督學習來訓練模型,。即訓練階段將訓練集中的輸入語料作為編碼器輸入,,將對應的正確語料作為解碼器的輸入,;在測試階段將測試集的待校對語料作為編碼器的輸入,解碼器端無輸入,,僅依賴前一時刻的解碼器輸出信息進行校對,。其整體結構如圖3所示。
編碼器層內(nèi)部包含兩個子層,,即一個Self-Attention層和一個全連接的前饋神經(jīng)網(wǎng)絡層,。Self-Attention層中的查詢向量、鍵向量和值向量均來自于前一個編碼器層,,因此編碼器層的每個位置都能去關注前一層輸出的所有信息,,使得當前節(jié)點不僅關注當前信息,還能獲得上下文的語義信息,。前饋神經(jīng)網(wǎng)絡層應用于Self-Attention層的輸出,,由兩個線性變換和一個ReLU激活函數(shù)組成。計算方法如式(2)所示,。
其中,,W1和W2為模型中神經(jīng)元的權值,b1和b2為偏置值,,x為輸入向量,。
編碼器層與解碼器層的結構如圖4所示。
解碼器層不僅包含編碼器層中的兩個子層,,還添加了一個注意力子層對編碼器的輸出執(zhí)行多頭注意,,其查詢向量來自于前一個解碼器層,鍵向量和值向量來自于編碼器的輸出,,因此解碼器的每個位置都可以關注到編碼器輸入序列的全部信息,,幫助當前解碼器節(jié)點獲取到需要關注的重點內(nèi)容。此外,,解碼器的Self-Attention子層加入了masked部分,,其可以對某些值進行掩蓋,從而防止模型注意到后續(xù)位置信息,。這種屏蔽確保了當前的預測只能依賴于之前的已知輸出,。
3.3 Transformer模型實現(xiàn)過程
Transformer模型的內(nèi)部結構如圖5所示。
3.3.1 Embedding
首先,,模型對輸入數(shù)據(jù)進行Embedding,,即詞嵌入,將輸入詞語轉變成向量[17],。將向量輸入到編碼器和解碼器的第一層,,經(jīng)過多頭注意力機制處理后傳入前饋神經(jīng)網(wǎng)絡,得到的輸出信息作為下一層編碼器和解碼器的輸入[18],。
3.3.2 Positional Encoding
因為Transformer模型缺少對輸入序列中詞語順序的表示,,所以需要在編碼器層和解碼器層的輸入添加一個Positional Encoding向量,,即位置編碼向量,維度與輸入向量的維度相同,,本文取512維,。該向量決定當前詞在序列中的位置,計算方法如式(3),、式(4)所示:
其中,,pos是指當前詞語在句子中的位置;i表示pos對應的向量值,,取值范圍為0~255,;dmodel表示向量維度。在偶數(shù)位置,,使用正弦編碼,;在奇數(shù)位置,使用余弦編碼,。最后將位置編碼向量與輸入向量相加,作為輸入傳入模型,。
3.3.3 殘差連接和歸一化
編碼器層和解碼器層中每個子層都加入了殘差連接和歸一化[19],。子層先進行殘差連接,避免誤差反向傳播時的梯度消失,,接著對輸出進行歸一化,,避免梯度消失或梯度爆炸。剩余連接和歸一化后的輸出表示如式(5)所示:
其中,,x為前一層前饋神經(jīng)網(wǎng)絡或多頭注意力層的輸出向量,,SubLayer為注意力機制函數(shù),LayerNorm為歸一化函數(shù),。
3.3.4 輸出層
當解碼器層全部執(zhí)行完畢后,,為了將得到的向量映射為本文需要的詞語,需要在最后一個解碼器層后添加一個全連接層和Softmax層,。全連接層輸出logits向量,,作為Softmax層的輸入。假設詞典包括n個詞語,,那最終Softmax層會輸出n個詞語分別對應的概率值,,概率值最大的對應詞語就是最終的輸出結果。
4 結果與分析
針對上述模型,,本文設計了以下的實驗,。本實驗運行環(huán)境操作系統(tǒng)為Windows 10,CPU為Intel CoreTM i5-8265,,GPU為GTX 1070Ti,,運行內(nèi)存8 GB,。一共進行4組實驗,分別為傳統(tǒng)的Seq2Seq,、加入BiLSTM的Seq2Seq,、基于注意力機制的BiLSTM Seq2Seq與Transformer共4種模型。實驗使用的數(shù)據(jù)集來自于2018 NLPCC共享的訓練數(shù)據(jù)集Task 2,,其中提供了717 206條中文文本語句對,,將其中的700 000條作訓練集,17 206條作測試集,,劃分過程隨機,。Src代表待校對語料,Trg表示原句所對應的正確語料,。數(shù)據(jù)集的統(tǒng)計數(shù)據(jù)如表1所示,,分為訓練集和測試集,統(tǒng)計了正確語料和錯誤語料,,以及分詞后的詞語總數(shù),。
為了對不同模型的校對效果進行評價,本次實驗采用準確率,、召回率和F1值作為指標,,對實驗結果進行評估,實驗結果如表2所示,。
實驗結果表明,,BiLSTM和注意力機制均可以在傳統(tǒng)Seq2Seq模型的基礎上提升中文文本校對效果,然而,,Transformer模型的表現(xiàn)更好,。并且,深度學習模型的校對效果受到訓練次數(shù)和訓練數(shù)據(jù)集大小的影響,,如果增加Transformer模型的訓練次數(shù)和增大訓練數(shù)據(jù)集,,模型將擁有更好的校對效果。
5 結論
本文將Transformer模型應用于中文文本自動校對領域,,通過公開數(shù)據(jù)集對該模型的校對性能進行驗證,,得出該模型的校對效果相比較于其他的模型在準確率和召回率方面均有很大提升。
本次實驗由于數(shù)據(jù)集的局限性[20],,導致并未展現(xiàn)出Transformer模型的全部能力,,但是該模型在中文文本自動校對中的表現(xiàn)依然優(yōu)異,也為Transformer模型應用于其他自然語言處理任務提供了可能性,。
參考文獻
[1] 張仰森,,俞士汶.文本自動校對技術研究綜述[J].計算機應用研究,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] 張濤.中文文本自動校對系統(tǒng)設計與實現(xiàn)[D].成都:西南交通大學,2017.
[5] 劉亮亮,,王石,,王東升,等.領域問答系統(tǒng)中的文本錯誤自動發(fā)現(xiàn)方法[J].中文信息學報,,2013,,27(3):77-83.
[6] 劉亮亮,曹存根.中文“非多字詞錯誤”自動校對方法研究[J].計算機科學,,2016,,43(10):200-205.
[7] 張仰森,曹大元,,俞士汶.基于規(guī)則與統(tǒng)計相結合的中文文本自動查錯模型與算法[J].中文信息學報,,2005,20(4):1-8.
[8] 張仰森,,唐安杰,張澤偉.面向政治新聞領域的中文文本校對方法研究[J].中文信息學報,,2014,,28(6):79-84.
[9] 張仰森,鄭佳.中文文本語義錯誤偵測方法研究[J].計算機學報,,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] 王潔,,喬藝璇,,彭巖,等.基于深度學習的美國媒體“一帶一路”輿情的情感分析[J].電子技術應用,,2018,,44(11):102-106.
[16] 孫鐵利,劉延吉.中文分詞技術的研究現(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)絡的個性化推薦系統(tǒng)研究[J].電子技術應用,2019,,45(1):14-18.
作者信息:
龔永罡,,裴晨晨,廉小親,,王嘉欣
(北京工商大學 計算機與信息工程學院食品安全大數(shù)據(jù)技術北京市重點實驗室,,北京100048)