Новый подход к спортивному анализу данных: какие шаблоны «рвет» SDSJ
Специалистам по data science сейчас есть где разгуляться — один Kaggle с его активностью по спортивному анализу данных чего стоит. Но время идет и метрики, по которым определяются победители конкурсов, постепенно устаревают или приедаются — в большинстве случаев используются классические выборки данных. А что, если вместо этого предложить разработать полноценную модель в Docker с конечным решением-моделью?
Таким путем пошел Сбербанк. В ноябре в рамках серии мероприятий по машинному обучению и искусственному интеллекту Sberbank Data Science Journey на онлайн-соревновании Data Science Contest задачи были именно «докерными». Финальное мероприятие Sberbank Data Science Day и подведение итогов конкурса с призовым фондом в 2 миллиона рублей прошло 11 ноября в Tesla Place.
Мы там были и активно общались со спикерами и участниками. Андрей Черток, глава исследовательского подразделения Сбербанка в общении задал тон остальным спикерам. В перерывах удалось поймать одного из организаторов — Алексея Натекина, — одного из спикеров — Михаила Бурцева и среди участников — Сергея Свиридова.
Их мы расспросили про новый формат, «передали привет» Kaggle, нашли новую, неожиданную сторону докерных конкурсов и вытащили оптимальные алгоритмы ML для победы. Но обо всем по порядку.
Андрей Черток
глава исследовательского подразделения Сбербанка
— Как вы оцениваете результаты мероприятия?
— По сравнению с прошлым годом, мы вышли на новый уровень — по количеству участников Sberbank Data Science Day, по уровню спикеров и по сложности задач. В рамках соревнования мы создали первый в России набор данных для создания вопросно-ответных систем, аналог американского датасета. Это можно считать достижением для всего переднего края русскоязычных датасетов, комьюнити по диалоговым системам и задачам анализа текстов.
— Какие практические цели ставил Сбербанк, устраивая конкурс?
— Сейчас актуальны задачи по созданию диалоговых систем, в частности, вопросно-ответных систем. На прошлой неделе мы вернулись с международной конференции NIPS, где этой теме было посвящено множество секций. Мы не хотим отставать, и наш конкурс, надеемся, помогает российскому научному сообществу в решении этой сложной задачи, связанной с созданием диалоговых систем и датасетов. Также мы заинтересованы в развитии технологий, связанных с диалоговыми системами, так как наш банк проходит существенную цифровую трансформацию.
Мы заинтересованы во внедрении технологий в банковскую сферу. Благодаря таким соревнованиям, мы находим людей и получаем алгоритмы, модели и продукты, которые внедряем в бизнес-процессы банка. Еще одна важная цель — позиционирование банка как технологического лидера в области искусственного интеллекта. После таких конкурсов кто-то приходит к нам работать, с кем-то мы делаем совместные проекты. Это хороший драйвер для дальнейших активностей.
— Сбербанк уделяет особое внимание BigData, развивает инфраструктуру, привлекает специалистов… А есть ли какие-то кейсы применения машинного обучения?
BigData актуально для вопросов кибербезопасности: есть большой массив данных для анализа, есть проекты, где в автоматическом режиме решаются классические задачи антифрода. Еще один кейс — банковская ликвидность. Вся система банкоматов переходит на управление моделями МО, которая прогнозирует спрос наличности в банкоматах и оптимальным образом перераспределяет ее во всей сети.
— Да, конечно. Наша AI-трансформация осуществляется и благодаря внедрению моделей машинного обучения в те или иные процессы банка. Ведется реестр моделей инициатив от разных блоков, создано сообщество датасайнтистов в банке. Насчитывается порядка нескольких сотен проектов по внедрению моделей машинного обучения и автоматизации процессов в повседневные бизнес-задачи. Модели скоринга, модели принятия решений о выдаче кредитов для юридических и корпоративных клиентов, розничный бизнес: таргетинг, взаимодействие с клиентом, формирования предложения о продуктах. Практически все автоматизировано, везде используются модели машинного обучения.
В общем, модели и алгоритмы, основанные на анализе больших данных, создаются для оптимизации тех или иных процессов, уменьшения затрат на эти процессы, улучшения клиентского опыта при взаимодействии с банком. Серьезная тема связана с анализом тестов, НЛП, диалоговыми системами. Уже сейчас есть достаточно кейсов, где мы внедряем эти технологии. А в ближайшие месяцы мы планируем запустить несколько проектов, автоматизированных за счет моделей машинного обучения.
— В феврале вы рассказывали о разработке чат-бота. На какой стадии он сейчас?
— Есть несколько чат-ботов, каждый создан для решения различных задач. Некоторые уже в продакшене, некоторые на стадии пилотирования. Уровень развития технологии остановился на стадии сценарных алгоритмов. Нам нужно заранее прописать некий алгоритм действий, которому будет следовать чат-бот. На данный момент это скорее «умный поисковик» по базе данных. Это новый для нас вызов: нужно создать системы, способные улавливать контекст общения с клиентом и персонифицировать его.
Еще есть риск, что такие чат-боты могут неверно понять вопрос клиента и ответить какую-то глупость. Процент ситуаций, когда бот неправильно понимает контекст или вопрос, сейчас достигает 15%. Это недопустимый уровень, чтобы полноценно внедрять текущие решения. Мы прогнозируем в течение 2–3 лет создание более тонких и точных систем, и здесь у нас есть целый ряд проектов, в том числе, с университетами. В качестве примера можно привести iPavlov с физтехом. Здесь ведется большая работа. Чтобы решать такие задачи, мы проводим подобные соревнования, сотрудничаем с лабораториями и привлекаем в банк самых лучших людей.
Алексей Натекин
директор DM Labs, Open Data Science сообщество
— Почему решили сменить формат конкурса и во что это вылилось?
— Да, в этот раз совершенно новый формат конкурса — «докерные» решения, и к нему нужен новый подход. Специалистам гораздо привычней работать с csv и подгонять данные под выборку, а здесь мы требуем полностью рабочую модель. Была мысль использовать телеграм-бота, но побоялись сжечь все ресурсы еще до подведения итогов конкурса.
«Докерные» задачи хороши тем, что на выходе получается воспроизводимое решение, пусть его делать дольше и сложнее. Такие задачи защищены от «болячек» Kaggle — нельзя разместить тестовую выборку и искать утечки.
На Kaggle существует масса конкурсов с какими-то уязвимостями: либо нет рандомных классов, либо находятся утечки данных по результатам лидерборда. Здесь же такое не проходит: у участников просто нет доступа к тестовому множеству. Если бы по условиям конкурса не сказали, сколько в тестовом множестве точек, участники бы самостоятельно не могли это никак узнать. Конечно, алгебраически можно проверить, что в множестве содержится именно указанное количество точек. Но это нетривиально и требует огромных усилий.
Вообще, «докерный» конкурс по вычислительным мощностям обходится тяжело — прислали суммарно около 5500 тысяч решений по задаче А и 1200 решений по задаче Б. Разница в ресурсоемкости при проверке задачи Б по сравнению с задачей А была примерно в 20000 раз. Было «сожжено» около 500 часов работы супермощной многоядерной машины.
— Почему именно Docker?
— Хотелось сделать что-то крутое. Есть такая штука как SQAD — Stanford question answering dataset. По сути, для конкурса собрали такой датасет для русского языка. Получилось даже больше участников, чем на SQAD’e, при этом SQAD’ом занимается профессиональная лаборатория на протяжении полутора лет. Приятно видеть, что человек с первого места в конкурсе смог даже на небольшом датасете получить качество. В итоге, эксперимент получился удачным. Дальше будет все больше и больше аналогичных конкурсов.
— Как думаете, в чем основная проблема типичных csv-like конкурсов?
— В соревнованиях должна появляться какая-то конструктивная составляющая. Грустно наблюдать, что последние несколько лет каждое третье соревнование содержит серьезные недочеты. Поначалу это было на грани между «обидно» и «интересно». Вроде бы, появлялись какие-то новые челленджи с точки зрения безопасности. Потом люди привыкли к этому и стали уже с готовностью искать в данных лики. Сейчас это скорее популярный мемасик: люди смеются над тем, что лидерборд очередного конкурса на Kaggle состоит практически целиком из идеальной метрики.
— Ты думаешь, что Kaggle будет постепенно переходить к формату «докерных» соревнований?
— Kaggle давно пора нанять хотя бы одного data scientist’а, который будет прорешивать конкурсы. Будем честны, «утекший» конкурс — это целиком проваленное соревнование. Если бы у них были люди, которые в этом хоть немного разбираются, дело обстояло бы лучше.
Если «докерных» соревнований будет больше, это приведет к совершенно новым возможностям как для отдельных людей, так и для больших компаний. После проведения таких конкурсов, может быть, начнут появляться marketplace решения. Сейчас у желающих отдать задачу на аутсорс есть два выхода: можно либо купить доступ к какой-нибудь API с надеждой, что она сделана не совсем криво, или обратиться к аутсорсерам/консалтерам и думать, что они сделают что-то сопоставимое по качеству. «Докерный» формат соревнований предлагает альтернативу. Это отличный способ решения задач внешними для компании людьми.
— А сейчас часто практикуется схема, когда несколько моделей обучают путем конкуренции друг с другом (например, заставляют двух чат-ботов общаться друг с другом)?
— Такое, конечно же, есть. Вот простой пример. Как-то мы взяли нашего чат-бота и заставили общаться сам с собой: то, что он говорил, отправлялось ему же. Озвучили мы это голосами из Yandex SpeechKit. Получилось прикольно, подняли себе настроение.
Теперь более серьезный пример. Предположим, мы купили API Алисы из Яндекса и хотим разобрать его по кусочкам: часть блоков оставить, часть переиспользовать, часть написать самостоятельно и в итоге создать новый продукт на базе уже готовой технологии. «Докерный» формат разработки очень бы облегчил нам эту задачу. Конечно, Алиса — не очень правильный пример. Это сложная система, рассчитанная на большое количество пользователей. Мне сложно представить себе какой-нибудь CRT, который сможет разобрать Алису по частям.
Более удачный вариант: выложенные в open source решения для предсказания временных рядов. Типичные решения, побитые на простые блоки и готовые работать с вашими данными, были бы интересны людям и пользовались спросом.
— Расскажите, какие технологии использовали участники конкурса? Потенциальные победители обучали нейронки или использовали другие подходы?
— Сейчас так или иначе топ-10 лидерборда использует архитектуру DRQA, разработанную командой FAIR (Facebok AI Research). Есть ребята из топ-10, которые сказали, что у них в основе лежит не сам DRQA, а какой-то немного по-другому навороченный bidirectionаl, attention плюс еще что-то. Но в любом случае у всех из топ-10 в основе лежали рекуррентные нейронные сети. Надо было брать внешние эмбеддинги, потому что самостоятельно на датасете вопросов-ответов эмбеддинг нормально не обучишь.
В оригинальной статье про DRQA парни из Facebook советовали брать предобученный эмбеддинг, а потом подгонять его. Среди топ-1000 должны быть первые слова вопросов: «Как», «Когда», «Какой» и т.д.
— Для обучения нейросетей нужно много вычислительных ресурсов. Как эту проблему решали участники конкурса?
— Сами LSTM обучались не так долго, как мы ожидали. Одной видеокарточки за глаза хватало. За ночь получить какой-то приемлемый результат точно было можно.
Есть нюанс про связь между использованием нейросетей, вычислительными ресурсами и конкурсами. Сейчас на задачах, где может помогать deep learning, проявляется интересный эффект: доминирование GPU. Во многих конкурсах без видеокарточек вообще никак не получится конкурировать с другими участниками. Например, на идущем сейчас на kaggle конкурсе discount у ребят одна эпоха обучается несколько дней.
Была вероятность, что у нас обязательным условием победы тоже станет наличие GPU. Но первый же участник, который корректно обучил DRQA для наших данных, справился без наличия огромных вычислительных мощностей. На встрече на одной из ML-тренировок он рассказал, что все учил на CPU, видеокарточки у него нет.
Итог: не всегда нужно больше слоев. «More layers» — это скорее мем, или же случай из жизни представителя очень серьезной лаборатории, у которой видеокарточек столько, что можно шутки ради смотреть как быстро обучается ImageNet, а также играться в meta-learning. Нормальный meta-learining начался со статей про «Learn gradient descent using gradient descent». Типичный пример: одной нейронной сетью ты учишь более сложные архитектуры решать задачи, например, обучать новые правила оптимизации. Таким в Гугле занимаются, и очень успешно.
— Как вам в целом мероприятие? Оправдала ли цель средства?
— Я принимал участие в разработке и организации Sberbank Data Science Journey, было интересно посмотреть, что получится. Я перфекционист — думаю, некоторое можно было сделать лучше или вообще поменять. Очень приятно, что практически не было ограничений ресурсов: большой зал, огромные экраны — инфраструктура что надо.
— Получилось ли сделать «идеальную» для data scientist’а программу?
— Одна из главных задач — постараться оставить довольными всех: на этом мероприятии есть и награждение, и бизнес-секции, и доклады для data scientist’ов.
С точки зрения реализации, а также оценок «получилось/не получилось» очень сложно что-то говорить. Мы обсуждаем это посреди мероприятия, но уже можно сказать, что как бы ни было грустно, титул самого популярного и посещаемого мероприятия в СНГ по data science перешел на какое-то время от Data Fest к тому, что происходит здесь. На Data Fest было около 1700 человек, а у нас было 1750 розданных бейджиков уже с самого утра. Я думаю, будет 2100–2200. Зарегистрировалось 3400 человек.
Михаил Бурцев
к.ф.-м.н., заведующий лабораторией нейронных систем и глубокого обучения МФТИ
— Как вы прокомментируете формат посылок в соревновании? «Докерный» формат против классических csv’шек?
— Этот конкурс далеко не первый, где используются докерные посылки. Мы делали аналогичную вещь, но более кустарным способом. Сейчас мы делаем соревнование для NIPS (NIPS Conversational Challenge). Там боты из разных институтов общаются с людьми, а люди оценивают их умение вести беседу. Эти боты запущены на нашей инфраструктуре. Для интерактивных задач это единственный способ адекватно оценить качество модели. Кроме того, такой подход позволяет избежать читерства: ты получил код, знаешь, что он не имеет доступа ни к каким внешним ресурсам.
— Применяется ли такой подход к оцениванию моделей в бизнесе/промышленных задачах?
— Да, такой подход применяется все чаще и чаще. Тендер — это фактически соревнование. Почему Google купил Kaggle? Они освоили соревновательное оценивание моделей, сделали marketplace для поиска решений нестандартных задач крупными компаниями. Идеология соревнований начинает использоваться все чаще. Она позволяет людям удаленно участвовать в конкурсах и удаленно презентовать решения тем, кто заинтересовался задачей. Такая среда помогает людям находить друг друга. Получается настоящий dating сервис для data scientist’ов.
— Как тебе мероприятие в целом?
— С моей точки зрения, все отлично сделано. Люди пришли, общаются. Очень удобно, что в дальней части зала лекция идет, а здесь можно стоять, разговаривать. Еще понравилось, что пригласили хороших выступающих. Думаю, что мероприятие уже удалось, хоть оно еще и не закончилось.
— Участвовали ли Вы или, может быть, ваши ребята из iPavlov в контесте?
— Поскольку мы аффилированы с этим проектом, нам не удалось поучаствовать в соревновании. Один из компонентов ведения диалогов — это ответы на вопросы. Для этого соревнования был создан специальный набор данных на русском языке, аналог американского датасета. Это открывает совершенно новые возможности для построения диалоговых систем и раскрутке их на российском рынке.
Сергей Свиридов
консультант и эксперт в области машинного обучения и анализа данных, преподаватель
— Что скажешь про «докерный» формат конкурса? Может быть, стоило провести соревнование в типичном для кэглеров формате?
— Сейчас есть общая тенденция на подобные вещи: выгружать в качестве результата не просто метки классов, а готовый работающий прототип. Все используют разные подходы, библиотеки. Возможность у себя развернуть чужое решение и понять, как оно работает — это очень эффективный подход.
— Какие алгоритмы машинного обучения кажутся тебе подходящими для решения задач конкурса?
— Хочу отметить RL, эта область сейчас активно развивается. На данном этапе практических хороших результатов не так много, все они сосредоточены внутри крупных компаний. Но я думаю, что продвижение RL в бизнес — вопрос всего пары лет.
— А что насчет хайпа вокруг нейронных сетей? Оправдан ли он?
— Нейронная сеть — универсальный аппроксиматор. Хорошо обученная сеть позволяет получать адекватные результаты. Прорывы в deep RL были вызваны тем, что мы совместили хорошо известные еще с 70–80-х подходы reinforcement learning с глубокими нейронными сетями. К тому же, с использованием нейронной сети нам не нужно генерировать фичи, сеть сама выучивает представление.
— Как тебе мероприятие в целом?
— В целом очень понравилось. Организация на высоком уровне: и техническая часть, докладчики, тайминги, процесс с точки зрения пропусков, фуршеты. Редко такое встретишь на конференциях, многие часто фейлятся и забывают какие-то важные детали. Очень приятно, что на это мероприятие есть спрос: приходят как начинающие, так и профессионалы.
— Участвовал в контесте? Решал обе задачи?
— Я участвовал только в одной части, но у меня не было на это достаточно времени. Добрался до 20 места и на этом остановился.
Все спикеры единогласны: машинное обучение уже давно перестало быть игрушкой и становится серьезным инструментом, решающим бизнес-задачи. Усложнение конкурсов, объединение энтузиастов в группы и приобретение стартапов крупными корпорациями — очередной шаг в расширении и масштабировании новых технологий. Что же будет дальше?