Глядя на модель Seq2Seq из генерации текста

искусственный интеллект алгоритм Нейронные сети продукт

Предисловие:В последние годы генерация текста постепенно становится горячей темой машинного обучения. Не только ACL, AAAI и другие ведущие конференции включали доклады о генерации текста, но и новые компании, такие как OpenAI, успешно вступали в эту область. Эта статья начнется с серии статей о генерации текста и покажет вам, как модель Seq2Seq и ее варианты используются в этой области. Среди них некоторый контент в тексте не является оригинальным, если есть какие-либо нарушения, пожалуйста, свяжитесь со мной вовремя.

Автор этой статьи:Ли Джуньи, Бакалавриат в 2014 году, текущее направление исследований глубокое обучение, генерация текста, из Пекинской ключевой лаборатории управления большими данными и методов анализа, Китайский университет Жэньминь.

Эта статья включена в колонку RUC AI Box, которая является особым вкладом в колонку (Станция интеллектуальной разведки RUC).

Список бумаг:

«Последние достижения в области генерации заголовков нейронными сетями» JCST 2017

«Нейронно-разговорная модель» ICML 2015

«Генерация нейронных ответов с учетом темы» AAAI 2017

«Модель нейронной беседы на основе личности» ACL 2016

«Включение механизма копирования в последовательное обучение» ACL 2016

«Генерация естественного языка с учетом контекста с помощью рекуррентных нейронных сетей» AAAI 2016

Обучение созданию обзоров продуктов на основе атрибутов EACL 2017

I. Резюме исследования

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

В Neural Headline Generation модель использует сквозную структуру кодировщик-декодер.Преимущество сквозной обработки заключается в том, что за счет сокращения ручной предварительной обработки и последующей обработки модель может перейти от исходного ввода к финалу настолько, насколько Вывод, что дает модели больше места для автоматической настройки в соответствии с данными и повышает общую подгонку модели. В разделе кодировщика представлены кодировщик Bag-of-Words, сверточный кодировщик, кодировщик RNN и двунаправленный. Кодер, где RNN Encoder представляет два варианта LSTM-RNN и GRU-RNN соответственно. Кодер Bag-of-Words усредняет вложения слов, игнорируя порядок слов и отношения между словами и словами.Сверточный кодировщик использует для кодирования нейронную сеть с временной задержкой в ​​сверточной нейронной сети, которая не может решить проблему долговременной зависимости. ENN Encoder будет иметь проблемы с исчезновением градиента и взрывом градиента.Двунаправленный кодировщик учится в переднем и заднем направлениях соответственно. Скрытое состояние, конкретная формула подробно описана в статье. В части декодера представлены языковая модель нейронной сети, декодер RNN и декодер RNN на основе внимания.Языковая модель нейронной сети не учитывает вклад исторической информации в сгенерированный текст, поэтому механизм внимания был добавлен позже. формула документы были подробно перечислены из. В разделе стратегии обучения в основном представлены две стратегии обучения, одна из которых представляет собой метод оценки максимального правдоподобия на уровне слов (Maximum Оценка правдоподобия), другой — метод обучения минимальному риску на уровне предложений (обучение минимальному риску).

Ниже приведена реализация алгоритма обучения с использованием метода обучения с наименьшим риском:

Во-вторых, применение базовой модели Seq2Seq

Части этого раздела цитируются в статьеData Craftsman | Изобретательность в эпоху данных

«Нейронная разговорная модель», опубликованная в ICML в 2015 году, представляет собой статью о создании диалогов с использованием модели seq2seq. Поскольку предыдущие исследования диалоговых моделей ограничивались определенными областями, такими как бронирование авиабилетов, заказ еды и требование ручного написания правил, в этой статье для генерации диалогов используется предложенная структура seq2seq. Основная идея Seq2Seq для решения задачи состоит в том, чтобы сопоставить последовательность как вход с последовательностью как выход через модель глубокой нейронной сети (обычно LSTM, сеть с долговременной кратковременной памятью, разновидность рекуррентной нейронной сети), этот процесс состоит из кодирования ввода и декодирования. Выход состоит из двух звеньев. Как показано ниже:

Это похоже на нашу работу по генерации диалогов, в которой входная последовательность вопросов сопоставляется с выходной последовательностью ответов. Например, теперь у нас есть последовательность вопросов «ABC EOS» (где EOS = конец предложения, идентификатор в конце предложения) в качестве входных данных, тогда наша цель — передать «A», «B», «C». , «EOS» в свою очередь. После ввода модели сопоставьте ее с последовательностью ответов «WXYZ EOS» в качестве вывода.

существуетСсылка для кодирования, различные входные последовательности x разной длины будут скомпилированы в вектор контекста c кодировщиком, построенным рекуррентной нейронной сетью. Вектор c обычно является последним скрытым узлом в RNN.h_{T_S}или взвешенная сумма нескольких скрытых узлов.

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

В этой статье механизм внимания не используется, но в качестве важной части модели seq2seq механизм внимания был впервые предложен Багданау и др. в 2014 г. Целью этого механизма является решение проблемы, заключающейся в том, что используются только фиксированные длины. поддерживается в RNN. Входное узкое место. В контексте этого механизма кодировщик в Seq2Seq заменяется двунаправленной RNN. Как показано ниже:

В механизме внимания наша исходная последовательностьX=(x_1,x_2,...,x_t)вводятся в модель в прямом и обратном направлениях соответственно, после чего получаются положительные и отрицательные скрытые узлы, и вектор контекста c передается скрытым узлом h в RNN через разные веса.\alphaвзвешенная, формула выглядит следующим образом:

в,\etaэто функция, которая регулирует «силу реакции внимания». Мы знаем каждый скрытый узелh_iсодержит соответствующие входные символыx_iи его связь с контекстом, значение этого заключается в том, что модель теперь может преодолевать ограничение ввода фиксированной длины и строить различное количество скрытых узлов в соответствии с различной длиной ввода, поэтому независимо от длины вводимой последовательности. (например, фрагмент исходного текста для перевода) Независимо от того, как вы можете получить результат вывода модели.

3. Варианты модели Seq2Seq и их приложения

3.1 Модель TA-Seq2Seq

Ссылки в этом разделеКак создавать тематические беседы | Читайте № 11 вместе каждую неделю

«Генерация нейронных ответов с учетом темы», опубликованная в AAAI в 2017 году, представляет собой статью, которая оптимизирует производительность генерации текста путем добавления информации о теме входных предложений в исходную модель seq2seq. Структура модели в этой статье выглядит следующим образом:

1. В Message Encoder модель кодирует входную информацию через сеть BGRU и получает скрытое состояние в каждый момент времени.h_i;

2. В Topic Words модель использует модель TwitterLDA, предварительно обученную с помощью корпуса Sina Weibo, а алгоритм представляет собой свернутую выборку Гиббса. После ввода информации модель выдает все темы, а затем берет верхние n (n=100) слов с наибольшей вероятностью в качестве тем и одновременно удаляет общие слова. Наконец, преобразуйте эти тематические слова в соответствующие векторные представления.k_i, эти векторы получаются путем вычисления нормализованной частоты каждого тематического слова по всем темам, см. уравнение (4) в тексте;

3. В Message Attention эта часть аналогична обычному механизму внимания, и получается вектор контекста входного предложения.c_i;

4. В Topic Attention это немного отличается от существующего механизма внимания, он не только рассматривает каждыйk_iРоль , также добавлен последний скрытый вектор, полученный на первом шаге, целью этого подхода является вычисление окончательного вектора темы вектора темыo_i, добавлениемh_{T_S}(обобщает информацию во входном предложении), расширенныйk_iВлияние родственных подлежащих слов вo_iЭто больше соответствует содержанию входного предложения;

5. Наконец, постройте вероятность декодирования, совместно затронутую вниманием к сообщению и вниманием к теме. См. уравнение 6 в тексте. Можно видеть, что окончательная вероятность формируется суммой двух вероятностей. Сумма вероятностей подчеркивает роль тематические слова.На основании этой вероятности можно расшифровать.

Суммировать:

Основная идея модели TA-Seq2Seq, предложенной в этой статье, состоит в том, чтобы получить текстовые темы путем введения модели LDA и объединить модель Seq2Seq для создания более информативных, разнообразных и связанных с темой диалоговых ответов. Идея состоит в том, чтобы совместно влиять на генерацию ответов диалога, объединяя внимание к сообщению и внимание к теме входной информации на основе существующей архитектуры модели кодировщика-декодера с механизмом внимания. По сравнению со стандартной моделью seq2seq+внимание, TA-Seq2Seq Модель хорошо справляется с декодированием первого слова. Стандартная модель seq2seq+внимание зависит только отc_0, а в модели TA-Seq2Seq добавлениеo_0Эффект предварительной информации, Следовательно, модель в этой статье позволяет улучшить качество первого декодирования, что положительно сказывается на качестве всего результата декодирования.

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

1. Вводится влияние темы. В реальном процессе диалога людей в определенной степени диалог между ними будет основан на определенной теме, и роль введения темы имеет определенную рациональность;

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

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

4. В отличие от традиционной модели seq2seq, при генерации первого слова диалогаc_0иo_0сочетание, не толькоc_0, преимущество этого заключается в том, что можно сгенерировать более точное первое слово, что дает лучший эффект для генерации последующих слов и всего предложения, потому что генерация последующих слов будет зависеть от ранее сгенерированных слов.

3.2 Модель говорящего и модель говорящего-адресата

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

В ответ на эту проблему в статье рассматривается идентификация пользователя (например, справочные данные, профиль пользователя, возраст, страна и другая информация) в модели и строится модель seq2seq, богатая характеристиками пользователя для разных пользователей, и один и тот же пользователь для разных пользователей. Диалог с разными объектами порождает разные стили ответов.

На следующем рисунке показана базовая структура модели динамика:

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

Формула традиционной модели Seq2Seq с использованием LSTM во время декодирования выглядит следующим образом:

В модели динамика формула немного увеличена,v_iПредставляет встраивание динамика:

Вторая модель — это модель говорящего-адресата. Эта модель имеет ту же идею, что и предыдущая модель. В диалоге с несколькими людьми, состоящем из нескольких раундов, каждый человек говорит по-разному, когда сталкивается с разными людьми. Моделируется только один человек, поэтому нужно учитывать говорящего, используяV_{i,j}для представления этого режима диалога между двумя говорящими i и j, декодирование Часть расчета выглядит следующим образом:

Наконец, чтобы ответить на бессмысленный ответ «Я не знаю, что модель Seq2Seq склонна к появлению», модель принимает метод, описанный Ли и др. (2016), генерирует N-лучший список посредством поиска луча и использует некоторые правила, чтобы изменить порядок, чтобы получить лучшие результаты.хороший результат.

Суммировать:

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

3.3 Модель CopyNet

Ссылки в этом разделеIncorporating Copying Mechanism in Sequence-to-Sequence Learning

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

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

Вот основной скелет модели CopyNet:

Encoder:

Используйте двунаправленную модель RNN для преобразования исходной последовательности в матрицу, представленную скрытым слоем.M= \{ h_1,...,h_{T_S}\}как вход декодера.

Decoder:

Есть три отличия от традиционного RNN-декодера:

  • предсказывать:Когда CopyNet предсказывает следующее слово, она объединяет вероятности в двух режимах: один — это режим генерации, режим генерации, другой — режим копирования, а модель генерации — это вероятностная модель, которая объединяет два режима.
  • Обновление статуса:CopyNet не только использует вектор слов, сгенерированных в момент времени t-1, но также использует скрытое состояние его соответствующей позиции в матрице М для обновления состояния в момент времени t.
  • Читать М:CopyNet будет использовать два метода внимательного чтения и выборочного чтения для чтения матрицы M и получения информации о содержимом и позиции в M соответственно.

Режим генерации и режим копирования:

Сначала составим словарь:V=\{v_1,...,v_N\}представляет собой высокочастотный словарный запас,X=\{x_1,...,x_{T_S}\}представляет слово, которое встречается во входной последовательности только один раз,UNKПредставляет внеклассовое слово OOV . В конечном итоге слова во входной последовательности представляют собой объединение этих трех наборов.

Учитывая состояние декодера в момент времени t и матрицу M, сгенерируйте следующее словоy_tВероятность:

где g представляет режим генерации, а c представляет режим копирования Формулы вероятности для этих двух режимов:

Обновление статуса:

Формула обновления состояния декодера:

Разница в том, что здесь y в момент времени t-1[e(y_{t-1});\zeta(y_{t-1})]^T, вторая половина представляет собой сумму весов состояний, связанных с y в момент времени t в матрице M, следующим образом:

Матрица М:

Матрица M содержит как информацию о содержании, так и информацию о местоположении. CopyNet управляется информацией о содержании (семантика) и языковой моделью при внимательном чтении, т. е. в генеративном режиме; в режиме копирования выборочное чтение контролируется информацией о местоположении.

Способ обновления информации о местоположении показан на следующем рисунке:

Суммировать:

Основная идея предложенной в статье модели CopyNet заключается в решении проблемы несогласованности ответов в диалогах за счет введения механизма копирования и объединения механизма генерации в исходной модели Seq2Seq. Идея состоит в том, чтобы добавить часть информации о положении в существующую архитектуру модели Encoder-Decoder с механизмом внимания при генерации текста, чтобы совместно влиять на генерацию ответов диалога. Преимущество этой статьи в том, что предложенный механизм копирования прост и осуществим при решении проблемы OVV.

3.4 Модель C2S и модель gC2S

В публикации «Генерация естественного языка с учетом контекста с рекуррентными нейронными сетями», опубликованной в AAAI в 2016 году, предложены две модели: модель C2S и модель gC2S. Основная работа статьи заключается в формировании комментариев к описанию товаров.Эксперименты показывают, что более 50% сгенерированных комментариев прошли ручную оценку, а более 90% обманули существующие алгоритмы распознавания.

Традиционная модель RNN для текстового моделирования выглядит следующим образом:

Модель C2S: Contexts to Sequences в статье показана на рисунке ниже По сравнению с традиционным методом C2S имеет дополнительный вектор, представляющий контекст в начале трансляции. Однако, когда сгенерированная последовательность слишком длинная, информацию в контексте трудно распространять, поэтому автор улучшил это:

Модель gC2S: Gated Contexts to Sequences в статье показана на рисунке ниже.Автор устанавливает прямую связь между контекстной информацией и следующим словом, называемым вентильным механизмом, для оценки взаимосвязи между текущим шагом и контекстом:

3.5 Модель A2S с улучшенным вниманием

В статье «Учимся создавать обзоры продуктов на основе атрибутов», опубликованной в EACL в 2017 году, предлагается модель преобразования атрибутов в последовательность с повышенным вниманием, которая использует атрибуты продукта, такие как пользователь, продукт, рейтинг и другую информацию, для создания отзывов о продукте. Базовая структура модели выглядит следующим образом:

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

Модель разделена на три части: кодировщик атрибутов, декодер последовательности и механизм внимания. Кодер атрибутов представляет собой многоуровневый персептрон для кодирования атрибутов в векторы, а декодер последовательности представляет собой многоуровневую RNN с преобразованием от грубого к точному.

На следующем рисунке показана модель без механизма внимания:

Attribute Encoder:

g(a_i)=W^a_ie(a_i) a=tanh(H[g(a_1),...,g(a_{|a|})]+b_a)

вe(a_i)является однократным вектором,g(a_i)- соответствующий вектор атрибутов, используяaдля инициализации L-уровня RNN.

Sequence Decoder:

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

Наконец, вероятность предсказания следующего слова с помощью функции softmax равна:

Attention Mechanism:

Суммировать:

Хотя эта статья представляет собой очень простое применение модели кодировщика-декодера, основанного на внимании, она углубляет мое понимание и применение модели seq2seq и является очень практичным и простым в реализации примером.

4. Резюме полного текста

Глядя на все документы, самая основная структура модели seq2seq — это кодировщик-декодер плюс механизм внимания, будь то добавление тематической информации в декодер, информация о говорящем или добавление нового механизма копирования.

Чтобы лучше прояснить идею этой серии моделей seq2seq, я нарисовал сводную диаграмму всех работ, о которых я говорил на этот раз.Черная часть среднего ядра - это самая основная основа модели seq2seq, а остальные светло - серые детали вышеуказанных документы. Некоторые из инновационной работы я сделал начал с механизмом внимания добавленным между кодером и декодером, который я называю сообщение внимания здесь. Тогда в 2017 году, AAAI в «тема Aware Neural Generation Response» аналогичным образом предложил Механизм темы внимания работает вместе с оригинальным механизмом внимания. После этого, большинство инноваций были сделаны в декодере части. В 2016 годе «Персона-Based Neural диалог Model» ACL добавили факторы воздействия векторных динамика и вектор взаимодействия. Другой статья на конференции ACL в том же году книге «Включение механизма копирования в последовательности-к-последовательности Обучение»добавлен механизм копирования и AAAI в„Context-Aware Natural Language Generation с рецидивирующим Neural Networks“в 2016 году добавлен механизм стробирования.