Недумов Ярослав Ростиславович

E-mail: yaroslav.nedumov@ispras.ru
Telegram: @nedumov
Образование:

  • специалитет ВМК МГУ, кафедра СП, 2002-2007
  • аспирантура ВМК МГУ, кафедра СП, 2007-2010

Научные интересы:

  • исследовательский поиск (exploratory search);
  • автоматизация и поддержка проведения исследований;
  • NLP, машинное обучение, обработка слабоструктурированных данных (текстовых таблиц, таблиц БД и т.п.) — там, где это требуется.

Мои научные интересы лежат на стыке двух областей: исследовательского поиска и анализа научных данных и науки в целом.
С задачей исследовательского поиска вы вероятно столкнулись прямо сейчас. Задача выбора темы курсовой работы и научного руководителя обладает всеми признаками исследовательского поиска:

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

В рамках проекта SciNoon (демо с прошлогодними темами) мы решаем задачу исследовательского поиска применительно к научным данным (в первую очередь научным статьям). Основной фокус на данный момент сделан на поддержку групповой работы, но мы работаем над разработкой всех трех видов инструментов исследовательского поиска: помощи при составлении запроса, помощи при обзоре результатов, помощи при длительном поиске и групповой работе.

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

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

Поучаствовав в нашем проекте вы сможете попробовать себя в современном программировании на Scala (Play, Akka) и Typescript (React, Redux, D3js), узнать как устроены современные Web-приложения и научиться ставить эксперименты и ясно выражать свои мысли.

Темы для курсовых/выпускных работ 2020/2021

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

Сбор данных для базы знаний

Чтобы поисковая система работала, необходимы исходные данные. Для научного поиска это в первую очередь научные статьи. Научные статьи — это достаточно специфичные тексты: научный стиль изложения, обязательные ссылки на предыдущие работы, достаточно типовая структура с введением, обзором области, описанием вклада авторов, заключением и дискуссией (еще и с дополнительной спецификой в зависимости от предметной области, например формулы у математиков, у химиков, у биологов). Всё это можно использовать для того, чтобы извлекать из них информацию, которая затем может оказаться полезной при реализации конкретных поисковых сценариев.

Тут есть готовые решения, например GROBID или CERMINE (посмотрите их демки). Обработка включает в себя как выделение структуры документа: где блоки текста, в каком порядке их следует читать, где картинки, где таблицы и т.д., так и более специфичный анализ: где в тексте ссылки на литературу, где авторы, где они работают, каким грантом было профинансировано исследование и многое другое. Качественно извлеченные данные открывают как возможности для более точного формулирования поисковых запросов («дай мне статьи только за последние 5 лет», или «дай мне статьи только с топовых конференций» — хотя тут еще попробуй пойми, кто там топовый, это уже следующий уровень анализа), так и просто для более точного вычисления релевантности. В этой же группе и задачи очистки и интеграции данных.

Здесь мои интересы смыкаются с Ильей Козловым, который занимается извлечением структуры, и Владимиром Майоровым, который занимается извлечением информации (information extraction).

Поддержка специальных сценариев поиска

Следующая группа тем про поиск, который не просто lookup. Здесь хорошо бы сначала прочитать небольшую классическую статью Марчионини.

Прочитали? Прочитайте, не всё то поиск, что Гугл и Яндекс.

Так вот. Из сценариев, которые приходят мне в голову прямо сейчас это:

  1. Исследование новой области — этим мы занимаемся уже некоторое время, можно было бы посмотреть нашу с Ирой статью например, если бы был доступ, но я могу черновик скинуть в частном порядке. Здесь основная беда, с которой приходится бороться — это неспособность пользователя сформулировать точный поисковый запрос и необходимость как-то демонстрировать ему большие массивы результатов так, чтобы он мог в них сориентироваться.
  2. Анализ истории. Когда ищешь то, не знаю что, легко потерять фокус, и начать просматривать котиков интересные, но нерелевантные результаты. Хочется научиться замечать это и помогать вернуться к последней релевантной ветке. Для поиска научных статей это отдельно актуально.
  3. Теперь переходим к коллективному поиску, когда одну и ту же задачу решает несколько человек вместе. Здесь главные вызовы — синхронизация общего понимания задачи и распределение задач. Чтобы важные результаты оперативно становились известны всем членам группы и чтобы все одновременно не просматривали поисковую выдачу по одному и тому же запросу. Подходящим инструментом здесь выглядит чат-бот.
  4. Отдельная история — это решение сразу нескольких связанных поисковых задач (это могут быть подарки на 8 марта, а могут быть и статьи по разным аспектам решаемой проблемы). Тут придется дополнительно отслеживать степень готовности по каждому элементу, следить за пересечениями, оценивать скорость работы.

Анализ работы поисковой системы

Многие слышали про понятие релевантности. Классический поисковый интерфейс предполагает представление результатов в виде отсортированной последовательности ссылок, которые пользователь просматривает сверху вниз, пока не найдет нужную (в идеале — первую). Ссылка, на которую пользователь кликнул последней и есть «правильный ответ» в этой модели. На самом деле даже здесь всё несколько сложнее. Что уж говорить про итеративный исследовательский поиск с целью обучения или исследования. Мне бы хотелось здесь исследовать, как пользователи используют поисковые системы (на примере SciNoon, а может и чего-то другого, смотря какие данные удастся добыть) и построить более адекватные их задачам модели. Темы этой группы естественным образом сильно связаны с темами из предыдущей группы.

Если у вас появились вопросы по какому-то из направлений или что-то вас заинтересовало и вы хотите более конкретную тему — напишите мне.