Вопросно-ответные системы
О методах поиска ответа на вопрос
Вопросно-ответные системы (англ. question answering systems, QA) -- неотъемлемая составляющая функционала виртуальных помощников. Основной сценарий использования QA систем заключается в следующем: пользователь в произвольной форме задает вопрос (например, "кто написал "Смерть на Ниле"?") и получает ответ (Агата Кристи) и, возможно, список веб-страниц, подтверждающих корректность ответа.
QA системы можно разделить по двум принципам: по типу ожидаемого ответа и по используемым методам. Современные QA системы обрабатывают следующие типы вопросов:

  1. Фактологические, то есть, требующие ответа в виде установленного факта. У таких вопросов есть отличительная черта: как правило, они формулируются с использованием вопросительных слов (кто, где, когда и др.). К этому классу вопросов не относятся вопросы, требующие обоснования причинно-следственных связей и использующие конструкции, начинающиеся со слов «почему» и «зачем»

  2. Оценочные и сравнительные вопросы (например, «где лучший кофе на Мясницкой» или «какая обжарка кофе вкуснее, светлая или темная»)

  3. Бинарные вопросы, ответ на которые может быть сформулирован одним словом: либо да, либо нет (пример: «открыт ли мавзолей Ленина ночью»)

  4. Вопросы на понимание здравого смысла (пример: что можно положить в холодильник? Варианты ответа: яблоко, стул, кролика, слона)

  5. Экзаменационные вопросы. Нелегко представить себе ситуацию, в которой пользователь голосового помощника обратиться к нему с вопросом экзаменационного характера, однако, для тестирования некоторых QA моделей используют вопросы, позаимствованные из экзаменационных тестов

  6. Вопросы, заданные к данному тексту (иначе, вопросы машинного чтения, machine reading comprehension). Хотя постановка задачи MRC отличается от традиционной постановки задачи QA, эти задачи часто изучают в совокупности. Задача MRC заключается в следующем: дан текст и несколько вопросов, возможно, с множественным выбором ответа, ответ на которые гарантировано есть в тексте. Модель MRC должна «прочитать» и «понять» текст и ответить на заданные вопросы.

  7. Открытые вопросы (open domain QA, ODQA) – вопросы, ответ на которые надо найти в большом корпусе текстов на разные темы, например, в Википедии
С технической точки зрения, существует два принципиально разных подхода к определению ответа на вопрос: один из них использует алгоритмы, близкие к алгоритмам информационного поиска (англ. IR-based QA), второй осуществляет поиск по базам знаний (англ. KB-based QA).
Логику IR-based QA систем легче всего проиллюстрировать на примере набора данных SQuAD и ему подобных (русскоязычного аналога SberQuAD или набора данных из другой предметной области, MedQuAD). Эти наборы данных устроены следующим образом: даны небольшие фрагменты текстов — абзацы, полученные из статей Википедии, и заданные к ним вопросы. Подобные наборы данных, как правило, создаются с использованием краудсорсинговых платформ. Например, SQuAD был создан в несколько этапов: на первом, аннотататорам показали фрагменты текста и попросили задать такие вопросы, ответ на которые содержится в данном фрагменте. На втором этапе, аннотаторы должны были прочитать вопрос и выделить в фрагменте текста несколько последовательных слов, формирующих ответ. Итоговый набор данных прошёл через серию формальных проверок: вопрос не должен копировать абзац, к которому он задан, а ответ должен состоять из нескольких слов. Во вторую версию набора данных, SQuAD 2.0, были добавлены вопросы, похожие по содержанию на фрагменты текста, но ответа не имеющие.


Формально задачу SQuAD можно решать в два этапа. На первом этапе могут быть использованы алгоритмы ранжирования: для данного вопроса требуется отобрать N фрагментов текста, потенциально содержащих ответ. Второй этап можно рассматривать как задачу классификации последовательности. Модель должна «прочитать» вопрос и затем, читая последовательно по словам фрагмент текста, для каждого слова принять решение: может ли данное слово быть началом ответа, в середине ответа или концом ответа. Кроме того, должна быть определена некоторая дополнительная оценка ответа, которая позволит выбрать итоговый ответ, если модель выделит несколько возможных ответов.


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

DrQA — одна из первых моделей, использованных для второго этапа. Она состоит из двух компонент, одна из которых отвечает за кодирование вопроса, а вторая — за кодирование абзаца и определение ответа в нем. Взаимодействие между двумя компонентами осуществляется за счёт механизма внимания и за счёт конкатенации контекстно-зависимых эмбеддингов, получаемых на выходе обоих кодировщиков. Последующие архитектуры, такие как BiDAF, R-NET, QANet и другие, модифицируют разные компоненты DrQA, оставляя при этом основную логику архитектуры — наличие двух кодировщиков и их взаимодействие посредством механизма внимания — неизменной. Логика DrQA до какой-то степени напоминает логику построения поисковых индексов: кодировщик вопроса, оценивающий сходство слов из вопроса со словами из абзаца, — это аналог обратного индекса, а кодировщик абзаца, составляющий контекстно-зависимые представления слов, — это прямой индекс.


Предобученные большие языковые модели на основе трансформеров, такие как BERT, XLNet и их наследники, известны своей эффективностью в определении связей между парами предложений в задачах определения парафраза (semantic text similarity, STS) и задаче определения логического следования (natural language inference, NLI, иначе textual entailment, TE). Задача SQuAD, то есть задача поиска ответа в данном абзаце, не исключение и прекрасно ложится на архитектуру BERT без каких либо модификаций. На лидерборде SQuAD на текущий момент лидируют модели, использующие ALBERT и XLNet, предобученные языковые модели. Второе место занимает ансамбль на основе ALBERT, а третье и первое — ансамбли XLNet и ALBERT с дополнительной надстройкой DAAF.
Удивительно, но с ответами на другие типы вопросов, требующих либо понимания окружающей действительности, либо умения рассуждать логически, предобученные языковые модели прекрасно справляются. По всей видимости, обучение на больших объемах текстов позволяет моделям приобрести минимальные способности к обобщению, необходимые для такого типа задач.
KB-based QA подход менее популярен и, возможно, менее востребован в индустриальных приложениях, поскольку предполагает существование большой и актуальной базы знаний. Для поиска ответа по базе знаний требуется превратить вопрос в логический запрос. Например, вопрос «где родился Дэвид Боуи?» должен быть трансформирован в предикат вида "РодилсяВ(Дэвид Боуи, ?)". Ответом будет сущность, относящаяся к типу Локация и связанная с сущностью "Дэвид Боуи" отношением "РодилсяВ".

В общих чертах, KB-based QA алгоритмы состоят из следующих этапов:

  1. Определение именованных сущностей, относительно которых задан вопрос (в примере выше – "Дэвид Боуи" )

  2. Классификация вопроса и определение предиката (в примере выше – "РодилсяВ")

  3. Поиск именованной сущности в базе знаний – один из самых трудных этапов, поскольку может потребовать разрешение неоднозначности

  4. Формирование итогового ответа

Современные KB-based QA пока далеки от совершенства. Считается, например, что они с трудом справляются с вопросами, содержащими более одной именованной сущности или требующими нескольких запросов к базе знаний. Например, для ответа на вопрос "Где родилась жена Дэвида Боуи?" потребуется сначала определить, на ком был женат Дэвид Боуи – первый запрос в базу знаний, а только потом – ответить на исходный вопрос.

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

Екатерина Артемова