«Сделать невозможно, а я всё равно сделаю»
Чтобы узнать, что двигает науку вперёд, зачем нужны конференции и как писать научные работы, мы поговорили с Антоном Осокиным. В 2014–2017 годах он работал в проектной группе по машинному обучению и компьютерному зрению в Национальном исследовательском институте INRIA во Франции. После возвращения в Россию Антон работал доцентом факультета компьютерных наук НИУ ВШЭ в лаборатории байесовских методов, а с лета 2020 года стал ведущим научным сотрудником исследовательской лаборатории Яндекса.
Почему в сфере computer science важны конференции
Любому научному сообществу нужен способ оценки научных работ. Для компьютерных наук таким способом являются публикации и выступления на ведущих конференциях. Например, в машинном обучении это NeurIPS и ICML, в компьютерном зрении — CVPR, ICCV или ECCV. На конференциях исследователи представляют свои результаты сообществу и узнают, что делают другие исследовательские группы по всему миру.
Науку движет вперёд общение и взаимодействие между учеными. Благодаря ему появляются новые идеи, открытия, какие-то прорывные вещи
Круто, когда на конференции получается поговорить с тем, кого ты цитировал в своем докладе, или пересечься с человеком, занимающимся похожей проблемой. А ещё круче, когда ты только подходишь, а этот учёный говорит, что знает тебя и читал твою работу.
В других областях по-другому. Например, в биологии конференции нужны прежде всего для общения, а главную роль играют публикации в научных журналах. Для мировой науки также важна просветительская работа и работа над формированием среды, преподавание в вузах и организация стажировок. Например, к нам в отдел исследований Яндекса студенты могут приходить на стажировку и вместе с нами работать над проектами, как настоящие учёные. Иногда запросы на исследования приходят из Яндекса, а порой возникают во время обсуждений с коллегами.
Как писать и читать научные работы
Если это не теоретическое исследование, вроде доказательства теоремы, то написание текста в научной работе занимает не так много времени. В прикладных проектах больше внимания тратится на построение метода, его реализацию и получение конкретного результата. Для подготовки одной таблицы исследователь может приложить гораздо больше усилий, чем для написания 10 страниц статьи, потому что именно эта таблица содержит ключевые результаты.
Если я читаю чужую статью, то всегда стараюсь сформулировать, зачем я её читаю: что и на каком уровне хочу понять, какого рода идею почерпнуть
К примеру, разобраться в деталях или понять, как автор применяет метод. Мне может быть даже не важно, что за метод рассматривается, бывает интересно составить общее представление о какой-то области. И в зависимости от того, как я для себя отвечаю на этот вопрос до прочтения статьи, читаю очень по-разному.
Случалось, что к одному и тому же материалу я возвращался несколько раз с разной мотивацией и читал разные части, каждый раз открывая для себя что-то новое. Или интересные и важные вещи открывались после перечитывания.
Что отличает науку от ненауки в data science
Это очень непростой вопрос. Если считать, что ненаука — это инженерия, то граница может быть сильно размыта.
Наверное, для меня определение сути проекта состоит в цели, которую ставит команда.
Если основная цель проекта — найти что-то новое и рассказать об этом всему миру, тогда это скорее наука
Даже если задача очень приземленная и, например, заключается в подборе отдельных коэффициентов, её решение может пролить свет на что-то, привести к новым исследованиям. А если основная цель — получение прибыли (или получение каких-то закрытых результатов, на основании которых можно получить или увеличить прибыль), то это не наука, на мой взгляд.
При этом существуют проекты с открытым кодом (open source). В таких проектах делают хороший код и выкладывают его для всех, создают инструменты, которыми люди могут пользоваться. Они приносят огромную пользу. У сообщества появляются доступные инструменты высокого качества. В этом случае получение прибыли не есть цель. Финансирование для поддержания коллектива, который разрабатывает проект, необходимо, но это скорее покрытие издержек. И хотя это не наука в моём понимании, пользу для сообщества такие проекты приносят.
Хотя науку я довольно широко интерпретирую. Прикладная наука — тоже наука. Мне хочется, чтобы и польза была видна. Нравится делать что-то новое, про что люди думают, что это сделать невозможно. Это некий драйв: сделать невозможно, а я всё равно сделаю. Поэтому и интересно.
Работа в отделе исследований Яндекса
Сейчас я работаю над задачей синтеза SQL-запросов к базам данных по текстовому описанию. Во многих компаниях люди сами пишут запросы к базам данных на разных языках. Автоматизация этого процесса сэкономила бы силы и время. Для решения задачи есть всё, что нужно: данные, команда, тесты, запросы, опыт других учёных. Мы понимаем, как написать и запустить код, а также как добиться нужного результата. Но есть и много трудностей. Во-первых, пока неясно, какой формат запросов нужен системе — в виде изображения или в виде голосового или текстового сообщения. Во-вторых, неизвестно, как предсказать, обработает ли система новый запрос, который может быть как похож, так и не похож на старый.
Современный подход основан на том, что система будет работать в среднем хорошо, но с частными или пограничными случаями большинство алгоритмов справляется не так успешно. В пример могу привести показ рекламы в интернете. Обычно важно, чтобы пользователи кликали в среднем хорошо. Единичная ошибка при показе не критична. Но если мы используем систему в сфере управления, в медицине — там, где ошибка может повлиять на здоровье или жизнь людей, повредить имущество, то принимать решения на основе таких средних данных некорректно, это чревато критичными ошибками. Тогда возникает ещё один вопрос: как сделать так, чтобы задача покрывала все возможные случаи.
Neuro-Symbolic A.I. или нейро-символьные методы искусственного интеллекта призваны обойти частные случаи по-другому. С их помощью мы можем добавить в систему наши знания о мире, наши правила и законы, чтобы описать, какие ситуации недопустимы, и «отсечь» все частные случаи. Есть ещё важный момент, связанный с честностью системы машинного обучения и тем, как мы понимаем, что такое результат и как мы его оцениваем. На этот вопрос пока нет единого ответа, и прогресса как такового тоже нет.
Этот вопрос перекликается с задачами Андрея Малинина, ещё одного исследователя Яндекса из лаборатории оценки неопределённости. Он работает над обеспечением надёжности системы искусственного интеллекта в структурированных задачах, таких как перевод и распознавание речи. Всё это направлено на то, чтобы силами самой системы машинного обучения понять, насколько она уверена в ответе, и позволить ей ответить «я не знаю», а не делать случайные предсказания, которые приведут к ошибке. Конечно, случаев, когда системе неясно решение, должно быть немного.
Даже если в команде есть ресурсы, бюджет и технологии, это не означает, что научный успех точно будет. Его невозможно предсказать. Например, раньше считалось, что на понимание структуры белка нужны десятилетия исследований.
Теперь стало понятно, что огромную работу по вычислению можно провести на компьютере, а не вручную. Это подтверждает недавний кейс компании DeepMind. За три года учёные создали систему искусственного интеллекта AlphaFold, которая по аминокислотной последовательности белка смогла построить его трёхмерную структуру, то есть понять, какую форму принимают белки в клетке и как они работают. Понятно, что в DeepMind добились огромных результатов, но как они это сделали и что считать решением задачи — пока непонятно, ждём публикацию.