楊程,車文剛
(昆明理工大學(xué) 信息工程與自動化學(xué)院,云南 昆明 650500)
近年來,多任務(wù)學(xué)習(xí)模型由于其可以在一個模型內(nèi)同時學(xué)習(xí)多個任務(wù),并被證明可以通過學(xué)習(xí)任務(wù)之間的信息共享來提高學(xué)習(xí)效率[1],被廣泛應(yīng)用于語音合成[2]、機器翻譯[3]、多線索人臉識別[4]等各大領(lǐng)域。在現(xiàn)實情況中,很多不能或者不方便拆分成多個子問題的任務(wù)往往使用多任務(wù)學(xué)習(xí)會有更好的效果。例如在推薦系統(tǒng)中,問題具有高維度性,多任務(wù)學(xué)習(xí)可以從原始數(shù)據(jù)中很好地學(xué)到點擊、評論、播放等指標(biāo)[5]。
多任務(wù)學(xué)習(xí)最常見的兩種方法分為隱藏層的軟共享和硬共享[6]:硬共享將底層參數(shù)統(tǒng)一共享,共享參數(shù)越多,模型過擬合概率越??;目前較為常見的為軟共享,部分參數(shù)共享部分參數(shù)私有,頂層私有自己的參數(shù)。其中MMoE 借鑒了MoE層[7]的思想,采用多個專家網(wǎng)絡(luò)學(xué)習(xí)任務(wù)信息,并且通過門控制系統(tǒng)捕獲任務(wù)之間的聯(lián)系[8]。當(dāng)任務(wù)之間是松散相關(guān)的情況時,容易出現(xiàn)負(fù)遷移[9],為了解決負(fù)遷移和蹺蹺板現(xiàn)象,漸進(jìn)式分離提取模型(PLE)[10]引入了多層級專家和門控制網(wǎng)絡(luò),采用漸進(jìn)分離提取的方法使一部分專家網(wǎng)絡(luò)專注于各自任務(wù),一部分專家網(wǎng)絡(luò)專注共享信息。
PLE 在解決負(fù)遷移和蹺蹺板現(xiàn)象上有著優(yōu)秀的效果。為了解決MMoE 模型中所有專家是共享的,可能帶來噪聲,無法捕捉更復(fù)雜的任務(wù)關(guān)系問題,保留了屬于任務(wù)的專家同時還有基于共享的專家。為了使專家之間有交互,增加了額外的網(wǎng)絡(luò)層讓專家之間進(jìn)行交互。而這一做法帶來的代價是復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)和時間消耗,導(dǎo)致模型可能難以或者不能應(yīng)用在部分資源緊缺的設(shè)備上。
為了解決這一問題,提出半漸進(jìn)式分層提?。⊿emi-Progressive Layered Extraction,SPLE)模型對模型網(wǎng)絡(luò)進(jìn)行調(diào)整,在保留PLE 特性的情況下對模型的額外網(wǎng)絡(luò)層中剪枝任務(wù)專家模塊。同時,為了防止任務(wù)之間難度差異導(dǎo)致不同任務(wù)損失差異過大的情況,采用UWL(Uncertainty to Weigh Loss)思想進(jìn)行聯(lián)合訓(xùn)練損失優(yōu)化。對PLE 中每個專家模塊中的超參數(shù)進(jìn)行調(diào)優(yōu)。最終,通過對比MMoE、PLE、SPLE 在同一數(shù)據(jù)集上的準(zhǔn)確率、AUC、MTL 增益、每一個專家層利用率和迭代周期,證實SPLE 在模型輕量化的基礎(chǔ)上保留了PLE 的特性,同時也具有與PLE 差相近的性能及更快的迭代。
相比于MMoE[8]拓展了MoE[6],利用不同的Gate 控制網(wǎng)絡(luò)獲得多任務(wù)學(xué)習(xí)中的不同融合權(quán)重,以及MRAN[11]采用多頭注意力機制來學(xué)習(xí)不同的特征集上的表示子空間,PLE[10]從聯(lián)合表示學(xué)習(xí)和信息路由的角度,提出了漸進(jìn)分層式提取的方法,明確地分離了任務(wù)的特定參數(shù)和共享參數(shù),解決了負(fù)遷移問題和蹺蹺板問題。
針對輕量化,有的研究使用AutoML 的方法來探尋更好的輕量化模型:SNR[12](Sub-Network Routing)采用二進(jìn)制編碼變量連接兩個子網(wǎng)絡(luò),并且采用NSA[13]搜索最佳網(wǎng)絡(luò)結(jié)構(gòu)。路由網(wǎng)絡(luò)[14]可以通過路由器做出一個路由決定,將一個給定的輸入選擇一個功能模塊來應(yīng)用,并將輸出結(jié)果遞歸給路由器,直到達(dá)到一定深度。路由網(wǎng)絡(luò)采用協(xié)作式多智能體強化學(xué)習(xí)(MARL)[15]方法來聯(lián)合訓(xùn)練路由器和功能模塊。然而這些模型的設(shè)計都基于一些特定的且不常見的簡化假設(shè),因此應(yīng)用范圍不是很廣泛。文獻(xiàn)[14]提出的路由網(wǎng)絡(luò)在每個深度中,針對每個任務(wù)僅僅選定一個路由器,降低了模型的表達(dá)性。這些模型雖然最終有著較為優(yōu)秀的結(jié)構(gòu),但是從初始結(jié)構(gòu)不斷到獲得最優(yōu)結(jié)構(gòu)的過程需要巨大的開銷進(jìn)行搜索,并且他們的融合權(quán)重不能針對不同的輸入進(jìn)行更改。
為了保留PLE 中利用先驗知識來學(xué)習(xí)復(fù)雜任務(wù)的相關(guān)性,避免共享信息對任務(wù)信息產(chǎn)生噪聲干擾以及能夠從底層專家層獲取更深層次的任務(wù)信息的特性,如圖1 所示,半漸進(jìn)式分層提取模型保留了共享專家層和任務(wù)獨有專家層,進(jìn)一步學(xué)習(xí)深層特征的高層專家層以及基于單層前饋網(wǎng)絡(luò)的門控制網(wǎng)絡(luò)。與之不同的是,刪除掉了高層的任務(wù)獨有專家層,深層次的任務(wù)信息學(xué)習(xí)由Tower 層結(jié)合共享的專家層學(xué)習(xí)到的信息進(jìn)行學(xué)習(xí),底層的獨有專家層專注于學(xué)習(xí)各自的任務(wù)信息。同時也保證了能有深層的共享信息被高層共享專家捕捉到。
圖1 半漸進(jìn)式分離提取模型與漸進(jìn)式分離提取模型架構(gòu)對比
由于剪枝了兩個Gate 控制網(wǎng)絡(luò)和兩個專家模塊,相比于PLE 模型,模型參數(shù)量減少了26.3%。如圖2 所示,該架構(gòu)圖是一個雙任務(wù)的模型架構(gòu),底層由三個專家模塊組成,頂部由兩個Tower 層構(gòu)成。每一個專家模塊都由多個子網(wǎng)絡(luò)構(gòu)成,每個專家模塊中的子網(wǎng)絡(luò)數(shù)量為一個超參數(shù)。具體任務(wù)的特征主要由具體任務(wù)的專家模塊負(fù)責(zé)提取特征,而共享的特征由共享專家提取。頂層的每一個Tower 層獲取共享專家學(xué)習(xí)到的特征以及自己特有的任務(wù)專家模塊學(xué)習(xí)到的特征,即共享專家層的參數(shù)受所有任務(wù)影響,而任務(wù)獨有的專家模塊的參數(shù)僅受該特定任務(wù)影響。
圖2 半漸進(jìn)式分層模型詳細(xì)架構(gòu)
在該模型中,門控制網(wǎng)絡(luò)使得共享專家模塊和任務(wù)獨有的專家模塊的輸出進(jìn)行有選擇性的融合。如圖2中Gate 網(wǎng)絡(luò)層所示,門控制網(wǎng)絡(luò)是一個使用Softmax 作為激活函數(shù)的單向前饋網(wǎng)絡(luò),所有的輸入會經(jīng)過選擇器選擇出需要的輸入向量進(jìn)行加權(quán)求和。
具體網(wǎng)絡(luò)結(jié)構(gòu)可以形式化表示如下:
式中:gk(x)為任務(wù)k的控制層網(wǎng)絡(luò)的輸出,x表示該門控制網(wǎng)絡(luò)接收到的輸入;利用wk(x)計算出針對任務(wù)k的每個已選擇的輸入權(quán)重向量后與選擇出的向量矩陣Sk(x)相乘,wk(x)作為權(quán)重運算函數(shù)。通過對輸入進(jìn)行線性加權(quán)及Softmax 計算權(quán)重向量,wk(x)可表示如下:
式中表示任務(wù)k獨有的專家模塊中第一個專家網(wǎng)絡(luò)的輸出向量。
在SPLE中,保留了一個高層次的共享專家模塊來提取更高級別的共享信息,從而獲取更深層次的語義特征。高層的共享專家模塊采用底層專家模塊加權(quán)融合后的信息作為輸入,進(jìn)行提取、聚合及路由,最終結(jié)合任務(wù)獨有的專家模塊提取的信息進(jìn)行融合,交由任務(wù)獨有的Tower 模塊進(jìn)行預(yù)測等工作。
在通常多任務(wù)模型中,不同任務(wù)的數(shù)據(jù)分布和重要性往往都不相同,一般情況下,將不同任務(wù)的損失進(jìn)行加權(quán)求和[16]可表示為:
式中:Li為第i個任務(wù)中定義的損失函數(shù);wi為每個任務(wù)的重要性權(quán)重。在這種情況下,對于任務(wù)的權(quán)重舉證W在梯度下降優(yōu)化時的更新如下:
根據(jù)公式(5),可知W的優(yōu)化受到所有任務(wù)損失的影響,除了單個任務(wù)的梯度能影響,也可以通過修改任務(wù)重要性的權(quán)重來影響W的更新速率。
在PLE 中采用的策略為采用一個動態(tài)權(quán)重,首先設(shè)置一個任務(wù)k的初始權(quán)重wk,0,然后根據(jù)更新速率γk調(diào)整任務(wù)k的損失權(quán)重,具體如下:
式中:t表示迭代周期;wk,0和γk為超參數(shù)。
由于存在數(shù)據(jù)噪聲、測量誤差、非最優(yōu)超參數(shù)設(shè)置等諸多原因,深度學(xué)習(xí)模型具有不確定性。UWL[17]思想提出使用概率模型去解決網(wǎng)絡(luò)中的不確定性,使多個任務(wù)的重要性權(quán)重可以自動得到最優(yōu)解。在貝葉斯模型中,存在偶然不確定性和認(rèn)知不確定性,可以根據(jù)這一理論來建模[18]。偶然不確定性指的是觀測中固有的噪聲造成的不確定性,這一不確定性存在于數(shù)據(jù)中,只能使用提高數(shù)據(jù)精度來消除。偶然不確定性可以分為同方差不確定性和異方差不確定性。異方差不確定性取決于數(shù)據(jù)輸入,并且會被作為最終的預(yù)測輸出。同方差不確定性不取決于數(shù)據(jù)輸入,也不是模型輸出,而是一個對所有數(shù)據(jù)保持不變,卻在不同任務(wù)之間變化的量,為任務(wù)固有的不確定性。因此,UWL 思想將同方差不確定性轉(zhuǎn)化為不同任務(wù)損失之間的權(quán)重,模型就可以具有動態(tài)調(diào)整損失的能力。
將同方差不確定性定義為σ,使其作為模型參數(shù)之一,由于已經(jīng)有了預(yù)測結(jié)果,確定概率分布之后,可以采用極大似然估計的思想求出σ。定義f W(x)為以x作為輸入,權(quán)重為W的專家層的一個輸出。由于SPLE在公共數(shù)據(jù)集完成的任務(wù)均為分類任務(wù)(任務(wù)1 為預(yù)測收入是否超過5萬,任務(wù)2 為預(yù)測是否一直未婚),則在f W(x)預(yù)測發(fā)生時,實際結(jié)果y發(fā)生的概率如下:
引入σ作為一個縮放量到公式(7)中,使得其概率符合玻爾茲曼分布,如下所示:
在公式(8)中,公式(7)中的輸入被σ2進(jìn)行了縮放,根據(jù)玻爾茲曼分布,這一縮放參數(shù)的大小決定了分布的離散性的變化,并且與其相關(guān)性有關(guān),因此適合被用來描述分類任務(wù)中的同方差不確定性。將c定義為表示第c個分類,那么公式(8)的最大似然估計如下:
在SPLE 模型中,兩個任務(wù)均為分類任務(wù),且聯(lián)合概率為多個概率相乘,那么SPLE 在這兩個任務(wù)上的聯(lián)合損失函數(shù)的概率分布如下:
則最終的聯(lián)合損失函數(shù)L(W,σ1,σ2)就為公式(10)的極大似然估計:
公式(12)即為最終的聯(lián)合損失函數(shù)的計算公式。在計算過程中,σ根據(jù)模型預(yù)測和真實結(jié)果進(jìn)行自動求解,同時也能自動調(diào)整聯(lián)合損失函數(shù)中,每一個任務(wù)的損失對聯(lián)合損失影響的占比。公式(12)中的σ1σ2可以被視為學(xué)習(xí)不同輸出的損失的相關(guān)性權(quán)重,而σ1和σ2分別影響著L1(W)和L2(W)在公式(12)中的影響大小。
在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)中,貝葉斯優(yōu)化算法可以通過找到可能存在最優(yōu)超參數(shù)值點從而有著更少的工作量和更好的效果[19]。在SPLE 這部分的參數(shù)調(diào)優(yōu)中,將主要針對每個模塊中的網(wǎng)絡(luò)深度以及3 個任務(wù)時高層共享模塊的數(shù)量進(jìn)行分析對比。
首先定義搜索空間,針對每個模塊中的網(wǎng)絡(luò)深度,選擇從1~50 的整數(shù)類型中進(jìn)行搜索,針對高層共享模塊的數(shù)量,定義1~10 的整數(shù)類型進(jìn)行搜索。將高精確度作為模型優(yōu)劣的評價指標(biāo),由于在算法調(diào)優(yōu)時的判定得分是不斷尋找最低值,因此對精確度進(jìn)行取負(fù)數(shù)即可不斷尋找精確度最高的模型參數(shù)組合。選擇gp_minimize 作為代理函數(shù),進(jìn)行100 次迭代,最終算得最優(yōu)參數(shù)組合為:共享專家層網(wǎng)絡(luò)數(shù)量為1,每個模塊中網(wǎng)絡(luò)深度為24。
圖3 為針對專家模塊數(shù)量的參數(shù)expert_num 和每個網(wǎng)絡(luò)層的深度參數(shù)depth 的取樣點分布圖,左下角為在對應(yīng)取值點的得分,顏色越淺表示性能越好,其中紅星為最優(yōu)點。
圖3 專家模塊數(shù)量及網(wǎng)絡(luò)層深度取樣分布
可以看到在專家層數(shù)量中,最優(yōu)點集中出現(xiàn)于1 和10 附近,而中間的性能低于其他部位。通過針對網(wǎng)絡(luò)模型架構(gòu)分析和對模型的數(shù)據(jù)集進(jìn)行分析,一個共享專家層模塊可以解析出全部深層次的信息。在專家數(shù)量不夠多時,隨著專家層網(wǎng)絡(luò)的數(shù)量增加,一個專家層只會學(xué)到片面的深層次信息,這些信息的總和可能會出現(xiàn)冗余部分或者所有專家模塊學(xué)習(xí)到的信息總和并不是全部,使得最終的預(yù)測準(zhǔn)確率下降。而當(dāng)專家層網(wǎng)絡(luò)足夠多時,每個專家層可以在學(xué)習(xí)時負(fù)責(zé)不同部分的信息,從而使準(zhǔn)確率重新上升。通過分布圖分析,采用單個共享專家模塊不論從模型輕量化的角度還是最終準(zhǔn)確率的角度都是最優(yōu)選擇。
為了驗證有效性及公平性,將在MMoE、PLE 同時采用的驗證數(shù)據(jù)集UCI 人口普查-收入數(shù)據(jù)集[20]上進(jìn)行評估。包括模型剪枝后的AUC、迭代周期平均時間、引入UWL 思想進(jìn)行聯(lián)合損失運算后的AUC 以及在PLE 中提出的MLT 增益。
該數(shù)據(jù)集是由1994 年人口普查數(shù)據(jù)中提取出來的具有40個特征的299 285條數(shù)據(jù)。為了確保公平,將使用與PLE 和MMoE 模型中相同的任務(wù)進(jìn)行比較。
任務(wù)一:預(yù)測收入是否超過五萬美元;
任務(wù)二:預(yù)測這個人是否一直未婚。
通過對10 000 個樣本隨機抽樣計算皮爾遜相關(guān)系數(shù)的絕對值為0.176 8。在該數(shù)據(jù)集中有199 523 個數(shù)據(jù)為訓(xùn)練集,99 762 個數(shù)據(jù)為測試集,在本實驗中隨機抽取49 881 個數(shù)據(jù)作為測試集,剩下的49 881 個數(shù)據(jù)作為驗證集。
在MMoE 模型、PLE 模型、SPLE 模型和單任務(wù)模型中,均采用3 層MLP 網(wǎng)絡(luò),使用ReLU 作為激活函數(shù),隱藏層大小為[256,128,64]。為了公平比較,將多級PLE設(shè)置為兩級,以此來保持想近似的網(wǎng)絡(luò)深度。
模型對比的指標(biāo)除了任務(wù)一和任務(wù)二的AUC,同時也有在文獻(xiàn)[10]中提出的MTL 增益。MTL 增益為多任務(wù)學(xué)習(xí)相對于單任務(wù)學(xué)習(xí)在單一任務(wù)上的比較,即為該模型在某一特定任務(wù)上針對單任務(wù)模型的性能。其計算公式如下:
由上可知,MTL 增益越大,多任務(wù)模型性能越好。若為負(fù)數(shù),則說明多任務(wù)模型在該任務(wù)上不如單任務(wù)模型。單任務(wù)、MMoE、PLE 及SPLE 在公共數(shù)據(jù)集上的評估結(jié)果見表1。
表1 單任務(wù)、MMoE、PLE 及SPLE在公共數(shù)據(jù)集上的評估結(jié)果
如表1 所示,SPLE 在任務(wù)一中,以0.3%的AUC 的差距,在一個迭代周期內(nèi)縮減時間17.05%。在任務(wù)二中,SPLE 在AUC 上低于PLE 模型0.02%,在時間上卻減少18.02%,并且由于剪枝,模型參數(shù)也大規(guī)模減少。然而在實驗中發(fā)現(xiàn),雖然每個迭代周期的時間縮短了,但是達(dá)到最佳效果所需要的迭代周期數(shù)量增多了。這也是剪枝帶來的缺點,由于將上層專家層需要提取的特定任務(wù)的深層信息交由Tower 層完成,需要學(xué)習(xí)的周期更長。因此,利用UWL 思想引入聯(lián)合損失判定,更好地學(xué)習(xí)任務(wù)之間關(guān)系,優(yōu)化學(xué)習(xí)速度。
對引入前后SPLE 模型每一個迭代周期的AUC 值變化進(jìn)行對比,訓(xùn)練總共分為15 個迭代周期,每個迭代周期內(nèi)進(jìn)行100 次迭代。PLE、平均加權(quán)損失SPLE、動態(tài)聯(lián)合損失SPLE 在公共數(shù)據(jù)集上的評估結(jié)果如圖4所示。
圖4 三種模型在公共數(shù)據(jù)集上的評估結(jié)果
圖4中,平均加權(quán)損失的SPLE 模型即為引入之前的SPLE,其在引入UWL 方法加權(quán)的動態(tài)聯(lián)合損失優(yōu)化后,由原來慢于PLE 的收斂速度,以及滯后大約4 個迭代周期達(dá)到最優(yōu)AUC,轉(zhuǎn)變成了損失函數(shù)收斂速度快于PLE 模型,相對于PLE 更快達(dá)到最優(yōu)AUC,且如表2所示,最佳AUC及MTL增益也得到了提高,在任務(wù)一中,最佳AUC 甚至略微優(yōu)于PLE 模型。
表2 三種模型在公共數(shù)據(jù)集上的評估結(jié)果
SPLE 對比PLE 對于共享層的專家網(wǎng)絡(luò)模塊進(jìn)行了剪枝,同時針對聯(lián)合損失優(yōu)化,對不同任務(wù)的重要性進(jìn)行調(diào)整。為明確對比模型的輕量化,在表3 中展示了PLE、SPLE 的參數(shù)量及FLOPs(Floating Point Operations),即為前向傳播時所需計算力。如表3 所示,SPLE 在參數(shù)量上相比PLE 減少了約26.3%。由于在對任務(wù)獨有的專家模塊進(jìn)行剪枝時,底層和頂層的連接相較于PLE,在底層時并非全連接,且省去中間層的計算,因此SPLE 所需計算量均小于PLE 模型。SPLE 在所需計算力上比PLE 減少了約13.9%。
表3 PLE 和SPLE 在模型規(guī)模上的評估結(jié)果
本文提出了一種輕量化的半漸進(jìn)式分層多任務(wù)模型,該模型在剪枝時既保留了漸進(jìn)式分層模型分離共享任務(wù)和特定任務(wù)參數(shù)、分層提取任務(wù)信息的特點,也減少了參數(shù)量。針對剪枝后性能及準(zhǔn)確率的降低,本文使用UWL 思想引入動態(tài)聯(lián)合損失優(yōu)化,并且針對超參數(shù)調(diào)優(yōu)使得SPLE 模型有著與PLE 模型相當(dāng)?shù)男阅?。文獻(xiàn)[21]提出,LSTM 和GRU 等帶有門控制的網(wǎng)絡(luò)可能有著比普通RNN 更好的性能,因此,針對專家網(wǎng)絡(luò)的選擇有可能提升SPLE 的性能效果,并且門控制網(wǎng)絡(luò)層針對專家模塊的學(xué)習(xí)類似于注意力機制,后續(xù)可以根據(jù)注意力機制理論進(jìn)一步改進(jìn)和優(yōu)化門控制網(wǎng)絡(luò)。
注:本文通訊作者為車文剛。