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