<input id="ohw05"></input>
  • <table id="ohw05"><menu id="ohw05"></menu></table>
  • <var id="ohw05"></var>
  • <code id="ohw05"><cite id="ohw05"></cite></code>
    <label id="ohw05"></label>
    <var id="ohw05"></var>
  • Facebook出手!自適應梯度打敗人工調參

    大家好,我是對白。

    多任務模型中各個任務難以調參、收斂、效果平平,是一件令人頭疼的事情。有沒有什么可以令人省心省力的“自適應”方法呢?筆者瀏覽了一些最近的頂會文章,讀了一些相關文章,今天挑選一篇分享給大家~

    說到多任務學習,想必大家都不陌生。在理想的推薦場景中,通過與輔助任務的聯合學習,可以提升目標任務的預測效果。例如,在社交推薦中,用戶偏好的學習可以與輔助任務(預測用戶之間的聯系與信任)聯合訓練。

    但理想歸理想,現實卻往往“事故多發”。說不定,在加了多個輔助任務,并經歷艱難的調參之后,目標任務的效果卻令人頭禿。直覺分析原因,有兩種可能:

    • 當輔助任務產生了比目標任務更大的影響,甚至支配了網絡權重時,目標任務的結果會變得更差;

    • 另一個極端,當一個或多個輔助任務的影響太弱時,則無法幫助目標任務提升效果。

    更具可能性的情況是,上述兩個可能原因在訓練的過程中交替出現,并且在同一個網絡的不同部分之間變化。

    在多任務學習中,模型的訓練loss通常由多個損失函數加權得到,而不同任務重要程度往往是需要人為設參的,使得我們可能在調參問題上時間花費較多。

    這篇文章所提的方法MetaBalance采用對輔助任務動態梯度調整的方式,取代對不同任務的權重調整,在NDCG@10上針對兩數據集取得了8.34%的改進

    圖片

    論文標題:MetaBalance: Improving Multi-Task Recommendations via Adapting Gradient Magnitudes of Auxiliary Tasks

    論文鏈接:https://doi.org/10.1145/3485447.3512093

    論文代碼:https://github.com/facebookresearch/MetaBalance

    一、MetaBalance核心思想


    圖片

    本文由Meta AI發表于WWW2022上。在看文章具體內容之前,我們先回憶一下多任務學習的損失函數以及梯度更新規則:

    從梯度的角度再去解釋一下輔助任務對目標任務產生負面影響的原因:

    多任務網絡通常由具有共享參數的bottom layer和幾個ask-specific layers組成,如下圖:

    圖片

    在訓練中,每個任務都有相應的loss,并相對于多任務網絡的共享參數具有相應的梯度。這些梯度的綜合會影響參數的更新方式,并且梯度越大,對共享參數的影響越大

    • 當輔助loss的梯度遠大于目標loss的梯度時,輔助任務相比目標函數會對共享參數產生更大的影響,導致最終目標任務的性能下降;

    • 反之,輔助任務的影響太弱,則無法輔助目標任務。

    這種情況其實很常見,如下圖阿里巴巴的兩個例子,分別對應了上述兩種情況。

    圖片

    二、算法細節


    如何調整輔助梯度大小呢?針對上面的分析,我們可以看到有兩種不適宜的梯度情況,對此MetaBalance提出了三種策略:

    1. 當遠大于時,應能自適應減少;

    2. 當遠小于時,應能自適應增大;

    3. 如有必要,可同時進行1與2策略。

    該策略是根據目標任務在驗證數據集上的性能選擇的,這是針對特定任務和數據集的經驗最佳策略。

    為了實現的自適應變化,文章提出可以平衡的*動態權重*。

    到目前為止,一個基本的算法流程為:

    圖片

    然而,強制輔助梯度與目標梯度具有完全相同的大小,一定可以實現目標任務的最佳值嗎?文章對此提出采用 relax factor 來調節輔助梯度與目標梯度大小的接近度。

    采用上式來代替算法1中的步驟6。可以看到,當 越接近1,兩種梯度的接近度越高。

    圖片

    不僅如此, 實際上會影響每個輔助任務的權重,將算法1中的第六行改寫為:

    圖片

    那么,應該如何選擇合適的 值呢?

    由于 僅用于反向傳播,不含任何loss的梯度,故作為超參數,在驗證集進行優化。

    這里注意,盡管所有輔助任務均采用相同的 值,但并不表示它們具有相同的權重或梯度大小,可參考上圖公式(4)。

    最后,應用相應梯度的移動平均值,以訓練迭代中所有梯度之間的方差

    最終算法的偽代碼為:

    圖片

    三、實驗結果


    實驗結果總體不錯,下面展示了三種梯度調整策略的實驗結果,可見在UserBehavior-2017中均顯著優于vanilla多任務學習baseline(“vanilla multi”),并且策略C在IJCAI-2015中顯著優于基線,這表明了MetaBalance的有效性和魯棒性。

    圖片

    下面展示了對超參數relax factor 的研究分析。

    圖片

    四、總結


    本文從梯度大小的角度提出了MetaBalance來調整輔助任務,以更好地輔助目標任務。該方法可以防止目標任務不受輔助任務的支配,也可以避免一個或多個輔助任務被忽略。此外,輔助梯度針對網絡的每個部分,在整個訓練過程中實現了動態、自適應的平衡

    文末留兩個思考題:

    1. 從梯度的視角下去理解多任務學習,并不是一個新鮮的話題,你還知道哪些有效的梯度調整方法?

    2. 類似的思路是否可以用到其他領域呢,例如多模態學習?

    關于我

    我是對白,清華計算機碩士,BAT算法工程師。歡迎關注我的微信公眾號對白的算法屋,日常分享編程經驗和技術干貨,幫助你少走彎路!還可以加我微信,領資源和進交流群。

    posted @ 2022-06-28 13:20  對白的算法屋  閱讀(6)  評論(0編輯  收藏  舉報
    国产美女a做受大片观看