Recommendation Service

Along with it's members, EBU has built over the last few years a comprehensive ecosystem that supports all aspects required for user centered online content recommendation. It includes data acquisition, processing and delivery as well as monitoring and analysis.

The PEACH recommendation service provides the appropriate tools and building blocks to implement easily the necessary components on a web and mobile platforms to deliver efficient and effective content recommendation to the audience.

The solution is composed of 4 main services. Even though there is multitude of components behind each of them, they can be seen as the 4 logical steps required for an integration of content recommendation:

  1. Data Acquisition
  2. Recommendation Algorithms
  3. Processing & Distribution
  4. Evaluation & Monitoring

Recommendation Steps

The entire chain of components is developed by the PEACH team using latest Open Source technologies and as of August 2017 it is deployed on RTS's (Radio Télévision Suisse http://www.rts.ch) and RTP's (Rádio e Televisão de Portugal http://www.rtp.pt/play/) websites. It is a continuously improving project thanks to the involvement of multiple Members, which input requirements and contribute to the overall functionality. Also it is important to notice that EBU is able to provide parts of the stack and data pipeline as services directly to its Members.

Features overview

Features Maturity Technical Notes
Data Acquisition
JavaScript SDK
production
pipe.js, Library for event collection on Javascript User Agents
iOS SDK
prototype
Library for event collection on Apple iOS Applications
Android SDK
prototype
Library for event collection on Android OS Applications
Batch Collection
production
API allowing collection of events through batch
In-Browser History Management
beta
Javascript and local storage based consumption history capture
History Service
beta
Online history service API to store and manage user consumption history
Recommendation Algorithms
Generic Content-Based Filtering
production
Recommend content using Content metadata similarities. See Tutorial
Collaborative Filtering
production
Establish item and user similarity and to predict a user's taste based on similar other users. See Tutorial
Diversified Algorithm
production
See Tutorial
Trending Algorithm
production
See Tutorial
Cold Start Fallback
production
Fallback for coldstart and unknown users
CDN Fallback
production
Fallback on platform issue to CDN stored list
Processing & Distribution
Automatic Tasks
production
Periodic task triggering for algorithm computation and model storage
Intermediate In-Memory Model Storage
production
Redis based model storage
Dynamic Recommendation Endpoints
production
Distribution of multiple and different recommendation algorithms, which can be changed dynamically.
Evaluation and Monitoring
A/B Testing Experiments
production
A/B and MVT Framework for algorithm evaluation
Impact of the recommendation
production
Impact and performance of the algorithms can be visualised on a dashboard
Flexible Dashboard
production
Dashboard adapting to any algorithm and metric or data collected
General Functionality
Multi Tenant Architecture
in progress
Built to support multy-tenancy out of the box
----

Architecture Overview

EBU Recommendation Service Overview

The schema above is a high level overview of the PEACH recommendation ecosystem. It shows the components provided by EBU and hosted in EBU's private cloud (blue) or on a public cloud (orange) as well as the broadcaster's components (green).


1. Data Acquisition

The initial step necessary to be able to recommend any content based on users' consumption is the data acquisition on the website and applications. For this particular use case, the system will need to collect the consumption of media assets on the platforms of the broadcaster. That will include page views of articles, views on videos, plays on audio content, etc.

PEACH provides various libraries in order to track the consumption on all the platforms such as web sites, iOS and Android apps. It is important to note that the data should be collected on a maximum possible outlets where the content is consumed in order to improve the quality of the recommendation. But to get started quickly, focus should be put on the platform on which most of the consumption takes place, which in most cases is the web pages.

Data Acquisition

Steps for integration:

2. Recommendation Algorithms

In an effort to provide recommendation to members already participating in PEACH, the team already devised a few algorithms used by the members. A non exhaustive list ot the algorithms that are already part of the Data Scientists Platform can be found at the Data Scientist's Algorithms page.

3. Processing & Distribution

Once an algorithm is devised, it's recommendation model needs to be computed periodically to include latest views and available content. Similarly to the collection and storage above, EBU can provide the necessary services in it's Private Cloud to compute the recommendations and distribute the recommended contents to the end users. Thus we will not go into details of this topic in this document.

From Data to Recommendation with Algorithms

As last part of the implementation, the recommendations need to be made available to the end users. This can come in the form of a list on a web page, the automatic launch of a video after watching or a sidebar on a particular page etc. The strategy on what to display and where to display it varies a lot based on the product delivered to users, the editorial line, the UX etc.

Distribution and consumption of Recommendation

Below are two example of the implementation of the integration of the recommendation at on the RTS and RTP websites.

Example of integration in the RTS website (RTS http://www.rts.ch)

Example of integration in the RTP website (RTP http://www.rtp.pt/play/)

Steps for integration:

4. Evaluation and Monitoring

In order to improve and meet broadcasters goals in terms of recommendation impact, the platform provides an algorithm evaluation system, which enables a broadcaster to run A/B Testing experiments and see the results on a dashboard.

Understanding how people are reacting to recommended content and which content is consumed helps validate recommendation algorithm choices and parameters as well as the user experiment they are embedded into. The location, the layout and the format of the content recommended are key parameters, which will require different types of algorithms.

A/B Testing and Experiment

A/B testing enables broadcasters to experiment multiple options in parallel and make data-driven decisions. Any change can in the algorithm or the user experience can be measured. That information is aggregated into a configurable dashboard made available to the developers, data scientists and editorial teams in order to adapt the user experience, the algorithms and possibly the format of the content.

Example of a dashboard showing recommendation usage.