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

Post on 19-Feb-2017

448 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

• 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 $

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

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

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

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

Big Data Swamp

Конкурс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Big Data Swamp

Совет 2: Train / Test

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

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

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

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

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

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

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

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

User 1

User 2

User 3

Время

User 1

User 2

User 3

Test EventTrain Event

Утечка!

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

Fake!

Fake!

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

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

Про

сто

Сло

жно

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

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

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

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

Время

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

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

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

СкоримTest Private

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

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

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

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

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

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

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

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

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

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

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

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

Конкурс

Конкурс

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

Конкурс

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

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

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

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

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

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

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

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

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

Примеры утечек«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)

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

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

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

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

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

Валидация

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

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

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

Валидация

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

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

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

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

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

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

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

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

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

Базовый стек

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

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

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

Нет

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

Нет

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

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

Нет

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

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

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

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

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

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

Garbage In -> Garbage Out

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

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

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

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

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

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

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

Вопросы?

top related