I am working on an academic project where I am developing a recommender system. For now, the recommender system uses matrix factorization to generate embeddings of user-item data and is a general collaborative-filtering recommender system. The architecture also involves deploying the recommender system in Kubernetes. I am trying to understand few things:
- Is Graph Database helpful when it comes to batch recommendation engine. This recommender system uses quite a lot of data and takes 3-4 hours to produce recommendations and every time a new customer is added it will have to generate embeddings every time in order to produce recommendations for that user. So I was wondering if there is a way to have more efficient collaborative filtering recommender systems using neo4j.
- I have read a lot about Neo4j producing real-time recommendations but most of the resources only mention the process that is used to get those recommendations and not really talk about deployment. I was wondering how could one deploy this in a production environment on a cloud platform. For example, if I am trying to show products that the customer will like based on their session history (using their hits/clicks) how would the architecture exactly look like. I am using Google Cloud Platform for now so it would really help if someone can shed light on to how the high-level architecture would look like (especially how the recommendations will be shown to consumers).
Any help would be really appreciated!