Кейс 4. Клик по рекламе (CTR)

Прогноз вероятности клика по объявлению.

Задача предсказания клика по рекламе – одна из самых массовых и практических в машинном обучении. Каждый показ баннера – это маленькое решение: кликнет пользователь или нет.

Именно здесь логистическая регрессия долгое время была стандартом де-факто. Простая, быстрая, хорошо масштабируется и сразу дает вероятность.

Цель кейса

Предсказать вероятность того, что пользователь кликнет по рекламному объявлению, используя простые поведенческие признаки.

Важно не просто получить "клик / не клик", а именно вероятность клика – CTR (Click-Through Rate).

Сценарий

Предположим, у нас есть рекламная система, которая показывает объявления пользователям в разное время и на разных устройствах.

Мы замечаем, что поведение пользователей зависит от контекста:

  • днем пользователи активнее взаимодействуют с контентом

  • на мобильных устройствах кликают чаще, чем на десктопе

Упростим задачу до двух признаков:

  • время суток (например, часы от 0 до 23)

  • тип устройства (0 – desktop, 1 – mobile)

Каждый показ рекламы описывается так:

x=[hour,device]x = [hour, device]

Целевая переменная:

  • "click" – пользователь кликнул

  • "no_click" – пользователь не кликну

Данные

Минимальный учебный пример:

В примере мы проверяем ситуацию, когда время - 20:00, а устройство - mobile.

Модель должна оценить вероятность клика в таком контексте.

Что делает модель

Как и раньше, логистическая регрессия считает:

z=w1hour+w2device+bz = w_1 \cdot hour + w_2 \cdot device + b

Затем применяет сигмоиду:

p=11+ezp = \frac{1}{1 + e^{-z}}

Результат pp – это вероятность клика.

После получения оценки вероятности, если она выше выбранного порога, система может:

  • чаще показывать объявление

  • повышать ставку на аукционе

  • выбирать более "дорогой" креатив

Decision boundary

В этом кейсе у нас снова два признака, значит пространство – двумерное:

  • ось X – время суток

  • ось Y – тип устройства

Decision boundary задается уравнением:

w1x1+w2x2+b=0w_1 \cdot x_1 + w_2 \cdot x_2 + b = 0

Это прямая, которая разделяет пространство на:

  • область с высокой вероятностью клика

  • область с низкой вероятностью

Но здесь появляется важный нюанс: один из признаков (device) – дискретный.

Это означает, что фактически у нас две "полосы" данных:

  • device = 0 (desktop)

  • device = 1 (mobile)

И модель учится сдвигать вероятность между ними.

14.7 Граница принятия решения для CTR

Интерпретация

Этот кейс хорошо показывает, что логистическая регрессия работает не только с "геометрическими" признаками, но и с категориальными.

Тип устройства закодирован как число (0 или 1), и модель:

  • увеличивает или уменьшает вероятность клика в зависимости от устройства

  • учитывает влияние времени суток

При этом модель остается линейной, но за счет комбинации признаков может описывать довольно сложные зависимости.

Почему логистическая регрессия – стандарт для CTR

В индустрии рекламы логистическая регрессия долгое время была основным инструментом. Причины простые:

  • работает очень быстро

  • легко масштабируется на миллионы показов

  • выдает вероятность, которая напрямую используется в расчетах

  • хорошо интерпретируется

CTR – это по сути и есть вероятность клика. Логистическая регрессия идеально совпадает с этой задачей.

Практический смысл

В реальной системе на основе таких предсказаний можно:

  • ранжировать объявления по вероятности клика

  • оптимизировать рекламные ставки

  • персонализировать показ рекламы

Даже простая модель уже позволяет принимать более точные решения на основе оценок вероятности, чем случайный выбор.

Выводы

Этот кейс добавляет важный слой понимания:

  • логистическая регрессия работает с разными типами признаков

  • вероятность напрямую используется как бизнес-метрика (CTR)

  • модель применяется в задачах с огромными объемами данных

И самое главное – становится очевидно, почему именно логистическая регрессия так широко используется на практике.

Дальше мы перейдем к кейсам, где важна не только сама вероятность, но и цена ошибки и выбор порога.

circle-info

Чтобы самостоятельно протестировать этот код, воспользуйтесь онлайн-демонстрациейarrow-up-right для его запуска.

Last updated