Home

Awesome

#RecommendationsBundle

A Built In Recommendations Engine with Symfony and MongoDB

The recommendations are Item-Based, and use the Pearson Distance for matching similar items.

A cron job must be defined to run periodically so the items affinities can be updated.

The service andres_montanez_recommendations.recommendation enables you to

Example of an interaction: "User «Jon» «rated» the «movie Batman» with a value of «5»"

The namespace is if you want to use the engine on multiple sites but with only one instance, so recommendations will only be made for items registered on that namespace. For the values of users, items, and tags, an Integer value is recommended.

The main algorithms are based on the code of O'Reilly's Collective Intelligence.

The bundle has been tested with a datasets of:

Datasets available at: http://grouplens.org/datasets/movielens/

I recommend building a service wrapper around this service so you can fit better your requirements, and also add as many cache layers as you want. Have in mind that with large datasets, the results will vary slowly, it will take a lot of user interaction to change the similarities between two items, therefore altering the recommendation. Regenerating the similarities once per week is a good place to start. Also caching the user's recommendations for 24-48 hours is also recommended, because this won't change often unless the user rates more items.