机器学习相关——协同过滤
在現(xiàn)今的推薦技術(shù)和算法中,最被大家廣泛認(rèn)可和采用的就是基于協(xié)同過濾的推薦方法。本文將帶你深入了解協(xié)同過濾的秘密。下面直接進(jìn)入正題
1 什么是協(xié)同過濾
協(xié)同過濾是利用集體智慧的一個(gè)典型方法。要理解什么是協(xié)同過濾 (Collaborative Filtering, 簡稱 CF),首先想一個(gè)簡單的問題,如果你現(xiàn)在想看個(gè)電影,但你不知道具體看哪部,你會(huì)怎么做?大部分的人會(huì)問問周圍的朋友,看看最近有什么好看的電影推薦,而我們一般更傾向于從口味比較類似的朋友那里得到推薦。這就是協(xié)同過濾的核心思想。
換句話說,就是借鑒和你相關(guān)人群的觀點(diǎn)來進(jìn)行推薦,很好理解。
2 協(xié)同過濾的實(shí)現(xiàn)
要實(shí)現(xiàn)協(xié)同過濾的推薦算法,要進(jìn)行以下三個(gè)步驟:
收集數(shù)據(jù)——找到相似用戶和物品——進(jìn)行推薦
收集數(shù)據(jù)
這里的數(shù)據(jù)指的都是用戶的歷史行為數(shù)據(jù),比如用戶的購買歷史,關(guān)注,收藏行為,或者發(fā)表了某些評(píng)論,給某個(gè)物品打了多少分等等,這些都可以用來作為數(shù)據(jù)供推薦算法使用,服務(wù)于推薦算法。需要特別指出的在于,不同的數(shù)據(jù)準(zhǔn)確性不同,粒度也不同,在使用時(shí)需要考慮到噪音所帶來的影響。
找到相似用戶和物品
這一步也很簡單,其實(shí)就是計(jì)算用戶間以及物品間的相似度。以下是幾種計(jì)算相似度的方法:
歐幾里德距離
皮爾遜相關(guān)系數(shù)
Cosine 相似度
Tanimoto 系數(shù)
進(jìn)行推薦
在知道了如何計(jì)算相似度后,就可以進(jìn)行推薦了。
在協(xié)同過濾中,有兩種主流方法:基于用戶的協(xié)同過濾,和基于物品的協(xié)同過濾。具體怎么來闡述他們的原理呢,看個(gè)圖大家就明白了
基于用戶的 CF 的基本思想相當(dāng)簡單,基于用戶對(duì)物品的偏好找到相鄰鄰居用戶,然后將鄰居用戶喜歡的推薦給當(dāng)前用戶。計(jì)算上,就是將一個(gè)用戶對(duì)所有物品的偏好作為一個(gè)向量來計(jì)算用戶之間的相似度,找到 K 鄰居后,根據(jù)鄰居的相似度權(quán)重以及他們對(duì)物品的偏好,預(yù)測當(dāng)前用戶沒有偏好的未涉及物品,計(jì)算得到一個(gè)排序的物品列表作為推薦。 下圖給出了一個(gè)例子,對(duì)于用戶 A,根據(jù)用戶的歷史偏好,這里只計(jì)算得到一個(gè)鄰居 - 用戶 C,然后將用戶 C 喜歡的物品 D 推薦給用戶 A。
基于物品的 CF 的原理和基于用戶的 CF 類似,只是在計(jì)算鄰居時(shí)采用物品本身,而不是從用戶的角度,即基于用戶對(duì)物品的偏好找到相似的物品,然后根據(jù)用戶的歷史偏好,推薦相似的物品給他。從計(jì)算的角度看,就是將所有用戶對(duì)某個(gè)物品的偏好作為一個(gè)向量來計(jì)算物品之間的相似度,得到物品的相似物品后,根據(jù)用戶歷史的偏好預(yù)測當(dāng)前用戶還沒有表示偏好的物品,計(jì)算得到一個(gè)排序的物品列表作為推薦。下圖給出了一個(gè)例子,對(duì)于物品 A,根據(jù)所有用戶的歷史偏好,喜歡物品 A 的用戶都喜歡物品 C,得出物品 A 和物品 C 比較相似,而用戶 C 喜歡物品 A,那么可以推斷出用戶 C 可能也喜歡物品 C。
總結(jié)
以上兩個(gè)方法都能很好的給出推薦,并可以達(dá)到不錯(cuò)的效果。但是他們之間還是有不同之處的,而且適用性也有區(qū)別。下面進(jìn)行一下對(duì)比
計(jì)算復(fù)雜度
Item CF 和 User CF 是基于協(xié)同過濾推薦的兩個(gè)最基本的算法,User CF 是很早以前就提出來了,Item CF 是從 Amazon 的論文和專利發(fā)表之后(2001 年左右)開始流行,大家都覺得 Item CF 從性能和復(fù)雜度上比 User CF 更優(yōu),其中的一個(gè)主要原因就是對(duì)于一個(gè)在線網(wǎng)站,用戶的數(shù)量往往大大超過物品的數(shù)量,同時(shí)物品的數(shù)據(jù)相對(duì)穩(wěn)定,因此計(jì)算物品的相似度不但計(jì)算量較小,同時(shí)也不必頻繁更新。但我們往往忽略了這種情況只適應(yīng)于提供商品的電子商務(wù)網(wǎng)站,對(duì)于新聞,博客或者微內(nèi)容的推薦系統(tǒng),情況往往是相反的,物品的數(shù)量是海量的,同時(shí)也是更新頻繁的,所以單從復(fù)雜度的角度,這兩個(gè)算法在不同的系統(tǒng)中各有優(yōu)勢(shì),推薦引擎的設(shè)計(jì)者需要根據(jù)自己應(yīng)用的特點(diǎn)選擇更加合適的算法。
適用場景
在非社交網(wǎng)絡(luò)的網(wǎng)站中,內(nèi)容內(nèi)在的聯(lián)系是很重要的推薦原則,它比基于相似用戶的推薦原則更加有效。比如在購書網(wǎng)站上,當(dāng)你看一本書的時(shí)候,推薦引擎會(huì)給你推薦相關(guān)的書籍,這個(gè)推薦的重要性遠(yuǎn)遠(yuǎn)超過了網(wǎng)站首頁對(duì)該用戶的綜合推薦。可以看到,在這種情況下,Item CF 的推薦成為了引導(dǎo)用戶瀏覽的重要手段。同時(shí) Item CF 便于為推薦做出解釋,在一個(gè)非社交網(wǎng)絡(luò)的網(wǎng)站中,給某個(gè)用戶推薦一本書,同時(shí)給出的解釋是某某和你有相似興趣的人也看了這本書,這很難讓用戶信服,因?yàn)橛脩艨赡芨静徽J(rèn)識(shí)那個(gè)人;但如果解釋說是因?yàn)檫@本書和你以前看的某本書相似,用戶可能就覺得合理而采納了此推薦。
相反的,在現(xiàn)今很流行的社交網(wǎng)絡(luò)站點(diǎn)中,User CF 是一個(gè)更不錯(cuò)的選擇,User CF 加上社會(huì)網(wǎng)絡(luò)信息,可以增加用戶對(duì)推薦解釋的信服程度。
總結(jié)
以上是生活随笔為你收集整理的机器学习相关——协同过滤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设置CentOS 7获取动态及静态I
- 下一篇: 第四次作业 孙保平034 李路平029