選單

廣告系列:召回與排序(三)

導語:特徵對於機器學習很重要,整個模型發展的主旋律之一就是對有效特徵及其組合的發現和使用。實際場景中影響結果的特徵有很多,隨著發展業務對預估的精度要求不斷提高,模型結構也越來越複雜。召回與排序涉及的模型如過江之鯽,不勝列舉,本文試圖透過梳理發展歷程找出其中的演化痕跡,歡迎大家探討學習。

廣告系列:召回與排序(三)

一、透過梳理可以發現有幾條主線

特徵的範圍:從只使用動態互動資訊的協同過濾,到引入使用者/廣告自身靜態資訊(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協議