提綱
1. 數(shù)學(xué)必備知識(shí)(向量)
2. 構(gòu)建矩陣模型
3. User-CF的思想和計(jì)算
問題域
在一個(gè)個(gè)性化推薦系統(tǒng)中,當(dāng)一個(gè)用戶A需要個(gè)性化推薦時(shí),可以先找和他有相似興趣的其他用戶,然后把那些用戶喜歡的、而用戶A沒有聽說過的物品推薦給A。這種方法成為基于用戶的協(xié)同過濾算法(User-CF)

向量
根據(jù)問題域中構(gòu)建出來的用戶-行為評(píng)分矩陣(圖1-1),我們可以構(gòu)建出用戶的向量.首先,把每一個(gè)用戶用一個(gè)向量表示,每個(gè)向量里有6個(gè)數(shù)字,分別代表該用戶對(duì)6本書喜愛程度的評(píng)分.0代表用戶沒看過這本書.圖示:

余弦相似度
接下來,計(jì)算倆個(gè)用戶的相似性,這里使用的指標(biāo)叫作余弦相似度,計(jì)算公式如下:

其中,分子部分a·b表示兩個(gè)向量的點(diǎn)積,計(jì)算方法就是兩個(gè)向量對(duì)應(yīng)元素先相乘再求和,比如:
用戶a=[4 3 0 0 5 0]和用戶b=[5 0 4 0 4 0]
a·b=4x5+3x0+0x4+0x0+5x4+0x0=40
分母部分的代表向量a的模長(zhǎng),
就是a,b兩個(gè)向量模長(zhǎng)的乘積.向量模長(zhǎng)的計(jì)算方法就是把向量
中的每個(gè)元素平方后再求和最后再開根號(hào).
于是,第一個(gè)用戶和第二個(gè)用戶的相似度就可以進(jìn)行如下計(jì)算:
余弦相似度的值在[0,1]閉區(qū)間內(nèi),值越大說明越相似,值越小說明越不相似.根據(jù)上面的計(jì)算公式,分別計(jì)算小白和其他5個(gè)同事的相似度,然后根據(jù)從大到小的順序排列.可以看到小白和前倆個(gè)同事相似度高而和最后一個(gè)同事完全不相似.

?User-CF的思想和計(jì)算
比如,和小白最相似的兩個(gè)同事的閱讀列表編號(hào)有1,3,4,5共4本書.其中1,5這兩本書小白已經(jīng)看過,3,4這兩本書哪本可能更適合小白的口味呢?
可以計(jì)算這兩個(gè)同事對(duì)這兩本書的加權(quán)評(píng)分并作為小白的可能評(píng)分,權(quán)重就是他們之間的相似度,具體計(jì)算如
下圖.通過計(jì)算可以看出編號(hào)為3的書可能更適合小白的口味.

計(jì)算步驟:
1. 先確定第一個(gè)同事?lián)碛械拈喿x列表的圖書編號(hào)為1,3,5
2. 再確定第二個(gè)同事?lián)碛械拈喿x列表的圖書編號(hào)為1,3,4,5
3. 小白自己已經(jīng)擁有的閱讀的圖書列表是1,2,5[這也是打叉的意義,自己已經(jīng)有的,不需要再推薦給自己了]
4. 最后剩余的只有編號(hào)為3和編號(hào)為4的兩本書了
5. 計(jì)算公式說明,0.75和0.63代表權(quán)重,也就是相似值.4,3,5代表的是該用戶對(duì)這本書的評(píng)分.
適用場(chǎng)景
1. 性能:適用于用戶較少的場(chǎng)合,如果用戶過多,計(jì)算用戶相似度矩陣的代價(jià)較大
2. 領(lǐng)域:實(shí)效性要求高,用戶個(gè)性化興趣要求不高
3. 實(shí)時(shí)性:用戶有新行為,不一定需要推薦結(jié)果立即變化
4. 冷啟動(dòng):在新用戶對(duì)少的物品產(chǎn)生行為后,不能立即對(duì)他進(jìn)行個(gè)性化推薦,因?yàn)橛脩粝嗨贫仁请x線計(jì)算的?
新物品上線后一段時(shí)間,一旦有用戶對(duì)物品產(chǎn)生行為,就可以將新物品推薦給其他用戶