原文html
全文目錄算法
關聯規則算法
, 因爲限制較大, 因此相關性較強, 但覆蓋率較低;機器學習
協同過濾算法
, 覆蓋率更高, 相關性較差;學習
以上二者基於行爲, 有冷啓動問題, 因此須要內容相關性算法
來託底;優化
三種算法的融合得出最終的結果;spa
數據血統
: 對數據的來源進行記錄與分析的相關數據和過程;code
線性加權融合
\[score_i = \sum_j(w_j \times score_{j,i}) \]
- w, 對該推薦物品使用的推薦算法的權重;
- score, 在該推薦算法下該物品的得分;
若是推薦算法下沒有直接給出得分(score), 只有一個排序, 則能夠選擇平均點擊率做爲擬合目標:htm
\[ctr_i = w_i \times order_i + b \]
- ctr_i, 該算法在該位置的平均點擊率, 做爲該算法下該物品的分數;
- order_i, 位置編號;
- b, 偏置項;
存在兩個問題:blog
- 平均點擊率和編號之間未必是線性關係;
- 編號相同, 得分就會相同, 不合理;
\(w_j\) 可根據不一樣算法的 CTR, CVR 等客觀指標來分配權重,排序
\[w_j = \frac {ctr_j} {\sum_k ctr_k} \]
平均點擊率必須是不一樣算法在同一位置上的平均點擊率;
或者採用網格搜索
;
優先級融合/交叉融合
使用一組規則未來自不一樣推薦算法的結果進行融合, 規則的核心要素:
- 推薦算法之間的相對優先級;
- 每種算法要佔到的比例;
優先級高的算法通常具備如下特色:
基於機器學習的排序融合
線性加權融合和優先級融合, 均是粗粒度的算法級融合, 不是細粒度的物品級融合; 模型結構簡單, 優化空間小; 融合方法沒有結合用戶反饋;
機器學習的排序融合, 在某個衡量指標(CTR)的指引下, 基於物品自己的特徵, 當前場景的特徵以及物品和場景的組合特徵, 爲當前場景下的每一個參與排序的候選物品計算該指標(CTR), 並使用該估計值進行排序;
融合策略的選擇
- 優先級融合方法, 適合使用者對算法的效果, 覆蓋率等方面相對熟悉, 不一樣算法之間有明確的效果差別時使用; 系統創建初期;
- 線性加權融合方法, 適合不一樣算法之間沒有那麼大的效果差別, 主要用來提升覆蓋率和多樣性;
- 機器學習模型排序方法, 第一優先級的方法, 須要具有條件: 1. 已有一些推薦算法, 有必定比例的優質覆蓋率; 2. 有數量足夠準確的樣本數據;
- 混合的融合方法
融合時機的選擇
- 實時融合
- 離線融合, 計算能力強, 能夠處理複雜邏輯和大量數據;
- 近實時融合, 分離用戶對推薦數據的請求和推薦數據的計算生成, 兩者經過數據存儲服務進行交互, 實現解耦;
時效性要求不高, 策略多樣複雜, 召回數據量大的狀況時, 並不必定須要實時融合;
數據血統
- 每一個推薦物品來源於哪一種算法;
- 每一個推薦物品在該算法中的得分和排序;
融合策略正確性驗證
計算每種策略在結果中的佔比分佈, 每種策略平均能貢獻多少個結果, 以及這些結果的平均分數如何;
系統效果監控
- 不一樣策略在請求, 曝光, 點擊等多個維度上的絕對數量和數量佔比;
- 分策略的點擊率, 轉化率;
- 分策略的平均排序位置;
策略效果分析
- 統計在 topN 結果中, 不一樣策略的曝光, 點擊, 下單數據佔比, 以此肯定主要起做用的是哪些策略;
- 統計不一樣策略的點擊率和轉化率, 以此肯定策略的效果好壞; 統計不一樣策略的排序位置分佈;
- 分析在每種策略的被點擊/下單的結果中, 策略的打分和排序的分佈如何;
- 對以上兩種數據進行交叉分析, 即分析效果好的策略和效果很差的策略在結果中的佔比;