Статья, призванная привлечь внимание к эволюции моделей генерации языков.

Абхишек Суннак, Шри Гаятри Рачаконда, Олуваси Талаби

С момента зарождения научно-фантастического кино общество было очаровано искусственным интеллектом. Когда мы слышим термин «ИИ», наша первая мысль обычно возникает о футуристическом роботе из таких фильмов, как Терминатор, Матрица и Я, Робот .

Хотя до роботов, способных думать самостоятельно, может еще несколько лет, за последние несколько лет в области машинного обучения и понимания естественного языка произошли значительные изменения. Такие приложения, как Персональные помощники (Siri / Alexa), чат-боты и боты с ответами на вопросы, поистине революционизируют то, как мы взаимодействуем с машинами и ведем свою повседневную жизнь.

Понимание естественного языка (NLU) и генерация естественного языка (NLG) являются одними из самых быстрорастущих приложений ИИ из-за растущей потребности в понимании и извлечении значения из языка с его многочисленными двусмысленностями и разнообразной структурой. Согласно Gartner, «К 2019 г. генерация естественного языка станет стандартной функцией 90% современных платформ бизнес-аналитики и аналитики». В этом посте мы обсудим краткую историю NLG с самого начала дни его создания и куда он направится в ближайшие годы.

Что такое генерация естественного языка?

Цель создания языка - передать сообщение, предсказывая следующее слово в предложении. Проблема того, какое слово, которое можно предсказать (среди миллионов вариантов), может быть решена с помощью языковых моделей, которые представляют собой распределение вероятностей по последовательностям слов. Языковые модели могут быть построены на уровне символа, уровне n-грамма, уровне предложения или даже уровне абзаца. Например, чтобы предсказать следующее слово после Мне нужно научиться ___, модель присваивает вероятность для следующего возможного набора слов, который может быть писать, двигать. и т. д. Последние достижения в области нейронных сетей, таких как RNN и LSTM, позволили обрабатывать длинные предложения, значительно повысив точность языковых моделей.

Цепи Маркова

Цепи Маркова - одни из самых ранних алгоритмов, используемых для генерации языков. Они предсказывают следующее слово в предложении, просто используя текущее слово. Например, если при обучении модели использовались только следующие предложения: Я пью кофе утром и Я ем бутерброды с чаем. Существует 100% -ная вероятность того, что после слова напиток будет следовать кофе, в то время как существует 50% -ная вероятность того, что за я следует выпить, а в 50% - поесть. Цепь Маркова учитывает взаимосвязь между каждым уникальным словом для вычисления вероятности следующего слова. Они использовались в более ранних версиях клавиатур смартфонов для генерации предложений для следующего слова в предложении.

Однако, просто сосредотачиваясь на текущем слове, модели Маркова теряют весь контекст и структуру предыдущих слов в предложении, что может привести к неверным предсказаниям, ограничивая их применимость во многих генеративных сценариях.

Рекуррентная нейронная сеть (RNN)

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

RNN - это тип нейронной сети, которая может использовать последовательный характер ввода. Он передает каждый элемент последовательности через сеть прямого распространения и выдает выходные данные модели в качестве входных данных для следующего элемента в последовательности, что позволяет хранить информацию из предыдущих шагов. «Память», которой обладают RNN, делает их отличными для языковой генерации, поскольку они могут запоминать контекст разговора с течением времени. RNN отличаются от цепей Маркова тем, что они также смотрят на ранее просмотренные слова (в отличие от цепей Маркова, которые просто смотрят на предыдущее слово), чтобы делать прогнозы.

RNN для генерации языков

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

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

Долговременная кратковременная память (LSTM)

Нейронные сети на основе LSTM - это вариант RNN, предназначенный для более точной обработки дальнодействующих зависимостей во входной последовательности, чем обычные RNN. Они используются в самых разных задачах. LSTM имеют цепочечную структуру, аналогичную RNN; однако они содержат четырехуровневую нейронную сеть вместо одноуровневой сети для RNN. LSTM состоит из 4 компонентов: ячейки, входного элемента, выходного элемента и элемента забывания. . Они позволяют RNN запоминать или забывать слова в течение произвольных интервалов времени, регулируя поток информации в ячейку и из нее.

LSTM для генерации языков

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

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

Трансформатор

Трансформер был впервые представлен в Google Paper 2017 года Внимание - все, что вам нужно, где был предложен новый метод, называемый механизм самовнимания. Трансформаторы в настоящее время используются для решения самых разных задач НЛП, таких как языковое моделирование, машинный перевод и генерация текста. Преобразователь состоит из стека кодировщиков для обработки ввода любой произвольной длины и другого стека декодеров для вывода сгенерированного предложения.

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

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

В последнее время в архитектуру обычных трансформаторов было внесено несколько модификаций, которые значительно повысили их скорость и точность. В 2018 году Google выпустил документ о представлениях двунаправленного кодера от трансформаторов (BERT), в котором были получены самые современные результаты для множества задач НЛП. Аналогичным образом, в 2019 году OpenAI выпустил языковую модель на основе преобразователя с примерно 1,5 миллиардами параметров для создания длинных, связных статей с использованием всего нескольких строк входного текста в качестве подсказки.

Трансформаторы для генерации языков

В последнее время трансформеры также использовались для генерации языков. Одним из наиболее известных примеров трансформеров, используемых для генерации языков, является OpenAI в их языковой модели GPT-2. Модель учится предсказывать следующее слово в предложении, используя внимание, чтобы сосредоточиться на словах, ранее замеченных в модели, которые имеют отношение к предсказанию следующего слова.

Генерация текста с помощью трансформаторов основана на структуре, аналогичной структуре машинного перевода. Если мы возьмем пример предложения «Ее платье с розовыми, белыми и ___ точками». Модель предсказала бы синий цвет, используя самовнимание для анализа предыдущих слов в списке как цветов ( белый и розовый) и понимание того, что ожидаемое слово тоже должно быть цветом. Самовнимание позволяет модели выборочно сосредоточиться на разных частях предложения для каждого слова вместо того, чтобы просто запоминать несколько функций в повторяющихся блоках (в RNN и LSTM), которые в большинстве случаев не будут использоваться для нескольких блоков. Это помогает модели вспомнить больше характеристик предыдущего предложения и приводит к более точным и последовательным прогнозам. В отличие от предыдущих моделей, преобразователи могут использовать представления всех слов в контексте без необходимости сжатия всей информации в одно представление фиксированной длины. Эта архитектура позволяет преобразователям сохранять информацию в гораздо более длинных предложениях без значительного увеличения требований к вычислениям. Они также работают лучше, чем предыдущие модели, в разных доменах без необходимости модификаций для конкретных доменов.

Будущее поколения языков

В этом блоге мы увидели эволюцию языковой генерации от использования простых цепей Маркова для генерации предложений к использованию моделей самовнимания для генерации связного текста более длинного диапазона. Однако мы только находимся на заре генеративного языкового моделирования, а преобразователи - это лишь один шаг на пути к действительно автономной генерации текста. Генеративные модели также разрабатываются для других типов контента, таких как изображения, видео и аудио. Это открывает возможность интеграции этих моделей с генеративными текстовыми моделями для разработки продвинутых персональных помощников с аудио / визуальными интерфейсами.

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

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