Компьютеры научились понимать тексты лучше людей? Не все так просто!

«Еще один бастион взят! Системы искусственного интеллекта, разработанные в компаниях Alibaba и Microsoft, научились понимать тексты лучше людей», — такого типа заголовками пестрят новости за последние сутки. Выглядит довольно революционно: понимание текста — это что-то похожее на «настоящий» искусственный интеллект. Но что на самом деле стоит за этими громкими заявлениями? Об этом мы попросили рассказать математика, доцента ВШЭ Илью Щурова.

Бэкграунд

Прогресс в машинном обучении в последние годы во многом можно описать таким сюжетом. Выбирается какая-то достаточно четко поставленная задача, с которой компьютеры пока не умеют справляться. Например, в 2014 году это было различение фотографий кошек и собак. Затем создается набор данных, на котором можно потренироваться. В примере выше это большой массив фотографий, про каждую из которых указано, какое именно животное на ней изображено. Данные из этого набора могут использоваться как для обучения алгоритма, так и для его последующей проверки.

Затем объявляется конкурс, и разработчики из разных университетов и исследовательских центров пытаются написать систему, которая справляется с задачей лучше всего. Постепенно качество работы таких систем становится все лучше и лучше и в какой-то момент начинает превосходить результаты человека на этой конкретной задаче (люди тоже могут ошибиться, даже пытаясь отличить кошку от собаки). Это событие немедленно попадает в новости, заставляя нас с одной стороны восхищаться чудесам прогресса, а с другой — недоумевать, почему тогда компьютеры до сих пор такие глупые.

История, о которой идет речь, в полной мере соответствует этой схеме.

На самом деле

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

Сами авторы SQuAD написали достаточно простой алгоритм, который дает верный ответ в 40 процентах случаев. Для человека этот показатель составляет 82,304 процента (почему такой большой процент ошибок — смотрите ниже). Все желающие могли предложить свою систему, чтобы авторы ее протестировали (пользуясь небольшой неопубликованной частью этой базы) и вывесили результат на своем сайте.

С тех пор было предложено 54 системы. Уже в августе 2016 появилось решение с 60 процентами верных ответов, к сентябрю была достигнута отметка в 70 процентов, со временем результаты становились все лучше и лучше и в конце 2017-го — начале 2018 года вплотную приблизились к человеческим. В первые дни 2018 года и было зафиксировано почти одновременное пересечение «финишной ленточки»: 82,65 процента (Microsoft) и 82,44 процента (Alibaba).

Это круто?

Если говорить коротко — да, это круто. Но не настолько круто, как может показаться из новостей. Чтобы правильно оценивать этот результат, нужно разобраться в деталях.

Во-первых, как устроена база SQuAD и в чем состоит задача. База основана на текстах статей из английской Википедии, при этом статьи разбиты на отдельные абзацы. К каждому абзацу задано несколько вопросов. Ответы на эти вопросы обязательно содержатся в том абзаце, к которому он относится. Более того: ответом является слово или несколько подряд идущих слов из самого текста абзаца. Отвечающему нужно лишь «ткнуть» в ответ, то есть указать на его начало и конец. Придумывать ничего не нужно. Искать по всей Википедии — или хотя бы по всему тексту данной статьи — тоже не нужно. Это существенно упрощает задачу по сравнению с той, для которой требовалось бы настоящее понимание.

Во-вторых, нужно иметь в виду, как создавалась эта база и как оценивался результат человека. База создавалась усилиями участников проекта Amazon Mechanical Turk. Это своего рода биржа, где вы можете предложить всем желающим выполнить какое-нибудь не очень сложное задание за небольшое вознаграждение. В данном случае требовалось придумывать вопросы к конкретному абзацу текста и отвечать на них (в том числе на чужие вопросы), указывая начало и конец самого маленького подходящего фрагмента. 

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

Разработчики базы предприняли усилия, чтобы авторы вопросов не пытались скопировать их из того же текста и писали своими словами, но при такой постановке задачи вопросы по своей структуре и лексике все равно в той или иной мере неизбежно будут соответствовать тем фрагментам, в которых содержится ответ. И значит, для его нахождения не нужно ничего понимать, достаточно правильно соотнести вопрос с текстом. При этом язык википедийных статей — формализованный, сухой и однозначный. Обрабатывать что-то более живое было бы гораздо сложнее.

Впрочем, даже и в таких благоприятных для ИИ условиях имеющиеся сейчас алгоритмы делают совсем глупые (по человеческим меркам) ошибки. Например, оба алгоритма-победителя из предложения "By mass, oxygen is the third-most abundant element in the universe, after hydrogen and helium" («По своей массе кислород является третьим наиболее распространенным элементом во Вселенной после водорода и гелия») не смогли извлечь правильный ответ на вопрос "What is the second most abundant element?" («Какой второй наиболее распространенный элемент?»). Алгоритмы дали ответ «кислород» вместо очевидно правильного ответа «гелий».

Наконец, это не какой-то одномоментный качественный скачок, а постепенное улучшение результатов. Например, еще в октябре 2017 года был достигнут результат в 79 процентов, что лишь немногим ниже того, о котором прогремели новости. И так оно чаще всего и бывает. Революции очень редки, а когда происходят, довольно часто оказываются незамеченными.

Сухой остаток

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

Claims that ML reading comprehension is super human as we have models that beat the human baseline on @stanfordnlp's SQuAD is madness. It's an amazing achievement but let's not overstate it. That way lies madness.

Что это означает на практике? Вероятно, диалоговые агенты типа Siri станут чуть-чуть «умнее» и научатся отвечать на простые вопросы о текстах. Facebook сможет чуть лучше понимать, что вам прорекламировать на этот раз, ориентируясь на тексты ваших постов и комментариев. Google сможет сделать более умные выдержки из найденных сайтов и сэкономит вам пару кликов, еще чаще давая ответ прямо на странице поиска.

Но искать того, кто бы тебя всегда понимал, по-прежнему лучше среди людей.