推薦策略產品經理必知必會③:粗排、精排、重排模型

0 評論 2309 瀏覽 18 收藏 20 分鐘

前兩篇文章,我們分享了數據處理和數據召回的策略。數據召回后的下一個環節就是粗排,分為基于規則、基于模型兩種。這篇文章,我們來詳細說明一下。

一、粗排策略

召回的下一個環節就是粗排。粗排主要包括兩類:基于規則、基于模型。

主要分以下三個步驟:

  1. 對召回的結果進行匯總去重
  2. 將去重后的結果輸入粗排模型中
  3. 遴選出排名前幾位的物料

1. 基于規則的粗排策略

如若召回策略都是基于規則或協同過濾的召回,那么每一路在返回時會有一個對應的歸一化分數,先對所有召回路結果進行匯總去重,如果一個物料出現在多個召回路里,則將物料分數相加(加權匯總時可以為每路召回設置權重),最終按照總分倒排。

2. 基于模型的粗排策略

基于規則的粗排策略雖然簡單,但是不夠智能化。目前行業先進的解決方案是搭建專門的粗排模型,針對返回的物料進行初步的CTR預估,公式為:CTR粗排 = 曝光點擊數/召回物料數。

3. 粗排策略效果評估

粗排策略效果評估有線上和離線兩種方式。在進行線上評估時,可直接實施AB Test小流量實驗,比較新粗排策略與舊粗排策略,關注推薦系統幾個核心效果指標的變化。

在離線評估時,對于基于模型的粗排策略重點關注離線AUC指標(基于規則的也是),也可以對比粗排模型與精排模型返回物料與曝光點擊物料的重合度,重合度越高,代表粗排效果越好。

二、精排策略

物料經過召回、粗排、過濾環節后才會進入精排模型,過濾環節多采用硬規則,入電商領域的無貨過濾、未上架過濾、黑名單過濾等。

精排模型是整個推薦系統中最復雜的模型,也是耗時最多的模型,做策略產品經理工作的同學需要重點關注哦!

1. 學習目標

首先需要針對精排模型設定學習目標,在不同業務場景下,精排模型的學習目標不一樣。

電商推薦場景:

大部分情況下,精排模型的核心目標都是CTR(曝光點擊率),極少數情況為CVR(曝光轉化率),主要看業務訴求。以京東和淘寶為代表的綜合性電商平臺,目前以預估CTR為主,精排模型正樣本為埋點記錄中被用戶點擊的商品,負樣本為埋點記錄表中曝光卻未被點擊的商品。

內容推薦場景:

以抖音、快手為例,精排模型全部采用多目標排序的方法,核心業務指標為DAU、用戶使用時長。為了留住用戶,需要為其推薦感興趣的視頻,也要讓用戶互動起來。關鍵在于增加用戶使用時長,增加正向反饋,減少用戶負向反饋。

正反饋指標:(顯性)點/轉/評/收藏;(隱性)觀看時長、完播率、有效播放率等。

負反饋指標:(顯性)負反饋點擊、舉報、負面評論;(隱性)短播放、停止瀏覽等

精排模型需要匯總指標,綜合排序,排序公式為:

$$RankScore=a*P_播+b*P_贊+···+h*f(P_t)$$

應用分數計算公式時,應先針對每一個指標設置一個超參數,然后計算所有指標的加權結果,基于最終結果進行統一排序。

2. 算法選擇

確定訓練目標與訓練樣本后,接下來需要確定使用哪一種算法來進行學習。目前行業里的精排模型大多使用深度神經網絡(deep neural network)算法,即DNN算法。

在預測CTR時也可以選擇使用經典的LR算法,或者LR+GBDT算法。具體可以結合公司實際的系統架構和業務情況進行選擇。DNN效果好,解釋性差,對系統性能要求很高,線上部署會導致系統整體的時延很高,用戶體驗差。

如果使用LR算法預估CTR,主要工作是構建模型特征。如果使用DNN算法,一部分工作是構建模型特征,另一部分工作是設計神經網絡結構,策略產品經理主要參與構建模型特征。

3. 特征構造

如果說召回的關鍵是樣本的選擇,那么精排的關鍵就是特征的構造。為了更好理解用戶行為,會采用用戶特征、物料特征、交叉特征等,接下來將以電商APP首頁推薦場景為例介紹一些特征。

1)靜態特征

  • 用戶特征:用戶ID、性別、注冊時間、是否會員、注冊手機號、所在城市、職業、收入水平、婚姻水平等。
  • 物料特征:SKU ID、一級類目、二級類目、三級類目、品牌名。

靜態特征基本不會變化,能幫助模型理解用戶和商品的一些基礎信息。

2)請求特征

請求特征:請求ID(Request ID)、請求時刻(時刻、早中晚、日期)。

請求時間特征主要為了區分用戶在不同季節、一天之中的不同時間的消費行為偏好。

3)用戶基本畫像特征

通過用戶畫像特征表了解用戶消費能力、消費頻次、類目偏好等,同時統計不同時窗下(如7、15、30天)用戶的特征信息。也設置有比例衍生類特征,用于計算各個子類占父類的比例,最終通過該特征理解用戶對各個子類的偏好度。

例:比例類衍生特征:上述各個一級類目的子項占該用戶總訂單、下單總金額的比例。

4)用戶商品畫像特征

用戶商品畫像特征表是對用戶基本畫像特征的進一步補充,有助于深層次理解用戶對特定商品、品牌、類目等的偏好,仍需統計不同時窗下(如7、15、30天)用戶的特征信息。

5)行為序列特征

上述特征基本屬于用戶的屬性特征,而行為序列特征則指用戶的動作行為特征,模型基于用戶的歷史行為序列來預測下一次行為。在現實生活中,人們在線上APP的行為具有強關聯性,在模型加入行為序列特征后能使模型捕獲用戶的動態偏好。常見行為序列:用戶點擊序列、加購序列、下單序列、觀看序列等。

例如,在構建一個點擊行為序列時,首先需要定義一個序列長度,如4,則將用戶瀏覽該物料前的最近4個物料批結在一起,形成一個點擊行為序列。

6)交叉特征

在實際應用中,我們會將很多單個特征組合在一起形成交叉特征,通過特征組合更加全面地挖掘用戶的興趣偏好。User ID和SKU ID的組合特征是精排模型里面最重要的一個特征。

4.特征選擇

完成特征構造后,就可以開始特征選擇了。特征選擇是指從眾多特征中選擇一個子集的過程。在實際應用模型時要考慮模型整體性能,選擇最高效的特征集,主要選擇方法有以下四種

1)業務經驗法

策劃產品經理和算法工程師基于對實際業務場景的理解進行特征構建和特征選擇。此方法不需要借助模型離線效果評估,完全憑借人工經驗和業務知識。

流程:特征選擇(特征候選集——>特征子集)——>算法選擇、模型訓練——>模型效果評估

  • 電商推薦場景:用戶品類偏好、品牌偏好、消費力匹配等特征
  • 內容推薦場景;用戶視頻類型偏好、視頻題材偏好、視頻時長偏好等特征
  • 金融風控場景:銀行征信報告的了結,需要咨詢業務專家

優點:快速高效——可以快速構建一批價值比較高的特征,實現模型快速上線。

缺點:高度依賴人工,無法大規模復制——尤其對于金融風控等復雜度高的場景

2)過濾法

從特征本身以及特征和樣本標簽的相關性出發進行選擇,也不依靠模型離線效果評估。關鍵在于:如何科學評估特征的價值,通常有如下兩種方法:1.評估特征本身的相關指標。 2.評估特征和標簽之間的相關性。

  • 評估特征本身的相關指標

(1)覆蓋率指標:特征能夠覆蓋樣本中超過50%的數據時有價值

(2)方差指標:不同樣本在同一個特征上的分布差異越小,代表該特征對樣本的區分度越小。(注意統一量綱)

  • 評估特征和標簽之間的相關性

如果特征X和標簽變量Y的數據類型不同,則采用的方法不一樣。

若特征X為數值變量,標簽Y也為數值變量,則用皮爾遜相關系數公式。

若特征X為數值變量,標簽Y為類別變量,則用費雪分數。

若特征X為類別變量,標簽Y也為類別變量,皮爾遜卡方檢驗。

3)封裝法

以特征應用到模型里產生的實際效果為出發點進行特征選擇的辦法,不斷挑選實驗、循環反復。挑選特征組合的方法有兩種:完全搜索;啟發式搜索。

  • 完全搜索:遍歷所有特征,暴力計算,實用性不高
  • 啟發式搜索:

(1)序列前向選擇:從空集開始添加,效果最優的留下,不斷重復直至效果無法提升

(2)序列后向選擇:從全量開始去除,效果最優的留下,不斷重復直至效果無法提升

封裝法的優點:最佳應用效果

封裝法的缺點:時間成本高、選擇流程長、計算量大

4)嵌入法

多種方法結合使用,伴隨建模全過程不斷基于模型效果實驗特征組合。首先,分析單個特征對模型效果的重要性,分別基于單個特征建模,觀察離線效果,基于特征重要性進行初步的特征選擇和判斷。

5. 特征編碼

在實際建模時無法直接使用這些特征,需要進行特征編碼。常用方法有三種:one-hot編碼;分插編碼;向量映射編碼,主要構建元組、向量組進行編碼。

6. 模型訓練

主要分為三步:構建訓練樣本、基于訓練樣本進行模型訓練、輸出收斂的模型。

  • 構建訓練樣本:小心數據穿越的問題。
  • 基于訓練樣本進行模型訓練:本質是通過數學計算的方式學習訓練樣本數據,最終得到一組收斂的模型參數w,主要使用梯度下降法,訓練過程中可以加入正則項系數如L1、L2用于提升模型的泛化能力、防止模型過擬合。
  • 輸出收斂的模型:設定閾值,若P>閾值,則成立。

7. 效果評估與迭代應用

離線效果評估,一般構造多版模型,挑選離線效果最優的模型線上部署,主要驗證模型在測試樣本上的效果。對于分類任務來說,看AUC指標。

迭代應用也稱模型的自學習,不會對算法和特征工程做較大調整,但會對新線上數據進行重新訓練,替換舊模型。若要調整,則AB Test小實驗等德國

以上就是構建精排模型的全部步驟,策略產品經理可以參與精排模型的主要工作是模型訓練樣本的挑選和特征工程的構建。

三、重排策略

重排策略一般要完成以下3項工作:

1.全局最優的排序調整:以淘寶為例,用戶瀏覽是一個連續的過程,一屏內有4個商品,而精排模型返回的主要是最優單品,而不是最優組合,所以需要重新排列。

2.基于用戶體驗的策略調整:調整用戶在APP前端實際看到的物料順序,保證前端展示物料的新穎性、多樣性。

3.適當的流量監控:和業務強相關的流量調控策略會部署在重排層,比如對某些物料的加權,常見的有對直播內容的加權、情人節對花卉等商品的加權等,這些策略只有部署在最后一層才可以實現直接調控。

1. 全局最優的排序調整

排序模型有三種優化目標:單點優化(point wise)、成對優化(pair wise)、序列優化(list wise)。精排模型的CTR預估實際上就是單點優化,不考慮上下文信息。成對優化和序列優化都考慮上下文信息,但是成對優化只考慮兩個物料的順序關系,重排模型的優化目標通常是序列優化(list wise)。

序列優化本身不是一個具體的算法或者模型,只是一個模型的優化目標或者損失函數的定義方式。序列優化關注整個列表中物料之間的順序關系,主要分以下兩個步驟:

第一步:序列生成

序列生成模型基于精排模型返回的商品數量進行排列組合,一般情況下從排序靠前的候選集中進行挑選。

第二步:對生成的序列候選集進行效果評估。

首先需要構建一個序列評估模型,目前序列評估模型中常用的算法是RNN(recurrent neural network,循環神經網絡)。RNN模型的一大特點是以序列數據為輸入,通過神經網絡內部的結構設計有效捕捉序列之間的關系特征,非常適合作為序列評估模型來實現序列優化。

模型針對序列中的每個商品重新給出P(CTR),一般情況下只會對精排模型的CTR進行微調,不會大幅調整精排模型預估的CTR,最終選擇綜合CTR最高的序列返回App前端。

2. 基于用戶體驗的策略調整

主要包括兩種:打散策略、多樣性策略

1)打散策略

在電商推薦場景,需要針對同三級類目、同品牌、同封面圖的商品進行大賽;在內容推薦場景下,需要針對同類型、同封面圖、同作者的內容進行大三。目前主流的打散策略主要基于硬規則的打散,也有基于用戶個性化興趣的打散方式(容易出現UE問題)。

電商同三級類目商品打散,針對此類打散一般使用滑動窗口法打散,構建兩個窗口,若符合硬規則則移動窗口,若不符合則按順序替換,容易出現末尾扎堆的問題(末尾物料順序無法調整)

2)多樣化策略

向單個用戶推薦多少種不同類目的商品,怎么樣推薦才算符合多樣性,這是由各平臺自己決定的,一般由策略產品經理和相關業務方一起制定規則。實際應用時通常采用多種策略,觀察實際線上效果,然后基于AB Test小流量實驗效果進行討論,最終在平衡業務訴求和實際線上效果的基礎上確定一版最終策略。

多樣性策略和打散策略最終融合在一起,變成一個多目標約束優化問題。為了方便省心,我們通常直接使用硬規則策略解決。

3. 適當的流量監控

流量調控策略只有一種,直接在重排層針對這部分物料進行相應權重的調整。但在實際落地中不僅要考慮CTR這一指標,在電商領域還要考慮轉化率、曝光率、GMV、質量分等。對于內容場景,我們需要考慮視頻的預估完播率、預估播放時長、互動率以及發布者賬號的等級等。在最終排序時一般設置一個綜合性的排序分數,具體排序公式可以自行擬定。

本文由 @策略產品經理規劃 原創發布于人人都是產品經理。未經作者許可,禁止轉載

題圖來自Pixabay,基于CC0協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!