I have a website built with Node.js and MongoDB. Documents are structured something like this:
{
price: 500,
location: [40.23, 49.52],
category: "A"
}
Now I want to create a recommendation system, so when a user is watching item "A" I can suggest to him/her similar items "B", "C" and "D".
The thing is collection of items is changing relatively often. New items are created every hour and they do exist only for about a month.
So my questions are:
- What algorithm should I use? Cosine similarity seems to be the most suitable one.
- Is there a way to create such recommendation system with Node.js or it's better to use python/R?
- When similarity score must be calculated? Only once (when a new item is created) or I should recalculate it every time a user visits an item page?