吳恩達機器學習筆記 —— 17 推薦系統
本章講述了推薦系統相關的知識,比如基於內容的推薦算法、基於協同過濾的推薦算法以及實踐中遇到的問題。
更多內容參考 機器學習&深度學習
推薦系統是機器學習在工業界應用最廣泛的方向,很多電子商務類、咨詢類的平臺都在做個性化推薦的工作,通過機器學習的算法讓自己的平臺個性定制,千人千面。
比如我們擁有這樣的數據集,其中nu代表用戶的個數,nm代表物品的個數,r(i,j)為1代表用戶j對物品i有評分,y(i,j)代表用戶j對物品的分值。
基於內容的推薦
現在我們有了上面的數據集,即用戶對電影的評分。還有電影的兩個特征,浪漫指數和動作指數,假設我們針對每個用戶都有一個θ,使得θTx能預測到一個分值——可以看做每個用戶擁有一個線性回歸的公式,通過這個公式,可以跟電影的兩個特征(還有一個偏置項,固定為1)計算出分值。
其中r(i,j)是用戶J對電影i是否有評分,y(i,j)是對應的分值,θ(j)代表用戶j的參數向量,x(i)代表電影i的特征向量,因此對於用戶j對電影i的評分就是(θ(j))T(x(i)),m(j)是用戶j評分的電影數量。因此就有下面的公式:
協同過濾
前面的算法有一個特點就是需要有每個電影的特征向量,這個需要人為的來標註,如果你的數據沒有這種現成的向量,而是有用戶的偏好特征。比如知道一個用戶對兩個特征的喜好程度x,又知道他對這個電影的評分,那麽就可以猜測出來這個電影對應的特征指數了。
比如上面的例子中如果用戶的洗好向量是[0,5,0],對於第一個電影它的評分又是5,第五個電影評分時0,我們就可以猜到第一個電影的特征是[1,1,0],第五個電影是[1,0,1],這樣就可以猜測出來每個電影的特征指數了。
總結來說,如果有電影的特征向量,就可以猜測出來用戶對電影的評分;如果有用戶的特征偏好,也可以猜測出來電影的特征指數。還有一種簡單的方式就是隨機給定θ,然後訓練得出x,再通過x訓練得出θ——這就是矩陣分解的意思啊!
這裏講到了通過評分矩陣可以計算相似物品,其實這也是物品協同過濾的核心:
有一個實踐的小技巧,如果用戶對任何的物品都沒有評分,那麽可以先給他初始化成均值(我們在做推薦系統的時候,這種用戶一般都不會用協同過濾來做推薦)
吳恩達機器學習筆記 —— 17 推薦系統