天天看點

usercf 與 itemcf的原理分析

再看《推薦系統實踐》這本書的時候,在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 無矩陣轉置等關系,次元各不相同。

繼續閱讀