Outbrain is the Web’s leading Content Discovery engine, aiming to help people discover relevant content for every user. One of the components in the recommendation flow is to fit the best UI for every user and thus increase the number of clicks. Today this problem is solved by Contextual Bandit which makes the balance between the exploration and exploitation processes. My mission was to find the best features for making a prediction and to integrate a deep learning model into the flow.
Feature selection problem
I got data with different categorical and numerical features. My first challenge was to find the most important features to achieve the best prediction. I used a variety of models (Random Forest, XGBRegressor, XGBClassifier, Logistic Regression) and a variety of feature importance methods (gain, SHAP, permutation importance) to find out which features are the most informative.
Deep Contextual Multi-Armed Bandit
The Contextual Multi-Armed Bandit model chooses the best UI based on the user’s features. I created the Deep-Learning Regression model which predicts the CTR for each UI. The evaluation was done by comparing the original CTR vs the one we would get with the predicted UI.
The most challenging part was to do reverse engineering for an existing code in order to make the integration of the new model.
Achievements (according to KPIs)
- Finding the most important features and less important ones.
- CTR lift when using the Deep-Learning model in comparison to the CTR of the Contextual Multi-Armed bandit model.
- Run the model on a large scale of data.
- Factorization machine layer for better presenting of the features.
- Hyperparameters tuning.