推薦系統架構

 

推薦系統一般可分爲兩部分召回與排序,粗排和精排算法

 

首先明確一點,計算廣告或者推薦系統中數據特色,大可能是高維離散型數據。框架

 1 召回函數

召回框架以下圖所示:學習

經常使用的召回算法:優化

    1基於共現關係的collaborative Filtering:利用用戶的行爲數據建模。這裏須要注意用戶活躍度與物品流行度,僅僅基於用戶行爲數據設計的推薦算法通常稱爲協同過濾算法
spa

            如下展現常見的類似度計算公式:  設計

      1  用戶類似度  blog

         A:             排序

           B:  UserCF算法中用戶u對物品i的感興趣程度:  
          
數學

                                    其中, S(u, K)包含和用戶u興趣最接近的K個用戶, N(i)是對物品i有過行爲的用戶集合, wuv是用戶u和用戶v的興趣類似度, rvi表明用戶v對物品i的興趣,由於使用的是單一行爲的隱反饋數據,因此全部的rvi=1

         C:   

                  能夠看到,該公式懲罰了用戶u和用戶v共同興趣列表中熱門物品對他們相似度的影響 

 

                        2 基於物品的協同過濾

      

            這裏,分母|N(i)|是喜歡物品i的用戶數,而分子 N i N j ( ) ( ) 是同時喜歡物品i和物品j的用戶數。所以,上述公式能夠理解爲喜歡物品i的用戶中有多少比例的用戶也喜歡物品

           上述公式雖然看起來頗有道理,可是卻存在一個問題。若是物品j很熱門,不少人都喜歡那麼Wij就會很大,接近1。所以,該公式會形成任何物品都會和熱門的物品有很大的類似度,這對於致力於挖掘長尾信息                                       的推薦系統來講顯然不是一個好的特性。爲了不推薦出熱門的物品,

            能夠用下面的公式:

            這個公式懲罰了物品j的權重,所以減輕了熱門物品會和不少物品類似的可能性。 

            下圖是一個根據上面的程序計算物品類似度的簡單例子。圖中最左邊是輸入的用戶行爲記錄,每一行表明一個用戶感興趣的物品集合。而後,對於每一個物品集合,咱們將裏面的物品兩兩加一,獲得一個                                                  矩陣。最終將這些矩陣相加獲得上面的C矩陣。其中C[i][j]記錄了同時喜歡物品i和物品j的用戶數。最後,將C矩陣歸一化能夠獲得物品之間的餘弦類似度矩陣W。 

                        

 

                               改進版ItemToItem: 

                  

 


    2 Model based CF:

            MF    

           SVD     

 

           FISM: 用評價過的Item表示用戶: 

 

           SVD++: 嵌入ID類型數據以及用戶表示過的物品表示用戶: 

 

           FM: 

 

  經過用戶偏好建模選取key,經過k近鄰搜索來查找value

  查找算法: LSH KD tree ball tree

 2 排序

推薦系統中的排序是多目標排序, 好比CTRCVR預估,按照優化方式的不一樣,也就是learn to rank的三種方式,可分爲Pointwise  CTR預估,Pairwise   bpr  Lambed MART,listWise  

 

經常使用的pointwise方式,也就是ctr預估模型,以前已經介紹過,如今來看pair-wise方式。

pointwise在優化L2 loss ,

可是不少證據代表
一個低MSE模型不⼀定表明排序效果好。。
– Possible Reasons:
1) 均方偏差(e.g., RMSE) and 排序指標之間的分歧
2) 察有偏 – 用戶老是去對喜歡的電影打分 
如今的工做開始逐步朝着優化pairwise ranking loss 

優化相對序關係,不是優化絕對值。

 

首先明確排序模型的評價指標:

 

NDCG: 

AUC: 有兩層含義,1 ROC曲線下的面積,2 任給一個正樣本,排在負樣本以前的機率有多大。

 

可是AUC一般不可導:因此引入了BPR,

 能夠看出BPR能夠近似看作AUC。相似的還有RankNet,常見的排序指標⽆法求梯度
經過幾率損失函數學習Ranking Function
兩個候選集之間的相對排序位置做爲⽬標機率
交叉熵(cross entropy loss function)做爲機率損失函數 ,模型有LambdaNet與LambdaMart,後續總結。

相關文章
相關標籤/搜索