使用協同濾波(Collaborative Filtering)實現內容推薦系統
協同濾波可以同時使用不同使用者與內容之間的相似度進行內容推薦,這樣可以產生一些意料之外的推薦結果。也就是說,如果使用者A和使用者B具有類似的興趣,它可以向使用者A推薦一些使用者B喜歡的內容。另外,協同濾波模型可以自動地學習對使用者和內容的特徵表達(Embedding),而不需要手工來設計這些特徵。假設內容的特徵表達是固定的,那麼該模型可以學習對使用者的特徵表達來最佳地解釋使用者的偏好。這樣的結果就是,具有類似偏好地使用者在特徵空間中也是相近的。類似的,如果使用者的特徵表達是固定的,我們便可以學習對內容的特徵表達,來最佳的闡釋使用者對內容的反饋。這樣的結果就是,被類似使用者喜歡的電影,他們在特徵空間中也是相近的。
假設我們有個使用者以及個可以推薦的內容(例如音樂、電影、軟體和商品等等),使用者對內容的反饋則儲存在一個矩陣當中。代表使用者對內容的反饋,它可以代表使用者是否喜歡該內容,也可以是對內容的評分。那麼,協同濾波(Collaborative Filtering)則會學習以下的內容:
- 一個使用者的特徵表達矩陣, 其中第行是對第個使用者的特徵表達,是使用者特徵表達的維度
- 一個內容的特徵表達矩陣,其中第行是對第個內容的特徵表達,是內容特徵表達的維度
協同濾波模型學習的目標是,使得矩陣乘積近似逼近於反饋矩陣,也就是說使得每一對特徵向量的內積,都儘可能地接近的值。於是,我們可以寫出如下的目標函式,並設法求出使其達到最小值的引數和。
其中,即反饋矩陣中非空元素的下標集合。可以看到,這也是一個矩陣分解問題,即把矩陣分解成兩個矩陣的乘積,可以通過奇異值分解(Singular Value Decomposition)的方法求解。但由於實際應用中,使用者僅能對少量的內容進行反饋,矩陣是極其稀疏的,大多數時候奇異值分解並不能很好的解決該問題。不過,我們還是可以使用一種通用的隨機梯度下降法(Stochastic Gradient Descent)來迭代求解該問題,一個基於Tensor Flow的實現例子在這裡可以找到。
協同濾波模型的優點有:1)不需要專業領域的知識,因為對使用者和內容的特徵表達都是通過自動學習完成的。2)通過比較相似使用者的偏好,該模型可以幫助使用者發現新的感興趣內容。3)它只需要一個使用者反饋矩陣作為輸入,因此實現起來相對簡潔。但是該模型的缺點在於,如果某內容在訓練時沒有出現,則無法對向使用者推薦該內容,這是由於在訓練時要計算每一對使用者特徵向量和內容特徵向量的內積。
內容推薦系統在音樂、電影、軟體、交友及電子商務網站上有著很廣泛的應用,它極大的方便了使用者對感興趣內容的探索,並一定程度提高了對網站內容的流量。隨著人們對該話題研究的深入,也出現了很多基於深度學習的實現方法,例如圖神經網路(Graph Neural Network)。對該方法的介紹將會在之後的文章中對其進行討論。
相關文章
- 協同過濾實現小型推薦系統
- 推薦系統入門之使用協同過濾實現商品推薦
- 神經圖協同過濾(Neural Graph Collaborative Filtering)Filter
- 【Datawhale】推薦系統-協同過濾
- 基於專案的協同過濾推薦演算法(Item-Based Collaborative Filtering Recommendation Algorithms)演算法FilterGo
- 推薦系統與協同過濾、奇異值分解
- 協同過濾在推薦系統中的應用
- 基於使用者的協同過濾來構建推薦系統
- 推薦協同過濾演算法演算法
- SimRank協同過濾推薦演算法演算法
- 實現基於內容的電影推薦系統—程式碼實現
- 協同過濾演算法概述與python 實現協同過濾演算法基於內容(usr-it演算法Python
- Collaborative FilteringFilter
- 協同過濾推薦演算法總結演算法
- 推薦召回--基於物品的協同過濾:ItemCF
- 【轉】推薦系統演算法總結(二)——協同過濾(CF) MF FM FFM演算法
- 推薦:免費開源企業內部協同即時系統Openfire
- 推薦系統--完整的架構設計和演算法(協同過濾、隱語義)架構演算法
- 物品推薦(基於物品的協同過濾演算法)演算法
- 基於內容的推薦系統演算法演算法
- 機器學習:推薦系統(五. 以矩陣分來解協作過濾)機器學習矩陣
- 【小白學推薦1】 協同過濾 零基礎到入門
- [R]可能是史上程式碼最少的協同過濾推薦引擎
- 【JAVA】助力數字化營銷:基於協同過濾演算法實現個性化商品推薦Java演算法
- 矩陣分解在協同過濾推薦演算法中的應用矩陣演算法
- 如何實現內網多電腦同屏協同?內網
- 過濾FilteringFilter
- 《推薦系統實踐》筆記 01 推薦系統簡介筆記
- 如何為「紐約時報」開發基於內容的推薦系統
- 協同過濾的R語言實現及改進R語言
- 協同過濾(CF)演算法詳解和實現演算法
- 推送開發實戰:APP如何實現跟隨使用者不同場景,實現不同的內容推薦APP
- Spark推薦系統實踐Spark
- 協同過濾筆記筆記
- PbootCMS內容列表只顯示推薦/置頂/頭條內容boot
- 推薦系統
- 分期商城實時推薦系統
- 關於《推薦系統實踐》