天天看點

網易嚴選跨域多目标算法演進

導讀:嚴選是網易旗下受新中産喜愛的電商品牌,覆寫居家生活、服飾鞋包、美食酒水、個護清潔、母嬰親子、運動戶外、數位家電等品類。嚴選站内業務包括核心入口頁、活動頁、商詳頁,還有其他小流量的場景。目前這些場景都已經實作了個性化推薦算法的覆寫,嚴選電商推薦場景中算法模組化面臨多目标平衡、多場景資料如何共用等問題的挑戰,針對這些挑戰,本次主要分享跨域多目标在嚴選推薦算法中的實踐。

網易嚴選跨域多目标算法演進

全文目錄:

  • 背景介紹
  • 多目标模組化及演進
  • 長期價值探索
  • 多場景模組化的實踐

其中 Part2 圍繞嚴選業務,介紹如何多目标模組化,以及進一步演進至跨域多目标模組化的具體做法;Part3 主要分享在推薦業務中長期價值的探索;Part4 則集中在多場景模組化,并結合某業務場景的實踐進行細粒度講解。

分享嘉賓|強小輝/陳自強 網易嚴選 推薦算法工程師

編輯整理|李潤順 知乎

出品平台|DataFunTalk

01

背景介紹

網易嚴選跨域多目标算法演進

推薦系統的總體流程可以分成四塊,主要是召回、粗排、精排、重排。其中精排會承載很多業務子產品的業務名額,在不同業務子產品,關注的業務名額有所不同。對于某一些業務名額,存在轉化資料比較稀疏,以及冷啟動的問題。另外,我們在與業務方的交流中發現,他們關注的一些業務名額與算法目标不直接相關,需要我們去做一些長期價值的探索。

嚴選精排算法演進過程,開始是基于深度學習的 CTR 單目标模組化,然後在此基礎上增加了基于使用者行為序列進行模組化,接着衍生到多目标模組化,最後是跨域多目标模組化。

--

02

多目标模組化及優化

1. 樣本與特征

近年來,多目标模組化是業界排序模組化的主流方式,而業務資料和特征工程決定了模型的上限。

網易嚴選跨域多目标算法演進

在多目标模組化中,我們選取使用者的點選與轉化行為為正樣本,根據 Skip-Above 原則,選取曝光未點選的樣本作為負樣本。此外,在樣本構造中還會注意以下幾個優化點:

  • 頭部的熱門商品可能存在過曝光,需要對這種 Top 流量的商品做降采樣。
  • 短時間之内會存在同一商品的多次曝光,需要在時間視窗對樣本進行聚合,保留點選樣本、剔除曝光未點選樣本。
  • 虛假曝光,第一種是使用者在刷 Feed 流浏覽時,快速滑躍或無意識的快速浏覽時的曝光;第二種是由于頁面布局的影響,導緻卡片頭部一定比例在頁面加載時預設曝光。這兩種曝光實際上并沒有對使用者産生心智影響,是以,需要定制規則去噪。
  • 假正樣本,主要包含使用者的誤點以及點進去之後快速回退的操作,使用者并沒有對商品産生興趣,這類正樣本也需要特殊處理。

特征工程方面,我們将其分為四類:數值特征、類别特征、序列特征和 Embedding。各類特征處理方式如下:

  • 數值特征的處理,對連續特征進行歸一化,或者采用 RankGauss[1](Rank 預處理保留資料排序資訊,并轉化為高斯分布);然後進行分桶,再計算 Embedding 。
  • 類别特征,通過哈希映射,對于頻率出現過低的一些類别做過濾,同時保留一個預設和異常處理的坑位,再計算 Embedding。
  • 序列特征,把使用者行為互動序列中的每個元素進行embedding,再做attention 或者 Pooling 操作。
  • Embedding 特征,主要是商品側的表征特征,基于一個預訓練模型得到的Embedding 作為模型中對應的商品側表征的初始化權重;為處理值域過大的情況,可以做 Normalize 操作。

2. 模型結構疊代

網易嚴選跨域多目标算法演進

目前業界主流的多目标模組化的網絡結構是 MMOE[2] 和 PLE[3] 兩種,我們也分别疊代了這兩種結構。MMOE 是基于專家網絡和門控做多任務學習的架構,它的特點是每個任務有單獨的門控網絡,同時在底部共享幾個專家網絡,通過不同的門控網絡去控制專家網絡對于不同任務的權重貢獻。PLE 是在 MMOE 的基礎上更加細粒度化,在專家網絡共享的同時,還給每個任務單獨提供獨有的專家網絡。這個獨有的網絡會去強化每一個任務的權重學習,能夠有效地避免在 MMOE 中可能由于某些任務的訓練占主導地位,帶偏小任務的問題;也可以讓不同任務的專家,通過內建方式,進行權重互動。

3. 位置偏差與 Debias

上面介紹了資料特征處理和使用基礎的多目标網絡結構進行模組化,在此基礎上,會根據實際業務場景的問題進行優化。

第一個問題是位置偏差,位置偏差是指推薦 Feed 流場景下使用者傾向點選/互動曝光位置靠前的物品,這個資訊蘊含在正樣本裡,可能會導緻模組化存在偏差。如下圖左上角是對某個業務子產品做的位置偏差分析,橫軸是時間,縱軸是曝光點選率。可以看到随着坑位的逐漸往下,曝光點選率逐漸下降。基于帶位置偏差的資料進行模型訓練,會形成一個循環回報,模型去學習這種趨勢,然後做預測推薦,會導緻位置偏差在不斷地放大,進而導緻整體的推薦流量生态出現問題,比如部分商品過曝光。

網易嚴選跨域多目标算法演進

存在的位置偏差需要做 Debias 的操作。我們做 Debias 的方式是在 MMOE 多任務的基礎上,加一個消偏子產品。整體結構如上圖右邊部分,輸入是常見的幾類特征(使用者側、商品側、情境上下文,行為互動序列特征)。經過特征預處理後,輸入到 Embedding 層,然後會進入 MMOE 主網絡。同時會建構一個 Debais 輔助網絡,輸入主要是 Bias 相關的特征(比如商品曝光的坑位、裝置的型号、使用者的身份等可能影響到展示位置的特征),經過淺層網絡後得到bias 的學習表征。然後把這個結果與多任務主網絡學出來的 CTR 結果直接相加,再經過一層激活函數得到最終 CTR 預測結果,CVR 網絡無任何操作。Debais 輔助網絡的淺層部分,會加上 Dropout,主要是為了防止模型學習結果過于依賴淺層網絡的特征,保證模型的魯棒性。

多任務模型 Debias 優化上線 AB 後,人均點選數+4.95%、曝光點選率+1.70%。需要說明的是,Debias 優化需要根據具體業務特點做判斷,我們的場景 AB 剛上線前幾天,會對某些業務名額産生非正向收益,因為 Debias 會對熱門做打壓,對長尾的商品進行扶持,這可能會影響銷售額。Debias 優化,本質上是從整體業務生态或者長期收益的角度考慮問題,在短期内能承載一部分收益下降的前提下,可以推全放量,它會帶動整體推薦流量生态向良性、健康的方向發展。

4. 多目标 Loss 優化

此外,在 CTR 跟 CVR 目的基礎上根據業務方的需求增加更多的目标,包括加購、評論商品、檢視促銷資訊、分享、收藏等。有些目标如收藏、分享的轉化資料相對會比較稀疏,這些任務與 CTR、CVR 樣本比較豐富的任務一起訓練時,由于樣本過于稀疏,會導緻訓練不夠充分,被帶偏。

網易嚴選跨域多目标算法演進

針對轉化目标比較稀疏,訓練不充分的問題。我們會考慮在損失函數上引入 Focal Loss[4] 替換交叉熵函數。如上圖中的 FL(p, y),Focal Loss 在交叉熵基礎上,增加了 P 和 Gamma 兩個參數,P 就是模型預測樣本是否為正樣本的機率。看損失函數第一項,對于正樣本,P 的預測接近 1 時,1-p 的 Gamma 次方會更加接近于 0,那麼很容易區分的那部分正樣本,損失會下降非常明顯;P 的預測接近 0 時,損失無太大變化。對負樣本的處理與正樣本同理。Focal Loss 目的是讓 Loss 去關注/聚焦比較難以區分樣本資訊,Gamma 參數是去調節聚集程度。還可以再引入一個類别權重參數A lpha,去解決正負樣本不平衡的問題。比如 Alpha 定義為正負樣本比,增強正樣本的損失影響。

另外,多個子任務一起訓練時可能存在某個子任務被帶偏的情況,即跷跷闆(Seesaw Phenomenon)效應。我們嘗試使用 Gradnorm[5] 梯度歸一化來控制 WI 的權重。梯度歸一的目标是讓不同的任務的 Loss 梯度量級更加接近,同時還可以讓不同任務的學習速率也更加接近。通過這兩個點優化 WI 權重,讓各個任務的學些更加平衡。上圖右下角兩張圖是 CTR、CVR 訓練速度的展示。紅線是它原有的訓練速度,藍線是經過 Gradnorm 調整之後的,可以看到調整之後,訓練的速度接近 1 左右,不會出現速度訓練過快或過慢的情況。

多目标損失優化,引入 Focal Loss 和 GradNorm 控制損失權重後,整體上線 AB 實驗,CTR +6.92%,CTCVR+5.87%,都有顯著提升。

5. 跨域多目标模組化

在我們的業務中,會涉及到很多場景,比如新客、新品頁面,使用者的行為資料會比較稀疏,還有新上線的業務子產品,剛上線資料非常少,處于冷啟狀态。那麼在這些場景下,如何能夠讓模型學習得更好呢?那就需要考慮多場景的跨域模組化。引入多場景的好處在于,首先讓模型先意識到場景之間的差異性,模組化拟合映射由 P(y|x) -> P(y|x, d),輸入增加了場景資訊(Domain)。另外小樣本的場景,能夠通過對樣本更加豐富/比較成熟子產品的場景共性的刻畫和遷移學習,讓模型對小場景也能夠取得更好的效果。

網易嚴選跨域多目标算法演進

跨域多目标算法的整體網絡結構,如上圖。

底層輸入特征(包括使用者側、商品側、上下文情境、行為序列特征),經過特征預處理進入 Embedding 層,然後進 MMOE 層進行多任務的資訊抽取。網絡右邊部分是一個輔助網絡,把域/不同場景/Domain Field 相關的特征輸入,然後經過一個 Domain Tower 得到對應場景的抽象特征。然後将場景的抽象特征與多任務的輸出表征共同輸入到 STAR 網絡層(參考阿裡 STAR 文章[6]),STAR 的拓撲結構裡包含兩種塔:共享 Share塔、表征不同場景的 Domain塔。Share塔主要去學習場景的一些共性資訊,Domain 塔去學習各個不同場景對應的獨特資訊,之後對兩邊塔的權重進 Element相乘後得到的結果,作為每個場景的權重,最終得到每個場景下不同任務的輸出。

這個優化上線後,在主場景和小樣本場景上取得的效果有些差異,小樣本場景下的提升更加明顯,曝光轉化率和曝光點選率有 10.8% 和 3.5% 的相對提升。主場景下,本身資料比較豐富,效果提升沒有那麼顯著,曝光轉化率和曝光點選率分别有 2.2% 和 0.81% 的提升。

--

03

長期價值探索

此外,我們還做了一些提升長期價值的探索工作,分别是多業務混排和使用者留存優化。我們有很多業務子產品,除了向使用者透出商品卡片,還需要拓出場景化的如榜單、清單卡片、活動卡片等,這些資訊在同一個子產品展示,如何做到個性化的頁面布局,需要做混排政策,我們基于湯普森采樣算法[7],根據線上使用者的實時行為互動,做 Reward 回報,這個回報對每個使用者去拟合 Beta 分布,在 Beta 分布上算使用者對三種卡片的點選機率。如果使用者剛點選過很多場景化卡片,可能後續會推更多場景化卡片。但場景化或者活動性卡片,對于我們的業務價值可能不如商品卡片那麼高, 如何判斷混排這個動作到底有沒有價值,需要去做比較長時間周期(1個月以上)的 AB 實驗 ,觀察單個子產品和全站資料表現,如果全站 UV 價值和全站加購率提升,那混排就是有價值的。

網易嚴選跨域多目标算法演進

使用者留存優化,是指關注使用者在一些子產品當中有停留且有後續的行為,而不是僅關注短期産生的價值,比如我們希望在簽到或者其他子產品,能夠通過留存來增加後期的使用者價值收益,那就需要考慮如何通過主動幹預來來提留存。如上圖,通過資料分析可以看到使用者互動 Session 長度與 3 日留存率會顯著正相關(Session 長度 6-20),是以,可考慮優化使用者互動 Session 長度。具體做法是在多目标模組化中增加戶互動的 Session 長度目标。這塊我們模組化優化之後得到的 AB 結論是,在首猜場景下,曝光點選率跟 3 日留存率會有一定的提升。這裡也是需要我們做價值上的判斷和取舍,看是否能夠接受短期損失,比如說某個子產品在 1 到 3 天之内部分使用者未回訪,但是 3 日内還沒有傳回,到第三天或者第四天才進行回訪和留存,之後才産生價值。這個過程可能會産生一些業務價值的波動,但時間周期拉長,會看到整體的收益比短期能覆寫的範圍更大。

--

04

多場景模組化實踐

1. 什麼是多場景模組化?

下面結合嚴選某業務場景,細粒度介紹多場景模組化的具體實踐和應用。業務定義上,根據業務場景我們将業務分為核心場景和通用推薦場景。核心場景包括核心入口頁猜你喜歡、購物車、個人頁等,它的特點是流量大,位置顯著,資料豐富,會承擔一些核心的業務名額。其他的中小流量場景,統稱為通用推薦場景,特點是流量少、資料稀疏,但子產品數量很龐大、場景非常豐富。接下來主要針對通用推薦場景介紹多場景模組化的思路。

網易嚴選跨域多目标算法演進

關于多場景的定性,不同的使用者群體(新客、老客)、不同用戶端(iOS 、安卓)、App 中的不同子產品,因為他們的商品展示形式或對使用者心智影響等有一些顯著差異,隻要在資料上有明顯的差異,都可視為多場景的一個子場景。

網易嚴選跨域多目标算法演進

關于多場景模組化,沒有确切的定義,與學術上遷移學習和跨域推薦比較接近。在實際模組化方案落地中,主要考慮如何捕獲場景間的共性,同時保留各個場景的資料本身的特點。機器學習有個基礎假設,訓練資料要服從獨立同分布,實際上各場景的訓練資料的分布存在顯著差異。

2. 為什麼多場景模組化?

網易嚴選跨域多目标算法演進

如上左圖,是我們之前采取的方案,在通用推薦場景下,多個場景采用同樣的推薦算法。最早期采用同一套 CF 算法,後來切換成向量算法,在後來淺層深度模型。這會存在問題,把所有場景的資料混合在一起去訓練模型,完全沒有考慮到各個場景之間存在的資料差異性,模型訓練方向會被大流量場景的資料帶偏,導緻推薦效果是一個的中庸的效果,即各個場景下都不是最優的。

另外一種極端做法,如上右圖是針對每個場景,都建立一個模型,這樣做的問題是小場景或新接入場景的資料比較稀,少量的樣本很難訓練出比較好的模型。同時維護成本非常高,疊代不友善。

3. 如何進行多場景模組化?

網易嚴選跨域多目标算法演進

我們從特征工程入手,先構造一些場景的特征,在輸入層直接拼接到現有模型中,但實際效果并不理想。因為最底層加入的這些場景資訊特征,經過多層抽象網絡很難傳遞到末端,被模型學習到。通過分析各場景商品的 CTR 分布,有較明顯的差異,是以場景資訊有很強的先驗知識。如上右圖可以通過一個偏置網絡,類似位置消偏,認為不同場景資料分布的差異性是由該場景偏差導緻的,偏置網絡的輸出層加回主網絡。這個簡單的做法,隻在在一些場景上有一定效果,大部分沒效果。原因是僅僅依賴偏置網絡進行糾偏,對不同場景的特征分布差異,沒有進行很好的捕獲。

網易嚴選跨域多目标算法演進

在此基礎上,套用 MMOE 多任務架構進行多場景模組化。頂層的每個塔對應一個場景,各個場景的特征數量和語義是保持一緻的,如果某個場景有獨特的特征,其他場景下特征用預設值代替,MMOE 裡用多個專家網絡來隐式地學習場景間的差異和共性。但也有個問題,模型訓練中,每個場景資料隻單獨更新對應塔權重,這樣會導緻某些小場景學不好,效果不大。另一方面場景特征資訊,也沒有得到顯示的表達。基于這兩方面考慮,在 MMOE 基礎上增加了一個子產品,首先在頂層增加 1 個共享塔,我們認為即使某個場景做預測時,其他場景也會對這個場景的預測起到貢獻,此外接到頂層有個權重生成自網絡,類似門控矩陣形式,最終該場景的預測是由所有場景的權重結果,這能夠緩解小場景學不好的問題。由于場景數量較多導緻 PLE 模型過于複雜,并可能帶來的延時問題,未嘗試。

網易嚴選跨域多目标算法演進

在實踐中參考的另一個解決方案是阿裡的 STAR 星型結構模型,底層是特征共享層,往上 BatchNorm 的時候,區分場景分别進行,頂層不同的場景分别對應一個塔,同時有一個共享的中心塔。最終每個場景的輸出結果是由場景塔和中心塔相乘得到的,參數更新方式是共享的參數是由所有場景的樣本資料同時更新,場景參數隻能由特定場景的樣本去更新。但這個方案也存在場景特征資訊無法顯示表達的問題,因為底層的特征空間是共享的。為了解決這個問題,它的做法是把場景特征過一個偏置網絡,把場景資訊的資訊直接傳遞到輸出層,類似方案一。

網易嚴選跨域多目标算法演進

最後的方案還是以 MMOE 為基礎,底層特征共享,MMOE 專家網絡結構自動選擇場景間共享資訊,同時針對每個場景考慮特征來源,上圖中右上角為各場景的輸出結構,由 MMOE 專家網絡和底層的場景特征資訊直接傳遞,并行輸入。左側場景 MLP 參數私有,右側 MLP 參數共享。

網易嚴選跨域多目标算法演進

接下來看下在通用推薦場景中的落地情況,上圖中列舉了 10 個場景,其中 Mix 和 Single 分别表示用混合場景和單場景資料去訓練模型,Multi 代表多場景模組化。從 AUC 結果可以看到,如果場景資料量比較充足的情況下(#1),單場景資料訓練的 AUC 高于混合場景資料訓練,同時和多場景模組化是 AUC 基本持平。對于小場景(#9),資料稀疏,單場景資料訓練效果不好。線上效果是在某些場景 pCTR 有 5%-10% 的提升。

--

05

Q&A環節

Q1:電商的新客行為較為稀疏,在搜尋推薦領域冷啟動問題非常有挑戰的,我們有什麼針對性的一些舉措?

A1:對新客老客做區分,把新客單獨拉出來,作為一個單獨的鍊路,從召回到排序到重排單獨做模型和政策。

Q2:場景較多時,我們如何既能夠複用,同時不用維護太多的模型?

A2:我們的通用推薦場景,也是有這樣兩個問題,就是小流量場景比較多,就是單獨維護的話可能人力資源就很浪費,然後統一的效果你又不能做到非常完美。是以這個時候就是可以嘗試一下采用多場景聯合模組化的一個思路去解決。

Q3:提升使用者留存,增加 Session 互動長度目标這塊,我了解的 Session 互動長度是個 Listwise 的概念,怎麼把Label打到 Pointwise 的單個商品上呢?

A3:Session 互動長度 Label 是指使用者互動目前商品後,在該 Session 内的剩餘長度,本質上是引導使用者進行更多的互動,進而提升留存。

Q4:多場景模組化這裡,多場景與多目标的關系沒太了解,底層的 MMOE 是針對場景,然後在場景 Tower 裡面多目标,還是說多場景是單目标的呢?

A4:多場景模組化是可以結合多目标任務的。Part4 分享的主要是多場景的 CTR 模組化,底層 MMoE 是針對場景的。在跨域多目标模組化中,則使用 MMOE 學習多目标資訊,類交叉拓撲網絡(如star結構)學習多場景的異同。

參考文獻

[1] RankGauss:https://zhuanlan.zhihu.com/p/330333894

[2] MMOE:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007

[3] PLE:https://dl.acm.org/doi/10.1145/3383313.3412236

[4] Focal Loss:https://zhuanlan.zhihu.com/p/49981234

[5] GradNorm:https://arxiv.org/abs/1711.02257

[6] 阿裡 STAR 模型:https://arxiv.org/abs/2101.11427

[7] 湯普森采樣:https://zhuanlan.zhihu.com/p/84338172

今天的分享就到這裡,謝謝大家。

|分享嘉賓|

網易嚴選跨域多目标算法演進

強小輝|網易嚴選 推薦算法工程師

2020 年加入嚴選人工智能部,緻力于嚴選推薦業務的算法疊代,主要負責精排算法相關工作。

網易嚴選跨域多目标算法演進

陳自強|網易嚴選 推薦算法工程師

2019 年加入嚴選人工智能部,緻力于嚴選推薦業務的算法疊代,主要負責召回與粗排算法相關工作。

|DataFun新媒體矩陣|

網易嚴選跨域多目标算法演進

|關于DataFun|

專注于大資料、人工智能技術應用的分享與交流。發起于2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公衆号 DataFunTalk 累計生産原創文章800+,百萬+閱讀,15萬+精準粉絲。