皮爾遜相似性或皮爾遜相關(guān)性是我們可以使用的另一種相似度量卵沉。這特別適合產(chǎn)品推薦刷晋,因?yàn)樗紤]到不同用戶將具有不同的平均評(píng)分這一事實(shí):平均而言生均,一些用戶傾向于給出比其他用戶更高的評(píng)分。由于皮爾遜相似性考慮了均值的差異邦马,因此該指標(biāo)將解釋這些差異贱鼻。
根據(jù)皮爾遜的相似度,找到與Cynthia Freeman最相似的用戶
MATCH (u1:User {name:"Cynthia Freeman"})-[r:RATED]->(m:Movie)
WITH u1, avg(r.rating) AS u1_mean
MATCH (u1)-[r1:RATED]->(m:Movie)<-[r2:RATED]-(u2)
WITH u1, u1_mean, u2, COLLECT({r1: r1, r2: r2}) AS ratings WHERE size(ratings) > 10
MATCH (u2)-[r:RATED]->(m:Movie)
WITH u1, u1_mean, u2, avg(r.rating) AS u2_mean, ratings
UNWIND ratings AS r
WITH sum( (r.r1.rating-u1_mean) * (r.r2.rating-u2_mean) ) AS nom,
sqrt( sum( (r.r1.rating - u1_mean)^2) * sum( (r.r2.rating - u2_mean) ^2)) AS denom,
u1, u2 WHERE denom <> 0
RETURN u1.name, u2.name, nom/denom AS pearson
ORDER BY pearson DESC LIMIT 100
Neo4j 做推薦 (1)—— 基礎(chǔ)數(shù)據(jù)
Neo4j 做推薦 (4)—— 基于內(nèi)容的過濾(續(xù))
Neo4j 做推薦 (5)—— 基于類型的個(gè)性化建議
Neo4j 做推薦 (6)—— 加權(quán)內(nèi)容算法
Neo4j 做推薦 (7)—— 基于內(nèi)容的相似度量標(biāo)準(zhǔn)
Neo4j 做推薦 (8)—— 協(xié)同過濾(利用電影評(píng)級(jí))
Neo4j 做推薦 (9)—— 協(xié)同過濾(人群的智慧)
Neo4j 做推薦 (10)—— 協(xié)同過濾(皮爾遜相似性)