吳恩達機器學習筆記 —— 17 推薦系統

xingoo發表於2018-08-01

本章講述了推薦系統相關的知識,比如基於內容的推薦演算法、基於協同過濾的推薦演算法以及實踐中遇到的問題。

更多內容參考 機器學習&深度學習

推薦系統是機器學習在工業界應用最廣泛的方向,很多電子商務類、諮詢類的平臺都在做個性化推薦的工作,通過機器學習的演算法讓自己的平臺個性定製,千人千面。
吳恩達機器學習筆記 —— 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評分的電影數量。因此就有下面的公式:

吳恩達機器學習筆記 —— 17 推薦系統

協同過濾

前面的演算法有一個特點就是需要有每個電影的特徵向量,這個需要人為的來標註,如果你的資料沒有這種現成的向量,而是有使用者的偏好特徵。比如知道一個使用者對兩個特徵的喜好程度x,又知道他對這個電影的評分,那麼就可以猜測出來這個電影對應的特徵指數了。

比如上面的例子中如果使用者的洗好向量是[0,5,0],對於第一個電影它的評分又是5,第五個電影評分時0,我們就可以猜到第一個電影的特徵是[1,1,0],第五個電影是[1,0,1],這樣就可以猜測出來每個電影的特徵指數了。

總結來說,如果有電影的特徵向量,就可以猜測出來使用者對電影的評分;如果有使用者的特徵偏好,也可以猜測出來電影的特徵指數。還有一種簡單的方式就是隨機給定θ,然後訓練得出x,再通過x訓練得出θ——這就是矩陣分解的意思啊!

吳恩達機器學習筆記 —— 17 推薦系統
吳恩達機器學習筆記 —— 17 推薦系統
這裡講到了通過評分矩陣可以計算相似物品,其實這也是物品協同過濾的核心:
吳恩達機器學習筆記 —— 17 推薦系統
有一個實踐的小技巧,如果使用者對任何的物品都沒有評分,那麼可以先給他初始化成均值(我們在做推薦系統的時候,這種使用者一般都不會用協同過濾來做推薦)
吳恩達機器學習筆記 —— 17 推薦系統

相關文章