Технические особенности проекта: этапы работы
1. Выбрать платформу для анализа и построения предиктивной модели. Сфокусировались на выборе между Vowpal Wabbit и TensorFlow. Чтобы определиться, мы прошли такие шаги:
— провели эксперименты на исторических данных, которые обрабатывают информацию о совершенных показах и кликах;
— сравнили, какой из инструментов лучше предсказывает события.
По итогам экспериментов выбрали TensorFlow. Платформа позволяет строить более сложные модели, при этом они показывают лучшие результаты на наших данных.
2. Выбрать данные для анализа. Наше решение — использовать следующее:
— накопленные исторические данные по показам и кликам пользователя;
— параметры, которые можно получить из запроса на рекламу;
— накопленные данные о пользователе.
Среди таких данных:
— Remote IP Address;
— Exchange ID;
— Publisher ID;
— Creative Size;
— Placement ID;
— Advertiser ID;
— Campaign ID;
— Creative ID;
— Publisher Domain / Mobile Application Bandle;
— Vertical Category ID (IAB Category);
— Ad Position;
— Visitor Language;
— Visitor Country;
— Visitor Region;
— Visitor City;
— Visitor ZIP / Postal Code;
— Visitor Lat / Lon;
— Visitor ISP;
— Visitor Gender;
— Visitor Age;
— Visitor Device Type;
— Visitor Device Maker;
— Visitor Device Model;
— Visitor Browser;
— Visitor Browser Version;
— Visitor OS;
— Visitor OS Version;
— Visitor Connection Type;
— Day of Week;
— Hour;
— Time Zone.
3. Выбрать алгоритм. Мы рассматривали несколько методов для построения модели:
— простая логистическая регрессия;
— FiBiNET — Feature Importance and Bilinear Feature Interaction NETwork;
— FLEN — Field-Leveraged Embedding Network.
Выбор остановили на FLEN, потому что модель показала лучшие результаты на наших данных.
4. Выбрать критерии качества работы модели. Данные, которые мы используем, не сбалансированы, поэтому для оценки модели мы использовали два критерия, которые показывают:
— precision (точность) — доля объектов, которые классификатор определил как положительные и которые такими являются;
— recall (полнота) — доля объектов положительного класса из всех объектов положительного класса нашего алгоритма.
5. Интегрировать решения в нашу рекламную платформу. С помощью языка Go мы разработали сервис под задачу клиента. Вот что он делает:
— загружает модель, обученную на базе нашей рекламной платформы;
— выдает прогнозы;
— интегрируется с другими компонентами платформы, которые участвуют в решении о покупке трафика и показе рекламы.
Показатели работы модели. При испытании модели используются данные за несколько недель — порядка 1,2 млрд событий. Ежедневно модель принимает решение по 60 миллионам событий.
Нам неоднократно предлагали ведения кампаний, компании работающие или работавшие с нашими конкурентами. То есть на их деньги они оттестировали гипотезы и теперь продают это как свой отлаженный механизм. Самим тянуть это не всегда легко и дёшево, но уж лучше так чем плодить за свой же счёт сильных конкурентов в рекламе
Лучше самому, просто иногда не хочется делиться своими идеями. Но с другой стороны, специалист всегда знает, как лучше поступить и может использовать разные фишки, о которых вы не знаете.