Александр Дьяконов: «С собой соревноваться интереснее - выиграть или проиграть невозможно».

Профессор ВМК МГУ и преподаватель курса «Машинное обучение» рассказывает об учебе в МГУ, первых соревнованиях на Kaggle, успешном опыте построения карьеры и преподавании.
Юрий Дорн: Добрый день! Начнем с самого начала. Расскажите, как Вы учились и как Вас занесло в анализ данных?

Александр Дьяконов: Я родился и до сих пор живу в подмосковном городе Ивантеевка. Причем, в нём жило 6 поколений моих предков, а теперь живут и мои дети. Родители до сих пор живут в частном доме, который принадлежал ещё моему прадеду. Здесь же, в Ивантеевке, и начинал учиться в обычной школе №3. В 90-х она превратилась в гимназию, тогда было модно переименовывать обычные школы в «гимназии» и «лицеи», добавились предметы типа латыни, французского языка, истории, религии и прочего. Забавно, что многие предметы не осели у меня в голове, например, по латыни я ничего не знаю сейчас. А потом я поступил в Школу Научно-Инженерного профиля №4 подмосковного города Королёв, в начале 90-х он назывался Калининградом. Сейчас, по-моему, школа называется Лицеем научно-инженерного профиля №4 и даже входит в пятерку лучших школ России.

Ю. Д.: Ого!

А. Д.: Да, школа очень хорошая и там интенсивно готовят по математике, физике и не только. Поэтому там был довольно жёсткий вступительный экзамен, да и сейчас есть. Мне повезло учиться там, где довольно сильно нагружают учёбой и всякими контрольными. Помню, 4 контрольные в день по разным предметам и зачет по бегу на три километра было нормой. Потом уже в вузе чувствовалось, что учиться гораздо легче, чем остальным, и нет стресса перед экзаменами. Собственно, главное в учёбе – учиться постоянно, а не зазубривать за два часа перед зачётом. Перед зачётом надо выспаться (смеётся), да и вообще, высыпаться – это главное умение в жизни.
Потом я поступил на ВМК, рассматривал для себя только МГУ. Тогда еще шла Чеченская война, и мой год рождения призывался, а вузы лишались своих лицензий. Было понятно, что в случае глобальных изменений в стране, если и есть шанс, что они не затронут какие-то вузы, то это будет МГУ, всё-таки вуз №1 в России, поэтому поступать надо в самое лучшее заведение. Вообще, надо всегда выбирать лучшее. Ну а факультет выбрался как раз из соображений любви к математике.

Ю. Д.: Тогда сразу вопрос – почему не МехМат?

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

Ю. Д.: А Вас тогда это тоже тянуло? Я имею ввиду программирование.

А. Д.: Да. Хотя это не было существенным доводом в выборе между ВМК и МехМатом, но я понимал, что программирование востребовано в современном мире (смеется). Скажем так, на ВМК я шел чуть больше за математикой, чем за программированием. В итоге так и получилось, потому что у нас 3 потока: первый – классической математики, на нём кафедры математической физики, общей математики, вычислительных методов и т.п.; второй – «кибернетический»: дискретная математика, оптимальное управление, исследование операций, математическая статистика; а третий – чисто программистский, с кафедрами системного программирования, алгоритмических языков. Я пошел не на третий поток, который был у нас самым популярным, потому что люди на ВМК шли программировать, а на второй, который «более прикладной» и на котором более современная математика, которую в МГУ называли «кибернетикой».
И ни разу об этом не жалел. А что касается вопроса «почему анализ данных» – мне повезло. Через год после моего поступления – в 1997 году – создалась новая кафедра, которую возглавил Юрий Иванович Журавлёв, и это единственная кафедра на нашем факультете и во всём университете, где стали учить Машинному обучению. Только его по-другому называли, наш основной предмет был – «Математические методы распознавания образов», и он до сих пор у нас в сетке расписания стоит под этим самым названием (смеется). В МГУ проще создать новый курс, чем поменять название старому.

Ю. Д.: Там вроде есть старая конференция по Распознаванию образов ММРО, да?

А. Д.: Да-да-да. Нас тогда учили как раз нейросетям, SVM-у, методам ближайших соседей, решающим деревьям, просто не называя это Машинным обучением, хотя книжки, по которым учили, были довольно интересными и прогрессивными. Издательство «Мир» ещё переводило западные издания, например, Ту Гонсалес «Принципы распознавания образов» – очень неплохая книга для того времени. Вообще, интересно как изменились книги по нашей науке. У меня в шкафу до сих пор стоит старый трёхтомник Гренандера «Лекции по теории образов», сейчас такое студентов не заставишь изучать, а когда-то казалось «остриём науки». Ну и вот этот аппарат я освоил, но тогда он был нигде не применим, потому что в 2001 году специалист, который знает, что такое «нейросети», нигде не был нужен, более того – не было потребности в решении таких задач. Из нашего выпуска по специальности работал только 1 человек – распознавал номера на автомобилях. Несколько ребят пошли в аспирантуру, а остальные работали совершенно по другим специальностям, не связанными с теми предметами, что мы изучали.

А почему я пошел учиться именно на кафедру Журавлёва – наверное, это дело случая. Так как кафедра была новая, то ее коллектив не совсем знал «правила игры», принятые на факультете. Например, у нас ежегодно проводится мероприятие «Встреча с кафедрами», где каждая кафедра рассказывает о себе, хвалит себя и агитирует «идите к нам». Так вот, кафедра математических методов прогнозирования – на которую я в итоге пошёл – провела эту встречу довольно оригинально, было совсем не похоже на остальные кафедры, которые приходили и говорили: «на нашей кафедре делается следующее…» и на доске начинали писать: «пусть икс есть банахово пространство…» А с нашей встречи до сих пор помню слова Рудакова: «Вы хотите быть великими? Вот Эйлер (показывает внизу), а вот вы (показывает наверху). Идите к нам» (смеется). Выглядело нахально и дерзко, а это притягивает. Ну и была более живая беседа, какие-то истории из жизни, примеры прикладных задач. Часть кафедры сотрудничала с межбанковской валютной биржей, опять же, всё, что связано с деньгами в конце 90-х выглядело аппетитно. В итоге, я клюнул на самое яркое представление кафедры, стал «жертвой рекламы». Потом я понял, что так получилось только из-за того, что кафедра немного нетрадиционно подошла к своему представлению, я в жизни подобное часто использую: впечатление производится отличием от других, хочешь быть заметным – будь непохожим. Когда я занимал какие-то административные посты типа ученого секретаря или тоже занимался агитацией – я уже знал, как делать, чтобы завлечь народ.

Ю. Д. (смеется): Александр Геннадьевич, а кроме Вас кто еще клюнул? Есть кто-то примечательный, про кого можно рассказать?

А. Д.: Есть Алексей Нефедов – он интересен тем, что потом поехал за границу и много-много где поработал: в американском университете Рутгерса, в фармацевтическом гиганте Merck, как раз на позиции Data Science, а потом в компании American Express. Сейчас он тоже работает в стартапе похожем на American Express, только они занимаются банковскими картами для «мягкого» кредитования населения. Для нашего выпуска карьера за границей всё-таки что-то выдающееся, это сейчас мои студенты уже на первых курсах стажируются в гугле. Недавно узнал, что Василий Долгов, с которым я учился, генеральный директор VIZORLABS, например, хотя не знаю, чем он конкретно занимается. А из последующих, по-моему, из 4 выпуска, можно назвать Диму Ветрова – у нас разница в 2 года.
Но из поколений, у которых я уже преподавал, почти все в Data Science. Вот недавно был успех компании DeepMind по предсказанию структуры белка, там в команде проекта два наших выпускника – Анна Потапенко и Михаил Фигурнов. Смотришь на рейтинг участников Kaggle – там лучший из россиян – наш Дима Гордеев, на ютуб заходишь, а там в рамках проекта Дзен-интервью один наш выпускник – Евгений Соколов – берёт интервью у другого – Александра Фонарёва. Курсы новые смотришь, в ВШЭ «глубокое обучение» читает наш выпускник Антон Осокин, просматриваешь научные работы – натыкаешься на статьи Александра Колесникова из гугловской команды Brain team. Сбербанк свой AutoML выложил, там главный в проекте наш Александр Рыжков, про Дмитрия Ульянова я уже молчу, у него столько классных научных статей, они, правда, по аспирантуре в Сколтехе, но приятно, что он тоже определился с вектором своей деятельности у нас на кафедре. Куда ни глянь – везде наши выпускники. Причём, это всё очень хорошие ребята, даже по учёбе можно было сказать, что добьются многого в жизни. Вовсе не хочу приписать их успехи кафедре, каждый сам кузнец своего счастья, но как говорится «Путь в тысячу ли начинается с первого шага», а шагать они учились на ММП ВМК МГУ.

Ю. Д.: Александр Геннадьевич, трудно поверить, что вы у Журавлёва с самого старта начали делать DS.

А. Д.: В том-то и дело, что известный подход Журавлёва к научному курированию студентов и аспирантов – растить исследователей-универсалов. Мне он, кстати, нравится – тоже взял на вооружение: человек в своей жизни должен позаниматься всем. (смеется) Юрий Иванович рассказывал как-то байку про математика, на похоронах которого сказали, что «он всю жизнь прожил на отрезке от нуля до единицы», потому что он всегда занимался рядами функций на этом отрезке (смеется). Соответственно, Журавлёв своим ученикам любил менять темы. Во-первых, у него было несколько научных семинаров. Обычно в МГУ каждый научный руководитель объявляет один, Журавлёв заявил три семинара: по алгебраическому подходу к распознаванию образов, который Журавлёв пропагандировал, по дискретной математике и её приложениям и по так называемым «эвристическим методам распознавания образов». Честно говоря, я немного испугался более сложных тем, хотя в последствии пришлось поработать по тематике всех семинаров. Выбрал третий спецсеминар, он выглядел попроще (смеется), по крайней мере, я представлял, чем я буду заниматься, точнее думал, что представлял. Но оказалось, что задачи, которые Журавлёв предлагал по теме семинара были комбинаторными. Свою первую научную статью писал, грубо говоря, по комбинаторике. В итоге за два курса у меня получилось достичь неплохих результатов, которые вылились в три публикации. Две – по комбинаторике, одна – немного с уклоном в теорию булевых функций. За них, как раз, получил медаль Академии Наук за лучшую работу среди студентов вузов.

Ю. Д.: Ооо, здорово!

А. Д.: Понятно, что здесь играет роль не только результат, но и у кого в коллективе и в парадигме какой научной школы ты делаешь исследования и где и как это потом применяется… Но всё равно приятно, конечно. А после того, как в комбинаторике что-то удалось (хотя я и не думал, что когда-то в жизни буду ей заниматься), Журавлёв меня переключил на «классическую дискретную математику» и я стал заниматься минимизацией булевых функций. Кандидатскую писал как раз по этой теме. Сообщество дискретчиков в России меня до сих пор воспринимает как своего. Мало того, что я воспитанник классика Российской дискретки Журавлёва, но и сам получил интересные результаты, выступал на конференциях, поэтому многие даже думают, что я до сих пор этим занимаюсь – никакого машинного обучения, анализа данных и так далее (смеется). Хотя в диссертации была связь с задачами классификации, там целая глава про приложения в машинном обучении. Как раз, главная фишка работы – создание практически эффективных алгоритмов синтеза ДНФ для поиска логических закономерностей в задачах с бинарной и k-значной информацией. То есть, все теоретические задачи работы индуцировались практическими нуждами. В этом мне тоже повезло с научным руководителем, Юрий Иванович считал, что надо заниматься на границе между чистой теорией и практикой.

Ю. Д. (смеется): Это непросто!

А. Д.: Да, вот в кандидатской было целое приложение с экспериментами с реализованными алгоритмами классификаций, которые работал на этих ДНФ — это всё-таки Машинное обучение. Хотя диссертационная работа меня немного испортила: поскольку я занимался дискретными подходами к машинному обучению, через поиск чётких закономерностей, потом я не любил стохастику. То есть, везде, где надо было использовать что-то случайное, я кривился и старался обходить это.

Ю. Д.: Знаете, у Юрия Гавриловича Евтушенко и у коллег, которые с ним работают… – они тоже не любят стохастические методы оптимизации.

А. Д.: Ну да, это можно понять. То, чему ты учишься первые годы и над чем интенсивно работаешь в научном плане очень сильно формирует тебя как научного исследователя. Часто при этом возникает неприязнь к конкурирующим подходам для решения задач, над которыми ты работаешь. Но дело не в том, что тебя к чему-то приучили, а от чего-то отучили. Просто если ты с чем-то интенсивно работал, то сам как-то у'же смотришь на остальное. Мне потом пришлось, конечно, немножко переучиваться. Первое осознание пришло после того, как я увидел, что случайные леса чуть эффективнее моих алгоритмов. Там совсем «на эпсилон», но обидно. И я думаю: «Черт возьми! Вот у меня всё оптимально и детерминировано, а тут как-то случайно, но в результате получается получше». Пришлось полюбить подобные алгоритмы, и было много подобных случаев, случайные леса я для примера привёл.
Кстати, то же самое с нейросетями. Когда нас учили, говорили, что нейросети – зло, они не работают и это тупиковая ветвь в ML (смеется). Примерно так и было – они не работали... Кто же знал, что лет через 15 после этих слов мир так перевернется?! Поэтому к сетям изначально у меня тоже было пренебрежительное отношение, которое пришлось менять. Я сам стараюсь избегать категоричных утверждений, например, что нет ничего лучше нейросетей, как знать... Или что метод ближайшего соседа устарел, а смотрим гитхаб фейсбука – они обновляют свою библиотеку поиска соседей. Или вот классические ядра, так называемые «kernel methods», вроде их эпоха прошла, а в последних вариантах эффективных трансформеров снова ожили... Нет бесполезных знаний, нет устаревших методов, есть только умения их применять.

Ю. Д.: А потом какой областью науки занимались?

А. Д.: Потом, после дискретной математики, докторскую писал больше по алгебре. Но она тоже имела отношение к Машинному обучению, поскольку лежит в русле «алгебраического подхода Журавлёва к решению задач распознавания образов». Если честно, там гораздо меньше практики Машинного обучения, а больше исследований всяких теоретических конструкций. Здесь и алгебра, и немножко дискретной математики, даже теория категорий есть. У Рудакова Константина Владимировича как раз диссертация по алгебраическому подходу со стороны теории категорий. Я её не касаюсь, но по стилю и сути наши работы, смею надеяться, похожи. Поэтому это еще было одно такое кардинальное изменение того, чем я занимался по науке.

Ю. Д.: У Вас просто постоянно какие-то переходы.

А. Д.: И не только в научном плане, мне это даже нравится. Во многих других аспектах моей жизни то же самое. Вся жизнь делится на непересекающиеся отрезки, на каждом я занимался тем, чем я не думал, что когда-то займусь, и теперь этим уже точно никогда не займусь (смеется). Сейчас каждый такой отрезок воспринимаешь, как какую-то автономную жизнь (со своими привычками, заботами, товарищами и успехами). Мне повезло прожить много таких жизней, в том числе и в научной карьере – это очень здорово!
Участие в соревнованиях

Ю. Д.: Получается, Вы защитили докторскую в 2009 году, а в 2012 выиграли Kaggle (это был первый рейтинг, кстати). А когда Вы вообще начали участвовать в соревнованиях по анализу данных?

А. Д.: Тут долгая история… Когда я закончил вуз, то вдруг узнал, что один из наших выпускников – Василий Громов – выиграл довольно престижный турнир по программированию «GridWars». Нужно было запрограммировать бота, который взаимодействует в пространстве, видит свое окружение, может уничтожать соперников. В финале Василий схлестнулся с представителем NASA, а тогда в очередной раз в СМИ накручивали противостояние Россия – Америка, и, поскольку наш победил, то сразу прославился: рассказывали по всем каналам. Я с Василием пересекался на военных сборах, с виду обычный парень, а тут даже немного позавидовал и стал интересоваться, что это за конкурсы такие интересные существуют... (смеется).

Ю. Д.: И Вы нашли BCI Competition?

А. Д.: Сперва я подсел на всякие программистские соревнования и открыл для себя, с большим запозданием, мир олимпиадного программирования. Этим надо ещё в школьные годы заниматься, как многие ученики хороших школ и делают, но я то был из Ивантеевки. В чём-то я поучаствовал только в пост-вузовском возрасте, например, в конкурсах POTM (programmer of the month), эту серию один гуру программирования создал и поддерживал. Там я научился писать всяких ботов для логических игр типа шашек и шахмат, оказалось это дико интересно. Я даже потом это в практикум на ЭВМ внедрил. Мы на ВМК в рамках практикума на ЭВМ писали ботов, а потом чемпионаты устраивали.

Программировать всякие сортировки или IDEшки – это скучновато и утомительно, а программировать реальную игру, а потом в режиме реального времени наблюдать, как твоя программа ходит фигурами и другого обыгрывает – гораздо интереснее! Так я влился в такое «соревновательное программирование», многому там научился, а потом вдруг нашёл соревнования, связанные с моей специальностью. Одно из первых, да, это было BCI Competition и с этим соревнованием мне повезло. Я нашёл сайт соревнования, с выложенными сигналами головного мозга – электрокортикограммами (там электроды прям внутри головы, снаружи – это электроэнцефалограмма, а внутри – электрокортикограмма). И вот по сигналам надо определять совершаемые ментальные действия, грубо говоря, «о чем думает человек». Для начала 2000-х это был какой-то улёт: выложили в общий доступ данные, просят решить актуальную задачу, всё в режиме соревнования. Конечно я стал решать! У меня был как раз пиратский MATLAB установлен на компе (смеется) – это было единственное средство, которое позволяло какую-то математику делать с данными такого формата и объёма. Никаких хороших библиотек на Python’е не было, да и на нём тогда никто из нашего круга не писал – только на C++. И вот я на MATLAB’е, значит, «ворочаю» трехмерные матрицы, которые еле влезают в память, делаю слайсы, визуализирую. В результате придумал алгоритм, не очень сложный, но занял 3 место среди около 20 лабораторий, которые профессионально занимались задачей BCI. Это очень воодушевило!

Задача была довольно нетривиальная – тестовые данные снимались в другой день и совсем не были похожи на данные из обучающей выборки. Тогда не было накоплено достаточно опыта для решения подобных задач, сейчас это часто называют «concept drift». Интересно было общаться с организаторами, там участники-лаборатории применяли либо классические для BCI методы, либо новые запатентованные. А у меня был «метод на коленке»: отбор значимых сигналов с определённых электродов, их сглаживание и оценка вариативности сигналов, итоговое признаковое пространство всего их двух признаков состояло. В самом последнем письме нашей переписки они ответили: «Удивительно, что в современном мире ещё можно изобретать новые и простые методы под конкретную задачу.»

Ю. Д.: А какие были другие соревнования в то время?

А. Д.: Аналогичный конкурс – по классификации сигналов – но со всей из другой области проводила компания «Ford Motors Company». Нужно было по показаниям датчиков определять, есть поломка или нет. Забавно, что там мне удалось найти простое решение. Действительно очень простое решение – программа на MATLAB’е занимала 32 символа!

Ю. Д.: Всего 32? А какое место было?

А. Д.:Первое, причём со 100%-м результатом на тесте, у остальных участников было существенно меньше точность решений. Возможно, я нашёл утечку данных, но очень специфическую... в одном из классов гораздо чаще повторялись конкретные показания датчиков, в каждом конкретном случае повторы были разные, но они были. Это тоже определило моё мировоззрение при решении практических задач: я всегда ищу очень простое решение, надо только верить, что оно существует! А я верю потому, что часто удавалось найти. В бизнес-задачах такой настрой особенно полезен, тут надо, чтобы решение было всем понятно, допускало регулирование и интерпретацию.

Ю. Д.: И в конкурсах использовали такой же подход?

А. Д.: Да, а я в принципе никогда не решал конкурс, чтобы в нем победить. Я параллельно всегда ставил для себя какое-то условие, например, освоить какой-нибудь аппарат и лишь с его помощью получить решение или придумать решение, код которого помещается на один, допустим, экран монитора (смеется). Короче, я так соревновался еще сам с собой, ставил перед собой какие-то дедлайны, например, решать не больше двух дней, пока все решают два месяца. С собой соревноваться интереснее – выиграть и проиграть невозможно.

Ю. Д.: У нас, кстати, студенты спрашивали, почему Вы стали намного меньшу участвовать в соревнованиях на Kaggle… Разлюбили или перестал интересовать именно Kaggle?

А. Д.: Сейчас просто нет времени, я несколько лет почти не заходил под своим логином. В 2015 году, было соревнование «CrowdFlowers», в котором я активно участвовал. Попробовал два года назад поучаствовать в соревновании «Сантадер», но там нашли лик и соревнование свелось к поиску похожих последовательностей в данных. Интересно, что я сразу знал об этом лике – в данных такого типа он часто случается при неумелой подготовке данных, а замечают его редко. Так и здесь, если бы в форуме не написали, человек 5-10, наверное догадались бы, а так выложили прям код, извлекающий дополнительную информацию из данных... это, конечно, уже не ML и даже почти не соревнование. На самом деле, недавно, несколько дней назад, начал на Kaggle тоже участвовать, но…

Ю. Д.: Вы же как раз Вы давали ссылку у себя...

А. Д.:Да-да. Но, опять же, это потому что я на курсе дал эту задачу своим студентам и, соответственно, самому пришлось в нее погрузиться. Надеюсь, попытаться порешать до приемлемого качества, но времени, как всегда нет. Сегодня вот за весь день я к этой задаче не притронулся (смеется). Но нехватка времени - это первая и главная причина, а вторая – это то, что с возрастом меняется стиль жизни. Раньше он более авантюрный, и ты участвуешь в подобных авантюрах. Сложно же зарабатывать, участвуя в соревнованиях, тут либо нужно выйти на какой-то действительно хороший уровень и его постоянно поддерживать, потому что постоянно появляются новые практически полезные приёмы решения и меняется мода на задачи, появляются новые библиотеки. Чтобы удерживаться на пьедестале надо быть на шаг впереди остальных.

Ю. Д.: А у нас тут, кстати, вопрос по этой теме. А как Вы думаете… Стало ли сейчас сложнее побеждать в соревнованиях?

А. Д.: Я об этом думал… например, кэглеры какого периода сильнее? Некорректно сравнивать, по той же причине, как некорректно сравнивать футбол разных поколений, например, кто лучше: Пеле или Роналду, Месси или Марадона. Люди играли в разных эпохах, даже немного по разным правилам и соперники были разные и соревнования: их схема и уровень. То же самое и здесь. Конечно, нынешние топы Kaggle гораздо более продвинуты в современной практике, потому что они в курсе тонкостей всех библиотек, новых методов, за короткое время могут написать код, который работает и даёт приемлемое качество. В современных условиях я однозначно им проигрываю, но если их поместить в условия «моих лет»: нет библиотек для Python’а, всё решалось на С++ или на пиратском MATLAB’e… Даже загрузить данные было проблемой! Помню, решал тогда задачу на платформе TunedIT и выиграл соревнование по рекомендации лекций. Человек смотрит какую-то лекцию, а ему надо предложить новую. Там лекции были на разных языках, пришлось писать стемеры разных языков. Где сейчас найдёшь человека, который сам реализовал и провёл эксперименты со стемерами 10 популярных языков? Или не очень популярных... там словенский был, я сам по словарю словенского языка придумывал правила обрезки слов. Сейчас таким уже никто не занимается.

Раньше в большинстве соревнований не было leaderboard, ты готовишь решение – ответы на контрольной выборке своего алгоритма, отправляешь по почте и результат узнаёшь в день подведения итогов. Никакого драйва погони за лидером, никакой информации, какое качество у конкурентов. Кстати, такие условия более честные и естественные, но кто на них сейчас согласится? И обмена кодом не было. Сейчас на Kaggle куча выложенных «кёрнелов» – с примерами решения, низкий порог входа в соревнование – достаточно править чужой код, а тогда никаких примеров. А по многим областям, по которым проводились конкурсы, не было даже доступных статей! На arxiv регулярно не заливали препринты, sci-hub-а не было, на некоторые темы не писали, да и число всех статей по ML было на несколько порядков меньше. А сейчас накоплен «массовый опыт» по предобработке данных, калибровке и прочим фишкам.

В ранних соревнованиях было и народу меньше, т.е. конкуренция слабее, но опять же, это связано с большим порогом вхождения, а не только с меньшей раскрученностью соревновательных платформ. Вот помню, была серия ежегодных конкурсов по прогнозированию временных рядов «NN Forecasting» – там участвовали, в основном, всякие гуру в прогнозировании, в России такие эконометристами назывались. В один из годов ряды были с пропусками, это сразу сократило число участников в разы! Казалось бы, подумаешь пропуски, но подавляющее большинство профессионалов просто не знало, как подступиться к таким рядам. А сейчас бы это никого не остановило – есть много рецептов обработки пропусков и есть уже готовые модели, которые автоматически их обрабатывают (а те, кто их используют, часто даже не знают, как именно модели их обрабатывают). А вообще, это интересный феномен – как новые артефакты в данных сбивают людей с толку, его и сейчас можно наблюдать, но в меньшем масштабе, чем раньше.

Ю. Д.: Ну а такой вот вопрос, тоже, условно, из аудитории. Какие бонусы могут принести участия в соревнованиях по анализу данных с точки зрения карьеры? И стоит ли участвовать, если ты еще не начинал.

А. Д.: Давайте, не буду приводить список «плюсы участия в соревнованиях», тем более, что есть полно постов и видеороликов на эту тему. Забавно, что некоторые авторы сами не участвовали в соревнованиях, но, видимо, это иллюстрация современной популярной концепции «тренер по плаванию не обязан уметь плавать». Да и догадаться до этих плюсов легко: опыт, строчка в резюме, контакты и т.п. Я просто расскажу несколько историй из своей жизни.

В одном из соревнований я не занял первого места, но был высоко в топе – на 4 месте, лучший результат среди российских участников. А это было первое международное соревнование по банковскому скорингу с числом участников порядка 1000, естественно, оно стало довольно известным, особенно в банковской среде. У нас на кафедре телефон разрывался от звонков из рисковых отделов разных российских банков. Раньше же как – узнают, где человек работает и его рабочий телефон. Предложения о сотрудничестве были по нынешним меркам не очень, но раньше по мою душу на кафедру вообще никто не звонил, а тут по 5-7 звонков за день. Хотя я скорингом особо-то и не занимался. Кстати, из-за этого на работе стало не очень хорошо: все начали думать, что я сотрудничаю со всеми компаниями подряд, подрабатываю активно на стороне, тогда это не приветствовалось, да и вообще выглядело странным, когда в вузе «с советским укладом» какого-то сотрудника чаще подзывают к телефону, чем заведующего кафедрой. А когда я всё-таки стал «подрабатывать на стороне», то один из первых проектов был как раз связан со скорингом. Там довольно серьёзные люди инвестировали в стартап с ИИ, в котором были и банковские задачи, они стали в своих IT-кругах выяснять, кто в России лучший по ним специалист – ответили, что Дьяконов, так на меня и вышли. Было много новых интересных знакомств, тогда же я впервые тесно пообщался с олигархами (а до этого из «элиты» только с академиками чай пил), узнал, как у нас, в России, устроены бизнесы, крупные компании и стартапы. Да, и в плане заработка – это было существенно больше МГУшной зарплаты – 7000 руб в месяц. Тоже полезно в какой-то момент узнать, что ты как специалист стоишь гораздо больше. Кстати, сейчас ребята из этого стартапа почти все в кремниевой долине – там у них интересный проект, но это уже другая история.

Другой пример такой: в конкурсе я не выиграл, но написал классный отчёт. Там формально было 2 этапа: первый – формировался leaderboard, а второй – топ 10 готовили свои отчеты, отправляли организаторам, а те оценивали. Я был на 2 месте, поэтому надеялся победить за счёт отчёта, как позже выяснилось зря – призы изначально распределили по leaderboard. Кстати, это типичная ситуация, я недавно был в жюри одного хакатона, объяснял организаторам, что по формуле, которую они придумали, баллы за выступление в финальном этапе ни на что не влияют... те пожимали плечами и говорили: «Мы знаем, но сделать уже ничего не можем». Немного странно: участники готовятся, выступают, а всё уже предрешено. Так вот, я очень постарался с отчетом, как потом выяснилось, отчёт «пошёл по рукам». И через какое-то время, по-моему год прошёл, мне позвонил довольно интересный человек, не буду называть фамилию, уже в возрасте, но довольно энергичный, всю жизнь был на очень крупных должностях. Он меня познакомил со своей «научной группой» и директорами компаний, которые он курировал. При встрече сказал: «Слушайте. Мне принесли ваш отчет, мы занимаемся схожей проблемой, мы его постоянно перечитываем: написано божественно, целая энциклопедия, я ничего подобного не видел. Нам нужен такой человек!» Тоже было много интересных контактов и информации, например, я познакомился с людьми, которые поработали в секретных американских институтах.

Ю. Д.: Даже так!

А. Д.: Вот так получилось, что оба раза я не побеждал, а какое-то полезное последствие было. Даже отчёт надо писать качественно. Вообще, если уж что-то делать, тратить на это своё время, то так, чтобы не было стыдно за результат.
Преподавание

Ю. Д.: Александр Геннадьевич, я знаю, что Вы в образовательную практику Kaggle и похожие вещи очень активно внедряете. Откуда вообще это пошло?

А. Д.: Сейчас во многих курсах есть практика на Kaggle, в основном через подсистему inclass, когда Вы сами организуете задачу-соревнование. А когда-то такой практики не было, я «заставлял» студентов участвовать в текущих боевых соревнованиях, т.е. которые идут прямо сейчас и за реальные призовые. И сейчас, кстати, заставляю. Так ты соревнуешься не только с одногруппниками, но и со всем миром – сразу понятен твой уровень. Причем я участвовал вместе с ними. А вообще, на такую идею практики, когда я её внедрял, смотрели косо. Я говорил, что, если учим Машинному обучению, то давайте решать реальные задачи в режиме онлайн вместе со всем миром и на базе этого учиться. Мои коллеги по цеху отвечали: «Дьяконов просто любит соревнования, вот и пихает их всюду». А мне кажется, соревновательный момент и геймификация очень важны в обучении. Тогда ещё появился ШАД, Воронцов начал читать лекции, а меня позвал вести семинары – опробовал это там, причем в мягкой форме, для начала просто рассказывая свои кейсы решения задач. Это тоже не зашло, и по объективным и субъективным причинам, например, Илье Борисовичу Мучнику это вообще не понравилось и студентам тоже. Соответственно, я после этого и ушел из ШАДа. Самое забавное, что мои ученики потом реализовали там то, что я хотел. Да и вообще, курсы и лекции в виде перечня кейсов сейчас популярны, а когда-то запрещались (смеётся).

Ю. Д.: Это практикум по ML? Кажется, так это называется.

А. Д.: Наверное. Вроде, я первый в мире стал применять соревновательную практику в ML-курсах. Можно по leaderboard посмотреть. Например, в 2011 году было соревнование Don’t Overfit. Если Вы посмотрите leaderboard, то найдете там Мишу Фигурнова, который сейчас работает в DeepMind, Сашу Кириллова, который сейчас работает, по-моему, в Facebook, Женю Соколова из Вышки, Андрея Зимовнова из Яндекс.Дзен, Ксюшу Бобрик из Сбера, Стаса Артюхина, да здесь полно сейчас уже известных классных специалистов.

Ю. Д.: Женю Соколова, да, мы хорошо знаем.

А. Д.: Но интересно, что в начале 2011 года таких вузовских наплывов в leaderboard не было – мы первые начали это делать, потом начали копировать, например, словенский университет (а вовсе не американцы или китайцы). Но самое забавно, если посмотрите leaderboard, то этот leaderboard не окончательный. Он формировался на базе предварительного соревнования, а потом на отдельных данных нужно было прогнать алгоритм и отослать окончательное решение. Итоги соревнования подведены в одной из веток форума. Так вот забавная вещь, что столько людей, сейчас известных в Машинном обучении, поучаствовали в своём первом соревновании, формально получили свой зачет (это было до его окончания), а в финальной стадии никто участия не принял!

Ю. Д.: Неужели?

А. Д.: Да, т.е. подобная форма в образовании не встречала большого интереса даже со стороны студентов.

Ю. Д.: Александр Геннадьевич, а Вы-то засабмитили? У Вас здесь 18 место.

А. Д.: Да, а если посмотреть окончательные результаты… вот, тут есть топик – вроде 11й, не так высоко, я не горжусь, но я засабмитил (смеется).

Ю. Д.: Это, конечно, очень забавная история.

А. Д.: Да, живые соревнования в образовании пропихивались с трудом. Хотя сейчас это стандарт, но тогда было очень непривычным. И студенты это тоже не принимали с радостью.

Ю. Д.: Это очень и очень классный кейс, когда что-то совершенно новое создали. Когда Ксюша рассказывала про эту практику у Вас в МГУ меня прямо подцепило очень сильно. Это очень хорошая практика.

А. Д.: Есть такое понятие как… ну, назовём это «образовательная технология». Только это не технология в широком смысле, а некая «фишечка», которая улучшает образовательный процесс: интерес, усвоение материала и т.п. Мало кто такие «фишечки» делает, причем это довольно-таки странно. Если ты в образовании и реально хочешь что-то улучшить, то они сами приходят в голову. Вот пример – я вёл когда-то алгебру: группы, кольца, поля, такая классическая «лабуда». Казалось бы, что тут можно придумать – в классическом предмете? Во-первых, форму контроля знаний и занятий, во-вторых, наполнение. Есть же много задач на стандартные темы, но есть простые, а есть сложные – «с двумя звёздочками». Как перерешать всё нужное за короткое время? Я тут тоже придумал что-то типа соревнований. Решил, что странно применять одинаковые критерии к разным студентам и всем давать одинаковые задачи. Всех студентов я разбивал на четыре лиги, как в футболе: высшая, первая и т.д. (смеется). Каждой лиге свой вариант – своей степени сложности, высшей – самые убойные задачи, низшей – просто на понимание материала. Контрольные даются на дом, чтобы без стресса все всё прорешали, но зато повышается требование к оформлению – всё должно быть идеально! Идею домашних контрольных я, кстати, подсмотрел, у своего преподавателя – Будака Александра Борисовича. Только я сократил число вариантов, он персонально давал, а я по лигам – так проще. Внутри лиги помогать друг другу не выгодно. После каждой контрольной тот, кто занимает первое место в своей лиге, переходит в группу выше, последний – в более слабую. Ну, если какое-то списывание было замечено, то люди караются. Все заинтересованы не просто решить и оформить свою работу, а сделать это лучше своих конкурентов-одногруппников. В конце семестра, тем, кто остался в высшей лиге, я ставил автомат, и потом пропорционально лигам предъявлялись требования на экзамене.
Потом ещё фишка – внезапные контрольные-опросники. Где-то за 10 минут до конца занятия раздаю листочки и, разбив на два варианта, спрашиваю определения и формулировки основных теорем курса. Это чтобы студенты учили теорию не к экзамену, а постоянно. В учёбе как в спорте, чем дольше набираешь форму, тем она дольше сохраняется. Плюс там ещё задачки на сообразительность были, их студенты больше всего любили – не связанные с математикой. Например, из букв ДЕЗМ составить слово русского языка, каждую букву нужно обязательно использовать, можно несколько раз. Люблю смотреть, как студенты не просто думают над предметом, а думают на отвлечённые темы, фантазируют и т.п. Чаще всего это умеют хорошо делать те, кто по основному предмету не успевает. Сразу видно, что у них просто другие способности.

Ю. Д.: Ну, у Вас и сейчас есть интересные задания! Мне, например, очень нравится в лекциях… понятно, что я смотрел только в OzonMasters… вот мне очень нравится, когда Вы периодически показываете картинки и спрашиваете: «А что, откуда эти данные взялись?» и попробуй угадать, что это за распределение. Это всегда очень забавно.

А. Д.: Это тоже я придумал и ни у кого не видел, а слоган - «Что это за данные?» взял из названия главы какой-то книги, там разбирался конкретный кейс, а я подумал, что это же очень важное умение для специалиста по визуализации - понимать природу данных! Я всю жизнь смотрю на реальные данные и пытаюсь найти в них какие-то закономерности, но можно же посмотреть и на обратную задачу – по закономерностям восстанавливать реальность. Когда я устраиваю подобные конкурсы, всегда есть отдельные студенты, которые с ними классно справляются. У одних хорошая память, другие могут перемножать большие числа в уме, а есть особая способность понимать данные – и это сразу выясняется при подобных задачах. Вот сейчас в МГУ на дистанционке у меня идёт курс с подобным заданием, там у меня большая свобода действий, поэтому не только я сам играю в эту игру «Что это за данные?» со студентами, но и студентов заставляю играть друг с другом – это отдельное задание такое. Там есть несколько ребят особенно хороших в этом, особенно один меня поразил. Я даже подумал, что засветил где-то слайды с правильными ответами, но оказалось, что у него реально талант: видит кривую плотности распределения и может точно сказать «это распределение доходов населения Канады» – хорош, зараза! (смеется)

Ю. Д.: Это здорово! Спрошу про дистанционку тогда. Когда мы в марте на онлайн все пересели, в плане проведения лекций и занятий, как у Вас ощущения? Как и что поменялось? Может быть, появились какие-то новые фишки, и Вы начали их использовать, чтобы взбодрить аудиторию?

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

Ю. Д.: Это понятная история. У меня сейчас то же самое. В первый раз читается курс по Оптам 2 и тоже расфокус идет.

А. Д.: Ещё, к вопросу о новых фишках. Не всегда хватает мотивации внедрять всё новые и новые. Знаете, у меня есть гипотеза, что люди со старостью не начинают думать хуже, на самом деле, происходит одна очень простая и понятная вещь – у них теряется мотивация. Многое лень делать, если понимаешь, что эффект будет слабый. Вот продумываешь кейсы, сам со студентами прорешиваешь реальную прикладную задачу, а потом замечаешь, что ты на это времени тратишь больше, чем они, и им это менее интересно, только «ради зачёта». Руки сразу и опускаются делать что-то ещё. Это, конечно, от коллектива зависит.
Что касается дистанционки… Что изменилось в худшую сторону, и мы обсуждали это с семинаристами – раньше было гораздо больше вопросов. Причем вопросы были по любому поводу. Ты заканчивал лекцию, и к тебе подходили что-то спросить. Причем иногда человек спрашивает, ты видишь, что он ничего не понимает, повторяешь – уже половину понимает, объясняешь ещё – ну, вроде он разобрался.

Ю. Д.: Потерялась просто возможность постоять у доски, не стесняясь, причем, слишком сильно большого зала, да… здесь, в онлайне, так нельзя сделать. Нельзя подойти с личным вопросом, который ты боишься задать при большой аудитории.

А. Д.: В целом можно. К вопросу об образовательной технологии... кроме обязательных лекций можно увеличить дистанционное неформальное общение.

Ю. Д.: Это было бы здорово! Только как?

А. Д.: Чтобы человек перестал стесняться всех вокруг нужно показывать ему, что можно задавать любые вопросы. Проще это начать в неформальном режиме. Можно через ZOOM, но с видео, чтобы люди видели глаза друг друга, чтобы не огораживались экраном. Можно задавать произвольные темы для разговора, например, поговорим о фильмах, кто что посмотрел за последнее время, кто что может порекомендовать. Поговорим о компьютерных играх, интересных направлениях математики, инвестициях, спорте. Да на любую тему! Такие встречи можно запускать с какой-то периодичностью и каждый раз придумывать новую тему. Так люди привыкнут общаться и поймут, что они могут спрашивать что угодно.

Ю. Д.: В общем та же самая проблема и то же самое решение, которое у нас было на Летней школе.

А. Д.: Да, просто в онлайне. Можно попробовать, но я не знаю, как это зайдет.

Ю. Д.: Я тоже не знаю. Но я надеюсь, что Вы правы, и что люди потянутся, потому что многие у нас, в принципе, как я – любят кодить и сидеть, уткнувшись, задавая вопросы только по делу. Но я знаю, что на таких неправильно ориентироваться. Надо попробовать, возможно, остальные подтянутся. Это классно. Вы будете на таких мероприятиях участвовать?

А. Д.: Я могу. Но не могу гарантировать, что на всех поучаствую. Кстати, мы и на работе делаем такие неформальные беседы – это что-то типа онлайн-тимбилдинга.

Ю. Д.: Потому что люди… студенты любят между собой посидеть, но они любят часто и вот с преподавателями, которые им интересны, как-то пообщаться, но именно в неформальном формате.

А. Д.: Можно, кстати, делать занятия в виде бесед, но не на свободные темы, например, «прохождение собеседования». Один из студентов проходит виртуальное собеседование опытной комиссии, а остальные за этим следят и могут поучаствовать на какой-то стороне по желанию. Возможно, такие тренировки избавят от стресса на реальном собеседовании. Можно умело привязывать вопросы к темам наших лекций, чтобы, когда человек не отвечает, говорить ему, что про это говорилось тут-то и тогда-то. Лекции нужно слушать внимательно (смеется).

Ю. Д.: Это мы тоже думали! Ну, Александр Геннадьевич, это то, что Вы можете только сделать. Ну или ваш семинарист. А какие ещё «фишки» Вы используете при обучении студентов?

А. Д.: Например, построение занятий так, чтобы это был обмен опытом. Я сам со студенческих времён помню, что нет ничего более ценного при изучении программирования, чем просмотр чужого кода – когда видишь, как другой человек решил ту же задачу. Поэтому всё, что сдают студенты, я выкладываю для них в открытый доступ. Стараюсь, чтобы мы обсуждали решения. Многие занятия у нас как раз отчёты по своим решениям. Например, на курсе «Прикладные задачи анализа данных» так всё устроено. Студенты друг у друга могут научиться гораздо большему, чем у преподавателя. Да я и сам у них учусь.
Я не люблю, когда учёба превращается в список инструкций «если, то». Гораздо интереснее до этих правил доходить. Как знаете, лучше решить одну задачу 100 способами, чем 100 задач одним. Поэтому лучше занятие потратить на придумывание новых методов, чем на зазубривание одного. В идеале и форма лекций должна быть интерактивной «вопрос-ответ». В МГУ у меня некоторые лекции как раз так и устроены: студенты всегда наготове, так как в любой момент будет вопрос. Тяжелее такую форму делать на потоковых лекциях и при чтении сотрудникам бизнес-компаний. Вот последние не любят думать и отвечать на вопросы. Им нужны чёткие инструкции.
Как начать карьеру в области машинного обучения.

Ю. Д.: Александр Геннадьевич, насколько я понимаю, Вы, помимо образовательной активности, уже много лет занимаетесь индустриальным ML. Какой формат ваших работ: консультативный или ведете разработку внутри себя, как на аутсорсе для других компаний?

А. Д.: Я не буду рассказывать подробности проектов, как ни странно, это запрещено договором. Я руковожу исследованиями – их научной частью – группами исследователей-разработчиков. Часто я участвую в найме или увольнениях, но тут мое слово, хоть и имеет большой вес, все же не решающее. Также как вопросы, связанные с зарплатой я тоже не решаю. Когда-то у меня было больше полномочий (смеётся). Ну я много кем успел поработать: и простым программистом работал, и директором. А теперь – только исследования и доведение их до уровня готового внедрения в production. Из интересных фишек… у нас есть, например, семинары.

Ю. Д.: У Вас есть семинары внутри компании?

А. Д.: Мы регулярно обсуждаем что-то свежее и новое, методы, о которых кто-то что-то прочитал.

Ю. Д.: А у меня, кстати, студенты спрашивали: «Вы за новыми исследованиями и новыми методами, новыми библиотеками как-то следите? Сколько времени этому посвящаете? Как вообще эта работа по получению новых знаний у Вас устроена?»

А. Д.: Не уверен, что у меня устроено совсем эффективно, в том смысле, что я вижу недочеты в своей системе. Но общий совет очень простой. Есть некий список ресурсов, который надо мониторить. Например, arxiv, если Вы занимаетесь машинным/глубоким обучением. Чтобы сократить себе объем просмотров есть агрегаторы, фильтры по областям и т.д. Есть полезные блоги, из центральных – блоги ведущих компаний типа Google и Facebook.


Ю. Д.: А если хочется быть внутри, внедрять самые последние вещи, то лучше быть в рамках академической среды или в рамках R&D центров крупных компаний?

А. Д.: Тут вопрос не совсем корректный, потому что сейчас «в рамках компаний» – очень размытое понятие. Есть компании, где ты действительно researcher, то есть твоя задача — это читать и писать статьи, у тебя KPI такой: сколько ты статей напишешь с аффилиацией с данной компанией и выступишь на NeurIPS, ICML. А есть компании, где ты должен писать код, и это занимает весь твой рабочий день. Чтобы держать руку на пульсе, естественно первый вариант предпочтительнее второго. А есть, кстати, должности в компаниях, в обязанности которых входит хвататься за все новинки, пытаться в них быстренько разобраться, и потом докладывать на общем собрании, семинарах и т.д.

Ю. Д.: Как интересно, я не знал, что есть такие люди.

А. Д.: Да, бывают, но, опять же, у таких людей фокус размывается, они не могут ничего конкретного, потому что они все «просматривают». А есть люди, которые очень здорово разбираются в конкретной области. Вот, например, человек занимается синтезом звука, и он всё про это знает, и все новинки попробовал, и у него есть мнение по всем алгоритмам, но чуть-чуть в сторону и он будет плыть. Ему сложнее потом найти какую-то работу со сменой деятельности, поскольку больше шансов завалить собеседование по незнакомым вопросам.

Ю. Д.: А вот кстати, это важный вопрос. Есть учащиеся, они учатся на ВМК, у нас здесь в Masters, в каких-то других местах. Чего им не хватает (а может всего хватает, и я не прав), чтобы стать хорошим датасаентистом вот прямо сейчас. Пойти на работу и что-то делать.

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

Ю. Д.: Или шить ботинки...

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

Ю. Д.: Александр Геннадьевич, такой вопрос, даже два. Один связан вот с чем. Мы, когда делали курс по оптимизации, мы думали, что можно учить оптимизации как... учить пользователей, которые просто будут готовые какие-то инструменты использовать для решения какой-то своей конкретной задачи. А можно учить разработчиков, которые эти методы новые придумывают. В вашем примере это как человек, который готовое решение берет и пишет его с нуля, но может быть не обязательно придумывает. Вам какие интереснее было бы читать курсы? Которые для разработчиков или которые для пользователей?

А. Д.: Хороший вопрос, я что-то не задумывался о такой постановке. Мне кажется, что сложно эту концепцию реализовать, точнее людей разделить на два типа. На самом деле людей, которые могут придумать что-то принципиально новое, скорее всего, гораздо меньше.

Хотя, придумывание нового тоже можно автоматизировать (смеётся). Есть такие нечестные приёмы: подсматривать идеи и переносить на другие области. Например, в обработке текстов (NLP) есть локомотивная подобласть – автоматический машинный перевод. Подавляющее большинство алгоритмов, начиная от seq2seq заканчивая трансформерами, пришло сначала в NLP, потом в другие области машинного обучения оттуда. Поэтому можно просто мониторить новинки там и их быстро переносить на свою область, но это не совсем «придумывание нового». Хотя студентам я обычно показываю локомотивные области и говорю «смотрите сюда, скоро это появится ещё здесь, здесь и здесь».

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

А. Д.: Ой, тут бы я не стал давать прогнозы. Допустим, мне сейчас нравятся графовые нейронные сети и всё, что с ними связано, но, во-первых, это не свежее направление. Во-вторых, не знаю, на сколько лет его хватит. Конкретно сейчас удачное время, поскольку всё, что разработано в парадигме классических нейронок переносится на графы: свёртки, рекуррентности и т.п. Но когда-то перенесут почти всё и всё апробируют, придумают что-то принципиально новое. При современных скоростях исследований это года-два.
Потом появится какая-то очередная модная тема. В машинном обучении многое зависит от популярных объектов исследования. Например, раньше теми же самыми графами не занималось столько народу, а какой толчок исследованиям дали социальные сети?! Так и будущим исследованиям что-то даст толчок, может, криптовалюты, а может, квантовые компьютеры, хотя и то и другое новинками не являются.
Если ещё пофантазировать, то в ближайшем будущем мы, наверное, увидим в нашей стране развитие открытых данных, биоинформатики, так у нас любят это называть, применение ИИ в политике. Но сложно спланировать карьеру, чтобы оказаться в нужное время в нужном месте. Проще всегда заниматься любимым делом, это избавляет от необходимости прогнозировать.

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

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

Ю. Д.: Да, это этическая сторона.

А. Д.: Меня это тоже часто спрашивали, а я говорил: «Слушайте. А вас это реально волнует? Вы создали алгоритм, который уже убил пару людей? Или у которого есть шанс это сделать? Вот Вы чем занимаетесь?» Мне в ответ – «рекомендательными системами при онлайн продажах». Тогда вопрос практически закрыт. Это мне напоминает старые популярные вопросы. Помните, в прошлом веке остриём науки и технологий была космонавтика: спутники, первые полёты человека, космическая станция, исследование планет и Луны. Было много обсуждений, много книг философов и писателей-фантастов, фильмов. Почти вся фантастика индуцировалась темой заселения других планет, космическими экспедициями... Какой был центральный обсуждаемый вопрос? Контакт человека с инопланетянами! (смеется) Помните, сколько обсуждений, книг и фильмов было? Кого это сейчас волнует?! Вот действительно, покажите мне этого человека.

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

А. Д.: Такие примеры повсюду. В советское время самый центральный предмет был «Основы марксизма-ленинизма», и в аспирантуре его сдавали. Тоже там была своя этика. Мне коллега по кафедре, профессор Местецкий, рассказывал, что его на вступительном экзамене спрашивали «будут ли тюрьмы при коммунизме?» Кого это сейчас волнует?

Ю. Д.: Никого

А. Д.: С этими алгоритмами-убийцами будет тоже самое. Мы видим, как сеть генерирует правдоподобный текст, стилизует изображение или предсказывает продажи, а потом вдруг начинаем думать про убийства... ну хорошо, управление беспилотниками – там больше шансов кого-то задавить, чем при стилизации изображений. Но даже тут больше экономических проблем (типа их рентабельности), про электромобили вон насколько раньше говорить начали, однако мы их до сих пор не видим их массово на дорогах. До того, как беспилотники начнут колесить по улицам, они начнут колесить на заводах: подвозить продукцию, развозить сырьё и т.п., т.е. будут апробированы в относительно безопасных для общества местах, на невысоких скоростях, к этому моменту уже автоматически сформируются решения всех этических и юридических вопросов. Мы же сейчас определяем виновника ДТП? При этом почти не вспоминаем про изготовителя авто, если не было дефекта производства. А изобретателя автомобиля мы вообще не вспоминаем! Также будет и с алгоритмами, мы просто дойдем до того уровня осознания ситуации, при котором ясно, кто и какие обязательства берёт на себя.

Ю. Д.: Философам тоже надо писать диссертации. Но если машинное обучение в целом просто очень модное направление, а глубокое обучение очень модно внутри машинного, то какие области в Computer Science или близкие к ним оказались забыты? Что помимо машинного обучения может быть Вам стоило бы подучить для решения реальных бизнес-задач?

А. Д.: При применении машинного обучения в идеале надо знать предметную область. Тогда больше шансов получить практически полезное решение. А Computer Science целиком очень полезна, от основ алгоритмов до NP-полноты. Хотя бизнес-задачи решаются, в основном, с помощью здравого смысла. Вообще, какая-то отдельная область науки – это просто одна из концентраций этого самого здравого смысла. Так что учиться правильнее не «направлениям», а просто думать.

Ю. Д.: Александр Геннадьевич, а про RL, что Вы скажете. Сейчас многие туда стремятся.

А. Д.: У меня нет ни каких-то восторгов, ни каких-то пренебрежений этой областью. Есть здесь перспективные приложения, например, AutoML. Есть, конечно, уже успешная история программирования логических игр. Как человек, который немножко этим занимался, скажу, что RL тут, действительно, всё перевернул. И самое забавное, даже породил некоторое направление исследований. Недавно была интересная статья. Взяли шахматы и попробовали в них правила немножко поменять. Раз у нас есть супералгоритм, который позволяет быстро выучиться сильно играть практически в любую логическую игру, можно проверить баланс в игре при модификации правил. Там есть многие интересные находки, например, если пешке разрешить ходить и через одну клетку постоянно, а не только при первом ходе, то это дает громадное преимущество белым. Они, как правило, успевают вывести пешку в ферзи и за счет этого выиграть. То есть, мы теперь можем создание справедливых правил поручить искусному интеллекту.

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

А. Д.: А игры гроссмейстеров уже не нужны. Последняя версия от DeepMind играет без данных о партиях людей, она просто играет сама с собой. И выучивается играть лучше, чем человек. Это как раз меня лично больше всего в RL поразило! Только зная правила, играя с самим собой, можно научиться играть практически оптимально! Люди же так не учатся, у нас всё-таки большая социальная составляющая в обучении.

Ю. Д.: Тогда вопрос отпал... Это был вопрос про то, чтобы не было артефактов в смысле артефактов стратегии игры. Если ты играешь только против самой себя, чтоб все это не вырождалось. Прощк объяснить на примере. Вот мой тесть и его брат. У них был вырожденный случай. Они играли в Цивилизацию 2 годами, и в какой-то момент вся их планета превратилась в опустошённую ядерными взрывами пустыню, где остались только рельсы, по которым доставляется продукция, чтобы запускать ядерные бомбы. Вот это артефактная стратегия. И я думаю, не может ли быть такого и для случаев, когда программа играет против программы. Такой локальный минимум где-то совсем не в оптимальной области.

А. Д.: Кстати, в RL как раз есть механизмы избежания подобного. Например, есть любопытство – у меня аспирант пытается этим заниматься: надо не просто максимизировать награду, но и исследовать пространство стратегий. Это по-разному реализуется. Например, ты там пытаешься предсказать состояние среды после своих ходов. Если уверенно предсказываешь, то это плохо – ты хорошо узнал этот мир и тебя нечем удивить, ходить лучше туда, где ждёт тебя что-то новое. Кстати, забавно на Kaggle сейчас есть соревнование камень-ножницы-бумага, надо написать бота, который выигрывает.

Ю. Д.: Это очень здорово! Знаете, я думаю может быть хорошая история, которую как раз в теории игр в книжке Диксита описана. Там была такая вещь: у двух фирм была какая-то игра за лицензию. То есть они должны были на аукционе купить лицензию. И чтобы не устраивать эти гонки денежные, они договорились, что проведут одну партию камень-ножницы-бумага, и кто выиграет, тот и получает лицензию. И они подошли к этому совершенно по-разному. Одни взяли экономистов или исследователей и начали узнавать игра камень-ножницы-бумага, как здесь лучше всего выигрывать, какие тут паттерны. И они соответственно рассказывали про равновесие Нэша и тому подобное. А другие сделали по-другому. Они пошли и собрали кучу детей, и спрашивали у них: «а как лучше играть?». Например, узнали, что лучше начинать с камня. И понятно, что если две эти стратегии столкнутся, одни сказали оптимально, что камень, но вторые об этом не знают у них камень-ножницы-бумага равновероятно просто кидать монетку, то там интересный может быть результат. Ни та, ни другая может стратегия может не сработать. Конечно, в среднем будет... за счет одной рандомизации всего всё слетит, ну ладно. Опять куда-то в сторону. Это классный пример дать игру, в которой не должно быть интересной стратегии, если твои противники об этом знают. И тоже ничего интересного не предлагают. То есть там кажется, что есть оптимальный путь только если кто-то другой не тривиальное решил что-то сделать. Простите, опять отклонились от темы. Что ж, в какую же лучше пойти смежную область в DS? Этим темам либо не учат, либо учат плохо. Но они востребованы в бизнесе и помогут может быть сюда же тому же дата-саентисту.

А. Д.: Есть некоторые направления в самом машинном обучении, в которых есть пустоты. Например, из модных направлений – интерпретируемость моделей, их прозрачность и «честность». По нему много статей, а хороших практических кейсов, объясняющих «что, для чего и как» явно не хватает. Ну, и пока чёрные ящики не превращаются в прозрачные, понятные неспециалистам.

Потом ещё проектирование архитектур нейронных сетей. Классическое машинное обучение – это на 90% придумывание признаков, глубокое обучение практически убрало это занятие из списка дел исследователя, но заменило на придумывание архитектуры нейросети. Про AutoML, когда это делает другая сеть, пока не будем говорить. Так вот тут не хватает пока концепций и даже просто хороших учебных курсов по теме. Генерации признаков учат, а созданию новых сетей – нет.
А из глобальных тем... я бы не сказал, что какие-то темы пустуют на самом деле.

Ю. Д.: Я могу привести хороший пример. У нас очень много задач, связанных с оптимизацией логистики. Если их моделировать, то это на самом деле оптимизационная задача, но вот оптимизаторов по этим задачам нет. Есть либо алгоритмисты, то есть разработчики, которые прошли хорошие курсы по алгоритмам и умеют их решать. Либо дата-саентисты, которым тоже это часто поручают. Кажется, что вот эта часть, связанная с operation research, она в некотором смысле заброшена.

А. Д.: По этой области есть же коммерческие решения каких-то IT-гигантов, насколько я знаю.

Ю. Д.: Там другое дело.

А. Д.: То есть формально эта задача где-то решена за большие деньги с какой-то гарантией качества. И гипотетически, если у тебя есть эти деньги, то ты можешь купить это ПО и нанять специалистов, которые в этом разбираются. Другое дело, что не любят тратиться на подобные решения. Легче поймать дата-саентиста и сказать: «Слушай, ты еще и в оптимизации разбираешься?» Такие случаи были в моей практике, но нельзя сказать, что тут совсем что-то пустует. Часто бывает, что какую-то область раскручивают, сначала один упомянул кейс на каком-то митапе, потом другой и потом все говорят. Часто это лишняя реклама.

Ю. Д.: А можете привести примеры?

А. Д.: Многие задачи, связанные с тяжелой промышленностью. Про них с некоторых пор много говорят, и говорят, вроде, правильно – ИИ должен везде работать. Но после чтения рекламных статей, о том, как ИИ здесь экономит миллиарды, если посмотришь на действительность, то очень удивишься. Так получилось, что я общался с представителями индустрии по кейсам, которые получили широкую огласку в прессе. Оказалось, что до промышленного внедрения мало чего доходит. Например, внешние заказчики взяли данные, построили модель, как-то оценили экономическую эффективность, всем рассказали об этом, а никто готовым решением не пользуется, по многим причинам. Не знаю, какая ситуация конкретно сейчас, многие начали заниматься ML в индустрии и кейсы стали более успешные, но всё равно они не дотягивают до нужного уровня. Вот смотрите, в промышленности часто работают простые модели, в большинстве случаев вообще линейные, но там больше проблем в предобработке данных – много показаний, но мало релевантных, большая погрешность датчиков и тому подобное. И многие почему-то боятся об этом открыто говорить. А бояться не надо: пишите, что линейная регрессия экономит миллиарды, а не ИИ!
А вообще, если долго заниматься узкой областью, то обычно формируется элегантное масштабируемое и робастное решение, например, в виде архитектуры нейросети. Вот в изображениях – свёрточные сети, в них фильтры, которые традиционно использовались в компьютерном зрении, настраиваются автоматически, в текстах – рекуррентные и трансформеры, здесь попытка использовать умные представления слов и их зависимости в предложениях. А в промышленности о таких новых архитектурах никто пока не рассказывает, значит, решают не достаточно хорошо! Всё-таки, «соберём данные в табличку и запихнём в бустинг» в задачах, где есть физика процесса, временные зависимости и вековая экспертиза, выглядит подозрительным. Это точно не НАУКА о данных, это «тяп-ляп и готово». Кстати, про бустинг... были случаи, что на митапах рассказывали, как задачу бустингом решили, а когда заказчик код посмотрел, увидел обычную линейную регрессию и закоменченный бустинг.
Еще немного про OzonMasters

Ю. Д.: Александр Геннадьевич, я вернусь к давно отложенному вопросу. Можете сравнить ваш курс в Masters и ваш курс на ВМК.

А. Д.: У меня на ВМК есть курс потоковый семестровый по машинному обучению. Он является частью моего первого семестра в OzonMasters. Есть еще курс на ВМК для магистров нашей кафедры – «Прикладные задачи анализа данных», он практически годовой. И второй семестр OzonMasters – это часть этого курса. Плюс ещё на ВМК у меня полная власть над формой и содержанием курса, поэтому я экспериментирую. Материалы этого года я, кстати, выложу в ближайшее время в открытый доступ – видео и слайды. Впрочем, слайды всегда были доступны.

Ю. Д.: Плюс ваш тестовый DL

А. Д.: Да, на ВМК я по-прежнему в тестовом режиме читаю «Глубокое обучение», его нет официально в сетке расписания. И в новом году буду, сделаю его, наверное, максимально большим по объёму из подобных курсов, посмотрим, что из этого получится.
Третий семестр OzonMasters – это как раз часть курса по DL, потом посмотрим, может и четвёртая будет составлена из этого материала. Мы, правда, выкинули часть, связанную с NLP, так как в OzonMasters есть отдельный курс по текстам. И сосредоточились на компьютерном зрении.

Ю. Д.: Это здорово. У меня в голове ведь OzonMasters построен так: мы с вами сначала договорились на годовой курс, а потом взяли и договорились еще на 3-ю часть. Сейчас этот курс по ML как нитка, на которую я навешиваю другие курсы. Это ключевой обязательный курс, который всё затрагивает. Если человек решает, что этого объема ему хватает, он просто не идет на спецкурс. А если он думает, что ему нужно глубже, то идет. Что скажете про студентов OzonMasters?

А. Д.: Первый выпуск у нас должен получиться классным – есть очень хорошие ребята, причём дружные, что особенно ценно. Надеюсь, они будут поддерживать связи и после выпуска. Когда запускался OzonMasters, я не понимал, кто сюда придёт учиться и зачем, но теперь вроде всё понятно. А со вторым, как мне кажется, мы немного ошиблись с отбором. К нам попала часть опытных в машинном обучении, не совсем понятна их мотивация, а понимание мотивации важно для более правильного выстраивания образовательного процесса. Возможно, по причине, что целая группа ребят уже работают DS-ами в компаниях на хороших должностях, у нас такая небольшая посещаемость лекций по основным предметам. Кстати, мы вначале опрос проводили «насколько ты думаешь, что ты знаешь машинное обучение?» Там процентов 20 сказали, что на пятерку знают, мне неловко, так как я каждый год убеждаюсь, что на пятёрку не знаю (смеётся), а тут отличников надо учить.

Ю. Д.: Александр Геннадьевич, я думаю, что здесь будет очень правильно в следующем году, а, может быть, и в следующем семестре в начале курса давать большой тест, где вы будете оценивать их знания. Просто, чтобы люди сами понимали уровень своих знаний.

А. Д.: У меня была такая идея, я периодически так делаю. Но, на самом деле, еще рано оценивать наш последний набор.

Ю. Д.: А если сравнивать со студентами того же ВМК?

А. Д.: Тут не совсем корректное сравнение получится, потому что я взаимодействую с ними в разных форматах. И, опять же, разные мотивации, разные истории попадания на курс... Да и статистики у нас мало, пока ещё ни одного выпуска же не было.

Ю. Д.: Нам нужен какой-то benchmark, чтобы иметь возможность сравнить.

А. Д.: На ВМК даже один набор на следующий не похож, часто сильные и слабые группы чередуются. Также много зависит от настроения коллектива – конкретной группы. Я думаю, что в плане каких-то бизнес-навыков, выпускники OzonMasters будут лучше смотреться. Здесь более подходящая линейка курсов для бизнес-целей.

Ю. Д.: Окей, Александр Геннадьевич, а как бы вы улучшили OzonMasters. Я вам почти на каждой встрече этот вопрос так или иначе задаю, но что можно сделать лучше, как вы думаете?

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