Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
DSC2016
УПРАВЛЯЕМ
ЭВОЛЮЦИЕЙ
НА ЛЕТУ
Немного о себе
• Дадеркин Максим
• Ведущий инженер-
программист
в компании EPAM Systems
Эволюция
Управляем эволюцией на лету
Управляем эволюцией на лету
Управляем эволюцией на лету
Управляем эволюцией на лету
Естественный
отбор
А/В
кампания
Естественный
отбор
==
Термины
• A/B-кампания (эксперимент)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
Термины
• A/B-кампания (эксперимент)
• Рецепт (вариант)
• Цель
• A/B-тестирование
Зачем нужно проводить
A/B-тестирование?
Управляем эволюцией на лету
Как внедрить
A/B-тестирование
в проект?
Простейшее приложение
Front End
Back End
DB
Mobile
1. Добавляем метрики
Внедряем A/B тестирование
Добавляем метрики
Front End
Back End
DB
Mobile
Метрика
Метрика
Front End
Back End
DB
Mobile
Метрика
Метрика
Метрика
Что измерять? (Примеры метрик)
• Время работы сервисов (Performance)
• Начало/конец отрисовки контента (WEB)
• Количество JS-скриптов
• Количество картинок
• …
Можно использовать
• Google Analytics
• Yandex Metrika
• Ваша библиотека*
1. Добавляем метрики
2. Изменяем компоненты
Внедряем A/B-тестирование
Требования к приложению
• Архитектура должна быть гибкой
• Компоненты должны быть легко заменяемы
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
1. Добавляем метрики
2. Изменяем компоненты
3. Запускаем A/B-кампанию
4. Подводим итоги
5. Фиксируем изменения
Внедряем A/B-тестирование
Кто использует
Google Analytics и (или)
Яндекс Метрика
вместе с A/B-тестированием?
Google Analytics
• Просто интегрировать
• Различные цели для
тестирования
• Широкий список
элементов для
тестирования
• Позволяет создавать
специализированные
отчёты
Яндекс Метрика
• Функционал похож на
Google Analytics
• A/B-тестирование не
присутствует в явном
виде
Управляем эволюцией на лету
• Выбрать сервер для обработки запроса
• Запустить A/B-кампанию в мобильном
приложении
• Генерировать случайные значения
Что GA/YM не умеют?
• Модуль: ngx_http_split_clients_module
• Пример конфигурации:
• Real-Time база данных
• Удаленная конфигурация (Remote Config)
• Библиотека, позволяющая проводить
эксперименты над полями.
• Пример:
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";
}
Многорукий бандит
(Multi-armed bandit)
MAB
“Многорукий Бандит”– это эксперимент, в
рамках которого:
• Ставится цель определить оптимальное
или наиболее прибыльное действие
• Распределение трафика по вариантам
можно изменить в ходе эксперимента
• Позволяют быстрее получить результат
• Трафик распределяется на наиболее
перспективный вариант
• Трафик распределяется постепенно
MAB
А что улучшать?
Управляем эволюцией на лету
Найти решение мне помогла
программа интуитивного типа,
специально созданная для изучения
определенных сторон человеческой
души. Меня можно назвать отцом
Матрицы, а ее без преувеличения —
матерью.
Архитектор
Что такое машинное
обучение?
Что-то
на входе
Что-то
на выходе
Что-то
на входе
Что-то
на выходе
𝑥 + 𝑎 𝑛
=
𝑘=0
𝑛
𝑛
𝑘
𝑥 𝑘
𝑎 𝑛−𝑘
Машинное обучение
• Машинное обучение – область обучения,
которая дает компьютерам возможность
учиться не будучи явно
запрограммированными.
Задачи машинного обучения:
• Регрессия (ответ - числа, задачи
прогнозирования)
• Классификация
• Ранжирование (поисковые системы)
Машинное обучение
Как определить метрики,
важные для вашего
приложения?
Постановка задачи
• У нас есть страница, которую мы хотим
улучшить.
• Цель: пользователь совершает покупку.
Метрики страницы (Бинарные)
• наличие или отсутствие определенного
элемента на странице
• совершил пользователь покупку или нет
• использование http(s)
• http/2
• мобильный клиент
• планшет
• …
• время ответа сервера
• время загрузки страницы (DOM ready)
• разрешение экрана
• …
Метрики страницы (Количественные)
Случайный лес
Random Forest
Набор средств
• TensorFlow
• Apache Spark Mlib
• Microsoft CNTK
• …
Итоги
Вопросы?

More Related Content

Управляем эволюцией на лету