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

Очень сложно идти в ногу со временем. Особенно для людей, плохо знакомых с этой темой, это может быть очень обременительно для начала. Недавно изучив тему обработки естественного языка (НЛП), я хочу дать заинтересованному читателю обзор основ НЛП.

Следующую информацию можно найти в Qiu et al. [1], если не указано иное.

Представление языка

Так как естественный язык нельзя напрямую ввести в модели, необходимо найти числовое представление для языка. Как Бенжио и др. [2] красноречиво выразился, такое представление должно быть как можно более общеприменимым, то есть оно должно сохранять большинство лингвистических правил и содержащейся информации.

Одна из причин, по которой интересна явная работа с представлениями, заключается в том, что они могут быть удобны для выражения многих общих априорных оценок об окружающем нас мире, т. е. априорных значений, которые не относятся к конкретной задаче, но могут быть полезны обучающейся машине для решения задач ИИ. задачи [2].

Вообще говоря, можно выделить два разных типа таких вложений, а именно контекстные и неконтекстные.

  • Контекстное встраивание. В этом случае кодирование слова зависит от его контекста (от окружающих его слов). Следовательно, представление слова xₜ зависит от всего предложения [x₁…xₜ]. Это показано ниже, где hₓ — кодировка, f — кодировщик, а xₓ — исходный ввод.

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

Глубокое обучение в НЛП

По аналогии с обработкой изображений преимущество глубокого обучения состоит в том, что в НЛП требуется меньше ручной обработки функций. Поэтому в последние годы применяются различные нейронные сети, в том числе сверточные нейронные сети или рекуррентные нейронные сети. Текущим состоянием дел является так называемый Трансформатор из статьи «Внимание — это все, что вам нужно» (см. [3]).

Однако прогресс был медленнее, чем, например, в обработка изображений из-за отсутствия данных для контролируемого обучения. Для глубокого обучения требуется огромное количество данных, чтобы предотвратить переоснащение, поэтому до недавнего времени использовались только относительно небольшие сети (1–3 слоя), чтобы поддерживать обобщение модели.

Тем не менее, в последние годы исследователи обнаружили, что большие модели, обученные на огромном количестве данных, могут правильно изучить представление, чтобы затем использоваться (часто с тонкой настройкой или с использованием трансферного обучения) для различных задач.

Модели

Использовались разные модели, которые можно условно разделить на два класса, а именно последовательные и непоследовательные модели.

  • Модели последовательности. Эти модели охватывают контекст слова в последовательном порядке. Двумя наиболее распространенными типами моделей являются сверточные нейронные сети, которые получают информацию от окружающих соседей, и рекуррентные нейронные сети, которые имеют память для захвата контекста (например, длительные кратковременные воспоминания или закрытые рекуррентные единицы).
  • Модели без последовательности. Эти типы сетей часто работают с базовым графом или древовидной структурой (например, TreeLSTM). Однако построение таких графиков не является тривиальным и требует специальных знаний. Наиболее распространенной архитектурой здесь является Полносвязная модель собственного внимания, в которой используется полностью связанный граф (каждое слово к каждому слову), а модель обучает структуру (веса) с помощью самоконтроля. механизм внимания, описывающий отношения. Вышеупомянутый Transformer является наиболее часто используемой архитектурой.

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

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

Я настоятельно рекомендую людям прочитать о Трансформерах (Васвани и др. [3]) и модели Берта (Девлин и др. [4]) в качестве отправной точки.

[1] Цю и др. Предварительно обученные модели для обработки естественного языка: обзор. Наука Китай Технология Наука. 63, 1872–1897 гг. 2020.

[2] Бенжио и др. Обучение представлению: обзор и новые перспективы. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 35, нет. 8, стр. 1798–1828. 2013.

[3] Васвани и др. Внимание — это все, что вам нужно. Материалы 31-й Международной конференции по системам обработки нейронной информации (NIPS’17). Curran Associates Inc., Ред-Хук, Нью-Йорк, США, 6000–6010. 2017 г.

[4] Девлин и др. БЕРТ: предварительная подготовка глубоких двунаправленных преобразователей для понимания языка. ArXiv абс/1810.04805. 2019.