Что такое A/B-тестирование

A/B-тестирование, также известное как сплит-тестирование, относится к рандомизированному процессу экспериментирования, при котором две или более версии переменной (веб-страница, реклама и т. д.) одновременно демонстрируются разным сегментам пользователей или клиентов, чтобы определить, какая из них версия оказывает максимальное влияние и влияет на бизнес-показатели.

В этой статье рассматриваются три типа A/B-тестирования.

  1. Классическое A/B-тестирование
  2. Последовательное A/B-тестирование
  3. Машинное обучение для A/B-тестирования

Обзор и цель

SmartAd — рекламное агентство, ориентированное на мобильные устройства. Он разрабатывает интуитивно понятную сенсорную рекламу. Он предоставляет брендам автоматизированный рекламный опыт с помощью машинного обучения и творческого мастерства. Их компания основана на принципе добровольного участия, который, как доказано, увеличивает вовлеченность и запоминаемость бренда в 10 раз больше, чем статические альтернативы.

Для клиента SmartAd запускает онлайн-рекламу, чтобы повысить узнаваемость бренда. Взимая плату с клиента в зависимости от взаимодействия пользователей с рекламой, которую он создал и доставил по различным каналам, SmartAd зарабатывает деньги. SmartAd предлагает дополнительную услугу, которая измеряет рост узнаваемости бренда в результате рекламы, которую он показывает онлайн-пользователям, чтобы повысить свою конкурентоспособность на рынке. Основная цель этого исследования — определить, значительно ли кампании компании повысили узнаваемость бренда.

Чтобы оценить влияние креатива или рекламы, которую они разрабатывают, на различные ключевые показатели эффективности верхней части воронки, такие как запоминаемость и отношение к бренду, SmartAd предлагает дополнительную услугу под названием Brand Impact Optimizer (BIO) — краткий опросник, поставляемый с каждой кампанией.

Данные БИО для этого проекта представляют собой ответы онлайн-пользователей «Да» и «Нет» на следующий вопрос.

В: Вы знаете марку Lux? О Да. О Нет.

О данных

Данные имеют следующие столбцы

  • auction_id:уникальный идентификатор онлайн-пользователя, которому была представлена ​​БИО. В стандартной терминологии это называется идентификатором показа. Пользователь может увидеть анкету BIO, но не отвечать на нее. В этом случае оба столбца да и нет равны нулю.
  • эксперимент: к какой группе относится пользователь — контрольной или открытой.
  • дата: дата в формате ГГГГ-ММ-ДД.
  • час: час дня в формате ЧЧ.
  • device_make: название типа устройства, которое есть у пользователя, например. Samsung
  • platform_os: идентификатор операционной системы пользователя.
  • browser: имя браузера, который пользователь использует для просмотра анкеты BIO.
  • yes: 1, если пользователь выбирает переключатель «Да» для анкеты BIO.
  • нет: 1, если пользователь выбирает переключатель «Нет» для анкеты BIO.

Если недавняя рекламная кампания значительно повысила узнаваемость бренда, необходим надежный алгоритм проверки гипотез, чтобы определить, произошло ли это. С помощью анкеты опроса мы получили информацию от людей, которые просматривали как поддельную, так и настоящую рекламу. Давайте применим методы регрессии, чтобы спрогнозировать, насколько креативная реклама повысит узнаваемость бренда для нашей целевой переменной.

Методологии/инструменты

MLFlow: это платформа с открытым исходным кодом для управления сквозным жизненным циклом машинного обучения. Он состоит из следующих основных компонентов: Отслеживание: позволяет отслеживать эксперименты для записи и сравнения параметров и результатов.

  • В MLflow легко настроить механизм отслеживания моделей.
  • Он предлагает очень интуитивно понятные API для обслуживания.
  • Он обеспечивает сбор данных, подготовку данных, обучение модели и запуск модели в производство.

Контроль версий данных (DVC): система контроля версий с открытым исходным кодом для проектов машинного обучения. Это система контроля версий с открытым исходным кодом для проектов по науке о данных и машинному обучению.

  • Наряду с управлением версиями данных DVC также позволяет отслеживать модели и конвейеры.
  • С DVC вам не нужно перестраивать предыдущие модели или методы моделирования данных, чтобы достичь прежнего состояния результатов.
  • Наряду с управлением версиями данных DVC также позволяет отслеживать модели и конвейеры.

Непрерывное машинное обучение (CML): это CI/CD для проектов машинного обучения · GitFlow для обработки данных · Автоматические отчеты для экспериментов по машинному обучению.

Классическое A/B-тестирование

В нашем классическом A/B-тестировании мы выполнили следующие шаги.

  • Определите базовый коэффициент конверсии и минимальный обнаруживаемый эффект (MDE).
  • Рассчитайте размер выборки, используя статистическую мощность и значимость, добавив показатели на предыдущем шаге.
  • Привлекайте трафик к своим вариантам, пока не достигнете целевого образца для каждого варианта.
  • Наконец, оцените результаты вашего A/B-теста.

Если разница в производительности между вариациями достигла или превысила MDE, гипотеза вашего эксперимента подтвердилась, в противном случае необходимо начинать тест с нуля.

Результаты классического A/B-тестирования

Мы выяснили, что размер нашей выборки должен быть 11661 для достижения мощности 80%. Статистическая мощность — это вероятность того, что тест правильно отклонит нулевую гипотезу.

Мы получили более высокий уровень значимости, чем p-значение, а значимая мощность слишком низкая, что показывает, что существует вероятность ошибки типа II (невозможно отклонить нулевую гипотезу, когда она ложна).

Ограничения и проблемы классического A/B-тестирования

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

Последовательное A/B-тестирование

Последовательное A/B-тестирование позволяет экспериментаторам анализировать данные во время выполнения теста, чтобы определить, можно ли принять раннее решение. последовательная выборка работает очень нетрадиционным образом; вместо фиксированного размера выборки вы выбираете один элемент (или несколько) за раз, а затем проверяете свою гипотезу. Мы будем использовать алгоритм последовательного тестирования отношения правдоподобия (SPRT), основанный на статистике отношения правдоподобия, для нашего набора данных.

Общие шаги условного SPRT

  1. Рассчитать критические верхнюю и нижнюю границы принятия решений
  2. Выполните кумулятивную сумму наблюдения
  3. Рассчитать тестовую статистику (отношение правдоподобия) для каждого из наблюдений
  4. Рассчитать верхний и нижний пределы для подвергаемой воздействию группы
  5. Подать заявку на остановку.

Результаты, полученные в результате последовательного A/B-тестирования

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

Ограничения и проблемы последовательного A/B-тестирования

Даже если последовательное A/B-тестирование невероятно полезно для кластеризации аудитории в разные сегменты (кластеры) — сегментации данных аудитории на аналогичные группы из ряда измерений и может использоваться для проведения целенаправленного A/B-тестирования на более детальных группах аудитории, иногда это слишком усложняет A/B-тестирование для простого набора данных (системы)

Тестирование значимости с использованием машинного обучения (A/B-тестирование на основе машинного обучения)

Это не просто вопрос расчета разницы между открытыми и контролируемыми отклонениями, чтобы определить, какой из них был выбран при использовании машинного обучения для A/B-тестирования; вместо этого речь идет о выяснении того, какой параметр (переменная) в данных имеет наибольшее значение значимости для прогнозирования результата.

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

Пятикратная перекрестная проверка

Пятикратная перекрестная проверка (CV) — это процесс, когда все данные случайным образом разбиваются на k кратностей, в нашем случае k=5, а затем модель обучается на k−1 кратностях, при этом одна кратность остается для проверки модель.

Эта процедура повторяется k раз. Однако в этой работе все данные сначала разбиваются на наборы данных для обучения и тестирования, а набор данных для обучения используется для перекрестной проверки.

  1. Логистическая регрессия

Логистическая регрессия — это алгоритм «машинного обучения с учителем», который можно использовать для моделирования вероятности определенного класса или события. Он используется, когда данные линейно разделимы, а результат носит двоичный или дихотомический характер.

Без 5-кратного сгиба

{'accuracy': 0.58, 'precision': 0.51, 'recall': 0.36, 'entropy': 0.68, 'true_pos': 160, 'true_neg': 57, 'false_pos': 54, 'false_neg': 102}

Важность функции

Матрица путаницы

Применяется в 5 раз

{'accuracy': 0.5553319919517102, 'validation': 0.5542168674698795}

Точность в 5 раз

2. Классификатор случайного леса

Случайный лес — это метаоценка, которая соответствует ряду классификаторов дерева решений для различных подвыборок набора данных и использует усреднение для повышения точности прогнозирования и контроля переобучения.

Без 5-кратного сгиба

{'accuracy': 0.55, 'precision': 0.47, 'recall': 0.52, 'entropy': 0.96, 'true_pos': 122, 'true_neg': 82, 'false_pos': 92, 'false_neg': 77}

Важность функции

Матрица путаницы

Применяется в 5 раз

{'accuracy': 0.8571428571428571, 'validation': 0.4979919678714859}

Точность в 5 раз

3. XGBoost

XGBoost — это оптимизированная распределенная библиотека повышения градиента, разработанная для обеспечения высокой эффективности, гибкости и портативности.

Без 5-кратного сгиба

{'accuracy': 0.54, 'precision': 0.46, 'recall': 0.52, 'entropy': 0.86, 'true_pos': 119, 'true_neg': 82, 'false_pos': 95, 'false_neg': 77}

Важность функции

Матрица путаницы

Применяется в 5 раз

Точность в 5 раз

{'accuracy': 0.8249496981891348, 'validation': 0.5060240963855421}

Заключение

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

Отсутствие достаточного количества выборки является причиной того, что уровень точности логистической регрессии и модели xgboost практически идентичен.

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

Ссылки

  1. https://www.researchgate.net/publication/340524896_Prediction_of_geometry_deviations_in_additive_manufactured_parts_comparison_of_linear_regression_with_machine_learning_algorithms#pf7
  2. https://xgboost.readthedocs.io/en/stable/
  3. https://www.databricks.com/session_eu20/data-versioning-and-reproducible-ml-with-dvc-and-mlflow
  4. https://www.kaggle.com/code/joparga3/2-tuning-parameters-for-logistic-regression/ноутбук
  5. https://scikit-learn.org/stable/auto_examples/linear_model/plot_logistic_l1_l2_sparsity.html
  6. https://www.freshrelevance.com/blog/limitations-a-b-testing
  7. https://www.knime.com/blog/regularization-for-logistic-regression-l1-l2-gauss-or-laplace
  8. https://splitmetrics.com/blog/sequential-a-b-testing/
  9. https://hbr.org/2017/06/a-refresher-on-ab-testing
  10. https://github.com/iterative/cml#install-cml-as-a-package