9.1 problem formulation
第一節就講了下問題,看起來好簡單,但實際的想法還是很不錯的,開兩個矩陣,一個矩陣用0/1來表示評分與否,另一個矩陣表示具體的評分。兩層結構,略顯冗餘,但在對客戶分類時可能還是很有好處的,哈哈
9.2 基於內容的推薦(是基於電影的屬性來推薦)
下一節則會講到不基於內容的推薦
在得到theta時可用cluster descent,&LBFGS等方法(For collaborative filtering, it is possible to use one of the advanced optimization algoirthms (L-BFGS/conjugate gradient/etc.) to solve for both the x(i)'s and θ(j)'s simultaneously.)
9.3協同過濾
不像基於內容的推薦系統,此處我們並不知道,電影的具體的屬性值,但可以由顧客得出theta值
問題如下
通過theta來得出X,可見其與上一節之區別
協同過濾,如下
這就好比是雞與蛋的問題,先有雞還是先有蛋,此處先假設先有雞,後再推出蛋,最後一路推下去,最終就可以得到一個收斂的好結果
9.4協同過濾算法
簡單的想法是先隨機初始化x,從而得出theta,再算出x,一直重複這過程,只至theta和x趨於穩定爲止
要注意的是不像以前公式中所要重視的細節那樣,這裏無需用到x0和theta0.
在此算法中,我們隨機初始化theta值和x值到一個小的隨機值,點解呢?
這個是用來symmetry breaking(對稱性破缺)類似於神經網絡參數的隨機初始化,以確保這種算法學到的特徵x1...之間相互不同
這就是全部過程
9.5向量化:低秩矩陣分解
三張解決,先算出每個電影的x值,再推出之間是否可歸爲同類
9.6完善細節:mean normalization(均值標準化)
當我們討論均值標準化的時候,不同於一些其他的特徵規範化的應用,此處並沒有用較常見的max-min value(最大最小值規範化)
,原因在於,所以的電影評分都是comparable的(如0到5星),所以他們已經在相似的度量上了
如果不作任何處理的話,第五個客人的所有的預測評分都將爲0,這是沒有任何意義的結果,故用第二張圖的方法來計算