吳恩達機器學習(十四)推薦系統(基於梯度下降的協同過濾演算法)
阿新 • • 發佈:2018-12-14
目錄
學習完吳恩達老師機器學習課程的推薦系統,簡單的做個筆記。文中部分描述屬於個人消化後的理解,僅供參考。
如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~
0. 前言
在推薦系統中,主要有兩種方法,基於內容的推薦演算法和協同過濾演算法,此文章採用電影推薦作為例子,初始作如下定義:
- --- 使用者數量
- --- 電影數量
- --- 使用者 對電影 進行了評價
- --- 使用者 對電影 的評分
- --- 使用者 評價了的電影數量
- --- 擬合用戶 評價電影的曲線引數
- --- 電影的特徵數量
推薦系統的目標,就是通過使用者已經評價的電影和電影的特徵,預測使用者未評價的電影的評分,由此進行推薦。
1. 基於內容的推薦演算法(Content-based recommendations)
給出如下例子(圖源:吳恩達機器學習),基於內容的推薦演算法已知每部電影的特徵值:
對於使用者 ,每一部的電影的特徵為 ,使用者的評分為 ,用資料集 ,進行擬合,得到引數 ,對於需要預測的電影 ,由 得到評分,可根據預測的評分進行推薦。
單個使用者的代價函式為:
消去 後,多個使用者的代價函式為:
梯度下降為:
注:此時的 和 都增加了偏置 和 。
2. 計算電影特徵
要求已知使用者的引數 ,根據每個使用者對電影的評價 ,擬合出電影 的特徵值。
單部電影的代價函式表示為:
多部電影的代價函式表示為:
所以,結合基於內容的推薦演算法,我們可首先假設 ,然後擬合 ,再優化 ,
3. 基於梯度下降的協同過濾演算法(Collaborative filtering)
基於內容的推薦演算法通過 求解 ,計算電影特徵通過 求解 ,如此往復計算複雜度大,可將兩個代價函式合併:
通過初始化 和 為較小的值,通過梯度下降降低代價函式:
注:此時的 和 都不需要偏置 和 。
4. 低秩矩陣分解(Low rank matrix factorization)
如果對預測評分過程向量化,將評分表示為矩陣
5. 應用到推薦
根據電影 推薦相似的電影 給使用者,可取使得 距離最小的 。
若一個使用者對任何一部電影都未評分,則根據各個電影均值,進行推薦。
如果這篇文章對你有一點小小的幫助,請給個關注喔~我會非常開心的~