Recommender Systems: Introduction and Examples

Last updated:
Table of Contents

WIP Alert This is a work in progress. Current information is correct but more content may be added in the future.

Introduction

TODO

Well then, aren't Recommender Systems just good old Machine Learning?

Technically yes, but the settings are very different; whereas users typically type stuff into forms and hit search buttons to view search results, recommendations are usually displayed without explicitly being requested by users and are highly context-dependent1

The User-item matrix

user-item-matrix User-item matrices are highly sparse.
Element \(A_{ui}\) represents the rating
user \(u\) gave item \(i\).
Source: @connectwithghosh

Types of Recommender systems

types-of-recommender-systems Types of recommender systems
Source: Wikipedia

Memory-based vs model-based Recommender Systems

If you need to train your system, it's model-based.

TODO

Main Techniques: Collaborative filtering

Collaborative means that these methods use inputs from similar users too

  • Memory-based

    • Item-based
    • User-based
  • Model-based

    • Matrix factorization approaches
    • Other regular machine learning algorithms

Main Techniques: Content-Based Recommendations

  • Basically information retrieval

Topics in RS Research

Topics in RS Research: Scalability

TODO

Topics in RS Research: Personalization vs Privacy concerns

TODO

Topics in RS Research: Explicit vs Implicit Feedback

TODO

Topics in RS Research: System Robustness / Defense against attacks

It's very likely that users may try to artificially increase their own products' popularity (product push) or decrease their competitors' (product nuke attack) once it's clear a rating system is in place.2

Topics in RS Research: Relevance vs Diversity tradeoff

There is a tradeoff between how relevant and how diverse a given set of recommended items is.

This means that if you only recommend items with maximum relevance (for a particular user), it's very likely that all items will be very similar to each other, thus lacking in diversity.

The idea is that recommendations that balance relevance and accuracy may encourage user interaction and increase conversion rates for non-repeating customers4. You can think of it as a form of hedging your bets.

Example: If we apply a naïve CF algorithm, that only optimizes for accuracy it's very likely that we will recommend Rambo II, Rambo III and Rambo IV for users that have watched Rambo I.

Recommend relevant items only Balance relevance and diversity
Using any RS technique, calculate the relevance of
each movie with respect to a given user.

Then, recommend the top \(k\) movies
with the highest relevance.
Using any RS technique, calculate the relevance of
each movie with respect to a given user.

Then, define a similarity function to measure how similar
two movies are.

Add the 1 most relevant movie to the
recommendation set, but when selecting the other
movies, skip items that are too
similar with other items in the
recommendation set.

This will create a recommendation set which balances
relevance and diversity.

This is a topic that has been very intensely researched in the last years.3

Topics in RS Research: Context-aware Recommendation

TODO

  • Location

  • Time

Topics in RS Research: Cold start problem

TODO

Example: Simple Collaborative Filter with Python's Surpriselib

TODO

References


Footnotes

1: For example, at the bottom of a product page on Amazon, you will likely be shown product recommendations related to the current product you're viewing.

2: There are many other forms of attacking a recommender system: Identifying Attack Models for Secure Recommendation

3: There was a full Workshop on this very topic in 2011. RecSys International Workshop on Novelty and Diversity in Recommender Systems

4: I.e. customers that don't often visit a given website/service.


Appendix: Matrix Factorization

user-item-matrix The dot product between row \(B\) of the User matrix and row \(X\) of
the Item Matrix is an approximation of the rating user \(B\) would give item \(X\)
Source: @connectwithghosh

Dialogue & Discussion