0
作者 | 張裕浩 單位 | 東北大學(xué) 張裕浩,東北大學(xué)自然語言處理實驗室 2018 級研究生,研究方向包括神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索、機器翻譯。 東北大學(xué)自然語言處理實驗室由姚天順教授創(chuàng)建于 1980 年,現(xiàn)由朱靖波教授、肖桐博士領(lǐng)導(dǎo),長期從事計算語言學(xué)的相關(guān)研究工作,主要包括機器翻譯、語言分析、文本挖掘等。團隊研發(fā)的支持140種語言互譯的小牛翻譯系統(tǒng)已經(jīng)得到廣泛應(yīng)用。 |
今天和大家介紹谷歌將結(jié)構(gòu)搜索應(yīng)用到機器翻譯的一項工作—The evolved transformer(ET)[1]。The evolved transformer 這項工作的出發(fā)點是將結(jié)構(gòu)搜索應(yīng)用到機器翻譯中,基于Transformer結(jié)構(gòu)選出更好的候選。于是這篇工作選取了進化算法中的錦標賽選擇方法,將Transformer結(jié)構(gòu)作為種子結(jié)構(gòu)作為熱啟動,之后變異出更優(yōu)秀的結(jié)構(gòu),由于進化算法比較耗時,設(shè)計了遞增式動態(tài)閾值算法加快搜索速度。
1、背景
近年來,深度學(xué)習(xí)在圖像和語言處理領(lǐng)域應(yīng)用得越來越廣泛,但是性能優(yōu)異的網(wǎng)絡(luò)都是人為根據(jù)大量的經(jīng)驗去精心設(shè)計的,于是基于機器自己設(shè)計的神經(jīng)結(jié)構(gòu)搜索成了最近熱門的一個研究課題。
神經(jīng)結(jié)構(gòu)搜索(Neural architecture search,NAS)主要是利用機器,在設(shè)定好的搜索空間中按照給定的搜索策略,利用評價標準得到最優(yōu)的模型[2]。目前結(jié)構(gòu)搜索按策略分主要為三種,1)強化學(xué)習(xí),2)進化算法,3)梯度計算。
雖然在圖像領(lǐng)域,利用結(jié)構(gòu)搜索將一個基礎(chǔ)模型進行放大的EfficientNet在圖像分類任務(wù)上達到了SOTA,但是在自然處理領(lǐng)域特別是機器翻譯,結(jié)構(gòu)搜索并沒有廣泛應(yīng)用。
相較于圖像識別任務(wù),機器翻譯任務(wù)目前最先進基于注意力機制的模型結(jié)構(gòu)更復(fù)雜,單個模型訓(xùn)練的時間更長,比如相同設(shè)備下,在英德14任務(wù)上訓(xùn)練一個搜索出的模型需要10個小時,但是對于圖像分類CIFAR-10任務(wù)使用代理技術(shù)只需要兩個小時[3]。因此在搜索空間和搜索的策略上都與圖像分類領(lǐng)域有著較大差異。
2、搜索空間
神經(jīng)結(jié)構(gòu)搜索第一步是定義好搜索空間,搜索空間對于結(jié)構(gòu)搜索是非常重要的[4],這篇工作認為使用熱啟動——即初始的種子結(jié)構(gòu)是一個標準的Transformer結(jié)構(gòu)[5]--能搜索出更好的結(jié)構(gòu)。所以在空間設(shè)計上需要包含Transformer結(jié)構(gòu)。如圖1,
圖1 每個塊中的搜索空間
整個是一個塊的搜索空間,左分支和右分支的搜索空間是一致的。分支的輸入會從之前所有的結(jié)構(gòu)塊中選擇輸入索引,比如現(xiàn)在是第i層,則搜索空間為[0,i);對于正則操作只選擇是否進行操作;對于函數(shù)層則會選擇不同種類的卷積函數(shù)、門控單元、自注意力、編碼解碼注意力(僅對解碼端搜索可見)、沒有操作、剪掉分支;對于激活函數(shù),搜索空間由SWISH,RELU, LEAKY RELU,NONE組成,融合函數(shù)的搜索空間為加法,聯(lián)接,乘法,最后組成一個隱藏層輸出,若輸入的維度不同,則左對齊之后如果是加法補0,乘法補1將輸入補齊成同一緯度。之后編碼端由6個塊組成一個單元,對于解碼端是8個塊組成,最后多個單元組成模型。設(shè)計的搜索空間可達7.3*10155個模型,同時這種空間設(shè)計成功地將Transformer容納進搜索空間,如圖2所示,
圖2 用ET搜索空間表示標準Transformer結(jié)構(gòu)中編碼端
展示了如何利用設(shè)計的搜索空間表示標準Transformer編碼端結(jié)構(gòu)。
這種空間的設(shè)計整體上也是模仿圖像領(lǐng)域,將搜索出的單元結(jié)構(gòu)進行堆疊,但是也有人指出,這樣做其實破壞了結(jié)構(gòu)的多樣性[6],沒有能夠?qū)⒔Y(jié)構(gòu)搜索的能力完全發(fā)揮出來,同時作者在搜索的時候也將每個單元結(jié)構(gòu)中的塊數(shù)量進行固定,但是沒有進行深入的實驗,只是根據(jù)Transformer結(jié)構(gòu)進行經(jīng)驗性設(shè)置,所以對于增加塊和刪除塊放縮操作并沒有涉及到,未來也可以從這個角度搜索出可伸縮的結(jié)構(gòu)。
3、搜索策略
對于搜索策略,由于已有一個不錯的結(jié)構(gòu)Transformer,所有沒有采用強化學(xué)習(xí)的方法,轉(zhuǎn)而采用進化算法中的錦標賽選擇算法[7],主要的過程如算法1,
圖3 錦標賽選擇算法
首先通過一致的模型作為種子結(jié)構(gòu),初始化第一代的結(jié)構(gòu)種群,之后對擁有最高準確率的結(jié)構(gòu)進行突變生成后代,訓(xùn)練和評價后代,將后代加入到種群中,移除掉種群中不符合條件的結(jié)構(gòu),開始下一輪迭代。
為了大幅減少負面的搜索空間,同時為了給變異的后代一個好的初始點,文中采取了熱啟動的方式,將Transformer作為種子結(jié)構(gòu)。為了防止沒有潛力的模型消耗過多的訓(xùn)練資源,文中提出了遞增式動態(tài)閾值算法(PDH)。
該方法在搜索開始時和錦標賽選擇算法方法一致,在訓(xùn)練當前子代模型相對小的步數(shù)之后,評價適應(yīng)度,然后根據(jù)現(xiàn)有的適應(yīng)度選出合適的閾值,文中選取的是平均值,達到了閾值的子代會額外獲得一定的訓(xùn)練步數(shù),而沒達到閾值的子代會被直接淘汰。
重復(fù)這個過程一直到訓(xùn)練到了最大的訓(xùn)練步數(shù)。能使用這種方法是因為作者假設(shè)了生成的模型都是沒有過擬合的,所以適應(yīng)度是會隨著訓(xùn)練步數(shù)增加而增加,作者也在實驗中證明了這一點。
對于三種主要的搜索方法,本文中主要選擇的是進化算法,因為在搜索受限的情況下,使用進化算法的搜索效率是高于基于強化學(xué)習(xí)方法的,同時本文也已經(jīng)有一個非常好的初始點,故沒有選擇強化學(xué)習(xí)的方法。
同時還有基于梯度的方法,目前比較流行的one-shot方法[8],由于顯存等限制,很難應(yīng)用于搜索機器翻譯復(fù)雜模型,但是其搜索出的結(jié)構(gòu)通常都非常豐富,網(wǎng)絡(luò)表示能力也很強,one-shot方法如何應(yīng)用到機器翻譯中,是否能得到更高表示能力的結(jié)構(gòu),也是一個值得研究的問題。
4、實驗
文中展示了搜索出編碼端和解碼端的結(jié)構(gòu),如圖4和圖5,
圖4 ET解碼端結(jié)構(gòu)
圖5 ET編碼端結(jié)構(gòu)
整體來說變化不大,編碼端對前饋網(wǎng)絡(luò)進行了變化,將第一個注意力操作變成了線性門控操作,解碼端也在同樣位置發(fā)生了更多的變化。這也證明了之前基于設(shè)計經(jīng)驗進行熱啟動是合理的。
之后文中對比了是否使用熱啟動搜索和PDH搜索方法,如表1所示,
表1 各種搜索設(shè)置得到的模型在校驗集上的困惑度
對比第一行和第二行,可以看到使用熱啟動能極大的搜索出模型的性能,對比第一行和第三行,能看出利用PDH算法即使不利用非常多的模型也能搜索得到最好的性能。最后三行從經(jīng)驗上證明PDH方法是在沒有過擬合的訓(xùn)練步數(shù)基礎(chǔ)上實施的。
之后文中從性能上在不同任務(wù)不同參數(shù)情況下和標準的Transformer結(jié)構(gòu)進行了比較,如表2中所示,
表2 比較Transformer和ET在各種翻譯任務(wù)驗證集上的困惑度和測試集上的BLEU
可以看到ET的參數(shù)量會稍大與標準的Transformer,這是因為結(jié)構(gòu)中出現(xiàn)了分支的情況,但是在性能上,PPL和BLEU兩個指標在各個任務(wù)上也是優(yōu)于標準結(jié)構(gòu),最有趣的地方在于,基于一種不確定性的搜索算法,在進行多次實驗之后其波動依然不大,文中認為是熱啟動帶來的好處,基于一個好的結(jié)構(gòu),能讓最后搜索出的結(jié)果更加穩(wěn)定。
最后作者將參數(shù)和性能同標準的Transformer結(jié)構(gòu)進行了一個比較,如圖6,
圖6 ET與Transformer性能和模型參數(shù)量比較
可以發(fā)現(xiàn),在相同參數(shù)下,ET能有更好的性能,在相同性能下,ET只需要更小的參數(shù)量。
值得注意的是,在分支進行合并的時候,都進行了正則化操作,說明了正則操作對于這種多分支的結(jié)構(gòu)是比較重要的,但是從訓(xùn)練的角度來說,由于每個模型都是用了同樣的訓(xùn)練參數(shù)以及優(yōu)化器,也可能不用正則操作導(dǎo)致了訓(xùn)練過程中數(shù)值不穩(wěn)定。
還有一個有趣的地方在于,無論是編碼端還是解碼端的結(jié)構(gòu),上層的結(jié)構(gòu)沒有變化,下層的結(jié)構(gòu)更加的多樣性,這就說明了優(yōu)化的空間都在下層,這也引申出了一個問題,是否在現(xiàn)有模型中有一些比較重要的部分是不需要進行搜索的,或者說只要模型有這一部分結(jié)構(gòu)就能達到不錯的性能了,剩下的部分只需要隨機搜索一下就能達到原來的性能?從這個角度出發(fā),如果能找出最關(guān)鍵的結(jié)構(gòu),便可以縮小搜索空間,直接去搜索其他位置的結(jié)構(gòu)。
5、總結(jié)
這項工作成功的實現(xiàn)了結(jié)構(gòu)搜索在機器翻譯的應(yīng)用,利用進化算法,將標準的Transformer結(jié)構(gòu)作為搜索的初始節(jié)點以保證子代的性能,同時為了更快的淘汰掉子代,采用了遞增式動態(tài)閾值算法。
雖然最后得到的結(jié)構(gòu)在性能上的確是優(yōu)于標準的Transformer,不過在搜索的過程中還是使用了大量的計算資源——超過200塊TPU,如何更加高效的搜索出優(yōu)秀的模型,依然是亟待解決的問題,同時這項工作在搜索空間的設(shè)計上也是離散的,搜索的空間還是很有限,實際上只是在Transformer結(jié)構(gòu)上進行了一個微調(diào)。不過這也證明了神經(jīng)結(jié)構(gòu)搜索能夠運用在機器翻譯領(lǐng)域,未來也是一個有潛力的方向。
參考文獻:
[1] So, David R., Chen Liang, and Quoc V. Le."The evolved transformer." arXiv preprint arXiv:1901.11117 (2019).
[2] Elsken, Thomas, Jan Hendrik Metzen, andFrank Hutter. "Neural architecture search: A survey." arXivpreprint arXiv:1808.05377 (2018).
[3] Deng, Jia, et al. "Imagenet: Alarge-scale hierarchical image database." 2009 IEEE conference oncomputer vision and pattern recognition. Ieee, 2009.
[4] Zoph, Barret, et al. "Learningtransferable architectures for scalable image recognition." Proceedingsof the IEEE conference on computer vision and pattern recognition. 2018.
[5] Vaswani, Ashish, et al. "Attention isall you need." Advances in neural information processing systems.2017.
[6] Tan, Mingxing, et al. "Mnasnet:Platform-aware neural architecture search for mobile." Proceedings ofthe IEEE Conference on Computer Vision and Pattern Recognition. 2019.
[7] Real, Esteban, et al. "Regularizedevolution for image classifier architecture search." Proceedings ofthe AAAI Conference on Artificial Intelligence. Vol. 33. 2019.
[8] Bender, Gabriel, et al. "Understandingand simplifying one-shot architecture search." InternationalConference on Machine Learning. 2018.
雷鋒網(wǎng)編輯
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。