The Universal Recommender (UR) is a Cooccurrence type that creates correlators from several user actions, events, or profile information and performs the recommendations query with a Search Engine. It also supports item properties for filtering and boosting recommendations. This allows users to make use of any part of their user's clickstream or even profile and context information in making recommendations. TBD: several forms of popularity type backfill and content-based correlators for content based recommendations. Also filters on property date ranges. With these additions it will more closely live up to the name "Universal"
See the scala-version github project for more information: UR template scala
This is a Cornell CS 5152 team project.
- converting the engine from scala to java
- see the github issues list
- Other documentation of the algorithm is here
- A free ebook, which talks about the general idea: Practical Machine Learning.
- A slide deck, which talks about mixing actions and other correlator types, including content-based ones: Creating a Unified Recommender
- Two blog posts: What's New in Recommenders: part #1 #2
- A post describing the log-likelihood ratio: Surprise and Coincidence LLR is used to reduce noise in the data while keeping the calculations O(n) complexity.
#License This Software is licensed under the Apache Software Foundation version 2 licence found here: http://www.apache.org/licenses/LICENSE-2.0