#Recommender Systems(推薦系統)
機器學習的一個很重要的應用。
#Problem formulation(問題規劃)
所以如果想開發一個推薦系統,就要想出一個能自動填補這些缺失值的學習算法,這樣就可以看看該用戶和那些沒看過的電影並推薦新電影給該用戶。
#Content-based recommendations(基於內容的推薦算法)
- 把每個用戶的評價預測值看作是一個線性迴歸問題。
更正式的:
#Collaborative filtering(協同過濾)
有一個很有意思的特性叫feature learning(特徵學習),即這個算法可以自行學習所要使用的特徵。
- 假設我們聽取用戶的意見,每個用戶j都告訴我們他們各自的θ^(j)是什麼,即他們對不同題材電影的喜歡程度。
把這一學習問題標準化到任意特徵x^(i):
總結:
- 隨機猜一些θ值 》》學習出不同電影的特徵 》》得到一個更好的對參數θ值的估計 》》得到更好的特徵 》》··· 以此類推
#Collaborative filtering algorithm(協同過濾算法)
將兩個優化目標函數結合爲一個新的優化目標函數J,能同時算出θ和x,而不需要反覆計算:
- 不需要X0
1、把x和θ初始化爲小的隨機值;
2、用梯度下降或其他高級優化算法把代價函數關於x和θ最小化;
3、給你一個用戶,如果ta有一些參數θ以及給你一部帶有已知特徵x的電影,就可以預測該用戶給這部電影的評分。
#Vectorization low rank matrix factorization(矢量化:低秩矩陣分解)
- y^(i,j)是第j個用戶給第i部電影的評分
- low rank matrix factorization(低秩矩陣分解):給出矩陣X和矩陣θ的定義,得到一個向量化方法來計算預測矩陣。
用已經學習到的特徵來找相關的電影:
#Implementational detail:Mean normalization(實施細節:均值規範化)
作爲協同過濾算法的預處理步驟,根據不同的數據集有時候會讓算法表現得好一些。
實現mean normalization(均值歸一化):
- 計算每個電影所得評分的均值存到向量μ中;
- 把電影評分矩陣的每一行都減去那個電影的平均評分;
- 把每個電影評分都歸一化,使得均分爲零;
- 用這些均值歸一化後的電影評分來學習,預測值要加回均值。
PS.內容爲學習吳恩達老師機器學習的筆記【https://study.163.com/course/introduction/1004570029.htm】