協同過濾演算法與推薦系統

2021-07-27 08:32:29 字數 1100 閱讀 9844

協同過濾演算法被廣泛運用到推薦系統中。協同是指根據以前的使用者行為模型來獲得推薦內容。演算法的目標是將使用者-專案的矩陣中空缺的部分盡可能填上。mllib採用交替最小二乘法(alternatingleastsquares,als)來學習使用者與專案間的潛在因子。

協同過濾演算法被廣泛運用到推薦系統中。協同是指根據以前的使用者行為模型來獲得推薦內容。演算法的目標是將使用者-專案的矩陣中空缺的部分盡可能填上。mllib採用交替最小二乘法,als (alternating least squares)。在機器學習的上下文中, als特指使用交替最小二乘求解的乙個協同推薦演算法。它通過觀察到的所有使用者給產品的打分,來推斷每個使用者的喜好並向使用者推薦適合的產品。

舉個例子,對於乙個users-products-rating的評分資料集, als會建立乙個user*product的m*n的打分矩陣。其中,m為users的數量,n為products的數量。

但是在這個資料集中,並不是每個使用者都對每個產品進行過評分,所以這個矩陣往往是稀疏的,使用者i對產品j的評分往往是空的。

als的核心就是假設:打分矩陣是近似低秩的。即,乙個m*n的打分矩陣a可以用兩個小矩陣u(m*k)和v(n*k)的乘積達到近似。

u為m*d的使用者特徵向量矩陣。v為n*d的產品特徵向量矩陣d為user/product的特徵值的數量.

關於d這個值的理解:對於每個產品,可以從d個角度進行評價,以電影為例,可以從主演,導演,特效,劇情4個角度來評價一部電影,那麼d就等於4矩陣v由n個product*d個特徵值組成。對於矩陣u,假設對於任意的使用者a,該使用者對一部電影的綜合評分和電影的特徵值存在一定的線性關係,即電影的綜合評分=( a1*d1+ a2*d2+ a3*d3 + a4 * d4)其中a1-4為使用者a的特徵值,d1-4為電影的特徵值。

然後,als再通過u,v重構a所產生的誤差。這是由frobenius範數,‖a-uv ‖ ,來量化重構誤差,就是每個元素的重構誤差的平方和。

這裡存在乙個問題,我們只觀察到部分打分,a 中的大量未知元正是我們想推斷的,所以這個重構誤差是包含未知數的。解決方案很簡單很暴力:就只看對已知打分的重構誤差吧。所以 als 的優化目標是 .而這個優化問題則是通過交替最小二乘實現,所謂的交替,就是指隨即產生u0,再用u0)解得v 0,再固定v0求解u1,如此交替進行。

協同過濾推薦演算法 協同過濾推薦演算法總結

推薦演算法具有非常多的應用場景和商業價值,因此對推薦演算法值得好好研究。推薦演算法種類很多,但是目前應用最廣泛的應該是協同過濾類別的推薦演算法,本文就對協同過濾類別的推薦演算法做乙個概括總結,後續也會對一些典型的協同過濾推薦演算法做原理總結。推薦演算法概述 1 基於內容的推薦 這一類一般依賴於自然語...

推薦系統 協同過濾演算法

協同過濾,collaborative filtering,簡稱cf,廣泛應用於如今的推薦系統中。通過協同過濾演算法,可以算出兩個相似度 user user相似度矩陣 item item相似度矩陣。為什麼叫做協同過濾?是因為這兩個相似度矩陣是通過對方來計算出來的。舉個栗子 100個使用者同時購買了兩種...

推薦系統 協同過濾演算法

推薦系統構建三大方法 基於內容的推薦content based,協同過濾collaborative filtering,隱語義模型 lfm,latent factor model 推薦。這篇部落格主要講協同過濾。推薦系統 協同過濾collaborative filtering 協同過濾 collab...