The goal of a recommendation systems is to produce a list of rules. This set of rules are usually built using a transactional type of data set which identifies links between a user and an item. Then, the rule set is applied to either to a user or an item to get a list of items to recommend.
These 2 approaches to building recommendation systems are:
-
Collaborative filtering:
With this approach, you can build a model using past users behaviors (items previously purchased by a user or movies rated by a user for example) and based on behavior similarities between users.
Collaborative filtering is based on the assumption that users who had similar behaviors in the past will have the same behaviors in the future, and that they will like similar kinds of items as they liked in the past.
In this scenario, you can build your model by analyzing links (transactions) between 2 types of nodes, one will be the user and the other the item. And the resulting model will allow you to extract the likelihood of a relation between a user and an item.
In other word, when scoring with the model, the input information will be a user, and the output will be a list of items and their associated score.
-
Content-based filtering:
With this approach, you can recommend items that are similar to each other based on the number of links they have in common compared to other items using for example a series of associated keywords or tags, but also user clicks or orders.
Just like with Collaborative filtering, you can build your model by analyzing links (transactions) between 2 types of nodes, one will be the user and the other the item. Here the “user” doesn’t represent always correspond to a user or buyer, but can reference a tag or a web session id.
In the end, unlike with Collaborative filtering, the resulting model will allow you to extract the likelihood of a relation between a pair of items and when scoring with the model, the input information will be an item, and the output will be a list of items and their associated score.
Note
The above description is only meant to give you a brief (and simplified) overview of what is a recommendation system in general.
For more details, you can check the Recommender system on Wikipedia page for more details and references (which I used here to provide some details for this tutorial series).