1. 程式人生 > >斯坦福大學機器學習筆記——推薦系統(協同過濾、低秩分解、推薦系統)

斯坦福大學機器學習筆記——推薦系統(協同過濾、低秩分解、推薦系統)

這個部落格讓我們來討論一下推薦系統,首先我們來討論一下為什麼學習推薦系統:
1. 推薦系統是機器學習中的一個重要應用,它已經用於很多企業中,比如淘寶、今日頭條、亞馬遜等。它們會根據你的瀏覽記錄,當你再次訪問時,會給你推薦一些你感興趣的東西。
2. 我們從前面學過的機器學習知道,對於一個演算法特徵的選擇,對演算法效能的影響很大。而後面講到的推薦系統的建立過程中,該演算法可以自動的學習一套很好的特徵,而不需要試圖手動設計。

下面我們用一個例子來簡單的介紹什麼是推薦系統的問題:
假如我們有一個電影推薦的問題,其中我們已有的資料為5部電影和4個使用者,使用者給電影打分,具體的打分如下:
這裡寫圖片描述
其中,前三部是愛情片,後兩部是動作片,“?”代表該使用者沒有給這不電影打分。
推薦問題是我們希望構建一個演算法來預測他們每個人可能會給他們沒有看過的電影打多少分,根據這個預測結果的高低來判斷是否將其推薦給使用者。

基於內容的推薦系統:
基於內容的推薦系統我們假設對於我們推薦的東西有一些資料,這些資料也就是這些東西的特徵。
我們還是以上面的那個例子來說明一下基於內容的推薦系統,我們假設每部電影有兩個特徵,其中x1代表電影的浪漫程度,x2代表電影的動作程度,則資料集可以表示為:
這裡寫圖片描述
下面我們基於這些特徵來構建一個推薦系統的演算法。假設我們採用線性迴歸模型,我們對每一個使用者都訓練一個線性迴歸模型,首先我們對使用的引數進行介紹。
θ(j)代表使用者j的引數向量;x(i)代表電影i的特徵向量;(θ(j))Tx(i)代表使用者j對電影i我們預測的評分;nu代表使用者的數量;nm代表電影的數量;i:r(

i,j)表示我們只計算那些使用者j評過分的電影。
於是針對使用者j,該線性模型的代價函式為預測誤差的平方,所以該代價函式的表示式為(帶有正則項):
這裡寫圖片描述
對於推薦系統,我們對上式進行了簡化,將原來除以2m去掉,對最終的結果沒有影響。
上面的表示式只是針對第j個使用者建立的,為了學習所有使用者,我們可以將代價函式形式表示為:
這裡寫圖片描述
我們使用梯度下降法來求解最優解,我們的代價函式對引數求偏導數之後的更新公式為:
這裡寫圖片描述
上述的過程就是基於內容的推薦系統的構建過程。

協同過濾演算法:
前面我們講述了基於內容的推薦系統的設計,它是在我們掌握了可用的特徵之後,使用這些特徵訓練出每一個使用者的引數;相反地,如果我們擁有使用者的引數,我們也可以學習得出電影的特徵,資料集的形式如下:
這裡寫圖片描述


則對應的第i個電影的特徵建立的代價函式的表示式為:
這裡寫圖片描述
同樣我們可以學習所有電影的特徵,我們可以將代價函式的形式表示為:
這裡寫圖片描述
所以對於給定的x(1),...,x(nm)我們能夠估計出θ(1),...,θ(nu);對於給定的θ(1),...,θ(nu)我們能夠估計出x(1),...,x(nm)
但是,如果我們既沒有使用者的引數,也沒有電影的特徵,以上兩種方法都不能適用,所以我們引入了一種新的方法——協同過濾。它可以同時學習引數以及特徵,下面我們討論一下協同過濾演算法的構建過程:
1. 初始化x(1),...,x(nm)θ(1),...,θ(nu)為隨機的很小的值
2. x(1),...,x(nm)θ(1),...,θ(nu)構建代價函式:
這裡寫圖片描述
3. 使用梯度下降法最小化代價函式,對於每一個j=1,2,...,nu以及每一個i=1,2,...,nm更新公式為:
這裡寫圖片描述
4. 在訓練演算法完成後,我們預測(θ(j))Tx(i)為使用者j給電影i的評分。
協同過濾的過程可以理解為,初始化引數θ訓練得到更好的特徵,然後使用更好的特徵訓練得到更好的引數,然後更好的引數得到更好的特徵,不斷重複下去,直到得到最好的引數和特徵。
推薦過程的實現為:如果我們得到使用者j對於電影i的評價很高,同時電影的特徵向量為x(i),則我們可以通過計算另一個電影的特徵向量x(j)與原來電影特徵向量x(i)的距離來進行推薦,如果他們之間的距離很小,則可以進行推薦,如果他們之間的距離很大,則不進行推薦。

協同過濾演算法(低秩矩陣分解)的向量化:
協同過濾演算法也稱為低秩矩陣分解,它可以通過向量化的方式實現。
這裡寫圖片描述
對於上面的資料集我們可以通過右邊的矩陣表示,同時我們能夠對每個使用者對每個電影的評估也可以用矩陣表示:
這裡寫圖片描述
所以我們可以將每個電影的特徵逐行表示,將每個使用者的引數按行表示:

X=(x(1))T(x(2))T(x(nm)

相關推薦

斯坦福大學機器學習筆記——聚類k-均值聚類演算法損失函式初始化聚類數目的選擇

上面的部落格的演算法都是有監督學習的演算法,即對於每個資料我們都有該資料對應的標籤,資料集的形式如下: 而今天我們學習的演算法是一種無監督學習的演算法——聚類,該演算法中的每個資料沒有標籤,資料集的形式如下: K-均值聚類 k-均值聚類是一種最常見

Machine LearningStanford| 斯坦福大學機器學習筆記--第一週1.監督學習與無監督學習的介紹

以上例子中,總共有兩個特徵,即病人年齡和腫瘤大小。在別的ML問題中,經常會用到更多特徵,別人在研究這個問題時, 通常使用如下這些特徵:比如腫瘤的厚度,腫瘤細胞大小和形狀的一致性等等。 真正對於一些學習問題,用到的不只是三五個特徵,經常要用到無數多個特徵,非常多的屬性。所以,你的學習演算法要利用很多的屬性或特徵

Machine LearningStanford| 斯坦福大學機器學習筆記--第二週1.多元線性迴歸及多元線性迴歸的梯度下降

一.Multivariate Linear regression(多元線性迴歸) 現在起將開始介紹一種新的更為有效的線性迴歸形式。這種形式適用於多個變數或者多特徵量的情況。 在之前學習過的線性迴歸中

斯坦福大學機器學習筆記——推薦系統協同過濾分解推薦系統

這個部落格讓我們來討論一下推薦系統,首先我們來討論一下為什麼學習推薦系統: 1. 推薦系統是機器學習中的一個重要應用,它已經用於很多企業中,比如淘寶、今日頭條、亞馬遜等。它們會根據你的瀏覽記錄,當你再

斯坦福大學機器學習筆記——機器學習系統設計誤差分析查全率和查準率F1值

這次部落格我們主要討論機器學習系統設計的主要問題,以及怎樣巧妙的構建一個複雜的機器學習系統。 我們先用一個例子引入機器學習系統的設計: 以一個垃圾郵件分類器演算法為例: 對於該問題,我們首先要做的是怎樣選擇並且表達特徵向量x。我們可以選擇100個詞所構

斯坦福大學機器學習筆記——異常檢測演算法高斯分佈多元高斯分佈異常檢測演算法

異常檢測問題介紹: 異常檢測演算法主要用於無監督學習問題,但從某種角度看它又類似於一種有監督學習的問題,下面我們從一個例子中簡單介紹一下什麼是異常檢測問題。 比如我們有一個飛機引擎製造商,對於一個新造出的飛機引擎我們想判斷這個引擎是不是異常的。 假如我們有

斯坦福大學機器學習筆記——多變數的線性迴歸以及梯度下降法注意事項內有程式碼

在前面部落格中介紹了單變數線性迴歸的實現過程,本文將介紹多變數線性迴歸演算法。 兩者的對比如下: 1.資料方面的差異: 單變數線性迴歸資料: 多變數線性迴歸資料: 對於單變數線性迴歸來說,只有一個特徵(房子的大小),而對於多變數線性特徵迴歸特徵

斯坦福大學機器學習筆記——單變數的線性迴歸以及損失函式和梯度下降法包含程式碼

迴歸問題: 所謂的迴歸問題就是給定的資料集,且每個資料集中的每個樣例都有其正確的答案,通過給定的資料集進行擬合,找到一條能夠最好代表該資料集的曲線,然後對於給定的一個樣本,能夠預測出該樣本的答案(對於迴歸問題來說,最終的輸出結果是一個連續的數值)。比如

斯坦福大學機器學習筆記——正則化的邏輯迴歸模型

在上面部落格中我們討論了正則化的線性迴歸模型,下面我們來討論一下正則化的邏輯迴歸模型。 前面我們講述了兩種常用於邏輯迴歸的方法: 基於梯度下降法的邏輯迴歸模型 基於高階優化的邏輯迴歸模型 基於

斯坦福大學機器學習筆記——特徵和多項式迴歸以及正規方程

我們可以舉一個例子來引入多項式迴歸: 比如我們之前遇到的房價問題,對於房價的影響我們假設有兩個特徵,一個是房子的寬度x1,另外一個是房子的長度x2,這針對房價的估測我們可以建立下面形式的假設: hθ

斯坦福大學機器學習筆記——邏輯迴歸高階優化以及多分類問題

shi先簡單說一下邏輯迴歸,其實會有很多人誤解,會將邏輯迴歸當成迴歸演算法,其實邏輯迴歸就是我們所說的分類問題,所謂的邏輯,一般我們說的邏輯就是邏輯0或者邏輯1,所以可以藉此理解。但是邏輯迴歸不僅僅只包括兩分類問題,它還包括多分類問題。 那麼能否使用線性迴歸的

吳恩達斯坦福大學機器學習 CS229 課程學習筆記

說到機器學習總繞不過幾個鼎鼎大名的人物,他們都創造了不少的機器學習資料,斯坦福吳恩達Andrew Ng的公開課CS229;Google李飛飛的CS231、周志華的、李航的《統計學習方法》、林軒田的《機器學習基石》、Peter Harringtond 的《機器學習實戰》、周志華

[吳恩達機器學習筆記]16推薦系統5-6協同過濾演算法/矩陣分解/均值歸一化

16.推薦系統 Recommender System 覺得有用的話,歡迎一起討論相互學習~Follow Me 16.5 向量化:低秩矩陣分解Vectorization_ Low Rank M

斯坦福大學機器學習——誤差理論Error Theory

一、偏倚(bias)和方差(variance) 在討論線性迴歸時,我們用一次線性函式對訓練樣本進行擬合(如圖1所示);然而,我們可以通過二次多項式函式對訓練樣本進行擬合(如圖2所示),函式對樣本的擬合程式看上去更“好”;當我們利用五次多項式函式對樣本進行擬合(如圖3所示),

斯坦福大學機器學習——交叉驗證Cross Validation

假設我們需要從某些候選模型中選擇最適合某個學習問題的模型,我們該如何選擇?以多元迴歸模型為例:,應該如何確定k的大小,使得該模型對解決相應的分類問題最為有效?如何在偏倚(bias)和方差(variance)之間尋求最佳的平衡點?更進一步,我們同樣需要知道如何在加權迴歸模型中

斯坦福大學機器學習課程第二周筆記

線性 line bili tla oct linear 基礎語 大學 學習 簡記 軟件安裝 Octave matlab 多元線性回歸multiple linear regression 多元梯度下降 特征縮放feature scaling 學習速率learning

斯坦福2014機器學習筆記七----應用機器學習的建議

訓練集 image 是的 bsp 推斷 學習曲線 正則 偏差 wid 一、綱要   糾正較大誤差的方法   模型選擇問題之目標函數階數的選擇   模型選擇問題之正則化參數λ的選擇   學習曲線 二、內容詳述   1、糾正較大誤差的方法   當我們運用訓練好了的模型來做預測時

吳恩達老師機器學習筆記異常檢測

明天就要開組會了,天天在辦公室划水都不知道講啥。。。 今天開始異常檢測的學習,同樣程式碼比較簡單一點 異常檢測的原理就是假設樣本的個特徵值都呈高斯分佈,選擇分佈較離散的樣本的作為異常值。這裡主要注意的是通過交叉驗證對閾值的選擇和F1score的應用。 原始資料: 程式碼如下:

機器學習筆記——線性迴歸Linear Regression

線性迴歸演算法 1 簡單線性迴歸(Simple Liner Regression) 解決迴歸問題 思想簡答,容易實現 許多強大的非線性模型的基礎 結果具有很好的可解釋性 蘊含機器學習中的很多重要思想 1.1 什麼是線性迴歸演算法?

機器學習筆記——梯度下降Gradient Descent

梯度下降演算法(Gradient Descent) 在所有的機器學習演算法中,並不是每一個演算法都能像之前的線性迴歸演算法一樣直接通過數學推導就可以得到一個具體的計算公式,而再更多的時候我們是通過基於搜尋的方式來求得最優解的,這也是梯度下降法所存在的意義。 不是一個機器學習演