機器學習(十二):推薦系統的兩種觀點_機器學習

來源:互聯網
上載者:User
1. 從物理意義出發的觀點

什麼是推薦系統。以電影推薦為例,就是對於一部電影,我們預測某個使用者對一部電影的評分。

我們用如上所示符號來表示。值得注意的是,很有可能使用者沒有給某電影打分,此時 r(i,j)=0 。

這裡需要理清:
對於一個電影,我們需要找到一些特徵空間 X 來衡量這個電影;
對於一個使用者,我們需要找到一些參數 h(x)=wTx 來預測使用者對這部電影的評分。
然而問題是:我們既沒有 X 也沒有對於使用者i的 wi ,也就是說這兩者都需要學習。

使用如下符號:

我們假定對於電影的特徵向量已經確定,也即所有的 x(i) 已知,來學習 θ(j) :

現在反過頭來看,其實我們對電影的特徵向量一無所知。如果假定所有的 θ(j) 已知,來學習 x(i) :

這一個過程與K-Means訓練過程類似,給定一個初始的θ,然後開始訓練: θ0→x0→θ1→x1....→

這裡又與K-Means有所不同,因為K-Means是combination-number最佳化問題;而我們這裡的最佳化問題很簡單,可以同時進行:

此時我們再來重新看給出的y資料:

還是有點小問題,如果某一個使用者沒有給任何電影打分:

根據我們的學習過程:代價函數的第一項為0。如果要最小化代價函數,那麼此使用者的 θ=0 ,也就是說:對於任何的電影,我們將會預測其評分為0——不向該使用者推薦任何電影。這樣做可以嗎。可以,但不是很好。我們理應向任何一個使用者推薦電影。怎麼推薦。
如果大多數人認為這個電影很好,那麼這個電影可能真的非常好。——將對某一電影的所有評分求一個均值。
可以使用如下的均值歸一化過程:

用 Y−μ 來學習,最後預測的結果是 θTx+μ 。 2. 從抽象計算出發的觀點

對於電影推薦系統,我們獲得的資料是什麼呢。假設用 nu 個使用者, nm 部電影, r(i,j) 表示使用者j是否給使用者i評分,其對應的分數是 y(i,j) 。那麼我們的資料是 (x(j)=j,y=y(i,j)) 亦或者是 (x(j)=j,y=(y(1,j)),...,?,...y(nm,j))T) 。(畢竟我們的推薦系統以使用者為中心,而不是以電影為中心——當然以電影為中心,資料也也可以用同樣的方式解析)。

我們知道輸入x代表的是使用者的ID,並沒有實際意義,我們稱之為抽象特徵。
我們要設計一個特徵轉換的函數φ,來將抽象特徵轉換——這個函數具體是什麼我們不關心(這類似於自動編碼器)。然後學習一個預測函數h,使得 h(ϕ(x))≈y 。
自動編碼器使用一個線性模型,假設預測函數也是一個線性模型,那麼整個模型就是一個兩層的網路。

假設將x進行binary vector 編碼,那麼這個網路就是 nu−d−nm 結構

其中 Vd∗nu,Wnm∗d ,則有 h(x)=WVx
根據代價函數,我們知道我們要尋找W,V使得 Y≈VTWT

然後轉向使用alternating optimization技術來解決最佳化問題。

3. 小結

無論如何,電影的特徵向量的長度還是需要我們自己來指定。

我們在訓練過程中,可以考慮實際問題來定製解決方案,例如此問題中:越是最近時間段的資料,權重越大。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.