Content recommendations are everywhere in our digital lives; on Netflix, Amazon, Spotify, Newspapers etc. Making great recommendations has turned out to be an art as much as a science. Simply optimizing for people to click on the recommendations does not necessarily mean giving users the best recommendations. The problem is much more nuanced, and includes answering questions such as how similar or different articles should be recommended? How important is the “freshness” of an article? How important is “journalistic quality” to this user, and how is that determined? The list can be made longer.
To offer some concrete insights in this short article I will narrow down to relevance in the sense of similarity, i.e. “relevant articles should cover similar things”, which is something we see a lot of in the media industry.
What is similar?
Quite a few recommendation systems focus on finding more of the same content you are already consuming. We believe this is a flawed, or at least heavily limiting, view. That is not to say it is completely without merit. We do indeed see a correlation between higher CTR and similarity between the currently read article and the articles that are recommended. However, this leads to rather dull recommendations. Just because you read one article about bananas you’re not necessarily eager to read three more.
If you were to add only one thing to this simplistic view of great recommendations, I urge you look at content from complementing topics, rather than just similar content.
How could you go about this? One way would be to have a human decide which topics or categories are complementary, e.g. health and training. Unfortunately, human recommendations do not scale, and the taste of an editor does not necessarily reflect that of the readers. A more scalable and accurate method, driven by actual user preferences would be to ask your data.
Most publishers use some kind of category labeling for their articles. These can be compiled into a table to measure cross-category performance, which in turn allows you to see what other categories should be recommended, given what you are reading right now.
An example: Someone is reading an article in the entertainment section. The table shows that for entertainment readers, recommendations of recent news pieces are the most interesting, followed by lifestyle and sports. Then it makes sense to give the user at least some recommendations from the news section.
With a little help from Machine Learning
Simple as it might seem, this actually gives quite an improvement over just selecting articles from the same category as the user is currently reading. However, it lacks in granularity. “Sports”, “News”, “Entertainment”, etc. are very broad topics. In order not to have to relearn which kind of articles go well with which other articles, it also makes sense to learn and generalize from past experiences when new articles are published.
This is where machine learning comes in. With the help of machine learning much more niched groups of articles can be found automatically without humans having to carefully label each article manually. One way to do this is to first translate each article into a set of coordinates (numbers) based on e.g. the contents of the article. Just as the latitude and longitude coordinates used for navigation describe where you are on a real-world map, these article coordinates can be used for placing each article somewhere on an imaginary “article map”.
Articles that are close to each other on the map will be similar to each other. This means that if you group similar articles that are close to each other on the map (similar to cities on a real-world map) together, you can see them as micro-categories. and make your recommendations based on which such micro category performs best in a given context.
Article coordinates can be created in many ways. One way is to use a so called word model, which gives each word in an article a set of coordinates. Whereas the coordinates on a real-world map are only two, these coordinates are typically in the order of hundreds, which helps the coordinate to capture more nuanced information about the words.
These word coordinates can then be combined in a clever way to create a set of article coordinates from all the coordinates of the words in the article. One of the many challenges of combining the word-coordinates to article-coordinates is that some words are more important to the meaning of the article than others. It is in creating these article representations that a large portion of the ingenuity lies.
New micro categories through machine learning
The micro categories are then created with a standard machine learning technique called clustering, which does exactly what you would expect – it clusters similar articles together into groups. When new articles are published they are assigned to the cluster (micro category) which they are closest to on the article map. Allowing them to be approximated in terms of how they behave recommendation-wise by what the system has learned about other articles in their cluster in the past. This way the recommendation system becomes smarter and smarter over time.
Not only recommending more of the same, but also finding and recommending complementary topics is one of many ways we use to find interesting and relevant recommendations for our partners’ readers.
The art of great recommendations
I hope you gained a new perspective on recommendations, and possibly even learned something new. Instead of getting locked into the categories of the human brain I hope you’ll to unlock the power of machine learning. There are thousands of categories out there, waiting to be discovered, all you have to do, is to set up the data right!
I Iook forward continuing our quest towards the best possible content recommendations and share it here on the Strossle blog. What I want to give readers is that feeling of serendipity, the positive surprise: “Aha, I didn’t know that. But I want to learn more.”. That’s a great content recommendation.
Fredrik Skeppstedt, Lead Data Scientist, Strossle