ML Advertising
1.21K subscribers
134 photos
13 videos
2 files
192 links
Пишу про AdTech, AI и разработку

Для связи: @evgenii_munin
Download Telegram
ML Advertising
Photo
Что такое cookie и как работает cookie-sync?

ЧАСТЬ 2

Какие типы cookie существуют?

Различают 2 типа cookie
- first-party cookie
- third-party cookie

1️⃣ First-party cookie
Эти cookie создаются сайтами, которые мы посещаем напрямую. Например, если вы посещаете techcrunch.com, файл cookie будет создан в домене techcrunch.com, а не в домене третьестороннего вендора рекламы или DSP (например, appnexus.com).

Эти типы cookie помогают обеспечить хороший пользовательский опыт, поскольку они запоминают конкретные сведения о пользователе и его поведении (например, данные для входа, товары, добавленные в корзину покупок, предпочитаемый язык и т. д.). С first-party cookie решение о том, какую информацию собирать и хранить, принимает сам веб-сайт.


2️⃣ Third-party cookie
Файлы third-party cookie уже применяются для отслеживания активности пользователя не самим сайтом, а вендором рекламы. На одной web странице может находится сразу несколько third-party трекеров, каждый на свой рекламный слот, поскольку на одной странице разные они могут продаваться и обслуживаться разными Ad Tech вендорами.

Third-party трекеры могут отслеживать следующую инфу пользователя
- трекать тип девайса, ОС, версию, регион, пропускную способность интернет соединения с которого пользователь заходит
- трекать ивенты: скролл, отображение 1 пикселя рекламы, просмотр, клик
- трекать ивенты для видео: start/stop, complete (полный просмотр), progress 5, 10 (прогресс просмотра первых N секунд видео) etc

Если пользователь посещает сайт bestbuy.com и кликает по товару, трекеры регистрируют эти события и отправляют часть кода cookie файла на сервер вендора рекламы. Чтобы облегчить размер самого third-party cookie файла и не писать в него абсолютно все действия пользователя, туда пишется паблишером только user_id, а вся информация о действиях пользователя отправляется для user_id вендору рекламы.

Когда пользователь переходит на другой домен, например techcrunch.com вендор маппит пользователя по его ID и отображает рекламу того же самого товара на слотах techcrunch.com по событиям, загруженным с предыдущего домена.

source: clearcode

#adtech
👍6
the-incredible-pytorch

Подборка учебных пособий, проектов, библиотек, видео, статей, книг и всего, что связано с PyTorch.

Что здесь можно найти?
- Туториалы и обучалки
- LLMs
- PyTorch для табличных данные
- Визуализация
- Explainability
- Object Detection
- Архитектуры
- Оптимизаторы
- Квантование
- Сжатие сеток
- Facial/ Pose Recognition
- Super Resolution
- Medical PyTorch
- Video Recognition
- RNNs
- CNNs
- Сегментация
- Графовые сетки
- AE/ VAE
- NLP
- Deep Reinforcement Learning

Сохраняем к себе!
🔥7👍1
ML Advertising
Traffic Attribution При проведении рекламной кампнии, когда мы продвигаем продукт на разных площадках, нам важно знать откуда приходит больше всего пользователей, и какой KPI на каждой из них. Чтобы это оценить, есть 2 подхода: 1️⃣ bottom-up – когда мы физически…
Ранее я уже писал про метод Marketing Mix Modeling, который помогает анализировать, откуда приходит пользовательский трафик для рекламной кампании. Это особенно актуально в условиях ухода от third-party cookie и ужесточения регламента приватности данных. Но чтобы реализовать MMM, нужны инструменты, например LightweightMMM от Google. В связи с этим, я хотел бы порекомендовать пост Димы, в котором он описывает основные MMM модели с ссылками
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Morphic

Это поисковая система с интерфейсом, генерирующая ответы на базе ИИ.

Morphic не только отвечает на вопросы, но и генерирует изображения

Проект полностью с открытым кодом и уже находится на 4-м месте в таблице лидеров новичков на Git.

Github: github.com/miurla/morphic
Попробовать: morphic.sh

@ai_machinelearning_big_data
👍3
Forwarded from DevOps Docker
🤓🖥 Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков

В этой статье рассматривается, как настроить пайплайн CI/CD в GitHub: подготовка репозитория, заливание приложения, создание файлов конфигурации GitHub Actions.
Деплой проводится с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения.

Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации, рекомендую)

📎 Статья

Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Мультирегиональная репликация Apache Kafka: кластерные топологии

Статья о том, какую топологию может иметь кластер Apache Kafka при межрегиональной репликации по нескольким ЦОД и как это реализовать. Плюс описывается, чем брокеры-наблюдатели отличаются от подписчиков в Confluent Server и при чем здесь конфигурация подтверждений acks в продюсере.

Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:

- растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.

- связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.

Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
👍1🔥1
Где будет жить модель: в облаке или на девайсе?

📱 Девайс
К модели есть автономный доступ без интернета, входные данные не отправляются на третью сторону, нет расходов на сервер

Правда, стоит держать в уме, что если у вас сложная хитрая архитектура модели, которая включает еще и препроцессинг, то скорее всего ее будет непросто уложить на девайс. В таком случае всю логику с условиями надо будет переписать на тензорную арифметику

Например, можно рамещать ML модели, например, на смартфоны и платы Raspberry Pi, Arduino. Для этих целей предусмотрены соответствующие либы
- TensorFlow Lite
- Core ML от Apple
- Pytorch Mobile

☁️Облако
Можно использовать большую модель, легко обновлять у всех пользователей, масштабировать. Сейчас существует много удобных сервисов, которые сертифицированы по privacy и выставляют счета on-demand.

На том же AWS предлагаются образы AMI, с помощью которых ML либы предустанливаются на машину
🔥2👍1
tqdm для pandas

Небольшой hint по препроцессингу данных.
Есть такая удобная библиотека tqdm, которая позволяет прикреплять прогресс бар для циклических операций. В работе с pandas зачастую приходится применять циклы к датафреймам через метод apply (хотя это и не всегда оптимально). Если датафрейм большой, то это может занять много времени (поскольку pandas нагружает только один поток, но как бороться с этим поговорим отдельно). И чтобы понимать, сколько это займет времени можно воспользоваться расширением progress_apply в tqdm


tqdm.auto import tqdm
tqdm.pandas()

result = df.progress_apply(lambda row: row['label']+2, axis=1)


Достаточно инициировать tqdm для пандаса и использовать progress_apply вместо apply.

#mltips
👍11
Введение в Ad Tech

Начинаю цикл постов по введению в цифровую рекламу Ad Tech. В качестве источника воспользуюсь методичками Jounce Media Little Black Book.

Сегодня начнем с описания специфических для индустрии терминов.

Издатель (Publisher): Продавец рекламного инвентаря (рекламных мест) — веб-сайт или приложение. Также известен как сторона продажи или сторона предложения.

Рекламодатель (Advertiser): Покупатель рекламного инвентаря. Также известен как сторона покупки или сторона спроса.

Ad Exchange: Платформа, проводящая аукционы в реальном времени (Real Time Bidding или RTB). Платформы стороны предложения (Supply Side Platform SSPs) управляют аукционами и взаимодействуют с издателем.

Bidder: Платформа, покупающая рекламный инвентарь. Платформы стороны спроса (Demand Side Platform DSPs) аггрегируют участников торгов на стороне рекламодателей.

Client Side: Всё, что происходит на устройстве пользователя (в браузере и приложении)

Server Side: Все операции, которые происходят удаленно от пользователя, на серверах ad tech платформ и аггрегаторах.

#adtech
👍5
ML Advertising
Photo
Feature Selection by Variance Threshold

Продолжаем #mltips . Сегодня затронем вопрос отбора фичей, а конкретней отбор по порогу дисперсии.

Дисперсия - это мера изменчивости данных. Фича с нулевой дисперсией статична. Фича с около-нулевой дисперсией так же будет мало полезной для модели. Поэтому такие фичи следует удалять.

В sklearn есть метод VarianceThreshold, он удаляет фичи из датасета по порогу дисперсии

Также подход можно кастомизировать следующим образом: посчитаем соотношение самого частого значения в каждой колонке ко второму самому частому значению. Чем больше это отношение, тем хуже. Колонки с самым большим значением можно удалить.


top_values = {}
for col in df.columns:
tv = df[col].value_counts(dropna=True)
if len(tv) > 1:
tv = tv.values[0] / tv.values[1]
top_values[col] = tv
top_values = pd.Series(top_values).sort_values(ascending=False)

plt.figure(figsize=(20,4))
sns.barplot(x=top_values.index, y=top_values).set_title('Соотношение самого частого значения ко второму самому частому значению')
plt.xlabel('Колонки')
plt.ylabel('Соотношение');
plt.xticks(rotation=90);
👍71
👍2
ML Advertising
Photo
Real Time Bidding

Продолжаем введение в Ad Tech. Сегодня поговорим про аукционы в реальном времени (Real Time Bidding RTB).

1️⃣ Как это работает?
Цепь доставки display рекламы можно описать следующим образом:
- когда издатель решает продать рекламное место, он это делает через цеопчку посредников
- Publisher Ad Server. Аггрегеторы на стороне предложения собирают инвентарь на продажу одновременно с нескольких издателей
- SSP или Ad Exchange. Платформа, которая проводит аукцион на покупку рекламного места
- DSP. Платформы-аггрегаторы на стороне спроса. Собирают рекламодателей или рекламные агентства и от их лица делают ставки на RTB аукционе


2️⃣ Bid Request & Bid Response
На каждое продаваемое рекламное место SSP проводит аукцион
- Для этого она отправляет запросы ставок (Bid Request) на партнерские DSP. В состав Bid Request могут входить
- контекстные данные об издателе: сайте или приложении, формат рекламного места, допустимый формат креатива (banner, native, video), наличие ограничений по brand-safety
- данные о пользователе, полученные из cookie
- настройки аукциона (время таймаута, floor price etc.)
- Несмотря на то, что различных издателей, SSP и DSP достаточно много, общение между ними происходит по стандартному протоколу OpenRTB
- DSP-участники аукциона оценивают запрос, чтобы понять, соответсвует ли он критериям рекламных кампаний клиентов, и если да, то какова его ценность для рекламодателя
- После этого участники отправляют ответ (Bid Response) со ставкой обратно на SSP. Победивший в аукционе DSP выставляет креатив своего клиента на купленное рекламное мести для показа.


3️⃣ Auction Price
Как разрешается аукцион, и сколько платит победитель? Ранее RTB аукционы работали по модели 2й цены (second-price auctions), при котором победитель платит цену (цена, выплаченная в аукционе называется Clearing Price), второго по величине участника. Издатели также могут выставлять цену, ниже которой ставки не принимаются (Floor Price).

В настоящее время чаще всего проводятся аукционы первой цены (first-price auctions), в которой победитель платит свою собственную ставку. Это помогает сделать аукцион более прозрачным для издателя и аудита.

#adtech
👍3🔥2
Adversarial Validation

Как проверить, что распределение данных между трейном и тестом одинаковое?

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

Проверяем соответствие распредлений фич на трейне и тесте. Для этого прибегают к методу Adversarial Validation. Суть его проста - научить модель отличать трейн от теста.

Как работает алгоритм?
- объединяем фичи трейна и теста в новом датафрейме
- формируем бинарный таргет: строки из трейна помечаем как 0, из теста - как 1.
- обучаем модель бинарной классификации
- считаем скор (проще всего взять ROC AUC) и формируем при небходимости Feature Importance
- далее смотрим на две вещи
- высокий скор, например, ROC AUC > 85% - это означает, что модель хорошо отличает трейн от теста, значит есть фичи, которые нужно удалять
- чтобы эти фичи найти, смотрим Feature Importance. Фичи с аномально высокой важностью удаляем из датасета
- обучаем модель заново и смотрим ROC AUC. Если он снизился, значит мы на правильном пути и трейн и тест начинают соответствовать друг другу

На каггле есть отличный ноутбук, описывающий и применяющий на практике Adversarial Validation

#mltips
👍5🔥31
👍1