1 重排序算法和多目標排序
多目標排序
score = CTR(α+CVR)(β+Price)...拍腦袋
rules:同?XX N出1;活動扶持、新品扶持、低俗打壓;流量控制…
Learning to rank
- 三種:
pointwise算ctr從高到低,pairwise比較兩個item然后排序,listwise直接出 -
評價指標
MAP:
F1 score:
AUC:
train AUC >> test AUC 過擬合
test AUC >> online AUC 檢測模型輸入,模型裁剪是不是有問題
nDCG:
判斷這個listwise推的好不好 - Bayesian Personalized Ranking
pairwise方法
BPR-MF
BPR-AUC analogy - LambdaMart
LambdaMart = MART + LambdaNet
2008 Yahoo! Learning to Rank Challenge
http://proceedings.mlr.press/v14/chapelle11a/chapelle11a.pdf
《From RankNet to LambdaRank to LambdaMART: an overview》
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.180.634&rep=rep1&type=pdf
遷移學習和multi-task learning
共享特征,共享權重
2 排序和深度學習模型
問題定義
算法演變
- 基于規則
- LR
- CART,RF
- FM
- GBDT/DNN
- 模型融合
大規模特征+線性模型(Google,Baidu)
中小規模特征+非線性模型(Yahoo,Bing,FB,Taobao)
數據優化:Position Bias
DNN實用化
- 搜索+DeepRank
MS-DSSM,MS-DSSM CNN,MS - Deep Crossing - 推薦+DeepRank
- DeepRank
序列類,多媒體類,Attention,知識圖譜
3 分布式機器學習系統及其在排序模型中的應用
推薦書籍:分布式機器學習:算法理論與實踐
概念
分布式機器學習系統 = 分布式系統 + 機器學習
分布式系統 = 分布式計算MapReduce + 分布式存儲HDFS
基本流程
計算量太大:基于共享內存(或虛擬內存)的多線程或多機并行計算
訓練數據太多:數據劃分, 分配到多個工作節點進行訓練
模型規模太大:模型劃分, 分配到多個工作節點進行訓練
數據和模型劃分
數據對訓練樣本置亂切分
模型:線性模型直接切分,深度模型橫向或者縱向切分
通信模塊
- 通信的內容
數據并行:子模型或者子模型的更新(梯度), 應用最廣泛的分布式機器學習模式
模型并行:節點之間存在較強的依賴關系, 上一個子模型的輸出是下一個的輸入, 中間結果作為通信內容 - 通信的拓撲結構
基于迭代式MapReduce/AllReduce的通信拓撲:Spark MLlib
基于參數服務器的通信拓撲:Google 的DistBelief,微軟的Multiverso,PS-Lite,BytedancePs
基于數據流的通信拓撲:TensorFlow - 通信的步調:同步與異步
具體流程
-
計算并行
-
數據并行
-
模型并行
線性模型:
深度模型:
-
同步和異步SGD
同步:
異步:
例子DistBelief
模型并行,數據并行,異步SGD
https://papers.nips.cc/paper/4687-large-scale-distributed-deep-networks.pdf
4 深度召回和深度模型
itemCF/userCF類, 矩陣分解類,deeplearning類
通過用戶歷史(點擊,收藏,點贊,購買,瀏覽)找候選topK
如果是新用戶可以hot2i,比如曝光top100,點擊top100,收藏top100
如何算user2i
1.user2i根據日志統計出有用戶行為的user2i
2.有一類svd可以計算user的向量和item向量,根據向量來算user和item的相似度
通過多種方式計算共現,比如共現點擊,共現購買,共現收藏,共現曝光
如何計算I2I:同品類,同tag,近似算法過濾
解決方案1:SVD,SVD++,SVD+sideinfo
解決方案2:FM
解決方案3:引入交叉特征
解決方案4:加入歷史信息
解決方案融合: