任華健,郝秀蘭,徐穩(wěn)靜
融合遞增詞匯選擇的深度學(xué)習(xí)中文輸入法
任華健,郝秀蘭,徐穩(wěn)靜
(湖州師范學(xué)院浙江省現(xiàn)代農(nóng)業(yè)資源智慧管理與應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江 湖州 313000)
輸入法的核心任務(wù)是將用戶輸入的按鍵序列轉(zhuǎn)化為漢字序列。應(yīng)用深度學(xué)習(xí)算法的輸入法在學(xué)習(xí)長距離依賴和解決數(shù)據(jù)稀疏問題方面存在優(yōu)勢(shì),然而現(xiàn)有方法仍存在兩方面問題,一是采用的拼音切分與轉(zhuǎn)換分離的結(jié)構(gòu)導(dǎo)致了誤差傳播,二是模型復(fù)雜難以滿足輸入法對(duì)實(shí)時(shí)性的需求。針對(duì)上述不足提出了一種融合了遞增詞匯選擇算法的深度學(xué)習(xí)的輸入法模型并對(duì)比了多種softmax優(yōu)化方法。在人民日?qǐng)?bào)數(shù)據(jù)和中文維基百科數(shù)據(jù)上進(jìn)行的實(shí)驗(yàn)表明,該模型的轉(zhuǎn)換準(zhǔn)確率相較當(dāng)前最高性能提升了15%,融合遞增詞匯選擇算法使模型在不損失轉(zhuǎn)換精度的同時(shí)速度提升了130倍。
中文輸入法;長短期記憶;詞匯選擇
英語等拉丁語系用戶可以通過計(jì)算機(jī)鍵盤直接輸入想要的詞句,然而由于漢字總量十分龐大,直接輸入并不現(xiàn)實(shí),中文用戶需要借助輸入法進(jìn)行漢字輸入。輸入法的核心任務(wù)是將用戶輸入的按鍵序列轉(zhuǎn)化為相應(yīng)的漢字序列。理想情況下,輸入法的轉(zhuǎn)換結(jié)果應(yīng)與用戶期望輸入的漢字序列相同。輸入法的轉(zhuǎn)換準(zhǔn)確率和轉(zhuǎn)換速度直接影響著輸入效率和用戶體驗(yàn)。
輸入法內(nèi)核的轉(zhuǎn)換任務(wù)與語音識(shí)別、機(jī)器翻譯相似,可以看作一項(xiàng)序列解碼任務(wù)。傳統(tǒng)的統(tǒng)計(jì)機(jī)器學(xué)習(xí)算法采用元語法語言模型[1]計(jì)算詞網(wǎng)格中最優(yōu)路徑的概率。該模型需要通過增大值學(xué)習(xí)語料中的長距離特征,但過大的值會(huì)帶來數(shù)據(jù)稀疏問題,在實(shí)踐中普遍采用三元語法語言模型。相較于傳統(tǒng)模型,基于深度學(xué)習(xí)算法的語言模型具有能夠在學(xué)習(xí)長距離特征的同時(shí)不易受數(shù)據(jù)稀疏問題制約的特點(diǎn),因此獲得了廣泛研究。在機(jī)器翻譯[2]、語音識(shí)別[3]、情感分析[4-5]等自然語言處理任務(wù)中,基于深度學(xué)習(xí)算法的模型取得了更高的性能。近幾年來張量處理單元[6](tensor processing unit,TPU)等硬件方面的研究進(jìn)展為深度學(xué)習(xí)模型的應(yīng)用提供了更加廣闊的前景。
然而基于深度學(xué)習(xí)的模型仍然難以直接應(yīng)用在輸入法的轉(zhuǎn)換任務(wù)中。與語音識(shí)別和機(jī)器翻譯多由云服務(wù)器提供不同,輸入法需要運(yùn)行在多樣化的用戶設(shè)備上并提供實(shí)時(shí)交互服務(wù)。即使有很多輸入法廠商提供了云候選,但是其轉(zhuǎn)換結(jié)果因?yàn)闀r(shí)延較高,往往只能作為次后選。一個(gè)能夠適用于輸入法轉(zhuǎn)換任務(wù)的深度學(xué)習(xí)模型需要滿足以下兩點(diǎn)要求:能夠?yàn)槊看斡脩舻陌存I輸入提供低時(shí)延的轉(zhuǎn)換結(jié)果;能夠在轉(zhuǎn)換完成后允許用戶對(duì)候選結(jié)果進(jìn)行編輯。
首先,輸入法轉(zhuǎn)換任務(wù)的輸入序列是逐個(gè)獲得的,并且需要在每一次收到按鍵信息后立即返回詞網(wǎng)格中的最優(yōu)路徑?,F(xiàn)存的優(yōu)化手段[7-8]普遍著眼于提升對(duì)序列進(jìn)行批處理時(shí)的速度。文獻(xiàn)[9]的方法融合了前綴樹,但是無法保證在最壞情況下運(yùn)算時(shí)間仍然能夠滿足實(shí)時(shí)應(yīng)用的需求。其次,輸入法在給出轉(zhuǎn)換結(jié)果后,允許用戶以手動(dòng)選擇候選詞的方式對(duì)詞網(wǎng)格進(jìn)行編輯。這一特點(diǎn)限制了多種端到端模型[10-11]的使用,因?yàn)樗鼈兌紱]有提供允許用戶編輯部分轉(zhuǎn)換結(jié)果的方法。
為滿足輸入法轉(zhuǎn)換任務(wù)的要求,本文提出了一個(gè)新的基于深度學(xué)習(xí)算法的輸入法模型。在該模型中,用戶輸入首先被切分成拼音音節(jié),通過維特比解碼器構(gòu)造出相應(yīng)的詞網(wǎng)格。然后通過融合遞增詞匯選擇的長短期記憶[12](long short-term memory,LSTM)語言模型計(jì)算最優(yōu)路徑的概率。該語言模型在解碼過程的第步構(gòu)建一個(gè)輸入法總詞匯表的子集V。由于V中詞匯的數(shù)量通常在總詞匯量的1%以下,僅在V上執(zhí)行softmax運(yùn)算,模型消耗的時(shí)間相較基線模型有了大幅降低。
早期相關(guān)研究常采用基于統(tǒng)計(jì)語言模型[13]或統(tǒng)計(jì)機(jī)器翻譯[14]的方法。近年來出現(xiàn)了采用深度學(xué)習(xí)算法的研究。文獻(xiàn)[15]將輸入法轉(zhuǎn)換任務(wù)看作機(jī)器翻譯,使用了一個(gè)融合注意力機(jī)制的編碼器-解碼器模型完成音字轉(zhuǎn)換任務(wù),并使用信息檢索技術(shù)對(duì)模型的聯(lián)想輸入功能進(jìn)行了增強(qiáng)。文獻(xiàn)[16]在基于LSTM的編碼器-解碼器模型基礎(chǔ)上,通過在線詞匯更新算法擴(kuò)充輸入法詞匯表,提高了轉(zhuǎn)換準(zhǔn)確率。文獻(xiàn)[17]通過在輸入法中增加輸入上下文的編碼模塊,提高了模型在簡(jiǎn)拼模式下的表現(xiàn)。文獻(xiàn)[18]使用一個(gè)字符級(jí)中文預(yù)訓(xùn)練語言模型作為輸入法核心完成音字轉(zhuǎn)換,并獲得了當(dāng)前最高性能(state-of-the-art,SOTA),同時(shí)研究了基于預(yù)訓(xùn)練語言模型的輸入法在簡(jiǎn)拼場(chǎng)景下的表現(xiàn)。現(xiàn)有模型普遍比較復(fù)雜,需要在GPU的支持下才能運(yùn)行,文獻(xiàn)[15]則是將輸入法轉(zhuǎn)換任務(wù)和聯(lián)想功能等功能全部架設(shè)在云服務(wù)器上。本文工作的重點(diǎn)是在計(jì)算資源有限的用戶設(shè)備上實(shí)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)輸入法。
具有大量詞匯的softmax層是神經(jīng)網(wǎng)絡(luò)語言模型中計(jì)算量最大的操作,目前針對(duì)softmax瓶頸的解決方法主要有兩種。其一是對(duì)softmax運(yùn)算進(jìn)行近似。文獻(xiàn)[19]提出的差異化softmax(differentiated softmax)及文獻(xiàn)[20]提出的自適應(yīng)softmax(adaptive softmax)將語言模型中頻率較低的長尾詞匯按詞頻進(jìn)行分割,并減少其嵌入向量維度,從而降低softmax運(yùn)算的計(jì)算量。對(duì)于預(yù)測(cè)任務(wù),其前個(gè)候選的重要性較高,文獻(xiàn)[21]提出的奇異值分解softmax(singular value decomposition softmax,SVD-softmax)對(duì)權(quán)重矩陣進(jìn)行奇異值分解,并使用得到的低秩矩陣進(jìn)行softmax運(yùn)算。在解碼過程中,如果目標(biāo)詞匯有一個(gè)確定的范圍,則可以使用結(jié)構(gòu)化輸出層[22]避免計(jì)算所有詞匯的概率分布。文獻(xiàn)[23]提出了一種快速詞圖解碼方法,該方法可以在對(duì)數(shù)時(shí)間復(fù)雜度內(nèi)找到神經(jīng)網(wǎng)絡(luò)語言模型前個(gè)最有可能的預(yù)測(cè)。
另一種解決softmax瓶頸的方法是對(duì)推理過程的詞匯進(jìn)行操作,與機(jī)器翻譯任務(wù)中的方法相似。即先針對(duì)待翻譯的句子構(gòu)建一個(gè)可能使用的總詞匯表的子集,然后在這一子集上進(jìn)行softmax運(yùn)算[24-25]。文獻(xiàn)[26]提出了一種針對(duì)日語輸入法的詞匯選擇方法,降低了模型推理時(shí)間?;趩巫值哪P停鐔巫盅h(huán)神經(jīng)網(wǎng)絡(luò)[27-28](recurrent neural network,RNN)語言模型相較于基于詞語的模型可以大幅減少模型中的詞匯量,然而漢字的數(shù)量仍然不是一個(gè)小數(shù)目,并且這種方法無法利用詞語的信息,所以會(huì)導(dǎo)致模型準(zhǔn)確率大幅下降。
受上述研究啟發(fā),本文提出一種融合遞增詞匯選擇方法的深度學(xué)習(xí)輸入法模型,該模型使用詞網(wǎng)格進(jìn)行解碼,可以在用戶輸入過程中遞增地構(gòu)建所需詞匯表,提升了轉(zhuǎn)換準(zhǔn)確率并降低了轉(zhuǎn)換任務(wù)中序列解碼所需的時(shí)間。
本文提出的長短期記憶語言模型輸入法模型總體架構(gòu)如圖1所示。考慮模型的實(shí)時(shí)性目標(biāo),本文采用一個(gè)LSTM語言模型計(jì)算詞網(wǎng)格解碼器中不同句子的路徑概率。由于序列到序列[10]等模型不能動(dòng)態(tài)遞增地生成轉(zhuǎn)換結(jié)果,本文沒有采用這類模型。
在音字轉(zhuǎn)換任務(wù)中,用戶按鍵輸入首先被切分為拼音音節(jié)序列。對(duì)第步輸入產(chǎn)生的音節(jié)序列(1,···,x),用式(1)查找字典中滿足該序列所有后綴的詞語組成詞網(wǎng)格。
其中,fetch(·)函數(shù)從輸入法總詞匯表中查找并返回所有符合部分序列(x,···,x)的詞匯。例如,對(duì)于音節(jié)序列“zai hu zhou”,產(chǎn)生的子詞匯集D包含所有匹配“zai hu zhou”“hu zhou”和“zhou”的結(jié)果。
圖1 長短期記憶語言模型輸入法模型總體架構(gòu)
對(duì)于詞匯表子集中的任意詞語w∈D,為了構(gòu)造一個(gè)以w結(jié)尾的候選π,之前步驟生成的部分候選π被用作計(jì)算(w|π)的上下文,其中,是w的長度,只有字符數(shù)量匹配的部分候選才會(huì)被連接成一個(gè)完整的候選。最后,使用一個(gè)束寬度為的維特比解碼器對(duì)候選進(jìn)行排序。
在維特比解碼器中,使用LSTM語言模型計(jì)算(w|π)。對(duì)于每一個(gè)輸入序列,音字轉(zhuǎn)換任務(wù)需要進(jìn)行步LSTM運(yùn)算,其中是詞匯表中詞匯的數(shù)量,是音節(jié)序列的長度,輸入法主要的計(jì)算量集中于LSTM單元和softmax的矩陣運(yùn)算。假設(shè)一個(gè)輸入法的詞匯總量為10萬,使用一個(gè)嵌入向量維度和隱藏維度均為512的LSTM語言模型,以矩陣中的乘法為基準(zhǔn)操作估計(jì)。LSTM單元中有4處矩陣乘法,每處為兩個(gè)512維向量與512維權(quán)重方陣相乘,為操作數(shù)量的高階項(xiàng),總計(jì)512×512×2×4次乘法操作,數(shù)量約為200萬。在softmax層,需要將512維向量投影成10萬維以計(jì)算每個(gè)詞匯的概率,為操作數(shù)量的高階項(xiàng),總計(jì)512×100 000次乘法操作,數(shù)量約為5 000萬,占比為51 200 000/53 200 000,為總量的96%以上。對(duì)于應(yīng)用于中文輸入法的擁有大量詞匯的語言模型而言,其時(shí)間效率瓶頸在于softmax操作中的大量矩陣運(yùn)算。
為了降低解碼過程中softmax的運(yùn)算量,本文使用遞增詞匯選擇算法改進(jìn)了LSTM基線模型,如算法1所示。
算法1 遞增詞匯選擇
初始化:束寬度,候選字典[],采樣詞匯V,當(dāng)前時(shí)間步
其中,是存儲(chǔ)每一步最優(yōu)候選及其LSTM隱藏狀態(tài)的字典。定義[·]為某一特定時(shí)間步用于獲取當(dāng)前最優(yōu)候選的查找操作。的初始內(nèi)容為上一次音字轉(zhuǎn)換任務(wù)結(jié)果及其LSTM隱藏狀態(tài),第一次轉(zhuǎn)換任務(wù)時(shí)為空。
在第步,接收到一個(gè)新的拼音音節(jié)x時(shí),算法構(gòu)造一個(gè)相應(yīng)的詞匯表V,如式(2)所示,V中覆蓋了所有到第步為止可能出現(xiàn)的詞語。
對(duì)候選(π,w)進(jìn)行排序需要計(jì)算概率(w|π),而該概率已經(jīng)在[]計(jì)算過并存儲(chǔ)在字典中了。然而,因?yàn)?i>V的構(gòu)建是遞增的,所以在之前步驟計(jì)算的概率分布中可能并沒有包含w。所以,為了計(jì)算[],需要修復(fù)之前概率分布計(jì)算中缺失的詞匯??梢酝ㄟ^式(3)修正第步的概率。
其中,是輸出層的權(quán)重矩陣,是對(duì)應(yīng)候選π的LSTM隱藏狀態(tài),是詞匯集V和V的差集。在當(dāng)前第步向詞網(wǎng)格中新增中的詞匯后,導(dǎo)致與之前步驟進(jìn)行softmax運(yùn)算時(shí)的分母不一致,所以該步在之前softmax結(jié)果的分母中加入新增詞匯對(duì)應(yīng)的輸出單元的值,即分母中的第二項(xiàng),可以保持各步涉及詞匯進(jìn)行softmax概率計(jì)算時(shí)的分母相同。因?yàn)樵~網(wǎng)格解碼器中的每一條路徑都有不同的缺失詞匯,所以先取這些詞匯的并集fix,再重新計(jì)算所有路徑的概率。因?yàn)樵谝淮屋斎肭皫撞降脑~匯集比較小,所以引入從整體詞匯表中采樣出的一個(gè)特定子集V。后續(xù)實(shí)驗(yàn)中對(duì)比了兩種不同采樣方式的效果:其一是頂端采樣,即從總詞匯表中選出詞頻最高的若干詞作為V;其二是均勻采樣,即從總詞匯表中隨機(jī)選出若干詞匯作為V。當(dāng)僅使用V時(shí)相當(dāng)于去掉了softmax分母中的部分項(xiàng),此時(shí)會(huì)導(dǎo)致概率偏大,將采樣出的詞匯集與之合并,同時(shí)使用V和V,使詞語的概率更加接近原始概率。計(jì)算結(jié)束后,[]中最優(yōu)的個(gè)候選將會(huì)作為輸入法音字轉(zhuǎn)換任務(wù)的結(jié)果返回給用戶。
為了驗(yàn)證模型的效果,本文分別在兩個(gè)不同的中文數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。
(1)人民日?qǐng)?bào)實(shí)體數(shù)據(jù)集。該數(shù)據(jù)集語料提取自1992—1998年的人民日?qǐng)?bào)新聞內(nèi)容,是中文輸入法研究中常用的數(shù)據(jù)集[14]。其中,訓(xùn)練集包含了504萬個(gè)最大輸入單元,測(cè)試集包含2 000個(gè)最大輸入單元。最大輸入單元的定義為句子中最長連續(xù)漢字序列[15]。
(2)中文維基百科數(shù)據(jù)集。由于人民日?qǐng)?bào)數(shù)據(jù)集語料內(nèi)容較為陳舊,數(shù)據(jù)量也相對(duì)較小,本文選擇在中文維基百科數(shù)據(jù)集上完成模型推理時(shí)間的實(shí)驗(yàn)。該數(shù)據(jù)集語料為截至2022年1月1日維基百科所有中文詞條內(nèi)容。原始語料為9.58 GB,預(yù)處理時(shí)先將句子切分成最大輸入單元后再進(jìn)行分詞和標(biāo)注拼音形成漢字-拼音平行語料。數(shù)據(jù)按照7:2:1的比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,其中訓(xùn)練集包含6 660萬個(gè)最大輸入單元,驗(yàn)證集包含1 902萬個(gè)最大輸入單元,測(cè)試集包含951萬個(gè)最大輸入單元。
本文使用了輸入法研究中[15-18]普遍采用的“TopAccuracy”作為評(píng)價(jià)指標(biāo),這一指標(biāo)表示在輸入法提供的前個(gè)候選中用戶期待輸入的漢字序列的命中率,其計(jì)算式如下。
其中,exist(·)為判斷前個(gè)候選中是否存在期待輸入漢字序列的函數(shù),當(dāng)前個(gè)候選中存在期待的候選時(shí)返回值為1,否則為0;為測(cè)試集數(shù)量。
實(shí)驗(yàn)中使用TensorFlow實(shí)現(xiàn)模型,訓(xùn)練使用的GPU型號(hào)為NVIDIA Tesla V-100。為防止模型過擬合,引入了丟棄機(jī)制,參數(shù)值為0.9。模型使用Adam優(yōu)化器,學(xué)習(xí)率固定為0.001。對(duì)于所有實(shí)驗(yàn),這些參數(shù)都是相同的。
在人民日?qǐng)?bào)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)時(shí),選擇頻率最高的前5萬詞作為輸入法詞匯表,與文獻(xiàn)[16]中的對(duì)比模型保持一致,這些詞匯覆蓋了語料內(nèi)容的99%。詞匯表中的詞匯按照頻率排列,高頻詞在前。由于詞匯量小,訓(xùn)練時(shí)批處理大小設(shè)置為2 048。
在中文維基百科數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)時(shí),先使用jieba分詞工具對(duì)語料進(jìn)行分詞和標(biāo)注拼音。參考常見的開源拼音輸入法的詞匯數(shù)量,sunpinyin約為8.4萬、libpinyin約為11.1萬、rime約為9.9萬。同時(shí),自歸一化模型在不同詞匯量下的表現(xiàn)曲線如圖2所示,更大的詞匯量可以帶來更高的準(zhǔn)確率,但是其邊際收益是遞減的。
圖2 自歸一化模型在不同詞匯量下的表現(xiàn)曲線
實(shí)驗(yàn)中依照上述經(jīng)驗(yàn)值,選擇頻率最高的前10萬詞作為輸入法詞匯表,這些詞匯覆蓋了語料內(nèi)容的96%,詞匯數(shù)量作為受控變量在不同各實(shí)驗(yàn)中保持一致。文獻(xiàn)[18]使用分類語料對(duì)按照領(lǐng)域信息劃分詞匯表的方法進(jìn)行了研究,本文計(jì)劃將這一課題作為未來的研究方向之一。詞匯表同樣按照詞頻降序排列。訓(xùn)練批處理大小為1 024。由于劃分了驗(yàn)證集,所以在訓(xùn)練中使用了早停策略防止過擬合,當(dāng)驗(yàn)證集上的語言模型困惑度連續(xù)兩輪不再下降時(shí)將提前停止訓(xùn)練。困惑度計(jì)算式如下。
其中,PP是困惑度,是語料,w是其中第個(gè)詞語,是語料中詞語總數(shù)。困惑度能夠反映語言模型對(duì)數(shù)據(jù)的擬合能力,一般困惑度低的模型能夠在推理任務(wù)中獲得較高的準(zhǔn)確率。訓(xùn)練模型時(shí)使用困惑度的原因在于困惑度是可微的,而準(zhǔn)確率是不可微的。在對(duì)比模型表現(xiàn)時(shí)使用準(zhǔn)確率這一指標(biāo)可以使結(jié)果更加直觀。
在GPU上完成訓(xùn)練后,將模型參數(shù)導(dǎo)出至文件,供詞網(wǎng)格解碼器在解碼過程中使用。輸入法的解碼實(shí)驗(yàn)在Intel(R) Xeon(R) E5-2650 v3上完成,模型使用numpy實(shí)現(xiàn),其結(jié)構(gòu)與TensorFlow模型相同。
輸入法轉(zhuǎn)換準(zhǔn)確率對(duì)比結(jié)果見表1,實(shí)驗(yàn)將本文模型與如下基線模型進(jìn)行了對(duì)比。
(1)三元語法語言模型輸入法。該模型為開源輸入法中廣泛使用的語言模型,使用開源工具包斯坦福研究院語言建模工具包[1](Stanford research institute language modeling toolkit,SRILM)進(jìn)行訓(xùn)練,平滑方法使用改良的Kneser-Ney算法[29-30]。為了獲得更高的轉(zhuǎn)換準(zhǔn)確率,沒有設(shè)置截止頻率或?qū)δP瓦M(jìn)行剪枝。
(2)谷歌拼音輸入法。谷歌拼音輸入法是一個(gè)提供了調(diào)試接口的商業(yè)輸入法。
(3)在線詞匯更新音字轉(zhuǎn)換(online updated vocabulary pinyin to character,Online P2C)。該模型為文獻(xiàn)[16]在2019年提出的方法。模型使用一個(gè)帶有注意力機(jī)制的編碼器―解碼器結(jié)構(gòu)完成轉(zhuǎn)換任務(wù),并使用在線詞匯更新算法對(duì)其進(jìn)行了增強(qiáng)。
(4)生成式預(yù)訓(xùn)練音字轉(zhuǎn)換(generative pre-training pinyin to character,GPT P2C)。該模型為文獻(xiàn)[18]在2022年提出的方法。模型使用一個(gè)字符級(jí)GPT輸入800 GB語料在32個(gè)NVIDIA Tesla V-100上訓(xùn)練完成,并且使用拼音嵌入對(duì)模型進(jìn)行了增強(qiáng)。
表1 輸入法轉(zhuǎn)換準(zhǔn)確率對(duì)比結(jié)果
本文LSTM模型詞向量嵌入維度和隱藏維度均為512,并使用文獻(xiàn)[31]中的方法對(duì)輸入和輸出的詞向量進(jìn)行了綁定,這一方法可以節(jié)約存儲(chǔ)空間且?guī)缀醪辉斐删葥p失。
由實(shí)驗(yàn)結(jié)果可知,本文模型在Top 1 Accuracy上相比GPT P2C提升了15.4%,取得了新的最高性能。這表明了本文方法在提升轉(zhuǎn)換準(zhǔn)確率方面的有效性。
本節(jié)使用上一節(jié)LSTM模型作為基線,對(duì)比了多種加速方法的效果。本文僅計(jì)算了參與語言模型概率運(yùn)算的組件的執(zhí)行速度,其中包含LSTM層和softmax層的運(yùn)算時(shí)間。實(shí)驗(yàn)中,在LSTM單元和softmax單元前后分別插入計(jì)時(shí)點(diǎn)記錄單次運(yùn)算時(shí)間,所有推理任務(wù)結(jié)束后求平均值作為單次LSTM和softmax運(yùn)算的運(yùn)行時(shí)間,單步時(shí)間為兩者相加之和。構(gòu)造詞網(wǎng)格的組件等則沒有被包含進(jìn)來,一方面因?yàn)檫@些組件對(duì)于不同模型是共用的,另一方面它們的具體實(shí)現(xiàn)對(duì)運(yùn)行時(shí)間影響很大,不具有參考價(jià)值。另外,文獻(xiàn)[16]和文獻(xiàn)[18]中的兩個(gè)深度學(xué)習(xí)模型由于復(fù)雜度高,需要GPU支持運(yùn)算,強(qiáng)行轉(zhuǎn)移到CPU上進(jìn)行推理任務(wù)帶來的時(shí)間消耗是實(shí)際應(yīng)用場(chǎng)景下無法承受的,因此沒有參與對(duì)比。
單步轉(zhuǎn)換時(shí)延對(duì)于需要滿足用戶實(shí)時(shí)輸入需求的輸入法而言是十分重要的,表2對(duì)比了每一步收到按鍵信息之后的平均解碼時(shí)間。解碼整個(gè)輸入拼音序列的時(shí)間消耗與解碼步數(shù)(拼音字母數(shù)量)成正比。模型運(yùn)行時(shí)間對(duì)比見表2,同時(shí)單獨(dú)提供了softmax的運(yùn)算時(shí)間以供對(duì)比。
由表2可以看出,本文提出的融合遞增詞匯選擇模型的softmax運(yùn)算速度約是LSTM基線模型的130倍。輸入法的整個(gè)詞匯表中含有10萬個(gè)詞匯,而實(shí)驗(yàn)中詞網(wǎng)格解碼器使用到的詞匯只有幾百個(gè),對(duì)上述實(shí)驗(yàn)詞網(wǎng)格解碼器中的詞匯數(shù)量進(jìn)行統(tǒng)計(jì),僅有188個(gè)句子的詞匯數(shù)量超過了總詞匯量的1%,約占實(shí)驗(yàn)中所有句子的2%,其中最多的一句詞網(wǎng)格包含了2 302詞。遞增詞匯選擇模型只需要3.2 ms處理一個(gè)新加入序列的按鍵信息。這樣的解碼速度可以在計(jì)算資源有限的用戶終端設(shè)備上滿足實(shí)時(shí)交互需求。
表2中還對(duì)比了遞增詞匯選擇的各種采樣方法。可以看出,對(duì)總詞匯集進(jìn)行采樣可以縮小與基線模型之間的準(zhǔn)確率差距。在實(shí)驗(yàn)中,頂部采樣和均勻采樣的詞匯數(shù)量均設(shè)置為500詞。
另外,還可以使用自歸一化[32]作為softmax近似。原始softmax的對(duì)數(shù)概率計(jì)算式為:
表2 模型運(yùn)行時(shí)間對(duì)比
其中,
其中,是詞匯,是輸出單元的值,是當(dāng)前詞匯序號(hào)。自歸一化通過顯式地令分母盡量接近1簡(jiǎn)化softmax運(yùn)算。因此需要在訓(xùn)練過程的目標(biāo)函數(shù)中加入額外的歸一化項(xiàng),如式(8)所示。
其中,是自歸一化權(quán)重,實(shí)驗(yàn)中設(shè)置為0.1。在使用自歸一化時(shí),為了保證網(wǎng)絡(luò)在初始時(shí)就是自歸一的,輸出層的初始偏置設(shè)置為ln(1)。在解碼過程中,直接使用U()代替ln((x))。
差異化softmax和自適應(yīng)softmax可以降低超過一半的softmax運(yùn)算時(shí)間,然而由于輸入法詞匯量巨大,這些方法對(duì)速度提升有限。
對(duì)于單字模型,實(shí)驗(yàn)使用了一個(gè)嵌入向量維度和隱藏狀態(tài)向量維度均為512的LSTM語言模型。該模型將輸入法詞匯量從10萬降低到了5 000,然而這一數(shù)量仍然會(huì)帶來不小的開銷。在轉(zhuǎn)換任務(wù)中,單字模型的準(zhǔn)確率損失較大,需要采用更大的束寬度提高轉(zhuǎn)換準(zhǔn)確率,實(shí)驗(yàn)中大的束寬度設(shè)置為50。
遞增詞匯選擇算法中用于修正詞匯表的時(shí)間由于依賴具體實(shí)現(xiàn)沒有給出,而且在實(shí)際應(yīng)用場(chǎng)景中,用戶并不會(huì)一次性輸入一個(gè)完整的句子而是分成多個(gè)片段輸入,這些時(shí)間與softmax運(yùn)算消耗的時(shí)間相比是很小的。
本文提出了一種融合遞增詞匯選擇的深度學(xué)習(xí)輸入法模型。相較于傳統(tǒng)元語法模型和其他深度學(xué)習(xí)輸入法,該模型能夠提供更高的轉(zhuǎn)換準(zhǔn)確率;相較于未作改進(jìn)的基線模型,該模型能夠在不損失轉(zhuǎn)換準(zhǔn)確率的同時(shí)縮短softmax運(yùn)算所需的時(shí)間。本文在真實(shí)中文數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,該模型能夠滿足輸入法的實(shí)時(shí)交互需求。后續(xù)筆者將在其他數(shù)據(jù)集和其他中文輸入方法上對(duì)本文模型做進(jìn)一步測(cè)試和增強(qiáng)。
[1] STOLCKE A. SRILM - an extensible language modeling toolkit[C]//Proceedings of 7th International Conference on Spoken Language Processing (ICSLP 2002). ISCA: ISCA, 2002: 901-904.
[2] XIAO Y L, LIU L M, HUANG G P, et al. BiTIIMT: a bilingual text-infilling method for interactive machine translation[C]//Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2022: 1958-1969.
[3] PARASKEVOPOULOS G, PARTHASARATHY S, KHARE A, et al. Multimodal and multiresolution speech recognition with transformers[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 2020: 2381-2387.
[4] DING Z X, XIA R, YU J F. End-to-end emotion-cause pair extraction based on sliding window multi-label learning[C]//Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). Stroudsburg, PA, USA: Association for Computational Linguistics, 2020: 3574-3583.
[5] DING Z X, XIA R, YU J F. ECPE-2D: emotion-cause pair extraction based on joint two-dimensional representation, interaction and prediction[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 2020: 3161-3170.
[6] PANDEY P, BASU P, CHAKRABORTY K, et al. GreenTPU: improving timing error resilience of a near-threshold tensor processing unit[C]//Proceedings of DAC '19: Proceedings of the 56th Annual Design Automation Conference. [S.l:s.n.], 2019. 2019: 1-6.
[7] LIU X Y, CHEN X, WANG Y Q, et al. Two efficient lattice rescoring methods using recurrent neural network language models[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2016, 24(8): 1438-1449.
[8] LEE K, PARK C, KIM N, et al. Accelerating recurrent neural network language model based online speech recognition system[C]//Proceedings of 2018 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway: IEEE Press, 2018: 5904-5908.
[9] CHEN X, LIU X Y, WANG Y Q, et al. Efficient training and evaluation of recurrent neural network language models for automatic speech recognition[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2016, 24(11): 2146-2157.
[10] CHO K, VAN MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using RNN encoder–decoder for statistical machine translation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). Stroudsburg, PA, USA: Association for Computational Linguistics, 2014: 1724-1734.
[11] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[J]. Advances in Neural Information Processing Systems, 2017, 22(7): 139-147.
[12] HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780.
[13] CHEN Z, LEE K F. A new statistical approach to Chinese Pinyin input[C]//Proceedings of the 38th Annual Meeting on Association for Computational Linguistics - ACL '00. Morristown, NJ, USA: Association for Computational Linguistics, 2000: 241-247.
[14] Yang S, Zhao H, Lu B. A machine translation approach for Chinese whole-sentence Pinyin-to-character conversion[C]//Proceed ings of the 26th Pacific Asia Conference on Language, Information, and Computation. [S.l.:s.n.], 2012: 333-342.
[15] HUANG Y F, LI Z C, ZHANG Z S, et al. Moon IME: neural-based Chinese pinyin aided input method with customizable association[C]//Proceedings of ACL 2018, System Demonstrations. Stroudsburg, PA, USA: Association for Computational Linguistics, 2018: 140-145.
[16] ZHANG Z S, HUANG Y F, ZHAO H. Open vocabulary learning for neural Chinese pinyin IME[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Stroudsburg, PA, USA: Association for Computational Linguistics, 2019: 1584-1594.
[17] HUANG Y F, ZHAO H. Chinese pinyin aided IME, input what You have not keystroked yet[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing. Stroudsburg, PA, USA: Association for Computational Linguistics, 2018: 2923-2929.
[18] TAN M H, DAI Y, TANG D Y, et al. Exploring and adapting Chinese GPT to pinyin input method[C]//Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2022: 1899-1909.
[19] CHEN W L, GRANGIER D, AULI M. Strategies for training large vocabulary neural language models[C]//Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2016: 1975-1985.
[20] Joulin A, Cissé M, Grangier D, et al. Efficient softmax approximation for GPUs[C]//International Conference on Machine Learning. [S.l.:s.n.], 2017: 1302-1310.
[21] Shim K, Lee M, Choi I, et al. SVD-softmax: Fast softmax approximation on large vocabulary neural networks[J]. Advances in Neural Information Processing Systems, 2017, 30: 5463-5473.
[22] SHI Y Z, ZHANG W Q, LIU J, et al. RNN language model with word clustering and class-based output layer[J]. EURASIP Journal on Audio, Speech, and Music Processing, 2013, 2013: 22.
[23] Zhang M J, Wang W H, Liu X D, et al. Navigating with graph representations for fast and scalable decoding of neural language models[J]. Advances in Neural Information Processing Systems, 2018, 31: 6308-6319.
[24] MI H T, WANG Z G, ITTYCHERIAH A. Vocabulary manipulation for neural machine translation[C]//Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2016: 124-129.
[25] JEAN S, CHO K, MEMISEVIC R, et al. On using very large target vocabulary for neural machine translation[C]//Proceed ings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2015: 1-10.
[26] Yao J, Shu R, Li X, et al. Enabling real-time neural IME with incremental vocabulary selection[C]//Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. [S.l.:s.n.], 2019: 1-8.
[27] MIKOLOV T, KARAFIáT M, BURGET L, et al. Recurrent neural network based language model[C]//Proceedings of Interspeech 2010. ISCA: ISCA, 2010, 2(3): 1045-1048.
[28] ELMAN J L. Finding structure in time[J]. Cognitive Science, 1990, 14(2): 179-211.
[29] KNESER R, NEY H. Improved backing-off for M-gram language modeling[C]//Proceedings of 1995 International Conference on Acoustics, Speech, and Signal Processing. Piscataway: IEEE Press, 1995: 181-184.
[30] James F. Modified kneser-ney smoothing of n-gram models[R]. Research Institute for Advanced Computer Science, 2000.
[31] PRESS O, WOLF L. Using the output embedding to improve language models[C]//Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers. Stroudsburg, PA, USA: Association for Computational Linguistics, 2017: 157-163.
[32] DEVLIN J, ZBIB R, HUANG Z Q, et al. Fast and robust neural network joint models for statistical machine translation[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Stroudsburg, PA, USA: Association for Computational Linguistics, 2014: 1370-1380.
Deep learning Chinese input method with incremental vocabulary selection
REN Huajian, HAO Xiulan, XU Wenjing
Zhejiang Province Key Laboratory of Smart Management and Application of Modern Agricultural Resources,Huzhou University, Huzhou 313000, China
The core task of an input method is to convert the keystroke sequences typed by users into Chinese character sequences. Input methods applying deep learning methods have advantages in learning long-range dependencies and solving data sparsity problems. However, the existing methods still have two shortcomings: the separation structure of pinyin slicing in conversion leads to error propagation, and the model is complicated to meet the demand for real-time performance of the input method. A deep-learning input method model incorporating incremental word selection methods was proposed to address these shortcomings. Various softmax optimization methods were compared. Experiments on People’s Daily data and Chinese Wikipedia data show that the model improves the conversion accuracy by 15% compared with the current state-of-the-art model, and the incremental vocabulary selection method makes the model 130 times faster without losing conversion accuracy.
Chinese input method, long short-term memory, vocabulary selection
TP391
A
10.11959/j.issn.1000–0801.2022294
2022–07–08;
2022–12–07
郝秀蘭,hxl2221_cn@zjhu.edu.cn
浙江省現(xiàn)代農(nóng)業(yè)資源智慧管理與應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室基金項(xiàng)目(No.2020E10017)
任華?。?994– ),男,湖州師范學(xué)院碩士生,主要研究方向?yàn)樽匀徽Z言處理、中文輸入法。
郝秀蘭(1970– ),博士,女,湖州師范學(xué)院副教授、碩士生導(dǎo)師,主要研究方向?yàn)橹悄苄畔⑻幚?、?shù)據(jù)與知識(shí)工程、自然語言理解等。
徐穩(wěn)靜(1998– ),女,湖州師范學(xué)院碩士生,主要研究方向?yàn)樽匀徽Z言處理、虛假新聞檢測(cè)。
The Foundation of Zhejiang Province Key Laboratory of Smart Management and Application of Modern Agricultural Resources (No.2020E10017)