The Public Service Algorithm: Personalization at the CBC
We're building something different at the CBC: A recommendation system, not powered by the bottom line, that uniquely presents relevant and valuable content to our audience. Our goal: a better personalized experience and an engaged audience.
CBC’s Machine Intelligence practice is developing recommendation systems to help serve Canadians more relevant and personalized content. (Mike Burroughs/CBC)
First, a bit of background.
Recommendation systems help people filter through the vast amounts of information they’re inundated with everyday on the internet. What song on Spotify am I going to have on repeat next, what’s going to be my next binge watch on Netflix, what products on Amazon will I ‘also like’?
Traditionally, there are two major types of recommendation systems. The first type, content filtering, tries to predict items a user may like by taking past items a user has interacted with into account. We consider interactions to be things like reading, liking, watching or loading an item. This would be like Netflix — you watch this really great crime drama, you may also like this other crime drama.
The second type, collaborative filtering, tries to predict an item a user may like by focusing on items that similar users have interacted with. For example, say you and your friend Tara both listen to and like the song Desperate Youth by Santigold. If Tara then also listens to and likes the song Funeral by Arcade Fire, it would be recommended to you — because you’re similar, you will likely enjoy similar things.
Session-based recommendation systems and bursting filter bubbles
The CBC has taken a different approach to helping users find content. We’ve implemented a novel third approach called session-based recommendation systems. This approach was developed by Hidasi et al. in his research paper entitled Session-based Recommendations with Recurrent Neural Networks. This was a pivotal paper because it was the first attempt at using deep learning for recommendation systems.
A session-based recommendation system looks at what users do in a sequence of events or session to try to predict what the user might do next. It’s hypothesized that this may help prevent filter bubbles because it focuses on what the user is interested now, rather than placing the user in a fixed category.
For example, in the morning Haley wakes up and goes to cbc.ca and is interested in what her day will be like, so she looks at the local weather, then looks for transit delays, then the scores from yesterday’s Blue Jays game. Given this series of events, the machine learning model would predict what she might do next.
As Canada’s public broadcaster, we have some unique guidelines to follow. We need to be transparent and accountable to our users. We need to be able to tell our users which action triggered a particular recommendation, ensuring how we recommend content is clear.
Additionally, because of the frequency of new content created at CBC, we need our recommendation system to be real-time. CBC generates almost 500 new pieces of content each day so we need a system that can make real-time predictions and be updated with new pieces of content as they emerge.
Most importantly, we’re really concerned about filter bubbles. The term “filter bubble” was coined by Eli Pariser in 2010 and is a form of intellectual isolationism. Filter bubbles confirm biases and in no way challenge them. It’s crucial that the CBC presents a diverse set of perspectives that represent our audiences. So, we hypothesize that session-based recommendations will help prevent filter bubbles because it focuses on what a user is doing in the moment.
Introducing NBoX, or Next Best Offer X
NBoX, or Next Best Offer X, is the visual representation of what we think our users will want to read next. (Jason Cornell/CBC)
Right now, you can get a peek at what we’ve built on the CBC Search page. Our next step is to further expand our recommendation system across CBC’s content areas — including at the bottom of story pages, where we’ll recommend personalized stories for users to help them find content they’ll like.
We’re also looking to add recommendations to conversational interfaces like Google Home and Amazon Alexa, to playlist generation on CBC Music and video recommendations on our media player. We’re constantly experimenting and exploring other machine learning modeling techniques.
Ultimately, we want to engage every Canadian. Our audience is exceptionally diverse, from every corner of the country, with a unique perspective on what it means to be Canadian.