再看《推薦系統實踐》這本書的時候,在usercf與itemcf的推薦原理上,不是很清晰,特此做了一下總結:
使用者:A,B,C,D
商品:a,b,c,d,e
案例一:我們有如下購買行為記錄,分别計算矩陣usercf 與 itemcf相似度矩陣
A:a,b,d
B:a,c
C:b,e
D:c,d,e
分别計算usercf 與 itemcf的相似度矩陣:
1,計算usercf:
第一步:建立倒排表:
a:A,B
b:A,C
c:B,D
d:A,D
e:C,D
第二步:根據,總體的倒排關系(注意:這裡不是在倒排表上一行一行計算矩陣相似),建立使用者的相似度矩陣:
從倒排表整體統計使用者之間的相似次數:
A:(B,C,D),B-1次,C-1次,D-1次
B:(A,D),A-1次,D-1次
C:(A,D),A-1次,D-1次
D:(A,B,C)A-1次,B-1次,C-1次
進而得到基于user的相似度矩陣為:
A B C D
A 0 1 1 1
B 1 0 0 1
C 1 0 0 1
D 1 1 1 0
2,計算itemcf:
第一步:根據最初矩陣計算,全量計算每個item(a,b,c,d,e)之間的相關性
A:a,b,d
B:a,c
C:b,e
D:c,d,e
得到:
a:(b,d,c),b-1次,d-1次,c-1次,
b:(a,d,e),a-1次,d-1次,e-1次
c:(a,d,e)a-1次,d-1次,e-1次
d:(a,b,c,e)a-1次,b-1次,c-1次,e-1次
e:(b,c,d)b-1次,c-1次,d-1次
itemcf的相似度矩陣為
a b c d e
a 0 1 1 1 0
b 1 0 0 1 1
c 1 0 0 1 1
d 1 1 1 0 1
e 0 1 1 1 0
在這個樣例中,大家發現在除去e以外,usercf 與 itemcf的矩陣是相同的。
案例二:我們有如下購買行為記錄,分别計算矩陣usercf 與 itemcf相似度矩陣
A:a,b,d
B:b,c,e
C:c,d
D:b,c,d
E:a,d
1,計算usercf:
第一步:建立倒排表:
a:A,E
b:A,B,D
c:B,C,D
d:A,C,D,E
e:B
第二步:根據,總體的倒排關系(注意:這裡不是在倒排表上一行一行計算矩陣相似),建立使用者的相似度矩陣:
從倒排表整體統計使用者之間的相似次數:
A:(E,B,D,C,D,E),B-1次,C-1次,D-2次,E-2次
B:(A,D,C,D),A-1次,C-1次,D-2次
C:(B,D,A,D,E),A-1次,B-1次,D-2次,E-1次
D:(A,B,B,C,A,C,E),A-2次,B-2次,C-2次,E-1次
E:(A,A,C,D),A-2次,C-1次,D-1次
進而得到基于user的相似度矩陣為:
A B C D E
A 0 1 1 2 2
B 1 0 1 2 0
C 1 1 0 2 1
D 2 2 2 0 1
E 2 0 1 1 0
2,計算itemcf:
第一步:根據最初矩陣計算,全量計算每個item(a,b,c,d,e)之間的相關性:
A:a,b,d
B:b,c,e
C:c,d
D:b,c,d
E:a,d
得到:
a:(b,d,d),b-1次,d-2次
b:(a,d,c,e,c,d),a-1次,c-2次,d-1次,e-1次
c:(b,e,d,b,d),b-2次,d-2次,e-1次
d:(a,b,c,b,c,a),a-2次,b-2次,c-2次
e:(b,c)b-1次,c-1次
itemcf的相似度矩陣為
a b c d e
a 0 1 0 2 0
b 1 0 2 1 1
c 0 2 0 2 1
d 2 2 2 0 0
e 0 1 1 0 0
與usercf矩陣相比較:
A B C D E
A 0 1 1 2 2
B 1 0 1 2 0
C 1 1 0 2 1
D 2 2 2 0 1
E 2 0 1 1 0
結論:
1,usercf 比itemcf多了一次按照商品的倒排,來建立使用者之間的關系
2,itemcf與usercf 無矩陣轉置等關系,次元各不相同。