學習b站up主的ShusenWang的推薦系統筆記
指標
任何系統/算法/模型都需要評估,對于推薦系統的指標有消費指標和北極星指標,消費指標是衡量用戶對產品的使用情況,使用頻率廣度和深度,用于了解用戶的使用習慣,北極星指標是企業用于評估業務增長和成功的指標
消費指標
點擊率,收藏率,轉發率,點贊率,閱讀完成率,諸如此類不同的場景對應的消費指標不同
北極星指標
用戶規模,日活(DAU)月活(MAU)
實驗流程
離線測試 小流量A/B測試 全流量上線
離線測試與用戶沒有交互,僅使用歷史數據進行訓練
小流量A/B測試與小范圍的用戶進行交互
全流量上線就是推全給所有人使用該推薦算法
推薦流程
推薦往往要求時間比較短,因此用這樣類似篩選的模式減少在線計算量。
召回
召回通道
召回通道就是召回的方式,如圖召回有很多方式,后續會一一講解
粗排,精排
兩種架構幾乎相同,但是精排往往架構更加復雜,輸入特征,提取特征都大于粗排
小結
召回就是通過各種召回通道取出幾千條文章,粗排就是通過小型神經網絡選出幾百份,精排就是從幾百份中通過深度神經網絡再選出幾十份,重排就是做多樣性抽取,結構打散,插入廣告等(因為用戶不希望得到同質化嚴重的內容)。
A/B測試
A/B測試的作用,在離線測試上的算法不一定在在線測試取得好的效果,而不好的效果會對用戶造成惡劣的體驗,因此在小范圍的測試是有必要的,另一方面也可以調整推薦算法的參數。
假設該團隊實現了GNN召回通道,在離線測試中取得了正向的效果,下一步就是在小范圍用戶進行A/B測試考察新的召回通道對在線指標的影響。
GNN的深度為{1,2,3}
隨機分桶
假設所有用戶為b個,將所有用戶隨機分成n個筒,用戶量足夠大的情況下,這n個桶中各項指標應該是一樣的。
假設n=10
使用4個桶,1,2,3作為實驗組,GNN深度分別為1,2,3,如果2號桶各項指標相對對照組有顯著提升,證明深度為2的GNN召回通道對在線指標有積極作用,值得推全。
流量使用
對于一個公司來說,有很多團隊都需要做實驗,對于每個桶做什么實驗就有一定要求,不能隨便給哪個桶安排哪種召回,粗排等。
分層實驗
分層實驗是將一個推薦流程分為多層,召回層,粗排層,精排層…
同層互斥
相同層中同一個同不能進行多個實驗,因為多個實驗并行造成的效果有可能是抵消導致1+1<2,也可能是互促導致1+1>2,這樣的結果導致不能評估某種召回或實驗是有效果還是沒有效果,因此同層互斥
不同層正交
不同層正交,意味著不同層的各個實驗的效果都是互不影響的,所以每一層都可以使用100%用戶
對照 --HoldOut機制
取10%的用戶作為對照組,計算每一層的各項指標與對照組的差距(diff),用于評估各層的成效,一段考核結束后,將推薦系統推全,再隨機選擇10%的用戶作為holdout,剛開始時holdout與其他90%差距不大。
在一個項目中,有的指標是推薦系統剛上線就可以看到變化的,例如點擊率,點贊率,有的是長期以往才能看到效果的,比如頁面留存率等,但是考核期往往時間較短,為解決這個問題就需要反轉實驗。
反轉實驗
反轉實驗就是在新開的桶里保存一個舊策略來觀察他的長期指標變化
小結
- 分層實驗:同層互斥,不同層正交
- Holdout:保留10%的用戶作為對照組,不受任何實驗影響,考察整個部門對項目的貢獻
- 實驗推全:將實驗作用于100%的用戶,推全層與其他層正交
- 反轉實驗:在推全層保留一部分使用舊策略,以此觀察長期指標的變化,長期觀察新舊策略diff