推薦系統(tǒng)系列之協(xié)同過濾

一、協(xié)同過濾基本思想

舉個例子,某天你想去看電影,但又不知道看哪部,想請朋友推薦,大部分會傾向于去問與自己有相同偏好的朋友,因為這類朋友推薦的電影很大可能性你也 會喜歡。協(xié)同過濾就是基于這種思想,偏好相似的用戶喜歡的物品或內(nèi)容也是相似的。該推薦算法是基于用戶對物品的偏好信息,衡量用戶之間的相似性或物品之間 的相似性,然后進(jìn)行推薦,將相似用戶喜歡的物品推薦給當(dāng)前用戶,或基于當(dāng)前用戶的喜好將相似物品推薦給用戶。以上這兩種就是常見的基于用戶的協(xié)同過濾和基 于物品的協(xié)同過濾。

二、常用的距離度量

如何衡量用戶之間、物品之間的相似性呢?我們用距離來刻畫相似性,距離越小,說明相似性越高,距離越大,說明相似性越低。常用的距離度量有歐式距離、余弦距離等。

由于距離在很多算法中均會用到,比如分類算法、聚類算法等,我們會有個專門的章節(jié)來介紹距離度量。

三、基于用戶的協(xié)同過濾

我們以上圖為例來簡要說明基于用戶的協(xié)同過濾是如何工作的。用戶A偏好物品A,用戶B偏好物品A、B、C,用戶C偏好物品B、C,我們將其轉(zhuǎn)換為以下的表格:

用戶物品A物品B物品C

用戶A100

用戶B111

用戶C011

假設(shè)我們要對用戶C進(jìn)行推薦,基于歐式距離,計算用戶C與用戶A、用戶B的距離(每一行代表一個用戶的偏好信息),發(fā)現(xiàn)用戶C與用戶B的距離最小,相似度最高,說明他們的偏好比較一致,可將用戶B偏好的而用戶C還沒有偏好的物品A推薦給用戶C。

四、基于物品的協(xié)同過濾

接下來我們以上圖為例來簡要說明基于物品的協(xié)同過濾是如何工作的。用戶A偏好物品A,用戶B偏好物品B、物品C,用戶C偏好物品C,同樣地,我們將其轉(zhuǎn)為表格形式:

用戶物品A物品B物品C

用戶A100

用戶B011

用戶C001

假設(shè)我們想推薦物品B,基于歐式距離計算物品B與物品A、物品C之間的距離(每一列代表一個物品的信息),發(fā)現(xiàn)物品B與物品C的距離最小,相似性最高,說明物品B、C比較相似,可能是同類產(chǎn)品,我們可將物品B推薦給喜歡物品C卻還沒對物品B表示出偏好的用戶C。

五、協(xié)同過濾的基本步驟

STEP1 : 收集數(shù)據(jù)

收集用戶對物品的偏好信息,主要包含以下內(nèi)容:

顯式的用戶反饋:用戶在瀏覽、使用網(wǎng)站以外,顯式提供的反饋信息,比如用戶對物品的評分、評論等;

隱式的用戶反饋:用戶在瀏覽、使用網(wǎng)站時產(chǎn)生的數(shù)據(jù),隱式地反映了用戶的偏好,比如訂購信息、瀏覽信息等;

用戶表達(dá)偏好的方式有很多種,不同應(yīng)用也是大不相同的。比如對文章的轉(zhuǎn)發(fā)、收藏,對活動的投票等也是顯式的偏好反饋,用戶瀏覽網(wǎng)站時停留時間也是一種隱式的反饋,不過這一個指標(biāo)的噪聲較大。

STEP2 : 數(shù)據(jù)預(yù)處理

如何整合顯式、隱式的偏好反饋信息呢?有以下兩種方法。

分組:顯式反饋為一組,隱式反饋為一組,然后基于不同的行為組別分別計算用戶之間或物品之間的相似度;亞馬遜上在商品詳情頁進(jìn)行推薦時一般都會有‘購買此商品的顧客也同時購買’和‘看過此商品后顧客買的其他商品’這兩種方式的推薦;

加權(quán):根據(jù)不同行為反映的偏好程度進(jìn)行加權(quán),顯式反饋的權(quán)重大,隱式權(quán)重小,得到用戶對物品的總體偏好;

整合后如何進(jìn)行數(shù)據(jù)預(yù)處理呢?

減噪:這些偏好反饋信息可能會存在大量的噪聲,可應(yīng)用常用的減噪算法進(jìn)行清洗,或作離群點識別等;

歸一化: 不同偏好行為對應(yīng)的數(shù)據(jù)的量綱會有很大的差別,需統(tǒng)一量綱;

聚類:在用戶數(shù)或物品數(shù)很大的情況下,可先對用戶和物品進(jìn)行聚類,形成用戶群和物品群,將單個用戶對單個物品的偏好轉(zhuǎn)換為某個用戶群對某個物品群的偏好,可降低整個推薦算法的計算量,當(dāng)然推薦精度也會受影響;

STEP3 : 最近鄰搜索

基于用戶的協(xié)同過濾:計算用戶之間的相似性,找到與當(dāng)前用戶最相似的N個用戶,如果在數(shù)據(jù)預(yù)處理中進(jìn)行了聚類,就計算用戶群之間的相似性,找到最鄰近的N個用戶群;

基于物品的協(xié)調(diào)過濾:計算物品之間的相似性,找到與當(dāng)前物品最相似的N個物品,同樣的,如果進(jìn)行了聚類,就計算物品群之間的相似性,找到最鄰近的N個物品群;

STEP4 : 進(jìn)行推薦

基于用戶的協(xié)同過濾:將最近鄰用戶(群)中出現(xiàn)頻次較高并且還未出現(xiàn)在當(dāng)前用戶偏好列表中的物品推薦給當(dāng)前用戶;

基于物品的協(xié)同過濾:根據(jù)當(dāng)前用戶的偏好列表,將最相似的物品推薦給用戶;

六、應(yīng)用場景

基于用戶的協(xié)調(diào)過濾和基于物品的協(xié)調(diào)過濾都能達(dá)到不錯的效果,但在應(yīng)用場景上會存在一定的區(qū)別。如果一個電商網(wǎng)站,用戶的數(shù)量遠(yuǎn)超物品的數(shù)量, 同時物品信息相對穩(wěn)定,在這種情況下基于物品的協(xié)同過濾算法更合適,不僅計算量小,而且不用頻繁更新;如果是一個新聞或者是博客網(wǎng)站,內(nèi)容數(shù)據(jù)偏多且不斷 更新,這時候可采用基于用戶的協(xié)同過濾。從計算的復(fù)雜度來講,這兩個算法各有優(yōu)勢,我們要根據(jù)不同系統(tǒng)的各自特點去選擇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容