Я состою в жюри World AI & Data Challenge. Это такой международный конкурс для разработчиков технологий для решения разных социальных задач, таких как борьба с бедностью, помощь людям с ограничениями слуха и зрения, улучшение обратной связи между человеком и государственными организациями, и так далее. Сейчас идет второй этап конкурса, он продлится до октября. В рамках этого этапа мы отбираем лучшие решения для дальнейшей реализации проектов. Поскольку мы в ABBYY много работаем с текстами и их смыслом, то меня больше всего заинтересовала проверка текстов в рамках проекта «Тотальный диктант». Давайте на примере этой задачи разберёмся, почему обработка естественного языка — одна из самых недооценённых областей современного машинного обучения, а на сдачу обсудим, почему, даже когда речь идёт о проверке диктанта, всё «немного сложнее, чем кажется». И интереснее, естественно.

Итак, задача: сделать алгоритм проверки «Тотального диктанта». Казалось бы, что может быть проще? Есть правильные ответы, есть тексты участников: бери и делай. Строчки сравнивать-то все умеют. И тут начинается интересное.

Такие разные запятые; или точки с запятой?


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

То, что надо оценивать именно диктант, а не сочинение, — это не баг, а фича. Автоматические системы оценки эссе очень популяры в США. 21 штат использует автоматические решения для проверки эссе в рамках GRE. Только вот недавно выяснилось, что эти системы ставят высокие оценки более объемным текстам, в которых используется более сложная лексика (даже если сам текст бессмысленный). Как это выяснилось? Студенты MIT разработали специальную программу Basic Automatic B.S. Essay Language (BABEL) Generator, которая автоматически генерировала цепочки из сложных слов. Автоматизированные системы оценивали такие «эссе» очень высоко. Тестировать современные системы на базе машинного обучения — одно удовольствие. Другой не менее горячий пример: бывший профессор MIT Лес Перельман предложил системе e-rater от ETS, которая производит и оценивает экзамены GRE и TOEFL, проверить эссе на 5000 слов от Ноама Хомского. Программа обнаружила 62 несуществующих грамматических ошибки и 9 пропущенных запятых. Вывод — алгоритмы пока плохо работают со смыслом. Потому что мы сами очень плохо можем определить, что это такое. Создание алгоритма, проверяющего диктант, имеет прикладной смысл, но задачка эта не так проста, как кажется. И дело тут не только в неоднозначности правильного ответа, про который я тут сказал, а еще и в том, что диктант диктует человек.

Личность диктатора


Диктант — это сложный процесс. То, как читает текст «диктатор» — так организаторы тотального диктанта в шутку называют тех, кто помогает его проводить, — может влиять на итоговое качество работы. Идеальная система проверки могла бы соотносить результаты пишущих с качеством диктовки, используя text to speech. Более того, подобные решения в образовании уже используются. Например, Third Space Learning — это система, созданная учеными из Университетского колледжа Лондона. Система использует распознавание речи, анализирует, как преподаватель ведет урок, и на основе этой информации дает рекомендации, как можно улучшить процесс обучения. К примеру, если учитель говорит слишком быстро или медленно, тихо или громко, система отправляет ему автоматическое уведомление. Кстати, на сдачу по голосу ученика алгоритм может определить, что он теряет интерес и заскучал. Разные диктаторы могут влиять на итоговые результаты диктанта у разных участников. Налицо несправедливость, которую может устранить что? Правильно! Искусственный Интеллект Диктатор! Покайтесь, наши дни сочтены. Ладно, если серьёзно, то в онлайне можно просто или всем давать одну и ту же звуковую дорожку, или заложить в алгоритм оценку качества «Диктатора», как бы крамольно это не звучало. Те, кому диктовали быстрее и менее чётко, могут рассчитывать на дополнительные баллы «за вредность». Так или иначе, если у нас есть speech-to-text, то в голову приходит ещё одна идея.

Робот и человек: кто напишет диктант лучше?


Если уж делать распознавание звука в трансляции, то само собой просится создание виртуального участника диктанта. Было бы круто сравнить успехи ИИ и человека, тем более что подобные эксперименты в разных образовательных дисциплинах уже активно проводятся в мире. Так, в Китае в 2017 году ИИ сдавал в городе Чэнду государственный экзамен «гаокао» — это нечто вроде российского ЕГЭ. Он набрал 105 баллов из 150 возможных – то есть сдал предметы на твердую «тройку». Стоит отметить, что, как и в задаче «Тотального диктанта», самым сложным для алгоритма оказалось понимание языка — в данном случае, китайского. В России Сбербанк в прошлом году проводил соревнования по разработке алгоритмов прохождения испытания по русскому языку. ЕГЭ состоял из тестов и сочинения по заданной теме. Тесты для роботов были составлены с повышенным уровнем сложности и состояли из трех этапов: непосредственно выполнения задания, выделения примеров по заданным правилам и формулировкам, а также правильной записи ответа.

Давайте из обсуждения того, «что ещё можно сделать», вернёмся, собственно, к задаче диктанта.

Карта ошибок


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

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

В общем, как говорит мой отец: «Все задачи делятся на фуфло и глуховые. Фуфло — это задачи, которые уже решил, или ещё не начал решать. Глуховые — задачи, которые решаешь в данный момент». Даже вокруг задачи проверки текста машинное обучение позволяет задать массу вопросов и создать кучу надстроек, которые могут качественно изменить опыт конечного пользователя. Что получится у участников World AI&Data Challenge, узнаем ближе к концу года.