王子安
摘 要:本文探討當一個主題網站積累了足夠多的用戶數據量時。結合基于用戶和物品的協同過濾算法,對網站信息進行篩選,準確的推薦給用戶感興趣的內容。
關鍵詞:個性化推薦;推薦引擎;熱度推薦;協同算法
1 前言
隨著信息技術和互聯網的發展。人們逐漸從信息匱乏走到了信息泛濫的時代。在這個時代,無論是信息消費者還是信息生產者都遇到了很大的挑戰。推薦系統聯系用戶和信息,一方面幫助用戶發現對自己有價值的信息,一方面能夠讓信息自動展現在對它有興趣的用戶面前,從而實現信息消費者和信息生產者雙贏。
2 推薦系統概要
2.1 推薦系統和其他系統的關系
推薦系統要發揮強大的作用,除了推薦系統本身,主要還依賴于兩個條件——界面展示和用戶行為數據。好的推薦界面共性有:通過一定方式展示物品,主要包括物品的標題、縮略圖和介紹等。很多推薦界面都提供了推薦理由,理由可以增加用戶對推薦結果的信任度。推薦界面還需要提供一些按鈕讓用戶對推薦結果進行反饋,這樣才能讓推薦算法不斷改善用戶的個性化推薦體驗。
2.2 推薦系統基本架構
設置引擎的好處:
(1)可以方便的應用于其他系統
(2)可以方便地增加/刪除引擎,控制不同引擎對推薦結果的影響。對于絕大多數需求,只需要通過不同的引擎組合實現。
(3)可以實現推薦引擎級別的用戶反饋。每一個推薦引擎其實代表了一種推薦策略,而不同的用戶可能喜歡不同的推薦策略。
3 算法說明
個性化推薦算法選擇:
協同過濾系統分為基于用戶(user)和基于物品(item)兩種。基于用戶的算法主要是依據尋找和該用戶近似的用戶,通過近似用戶的興趣愛好進行推薦。基于物品的算法主要是尋找到近似的物品進行推薦。
基于用戶的協同過濾算法特點是,推薦內容的種類會比較豐富,缺點是多數為熱門物品,長尾物品可能不會出現在推薦內容中,另外就是用戶過少的前提下會失去精準度。基于物品的協同過濾算法特點是,推薦的內容種類會比較單一,但不會漏掉長尾物品。所以,這點上來看,這兩種算法從一定程度上是互補的。
根據統計,使用用戶協同算法和使用物品協同算法從最終結果上來看,會有50%的一致性,另外50%可能是毫不相干的。
基于主題網站的情況,選擇用戶協同算法較為合適,就目前情況而言,可以使用用戶和物品協同過濾的混搭。
3.1 基于用戶的算法
(1)尋找近似用戶
把目標用戶和數據庫的用戶進行比較,找出和目標用戶最近似的N個用戶。實際操作過程中,我們會發現,當用戶數量級較大的時候,計算時間會非常長。但實際情況是,數據庫的大部分用戶可能是沒有交集的,所以沒必要計算所有用戶,只計算和目標用戶有交集的用戶。
(2)選取有交集的用戶
我們可以通過有過相同行為(例如關注過同一個話題)的用戶來進行篩選。這里篩選的條件需要推敲,篩選條件太簡單還是會造成運算量太大,篩選條件太過嚴格會使得目標用戶得到推薦的門檻變得較高。所以,推薦以下方式進行篩選,條件間為邏輯或關系,即滿足其一即可:
優先級說明:優先級表示優先判斷的條件,如果滿足,無需判斷條件2,如果不滿足,繼續判斷條件2。條件不宜過多,會導致初篩運算量巨大。條件亦不宜過少,過少會導致初篩力度不夠,后期運算量巨大。
(3)計算用戶相似度
用戶相似度計算方法一般采用余弦或者杰卡德,這邊推薦使用杰卡德(jaccard)算法,因為根據用戶行為的那些量并不是特別好余弦化,而且兩者結果很接近。杰卡德算法一般應用于網頁去重,過濾相似度很高的新聞,算法也比較好理解,就是兩個集合的交集除以兩個集合的并集,所得結果就是兩個集合的相似度,數學表達式就是:|S ∩ T|/|S ∪ T|(相似度集合見“用戶偏好”)。這里算出用戶相似度后,要從高到低排序,并且設定一個閥值。例如,我們將閥值設定為5,那么就是按相似度由高到低排序取前5名用戶作為最相似的5個用戶,并且列出相似度值,如下圖“表1”所示:
(4)推薦好友、話題、文章
首先對于推薦的用戶、話題、文章都要設置上限,假設用戶設定為3、話題設定為5、文章設定為5。
①推薦好友
根據“表1”,由高到低的順序,依次推薦用戶1~用戶3。
②推薦話題、文章
我們假設有如下數據:
那么話題推薦度的算法如下,
話題1推薦度 = 用戶1相似度 + 用戶3相似度 = 0.7+ 0.6 = 1.3。
話題2推薦度 = 用戶1相似度 + 用戶2相似度 + 用戶4相似度 + 用戶5相似度 = 2.42。
以此類推得到,話題3推薦度是0.7,話題4推薦度是1.3,話題5推薦度是0.65,話題6推薦度是1.07,話題7推薦度是0.57。由高到低排序依次選取5個,分別是話題2、話題1、話題4、話題6和話題3。如下:
話題 推薦度
話題2 2.42
話題1 1.3
話題4 1.3
話題6 1.07
話題3 0.7
3.2 基于物品的算法
一些準備工作同基于用戶的算法,這里不再重復。
計算物品相似度公式說明:
果變的不準確。這樣的話,可以修改公式為,懲罰物品j的權重。相似度值肯定小于等于1。
3.3 兩者結合的算法
根據統計,使用用戶協同算法和使用物品協同算法從最終結果上來看,會有50%的一致性,另外50%可能是毫不相干的。這里可以使用2種算法結果的并集,并且將交集作為重點推薦。
例如,基于用戶的推薦列表為 a,b,c,d,e,f
基于物品的推薦列表為,a,x,y,b,f,z
重點推薦:a,b,f
推薦:c,d,e,x,y,z
參考文獻
[1]項亮.推薦系統實踐[M].人民郵電出版社,2012.
[2](奧地利)詹尼士.推薦系統[M].人民郵電出版社,2013.
(作者單位:貴陽市第一中學)