Как мы проводим соревнования по NLP в рамках Dialogue Evaluation
Близится Новый год, а это значит, что работа над конференцией по компьютерной лингвистике, NLP и интеллектуальным технологиям «Диалог» уже в разгаре. О том, что это такое и почему ABBYY его основной организатор, можно прочитать тут.
Одно из важнейших событий для NLP-комьюнити в рамках «Диалога» — проведение shared tasks на Dialogue Evaluation (DE), или «соревнований», посвященных разным практическим задачам из области NLP для русского языка. В 2022 году мы проводим уже тринадцатый сезон.
Мы стараемся регулярно писать про итоги DE, но еще никогда не рассказывали о том, как все устроено изнутри: кто придумывает задания, как готовятся «соревнования», кто и как их проводит, сколько нужно времени, чтобы подготовить одно соревнование (спойлер: это дело не быстрое), и многое-многое другое. Обо всем об этом и многом другом расскажем в нашем новом посте. Добро пожаловать под кат!
Разнообразие shared tasks на Dialogue Evaluation
DE объединяет соревнования по разнообразным темам и задачам — от лингвистических до индустриально-ориентированных.
Первые могут охватывать такие широкие области лингвистики, как морфология, синтаксис и семантика, или концентрироваться на задачах, посвященных конкретным сложным языковым явлениям: разрешению анафоры, гэппингу, детектированию семантических сдвигов.
Соревнования могут повторять задачи, которые ставит перед NLP-разработчиками бизнес: извлечение именованных сущностей (NER) и фактов, кластеризация новостей и обнаружение новостных событий, генерация заголовков и упрощение текстов. Были на DE и совсем «боевые» соревнования: нормализация спанов текстов, расширенный NER и извлечение отношений (relation extraction), которые проводились на текстах реальных официальных документов (отчетов и экономических прогнозов).
Мы собрали небольшую подборку соревнований последних лет, чтобы познакомить вас со всем многообразием Dialogue Evaluation.
Дорожка по автоматическому морфологическому и синтаксическому анализу русских текстов (2020)
GramEval — дорожка по одновременному морфологическому и синтаксическому анализу русских текстов. Организаторы выдвинули идею, что лемматизация, морфология и синтаксис должны «помогать» друг другу, в частности, при разрешении сложной омонимии. Обучающие и тестовые данные охватывали пять жанров современного языка: новости, сообщения из социальных сетей и электронную коммуникацию, энциклопедические статьи, художественную литературу и поэзию, бонусом шли исторические тексты XVII века, чей язык сильно отличается от современного русского. Вся разметка велась в формате Universal Dependencies. Обучающий и валидационный датасеты, а также подробное описание популярного формата разметки UD с примерами для русского языка находятся в открытом доступе в репозитории соревнования.
Соревнование по извлечению отношений в бизнес-постановке (2020)
Соревнование RuREBus посвящено извлечению сущностей и отношений в бизнес-постановке: источником текстов для него послужили документы Минэкономразвития. В соревновании было несколько дорожек для разных подзадач:
· извлечение сущностей (не только именованных), например, численных показателей, принимаемых мер и др. сущностей, которые могут быть интересны в тексте подобной тематики;
· извлечение отношений (цели, прогнозы, реализованные изменения) — может быть названа едва ли не самой популярной задачей для индустриального NLP.
Размеченный корпус и большая неразмеченная коллекция текстов Минэкономразвития для предобучения моделей доступна в репозитории соревнования.
Дорожка по извлечению значений слов из текстов русского языка (2018)
Первое для русского языка соревнование по автоматическому извлечению значений слов из неразмеченных текстов. Участники соревнования получили список слов, которые могут иметь несколько значений, например, гвоздики, белка и крылья, и должны были сгруппировать контексты с этими словами в соответствии с их значениями, количество значений (кластеров) для каждого омонима участники находили сами. Сложность этой задаче добавляли такие особенности русского языка, как богатая морфология и свободный порядок слов в предложении.
Дорожка по кластеризации и выбору заголовков для русских новостей (2021)
В соревновании предлагалось сразу три задачи: обнаружение и кластеризация новостных событий, ранжирование и написание заголовков для новостей. Организаторы считают, что кластеризация текстов как задача достаточно часто встречается в индустрии, и дорожки по ранжированию заголовков и их генерации логично продолжают ее. Датасеты этого shared task для обнаружения новостных событий и выбора заголовков — первые общедоступные наборы данных на русском языке для своих задач.
Соревнование по автоматическому анализу синтаксического явления гэппинга (2019)
Эллипсис — это намеренный пропуск слов в тексте. Хотя эллипсис и не такое частотное явление в языке, как омонимия, но все же оно осложняет автоматический анализ текстов и к тому же бывает очень разнообразным. Организаторы этого соревнования считают, что гэппинг является самым распространенным видом эллипсиса, поэтому сосредоточили свое внимание на нем. Это явление мы наблюдаем в таких предложениях, как «Петя любит Машу, а Маша — Петю», «Объем привлеченных Сбербанком России депозитов увеличился на 38,2%, а в остальных кредитных организациях — на 65,4%».
Датасет по этому языковому явлению сравнительно небольшой (22.5 тыс. примеров), но участникам удалось добиться значительных результатов, познакомиться с которыми можно здесь. Подробное описание соревнования по гэппингу можно найти в этом посте блога ABBYY на Хабре.
Этика Dialogue Evaluation, или почему shared tasks — не совсем соревнования
Несмотря на то, что в DE присутствует соревновательная составляющая (как минимум из-за лидербордов и победителей), все же не совсем корректно называть DE «соревнованиями» и говорить, что кто-то в нем «выиграл». В англоязычной традиции закрепилось понятие shared tasks, которое использовать предпочтительней. Однако устойчивого перевода этого термина на русский язык еще нет, поэтому если у вас есть идеи — делитесь в комментариях.
Итак, почему shared tasks, а не соревнования?
Дело в том, что самая важная составляющая DE — научная, а не соревновательная. DE и любые подобные форумы и воркшопы — это возможность для команд из разных компаний и организаций «сверить часы», определиться с SOTA (State of the art; методы, отвечающие актуальному состоянию дел) для разных типов заданий, найти решения, которые можно будет потом использовать в индустрии. Согласитесь, для комьюнити намного важнее найти хорошие подходы к разрешению анафоры или извлечению отношений и поделиться их архитектурой, чем выяснять, чья модель лучше решает эти задачи.
Подготовка к Dialogue Evaluation
DE — это не только участники и их решения. Это еще и организаторы, которые определяют стандарты разметки и метрики для конкретных задач, готовят бейзлайн (базовое решение). И самое главное — собирают датасеты. А это дело непростое.
По итогам каждого соревнования остается открытый обучающий датасет, который может использовать любой NLP-исследователь. Подготовка датасета с нуля занимает несколько месяцев, не говоря уже о финансовых затратах. Может ли себе такое позволить любой, даже опытный исследователь? Именно поэтому в организации DE участвуют сразу несколько компаний и университетов. Например, в 2022 году, помимо ABBYY, это будут МТС, SberDevices, Яндекс и другие.
Ниже шорт-лист этапов подготовки любого соревнования:
постановка задачи, ее формализация, подготовка инструкции для разметчиков;
сбор и разметка датасета;
анонсы мероприятия;
начало соревнований, активное общение организаторов с участниками;
подведение результатов;
написание статьи организаторов и статей-отчетов участников.
Таким образом, по нашему опыту, подготовка к соревнованию длится минимум полгода.
Опыт организаторов
Теперь узнаем, что интересного нам рассказали ребята из ABBYY, которые проводили shared tasks на «Диалоге» в прошлом году, и какие сложности возникают при организации.
Насколько DE важное событие для русского NLP сообщества и почему?
По большому счету, DE — это главное событие на русском языке, где выкатываются новые корпуса и проводятся соревнования. Понятно, что в мировом научном сообществе решают многие задачи для разных языков, и в этом смысле то, что делают для английского языка, для нас тоже важно и полезно. Иногда в международных соревнованиях русский может быть одним из языков. Но тем не менее, наша задача — делать корпуса именно для русского языка, поэтому DE — это главное событие для community. Все специалисты, которые непосредственно взаимодействуют с русским языком, знают и следят за этим мероприятием.
Как выбирают идеи, на какую тему проводить дорожку?
Во-первых, мы все исследователи, у нас есть научный интерес, и мы учитываем его при выборе задач. Главный научный интерес для меня представляют задачи, связанные с саммаризацией, синтаксическим анализом и извлечением информации.
Во-вторых, мы определяем, насколько реально собрать хорошие согласованные данные. Если результаты нас не устроили, то задачу нужно переформулировать или доработать. Ключевым показателем является возможность технически собрать данные в достаточном объеме и качестве. Кроме того, мы сами думаем, какими методами придуманную задачу можно решить. Чтобы выиграть соревнование, первый попавшийся способ, конечно, не подойдет, но важно понимание, откуда участники могут стартовать.
Также наша научная деятельность не находится в вакууме, есть много соревнований для английского и других языков. Мы за этим следим и, если подобная задача еще не решалась для русского языка, то адаптируем реализацию известного англоязычного соревнования, но с правками — нельзя просто взять и перевести соревнование, всегда добавляем что-то свое.
На какие этапы можно разделить подготовку к Dialogue Evaluation?
Это довольно длительный процесс. Начинается все с идеи соревнования — минимум за полгода до старта мы должны четко понимать, как и что будем делать. К осени у нас уже появляются конкретные идеи и планы, которые мы детально обсуждаем вместе с коллегами. После этого мы запускаем разметку.
Дальше идет этап создания датасета, то есть разметка. Сами мы не размечаем датасеты: обычно доверяем эту задачу студентам младших курсов или разметчикам с Яндекс.Толоки, но контролируем процесс. До того как запустить разметку, нужно подготовить инструкцию, объяснить, что и как размечать. Это тоже ответственный наукоемкий процесс, который требует еще и организаторских навыков. Обязательно проверяем, совпадает ли разметка одних и тех же данных у нескольких людей.
Затем до конца года мы готовим бейзлайны, выкатываем данные, следим за прогрессом участников. В феврале все участники должны отправить свои решения на проверку.
Чтобы данные были более объективными, один и тот же текст должны разметить несколько человек. В результате высчитывается согласие аннотаторов — мера, которая показывает, насколько были похожи независимые друг от друга мнения разметчиков. На твой взгляд, насколько важно согласие аннотаторов, и хороший ли тон выкатывать данные, не указывая их согласия?
Научная задача организаторов в DE — это фактически и есть создание корпуса. И, конечно, важным свойством корпуса является то, насколько он согласован. Без согласия аннотаторов все это имеет мало смысла. Я, наверное, могу представить теоретически сценарий, когда без этого можно обойтись, если данные совсем специфические, но обычно без согласия аннотаторов не обойтись.
Помимо датасета, в соревновании также важно, как сравнивать качество моделей участников. Как выбирают метрики качества для конкретной задачи DE?
В компьютерной лингвистике большинство задач — это задачи классификации. Есть стандартные метрики классификации, которые используются в 90% случаев (accuracy и f-мера), есть и специфические для конкретных задач. Отдельная область — когда в задаче есть генерация текста типа задач машинного перевода, саммаризации, симплификации. Проблема в том, что стандартные метрики здесь не очень хорошо работают. Тогда мы пытаемся придумывать метрику с нуля или как-то адаптировать имеющуюся.
Какие бывают специфические метрики?
Например, метрика SARI. Она используется для симплификации. Допустим, у нас есть текст, и мы его упрощаем. Как оценить, что его упростили хорошо? Самый простой способ — воспользоваться стандартными метриками (для машинного перевода) и сравнить с эталоном. Есть упрощенное предложение и эталонное, и мы их сравниваем друг с другом каким угодно образом. Например, считаем стандартами BLEU или ROUGE. Так делать можно, но это работает плохо, потому что все стандартные метрики, пришедшие из машинного перевода, направлены на то, чтобы сравнивать решение с одним эталонным ответом.
Однако в симплификации можно хорошо решить задачу несколькими способами — оба будут хороши, но друг на друга совсем не похожи. Поэтому сравнивать все варианты с одним эталоном некорректно. А если сравнивать не с одним эталоном, тогда непонятно, как оценивать. Поэтому существуют метрики, специально придуманные для симплификации, чтобы убедиться в том, что предложение получилось действительно простое: считаются разные лингвистические параметры, в том числе количество слов, длина слов, количество слогов и так далее. Это не всегда оптимально, но в сочетании с несколькими разными метриками можно получить некоторое представление о том, насколько хорошо предложение упростилось.
Кстати, подробнее прочитать о том, чем занимаются в NLP Advanced Research Group, можно здесь.
компьютерный лингвист в NLP Advanced Research Group, организатор SemSketches-2021 (Семантические скетчи)
Ты участвовала в организации нескольких соревнований на »Диалоге». Расскажи о своих впечатлениях?
Я участвовала в организации двух дорожек. Первая была в 2019 году, называлась AGRR: Automatic Gapping Resolution for Russian. Кстати, на Хабре про нее есть мой пост. Вторая — в 2021, SemSketches. Для обеих задач я придумывала смысловую часть, что и как будем делать.
Мне нравится заниматься дорожками, это четкая задача в строго определенные сроки. И ты, как организатор, ответственен перед участниками, помогает не бросать и делать лучше.
Как принимается решение, на какую тему делать соревнование?
Подходы бывают разные. Часто это продолжение предыдущих наработок, например, известная, но плохо решаемая задача, для которой нет корпуса. В моем случае оба соревнования необычные, задачи я придумывала сама, для них не существует бейзлайнов. С одной стороны, это выигрышный подход, потому что тебе не нужно думать, а чего же нового ты привносишь. С другой стороны, часто приходится отвечать на вопросы: «А зачем это вообще нужно?» и «Не слишком ли простая/сложная задача?». Со скетчами как раз оказалось так, что мы всю дорогу боялись, что задача будет слишком простой, а оказалось совсем наоборот.
Есть довольно известная публикация об этике shared tasks, где говорится в числе прочего, что плохо называть shared tasks »соревнованиями», потому что их главная задача не выяснить, кто лучше, а помочь NLP развиваться, расширять комьюнити и делиться хорошими решениями (и датасетами!), которые потом можно использовать в исследованиях и индустрии. Как ты относишься к такому позиционированию Dialogue Evaluation?
Мне кажется, это правильное позиционирование, но от соревновательной части никуда не деться. Участники все равно смотрят на то, какое место заняли, а вот широкой общественности по итогу важны данные и лучшие подходы. И они формально могут не занимать верхнюю строчку в лидерборде.
NER and Extraction Group, организатор SemSketches-2021 (Семантические скетчи)
Расскажи, какие моменты в организации соревнования в этом году были трудными? Как их решали?
При постановке задачи не всегда просто заранее оценить уровень сложности — не окажется ли задача слишком простой или сложной для участников. Для подобной оценки мы сделали свой бейзлайн в качестве стартового решения, результаты которого участникам нужно было превзойти. Наличие бейзлайна позволяет получить некоторую предварительную оценку уровня сложности.
Было ли распределение обязанностей между организаторами вашего соревнования?
Да. Я отвечала за лингвистическую часть, Маша занималась формированием датасетов, оценкой результатов и осуществляла общую координацию. Другие организаторы отвечали за бейзлайн-решения и метрики.
Как ты относишься к позиционированию Dialogue Evaluation как технологическому форуму с shared tasks, а не как к набору соревнований?
Совершенно согласна с такой этикой. В противном случае есть опасность получить в качестве результата не решение, предлагающее интересные идеи и технологии, а решения ad hoc, которые, возможно, покажут лучший результат на конкретной тестовой выборке, но будут бесполезны для других аналогичных задач в дальнейшем. Основной целью shared task, в первую очередь, является не показать высокий результат на ограниченном объеме данных, а предложить перспективные стратегии решения прикладных задач разного рода. Поэтому в нашей shared task мы просили участников присылать не только итоговые решения, но и сами программы и методы, чтобы оценить их возможные перспективы и допущенные ошибки.
разработчик, NLP Advanced Research Group, организатор RuNormAS-2021 (Нормализация спанов текста)
Ты участвовал в организации соревнования на »Диалоге» в 2021 году. Расскажи о своих впечатлениях. Это было твое первое соревнование в роли организатора?
Да, RuNormAS было первое соревнование, которое я организовывал. В целом интересно посмотреть на происходящее с другой стороны. В каком-то смысле быть организатором легче, потому что можно все сделать так, как удобно тебе: формат данных, способ проверки, метрики качества. С другой стороны, на организаторе лежит ответственность перед участниками: нужно быстро исправлять ошибки, отвечать на вопросы. Сойти с дистанции тоже не получится :) Для меня было удивительно то, что мы можем вручную разметить данные. Я давно привык, что своих разметчиков у меня нет, а здесь вот оказалось, что есть, и можно разметить почти что угодно.
Как принимается решение, на какую тему делать соревнование?
Мы сами занимались задачей нормализации, и хотелось проверить, как эту задачу смогут решить другие специалисты. Так что тема соревнования пришла от наших собственных потребностей.
Какие этапы в подготовке ты можешь выделить?
После того, как мы определились с темой, мы собрали данные. Для одной дорожки мы взяли данные c соревнования RuREBus-2020, для другой — собрали статьи газеты «Взгляд». При сборе внешних данных важно смотреть на лицензию источника: многие ресурсы запрещают любое использование своих материалов без явного согласия. Дальше мы отдали данные для ручной разметки. До этого я еще сделал бейзлайн: автоматическая разметка с использованием библиотеки natasha. Так не нужно делать всю работу с нуля, а только исправлять ошибки.
Дальше мы долго общались с командой разметки, уточняли, что нам нужно, и как это сделать. Когда разметка была готова, я создал соревнование на платформе Codalab, загрузил данные, написал код для проверки. В намеченный день мы открыли доступ к соревнованию, и оно началось.
Принимал ли ты участие в соревновании в качестве участника (возможно, не в этом году, а раньше)? Если да, то помогло ли это в организации?
Конкретно в «Диалоге» — нет. Я участвовал в учебных соревнованиях в университете, и это, конечно, сильно помогло в организации. Я понимал, что в целом хочет участник от организаторов, какие бывают частые проблемы. Мы сделали бейзлайн-решение, чтобы участники видели код, который производит файлы в нужном формате, и не тратили время на то, чтобы понять, это их решение неправильное или они поставили где-то лишний пробел.
Заключение
Коротко подведем итоги, почему Dialogue Evaluation так важен для научного NLP-сообщества.
Shared tasks (распространенные, кстати, не только в NLP) — это сложные задачи, которые комьюнити пытается решить, объединив усилия.
Эти наработки используются в дальнейшем в боевых задачах, позволяют меньше заниматься поиском методов, метрик, тестированием качества — ведь evaluation уже получен.
Каждое такое «соревнование» оставляет после себя датасет — размеченные данные, плод труда исследователей и команды разметчиков.
Конечно, на мировых shared tasks дорожки проходят по разным языкам, в том числе и русскому. Однако большая часть главным образом концентрируется на английском языке. А ведь NLP-задачи в основном лингвоспецифичны.
Если говорить о Dialogue Evaluation, то это единственное в мире NLP событие, где исследователи решают задачи именно для русского языка. На DE мы делимся опытом, помогаем индустрии двигаться вперед, оцениваем, как хорошо какая-то проблема решается сейчас автоматическими методами для русского языка с его особенностями, поэтому очень важна прозрачность и научный подход. Да, от соревновательного момента никуда не уйти, но он точно стоит не на первом месте. Важны не столько места в лидерборде, сколько описание решения: как реализована модель и что «под капотом». Мы ценим не только описание «как что-то получилось», но и что не получилось и почему, ведь это позволит исследователям в будущем не наступать на те же грабли.
Участвуйте, пробуйте свои силы, предлагайте свои решения!
Посмотреть все соревнования Dialogue Evaluation можно здесь. Все материалы 2021 года — тут.