看到“內(nèi)容推薦”幾個(gè)字的時(shí)候,腦海里第一時(shí)間浮出的印象:猜你喜歡,購(gòu)買(mǎi)這本書(shū)的用戶還購(gòu)買(mǎi)了...,瀏覽這件商品的用戶還瀏覽了哪些商品等等諸如此類;“協(xié)同過(guò)濾推薦”剛好用于解決這樣的問(wèn)題——發(fā)現(xiàn)用戶與產(chǎn)品的匹配度,將產(chǎn)品或服務(wù)準(zhǔn)確的推薦給用戶;
基于用戶過(guò)濾
將“相似”的用戶挖掘出來(lái),并將用戶已經(jīng)購(gòu)買(mǎi)過(guò)的產(chǎn)品推薦和他“相似”的 用戶。例如:一個(gè)30歲的男性消費(fèi)過(guò)一塊手表,則可以對(duì)另一個(gè)與其相似的年齡大男性 推薦同樣的手表。
基于產(chǎn)品過(guò)濾
過(guò)濾“相似”的商品,用戶消費(fèi)時(shí),將他已經(jīng)購(gòu)買(mǎi)過(guò)的產(chǎn)品的“相似”產(chǎn)品 推薦給他。例如:你購(gòu)買(mǎi)或搜索過(guò)《人人都是產(chǎn)品經(jīng)理》,則會(huì)對(duì)你推薦《產(chǎn)品經(jīng)理手冊(cè)》、《結(jié)網(wǎng)》、《啟示錄》等相關(guān)的產(chǎn)品經(jīng)理的書(shū)籍。
基于協(xié)同過(guò)濾
將用戶對(duì)產(chǎn)品的的偏好數(shù)據(jù)進(jìn)行建模,對(duì)喜好“相似”的用戶進(jìn)行過(guò)濾,也可以對(duì)屬性“相似”的產(chǎn)品過(guò)濾,或者對(duì)未知的“用戶-產(chǎn)品”進(jìn)行喜好、相似度計(jì)算,這種過(guò)濾是“協(xié)同”的。例如:如果用戶對(duì)購(gòu)買(mǎi)過(guò)多款產(chǎn)品或觀看了多篇文章,可以基于模型對(duì)那些他未購(gòu)買(mǎi)過(guò)的商品或未閱讀的文章估計(jì)他的喜好度,進(jìn)而用于產(chǎn)品推薦;
收集用戶偏好
對(duì)某商品的用戶對(duì)于某商品的購(gòu)買(mǎi)、評(píng)分、對(duì)某文章轉(zhuǎn)發(fā) 、點(diǎn)擊量、頁(yè)面停留的時(shí)間等可以反映用戶偏好。購(gòu)買(mǎi)、評(píng)分、投票、 轉(zhuǎn)發(fā)等,可以比較精確地得到用戶對(duì)于商品的偏好信息,而點(diǎn)擊量、頁(yè)面停留則含有噪聲,需要對(duì)這類數(shù)據(jù)事先進(jìn)行處理,而對(duì)于用戶評(píng)論,則需要進(jìn)行文本分析從得知用戶的情感傾向,從而可以一定程度地反應(yīng)用戶的偏好程度;
評(píng)分矩陣
在得到每個(gè)用戶的偏好后,就可以進(jìn)一步分析用戶之間的相似情況;為了便于理解,我們將用戶對(duì)平臺(tái)內(nèi)所有商品的喜好度設(shè)為0,然后將用戶購(gòu)買(mǎi)過(guò)的商品與其的喜好度設(shè)為1;

其中,列表示某用戶,行表示商品,單元格內(nèi)的分?jǐn)?shù)代表用戶對(duì)商品的偏好。現(xiàn)在用戶yang對(duì)6種商品偏好為0、1、1、0、1、1,需要找出與該用戶最相似的前三個(gè)用戶

相似度計(jì)算
杰卡德(Jaccard)相似度用于衡量?jī)蓚€(gè)集合的相似情況,即兩個(gè)集合的交集元素的個(gè) 數(shù)除以并集元素的個(gè)數(shù)。

其中A、B代表兩個(gè)集合。
我們用易于理解對(duì)杰卡德(Jaccard)相似度公式計(jì)算相似度哈;
基于用戶對(duì)協(xié)同過(guò)濾
沿用之前的數(shù)據(jù),對(duì)于新用戶yang,其對(duì)6個(gè)商品的購(gòu)買(mǎi)情況為1、1、0、0、0、1,通過(guò)Jaccard相似度計(jì)算yang于其他用戶對(duì)相似度,從大到小排序;

取前三個(gè)用戶為鄰近用戶,即用戶sun、用戶zhao、用戶Li。此時(shí)以每個(gè)鄰近用戶的相似度為權(quán)重,與相應(yīng)物品的喜好度進(jìn)行相乘,計(jì)算出商品推薦打分。例如,對(duì)于yang未購(gòu)買(mǎi)過(guò)而其他用戶購(gòu)買(mǎi)過(guò)的商品C,其商品推薦打分計(jì)算為?

前三個(gè)臨近用戶中:sun和zhao對(duì)商品c對(duì)喜好度為1,li對(duì)商品c的喜好度為0;
因此用戶yang的商品C推薦得分 = 1 * 0.67 + 1 * 0.5 + 0 * 0.5 = 1.17;
用戶yang的商品D推薦得分 = 1 * 0.67 + 0 * 0.5 + 0 * 0.5 = 0.67
用戶yang的商品E推薦得分 = 1 * 0.67 + 1 * 0.5 + 0 * 0.5 = 1.17
基于商品協(xié)同過(guò)濾
依然通過(guò)Jaccard公式計(jì)算商品與商品間的相似度,即兩個(gè)集合的交集元素的個(gè) 數(shù)除以并集元素的個(gè)數(shù)。
例如 計(jì)算商品A與商品B對(duì)相似度,交集數(shù)量為3個(gè),并集為9,因此相似度為3/9 = 0.33

以此類推

剛剛提到的用戶yang對(duì)6種商品偏好為0、1、1、0、1、1,需要找出與該用戶最相似的前三個(gè)用戶

基于商品的協(xié)同過(guò)濾會(huì)以商品的相似度為權(quán)重,在本例中以用戶yang的商品喜好度為基礎(chǔ) ,計(jì)算商品推薦打分,例如用戶yang未購(gòu)買(mǎi)的商品C,其計(jì)算公式應(yīng)為:
0 * 0.56 + 1 * 0.56 + 1 * 1 + 0 * 0.33 + 1 * 0.33 + 1 * 0.44 = 2.33;
商品D = 0.99
商品E = 1.99
因此,基于商品的協(xié)同過(guò)濾會(huì)依次向用戶yang推薦商品C、商品E和商品D。