像點擊率預估這樣的在線實時響應系統對響應時間要求很是嚴格,結構複雜,層數很深的深度模型不能很好地知足嚴苛的響應時間的限制。爲了得到知足響應時間限制、具備優良表現的模型,咱們提出了一個新型框架:訓練階段,同時訓練繁簡兩個複雜度有明顯差別的網絡,簡單的網絡稱爲輕量網絡(light net),複雜的網絡稱爲助推器網絡(booster net),它相比前者有更強的學習能力。兩網絡共享部分參數,分別學習類別標記。此外,輕量網絡經過學習助推器的soft target來模仿助推器的學習過程,從而獲得更好的訓練效果。測試階段,僅採用輕量網絡進行預測。git
咱們的方法被稱做「火箭發射」系統。在公開數據集和阿里巴巴的在線展現廣告系統上,咱們的方法在不提升在線響應時間的前提下,均提升了預測效果,展示了其在在線模型上應用的巨大價值。算法
目前有2種思路來解決模型響應時間的這個問題:一方面,能夠在固定模型結構和參數的狀況下,用計算數值壓縮來下降inference時間,同時也有設計更精簡的模型以及更改模型計算方式的工做,如Mobile Net和ShuffleNet等工做;另外一方面,利用複雜的模型來輔助一個精簡模型的訓練,測試階段,利用學習好的小模型來進行推斷,如KD, MIMIC。這兩種方案並不衝突,在大多數狀況下第二種方案能夠經過第一種方案進一步下降inference時間,同時,考慮到相對於嚴苛的在線響應時間,咱們有更自由的訓練時間,有能力訓練一個複雜的模型,因此咱們採用第二種思路,來設計了咱們的方法。後端
火箭發射過程當中,初始階段,助推器和飛行器一同前行,第二階段,助推器剝離,飛行器獨自前進。在咱們的框架中,訓練階段,有繁簡兩個網絡一同訓練,複雜的網絡起到助推器的做用,經過參數共享和信息提供推進輕量網絡更好的訓練;在預測階段,助推器網絡脫離系統,輕量網絡獨自發揮做用,從而在不增長預測開銷的狀況下,提升預測效果。整個過程與火箭發射相似,因此咱們命名該系統爲「火箭發射」。網絡
咱們框架的創新在於它新穎的訓練方式:框架
一、繁簡兩個模型協同訓練,協同訓練有如下好處:ide
a) 一方面,縮短總的訓練時間:相比傳統teacer-student範式中,teacher網絡和student網絡前後分別訓練,咱們的協同訓練過程減小了總的訓練時間,這對在線廣告系統這樣,天天得到大量訓練數據,不斷更新模型的場景十分有用。性能
b) 另外一方面,助推器網絡全程提供soft target信息給輕量網絡,從而達到指導輕量網絡整個求解過程的目的,使得咱們的方法,相比傳統方法,得到了更多的指導信息,從而取得更好的效果。學習
二、採用梯度固定技術:訓練階段,限制兩網絡soft target相近的loss,只用於輕量網絡的梯度更新,而不更新助推器網絡,從而使得助推器網絡不受輕量網絡的影響,只從真實標記中學習信息。這一技術,使得助推器網絡擁有更強的自由度來學習更好的模型,而助推器網絡效果的提高,也會提高輕量網絡的訓練效果。測試
助推器網絡和輕量網絡共享部分層的參數,共享的參數能夠根據網絡結構的變化而變化。通常狀況下,兩網絡能夠共享低層。在神經網絡中,低層能夠用來學習信息表示,低層網絡的共享,能夠幫助輕量網絡得到更好的信息表示能力。spa
圖1:網絡結構
如圖1所示,訓練階段,咱們同時學習兩個網絡:Light Net 和Booster Net, 兩個網絡共享部分信息。咱們把大部分的模型理解爲表示層學習和判別層學習,表示層學習的是對輸入信息作一些高階處理,而判別層則是和當前子task目標相關的學習,咱們認爲表示層的學習是能夠共享的,如multitask learning中的思路。因此在咱們的方法裏,共享的信息爲底層參數(如圖像領域的前幾個卷積層,NLP中的embedding),這些底層參數能必定程度上反應了對輸入信息的基本刻畫。
整個訓練過程,網絡的loss以下:
Loss包含三部分:第一項,爲light net對ground truth的學習,第二項,爲booster net對ground truth的學習,第三項,爲兩個網絡softmax以前的logits的均方偏差(MSE),該項做爲hint loss, 用來使兩個網絡學習獲得的logits儘可能類似。
Co-Training
兩個網絡一塊兒訓練,從而booster net 會全程監督輕量網絡的學習,必定程度上,booster net指導了light net整個求解過程,這與通常的teacher-student 範式下,學習好大模型,僅用大模型固定的輸出做爲soft target來監督小網絡的學習有着明顯區別,由於boosternet的每一次迭代輸出雖然不能保證對應一個和label很是接近的預測值,可是到達這個解以後有利於找到最終收斂的解 。
Hint Loss
Hint Loss這一項在SNN-MIMIC中採用的是和咱們一致的對softmax以前的logits作L2 Loss:
Hinton的KD方法是在softmax以後作KL散度,同時加入了一個RL領域經常使用的超參temperature T:
也有一個半監督的工做再softmax以後接L2 Loss:
因爲booster net有更多的參數,有更強的擬合能力,咱們須要給他更大的自由度來學習,儘可能減小小網絡對他的拖累,咱們提出了gradient block的技術,該技術的目的是,在第三項hint loss進行梯度回傳時,咱們固定booster net獨有的參數
不更新,讓該時刻,大網絡前向傳遞獲得的,來監督小網絡的學習,從而使得小網絡向大網絡靠近。
實驗方面,咱們驗證了方法中各個子部分的必要性。同時在公開數據集上,咱們還與幾個teacher-student方法進行對比,包括Knowledge Distillation(KD),Attention Transfer(AT)。爲了與目前效果出色的AT進行公平比較,咱們採用了和他們一致的網絡結構寬殘差網絡(WRN)。實驗網絡結構以下:
圖2:實驗所用網絡結構
紅色+黃色表示light net, 藍色+紅色表示booster net。(a)表示兩個網絡共享最底層的block,符合咱們通常的共享結構的設計。(b)表示兩網絡共享每一個group最底層的block,該種共享方式和AT在每一個group以後進行attention transfer的概念一致。
咱們經過各類對比實驗,驗證了參數共享和梯度固定都能帶來效果的提高。
各類LOSS效果比較
輕量網絡層數變化效果圖
固定booster net, 改變light net的層數,rocket launching始終取得比KD要好的表現,這代表,light net始終能從booster net中獲取有價值的信息。
可視化效果
經過可視化實驗,咱們觀察到,經過咱們的方法,light net能學到booster net的底層group的特徵表示。
公開數據集效果比較
除了自身方法效果的驗證,在公開數據集上,咱們也進行了幾組實驗。
在CIFAR-10上, 咱們嘗試不一樣的網絡結構和參數共享方式,咱們的方法均顯著優於已有的teacher-student的方法。在多數實驗設置下,咱們的方法疊加KD,效果會進一步提高。
這裏WRN-16-1,0.2M 表示wide residual net, 深度爲16,寬度爲1,參數量爲0.2M。
同時在CIFAR-100和SVHN上,取得了一樣優異的表現。
真實應用
同時,在阿里展現廣告數據集上,咱們的方法,相比單純跑light net,能夠將GAUC提高0.3%。
咱們的線上模型在後面的全鏈接層只要把參數量和深度同時調大,就能有一個提升,可是在線的時候有很大一部分的計算耗時消耗在全鏈接層(embedding只是一個取操做,耗時隨參數量增長並不明顯),因此後端一個深而寬的模型直接上線壓力會比較大。表格裏列出了咱們的模型參數對比以及離線的效果對比:
在線響應時間對在線系統相當重要。本文提出的火箭發射式訓練框架,在不提升預測時間的前提下,提升了模型的預測效果。爲提升在線響應模型效果提供了新思路。目前Rocket Launching的框架爲在線CTR預估系統弱化在線響應時間限制和模型結構複雜化的矛盾提供了可靠的解決方案,咱們的技術能夠作到在線計算被壓縮8倍的狀況下性能不變。在平常能夠減小咱們的在線服務機器資源消耗,雙十一這種高峯流量場景更是保障算法技術不降級的可靠方案。
本文做者:熱愛論文的
本文來自雲棲社區合做夥伴「阿里技術」,如需轉載請聯繫原做者。