Ускоряем исследования с помощью конкурсов как их...

34
Ускорение исследовани й за счет организации конкурсов Иван Гуз Михаил Трофимов

Upload: ontico

Post on 19-Feb-2017

448 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Ускорение исследований за счет организации конкурсов

Иван ГузМихаил Трофимов

Page 2: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Кто-то реально проводит конкурсы?

• Netflix (2009) – 1M $– Прогноз рейтингов кинофильмов

• Heritage Provider Network (2012) – 3M $– Прогноз времени госпитализации

• Top3 наиболее популярные платформы:

• Конкурсы устраивают известные компании: Avito, Yandex, …, Facebook, Amazon, Microsoft

Платформа Год запуска #Решателей #Конкурсов Сумма

призовKaggle 2010 396 K 199 3.5M $CrowdANALYTIX 2011 9.5 K 99 310K $DrivenData 2014 < 1K 7 22K $

Page 3: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

КонкурсыСодержит ли объявление запрещенный товар?

Какова вероятность клика на объявлении?Есть ли телефон на изображении?

Кому давать скидку?

Page 4: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Зачем нужны конкурсы

Big Data Swamp

Конкурс

• Определение предельно достижимого качества решения задачи за короткое время

• Получение методики решения или хотя бы идей за короткое время

Page 5: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Должна быть экспоненциальная сложность! Откуда?Сырые данные- Поведенческие/статические

данные- Неструктурированная

информация: тексты, изображения, видео

Признаковое описание- Осмысленные признаки- Автоматические признаки

Алгоритм- Любая функция: F(признаковое описание) -> Прогноз

Критерии задач для конкурсов

Бесконечно много вариантов!

Бесконечно функций!

Page 6: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

CTR PredictionГде экспоненциальная сложность?

Что влияет на вероятность клика?История просмотров? Похожесть поискового запроса и заголовка объявления? Соседние объявления? День недели?

• 40 GB данных• 414 команд• Улучшение LogLoss: 0.057 -> 0.040

Page 7: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Советы 1:Данные• Не бойтесь выдавать максимум имеющихся у

вас сырых данных

Сигнал может быть в самых неожиданных для вас местах

• Выдайте упрощенную выборку с базовыми признаками для понижения порога входа

Big Data Swamp

Page 8: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Совет 2: Train / Test

Train Test Public (70%)Test Private (30%)

Обучаемся• Известны ответы

Промежуточный рейтинг:• Обратная связь• Стимулируем конкуренцию

• Не допустить утечек из Train в Test• Test Private и Public брать из одной

генеральной совокупности• Дать много репрезентативных данных на

Test, Private чтобы исключить переобучение

Финальный рейтинг:• Определяем победителей

Page 9: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Борьба с утечками:CTR prediction

User 1

User 2

User 3

Время

User 1

User 2

User 3

Test EventTrain Event

Утечка!

Page 10: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Конкурс - Телефоны на фото

Fake!

Fake!

Подача объявления

Page 11: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Данные - изображения

Про

сто

Сло

жно

Есть контакты Нет контактов

Page 12: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Этапы конкурса

Train – 40K картинокTest Public – 10K картинок

Test Private – 10K картинок

Время

Изначально скрыт

Обучаем моделии соревнуемся

Замораживаеммодели

СкоримTest Private

• Выиграла Deep Learning модель: Public/Private AUC 0.85/0.95• Плохое разбиение на Public/Private Test• Переобучилась под фрагменты изображений => плохая постановка

Page 13: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Конкурс: Обнаружение запрещенного товара по тексту

• 4 GB текста• 285 команд• Улучшение AP@K: 0.927 -> 0.987

Page 14: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Совет 3:Организация

• Предоставьте участникам код baseline модели и как ее построить

– Это позволит им не терять время на изобретение велосипеда

• Не устраивайте конкурсы длиннее чем 2 мес

– Слишком много времени приводит к созданию чрезмерно сложных решений

– Лучшие чрезмерно сложные решения зачастую эквивалентны по качеству. Победителя будет определять случай

• Ограничивайте количество сабмитов. Не более 2х раз в день.

– Иначе можно использовать обратную связь от тестовой выборки для повышения качества модели (переобучение)

Page 15: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Совет 4: Когда проводить конкурсы?

Конкурс

Конкурс

Формируем требованияк инфраструктуре

Конкурс

Page 16: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Спортивный анализ данных: ошибки, трюки, тактика

Михаил Трофимов

Page 17: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

С чего начинается соревнование•Конкурс — это данные + метрика + правила•Участники должны

•оптимизировать метрику •на фиксированном наборе данных•с учетом правил

Нет ограничений на вычислительные мощности, время или «разумность» решения!

Page 18: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

ДанныеНачинать всегда следует с осмотра данных

Часто бывают баги в описании, ошибки в самих данных, может отсутствовать кусок

«Все врут»•нужно критично относиться к тому, что известно про датасет

В данных порой бывают «утечки»•это искусственные зависимости, которых не должно было быть, и которые приводят к нереалистичному результату

Page 19: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Примеры утечек«Truly Native?» (kaggle, 2015)

•бинарная классификация веб-страниц•признак «дата создания файла»: >0.998 (AUC)

«Predict Exacerbation in patients with Respiratory Diseases» (crowdanalytix, 2014)

•бинарная классификация пациентов•признак «id объекта»: >0.8 (AUC)

«Интернет-олимпиада Викимарта», 3я задача (2013)•бинарная классификация пользовательской сессии (завершит ли сессию в следующий момент)

•в описании сессии был признак «pageviews»•признак «длина сессии == pageview»: >0.999 (accuracy)

Page 20: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

MетрикаМетрика составляет половину задачи!

Для организатора:промах с выбором метрики = промах с постановкой задачи

Для участника:важно понимать ее особенности

Пример:RMSLE (root mean squared log error)

следует сразу перейти от y к log(y+1)

Page 21: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Валидация

Основная идея:•несколько раз бьем выборку на обучение\контроль•смотрим на среднее\дисперсию метрики на контроле

Дьявол в мелочах: как именно производить разбиение?

Важно иметь локальный надежный механизм оценки качества решения!

Page 22: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Валидация

Типичный пример:•если есть временная ось — делить выборку «до\после», а не перемешивать данные

При разбиении важно как можно точнее смоделировать «боевые» условия для контрольного множества!

Page 23: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Что дальше?Ок, построили цикл валидации, что дальше? Начать с простого решения — и итеративно его усложнять

•за счет алгоритмов• но на одних алгоритмах далеко не уедешь

•за счет новых признаков/идей• хороший признак полезнее крутого алгоритма

Page 24: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Feature engineering•Придумывание признаков — почти искусство•Есть ряд стандартных приемов (логарифм, степень, произведения\разности,…)

•Полезно иметь богатое воображение•Можно почерпнуть идеи из научных статей по теме задачи•Будьте готовы, что 90% идей не взлетят

Page 25: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

АнсамблиПолезнее инвестировать время в признаки\идеи.Но если идеи совсем кончились — используйте ансамбли!

Page 26: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Ансамбли• Характерное увеличение качества: 1-3%• Цена — в разы большая вычислительная сложность• Ансамбли могут быть монструозными

Page 27: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Базовый стек

Page 28: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

БиблиотекиНазвание Что реализует? python only

sklearn Набор классических алгоритмов Да

xgboost Градинтный бустинг над решающими деревьями и логистическими регрессиями

Нет

vowpal wabbit Множество линейных и почти линейных моделей

Нет

LibFM, LibFFM Факторизационные машины Нет

liblinear Набор линейных методов (в том числе линейный SVM)

Нет

Theano Вычислительный граф Да

Lasange (надстройка над Theano)

Набор блоков для построения нейросетей Да

Page 29: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

GIGOML\DA — не магия и не серебряная пуляИногда лучшее решение немногим лучше тривиального (случайного)

•«The Big Data Combine Engineered by BattleFin»(kaggle)• прогнозирование многомерных временных рядов• лучшее решение ~ последнее значение * 1.014

•«Acquire Valued Shoppers Challenge»(kaggle)• предсказание возвращения покупателя• лучшее решение: 0.62 AUC

Garbage In -> Garbage Out

Page 30: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Коротко о главномХотите выиграть?

• Внимательно смотрите на данные• Осознайте метрику• Посмотрите на задачу с разных сторон,

попробуйте разные идеи• Смешайте все идеи и наработки

Page 31: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Правильные ожидания от конкурсовНЕ ждите от конкурсов готового решения!

Page 32: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Правильные ожидания от конкурсовИспользуйте конкурсы как возможность найти и познакомиться с экспертами

Page 33: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Правильные ожидания от конкурсовРезультат конкурса – идеи, которые нужно проверять на новых данных, и на их основе строить промышленное решение

Page 34: Ускоряем исследования с помощью конкурсов как их готовить и выигрывать / Иван Гуз, Михаил Трофимов

Спасибо за внимание!

Вопросы?