摘 要: 協同過濾算法是推薦系統中應用最廣泛的算法,隨著用戶數量和物品數量的不斷增加,傳統的協同過濾算法不能滿足推薦系統的實時需求。本文提出了一種融合隱語義模型的聚類協同過濾算法。首先利用隱語義模型分解評分矩陣,然后在分解后的矩陣上利用傳統的聚類算法聚合相同類別的物品,最后在相同類別的物品之間進行基于項目的協同過濾推薦。實驗結果表明,該算法有效減少了推薦時間,同時在一定程度上提高了算法精度。
關鍵詞: 推薦系統;隱語義模型;聚類算法;協同過濾
0 引言
隨著互聯網的蓬勃發展,用戶數量和信息量都呈指數型增長。不同的用戶都有其個性化的需求,如何快速地在這些復雜環境中找出那些滿足用戶興趣的信息,成為亟需要解決的問題。而推薦系統的功能就是針對不同的用戶根據其背景和喜好主動推薦信息來滿足用戶的潛在興趣[1]。
協同過濾技術是現在推薦系統中應用最廣的算法[2],它的主要思想是根據用戶對相似項目的評分來預測對目標項目的評分[3-4]。基于這種假設,大部分用戶對兩個商品i和j的評分都很相似,那么就可以考慮將其中一個商品推薦給只對另一個商品有評分的用戶。基于項目的協同過濾找到目標項目的若干近鄰,產生推薦列表。傳統的協同過濾算法是利用用戶的歷史行為,來預測用戶對目標用戶的評分。需要在整個用戶空間上去尋找最近鄰居。隨著電子商務的不斷發展,用戶數量和物品的數量都呈指數型增長,這樣傳統的算法就不能夠滿足推薦的實時需求。同時,傳統的協同過濾算法只是考慮了用戶的歷史行為,而沒有考慮物品之間的關系。針對這些問題,本文提出了一種融合隱語義模型的聚類協同過濾算法,區別于傳統的基于項目聚類的協同過濾[5],本文算法沒有直接在用戶評分矩陣上進行聚類,而是先將評分矩陣進行分解,將得到的矩陣再進行聚類,這樣聚類的維度降低,同時還考慮了物品類別信息,提高了推薦系統實時響應速度。
1 相關研究
隱語義模型(LFM)是由Simon Funk在Netflix Prize后公布的一個算法[6]。該算法的理論基礎是運用SVD矩陣分解,把用戶評分矩陣R分解為兩個低維矩陣,然后用這兩個低維矩陣去估計目標用戶對項目的評分。
傳統的SVD分解需要一個簡單的方法補全稀疏矩陣,使矩陣R變成一個稠密矩陣。這種需求在推薦系統面對大數據量的情況時需要很大的存儲空間。同時SVD矩陣分解的算法復雜性特別高,在高維稠密數據中進行矩陣分解特別慢。LFM正是為解決這兩個問題而提出的。
LFM將評分矩陣R分解為兩個低維矩陣相乘:
其中P∈Rf×m,Q∈Rf×n,而且f<<m,從而達到降維的目的。
可以直接通過訓練集的觀察值,利用最小化RMSE來學習P、Q。損失函數定義為:
其中λ‖Pi‖2+λ‖Qj‖2是用來防止過擬合的正規化項。
最小化上面的損失函數可以采用隨機梯度下降算法,通過求參數的偏導數來找出最快下降方向,然后迭代地不斷去優化參數。
首先求出參數的偏導數:
然后,根據隨機梯度下降算法,得到迭代計算公式:
當損失函數達到最小值時,迭代結束,得到矩陣P和Q,分別為用戶對隱藏類別的興趣權重和項目屬于不同隱藏類別的權重。
2 融合隱語義模型的聚類協同過濾
基于項目聚類的協同過濾算法能夠有效地降低計算維度,減少運算時間。然而這種算法也存在不足之處。在大型的電子商務系統中,項目的數量很大,例如淘寶上的商品數量多達8億之多。同時用戶的評分項目又很少,一般不會達到1%,所以實際上數據是很稀疏的。直接對這些稀疏的數據進行聚類,效果不是很理想,維度過大。因此提出了融合隱語義模型的聚類算法。
2.1 項目聚類
傳統的協同過濾算法沒有考慮物品本身的類別信息,如電影的分類、電商物品的類別等。因此可以利用物品的類別,把相同類別的物品聚類到一塊來推薦給喜歡這類物品的用戶。但是,實際的推薦系統中物品的數量很大,很難人為地去給物品進行分類,同時有些物品的屬性特殊,無法歸屬于特定的類別。
利用LFM可以把用戶的評分矩陣R分解為兩個矩陣:一個是用戶對不同類別物品的喜愛權重矩陣P,另一個是不同物品屬于不同類別的權重Q。然后可以在矩陣Q上進行傳統的聚類算法[7-8],把矩陣Q分解為K個簇{C1C2…Ck},每一個簇就代表一種物品的類別,這樣就自動生成了原來很難定義的類別。
算法1:融合隱語義模型的聚類算法
輸入:用戶-項目評分矩陣R,聚類個數S
輸出:S個聚類簇
方法:
(1)利用公式(1)、(2)、(3)對評分矩陣R進行矩陣分解,得到用戶矩陣P和項目矩陣Q:
(2)設矩陣Q中項目集合為I={i1,i2…in};
(3)在項目矩陣中任意選擇S個項目,作為初始聚類的中心CC={cc1,cc2…ccs};
(4)將S個聚類集合初始化為空,C={c1,c2…cs};
(5)repeat
for each item i in I
for each item c in CC
計算i和c的相似性
end for
計算i最近的聚類中心,把i加到最近的聚類
集合中
end for
for each item cc in CC
計算新的聚類中心
end for
until聚類中心不變
(6)返回。
2.2 產生推薦
為了得到目標用戶的若干鄰居,需要度量不同用戶的相似性,從而找出與目標用戶最相似的鄰居集合。相似性度量的方法主要有兩種:
(1)余弦相似性:采用標準的向量余弦夾角計算,用戶Ui和Uj的相似度Sim(Ui,Uj)的計算方法如下:
(2)改進的余弦相似性:為了減少不同用戶評分尺度上的差異,改進的余弦相似性用減去平均分后的分數計算相似性:
在進行協同過濾的最近鄰查詢時,目標用戶的最近鄰居大部分分布在與目標項目相似性最高的若干個簇里,因此不需要在整個項目空間上尋找最近鄰。算法的復雜度降低。
假設目標項目I的最近鄰居集合用Ci={Ci1,Ci2…Cik}表示,采用余弦相似度計算相似性,則用戶U對項目I的預測評分計算如下:
sim(i,j)表示項目i和j之間的相似度,Ri和Rj表示對項目i和j的平均評分。
算法2:利用聚類結果產生推薦
輸入:用戶-項目評分矩陣R,項目聚類C,聚類中心CC,鄰居個數K,相似度閾值Y。
輸出:目標用戶U對目標項目I的評分。
方法:
(1)初始化與目標項目I相似的集合SC為空
(2)for item cc in CC
(3)if sim(cc,i)>Y
(4)cc所在的簇加入集合SC
(5)end for
(6)for item i in SC
(7)計算sim(i,I)
(8)end for
(9)選出相似度最高的k個鄰居。
(10)利用公式6,計算用戶U對目標I的評分。
(11)返回。
利用算法2可以得到用戶對項目的預測評分,從中選出評分最高的K個項目推薦給用戶。
3 實驗結果和分析
3.1 數據集及度量標準
實驗采用MovieLens站點(http://movielens.umn.edu)提供的數據集[9]。該站點是一個基于Web的研究性推薦系統,用于接受用戶對電影的評分并且提供相應的推薦列表,該數據集包含943個用戶對1 682部電影的100 000個評分,評分的范圍為1~5,而且每個用戶至少有20個評分。整個實驗根據需要進一步劃分數據集,其中的80%作為訓練集,20%作為測試集。
實驗采用絕對偏差MAE作為度量標準,通過計算預測評分與實際評分之間的差別來度量算法的準確性,MAE越小,算法的準確性越高。設通過算法預測的評分為,用戶實際的評分為{P1,P2…Pk},則MAE的定義為:
3.2 實驗結果與分析
本文提出的算法并不保證能夠找到目標項目的所有最近鄰,因為聚類形成的簇中心可能遠離目標項目。下面把所提出改進算法與基于項目的協同過濾進行比較,使用MAE和運行時間作為度量標準。
固定鄰居個數k=20,可以得到不同聚類個數對MAE的影響,如圖1所示。
如圖1所示,當k=15時,本文提出的算法的MAE達到最小值,比基于項目的協同過濾還要小,但隨著聚類個數的增加,MAE開始變大。
固定聚類個數c=10,可以得到不同鄰居個數對算法MAE的影響,如圖2所示。
如圖2所示,算法在不同鄰居個數上的MAE與Item-Base保持基本相同,在某些鄰居點上算法的MAE更小。
固定鄰居個數k=20,可以得到不同聚類個數產生推薦的時間,如圖3所示。
如圖3所示,融合LFM的聚類協同過濾算法的運行時間遠遠小于傳統的協同過濾算法,能夠更好地滿足推薦的實時要求。
4 結論
針對傳統的基于項目的協同過濾算法在面對大數據量的情況下表現出的性能不佳,以及基于項目聚類算法不能很好地應對稀疏數據、沒有考慮物品類別等問題,本文提出了一種融合隱語義模型的聚類協同過濾算法。算法首先對用戶的評分數據進行矩陣分解,得到物品的類別信息;然后在分解后的矩陣上進行傳統的聚類算法。實驗表明,本文提出的算法可以有效提高推薦系統的響應速度。同時由于利用了隱語義模型,推薦的過程中加入了商品類別信息,從而在一定程度上提高了算法的精度。
參考文獻
[1] SCHAFER J B, KONGSTAN J A, RIED J. E-commerce recommendation applications[J]. Data Mining and Knowledge Discovery, 2001,5(1/2):115-153.
[2] 王國霞,劉賀平.個性化推薦系統綜述[J].計算機工程與應用,2012,48(7):66-76.
[3] SARWAR B, KARYPIS G, KONSTAN J, et al. Item-based collaborative filtering recommendation algorithms[C]. In Proceedings of the Tenth International World Wide Web Conference, 2001:285-295.
[4] DESHPANDE M, KARYPIS G. Item-based top-N recommendation algorithms[J]. ACM Transactions on Information Systems, 2004,22(1):143-177.
[5] 鄧愛林,左子葉,朱楊勇.基于項目聚類的協同過濾推薦算法[J].小型微型計算機,2004,25(9):1665-1670.
[6] DUMAIS S T. Latent semantic analysis[J]. Annual Review of Information Science and Technology, 2004,38(1):188-230.
[7] DEMPSTER A, LAIRD N, RUBIN D. Maximum likelihood from incomplete data via the EM algorithm[J]. Journal of the Royal Statistical Society, 1977,38(1):1-38.
[8] THIESSON B, MEEK C, CHICKERING D, et al. Learning mixture of DAG models[C]. Proceeding of the Fourteenth Conference on Uncertainty in Articial Intelligence, 1998:504-513.
[9] MILLER B N, ALBERT I, LAM S K, et al. Movie lens unplugged: experiences with an occasionally connected recommender system[C]. Proceedings of the 8th International Conference on Intelligent User Interfaces, New York, 2003: 263-266.