neo4j - Recommendation Engine: Cosine Similarity vs Measuring %difference between each vector component -


Let's say I have a database of users who evaluate different products on a scale of 1-5, our recommendation engine users Recommends products that are very similar on the basis of other users' preferences. My first method was to use cosine parity to find similar users, and user evaluation was to be used as vector components only. The main problem with this approach is that it only measures the vector angles and does not take into account the rating scale or magnitude.

My question is: Can someone explain (Users) to measure percentage difference between vector components Why is there a better cosine similarity to identify user similarity?

For example, why not do this:

  n = 5 wire one = (1,4,4) B = (2,3,4) similarity (A, B) = 1 - ((| 1-2 | / 5) + (| 4-3 | / 5) + (| 4-4 | / 5)) / 3 = .86667   

Instead of cosine similarity:

  a = (1,4,4) = B (2 , 3,4) Cosciemiracy (A, B) = (1 * 2) + (4 * 3) + (4 * 4) / sqrt ((1 ^ 2) + (4 ^ 2) + (4 ^ 2)) * SQLT ((2 ^ 2) + (3 ^ 2) + (4 ^ 2)) = 979    

I find an answer that all the recommendations do not work on the rating on problems 1-5, and all the originals Do not work feature space at all, but sometimes low-rank facility in place. The answer is changed there.

I do not think cosine is a great metric for equality ratings. The rating is not something that you want to normalize. It makes a bit more sense if you consider each user's rating as normal 0.

I'm not sure whether this type of modified L1 is optimal to use distance, either to look at the normal Euclidean / L2 distance. In the end, the empirical test will tell you that the most for your data What is good

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -