[推薦演算法]Slope One演算法
根據 Slope One演算法,?= 4 - [( 5 - 10 ) + ( 3 - 6 )] / 2 = 8 解釋一下,X對B的評分比A多5, Y對B的評分比A多3,那麼平均B比A多4分,所以Z的B的評分就是 其對A的評分加上平均值。 很容易理解。找到 所有對 itemA和itemB評過分的使用者,算出rating平均差值,那麼我們就可以估算出只對itemA評分的使用者Z對itemB的評分。從而對使用者進行推薦。 這個演算法還有一個優點,就是當資料量很小的時候,也可以進行較準確的推薦,一定程度上解決了冷啟動的問題。
來看 Weighted Slope One演算法 如果有10個使用者同時對 itemA和itemB打分,100個使用者同時對 itemC 和 itemB 打分,那麼Rating A -> B 和Rating C->B所佔的比重也不一樣 (10* (Za - RatingA->B) + 100 ( Zc - RatingC->B) ) / (10 + 100) = result 舉個例子:
我們要計算使用者Z對B的評分,X和Y都對A和B進行的評分,同時X對C和B也進行了評分 RatingA->B =[ (3-6) + (5-4) ] / 2 = -1, 平均A比B少1分,根據這個側面,Z對A評分為3,算出Z對B的評分為4 RatingC->B = 7-6 = 1, 平均C比B多1分, 根據這個側面,Z對C評分為2,那麼Z對B的評分為1 根據加權Slope One演算法: Z對B的評分 =( 2 * 4 + 1 * 1)/ ( 2 + 1) =3 還有一個BI-polar SlopeOne演算法,是基於使用者對item的喜好(like or dislike)的演算法,還在研究中。