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

Post on 13-Apr-2017

134 views 1 download

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

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

• …

Итоги

Вопросы?