廣告系列:召回與排序(三)
導(dǎo)語:特征對于機(jī)器學(xué)習(xí)很重要,整個(gè)模型發(fā)展的主旋律之一就是對有效特征及其組合的發(fā)現(xiàn)和使用。實(shí)際場景中影響結(jié)果的特征有很多,隨著發(fā)展業(yè)務(wù)對預(yù)估的精度要求不斷提高,模型結(jié)構(gòu)也越來越復(fù)雜。召回與排序涉及的模型如過江之鯽,不勝枚舉,本文試圖通過梳理發(fā)展歷程找出其中的演化痕跡,歡迎大家探討學(xué)習(xí)。
一、通過梳理可以發(fā)現(xiàn)有幾條主線
- 特征的范圍:從只使用動態(tài)交互信息的協(xié)同過濾,到引入用戶/廣告自身靜態(tài)信息(sideinfo),再到火熱的知識圖譜圖神經(jīng)網(wǎng)絡(luò),特征涵蓋的范圍不斷擴(kuò)展。動態(tài)交互類特征相比其他特征更為重要,模型在起始階段聚焦于主要因素,后續(xù)隨著業(yè)務(wù)發(fā)展向周邊延伸使整體覆蓋的信息更加全面,這是一種正常的演化思路。
- 特征的使用:對特征的使用在不斷創(chuàng)新,從線性到非線性、從低階特征到高階,借助模型結(jié)構(gòu)不斷發(fā)現(xiàn)新的組合方式, 這是另一個(gè)主方向。
- 現(xiàn)有結(jié)構(gòu)的深層次刻畫:將一個(gè)點(diǎn)擴(kuò)展成一個(gè)復(fù)雜系統(tǒng),利用內(nèi)部結(jié)構(gòu)擬合真相,比如embeding把一個(gè)概念擴(kuò)展成多維向量,再從靜態(tài)表示到結(jié)合上下文獲得動態(tài)向量,比如attention思想將簡單的一視同仁發(fā)展到根據(jù)實(shí)際情況區(qū)別對待。
在展開之前先簡要介紹下協(xié)同過濾,作為傳統(tǒng)手藝它啟發(fā)了FM、NN后續(xù)發(fā)展,有重要的歷史地位。協(xié)同過濾主要的場景用數(shù)據(jù)形式表達(dá):用戶對物品有個(gè)打分矩陣,其中部分值已經(jīng)填充代表用戶和物品有過交互,還有部分空缺的值代表未交互,最終任務(wù)是把這些空缺填上。
針對上面的場景協(xié)同過濾提出一種假設(shè):用戶對物品的分?jǐn)?shù)是用戶隱向量和物品隱向量求點(diǎn)擊積獲得的,這個(gè)假設(shè)很強(qiáng)大:把求未知分?jǐn)?shù)轉(zhuǎn)化為求二者的隱向量,學(xué)習(xí)過程比較常規(guī)利用矩陣中已有的值來訓(xùn)練向量,當(dāng)預(yù)估值足夠接近真實(shí)標(biāo)記時(shí)獲得隱向量,然后通過點(diǎn)積將空缺填滿。
協(xié)同過濾通過轉(zhuǎn)換建立起已知和未知的紐帶,利用已知預(yù)測去未知從邏輯上變成可能,操作雖然簡單但里面包含的思想很了不起。
下面主要從特征組合這條線梳理模型脈絡(luò),實(shí)際場景的特征數(shù)量很多,做笛卡爾積太簡單粗暴,不僅運(yùn)算量大特征有效性也無法保障,所以LR以后包括FM 、樹、圖、神經(jīng)網(wǎng)絡(luò)在內(nèi)都是借助自身結(jié)構(gòu)來獲得有效特征。
二、特征組合
1. LR
主要學(xué)習(xí)特征與標(biāo)記的線性關(guān)系是機(jī)器學(xué)習(xí)的起點(diǎn)。簡單直白,各特征的影響清清楚楚,欠缺之處在于表達(dá)能力有限,不足以表征數(shù)據(jù)內(nèi)在的復(fù)雜規(guī)律和分布,容易欠擬合,如果有很強(qiáng)的專家知識提煉出高信息量的特征,面對各種后浪依然可以一戰(zhàn)。
2. MLR
分而治之思想很好的體現(xiàn)。通過兩階段分類器進(jìn)行非線性擬合,先對樣本聚類分組,然后在組內(nèi)利用線性模型預(yù)測,最后加權(quán)求和,其中第一步聚類是軟分類,算出樣本對不同類別隸屬度作為后面求和時(shí)的權(quán)重。整個(gè)過程也可以看做綜合不同專家意見最后確定結(jié)論。
3. DT
從根到葉子節(jié)點(diǎn)的路徑可以看做帶有繼承關(guān)系的層級結(jié)構(gòu),最終的落腳點(diǎn)在葉子節(jié)點(diǎn)上。
- 應(yīng)用場景1:特征組合。Facebook利用GBDT來進(jìn)行特征組合,在NN興起之前是特征組合界最靚的仔。
- 應(yīng)用場景2:高效檢索。阿里在TMD論文中提出利用樹的分層結(jié)構(gòu)檢索全量候選,大幅減少計(jì)算量從而提升檢索效率,召回環(huán)節(jié)運(yùn)用復(fù)雜模型的性能問題得到解決,功在千秋。
4. FM
二階特征組合自動化。針對二級組合的參數(shù)提出了假設(shè):通過兩個(gè)特征隱向量的點(diǎn)積獲得參數(shù)(思路看起來是不是有點(diǎn)眼熟),解決了樣本數(shù)據(jù)稀疏時(shí)的訓(xùn)練問題,提升了模型的泛化能力,其中隱向量就是NN中embedding后的向量表示,相比協(xié)同過濾中隱向量包含的信息,F(xiàn)M可以加入各種邊信息含義更豐富。
5. FFM
在FM的基礎(chǔ)上引入領(lǐng)域的概念,與不同領(lǐng)域的特征做組合時(shí)用不同的向量表達(dá)(f個(gè)領(lǐng)域則每個(gè)特征有f-1個(gè)向量表示),對真相刻畫的更細(xì)致,缺點(diǎn)在于參數(shù)太多(f*n*k),在高性能要求下大規(guī)模上場發(fā)揮的空間有限。
6. NN
通過MLP和激活函數(shù)隱式提取高階特征組合,從此機(jī)器學(xué)習(xí)邁入深度紀(jì)元。
神經(jīng)網(wǎng)絡(luò)歷史上一度被遺棄到現(xiàn)在如火如荼,其中很關(guān)鍵的一個(gè)轉(zhuǎn)折是反向傳播的提出:運(yùn)用鏈?zhǔn)椒▌t求導(dǎo)來迭代參數(shù),在數(shù)據(jù)和算力的推動下NN重返舞臺,針對NN稍微展開聊幾個(gè)有意思的點(diǎn)。
1)雙塔結(jié)構(gòu)
用戶塔使用用戶側(cè)特征經(jīng)過多次組合獲得向量表示,廣告塔獲得廣告表示,二者在學(xué)習(xí)過程中不交互,確定表示后通過點(diǎn)積/余弦相似度計(jì)算相關(guān)度,雙塔的重點(diǎn)在于學(xué)習(xí)向量表示是召回階段的主力模型。
2)Embedding
廣告召回排序涉及很多類別特征,針對離散化數(shù)據(jù)一般使用獨(dú)熱編碼,考慮到訓(xùn)練成本和過擬合風(fēng)險(xiǎn)進(jìn)入網(wǎng)絡(luò)前會映射為低維稠密向量,就是embedding,這里它的主要作用是降維,其優(yōu)秀之處在于獲得的向量不僅維數(shù)減少而且保留了深層語義信息,可以進(jìn)行表征、比較和運(yùn)算。
3)Attention
不一視同仁根據(jù)實(shí)際情況區(qū)分主次,從而進(jìn)行更細(xì)致的刻畫。
attention的關(guān)鍵點(diǎn)在于如何確定重要度,谷歌在論文中提到Query、Key和Value,計(jì)算Query和Key的相關(guān)度作為作為權(quán)重,權(quán)重表示信息的重要程度,Value對應(yīng)信息,權(quán)重越大對應(yīng)Value給與更高的重視。
attention思想自提出以來得到廣泛認(rèn)同和使用,尤其在處理用戶歷史行為方面,機(jī)器學(xué)習(xí)的主要目標(biāo)之一就是對數(shù)據(jù)進(jìn)行辨識區(qū)分,attention很好的體現(xiàn)了這一點(diǎn)。
4)Pooling
pooling體現(xiàn)的是提取和壓縮,CNN中通過pooling將多個(gè)向量壓縮成一個(gè)向量,在處理歷史行為序列時(shí)不同用戶長度不同,一般也會做壓縮提煉為確定的長度,pooling的方法有很多如max/sum/average等,當(dāng)然還有上面提到的attention。
延伸一下pooling背后也包含了降維/聚類思想,如果因素太多維數(shù)太高不利于分析,需要進(jìn)一步精簡,化多為少需要智慧,關(guān)鍵在于簡化過程中如何保持/凸顯核心信息。降維思想在很多方面都有體現(xiàn):PCA、聚類、分桶、散列函數(shù)、embedding等,雖然使用場景不同但主旨思想是相通的。
監(jiān)督學(xué)習(xí)利用有標(biāo)記數(shù)據(jù)訓(xùn)練模型,訓(xùn)練數(shù)據(jù)終究有限,部分特征與標(biāo)記的關(guān)系在數(shù)據(jù)中已經(jīng)體現(xiàn)出來,還有部分特征的關(guān)系沒有很好體現(xiàn)。
前面介紹的模型在處理特征組合時(shí)各有側(cè)重,要么低階要么高階,要么顯式要么隱式,谷歌在論文中指出低階和高階特征都很重要不能偏執(zhí)一方,提出混合模型用擅長記憶的模型去提取已經(jīng)體現(xiàn)的,用擅長擴(kuò)展泛化的模型去學(xué)習(xí)還未體現(xiàn)的,雙劍合璧威力大增。
混合模型提供了一個(gè)很好的的思路,把模型看做組件,以混合搭配的方式結(jié)合起來創(chuàng)造出需要的結(jié)構(gòu)類似樂高積木,其中比較關(guān)鍵的點(diǎn)是對模型的選擇,每個(gè)模型有自己的屬性,組件的選取要與實(shí)際場景的訴求所匹配:模型擅長的恰恰是場景所看中和需要的。
例如CNN擅長在移動窗口內(nèi)捕捉結(jié)構(gòu)信息并通過不斷加深卷積來提升抽象層級,這與圖像周邊像素聚集并不斷拉長距離來感知整體不謀而合。下面簡單梳理下由谷歌引發(fā)的混合模型潮流。
7. wide&deep
整體模型分為兩部分,Wide部分是LR,負(fù)責(zé)顯式提取低階特征,強(qiáng)調(diào)記憶,特征組合需要人工構(gòu)建,Deep部分一般使用前饋神經(jīng)網(wǎng)絡(luò),負(fù)責(zé)隱式提取高階特征,強(qiáng)調(diào)泛化,兩個(gè)部分通過并行方式組合,低高階特征共同作用于輸出。
8. deepFM
模型整體結(jié)構(gòu)與W&D一致,區(qū)別在于Wide部分由LR替換為FM,相比LR它能自動提取二階特征組合,規(guī)避了依賴人工的弊端,且兩部分共用embedding提升了效率,模型能抗能打是居家旅行必備之選。
9. DCN
與deepFM一樣也是在Wide部分動手腳,用Cross Network顯式提取特征,每層都對特征交叉組合,隨著層數(shù)增加組合的階數(shù)也持續(xù)增加,網(wǎng)絡(luò)最后一層涵蓋了從一階到N+1階的特征,根據(jù)實(shí)際情況來確定層數(shù),不過既然有專門負(fù)責(zé)提取高階的DNN美玉在前,層數(shù)不宜太高。
10. PNN
PNN指出神經(jīng)網(wǎng)絡(luò)以或的形式進(jìn)行特征組合捕捉信息能力太差,不如以且的方式更有辨識度,所以兩個(gè)組件模型以串行組合,在特征接入神經(jīng)網(wǎng)絡(luò)前加了一層product layer處理,該層分為兩個(gè)部分:
一部分是常規(guī)特征embedding后拼接,另一部分是進(jìn)行product后獲得交叉向量,兩部分拼接后一起送入神經(jīng)網(wǎng)絡(luò),PNN為混合模型提供了另一個(gè)組合思路,但在預(yù)測中低階特征沒有直接發(fā)揮作用,可謂有得有失。
上面的栗子可以看出演化的基本趨勢是結(jié)構(gòu)越來越復(fù)雜,復(fù)雜度增加意味著運(yùn)算時(shí)間也會隨之上揚(yáng),可實(shí)際廣告場景中必須在規(guī)定時(shí)間內(nèi)返回廣告,從召回到排序基本控制在幾十毫秒內(nèi):
一方面是性能的硬性限制,一方面又要提升效果,真是臣妾做不到啊,不,老板說你能做的到,于是就做到了,是真的,勤勞勇敢的程序員們發(fā)明了知識蒸餾。
知識蒸餾的本質(zhì)是把復(fù)雜模型學(xué)到的知識遷移給簡單模型,一般采用teacher-student模式,線下兩個(gè)模型聯(lián)合訓(xùn)練,正式上線時(shí)只用簡單的student模型,復(fù)雜的teacher充當(dāng)導(dǎo)師的角色。
在訓(xùn)練時(shí),teacher的損失函數(shù)是常規(guī)交叉熵,student的損失函數(shù)由兩部分組成:
一部分是常規(guī)的交叉熵?fù)p失,用來學(xué)習(xí)真實(shí)標(biāo)記與預(yù)估值的差距,一部分是蒸餾損失,用來學(xué)習(xí)和teacher之間的差距,損失達(dá)到最小時(shí)teacher把自身學(xué)到的知識遷移給student完成蒸餾,既可以保證效果又能滿足性能限制是蒸餾的典型應(yīng)用。
另一個(gè)場景是阿里提到關(guān)于特征的蒸餾,論文指出在預(yù)估CVR時(shí),用戶點(diǎn)擊進(jìn)入頁面的停留時(shí)長、查看評論、與商家溝通等都是影響CVR的強(qiáng)特征,可線上排序時(shí)物品還未推出去上述特征數(shù)據(jù)無法提前獲得。
但是訓(xùn)練時(shí)使用歷史數(shù)據(jù)這些特征可以拿到,所以在訓(xùn)練時(shí)也是兩個(gè)模型聯(lián)合訓(xùn)練,主要差別在于輸入特征,teacher在student特征基礎(chǔ)上增加了上述的Privileged Features,讓模型學(xué)習(xí)這些特征對結(jié)果的影響然后將其獲得的知識遷移給student,不得不感嘆思路清奇。
上面簡要梳理了模型的發(fā)展,由簡單到復(fù)雜體現(xiàn)了對真相刻畫的不懈追求,其中不乏智慧閃現(xiàn),精彩紛呈,模型結(jié)構(gòu)是直觀呈現(xiàn),其背后的假設(shè)蘊(yùn)含了對世界的認(rèn)知,它把已知和未知統(tǒng)一起來,從此世界不再是不可知的神秘,而是可以被發(fā)現(xiàn)和認(rèn)識的運(yùn)轉(zhuǎn)規(guī)律,這是一種偉大的思想。
本文由 @知乎-莫菲克 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
學(xué)習(xí)了