ML Advertising
Photo
Что такое cookie и как работает cookie-sync?
ЧАСТЬ 2
Какие типы cookie существуют?
Различают 2 типа cookie
- first-party cookie
- third-party cookie
1️⃣ First-party cookie
Эти cookie создаются сайтами, которые мы посещаем напрямую. Например, если вы посещаете
Эти типы 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
Если пользователь посещает сайт
Когда пользователь переходит на другой домен, например
source: clearcode
#adtech
ЧАСТЬ 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
Сохраняем к себе!
Подборка учебных пособий, проектов, библиотек, видео, статей, книг и всего, что связано с PyTorch.
Что здесь можно найти?
- Туториалы и обучалки
- LLMs
- PyTorch для табличных данные
- Визуализация
- Explainability
- Object Detection
- Архитектуры
- Оптимизаторы
- Квантование
- Сжатие сеток
- Facial/ Pose Recognition
- Super Resolution
- Medical PyTorch
- Video Recognition
- RNNs
- CNNs
- Сегментация
- Графовые сетки
- AE/ VAE
- NLP
- Deep Reinforcement Learning
Сохраняем к себе!
GitHub
GitHub - ritchieng/the-incredible-pytorch: The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and…
The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch. - GitHub - ritchieng/the-incredible-pytorch: The Incredible PyTorch: a curated list...
🔥7👍1
ML Advertising
Traffic Attribution При проведении рекламной кампнии, когда мы продвигаем продукт на разных площадках, нам важно знать откуда приходит больше всего пользователей, и какой KPI на каждой из них. Чтобы это оценить, есть 2 подхода: 1️⃣ bottom-up – когда мы физически…
Ранее я уже писал про метод Marketing Mix Modeling, который помогает анализировать, откуда приходит пользовательский трафик для рекламной кампании. Это особенно актуально в условиях ухода от third-party cookie и ужесточения регламента приватности данных. Но чтобы реализовать MMM, нужны инструменты, например LightweightMMM от Google. В связи с этим, я хотел бы порекомендовать пост Димы, в котором он описывает основные MMM модели с ссылками
Telegram
AdTech & eComm: Мысли одного менеджера
As MMM Rides Again, Google Finds Its Place In The Conversation With Meridian
В мире, где использование куки становится всё менее возможным, маркетологи возвращаются к проверенному временем методу моделирования маркетингового микса (MMM). В марте Google представил…
В мире, где использование куки становится всё менее возможным, маркетологи возвращаются к проверенному временем методу моделирования маркетингового микса (MMM). В марте Google представил…
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
Это поисковая система с интерфейсом, генерирующая ответы на базе ИИ.
Morphic не только отвечает на вопросы, но и генерирует изображения ✨
Проект полностью с открытым кодом и уже находится на 4-м месте в таблице лидеров новичков на Git.
▪Github: github.com/miurla/morphic
▪Попробовать: morphic.sh
@ai_machinelearning_big_data
👍3
Forwarded from DevOps Docker
Деплой проводится с помощью 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 и при чем здесь конфигурация подтверждений
Для репликации в нескольких регионах кластер Kafka может иметь следующую топологию:
- растянутые кластеры (stretched clusters), когда один кластер Kafka устанавливается в нескольких ЦОД. При этом используется протокол синхронной репликации Kafka.
- связанные кластеры (connected clusters) с асинхронной репликацией в нескольких регионах. В этом случае может использоваться внешняя система для копирования данных из одного или нескольких кластеров в другой.
Преимущество растянутого кластера в том, что он сохраняет смещения, а также обеспечивает быстрое аварийное восстановление и автоматическое переключение клиента при сбое без дополнительного кода.
Статья о том, какую топологию может иметь кластер 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 либы предустанливаются на машину
📱 Девайс
К модели есть автономный доступ без интернета, входные данные не отправляются на третью сторону, нет расходов на сервер
Правда, стоит держать в уме, что если у вас сложная хитрая архитектура модели, которая включает еще и препроцессинг, то скорее всего ее будет непросто уложить на девайс. В таком случае всю логику с условиями надо будет переписать на тензорную арифметику
Например, можно рамещать ML модели, например, на смартфоны и платы Raspberry Pi, Arduino. Для этих целей предусмотрены соответствующие либы
- TensorFlow Lite
- Core ML от Apple
- Pytorch Mobile
☁️Облако
Можно использовать большую модель, легко обновлять у всех пользователей, масштабировать. Сейчас существует много удобных сервисов, которые сертифицированы по privacy и выставляют счета on-demand.
На том же AWS предлагаются образы AMI, с помощью которых ML либы предустанливаются на машину
Google AI for Developers
Google AI Edge | Google AI for Developers
🔥2👍1
tqdm для pandas
Небольшой hint по препроцессингу данных.
Есть такая удобная библиотека tqdm, которая позволяет прикреплять прогресс бар для циклических операций. В работе с pandas зачастую приходится применять циклы к датафреймам через метод apply (хотя это и не всегда оптимально). Если датафрейм большой, то это может занять много времени (поскольку pandas нагружает только один поток, но как бороться с этим поговорим отдельно). И чтобы понимать, сколько это займет времени можно воспользоваться расширением progress_apply в tqdm
Достаточно инициировать tqdm для пандаса и использовать progress_apply вместо apply.
#mltips
Небольшой 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
Начинаю цикл постов по введению в цифровую рекламу 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
Jounce Media
Jounce Media — The Little Black Book Series
Download the full series of ad tech primers from Jounce Media
👍5
ML Advertising
Photo
Feature Selection by Variance Threshold
Продолжаем #mltips . Сегодня затронем вопрос отбора фичей, а конкретней отбор по порогу дисперсии.
Дисперсия - это мера изменчивости данных. Фича с нулевой дисперсией статична. Фича с около-нулевой дисперсией так же будет мало полезной для модели. Поэтому такие фичи следует удалять.
В sklearn есть метод VarianceThreshold, он удаляет фичи из датасета по порогу дисперсии
Также подход можно кастомизировать следующим образом: посчитаем соотношение самого частого значения в каждой колонке ко второму самому частому значению. Чем больше это отношение, тем хуже. Колонки с самым большим значением можно удалить.
Продолжаем #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);
scikit-learn
VarianceThreshold
👍7❤1
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
Продолжаем введение в 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
Google for Developers
OpenRTB Integration | Real-time Bidding | Google for Developers
👍3🔥2
Adversarial Validation
Как проверить, что распределение данных между трейном и тестом одинаковое?
Часто бывает, что отправляем в платформу предсказания, а скор сильно ниже чем на локальной валидации. Одной из причин может быть несоответствие распредлений между трейном и тестом.
Проверяем соответствие распредлений фич на трейне и тесте. Для этого прибегают к методу Adversarial Validation. Суть его проста - научить модель отличать трейн от теста.
Как работает алгоритм?
- объединяем фичи трейна и теста в новом датафрейме
- формируем бинарный таргет: строки из трейна помечаем как 0, из теста - как 1.
- обучаем модель бинарной классификации
- считаем скор (проще всего взять ROC AUC) и формируем при небходимости Feature Importance
- далее смотрим на две вещи
- высокий скор, например, ROC AUC > 85% - это означает, что модель хорошо отличает трейн от теста, значит есть фичи, которые нужно удалять
- чтобы эти фичи найти, смотрим Feature Importance. Фичи с аномально высокой важностью удаляем из датасета
- обучаем модель заново и смотрим ROC AUC. Если он снизился, значит мы на правильном пути и трейн и тест начинают соответствовать друг другу
На каггле есть отличный ноутбук, описывающий и применяющий на практике Adversarial Validation
#mltips
Как проверить, что распределение данных между трейном и тестом одинаковое?
Часто бывает, что отправляем в платформу предсказания, а скор сильно ниже чем на локальной валидации. Одной из причин может быть несоответствие распредлений между трейном и тестом.
Проверяем соответствие распредлений фич на трейне и тесте. Для этого прибегают к методу Adversarial Validation. Суть его проста - научить модель отличать трейн от теста.
Как работает алгоритм?
- объединяем фичи трейна и теста в новом датафрейме
- формируем бинарный таргет: строки из трейна помечаем как 0, из теста - как 1.
- обучаем модель бинарной классификации
- считаем скор (проще всего взять ROC AUC) и формируем при небходимости Feature Importance
- далее смотрим на две вещи
- высокий скор, например, ROC AUC > 85% - это означает, что модель хорошо отличает трейн от теста, значит есть фичи, которые нужно удалять
- чтобы эти фичи найти, смотрим Feature Importance. Фичи с аномально высокой важностью удаляем из датасета
- обучаем модель заново и смотрим ROC AUC. Если он снизился, значит мы на правильном пути и трейн и тест начинают соответствовать друг другу
На каггле есть отличный ноутбук, описывающий и применяющий на практике Adversarial Validation
#mltips
Kaggle
What is Adversarial Validation?
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
👍5🔥3❤1