Управляем эволюцией на лету
TRANSCRIPT
![Page 1: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/1.jpg)
DSC2016
УПРАВЛЯЕМ
ЭВОЛЮЦИЕЙ
НА ЛЕТУ
![Page 2: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/2.jpg)
Немного о себе
• Дадеркин Максим
• Ведущий инженер-
программист
в компании EPAM Systems
![Page 3: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/3.jpg)
Эволюция
![Page 4: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/4.jpg)
![Page 5: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/5.jpg)
![Page 6: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/6.jpg)
![Page 7: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/7.jpg)
![Page 8: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/8.jpg)
Естественный
отбор
![Page 9: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/9.jpg)
А/В
кампания
Естественный
отбор==
![Page 10: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/10.jpg)
Термины
• A/B-кампания (эксперимент)
![Page 11: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/11.jpg)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
![Page 12: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/12.jpg)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
![Page 13: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/13.jpg)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
• A/B-тестирование
![Page 14: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/14.jpg)
Зачем нужно проводить
A/B-тестирование?
![Page 15: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/15.jpg)
![Page 16: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/16.jpg)
Как внедрить
A/B-тестирование
в проект?
![Page 17: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/17.jpg)
Простейшее приложение
Front End
Back End
DB
Mobile
![Page 18: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/18.jpg)
1. Добавляем метрики
Внедряем A/B тестирование
![Page 19: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/19.jpg)
Добавляем метрики
![Page 20: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/20.jpg)
Front End
Back End
DB
Mobile
Метрика
Метрика
![Page 21: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/21.jpg)
Front End
Back End
DB
Mobile
Метрика
Метрика
Метрика
![Page 22: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/22.jpg)
Что измерять? (Примеры метрик)
• Время работы сервисов (Performance)
• Начало/конец отрисовки контента (WEB)
• Количество JS-скриптов
• Количество картинок
• …
![Page 23: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/23.jpg)
Можно использовать
• Google Analytics
• Yandex Metrika
• Ваша библиотека*
![Page 24: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/24.jpg)
1. Добавляем метрики
2. Изменяем компоненты
Внедряем A/B-тестирование
![Page 25: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/25.jpg)
Требования к приложению
• Архитектура должна быть гибкой
• Компоненты должны быть легко заменяемы
![Page 26: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/26.jpg)
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
Внедряем A/B-тестирование
![Page 27: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/27.jpg)
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
Внедряем A/B-тестирование
![Page 28: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/28.jpg)
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
![Page 29: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/29.jpg)
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
![Page 30: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/30.jpg)
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
![Page 31: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/31.jpg)
Кто использует
Google Analytics и (или)
Яндекс Метрика
вместе с A/B-тестированием?
![Page 32: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/32.jpg)
Google Analytics
• Просто интегрировать
• Различные цели для
тестирования
• Широкий список
элементов для
тестирования
• Позволяет создавать
специализированные
отчёты
![Page 33: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/33.jpg)
Яндекс Метрика
• Функционал похож на
Google Analytics
• A/B-тестирование не
присутствует в явном
виде
![Page 34: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/34.jpg)
![Page 35: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/35.jpg)
• Выбрать сервер для обработки запроса
• Запустить A/B-кампанию в мобильном
приложении
• Генерировать случайные значения
Что GA/YM не умеют?
![Page 36: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/36.jpg)
• Модуль: ngx_http_split_clients_module
• Пример конфигурации:
![Page 37: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/37.jpg)
• Real-Time база данных
• Удаленная конфигурация (Remote Config)
![Page 38: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/38.jpg)
• Библиотека, позволяющая проводить
эксперименты над полями.
• Пример:
button_color = uniformChoice(choices=["red", "green"], unit=userid);
button_text = "Ok";is_change_text = bernoulliTrial(p=0.3, unit=userid);if (is_change_text) {
button_text = "Apply";}
![Page 39: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/39.jpg)
Многорукий бандит(Multi-armed bandit)
![Page 40: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/40.jpg)
MAB
“Многорукий Бандит”– это эксперимент, в
рамках которого:
• Ставится цель определить оптимальное
или наиболее прибыльное действие
• Распределение трафика по вариантам
можно изменить в ходе эксперимента
![Page 41: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/41.jpg)
• Позволяют быстрее получить результат
• Трафик распределяется на наиболее
перспективный вариант
• Трафик распределяется постепенно
MAB
![Page 42: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/42.jpg)
А что улучшать?
![Page 43: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/43.jpg)
![Page 44: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/44.jpg)
Найти решение мне помогла
программа интуитивного типа,
специально созданная для изучения
определенных сторон человеческой
души. Меня можно назвать отцом
Матрицы, а ее без преувеличения —
матерью.
Архитектор
![Page 45: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/45.jpg)
Что такое машинное обучение?
![Page 46: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/46.jpg)
Что-то
на входе
Что-то
на выходе
![Page 47: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/47.jpg)
Что-то
на входе
Что-то
на выходе𝑥 + 𝑎 𝑛 =
𝑘=0
𝑛𝑛
𝑘𝑥𝑘𝑎𝑛−𝑘
![Page 48: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/48.jpg)
Машинное обучение
• Машинное обучение – область обучения,
которая дает компьютерам возможность
учиться не будучи явно
запрограммированными.
![Page 49: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/49.jpg)
Задачи машинного обучения:
• Регрессия (ответ - числа, задачи
прогнозирования)
• Классификация
• Ранжирование (поисковые системы)
Машинное обучение
![Page 50: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/50.jpg)
Как определить метрики,
важные для вашего
приложения?
![Page 51: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/51.jpg)
Постановка задачи
• У нас есть страница, которую мы хотим
улучшить.
• Цель: пользователь совершает покупку.
![Page 52: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/52.jpg)
Метрики страницы (Бинарные)
• наличие или отсутствие определенного
элемента на странице
• совершил пользователь покупку или нет
• использование http(s)
• http/2
• мобильный клиент
• планшет
• …
![Page 53: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/53.jpg)
• время ответа сервера
• время загрузки страницы (DOM ready)
• разрешение экрана
• …
Метрики страницы (Количественные)
![Page 54: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/54.jpg)
Случайный лесRandom Forest
![Page 55: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/55.jpg)
Набор средств
• TensorFlow
• Apache Spark Mlib
• Microsoft CNTK
• …
![Page 56: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/56.jpg)
Итоги
![Page 57: Управляем эволюцией на лету](https://reader031.vdocuments.pub/reader031/viewer/2022021922/58a1a8011a28abe6468b5ae5/html5/thumbnails/57.jpg)
Вопросы?