1. 程式人生 > >點選率預估界的“神運算元”是如何煉成的?

點選率預估界的“神運算元”是如何煉成的?

640?wx_fmt=jpeg

阿里妹導讀:響應時間直接決定線上響應系統的效果和使用者體驗。比如線上展示廣告系統中,針對一個使用者,需要在幾ms內,對上百個候選廣告的點選率進行預估。因此,如何在嚴苛的響應時間內,提高模型的線上預測效果,是工業介面臨的一個巨大問題。今天我們一起來看看,阿里工程師怎麼做。


作者:周國睿、範穎、卞維傑、朱小強、蓋坤


摘要


像點選率預估這樣的線上實時響應系統對響應時間要求非常嚴格,結構複雜,層數很深的深度模型不能很好地滿足嚴苛的響應時間的限制。為了獲得滿足響應時間限制、具有優良表現的模型,我們提出了一個新型框架:訓練階段,同時訓練繁簡兩個複雜度有明顯差異的網路,簡單的網路稱為輕量網路(light net),複雜的網路稱為助推

器網路(booster net),它相比前者有更強的學習能力。兩網路共享部分引數,分別學習類別標記。此外,輕量網路通過學習助推器的soft target來模仿助推器的學習過程,從而得到更好的訓練效果。測試階段,僅採用輕量網路進行預測。


我們的方法被稱作“火箭發射”系統。在公開資料集和阿里巴巴的線上展示廣告系統上,我們的方法在不提高線上響應時間的前提下,均提高了預測效果,展現了其在線上模型上應用的巨大價值。


已有方法介紹

 

目前有2種思路來解決模型響應時間的這個問題:一方面,可以在固定模型結構和引數的情況下,用計算數值壓縮來降低inference時間,同時也有設計更精簡的模型以及更改模型計算方式的工作,如Mobile Net和ShuffleNet等工作;另一方面,利用複雜的模型來輔助一個精簡模型的訓練,測試階段,利用學習好的小模型來進行推斷,如KD, MIMIC。這兩種方案並不衝突,在大多數情況下第二種方案可以通過第一種方案進一步降低inference時間,同時,考慮到相對於嚴苛的線上響應時間,我們有更自由的訓練時間,有能力訓練一個複雜的模型,所以我們採用第二種思路,來設計了我們的方法。


研究動機及創新性


火箭發射過程中,初始階段,助推器和飛行器一同前行,第二階段,助推器剝離,飛行器獨自前進。在我們的框架中,訓練階段,有繁簡兩個網路一同訓練,複雜的網路起到助推器的作用,通過引數共享和資訊提供推動輕量網路更好的訓練;在預測階段,助推器網路脫離系統,輕量網路獨自發揮作用,從而在不增加預測開銷的情況下,提高預測效果。整個過程與火箭發射類似,所以我們命名該系統為“火箭發射”。


訓練方式創新


我們框架的創新在於它新穎的訓練方式:


1、繁簡兩個模型協同訓練,協同訓練有以下好處:

    

a) 一方面,縮短總的訓練時間:相比傳統teacer-student正規化中,teacher網路和student網路先後分別訓練,我們的協同訓練過程減少了總的訓練時間,這對線上廣告系統這樣,每天獲得大量訓練資料,不斷更新模型的場景十分有用。


b) 另一方面,助推器網路全程提供soft target資訊給輕量網路,從而達到指導輕量網路整個求解過程的目的,使得我們的方法,相比傳統方法,獲得了更多的指導資訊,從而取得更好的效果。


2、採用梯度固定技術:訓練階段,限制兩網路soft target相近的loss,只用於輕量網路的梯度更新,而不更新助推器網路,從而使得助推器網路不受輕量網路的影響,只從真實標記中學習資訊。這一技術,使得助推器網路擁有更強的自由度來學習更好的模型,而助推器網路效果的提升,也會提升輕量網路的訓練效果。


結構創新


助推器網路和輕量網路共享部分層的引數,共享的引數可以根據網路結構的變化而變化。一般情況下,兩網路可以共享低層。在神經網路中,低層可以用來學習資訊表示,低層網路的共享,可以幫助輕量網路獲得更好的資訊表示能力。


方法框架


640?wx_fmt=png

圖1:網路結構


如圖1所示,訓練階段,我們同時學習兩個網路:Light Net 和Booster Net, 兩個網路共享部分資訊。我們把大部分的模型理解為表示層學習和判別層學習,表示層學習的是對輸入資訊做一些高階處理,而判別層則是和當前子task目標相關的學習,我們認為表示層的學習是可以共享的,如multitask learning中的思路。所以在我們的方法裡,共享的資訊為底層引數(如影象領域的前幾個卷積層,NLP中的embedding),這些底層引數能一定程度上反應了對輸入資訊的基本刻畫。


整個訓練過程,網路的loss如下:


640?wx_fmt=png


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:

640?wx_fmt=png


Hinton的KD方法是在softmax之後做KL散度,同時加入了一個RL領域常用的超參temperature T:

640?wx_fmt=png


也有一個半監督的工作再softmax之後接L2 Loss:


640?wx_fmt=png


已有的文獻沒有給出一個合理的解釋為什麼要用這個Loss,而是僅僅給出實驗結果說明這個Loss在他們的方法中表現得好。KD的paper中提出在T足夠大的情況下,KD的640?wx_fmt=png是等價於640?wx_fmt=png的。我們在論文裡做了一個稍微細緻的推導,發現這個假設T足夠大使得640?wx_fmt=png成立的情況下,梯度也是一個無窮小,沒有意義了。同時我們在paper的appendix裡在一些假設下我們從最大似然的角度證明了640?wx_fmt=png的合理性。


Gradient Block


由於booster net有更多的引數,有更強的擬合能力,我們需要給他更大的自由度來學習,儘量減少小網路對他的拖累,我們提出了gradient block的技術,該技術的目的是,在第三項hint loss進行梯度回傳時,我們固定booster net獨有的引數640?wx_fmt=png不更新,讓該時刻,大網路前向傳遞得到的640?wx_fmt=png,來監督小網路的學習,從而使得小網路向大網路靠近。


實驗結果


實驗方面,我們驗證了方法中各個子部分的必要性。同時在公開資料集上,我們還與幾個teacher-student方法進行對比,包括Knowledge Distillation(KD),Attention Transfer(AT)。為了與目前效果出色的AT進行公平比較,我們採用了和他們一致的網路結構寬殘差網路(WRN)。實驗網路結構如下:


640?wx_fmt=png

圖2:實驗所用網路結構


紅色+黃色表示light net, 藍色+紅色表示booster net。(a)表示兩個網路共享最底層的block,符合我們一般的共享結構的設計。(b)表示兩網路共享每個group最底層的block,該種共享方式和AT在每個group之後進行attention transfer的概念一致。


各創新點的效果


我們通過各種對比實驗,驗證了引數共享和梯度固定都能帶來效果的提升。


640?wx_fmt=png


各種LOSS效果比較


640?wx_fmt=png


輕量網路層數變化效果圖


固定booster net, 改變light net的層數,rocket  launching始終取得比KD要好的表現,這表明,light net始終能從booster net中獲取有價值的資訊。


640?wx_fmt=png


視覺化效果


通過視覺化實驗,我們觀察到,通過我們的方法,light net能學到booster net的底層group的特徵表示。


640?wx_fmt=png

 

公開資料集效果比較


除了自身方法效果的驗證,在公開資料集上,我們也進行了幾組實驗。


在CIFAR-10上, 我們嘗試不同的網路結構和引數共享方式,我們的方法均顯著優於已有的teacher-student的方法。在多數實驗設定下,我們的方法疊加KD,效果會進一步提升。

 

640?wx_fmt=png


這裡WRN-16-1,0.2M 表示wide residual net, 深度為16,寬度為1,引數量為0.2M。


同時在CIFAR-100和SVHN上,取得了同樣優異的表現。


640?wx_fmt=png


真實應用


同時,在阿里展示廣告資料集上,我們的方法,相比單純跑light net,可以將GAUC提升0.3%。


我們的線上模型在後面的全連線層只要把引數量和深度同時調大,就能有一個提高,但是線上的時候有很大一部分的計算耗時消耗在全連線層(embedding只是一個取操作,耗時隨引數量增加並不明顯),所以後端一個深而寬的模型直接上線壓力會比較大。表格裡列出了我們的模型引數對比以及離線的效果對比:

 

640?wx_fmt=png


總結


線上響應時間對線上系統至關重要。本文提出的火箭發射式訓練框架,在不提高預測時間的前提下,提高了模型的預測效果。為提高線上響應模型效果提供了新思路。目前Rocket Launching的框架為線上CTR預估系統弱化線上響應時間限制和模型結構複雜化的矛盾提供了可靠的解決方案,我們的技術可以做到線上計算被壓縮8倍的情況下效能不變。在日常可以減少我們的線上服務機器資源消耗,雙十一這種高峰流量場景更是保障演算法技術不降級的可靠方案。


本論文收錄於AAAI 2018


640?wx_fmt=png

每天一篇技術文章,

看不過癮?

關注“阿里巴巴機器智慧”,

發現更多AI乾貨。


640?wx_fmt=jpeg

 ↑ 翹首以盼等你關注



640?wx_fmt=gif

你可能還喜歡

點選下方圖片即可閱讀


640?wx_fmt=jpeg

領域驅動設計,盒馬技術團隊這麼做


640?wx_fmt=jpeg

如何量化考核技術人的 KPI?


640?wx_fmt=jpeg

看完這8本演算法好書,才算真正懂了 AI



640?wx_fmt=jpeg

關注「阿里技術」

把握前沿技術脈搏