«Работе с данными нельзя научить»: Александр Дьяконов для OzonMasters

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Поговорили с Александром Дьяконовым — преподавателем курса по машинному обучению OzonMasters и одним из самых известных специалистов по машинному обучению в России о старте карьеры в Data Science, соревнованиях и таланте.

Биография

Как вас занесло в анализ данных? 

Я родился и до сих пор живу в Подмосковье — в городе Ивантеевка. Любовь к математике началась у меня в школе — я в заведении с научно-инженерным профилем, в Королёве. В ней очень интенсивно готовят по математике и физике. 

Меня сильно нагружали в школе, поэтому даже университет ощущался легче, чем остальным — не было стресса перед экзаменами. 

После школы я поступил на факультет вычислительной математики и кибернетики (ВМК) в МГУ. Другие вузы даже не рассматривал — тогда в стране была Чеченская война и нужно было стабильное учреждение, чтобы его не затронули возможные изменения в стране. 

Почему не МехМат?

Дело в том, что на ВМК экзамены были раньше — до МГУ я уже поступил в несколько университетов и мне уже надоело сдавать вступительные экзамены. Поэтому на мехмат я уже документы не понёс — не хватило терпения. Тем более, на ВМК было программирование.

Вы уже им интересовались?

Я понимал, что программирование везде пригождается в современном мире. Я выбрал самый прикладной поток на ВМК — «кибернетический». Там преподавали дискретную математику, оптимальное управление и математическую статистику. О своём решении не пожалел! 

В 1997 году на ВМК открылась кафедра, посвященная машинному обучению. Называлось оно, правда, по-другому — «математические методы распознавания образов». В сетке расписания до сих пор стоит под таким названием. 

Даже конференция так называлась, кажется

Да. Нас уже тогда учили нейросетям, методу опорных векторов (SVM), методам ближайших соседей и решающим деревьям, просто машинным обучением это не называлось.

Но в 2001 году, когда ты заканчивал вуз, специалисты со знанием «нейросетей» нигде не были нужны — не было потребности в решении таких задач. Из нашего выпуска по специальности работал один человек – распознавал номера на автомобилях. 

Я пошел учиться на кафедру Журавлёва, потому что всем известно, что он делает из студентов и аспирантов исследователей-универсалов. Юрий Иванович рассказывал байку про математика, на похоронах которого сказали, что «он всю жизнь прожил на отрезке от нуля до единицы», потому что он всегда занимался рядами функций на этом отрезке (смеется). 

Свою первую научную статью у него я вообще писал по комбинаторике. Потому я получил несколько неплохих результатов, благодаря которым написал три публикации. Две из них — по комбинаторике, одну — с уклоном в теорию булевых функций. За них я, кстати, получил медаль академии наук за лучшую работу среди студентов вузов.

После моих успехов в комбинаторике Журавлёв переключил меня на классическую дискретную математику — я стал заниматься минимизацией булевых функций, написал об этом кандидатскую. Все теоретические задачи в ней работы исходили из практических нужд. 

Докторскую диссертацию писал по алгебре — дискретной математики в моей жизни и так было много. В ней гораздо меньше практики машинного обучения, но больше теоретических конструкций. 

Когда вы начали участвовать в соревнованиях по анализу данных?

Мой интерес к соревнованиям начался с победы Василия Громова (мы с ним учились вместе) на престижном турнире по программированию «GridWars». После этого я открыл для себя разные программистские соревнования и олимпиадное программирование в целом. 

После нескольких мелких соревнований я нашёл BCI Competition — в смысле формата это был улёт. Только подумайте: на сайте выложили сигналы головного мозга, а участникам по ним нужно было определить ментальные действия. Конечно, я за это взялся! В результате я написал на Матлабе алгоритм, который занял на конкурсе 3 место. 

Организаторы, помню, ещё ответили мне: «Удивительно, что в современном мире ещё изобретают новые и простые методы решения конкретных задач».

Студенты интересуются, почему вы перестали участвовать на Kaggle. Разлюбили?

Да просто нет времени — я на их сайт несколько лет уже не заходил. Последнее, где участвовал — «Сантадер» пару лет назад, но там нашли лазейку и соревнование свелось к поиску похожих последовательностей в данных.

Стало ли сейчас со временем сложнее побеждать в соревнованиях?

Сравнение некорректное — мы ведь не сравниваем футбол разных поколений,  Пеле с Роналду, а Месси с Марадоной. Люди играли в разных эпохах и по немного разным правилам. Соперники и соревнования отличались друг от друга по уровню и схемам. То же самое и в анализе данных. 

Сейчас топ-участники Kaggle гораздо круче меня в современной практике — знают про тонкости библиотек, методов, быстро пишут код, который работает и даёт приемлемое качество.

Раньше в соревнованиях не было списка победителей — нужно было подготовить решение, отправить его по почте и узнать результат в день подведения итогов. Никакого драйва и погони за лидерством. Да и порог вхождения сейчас не тот — в ранних соревнованиях было меньше участников —> слабее конкуренция. 

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

Обойдёмся без списков — есть куча постов и роликов на эту тему. Я расскажу про две ситуации из жизни.

  1. В соревновании по банковскому скорингу с тысячей участников я занял 4 место, это был лучший результат среди российских участников. У нас на кафедре телефон разрывался от звонков из рисковых отделов российских банков. Раньше работодатели, как узнают телефон специалиста, заваливали его предложениями о сотрудничестве. По мою душу на кафедру звонили по 5-7 звонков за день. Короче, в плане заработка полезно узнать, что ты как специалист стоишь большей своей университетской зарплаты. 

  2. Ещё пример — в конкурсе не выиграл, но написал классный отчёт. Я очень с ним постарался, а потом он пошёл по рукам у профессионалов в индустрии. И вот, через год мне звонит высокопоставленный в индустрии человек и говорит: «Мне принесли ваш отчет, мы его постоянно перечитываем: написано божественно, целая энциклопедия. Нам нужен такой человек!» Иногда, выходит, участие работает на контакты и связи.

Преподавание

Вы сами решили давать студентам задачки с Kaggle?

Да. Так они соревнуются не только с одногруппниками, но и со всем миром – сразу становится понятен уровень. 

На эту идею вначале смотрели косо, а я говорил: если учим машинному обучению, давайте решать реальные задачи вместе со всем миром. Коллеги отвечали: Дьяконов просто любит соревнования, вот и пихает их всюду. 

В ваших лекциях на Ozon Masters мне очень нравится, как вы показываете картинки и спрашиваете: «А что, откуда эти данные взялись?» 

Да! Это моя фишка, а формулировку «что это за данные?» я взял из названия главы какой-то книги. Я тогда подумал — это же очень важное умение для специалиста – по визуализации понимать природу данных! Я всю жизнь смотрю на реальные данные и пытаюсь найти в них какие-то закономерности, но можно же посмотреть и обратную задачу — восстановить реальность по закономерностям.

Такие задачки здорово выявляют в студентах особенности: у одних хорошая память, другие могут перемножать большие числа в уме, а есть особая способность понимать данные — она сразу всплывает на  подобных задачах.

Что думаете об онлайн обучении? Какие фишки используете, чтобы взбодрить аудиторию?

На удалёнке я веду больше занятий, чем раньше — это сказывается на фокусе и разнообразии занятий. 

У меня не всегда хватает мотивации внедрять новые фишки. Многое лень делать, если понимаешь, что эффект будет слабый. Продумываешь кейсы, решаешь прикладную задачу со студентами, а потом замечаешь, что ты на это времени тратишь больше, чем они, и им это менее интересно, только ради зачёта.

Ещё на дистанционке стало сложнее обсуждать вопросы на семинарах — раньше их задавали по любому поводу, а сейчас всех смущают задержки и зум. 

А какие ещё «фишки» вы используете при обучении студентов?

Строю занятия так, чтобы они были похожи на обмен опытом. Я сам знаю, что нет ничего ценнее, чем просмотр чужого кода. Так ты видишь ход мыслей другого человека, поэтому всё, что сдают студенты, я выкладываю для них в открытый доступ. 

Студенты друг у друга могут научиться гораздо большему, чем у преподавателя. Да я и сам у них учусь (смеётся).

О карьере в машинном обучении

Кем вы сейчас работаете, помимо преподавания в OzonMasters?

Я руковожу научной частью исследований, даю задачи группе исследователей-разработчиков. Я нанимаю и увольняю сотрудников, но моё слово в проектах не решающее. 

Я много кем успел поработать: и простым программистом и директором. А теперь – только исследования и доведение их до продакшена.

Если хочется развиваться, то куда идти — в академию или в крупные компании?

Некорректный вопрос. Сейчас «в компании» — размытое понятие. 

Можно быть исследователем, писать материалы для компании, выступать на конференциях. Можно быть программистом и писать код. Первое, конечно, предпочтительнее — позволяет держать руку на пульсе. 

Чего не хватает людям для работы после обучающих курсов? 

Это моё мнение, но работе с данными нельзя научить: нужен талант, подкреплённый хорошей практикой. Практика — это просто навык, как выпиливание лобзиком.

Я гораздо больше уважаю людей, у которых есть хороший репозиторий на гитхабе, а не тех, которые могут назвать все виды эффективных трансформеров. Хороший специалист может что-то конкретное. Главное — результат, чтобы работало!

В какие области машинного обучения входить, чтобы в ближайшие там лет пять точно заниматься чем-то очень интересным. 

Не буду давать прогнозы. Сами посудите — допустим, мне сейчас нравятся графовые нейронные сети, но 

  1. это не свежее направление;

  2. я не знаю, на сколько лет его хватит. 

Сейчас удачное время, поскольку всё, что разработано в парадигме классических нейронок переносится на графы: свёртки, рекуррентности и прочее. Но когда-то перенесут почти всё и придумают что-то новое. При современных скоростях исследований это год-два.

В машинном обучении многое зависит от популярных объектов исследования. Например, раньше графами не занималось столько народу, но социальные сети дали этим исследованиям невероятный толчок. А будущим исследованиям толчок могут дать криптовалюты, квантовые компьютеры или что-то вообще радикально новое.

Могу пофантазировать: в ближайшем будущем мы увидим в России развитие открытых данных, ИИ в политике. Сложно спланировать карьеру, чтобы оказаться в нужное время в нужном месте. Проще заниматься любимым делом, это избавляет от необходимости прогнозировать.

Есть какие-то недооценённые и переоценённые направления в машинном обучении?

Мне кажется, что слишком много говорят об этике и законах вокруг ИИ. Это важные вопросы, но не до такой степени. Например, несколько лет назад на крупной конференции в США участники весь первый день спорили, стоит ли давать ИИ право голоса на выборах. 

Мы, люди, не научились выбирать, а уже пытаемся довериться ИИ, которого пока нет в природе. То есть решаются выдуманные проблемы вместо реальных. Или вот помните популярный вопрос «если алгоритм убьет человека, кто за это отвечает?».

Меня тоже часто об этом спрашивали, а я говорил: «А вас это реально волнует? Вы создали алгоритм, который уже убил пару людей? Или у которого есть шанс это сделать? Вот вы чем занимаетесь?». А мне отвечают — рекомендательными системами при онлайн продажах. Вот и вопрос отпал.

Что кроме машинного обучения стоит подучить для решения реальных бизнес-задач?

Надо хорошо знать предметную область — бизнес задачи решаются с помощью здравого смысла, а отдельная область науки – это просто одна из концентраций этого самого здравого смысла. Так что учиться правильнее не «направлениями», а просто интеллектуальными упражнениями.

В какую же смежную с анализом данных область лучше «заходить»?

В некоторых направлениях машинного обучения есть пустоты. Назову две: 

  1. Интерпретируемость моделей, их прозрачность и «честность». По нему много статей, а хороших практических кейсов явно не хватает. Чёрные ящики, короче, пока не превращаются в прозрачные для неспециалистов

  2. Проектирование архитектур нейронных сетей. Тут не хватает пока концепций и учебных курсов по теме. Генерации признаков учат, а созданию новых сетей – нет.

OzonMasters

Чем ваш курс в Masters отличается от курса на ВМК?

У меня на ВМК есть семестровый курс по машинному обучению. Это часть моего первого семестра в Ozon Masters. Ещё есть годовой курс на ВМК «Прикладные задачи анализа данных». Второй семестр Ozon Masters — это часть этого курса. 

Третий семестр Ozon Masters — это фрагмент моего курса по Deep Learning. Мы убрали часть, связанную с NLP, так как в Ozon Masters про это есть отдельный курс. 

На ВМК у меня полная власть над формой и содержанием курса, поэтому я экспериментирую. 

Что можете сказать о студентах OzonMasters?

Первый выпуск должен получиться классным — есть хорошие ребята. Ещё они дружные — связи и «тусовочка» особенно ценны в нашей отрасли. 

Ещё я удивился, когда на курсы пришли опытные дата-саентисты из крупных компаний. Всегда было интересно: а какая у них мотивация? У нас даже опрос был перед курсом: «насколько ты думаешь, что знаешь машинное обучение?». 20% респондентов сказали, что на пятерку знают.

А мне неловко — я каждый год убеждаюсь, что на пятёрку не знаю (смеётся), а тут отличников надо учить.

Будут ли тесты на проверку знаний?

Периодически я даю тесты, но наш набор пока оценивать рано. Да и сравнивать с моими студентами на ВМК выпускников Masters тоже некорректно — взаимодействие-то у нас с ними разное.  

Как можно улучшить Masters?

Я предложу убавить нагрузку у студентов — многие учатся после работы. Так что я считаю, что количество дисциплин на курсе нужно убавлять, а не прибавлять. 


Полная версия интервью выложена здесь.

OzonMasters - двухлетняя бесплатная образовательная программа от Ozon в области Data Science и аналитики. Подробнее о ней можно прочитать на нашем сайте.

Для участия в отборе на программу нужно до 29 июня пройти регистрацию.

Ждем Вас!

Источник: https://habr.com/ru/company/ozontech/blog/561458/


Интересные статьи

Интересные статьи

Сегодня речь пойдёт о защите информации: рассказываем, зачем превращать персональные данные в неперсональные и как это делается. У разработчиков есть целый набор технолог...
Выгрузка пользователей из 1C ЗУП в Битрикс24 или правдивая история о том как настроить интеграцию 1С-Битрикс24 с ЗУП без 1С-ника В жизни так бывает, причём бывает чаще чем хотелось б...
Телезрители постепенно отказываются от регулярного просмотра ТВ-программ в пользу YouTube-версий привычных шоу и разнообразного онлайн-контента — фильмов, сериалов и разв...
В State Of DevOps 2018 от DORA мы видим, что Нigh Performing компании используют Trunk Based Development. Разберемся, почему именно ее, какие ее преимущества и недостатки имеет эта ...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...