Slope One :簡單高效的協同過濾演算法

破棉襖發表於2015-01-13
 Slope One;和其它類似演算法相比, 它的最大優點在於演算法很簡單, 易於實現, 執行效率高, 同時推薦的準確性相對很高; 

基本概念
Slope One的基本概念很簡單, 例子1, 使用者X, Y和A都對Item1打了分. 同時使用者X,Y還對Item2打了分, 使用者A對Item2可能會打多少分呢?
User Rating to Item 1 Rating to Item 2
X 5 3
Y 4 3
A 4 ?

根據SlopeOne演算法, 應該是:4 - ((5-3) + (4-3))/2 = 2.5. 
解釋一下. 使用者X對Item1的rating是5, 對Item2的rating是3, 那麼他可能認為Item2應該比Item1少兩分. 同時使用者Y認為Item2應該比Item1少1分. 據此我們知道所有對Item1和Item2都打了分的使用者認為Item2會比Item1平均少1.5分. 所以我們有理由推薦使用者A可能會對Item2打(4-1.5)=2.5分;


加權演算法

有n個人對事物A和事物B打分了,R(A->B)表示這n個人對A和對B打分的平均差(A-B),有m個人對事物B和事物C打分了,R(C->B)表示這m個人對C和對B打分的平均差(C-B),注意都是平均差而不是平方差,現在某個使用者對A的打分是ra,對C的打分是 rc,那麼A對B的打分可能是:

rb = (n * (ra - R(A->B)) + m * (rc - R(C->B)))/(m+n)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29754888/viewspace-1400438/,如需轉載,請註明出處,否則將追究法律責任。

相關文章