Полное руководство по BiDAF - часть 1 из 4

Иллюстрированное руководство по двунаправленному потоку внимания (BiDAF)

В этой статье показано, как работает BiDAF, модель НЛП, которая раздвинула границы области вопросов и ответов.

В 2016 году команда Вашингтонского университета опубликовала BiDAF. BiDAF легко победил лучшие модели вопросов и ответов на тот момент и в течение нескольких недель возглавлял таблицу лидеров Стэнфордского набора вопросов и ответов (SQuAD), возможно, самого известного набора вопросов и ответов. Хотя производительность BiDAF с тех пор превзошла, модель остается влиятельной в области вопросов и ответов. Технические инновации BiDAF вдохновили на последующую разработку конкурирующих моделей, таких как ELMo и BERT, благодаря которым BiDAF в конечном итоге был свергнут.

Когда я впервые прочитал оригинальную статью BiDAF, я был поражен ее сложностью.

BiDAF демонстрирует модульную архитектуру - представьте, что это составная структура, сделанная из блоков lego, причем блоки являются «стандартными» элементами НЛП, такими как GloVe, CNN, LSTM и внимание. Проблема с пониманием BiDAF заключается в том, что существует очень много этих блоков, о которых нужно узнать, и способы их объединения временами могут показаться довольно «хакерскими». Эта сложность в сочетании с довольно запутанными обозначениями, использованными в исходной статье, служит препятствием для понимания модели.

В этой серии статей я расскажу о том, как собирается BiDAF, и опишу каждый компонент BiDAF (надеюсь) в удобной для восприятия манере. Будет предоставлено большое количество изображений и диаграмм, чтобы проиллюстрировать, как эти компоненты сочетаются друг с другом.

Вот план:

  • В части 1 (эта статья) будет представлен обзор BiDAF.
  • Часть 2 расскажет о встраиваемых слоях.
  • Часть 3 расскажет о слоях внимания.
  • Часть 4 расскажет о модельном и выходном слоях. Он также будет включать краткий обзор всей архитектуры BiDAF, представленный на очень простом языке. Если вы не разбираетесь в технике, я рекомендую вам просто перейти к части 4.

BiDAF по сравнению с другими моделями вопросов и ответов

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

  • Открытый домен против закрытого домена. Модель открытого домена имеет доступ к хранилищу знаний, которое она будет использовать при ответе на входящий запрос. Знаменитый IBM-Watson - один из примеров. С другой стороны, модель закрытой формы не полагается на уже существующие знания; скорее такая модель требует контекста для ответа на запрос. Небольшое замечание по терминологии: Контекст - это сопроводительный текст, содержащий информацию, необходимую для ответа на запрос, а Запрос - это просто формальное техническое слово для вопроса.
  • Абстрактивная vs экстрактивная. Модель экстрактивная отвечает на запрос, возвращая подстроку контекста, которая наиболее актуальна для Запрос. Другими словами, ответ, возвращаемый моделью, всегда можно найти дословно в контексте. С другой стороны, абстрактная модель идет еще дальше: она перефразирует эту подстроку в более удобочитаемую форму, прежде чем вернуть ее в качестве ответа на запрос.
  • Возможность отвечать на не фактоидные запросы. Factoid Запросы - это вопросы, ответы на которые представляют собой краткие фактические утверждения. Большинство запросов, начинающихся с «кто», «где» и «когда», являются фактическими, потому что они ожидают кратких фактов в качестве ответов. Не фактоидные запросы, попросту говоря, это все вопросы, которые не являются фактоидами. Нефактоидный лагерь очень широк и включает вопросы, требующие логики и рассуждений (например, большинство вопросов «почему» и «как»), а также вопросы, связанные с математическими вычислениями, ранжированием, сортировкой и т. Д.

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

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

Обладая этими знаниями, мы готовы изучить структуру BiDAF. Давайте нырнем!

Обзор структуры BiDAF

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

В документе BiDAF описывается модель как состоящая из 6 слоев, но я бы хотел думать о BiDAF как о состоящей из трех частей. Эти 3 части вместе с их функциями кратко описаны ниже.

1. Встраивание слоев

BiDAF имеет 3 слоя встраивания, функция которых состоит в том, чтобы изменять представление слов в запросе и контексте из строк в векторы чисел.

2. Слои внимания и моделирования

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

3. Выходной слой

Затем представление контекста с учетом запросов передается на выходной уровень, который преобразует его в набор значений вероятности. Эти значения вероятности будут использоваться для определения того, где начинается и заканчивается ответ.

Упрощенная диаграмма, изображающая архитектуру BiDAF, представлена ​​ниже:

Если все это еще не имеет смысла, не волнуйтесь; В следующих статьях я подробно расскажу о каждом компоненте BiDAF. Увидимся в части 2!

использованная литература

[1] Двунаправленный поток внимания для машинного понимания (Минджун Со и др., 2017)

Если у вас есть какие-либо вопросы / комментарии по поводу статьи или вы хотите связаться со мной, вы можете сделать это через LinkedIn или по электронной почте на meraldo.antonio AT gmail DOT com.

Особая благодарность @ Raimi Karim за помощь в написании статьи!