吳恩達機器學習(十六)——推薦系統

前言

目前生活中我們用的互聯網產品就會都會涉及到推薦系統,比如逛淘寶時瀏覽商品時推薦系統會記下用戶的喜好,然後推薦同類型或者覺得你感興趣的商品給你;瀏覽新聞時根據你歷史瀏覽的內容推薦同類型內容的新聞給你,這就是通俗意義上的推薦系統。

一、基於內容的推薦系統

1、問題描述
假使我們是一個電影供應商,我們有 5 部電影和 4 個用戶,我們要求用戶爲電影打分。前三部電影是愛情片,後兩部則是動作片,我們可以看出 Alice 和 Bob 似乎更傾向與愛情片, 而 Carol 和 Dave 似乎更傾向與動作片。並且沒有一個用戶給所有的電影都打過分。我們希望構建一個算法來預測他們每個人可能會給他們沒看過的電影打多少分,並以此作爲推薦的依據。
下面引入一些標記:
nu 代表用戶的數量
nm 代表電影的數量
r(i, j) 如果用戶 j 給電影 i 評過分則 r(i, j) = 1
y^(i, j)^ 代表用戶 j 給電影 i 的評分
mj代表用戶 j 評過分的電影的總數
在這裏插入圖片描述

2、推薦系統算法
如下示我們引入兩個變量x1表示電影的浪漫程度(愛情片),x2表示電影的動作程度(動作片)
在這裏插入圖片描述

下面我們要基於這些特徵來構建一個推薦系統算法。 假設我們採用線性迴歸模型,我們可以針對每一個用戶都訓練一個線性迴歸模型,如θ(1)是第一個用戶的模型的參數。 於是,我們有以下的第一個公式(加上正則化參數)當然這個公式是針對第一個用戶的模型,如果我們預測所有用戶的模型,那麼我們就有下面的第二個公式。這樣根據第二個公式我們分別求解θ(n)的偏導數就可以用梯度下降法更新我們的模型。
在這裏插入圖片描述

二、協同過濾

上面的模型是我們知道了電影的類型給出特徵值x1和x2,如果我們相反過來並不知道這兩個參數的值而是知道每個用戶的權限值θ(i)呢?
在這裏插入圖片描述
我們根據用戶的θ(i)同樣可以用我們的代價函數來求解這個模型,這樣的方法我們也稱爲協同過濾
協同過濾算法使用步驟如下:

初始 x(1), x(2), . . . x(m), θ(1), θ(2), . . . θ(m))爲一些隨機小值
使用梯度下降算法最小化代價函數
在訓練完算法後,我們預測(θ(j))Tx(i)爲用戶 j 給電影 i 的評分
在這裏插入圖片描述

三、低秩矩陣分解及均值歸一化

1、低秩矩陣分解
我們有五部電影,以及四位用戶,那麼 這個矩陣 Y 就是一個 5 行 4 列的矩陣,它將這些電影的用戶評分數據都存在矩陣裏就可以推出右邊矩陣的評分。
在這裏插入圖片描述
用戶在看某部電影 i 的時候,如果你想找 5 部與電影非常相似的電影,爲了能給用戶推薦 5 部新電影,你需要做的是找出電影 j,在這些不同的電影中與我們要找的電影 i 的距離最小,這樣你就能給你的用戶推薦幾部不同的電影了。
在這裏插入圖片描述

2、均值歸一化

均值歸一化(mean Normalization)我們之前學習迴歸算法的時候就學過這個模型,由於不同特徵值間的差值太大,我們常常需要將特徵值進行縮放,其中一種方法就是均值歸一化,公式是:(x - u)/(max - min)
我們還可以用這種方法求解下面的未知變量的值,對結果 Y 矩陣進行均值歸一化處理,將每一個用戶對某一部電影的評分減去所有用戶對該電影評分的平均值,對於未知變量,我們的新模型會認爲她給每部電影的評分都是該電影的平均分。
在這裏插入圖片描述
參考資料 《吳恩達機器學習》16 推薦系統
16.推薦系統 Recommender System
吳恩達機器學習筆記(十六)-推薦系統
吳恩達機器學習—推薦系統

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章