機器學習筆記(參考吳恩達機器學習視訊筆記)15_推薦系統
15 推薦系統
一個電影提供商,有5部電影和4個使用者。要求使用者為電影打分:
前三部為愛情片,後兩部為動作片。Alice、Bob更傾向於愛情片,Carol、Dave更傾向於動作片。沒有一個使用者給所有的電影打過分。希望構建一個演算法來預測他們每個人可能會給他們每個人可能會給他們沒看過的電影打多少分,並以此作為推薦依據。引入如下標記:
代表使用者數量
代表電影數量
如果使用者j給電影i評過分則=1
代表使用者j給電椅i的評分
代表使用者j評過分的電影總數
15.1 基於內容的推薦系統
基於內容的推薦系統中,推薦的東西需要一些資料,這些資料是有關這些東西的特徵。例如假設每部電影都有兩個特徵,如代表電影的浪漫程度,代表電影的動作程度。
則每部電影都有一個特徵向量,如是第一部電影的特徵向量為[0.9 0]。
基於這些特徵構建一個推薦系統演算法。採用線性迴歸模型,針對每個使用者都訓練一個線性迴歸模型。如是第一個使用者的模型引數。即:
針對單一使用者的代價函式可以表示為:
為了學習所有使用者,將所有使用者的代價函式求和:
15.2 基於協同過濾的推薦系統
基於內容的推薦系統,對於每部電影都有可用的特徵。這些特徵可以訓練出每個使用者的引數。相反地,如果擁有了使用者引數,可以學習得出電影的特徵。
當既沒有使用者引數,也沒有電影特徵時,協同過濾演算法可以同時學習兩者。
在協同過濾演算法中,通常不使用方差項,如果需要,可以自動學得。協同過濾演算法使用步驟如下:
-
初始為一些隨機小值。
-
使用梯度下降演算法最小化代價函式。
-
在訓練完演算法後,預測為使用者j給電影i的評分。
通過這個過程獲得的特徵矩陣包含了有關電影的重要資料,這些資料不總是人能讀懂的,但可以作為給使用者推薦電影的依據。
例如,一位使用者正在觀看電影,可以尋找另一部電影進行推薦,依據兩部電影的特徵向量之間的距離|| ||的大小。
15.3 協同過濾演算法
15.4 向量化:低秩矩陣分解
找到相關影片:
15.5 均值歸一化