Here are a few links I found online while researching this.
https://www.elastic.co/blog/looking-at-content-recommendation-through-a-search-lens
https://mapr.com/blog/inside-look-at-components-of-recommendation-engine/#.VSv8o_nF81J
1–10 of 12 posts
Here are a few links I found online while researching this.
https://www.elastic.co/blog/looking-at-content-recommendation-through-a-search-lens
https://mapr.com/blog/inside-look-at-components-of-recommendation-engine/#.VSv8o_nF81J
Take a look at the Annoy library https://github.com/spotify/annoy , implemented by a developer from Spotify. It uses K-nearest neighbour to find close data points.
At the moment, keras embedding model, multiprocessing, annoy, and emitting csv (object id, other object id, score) as a batch process and loading it in my database. Queryti recommend. This trades a prebuilt for near instant runtime and — near Nothing net new to break.
I’m working at commercial — 2-5 million item — scale, not ‘internet scale’ billions of items.
Hope that helps.
Also you can check 'Mahout in Action' book - part 1 is about recommendations and it explains everything that you need to know for building your own recommendation engine.
Take a look at the Annoy library https://github.com/spotify/annoy , implemented by a developer from Spotify. It uses K-nearest neighbour to find close data points.
Not quite what I am asking. I am looking for system architecture not specific algorithms.Btw, We do use annoy and various other algorithms for our recommendations.
1. Decide whether you are okay with a batch approach or an online learning approach or a hybrid.
2. Start simple with a batch approach (similar to what you are doing):
a) Get features ready from your dataset (assuming you have interaction data) : Pre-processing via some big data framework (Map Reduce, Data flow etc)
b) Build a vector space and nearest neighbors datastructures.
c) Stick both into a database optimized for reads
d) Stick a service in front of it and serve.
Once you are happy with 2, you can try out variations involving either online updates to your recommender system which involves changes to the type of database you might want to optimize. etc
Earlier quoted context omitted.
Not quite what I am asking. I am looking for system architecture not specific algorithms.Btw, We do use annoy and various other algorithms for our recommendations.
Not really sure what your central question then is: The general theme for building a recommender system architecture is: 1. Decide whether you are okay with a batch approach or an online learning approach or a hybrid. 2. Start simple with a batch approach (similar to what you are doing): a) Get features ready from your dataset (assuming you have interaction data) : Pre-processing via some big data framework (Map Redu…
Earlier quoted context omitted.
Not quite what I am asking. I am looking for system architecture not specific algorithms.Btw, We do use annoy and various other algorithms for our recommendations.
Not really sure what your central question then is: The general theme for building a recommender system architecture is: 1. Decide whether you are okay with a batch approach or an online learning approach or a hybrid. 2. Start simple with a batch approach (similar to what you are doing): a) Get features ready from your dataset (assuming you have interaction data) : Pre-processing via some big data framework (Map Redu…
Earlier quoted context omitted.
Not really sure what your central question then is: The general theme for building a recommender system architecture is: 1. Decide whether you are okay with a batch approach or an online learning approach or a hybrid. 2. Start simple with a batch approach (similar to what you are doing): a) Get features ready from your dataset (assuming you have interaction data) : Pre-processing via some big data framework (Map Redu…
I guess I should elaborate a little more on what I am looking for. I already have a hybrid approach working where batch processing informs and improves the ALS models and these models are stored in memory to do some (Near)real time recommendations. The attractive bit about using something like Solr is that the user behavior on the app/front-end is easily modeled in terms or query parameters that could help serve bett…
In the past, I have helped build Lambda architectures where we use a batch model to build a content vector space, build estimates of users in batch, update those in realtime (using PubSub/Kafka) based on user feedback.
Other online mechanisms could be to use Contextual Bandits: e.g. use context in terms of user interactions with the several arms of the bandits being recommendation choices etc. This interaction data can be used to continuously improve your policy. Of course, the key benefit over a Matrix Factorization setup where the interaction matrix is continuously rebuilt over time based on new data, is the in built exploration which minimizes regret.