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