推薦系統 協同過濾演算法

2021-10-19 21:37:33 字數 2672 閱讀 7951

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

——《推薦系統:協同過濾collaborative filtering》

協同過濾(collaborative filtering, cf)是一種非常經典的推薦系統演算法,其完全由統計學出發,挖掘使用者與物品之間的相關性。協同過濾顧名思義,先協同,即尋找相似的使用者或物品,再過濾,即篩選出符合條件的內容。

在推薦系統中,主要有兩個主體,包括使用者(user)物品(item),協同過濾也因此分為使用者協同過濾(usercf)物品協同過濾(itemcf)。簡單的羅列描述如下:

給定一組使用者 u

=u=\

u=和一組物品 p

=p=\

p=,其中 m,n

m, n

m,n 分別表示使用者和物品的數量。推薦系統的前提是獲取使用者與物品的互動資料,因此即需要獲得使用者集合 u

uu 中每個使用者 u∈u

u\in u

u∈u 與物品集合中 p

pp 中,每個物品之間的互動關係,因此這屬於乙個典型的二分圖結構。圖中,包含兩類不同的結點,分別表示使用者和物品,圖中邊的兩端結點型別不同,邊表示使用者與物品之間存在互動歷史,邊上的權值則可以表示評價(正反饋,或打分等)。因此可以選擇共現矩陣進行儲存。

共現矩陣是描述使用者與物品之間互動的矩陣,一般地,行表示某個使用者與所有物品的互動資料,列表示某個物品與所有使用者的互動資料。相比鄰接矩陣而言,其可用於儲存二分圖。

例1:給定三個使用者

\和三個物品

\,假設存在一定的互動資料(左側為二分圖,1表示存在互動,0表示不存在互動),則可以轉化為共現矩陣表示(右側圖)。

當新來乙個使用者 d

dd, 其只與2號物品有過互動,推薦系統的目標則是為這個使用者推薦其他沒有互動過的物品,例如**圖中的綠色邊是否存在。

本文中,共現矩陣記做 r=[

rup]

r=[r_]

r=[rup

​]表示第 u

uu 個使用者對物品 p

pp 的得分。其可以表示為 r=[

r1u,

r2u,

...,

rmu]

tr = [r_1^u, r_2^u, ..., r_m^u]^t

r=[r1u

​,r2

u​,.

..,r

mu​]

t,其中 riu

r_i^u

riu​

表示第 i

ii 個使用者向量;也可以表示為 r=[

r1p,

r2p,

...,

rnp]

r = [r_1^p, r_2^p, ..., r_n^p]

r=[r1p

​,r2

p​,.

..,r

np​]

, 其中 rjp

r_j^p

rjp​

表示第 j

jj 個物品的向量。

根據上面的描述,可知協同過濾中非常重要的部分是計算相似度。一般地,常見的相似度量函式有:

有了相似度函式,則可以進行協同過濾。

給定乙個共現矩陣 r=[

rup]

r=[r_]

r=[rup

​]表示第 u

uu 個使用者對物品 ppp

例2:假設例1中的共現矩陣中的元素表示使用者為物品的打分,試**使用者 d

dd 與物品 3

33 的打分。

使用者協同過濾存在兩個不足之處:

(1)通常使用者數遠遠大於物品數,因此尋找相似使用者的計算量會非常大;

(2)使用者的歷史資料向量往往非常稀疏。

(1)使用者協同過濾(usercf)是基於使用者相似度進行推薦的,使用者可以快速地了解與自己相似的其他使用者的偏好。usercf更適用於發現熱點,跟蹤熱點的趨勢;

(2)基於物品協同過濾(itemcf)是基於物品相似度進行推薦的,使用者在某一段內更傾向於尋找一類商品,根據使用者偏好的物品來尋找與之相似的物品進行推薦,更加契合使用者動機

(3)協同過濾演算法具有可解釋性,但不具有泛化能力

(4)協同過濾不能處理長尾效應以及稀疏性的資料;

(5)協同過濾只對使用者-物品的互動資料進行分析,無法有效引入其他資訊,例如使用者資訊、物品資訊等

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

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

推薦系統 協同過濾演算法

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

協同過濾推薦演算法 推薦演算法 基於協同過濾CF

前邊我們已經介紹了推薦演算法裡的基於內容的推薦演算法cb,今天我們來介紹一下基於協同的推薦演算法collaboration filtering cf 協同過濾是乙個利用群體智慧型的乙個演算法,舉乙個簡單的例子,如果放假了你想去北京玩幾天,但是不知道北京都有哪些好玩的,你會怎麼做?你可能會上網查一下的...