Please enable JavaScript.
Coggle requires JavaScript to display documents.
Lecture 8 Recommender Systems (How do recommender systems work?…
Lecture 8
Recommender Systems
What is a recommender system?
We often have to make choices without sufficient personal experience about the alternatives
In everyday life we rely on recommendations from other people
By word of mouth
Recommendation letters
Written reviews in mass and social media
People surveys
Recommender Systems (RS) are software tools and techniques providing suggestions for items to be use to a user
Recommender systems seek to predict the 'rating' or 'preference' that a user would give to an item (such as music, books, or movies) or social element (e.g. people or groups) they had not yet considered
Examples
Amazon -> users who bought this item also bought
Multiple recommender systems running in unison
From most general to highly personalised
Masterportal.eu -> recommendation of study programs
Facebook/Linkedin -> recommend connections
Netflix -> recommends movies
Netflix challenge
Notes
If there is no information, recommend the best sellers
IP address can sometimes provide information to a recommender
May know you're on a Uni computer, so you are likely a student
Therefore, will recommend items a student may buy
Benefits of RS
Reduce search time and costs, provide "correct" proposals
Reduce information overload by estimating relevance
Can take into account different perspectives/aspects
Can identify items that users did not know and would not have searched for
"Vertical limit" and "Cliffhanger" example
Cliffhanger was released in 2012, did not see much interest (poor sales)
Vertical limit was released in 2015, topped the charts and sold well
The recommender system then started recommending Cliffhanger to people that bought Vertical limit
Cliffhanger eventually over took Vertical limit in sales
Educate users about the domain
Can help to optimise sales margins and profit
Long tail phenomenon
Few items are bought frequently and most items are bought very few times
Can use this to decide what to stock in a brick and mortar shop
In a book store, only stock items that sell frequently and keep one or two copies of some slightly less frequently bought items
Setting
Given
User model
e.g.
Ratings
Preferences
Demographics
Situational context
Items
With or without descriptions of item characteristics
Find
Relevance score for each item or item ranking
How do recommender systems work?
Recommender systems reduce information overload by estimating relevance
Personalised
Takes user profile and contextual parameters into the recommendation component
Recommender Component
Recommender List
Generate the list of scores for every item, sort these by high to low
Collaborative
User profile and contextual parameters, with community data, into the recommendation component
Tell me what's popular among my peers
Pros
Nearly no ramp-up effort
Serendipity of results
Learns market segments
Cons
Requires some form of rating feedback
Cold start for new users and new items
Content-based
User profile and contextual parameters, with product features, into the recommendation component
Show me more of the same, which I've liked
Pros
No community required
Comparison between items possible
Cons
Content-descriptions necessary
Cold start for new users
No surprises
Knowledge-based
User profile and contextual parameters , with product features, and knowledge models, into the recommendation component
Tell me what fits my needs
Pros
Deterministic recommendations
Assured quality
No cold-start
Can resemble sales dialogue
Cons
Knowledge engineering effort to bootstrap
Basically static
Does not react to short-term trends
Hybrid
Combinations of various inputs and/or composition of different mechanisms
User profile and contextual parameters, community data, product features, and knowledge models, into the recommendation component
These can be in any ratio, to achieve different results
How to get user feedback for a training model?
Explicit feedback
Asking a user to rate an item on a sliding scale/star ratings
Asking a user to rank a collection of items from favourite to least favourite
Presenting two items to a user and asking them to choose the better one of them
Asking a user to create a list of items that they like (e.g. wishlist)
Implicit feedback
Observing the items that a user views in an online store
Analysing item/user viewing times
Keeping record of the items that a user purchases online
Obtaining a list of items that a user has listened to or watched on their computer
Analysing the user's social network and discovering similar likes and dislikes
Notes
People are often biased to being negative
Opting to leave a bad review more often then leaving a good review
Dating sites are a good example of where recommender systems having issues
People were often not consistent with their preferences
They may have selected blonde hair as their preference, but they have selected people who do not have this trait while on the site
Techniques
Recommender systems: basic techniques
Recommender systems typically produce a list of recommendations in one of two ways:
Collaborative filtering
Builds a model from a user's past behaviour and similar decisions made by the other users
Uses that model to predict items (or ratings for items) that the user may have an interest in
The most prominent approach to generate recommendations
Used by large, commercial e-commerce sites
Well understood, various algorithms and variations exist
Applicable in many domains
Books, movies, DVDs, etc.
Approach
Use the "wisdom of the crowd" to recommend items
Assume that people have similar "liking" profiles
Nearest neighbour collaborative filtering
The basic technique
Given an active user "Alice" and an item not yet seen by Alice
The goal is to estimate Alice's rating for this item
Find a set of users (peers) who liked the same items as Alice in the past and who have rated the item
Aggregate their ratings to predict what rating Alice would give
Do this for all items Alice has not seen and recommend the best-rated item to Alice
It is like a k-nearest neighbour classifier but the target label can be any item
Parameters and design choices
How do we measure similarity?
How may neighbours should we consider?
How do we generate a prediction from the neighbours' ratings?
Simple distance measures
For numeric attributes
Manhattan distance (taxicab)
1 more item...
Euclidean distance
1 more item...
Item based collaborative filtering
The basic technique
Given an active item 5 and a user who has not seen it yet (Alice)
The goal is to estimate Alice's rating for this item
Find a set of items that are similar to item 5
Aggregate Alice's ratings given to those items to predict what rating Alice would give to item 5
Content-based filtering
Uses characteristics of an item as input attributes to build a predictive model
Recommends additional items with similar properties
While CF - methods do not require any information about the items, it might be reasonable to exploit such information
What do we need? (to form informative attributes about items)
Some information about the available items such as the genre ("content")
Some sort of user profile describing what the user likes (the preferences)
The task
Learn user preferences (profile)
Locate/recommend items that are "similar" to the user preferences
What is "content"?
Attributes that describe items
Content based recommendations
Form "content" based attributes, describe each item in these attributes
For a given user form the target labels, e.g. "like", "dislike", for the items that they have already seen
Build a predictive model for a given user
This predictive model will represent user profile
Use this model to predict "like" score for unseen items
There are also Hybrid Recommender Systems
These combine both other approaches
mastersportal.eu example
mastersportal.eu is a website that provides detailed information about all Master's programmes in Europe
Many visitors are referred from Google search engine
Problem:
Bounce-rate from Google used to be very high (~90%) meaning that a visitor comes, does not like the program and goes back to Google
Solution:
A recommender system was introduced to recommend similar study programs to make users more interested to stay on the website longer
Longer stay means more revenue from sponsored adverts
Collaborative filtering approach
Collect visitor cookies
Provide nearest neighbour based recommendations
"Visitors who viewed this programme also viewed this programme"
Content based approach
Construct attributes describing study programmes
Using structured and unstructured data
Problem
Unknown visitors coming first time, how to learn the profile
Solution
Learn a profile for a group of visitors
e.g. Coming from South America, using mobile browser
Further Challenges
Advanced topics and recent trends
Context-awareness
The relevance of an item or information may depend on the search context
e.g.
User location
Time
Previous searches
etc.
Solutions and challenges
How to define context
How to model context
Contextual pre-processing
Contextual post-processing
Contextual models
Group recommendations
People often listen to music, watch movies, or go to restaurants in groups
A group recommendation must be adapted simultaneously to all the users in the group
Solutions and challenges
Rank aggregation
Group formation
Novelty and diversity
Recommendations produced by a recommender system often need to be novel and diverse
e.g. you read Harry Potter and the Philosopher's Stone
A system provides a set of recommendations:
Harry Potter and the Deathly Hallows
Harry Potter and the Chamber of Secrets
Harry Potter and the Prisoner of Azkaban
Harry Potter and the Goblet of Fire
Harry Potter and the Order of the Phoenix
Harry Potter and the Half-Blood Prince
Is it novel?
Is it diverse?
A boring recommender?
Already expected?
Solutions and challenges
Cumulative relevance scores
Cold start
A personalisation system initially may have no information about user preferences
What to recommend first?
Next recommendation will depend on the first recommendation
Solutions and challenges
Randomisation
Collecting implicit feedback
Paying for feedback
Implicit feedback
Users may be providing implicit feedback on items:
Clicking
Reading
Listening time
Sometimes explicit feedback may be expensive or not available
Solutions and challenges
Incorporating implicit feedback
Reliability of implicit feedback
Notes
Did I actually look at the website for 5 minutes?
Or did I leave my PC and go to the bathroom?
Preference elicitation
Often users can't express their preferences in one shot
Available items may suggest new preferences
Solutions and challenges
Preferences are built while interacting with the system
Critiquing examples
Sequence of recommendations
Recommenders are often produced as a sequence
e.g.
Study plan
Dynamic playlist generation
Solutions and challenges
How to optimise the full sequence
How to take into account the previous history