天天看點

Coursera線上學習---第九節(2).推薦系統

一、基于内容的推薦系統(Content Based Recommendations)

  所謂基于内容的推薦,就是知道待推薦産品的一些特征情況,将産品的這些特征作為特征變量構模組化型來預測。比如,下面的電影推薦,就是電影分為"愛情電影"、“動作電影”一些特征來進行預測。

  

Coursera線上學習---第九節(2).推薦系統

  上述例子,将電影的内容特征作為特征變量X1,X2,這些電影特征是預先已知的,使用者對電影的打分作為y值。比如一使用者對100個電影都做了打分,那對于該使用者就有了100個樣本值,進而可以利用線性回歸求解出該使用者對應的參數Θ值,這樣每一個使用者都有自己參數Θ。

Coursera線上學習---第九節(2).推薦系統
Coursera線上學習---第九節(2).推薦系統
Coursera線上學習---第九節(2).推薦系統

二、協同過濾系統(Collaborative Filtering)

  像上述産品的内容特征其實往往是預先不知道的,這個是比較困難的,那怎麼辦呢?采用協同過濾系統,所謂協同過濾系統,就比如選出使用者對電影的打分,來估出相應的的參數Θ值,進而再利用線性回歸算出相應的電影特征值,根據特征值再次學習出Θ值,循環反複直到收斂,将會得到一組不錯的Θ值與産品特征值。其實也就是使用者幫助模型學習特征,這些特征也可以用來對其他人進行預測,另一層意思就是說大家都在為大家的利益學習出更好的特征。

  當然,上述描述的循環反複不斷學習實踐起來會比較麻煩,有一個一勞永逸的方法,可以同時學習出Θ值與特征變量,如下圖:

Coursera線上學習---第九節(2).推薦系統

三、計算兩個産品的相似性。

Coursera線上學習---第九節(2).推薦系統

四、均值歸一化

  所謂均值歸一化,就是把每一個電影歸一化為平均評分為0。因為存在一種情況某一使用者對任何一個電影都沒有打過分,這個時候該使用者對應的Θ學出來就全是0,因為在優化的時候,由于沒有對任何電影打分,就相當于沒有一個樣本,隻是優化了正則參數Θ1^2+Θ2^2+...+Θn^2,這樣求解出最小值必然Θ=[0,0,0...,0],這樣進行預測的時候,該使用者對電影的評分也必然全部為0,沒什麼意義了。是以就需要均值歸一化。具體如下圖:

Coursera線上學習---第九節(2).推薦系統
Coursera線上學習---第九節(2).推薦系統

  如上圖所示,采用了均值歸一化後,預測完成後都要再加上均值變量。這樣如果遇到上述描述的沒有打過分的使用者,預測後即使為0,再加上均值向量後,打分就變成了均值分數了。這樣從理論上也說得通,如果一個使用者從沒打過分,也就是沒有該使用者的任何興趣傾向資訊,那麼我們就認為該使用者對此電影的興趣就為一個中間值比較合理。