Top Banner
DSC2016 УПРАВЛЯЕМ ЭВОЛЮЦИЕЙ НА ЛЕТУ
57

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

Apr 13, 2017

Download

Software

Vitebsk DSC
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Управляем эволюцией на лету

DSC2016

УПРАВЛЯЕМ

ЭВОЛЮЦИЕЙ

НА ЛЕТУ

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

Немного о себе

• Дадеркин Максим

• Ведущий инженер-

программист

в компании EPAM Systems

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

Эволюция

Page 4: Управляем эволюцией на лету
Page 5: Управляем эволюцией на лету
Page 6: Управляем эволюцией на лету
Page 7: Управляем эволюцией на лету
Page 8: Управляем эволюцией на лету

Естественный

отбор

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

А/В

кампания

Естественный

отбор==

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

Термины

• A/B-кампания (эксперимент)

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

Термины

• A/B-кампания (эксперимент)

• Рецепт (вариант)

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

Термины

• A/B-кампания (эксперимент)

• Рецепт (вариант)

• Цель

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

Термины

• A/B-кампания (эксперимент)

• Рецепт (вариант)

• Цель

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

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

Зачем нужно проводить

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

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

Как внедрить

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

в проект?

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

Простейшее приложение

Front End

Back End

DB

Mobile

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

1. Добавляем метрики

Внедряем A/B тестирование

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

Добавляем метрики

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

Front End

Back End

DB

Mobile

Метрика

Метрика

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

Front End

Back End

DB

Mobile

Метрика

Метрика

Метрика

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

Что измерять? (Примеры метрик)

• Время работы сервисов (Performance)

• Начало/конец отрисовки контента (WEB)

• Количество JS-скриптов

• Количество картинок

• …

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

Можно использовать

• Google Analytics

• Yandex Metrika

• Ваша библиотека*

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

1. Добавляем метрики

2. Изменяем компоненты

Внедряем A/B-тестирование

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

Требования к приложению

• Архитектура должна быть гибкой

• Компоненты должны быть легко заменяемы

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

1. Добавляем метрики

2. Изменяем компоненты

3. Запускаем A/B-кампанию

Внедряем A/B-тестирование

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

1. Добавляем метрики

2. Изменяем компоненты

3. Запускаем A/B-кампанию

4. Подводим итоги

Внедряем A/B-тестирование

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

1. Добавляем метрики

2. Изменяем компоненты

3. Запускаем A/B-кампанию

4. Подводим итоги

5. Фиксируем изменения

Внедряем A/B-тестирование

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

1. Добавляем метрики

2. Изменяем компоненты

3. Запускаем A/B-кампанию

4. Подводим итоги

5. Фиксируем изменения

Внедряем A/B-тестирование

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

1. Добавляем метрики

2. Изменяем компоненты

3. Запускаем A/B-кампанию

4. Подводим итоги

5. Фиксируем изменения

Внедряем A/B-тестирование

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

Кто использует

Google Analytics и (или)

Яндекс Метрика

вместе с A/B-тестированием?

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

Google Analytics

• Просто интегрировать

• Различные цели для

тестирования

• Широкий список

элементов для

тестирования

• Позволяет создавать

специализированные

отчёты

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

Яндекс Метрика

• Функционал похож на

Google Analytics

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

присутствует в явном

виде

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

• Выбрать сервер для обработки запроса

• Запустить A/B-кампанию в мобильном

приложении

• Генерировать случайные значения

Что GA/YM не умеют?

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

• Модуль: ngx_http_split_clients_module

• Пример конфигурации:

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

• Real-Time база данных

• Удаленная конфигурация (Remote Config)

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

• Библиотека, позволяющая проводить

эксперименты над полями.

• Пример:

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: Управляем эволюцией на лету

Многорукий бандит(Multi-armed bandit)

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

MAB

“Многорукий Бандит”– это эксперимент, в

рамках которого:

• Ставится цель определить оптимальное

или наиболее прибыльное действие

• Распределение трафика по вариантам

можно изменить в ходе эксперимента

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

• Позволяют быстрее получить результат

• Трафик распределяется на наиболее

перспективный вариант

• Трафик распределяется постепенно

MAB

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

А что улучшать?

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

Найти решение мне помогла

программа интуитивного типа,

специально созданная для изучения

определенных сторон человеческой

души. Меня можно назвать отцом

Матрицы, а ее без преувеличения —

матерью.

Архитектор

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

Что такое машинное обучение?

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

Что-то

на входе

Что-то

на выходе

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

Что-то

на входе

Что-то

на выходе𝑥 + 𝑎 𝑛 =

𝑘=0

𝑛𝑛

𝑘𝑥𝑘𝑎𝑛−𝑘

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

Машинное обучение

• Машинное обучение – область обучения,

которая дает компьютерам возможность

учиться не будучи явно

запрограммированными.

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

Задачи машинного обучения:

• Регрессия (ответ - числа, задачи

прогнозирования)

• Классификация

• Ранжирование (поисковые системы)

Машинное обучение

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

Как определить метрики,

важные для вашего

приложения?

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

Постановка задачи

• У нас есть страница, которую мы хотим

улучшить.

• Цель: пользователь совершает покупку.

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

Метрики страницы (Бинарные)

• наличие или отсутствие определенного

элемента на странице

• совершил пользователь покупку или нет

• использование http(s)

• http/2

• мобильный клиент

• планшет

• …

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

• время ответа сервера

• время загрузки страницы (DOM ready)

• разрешение экрана

• …

Метрики страницы (Количественные)

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

Случайный лесRandom Forest

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

Набор средств

• TensorFlow

• Apache Spark Mlib

• Microsoft CNTK

• …

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

Итоги

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

Вопросы?