十六、推薦系統
阿新 • • 發佈:2018-11-23
1 問題公式化
假如我們是一個電影供應商,有5不影片和4個使用者,我們要求使用者為電影打分:
2 基於內容的推薦演算法
假設每部電影有兩個特徵,x1代表電影的浪漫程度,x2代表電影的動作程度。
給予這些特徵來構建一個推薦演算法,假設採用迴歸模型,我們針對每一個使用者都訓練一個迴歸模型,如θ(1)為第一個使用者Alice的引數模型,為2*1向量,於是有:
每一個使用者的代價函式為:
其中求和是我們只計算評分過的電影,其中與線性迴歸模型不同的是,沒有同時乘以1/m。
所以對所有使用者的代價函式為:
採用梯度下降法最優化演算法,更新公式為:
3 協同過濾演算法
基於內容的推薦演算法是已知內容的特徵,學習使用者的引數。如果已知使用者的引數(如調查使用者對浪漫電影的喜歡程度,對動作電影的喜歡程度,得到使用者的引數),同樣可以學習到內容的特徵:
如果我們既沒有內容的特徵,也沒有使用者的引數,協同過濾演算法可以解決。
協同過濾演算法的優化目標:
對代價函式求偏導後:
可以根據學習到的特徵,來找到兩個相似的電影,根據:
這樣使用者可以根據已經看過的電影進行推薦。
4 低秩矩陣分解
矩陣化實現協同過濾演算法:
首先對評分進行矩陣化:
推出評分:
令:
評分為:
由於評分矩陣是低秩的,協同過濾演算法就是把評分矩陣分解為X和Θ兩個矩陣,所以也稱為低秩矩陣分解。
然後再根據電影間的相似度進行推薦:
5 均值歸一化
如何新增一個使用者,該使用者未對所有使用者進行評分,那麼應用協同過濾演算法後,給使用者推薦會發現可能給所有的電影都打0分。
因為我們在最小化代價函式的時候只有正則化項起作用,這個時候會把θ(5)全學習為0.
這個時候可以先對資料進行均值歸一化,對每個使用者的評分減去該電影的平均評分:
最後在預測評分時:
就能對新增使用者預測的評分都為均值