<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何利用多任務(wù)學(xué)習(xí)提升模型性能?

          共 7836字,需瀏覽 16分鐘

           ·

          2021-04-26 12:03

          NewBeeNLP原創(chuàng)出品  

          公眾號專欄作者@上杉翔二  

          悠閑會 · 信息檢索

          提升模型性能的方法有很多,除了提出過硬的方法外,通過把神經(jīng)網(wǎng)絡(luò)加深加寬(深度學(xué)習(xí)),增加數(shù)據(jù)集數(shù)目(預(yù)訓(xùn)練模型)和增加目標(biāo)函數(shù)(多任務(wù)學(xué)習(xí))都是能用來提升效果的手段。(別名Joint Learning,Learning to learn,learning with auxiliary task....等)

          對于人類來說,我們往往學(xué)會了一件事,是能夠觸類旁通,舉一反三的。即其他不同任務(wù)的經(jīng)驗性,能夠帶來一些有用的信息,這是多任務(wù)學(xué)習(xí)的出發(fā)點。但如果處理多任務(wù)還是用single-task learning的話(類似bagging),模型會默認(rèn)為每個任務(wù)是獨立的,沒有關(guān)聯(lián)性的,所以每個模型的參數(shù)都是獨立進(jìn)行的。這樣做的缺點在于:

          • 訓(xùn)練數(shù)據(jù)有限,所以模型并不具有很好的泛化性能
          • 不考慮任務(wù)之間的相關(guān)性,缺乏對不同模型之間共享信息的挖掘,使得模型訓(xùn)練過程中性能下降

          Multi-Task Learning(MTL)

          多任務(wù)學(xué)習(xí)實質(zhì)上是一種遷移機制,如何讓模型能夠同時解決多種問題,從而提高泛化準(zhǔn)確率、學(xué)習(xí)速度和能力,模型的可理解性。特別是如何使用與其他任務(wù)的“相關(guān)性”與“差異性”,通過多個任務(wù)訓(xùn)練并共享不同任務(wù)已學(xué)到的特征表示,減輕對特定任務(wù)的過度擬合,從正則化效果中獲益,提升最終的性能,使學(xué)習(xí)的嵌入在任務(wù)之間具有通用性。

          多任務(wù)學(xué)習(xí)的構(gòu)建原則

          • 理解建模任務(wù)之間的相關(guān)性,以構(gòu)建合適的多任務(wù)方案。
          • 同時對多個任務(wù)的模型參數(shù)進(jìn)行聯(lián)合學(xué)習(xí)以挖掘不同任務(wù)的共享信息。
          • 但需要同時考慮不同任務(wù)會存在的差異性,如何提高模型對不同任務(wù)的適應(yīng)能力。

          為什么多任務(wù)是有效的?

          • 可增加訓(xùn)練樣本,且不同任務(wù)的噪音不同,同時學(xué)習(xí)多個任務(wù)能得到更通用的表達(dá)
          • 可以通過其他任務(wù)來判斷學(xué)習(xí)到的特征是否真的有效
          • 對于某個任務(wù)難學(xué)到的特征,可以通過其他任務(wù)來學(xué)習(xí)
          • 多任務(wù)學(xué)習(xí)傾向于讓模型關(guān)注其他模型也關(guān)注的信息表達(dá)
          • 某種程度上可以視為正則化

          常用多任務(wù)學(xué)習(xí)的主要方式

          • 基于參數(shù)的共享,如神經(jīng)網(wǎng)絡(luò)隱層參數(shù)共享,然后上層得到多個特征完成多種任務(wù)以達(dá)到聯(lián)合訓(xùn)練的目的,即loss里面組合多個。
          • 對于loss的組合的權(quán)重設(shè)置可以分為手工調(diào)整,Gradient normalization(希望不同任務(wù)loss的量級接近,納入梯度計算權(quán)重,優(yōu)點是可以考慮loss的量級,缺點是每一步都要額外算梯度)。Dynamic weight averaging,DWA希望各個任務(wù)以相近的速度來進(jìn)行學(xué)習(xí)(記錄每步的loss,loss縮小快的任務(wù)權(quán)重會變小,缺點是沒有考慮量級)。Dynamic Task Prioritization,DTP希望更難學(xué)的任務(wù)可以有更高的權(quán)重。Uncertainty Weighting,讓“簡單”的任務(wù)權(quán)重更高(確定性越強的任務(wù)權(quán)重會大,而噪聲大難學(xué)的任務(wù)權(quán)重會變?。?。對于loss的平衡挺講究的,也算是調(diào)參師需要掌握的東西吧,有空再新寫文章整理。
          • 基于正則化的共享,如均值約束,聯(lián)合特征學(xué)習(xí)等。比如使用低秩參數(shù)矩陣分解,即假設(shè)不同任務(wù)的參數(shù)可能會共享某些維度的特征,那么每個任務(wù)的參數(shù)都接近所有任務(wù)平均的參數(shù)來建模任務(wù)之間的相關(guān)性,即在loss中加入這樣的正則化來約束參數(shù):

          所以多任務(wù)的優(yōu)點在于它具有很好的泛化性能,對于有些任務(wù)的數(shù)據(jù)不足問題,也能借助其他任務(wù)得到訓(xùn)練,另外它還能起到正則的作用,即很難使某個任務(wù)過擬合以保證整個模型的泛化性能。

          而其困難在于如何更好的對每個任務(wù)分配權(quán)重(已經(jīng)有人有NAS做了...)以使其魯棒性最強,同時如何兼顧特征共享部分和任務(wù)的特點表示,避免過擬合或者欠擬合是值得研究的。

          除了一般處理多任務(wù)都是一個可學(xué)習(xí)的alpha來控制外,本篇文章將整理幾篇多任務(wù)學(xué)習(xí)的論文。

          Single-Level MTL Models

          單層主要有以下幾種方式:

          • 「Hard Parameter Sharing」:不同任務(wù)底層共享,然后共不同任務(wù)各自輸出。當(dāng)兩個任務(wù)相關(guān)性較高時,用這種結(jié)構(gòu)往往可以取得不錯的效果,但任務(wù)相關(guān)性不高時,會存在負(fù)遷移現(xiàn)象,導(dǎo)致效果不理想。
          • 「Asymmetry Sharing(不對稱共享)」:不同任務(wù)的底層模塊有各自對應(yīng)的輸出,但其中部分任務(wù)的輸出會被其他任務(wù)所使用,而部分任務(wù)則使用自己獨有的輸出。哪部分任務(wù)使用其他任務(wù)的輸出,則需要人為指定。
          • 「Customized Sharing(自定義共享)」:不同任務(wù)的底層模塊不僅有各自獨立的輸出,還有共享的輸出。
          • 「MMoE」:底層包含多個Expert,然后基于門控機制,不同任務(wù)會對不同Expert的輸出進(jìn)行過濾。
          • 「CGC」:這是PLE的結(jié)構(gòu)(圖自騰訊在RecSys2020最佳長論文,Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations),他的不同之處在于學(xué)習(xí)一個個性和共性兩方面的信息,然后再用不同的gate來控制。

          Multi-Level MTL Models

          • 「Cross-Stitch Network」:用參數(shù)來控制不同任務(wù)間共享的特征
          • 「Sluice Network」:分層特征融合網(wǎng)絡(luò)
          • 「ML-MMoE」:MMoE的多級結(jié)構(gòu)
          • 「PLE」:多層萃取(基于CGC)

          MMoE(Multi-gate Mixture-of-Experts)

          • 論文:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
          • 地址:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007
          • 也可以在公眾號后臺回復(fù)『0040』直接獲取

          MMoE應(yīng)該是實際上用的比較多一個架構(gòu)了,想主要整理一下這個。

          這篇文章是對多任務(wù)學(xué)習(xí)的一個擴展,通過門控網(wǎng)絡(luò)的機制來平衡多任務(wù)。所謂“平衡”是因為多任務(wù)學(xué)習(xí)中有個問題就是如果子任務(wù)之間的差異性太大了,多任務(wù)模型的效果會很差,那么如何平衡不同的任務(wù)呢?MMoE主要有兩個共享:

          • 圖a,使用shared-bottom網(wǎng)絡(luò),多個上層任務(wù)共用底層網(wǎng)絡(luò)。
          • 圖b,多個獨立模型的集成方法MoE,即每個expert network都可以認(rèn)為是神經(jīng)網(wǎng)絡(luò),公共一個門控網(wǎng)絡(luò)(One-gate MoE model),最終的輸出是所有experts的加權(quán)和。
          • 圖c,MMoE,每個任務(wù)使用單獨的gating networks。即每個任務(wù)的gating networks通過最終輸出權(quán)重不同實現(xiàn)對experts的選擇性利用。不同任務(wù)的gating networks可以學(xué)習(xí)到不同的組合experts的模式,因此模型考慮到了捕捉到任務(wù)的相關(guān)性和區(qū)別。

          通過這種multi-gate的結(jié)構(gòu)能夠緩解任務(wù)間差異大的情況。

          Multi-task Learning in LM

          語言模型是天然無監(jiān)督的多任務(wù)學(xué)習(xí)。而且鑒于目前針對BERT的改進(jìn)很多(包括BERT-large等版本)都是增加了數(shù)據(jù)量,計算能力或訓(xùn)練過程。

          • 比如RoBERTa,精細(xì)調(diào)參,為了優(yōu)化訓(xùn)練程序,從BERT的預(yù)訓(xùn)練程序中刪除了結(jié)構(gòu)預(yù)測(NSP)任務(wù),引入了動態(tài)掩蔽,以便在訓(xùn)練期間使掩蔽的標(biāo)記發(fā)生變化。
          • 比如DistilBERT學(xué)習(xí)了BERT的蒸餾版本,保留了95%的性能,但只使用了一半的參數(shù)。具體來說,它沒有標(biāo)記類型和池化層的嵌入,只保留了谷歌BERT中一半的層(當(dāng)然ALBERT也是等)。
          • MT-DNN與ERNIE2.0。這兩篇論文的多任務(wù)學(xué)習(xí)很有意思,接下來主要整理這兩篇文章。

          MT-DNN

          • 論文:Multi-Task Deep Neural Networks for Natural Language Understanding
          • 地址:https://arxiv.org/abs/1901.11504
          • 也可以在公眾號后臺回復(fù)『0041』直接獲取

          MT-DNN是結(jié)合了至少4種任務(wù)的模型:單句分類、句子對分類、文本相似度打分和相關(guān)度排序等等。

          • 「單句分類」:CoLA是判斷英語句子是否語法合適、SST-2是電影評論的情感(正面or負(fù)面)。
          • 「文本相似度」:STS-B對兩句話進(jìn)行文本相似度打分
          • 「句子對分類」:RTE和MNLI是文本蘊含任務(wù)(推理兩個句子之間的關(guān)系,是否存在蘊含關(guān)系、矛盾的關(guān)系或者中立關(guān)系),QQP和MRPC是判斷兩句話是否語義上一致,等價。
          • 「相關(guān)性排序」:QNLI斯坦福問答數(shù)據(jù)集的一個版本,雖然是二分類問題,此時變成一個多排序問題,使更接近的答案排得更加靠前。

          在MT-DNN的多任務(wù)學(xué)習(xí)中,也是低層的特征在所有任務(wù)之間共享,而頂層面向豐富的下游任務(wù)。從模型結(jié)構(gòu)上,從底向上的shared layers是Transformer逐步的過程,用于生成共享的上下文嵌入向量(contextual embedding layers),然后完成四種任務(wù)的預(yù)測。

          ERNIE2.0

          • 論文:ERNIE 2.0: A Continual Pre-Training Framework for Language Understanding
          • 地址:https://arxiv.org/abs/1907.12412
          • 也可以在公眾號后臺回復(fù)『0042』直接獲取

          ERNIE2.0的貢獻(xiàn)主要有1 通過大型語料庫+先驗知識。2,多任務(wù)學(xué)習(xí)逐步更新 ERNIE 模型。

          • 「序列性多任務(wù)學(xué)習(xí)」。使模型能夠?qū)W習(xí)到詞匯,語法,語義信息。不同于持續(xù)學(xué)習(xí)和多任務(wù)學(xué)習(xí),序列多任務(wù)學(xué)習(xí)在引入新的訓(xùn)練任務(wù)時,先利用之前學(xué)習(xí)到的參數(shù)對模型進(jìn)行初始化,再同時訓(xùn)練新任務(wù)和舊任務(wù)。
          • 「定制和引入了多種預(yù)訓(xùn)練任務(wù)」。側(cè)重詞匯的任務(wù)(mask,大寫字詞預(yù)測,字詞-文章關(guān)系),側(cè)重結(jié)構(gòu)/語法的任務(wù)(詞語重排序,語句距離),側(cè)重語義的任務(wù)(文章關(guān)系任務(wù),信息檢索相關(guān)性任務(wù))。如下圖,首先主要使用的任務(wù)有:
          • 「Knowledge Masking Task、Capitalization Prediction Task和Token-Document Relation Prediction Task」。Knowledge Masking Task是預(yù)測被masked掉的短語和命名知識實體以學(xué)習(xí)到局部語境和全局語境的依賴關(guān)系信息。Capitalization Prediction Task是首字母大寫預(yù)測,首字母大寫的詞往往有特殊的功能。Token-Document Relation Prediction Task預(yù)測段中的token是否出現(xiàn)在原始文檔的其他段(segment)中,即捕獲高頻詞或線索詞。
          • 「Sentence Reordering Task和Sentence Distance Task」。Sentence Reordering Task句子重排任務(wù)是為了學(xué)習(xí)句子之間的關(guān)系。Sentence Distance Task通過文檔級的信息學(xué)習(xí)句子之間的距離。
          • 「Discourse Relation Task和IR Relevance Task」。Discourse Relation Task引入2個句子之間語義或修辭關(guān)系的預(yù)測任務(wù)。IR Relevance Task學(xué)習(xí)短文本在信息檢索中的相關(guān)性。

          這篇文章比較有趣的就是這個多任務(wù)連續(xù)增量學(xué)習(xí),或持續(xù)學(xué)習(xí)(Continual learning)了,它致力于對數(shù)個任務(wù)按順序依次訓(xùn)練模型,以確保模型在訓(xùn)練新任務(wù)時候,依舊能夠記住先前的任務(wù)。正如人類能夠不斷地通過學(xué)習(xí)或歷史經(jīng)驗積累獲得信息,從而有效地發(fā)展新的技能。

          具體關(guān)于連續(xù)增量學(xué)習(xí)的對比,第一個是如何以連續(xù)的方式訓(xùn)練任務(wù),而不忘記以前所學(xué)的知識;第二個是如何更有效地學(xué)習(xí)這些預(yù)訓(xùn)練任務(wù)。

          • 「Continual Learning」。在訓(xùn)練的每一個階段僅通過一項任務(wù)來訓(xùn)練模型,如訓(xùn)練任務(wù)A,在訓(xùn)練任務(wù)B,一直到訓(xùn)練任務(wù)Z,但是其缺點是會忘記先前學(xué)習(xí)的知識,導(dǎo)致最后的結(jié)果會更加偏向靠后的任務(wù)。。
          • 「Multi-task Learning」。是普通的MTL,即所有任務(wù)在一起進(jìn)行多任務(wù)學(xué)習(xí),即同時訓(xùn)練A,B..Z期間不做交互最后做集成。缺點是訓(xùn)練完的模型只能處理這些任務(wù),如果出現(xiàn)了比較新的任務(wù),比較大的概率需要重頭開始訓(xùn)練。
          • 「Sequential Multi-task Learning」。當(dāng)有新任務(wù)出現(xiàn)時,先使用先前學(xué)習(xí)的參數(shù)來初始化模型,并同時訓(xùn)練新引入的任務(wù)和原始任務(wù),如先訓(xùn)練A,再訓(xùn)練A,B,再訓(xùn)練A,B,C,如圖中的金字塔形狀,當(dāng)有新任務(wù)出現(xiàn)時,它也能夠快速反應(yīng)做調(diào)整。

          除了這種,其實還可以先(A)(B)(C)訓(xùn)練,再(A,B)(B,C)(A,C),最后再(A,B,C)這種方式。有點像我們做題往往會先做單項訓(xùn)練,再綜合訓(xùn)練。


          - END -


          瀏覽 209
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  777777亚洲成人 | 熟女性爱网站 | 国产A V一区二区三区 | 成人午夜无码视频 | 国内毛片毛片毛片毛片毛片毛片 |