互聯(lián)網(wǎng)的發(fā)展帶來(lái)了科技智能化的普及,信息化的發(fā)展帶來(lái)了數(shù)據(jù)量的龐大。文章以電影系統(tǒng)為模型對(duì)協(xié)同過(guò)濾算法進(jìn)行了深入的研究。研究了不同場(chǎng)景下的多種的相似度的計(jì)算,頁(yè)面停留時(shí)間進(jìn)行了深層次的研究,并且對(duì)冷啟動(dòng)問(wèn)題也進(jìn)行了初步的改進(jìn),從而提高推薦系統(tǒng)的準(zhǔn)確性。
【關(guān)鍵詞】協(xié)同過(guò)濾 用戶(hù)偏好 相似度 頁(yè)面停留 冷啟動(dòng) 電影推薦
隨著網(wǎng)絡(luò)的不斷發(fā)展,科技也變得越來(lái)越智能化。網(wǎng)上瀏覽的信息都將成為刻畫(huà)人物形象特征的一部分。通過(guò)協(xié)同過(guò)濾算法 的研究,可以將每個(gè)用戶(hù)和物品向量化和標(biāo)簽化,將潛在的用戶(hù)或者物品推薦給具有相似偏好的用戶(hù)。
1 協(xié)同過(guò)濾推薦算法簡(jiǎn)介
協(xié)同過(guò)濾算法是通過(guò)分析某一用戶(hù)的偏好特征,在海量用戶(hù)群體中尋找與指定用戶(hù)偏好相似的用戶(hù),融合尋找到眾多相似用戶(hù)對(duì)某一信息的綜合評(píng)價(jià),從而來(lái)預(yù)測(cè)該用戶(hù)對(duì)這一信息的喜好程度。該算法可細(xì)分為兩種:一種為基于物品的協(xié)同過(guò)濾 ,一種為基于用戶(hù)的協(xié)同過(guò)濾 。本文是以電影為模型的協(xié)同過(guò)濾算法研究。
1.1 基于用戶(hù)的協(xié)同過(guò)濾算法
基于用戶(hù)的協(xié)同過(guò)濾,對(duì)于電影推薦來(lái)說(shuō),即是根據(jù)用戶(hù)對(duì)電影的評(píng)分,發(fā)現(xiàn)與當(dāng)前用戶(hù)喜好相似的其他用戶(hù),計(jì)算用戶(hù)之間的相似度,從而基于用戶(hù)之間的相似度進(jìn)行電影的推薦。算法的主要步驟:
(1)收集用戶(hù)偏好,即用戶(hù)的觀(guān)影歷史。
(2)計(jì)算用戶(hù)之間的相似度。
相似度算法有以下幾種:
設(shè)N(u)為用戶(hù)u喜歡的電影的集合,N(v)為用戶(hù)v喜歡的電影的集合。是用戶(hù)喜歡的相同電影。
其中,p(u,i)表示用戶(hù)u對(duì)電影i的感興趣程度,S(u,K)表示和用戶(hù)u相似度最高的K個(gè)用戶(hù)的集合,N(i)表示對(duì)電影i喜歡的用戶(hù)集合,Wuv表示用戶(hù)u和用戶(hù)v的興趣相似度, 表示用戶(hù)v對(duì)電影i的興趣。
1.2 基于物品的協(xié)同過(guò)濾算法
基于物品的協(xié)同過(guò)濾,對(duì)于電影推薦來(lái)說(shuō),即根據(jù)用戶(hù)對(duì)不同電影的喜好評(píng)分進(jìn)而計(jì)算電影之間的相似度,基于電影之間的相似度進(jìn)行電影的推薦。算法的主要步驟:
(1)收集用戶(hù)偏好,即用戶(hù)的觀(guān)影歷史。
(2)計(jì)算物品之間的相似度,即計(jì)算電影之間的相似度。
相似度的計(jì)算:余弦相似度和Jaccard 公式(前文已提及)中N(u)代表的是偏愛(ài)電影u的用戶(hù)的集合,N(v)代表的是偏愛(ài)電影v的用戶(hù)的集合。是電影u和電影v都偏愛(ài)的用戶(hù)量。
(3)根據(jù)物品的相似度和用戶(hù)的歷史行為給用戶(hù)推薦物品,即根據(jù)電影的相似度和用戶(hù)的觀(guān)影歷史給用戶(hù)推薦電影。公式如下:
Puj代表了用戶(hù)u對(duì)電影j的感興趣程度,N(u)代表了用戶(hù)u感興趣的電影集合,S(i,K)是與電影i相似程度最高的K個(gè)電影集合(j是這個(gè)集合中的某一部電影),Wij代表了電影i和電影j之間的相似度,rui表示用戶(hù)u對(duì)電影i的偏好特征。
2 推薦系統(tǒng)算法的改進(jìn)與仿真
2.1 數(shù)據(jù)的采集和分析
從折線(xiàn)圖1可以更加清晰地看出,如果根據(jù)均值來(lái)判斷,這就意味著,一位典型用戶(hù)會(huì)在大部分頁(yè)面上停留接近4分鐘。所以,平均值很難具有說(shuō)服力的。但是可以確定的是,原始數(shù)據(jù)是沒(méi)有問(wèn)題的。通過(guò)觀(guān)察,可以發(fā)現(xiàn)有均值>中位數(shù),大概只有24秒左右。這不僅代表大多數(shù)時(shí)候頁(yè)面停留時(shí)間,還說(shuō)明了均值并不能反映典型用戶(hù)的訪(fǎng)問(wèn)行為。
在實(shí)際應(yīng)用當(dāng)中,最值之間的差距更加明顯,比如某個(gè)用戶(hù)可能在打開(kāi)這個(gè)頁(yè)面之后離開(kāi)電腦,很久才關(guān)閉瀏覽器或訪(fǎng)問(wèn)下一個(gè)頁(yè)面,以致于能顯著地拉高均值;比如有些用戶(hù)可能在不停地刷新某個(gè)頁(yè)面,這會(huì)導(dǎo)致有大量的記錄會(huì)在0~5秒之間:這是一種典型的右偏分布。
首先,定義異常值的屬性。根據(jù)經(jīng)驗(yàn)設(shè)定一個(gè)閾值,比如30分鐘(通用的會(huì)話(huà)過(guò)期時(shí)間),可刪除原始數(shù)據(jù)中大于1800秒的數(shù)據(jù),從而剩下數(shù)據(jù)的均值會(huì)大大減小。得到的數(shù)據(jù)雖然比以前可靠,但還是問(wèn)題是,為什么要以30分鐘為基準(zhǔn)?從異常產(chǎn)生的原因及其的分布情況出發(fā),不難發(fā)現(xiàn)數(shù)據(jù)中的異常值基本為最值及接近最值的數(shù)字,那么下一步需要考慮如何排除異常。
如果把單個(gè)用戶(hù)的所有瀏覽時(shí)間按照由小到大的順序會(huì)發(fā)現(xiàn),數(shù)據(jù)大致是呈指數(shù)大于1的冪函數(shù)2e狀態(tài)分布。但是在實(shí)際情況中,有效數(shù)據(jù)通常是大致呈指數(shù)小于1的冪函數(shù)2-e狀態(tài)。就如同看體育比賽時(shí),裁判會(huì)去掉一個(gè)最低分和一個(gè)最高分,剩下的數(shù)取平均作為運(yùn)動(dòng)員的最終得分。當(dāng)然,如果數(shù)據(jù)容量太大,不能只去掉一個(gè)最小值和一個(gè)最大值,而是要批量去掉若干最小值和最大值。所以,選擇以中位數(shù)M為參考閾值,選取
為有效數(shù)據(jù)區(qū)間,從而把區(qū)間以外的異常數(shù)據(jù)排除掉,達(dá)到自動(dòng)刪除記錄中異常值的目標(biāo)。
30分鐘為界得到的有效數(shù)據(jù)和自動(dòng)獲取有效數(shù)據(jù)的比較:
30分鐘:2.735 20.859 480.924 16.031 70.682 11.672 11.625 8.422 25.156 16.640 28.703 50.172 22.500 32.968 33.859 890.730 8.801
自動(dòng)獲取的數(shù)據(jù):2.735 20.859 16.031 70.682 11.672 11.625 8.422 25.156 16.640 28.703 50.172 22.500 32.968 33.859 8.801
從上面的比較可以看出,自動(dòng)獲取的數(shù)據(jù)將數(shù)據(jù)的范圍縮小了許多,數(shù)據(jù)基本集中在一個(gè)區(qū)間范圍內(nèi)。
2.2 統(tǒng)計(jì)頁(yè)面停留時(shí)間
首先,做一個(gè)頁(yè)面停留時(shí)間的事件,命名為【停留時(shí)長(zhǎng)】。然后,在前端新寫(xiě)一段小程序去記錄時(shí)間,觸發(fā)某個(gè)事件的時(shí)候,小程序開(kāi)始時(shí)間的記錄,觸發(fā)另一事件的時(shí)候記為結(jié)束,從而計(jì)算出停留時(shí)長(zhǎng),把值賦【停留時(shí)長(zhǎng)】事件中去。例如:想記錄【觀(guān)看電影介紹】的時(shí)長(zhǎng),在點(diǎn)擊詳細(xì)信息展開(kāi)按鈕的時(shí)候自動(dòng)觸發(fā)計(jì)時(shí)器,開(kāi)始計(jì)時(shí),然后在退出網(wǎng)頁(yè)或者關(guān)閉瀏覽器的時(shí)候停止計(jì)時(shí),然后將記錄到的時(shí)長(zhǎng)作為【觀(guān)看電影介紹】事件的屬性值上傳。
2.3 冷啟動(dòng)
冷啟動(dòng)問(wèn)題,分為兩種冷啟動(dòng)。
(1)當(dāng)用戶(hù)的可參考數(shù)據(jù)量參考價(jià)值不大的時(shí)候(比如新注冊(cè)用戶(hù),或因異常記錄剛剛申訴結(jié)束的用戶(hù)),可以選取所有用戶(hù)在該網(wǎng)頁(yè)的有效瀏覽數(shù)據(jù)的中位數(shù)作為閾值。
(2)當(dāng)新的電影需要推薦給用戶(hù)的時(shí)候,需要將新的電影通過(guò)向量空間模型展示,從而可以將該電影表示成關(guān)鍵詞向量,例如可以將新電影的關(guān)鍵詞向量分為電影類(lèi)型,導(dǎo)演,主要演員等等。
3 總結(jié)
本文以傳統(tǒng)的協(xié)同過(guò)濾算法為基礎(chǔ),針對(duì)電影推薦進(jìn)行了深入的探索及改善。著重研究了頁(yè)面停留時(shí)間對(duì)推薦系統(tǒng)的影響,,歸納總結(jié)出較為有效的去除異常值的方法,從而更好地對(duì)用戶(hù)進(jìn)行個(gè)性化推薦。同時(shí)也涉及了一部分冷啟動(dòng)方面的問(wèn)題,通過(guò)進(jìn)一步的研究,力致將三者更加完美的結(jié)合在一起,從而更好的提高推薦系統(tǒng)的準(zhǔn)確性。
(通訊作者:洪蕾)
參考文獻(xiàn)
[1]項(xiàng)亮.推薦系統(tǒng)實(shí)踐(第3版)[M].人民郵電出版社,2012.
[2]A Collaborative Filtering Recommendation Algorithm Based on Item and Cloud Model[J].Wuhan University Journal of Natural Sciences,2011.1:16-20
[3]榮輝桂,火生旭,胡春華,莫進(jìn)俠.基于用戶(hù)相似度的協(xié)同過(guò)濾推薦算法[J].通信學(xué)報(bào),2014,2:16-24.
作者簡(jiǎn)介
劉佳瑋,女,中國(guó)計(jì)算機(jī)學(xué)會(huì)會(huì)員,就讀于金陵科技學(xué)院軟件工程(嵌入式培養(yǎng))專(zhuān)業(yè),曾獲銳聘之星程序設(shè)計(jì)大賽三等獎(jiǎng)、軟通動(dòng)力編程大賽三等獎(jiǎng)等獎(jiǎng)項(xiàng)。
作者單位
金陵科技學(xué)院軟件工程學(xué)院 江蘇省南京市 211169