Outbrain Click Prediction
In this paper, we explore various data manipulation and machine learning techniques to build an advertisement recommendation engine that prioritizes content to be presented to users. Companies like Outbrain have made it their mission to deliver quality content to their users and provide a platform for advertisers to reach their target audiences. Using Outbrain's click and user profile information, we manicured a data set using techniques such as binning and normalization. This data was used to train a logistic regression model and a random forest classifier to rank a set of ads on a given page in order of decreasing likelihood. We scored these classifiers using a mean average precision at 12 metric. In the end, we found that random forest performed the best and coupled really well with the binning technique used. Introduction In modern society, the advent of technology has revolutionized the way people communicate and retrieve information, starting an era of constant information consumption. Mobile devices laptops, tablets, and cell phones are ubiquitous, providing a large scale of information to the public, such as technology, sports, weather, and international news. Due to the increasingly large amount of data that could be accessed, it is crucial to prioritize the content to present to users. Presenting optimal news that interest individual users, resulting in a higher likelihood of being clicked, improves user engagement and experience. The mission of Outbrain, a leading publishing and marketing platform, is to enrich the consumer with engaging content by building an advertisement recommendation engine. Machine learning algorithms could be used to predict users' behaviors and display pieces of content based their previous selections and features, ultimately providing a more personalized user experience. To accomplish this task, Outbrain provides a large relational data (exceeding 100GB or 2 billion examples) providing a sample of users' page views and clicks observed across multiple publisher sites, platforms (desktop, mobile, tablet) and geographic locations between 06/14/2016 and 06/28/2016. The input to our algorithm is a set of key features that characterize the user, documents (originally viewed and promoted content) and the page view event (as shown in Table I) Most features were given numerical identifications, which is inappropriate for categorical features (i.e. platform: 1 desktop, 2 mobile, and 3 tablet) These categorical features were one hot encoded to properly treat them as categorical values rather than numerical values. Given a set of advertisements per document, we used logistic regression, support vector machines, and random forest algorithms to output an ordered list of advertisements in decreasing likelihood of being clicked for each document. Machine Learning Pipeline As illustrated in Fig.1. we used the Amazon Web Services (AWS) Redshift which uses Massive Parallel Processing to manage and query the large dataset, and Apache Spark on Microsoft Azure and Google Cloud platforms to train our models using distributed machine learning algorithms over the cloud. Initially, we were using a local computer and immediately realized the large computational power the task required. Given our time and resource constraint, it was required to setup this pipeline to process and iterate over this large dataset. Dataset and Features The Outbrain dataset provided a total of eight datasets: Page views describes features of all viewed pages, regardless of an advertisement being clicked. Events consists of features of pages viewed when one displayed advertisement was clicked. Promoted content provides advertisement features. Clicks train/test provides examples with labels to be used for training and examples without labels to be used for the Outbrain competition. Figure 1. Machine learning pipeline for click prediction Documents meta describes documents' metadata. Documents entities, documents topic, and documents categories provide mentioned entities (person, place, or location) topic, and taxonomy of categories of the documents, respectively. According to [1] most data preprocessing take up to 80% to complete real world data mining projects, especially those with high cardinality categorical data fields such as this project. One of the main challenges was building the training and test sets for our models. Out of the 2 billion examples provided, we decided to exclude examples found in Page Views and only consider the 87 million examples contained in Events. These examples of page views that resulted in a click for one of the featured advertisements contain useful information to make click predictions. By using these examples, the first advertisement in the ordered list (output) represents the advertisement that we predict to be clicked for a particular document. In addition, Documents entities because it was too distinct, not providing much information. At one instance, training with entity as a feature prevented an algorithm from converging. Hence, features unique to Page Views (traffic source) and Documents entities (entity id and confidence level) were ignored. The remaining datasets could be mapped to each other using certain features as a key as illustrated in Fig.2. TABLE I. Features provided by Outbrain (n 19) Bolded features used in our click prediction Using AWS Redshift, we discovered that unique user id (uuid) were mostly distinct, indicating that observations were rarely made on the same user. Thus, it was impractical to use uuid as a feature. Also, display id was also not included in our feature because it is unique to each page view event. Display id represents a particular session of users viewing a document and allows us to group advertisements and features involved in the same event. However, it is not useful to include as a feature by itself. As a result, Fig.2 displays the dataset and features used for our prediction. Figure 2. Datasets used for click prediction Features used as keys are color coded.