機器學習 協同過濾,LFM(隱語義)演算法

2021-07-04 14:35:55 字數 1562 閱讀 7288

本文內容屬於 andrew ng的《機器學習》公開課筆記,大部分截圖均來自andrew ng的課件

對於本節所講的演算法,andrew ng稱為 collaborative filtering(協同過濾),或者low rank matrix factorization(xx矩陣分解),項亮博士《推薦系統實踐》那本書裡叫做 lfm(隱語義模型)

基於內容的推薦 ,但是內容矩陣怎麼來?一種方法就是用大量的人力去填。而collaborative filtering 正是這樣一種代替人工的方式。

回顧一下,基於內容的推薦,是已知y和x,求theta。如果我們已知y和theta,就可以求x。

於是,如果給theta乙個初始化很小的值,可以來回利用上面兩個式子,對x和theta進行求解。

我們偉大的前輩發現了一種更好的方法,就是把兩個 linear regression合併,如下圖

合併後,我們的最優化目標就從 

j(theta) 和 j(x)變成了 j(theta,x)

演算法描述如下

在這裡,我們不需要 k = 0的特殊情況了,因為我們不需要手動新增 x=1這個元素。如果需要x=1,協同過濾演算法會自己算出乙個 x=1。演算法描述到此為止。

1,為什麼該演算法也叫做 矩陣分解演算法呢。見下圖

我們把 y矩陣,轉換成了 theta和x兩個矩陣的乘積

2,怎麼找到與 movie i最相似的5個movie呢?

計算距離

這個距離可能很大。更好的計算距離或者說相似的的方法有 皮爾遜相似度,余弦相似度,尤拉距離相似度等等,這些相似度的取值範圍都在 -1~1之間

3,如果乙個使用者是新來的,沒有任何評分記錄,怎麼給他推薦?

andrew ng推薦 mean normalization  方法

如果乙個使用者沒有評分記錄,那麼用 cf方法算出來的評分都是0。沒什麼價值,還不如給他乙個平均值。具體實現見下圖

計算出每部電影的評分平均值。然後把所有的評分都減去平均值進行計算。算出來的結果再加上平均值。

這樣做其實對有評分記錄的使用者是多餘的。但是卻可以把沒有評分記錄的使用者給 統一 進來!

-------------割-------------

節目預告:下一節要講 logistic regression 和 regulization。因為是複習,所以沒按大綱走 

推薦系統(二) 協同過濾之隱語義模型(LFM)

三 小結 基於使用者行為分析的推薦演算法一般稱為協同過濾演算法。所謂協同過濾,就是指眾多的使用者可以齊心協力,通過不斷地和 互動,使自己的推薦列表能夠不斷過濾掉自己不感興趣的物品,從而越來越滿足自己的需求。常見實現方法的包括 基於鄰域的方法 隱語義模型 基於圖的隨機遊走演算法 在講解lfm之前,先看...

機器學習 協同過濾

在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。本文將帶你深入了解協同過濾的秘密。下面直接進入正題 1 什麼是協同過濾 協同過濾是利用集體智慧型的乙個典型方法。要理解什麼是協同過濾 collaborative filtering,簡稱 cf 首先想乙個簡單的問題,如果...

機器學習相關 協同過濾

在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。本文將帶你深入了解協同過濾的秘密。下面直接進入正題 1 什麼是協同過濾 協同過濾是利用集體智慧型的乙個典型方法。要理解什麼是協同過濾 collaborative filtering,簡稱 cf 首先想乙個簡單的問題,如果...