嚴(yán)春燕+戴仕明



摘 要: 互聯(lián)網(wǎng)產(chǎn)生的海量信息帶來了“信息超載”的問題。文章基于協(xié)同過濾算法對用戶喜好進行了研究。闡述了協(xié)同過濾的基本思想,對用戶喜好數(shù)據(jù)的采集及預(yù)處理過程進行了研究;在數(shù)據(jù)分析過程中提出幾種常用的計算相似度的方法并進行了比較;研究了協(xié)同過濾算法的兩個分支的不同適用場景,并與基于內(nèi)容的算法進行比較,對現(xiàn)有算法存在的不足提出了改進。
關(guān)鍵詞: 協(xié)同過濾; 用戶喜好; 數(shù)據(jù)采集; 預(yù)處理; 相似度
中圖分類號:TP391.9 文獻標(biāo)志碼:A 文章編號:1006-8228(2017)07-56-04
Research on user preferences using collaborative filtering algorithm
Yan Chunyan1, Dai Shiming2
(1. College of Computer and Information, Jiangxi Agricultural University, Nanchang, Jiangxi 330045, China;
2. College of Software, Jiangxi Agricultural University)
Abstract: The massive information generated by the Internet brings the problem of "information overload". This paper studies user preferences by using collaborative filtering algorithm; Describes the basic idea of collaborative filtering, and studies the acquisition and pretreatment of user preference data; in the process of data analysis, several common used similarity algorithms are proposed and compared; the two branches of the collaborative filtering algorithm in different applicable scenes are studied, and compared with the content-based algorithm to improve the existing algorithms.
Key words: collaborative filtering; user preferences; data acquisition; pretreatment; similarity
0 引言
隨著互聯(lián)網(wǎng)的快速發(fā)展,數(shù)據(jù)信息正在成指數(shù)量級增長,而用戶很難從中找到自己感興趣的內(nèi)容,這就形成了“信息超載(Information overload)[1]”的問題。為了很好地解決用戶需求與互聯(lián)網(wǎng)龐大的數(shù)據(jù)之間的矛盾,推薦算法是解決這個矛盾的主要技術(shù)。
協(xié)同過濾算法[2]是目前最廣泛應(yīng)用的算法。協(xié)同過濾算法常被用于分析用戶潛在感興趣的物品,這些依據(jù)來自于其他相似用戶對產(chǎn)品的喜好分析。簡單來說就是:物以類聚,人以群分。
1 協(xié)同過濾的基本思想
協(xié)同過濾算法最早出現(xiàn)于1992年,被用于郵件過濾系統(tǒng),是目前較為流行的推薦算法。協(xié)同過濾具有預(yù)測和推薦的功能,協(xié)同過濾算法的出現(xiàn)標(biāo)志著推薦系統(tǒng)的產(chǎn)生。協(xié)同過濾也被認(rèn)為是集體智慧[2]的典范,不需要對項目進行特別處理,而是通過用戶建立起物品與物品之間的聯(lián)系,喜歡相同物品的用戶之間更有可能具有相同的喜好。協(xié)同過濾算法分為兩類,一類是基于用戶(User-based)的協(xié)同過濾算法,另一類是基于物品(Item-based)的協(xié)同過濾算法。
1.1 基于用戶的協(xié)同過濾算法
基于用戶的協(xié)同過濾算法[3]的基本原理是根據(jù)所有用戶對物品的評分,發(fā)現(xiàn)與當(dāng)前用戶喜好相似的其他用戶,在應(yīng)用中一般采用K-最近鄰(K-Nearest-
Neighbor,KNN)算法[4],然后,基于這些相似用戶的喜好信息,為當(dāng)前用戶進行推薦。這個算法主要包括兩步:
⑴ 找到和當(dāng)前用戶喜好相似的用戶集,計算兩個用戶的喜好相似度;
⑵ 找到這個用戶集中用戶喜歡的,且當(dāng)前用戶沒有聽說過的物品推薦給當(dāng)前用戶。
1.2 基于物品的協(xié)同過濾算法
基于物品的協(xié)同過濾算法[5]的基本原理是根據(jù)用戶的所有歷史喜好數(shù)據(jù)來計算物品的相似度,然后把與用戶喜歡的物品相似的物品推薦給用戶。這個算法主要包括兩步:
⑴ 計算物品之間的相似度;
⑵ 根據(jù)物品的相似度和用戶的歷史行為給用戶推薦物品。
2 數(shù)據(jù)采集及預(yù)處理過程
2.1 數(shù)據(jù)采集的方式
用戶喜好數(shù)據(jù)的采集可以從下面表1這幾種用戶行為方式中發(fā)現(xiàn)用戶喜好,并通過分組和加權(quán)這兩種不同的組合方式對用戶行為進行處理。
⑴ 以Web日志的方式。從用戶給網(wǎng)站服務(wù)器發(fā)出http請求開始,網(wǎng)站服務(wù)器就會在Log文件中添加一條記錄,記錄遠程主機名(或IP地址)、發(fā)送請求的日期、請求返回的狀態(tài)等。隨后網(wǎng)站服務(wù)器會以http形式將頁面返回到用戶的瀏覽器內(nèi),之后會有專門的處理服務(wù)器對大量Log文件進行處理,產(chǎn)生網(wǎng)站分析報表,如圖1所示。
[網(wǎng)站服務(wù)器][瀏覽器網(wǎng)頁][處理服務(wù)器][網(wǎng)站分析報] [http請求][http形式返回][Log文件]
不同的數(shù)據(jù)采集方式有不同的優(yōu)缺點,表2對三鐘數(shù)據(jù)采集方式的優(yōu)缺點進行了詳細(xì)的比較,為各網(wǎng)站開發(fā)者在選擇數(shù)據(jù)采集方式時作為參考。
2.2 數(shù)據(jù)預(yù)處理
大量的原始數(shù)據(jù)中存在著很多模糊的、重復(fù)的、不完整的、有噪聲的數(shù)據(jù),會嚴(yán)重影響到數(shù)據(jù)分析的執(zhí)行效率,甚至可能導(dǎo)致最后結(jié)果誤差很大,因此,在進行數(shù)據(jù)分析之前,需要對原始數(shù)據(jù)進行預(yù)處理,提高數(shù)據(jù)的質(zhì)量。數(shù)據(jù)預(yù)處理主要包括數(shù)據(jù)清理,數(shù)據(jù)集成,數(shù)據(jù)變換與數(shù)據(jù)規(guī)約等技術(shù)。如圖4所示:
3 數(shù)據(jù)分析
3.1 相似度的計算
預(yù)處理之后,得到了用戶喜好,再通過用戶喜好來計算相似用戶或物品,然后基于用戶或者物品進行推薦。基于用戶和基于物品這兩種算法都需要計算相似度,下面介紹幾種常用的相似度計算方法:
⑴ 歐幾里得距離
假設(shè)X,Y是n維空間的兩個點,
X=(x1,x2,x3,…,xn);
Y=(y1,y2,y3,…,yn);
則它們的歐幾里德距離:
則相似度,需要在歐幾里得距離上進行一個轉(zhuǎn)換:
⑵ 皮爾遜相關(guān)系數(shù)(Pearson correlation coefficient)
皮爾遜相關(guān)系數(shù)常用于計算兩個變量之間的緊密程度,取值在[-1,+1]之間,相關(guān)系數(shù)的絕對值越大,相關(guān)性越強,相關(guān)系數(shù)大于0是正相關(guān),相關(guān)系數(shù)小于0是負(fù)相關(guān)。
假設(shè)X,Y是n維空間的兩個點,
X=(x1,x2,x3,…,xn);
Y=(y1,y2,y3,…,yn);
則它們的皮爾遜相關(guān)系數(shù):
⑶ 余弦相似度(Cosine similarity)
用空間向量中兩個向量夾角的余弦值,來表示兩個向量之間的差異。取值在[-1,1]之間,余弦值越接近1,兩個向量夾角越小,越相似。
假設(shè)X,Y是兩個n維向量,
X=(x1,x2,x3,…,xn);
Y=(y1,y2,y3,…,yn);
則它們的余弦相似度:
3.2 基于用戶和基于物品的適用場景
根據(jù)User-based基本原理可以看出User-based更加社會化,更傾向于推薦相似用戶中的熱點。在新聞類網(wǎng)站中,用戶喜好往往是其次,熱門程度和時效性是新聞推薦的重點,所以User-based給用戶推薦和他有相同喜好的人關(guān)注的新聞,這樣既保證了熱點和時效性,又兼顧了個性化。
但在圖書推薦系統(tǒng)、電子商務(wù)和電影網(wǎng)站等方面,用戶數(shù)量往往遠遠大于物品數(shù)量,如果User-based需要消耗更大的空間,此時基于Item-based能發(fā)揮更大的作用。因為在這些網(wǎng)站中,用戶的喜好一般比較固定,Item-based能更好地給用戶推薦相似物品,增加用戶對推薦系統(tǒng)的信任度。
3.3 與基于內(nèi)容算法進行比較
基于內(nèi)容算法[6]的核心思想是依據(jù)物品或內(nèi)容的元數(shù)據(jù),再通過元數(shù)據(jù)尋找物品或內(nèi)容的相似度,然后基于用戶歷史喜好記錄,給用戶推薦相似物品。基于內(nèi)容的算法只考慮了物品本身的性質(zhì),將物品按標(biāo)簽方式形成集合,基于用戶的歷史喜好記錄推薦相似物品,如果你選擇了集合中的一個,則向你推薦集合中的其他物品。而協(xié)同過濾算法融合了集體智慧的思想,在大量用戶行為中尋找答案,既基于用戶購買的歷史記錄,又基于用戶的相似度來推薦物品,這樣基于協(xié)同算法推薦的精確度就會更高。
3.4 現(xiàn)有算法的不足以及改進
本文的協(xié)同過濾算法,在實際推薦系統(tǒng)中存在冷啟動問題,在基于用戶的協(xié)同過濾算法中存在用戶活躍度問題[7],以及在基于物品的協(xié)同過濾算法中存在物品流行度問題[7]。為解決這三類問題,提出以下幾種改進方法。
對于冷啟動問題,可以分為新用戶冷啟動問題、新物品冷啟動問題以及新系統(tǒng)冷啟動問題。
⑴ 對于新用戶冷啟動問題,可以把熱門排行結(jié)果推薦給新用戶,待用戶數(shù)據(jù)充足之后,再進行個性化推薦。
⑵ 對于物品冷啟動問題,可以通過計算物品內(nèi)容信息來得到物品相似度,再給用戶推薦與內(nèi)容相似的物品。可以將物品表示成一個關(guān)鍵詞向量,將這些專有名詞和其他一些重要詞組成關(guān)鍵詞集合,最后對集合中的關(guān)鍵字進行排名,再用TF-IDF公式[8]計算關(guān)鍵詞的權(quán)重,最后生成關(guān)鍵詞向量。
⑶ 對于新系統(tǒng)冷啟動問題,在沒有用戶行為數(shù)據(jù)和物品內(nèi)容信息計算相似度的情況下,可以使用專家標(biāo)記的方式。
用戶活躍度問題改進,用戶活躍度能隱式地推斷用戶對未知物品喜好的可能性。本文定義用戶活躍度與其瀏覽過的物品數(shù)量成正比,那么活躍度低的用戶產(chǎn)生的用戶行為,對計算物品相似度更加有作用,這就需要懲罰用戶的活躍度。
物品流行度問題改進,物品流行度也可以隱式地表示用戶喜好。本文定義物品流行度與瀏覽該物品的用戶數(shù)量成正比,那么冷門物品被瀏覽更能計算出用戶的相似度,因此需要懲罰物品的流行度。
4 結(jié)束語
本文從數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、相似度計算、算法適用場景這幾方面進行了深入的研究,并將基于內(nèi)容算法與協(xié)同過濾算法進行了比較,之后對現(xiàn)有算法存在的不足進行改進,提高了算法的準(zhǔn)確度和覆蓋率。下一步將研究如何將基于用戶和基于物品的協(xié)同過濾算法根據(jù)不同的權(quán)重結(jié)合起來,在考慮用戶相似度的同時也兼顧物品的相似度,以此提高推薦的精確度。
參考文獻(References):
[1] 李書寧.互聯(lián)網(wǎng)信息環(huán)境中信息超載問題研究[J].情報科學(xué),
2005.10:149-152
[2] 項亮.推薦系統(tǒng)實踐(第3版)[M].人民郵電出版社,2012.
[3] 榮輝桂,火生旭,胡春華,莫進俠.基于用戶相似度的協(xié)同過濾
推薦算法[J].通信學(xué)報,2014.2:16-24
[4] 余小鵬,周德翼.一種自適應(yīng)k-最近鄰算法的研究[J].計算機
應(yīng)用研究,2006.2:70-72
[5] A Collaborative Filtering Recommendation Algorithm
Based on Item and Cloud Model[J]. Wuhan University Journal of Natural Sciences,2011.1:16-20
[6] 陳潔敏,湯庸,李建國,蔡奕彬.個性化推薦算法研究[J].華南師
范大學(xué)學(xué)報(自然科學(xué)版),2014.5:8-15
[7] 王錦坤,姜元春,孫見山,孫春華.考慮用戶活躍度和項目流行
度的基于項目最近鄰的協(xié)同過濾算法[J].計算機科學(xué),2016.12:158-162
[8] Belkin N,Croft B. Information filtering and information
re-trieval[J]. Communications of the ACM,1992.35(12):29-37