推薦系統02 基於近鄰的推薦

2021-07-24 11:00:54 字數 4645 閱讀 4859

推薦策略

近鄰推薦方法的關鍵點

推進系統要找到的是最優項(best item)和最優n項(top-n)

符號定義說明

使用者集u(user),物品集i(item),評價分數集合s(score)ru

i 是使用者u對i的評分iu

是使用者u評分過的物品集合ui

是對i打過分的使用者集合iu

v 同時被使用者u和v打過分的物品集合ui

j 同時對物品i和j打過分的使用者集合

常用準確率評判指標

平均絕對誤差(mae) ma

e(f)

=1|r

test

|∑ru

i∈rt

est|

f(u,

i)−t

ui|

均方根誤差(rmse) r

mse(

f)=1

|rte

st|∑

rui∈

rtes

t(f(

u,i)

−tui

)2‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾√

對於2元的評分用準確率召回率

如果使用者u和使用者v在其他物品上的評分很相似,呢麼使用者u對新物品i的評分和使用者v對物品i的評分也是相似的

若其他使用者v對物品i和j的評分相似,則使用者u對對物品i和j的評分相似

基於近鄰的推薦有2種方法,基於使用者和基於物品

基於物品

基於近鄰的方法直接應用評分資料進行**,基於模型的推薦利用評分來學習**模型

**評分r̂ 

ui可以利用使用者u的k近鄰,即與使用者u相似度w最高的k個使用者且這些使用者對物品i有打分ni

(u) 計算r̂ 

ui=1

|niu

|∑v∈

ni(u

)rvi

這個計算方法存在問題:每個使用者評價相似程度不同,就是說和使用者u更像的使用者,他的評分代表性更強,所以需要加入相似程度作為權重,並進行權重標準化r̂ 

ui=∑

v∈ni

(u)w

uvrv

i∑v∈

ni(u

)|wu

v|另外使用者評分的準則不一樣,這個後面進行討論

本質上是通過近鄰使用者對於評分的投票,找到使用者u對物品i最有可能的評分

再加如相似度權重,得到計算方法vi

r=∑v

∈ni(

u)δ(

rvi=

r)wu

v 其中r

vi=r

則δ(r

vi=r

) 為1,否則為0。找到vi

r 最大的呢個就是**評分值

通過評分相近的物品來**定義n

u(i)

r̂ u

i=∑j

∈nu(

i)wi

jruj

∑j∈n

u(i)

|wij

| 對於分類的方法,類似基於使用者的方法vu

i=∑j

∈nu(

i)δ(

ruj=

r)wi

j 基於近鄰方法的三個要點

每個使用者的評價標準不一樣,例如乙個使用者喜歡打3~5分,另乙個使用者只打1分和5分,所以需要更一般的方法作為整體評分標準

均值中心化

思想是通過和平均分比較,得到乙個正或者負的評分,最後和平均分結合得到評分

在基於使用者的推薦中,**使用者評分為

r̂ ui

=r¯u

+∑v∈

ni(u

)wuv

(rvi

−r¯v

)∑v∈

ni(u

)|wu

v|在基於物品的推薦中,**評分為

r̂ ui

=r¯i

+∑j∈

nu(i

)wij

(ruj

−r¯j

)∑j∈

nu(i

)|wi

j|使用者對物品的喜好可以用均值中心化後的評分的正負值情況,可以表明對物品的喜好厭惡程度

z-score標準化

引入標準差,相比均值中心化移除不同平均值導致的誤差,進一步考慮了不同使用者不同評分範圍帶來的差異

基於使用者的**評分

r̂ ui

=r¯u

+σu∑

v∈ni

(u)w

uv(r

vi−r

¯v)/

σu∑v

∈ni(

u)|w

uv|

在基於物品的推薦中,**評分為 r

̂ ui=

r¯i+

σi∑j

∈nu(

i)wi

j(ru

j−r¯

j)/σ

i∑j∈

nu(i

)|wi

j|

可能遇到的問題

基於關聯的相似度

資訊檢索中,計算a,b的相似度,會表示成向量模式,然後計算向量的余弦向量相似度 co

s(xa

,xb)

=xat

xb∥x

a∥∥x

b∥基於物品的推薦,將使用者表示為向量,則使用者間相似度 cv

(u,v

)=co

s(xu

,xv)

=∑i∈

iuvr

uirv

i∑i∈

iur2

ui∑i

∈ivr

2vi‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾√

再把評分間的均值和方法考慮進去,得到皮爾遜相關係數(pearson correlation,pc) pc

(u,v

)=∑i

∈iuv

(rui

−r¯u

)(rv

i−r¯

v)∑i

∈iu(

rui−

r¯u)

2∑i∈

iv(r

vi−r

¯v)2

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾√同理基於使用者的推薦計算物品相似度 pc

(i,j

)=∑u

∈uij

(rui

−r¯i

)(ru

j−r¯

j)∑u

∈uij

(rui

−r¯i

)2∑u

∈uij

(ruj

−r¯j

)2‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

‾‾‾‾

皮爾遜係數正反表示正相關或負相關的強度

利用皮爾遜係數和先做z-score再做余弦相似不一樣!!!因為皮爾遜考慮的是使用者評分交集的標準差,不是全部

其他的度量相似度的方法

均方差(mean squared difference),使用使用者u,v對相同物品評分差的平方和的均值的倒數作為使用者相似度 ms

d(u,

v)=|

iuv|

∑i∈i

uv(r

ui−r

vi)2

一般分2步,先用全域性過濾保持最有可能近鄰,再在**的每一步中都選最合適的近鄰

過濾預選近鄰

不會儲存所有使用者的非零相似度,因此需要取一小部分有重要影響的作為推薦依據

top-n過濾

選取最近的n個作為依據,如果n選的大,需要大量記憶體儲存,**效能下降。如果n選的太小,會降低推薦的覆蓋,導致一些物品永遠無法被推薦

閾值過濾

給定相似度閾值,但是確定閾值又成問題

負值過濾

一般情況負關聯性比正關聯性的可靠性要差,正相關表達是用乙個團體的,但是負相關對於不同團體卻無法衡量,也沒有不同團體差異的資訊。因此過濾掉負相關也是一種手段

用於**的近鄰數:k

經驗值區間在20~50

科學的方法還是不同的k值進行交叉驗證

推薦系統 02 基於協同過濾的推薦演算法

推薦系統 初識 01筆記鏈結 基本原理 根據所有使用者對物品的偏好,發現與當前使用者口味和偏好相似的使用者群,並推薦近鄰所偏好的物品。採用knn的演算法 基於k個鄰居的歷史偏好資訊,得到偏好相同的使用者群,並為使用者進行推薦。使用者a,對商品a,b,e的評價都很高,但是對c,d的評價很低,使用者b,...

推薦系統 基於降維的近鄰協同

降維方法能夠同時提高近鄰方法的質量和效率。尤其是在稀疏矩陣中,即當兩個使用者共同評價過的物品很少,也能夠計算其低維潛在向量之間的距離。由於降維能夠根據潛在因子提供稠密的低維表示。因此,這種模型被稱為潛在因子模型。包括 1 建立資料的降維表示可以基於行的潛在因子也可以基於列的潛在因子。換句話說,對資料...

推薦系統 基於UGC的推薦

使用者用標籤描述對物品的看法,所以使用者生成標籤 ugc 是聯絡使用者和物品的紐帶,也是反應使用者興趣的重要資料來源。乙個使用者標籤行為的資料集一般有乙個三元組 使用者,物品,標籤 的集合組成,其中一條記錄 a,b,c 表示使用者a給物品b打上了標籤c 乙個簡單的演算法 統計每隔使用者最常用的標籤 ...