Источник: ACL, 2017 г.
Ключевые слова: NLG, сети генераторов указателей.
1. Предыстория и описание проблемы
Появление модели seq2seq обеспечивает лучшее решение для реализации реферирования абстрактного текста, но у seq2seq часто есть два недостатка: 1. Легко генерировать неточные детали 2. Легко повторять 3. Не справляться с проблемами OOV. Автор предлагает два метода повышения производительности модели seq2seq.Один из них заключается в объединении PointerNetwork с кодировщиком в seq2seq, чтобы сгенерированные результаты были сгенерированы seq2seq из всех словарей и скопированы из исходного текста, чтобы он мог помогают генерировать точные слова, а также могут решать проблему OOV. Второй момент заключается в использовании механизма покрытия для отслеживания частей дайджеста по одной за раз, чтобы избежать повторения.
2. Существующие решения
seq2seq+внимание является основой для решения таких проблем:
Модель seq2seq делится на кодер и декодер. Со стороны кодировщика статья должна бытьСлова в подаются на кодировщик (LSTM или Transformer) одно за другим, и статья получается через кодировщик.статус кодирования(скрытые состояния кодировщика), на стороне декодера, в каждый момент времени, декодер получает вектор слова слова в предыдущий момент и получает состояние декодирования(скрытое состояние декодера), а затем вычислить вес внимания:
формула,, а такжевсе изучаемые параметры. Веса внимания, полученные здесьЕго можно рассматривать как вероятность внимания ко всем словам в источнике, которая используется, чтобы сообщить декодеру, на какое слово следует обратить внимание, чтобы сгенерировать следующее слово.
Затем используйте веса вниманияи состояние кодированияВычислите взвешенное состояние кодирования, рассматриваемое как вектор контекста:
Вектор контекста, полученный вышеОн отправляется на два линейных слоя, и вычисляется softmax для получения распределения вероятностей списка слов., значение вероятности представляет собой вероятность того, что будут выбраны все слова в словаре.
Наконец, потеря рассчитывается с использованием перекрестной энтропии, Полная потеря - это среднее значение потери в каждой позиции последовательности:
3. Обзор решения
В этой статье предлагаются сети генераторов указателей на основе seq2seq, то есть seq2seq+PointerNetwork:
- Pointer-Generator Networks
На этапе расшифровки, как определить копировать или генерировать из первоисточника, автор вводит веспринимать решение. Конкретный расчет, ввремя:в,,, а такжеобучаемый параметр, состояние декодирования, контекстный вектор, вход декодера. На этапе декодирования необходимо поддерживать расширенный словарь, то есть исходный словарь плюс все слова, встречающиеся в источнике.Мы вычисляем вероятность всех токенов в этом расширенном словаре:
Здесь, еслиявляется ООВ, торавно 0, то же самое, еслиЕсли он не появляется в источнике, последний элемент также равен 0.
Определение потери такое же, как и в seq2seq.
2.Coverage mechanism
повторениеЭто частая проблема с моделью seq2seq, которая представлена в этой статье.Coverage modelЧтобы решить эту проблему, это также является основной изюминкой этой статьи. Конкретная реализация состоит в том, чтобы добавить веса внимания всех предыдущих шагов квектор покрытияначальство.Это должно использовать предыдущее решение о весе внимания, чтобы повлиять на текущее решение о весе внимания, чтобы избежать повторения в одной и той же позиции, тем самым избегая повторного создания текста.. Конкретный расчет выглядит следующим образом:потомобложка векторДобавлено в расчет весов внимания:Это позволяет на текущее решение влиять на историческое решение при расчете веса внимания, так что механизм внимания может избежать повторения внимания к определенной позиции, что также может избежать генерации повторяющихся слов.
Автор обнаружил, что введениеcoverage lossявляется необходимым,coverage lossрассчитывается следующим образом:
Стоит отметить, что эта потеря наказывает только повторное внимание (мин) и не заставляет модель обращать внимание на каждое слово в исходном тексте.
Окончательная потеря модели, гдеявляются гиперпараметрами:
Количественная интерпретация потери покрытия
зачем присоединятьсяcoverage lossМожет ли оно играть роль наказания за повторное внимание? Например, для последовательности из 4 слов, вВектор покрытия, полученный путем пошагового расчета, имеет вид:, Очевидно, что второму жетону было уделено слишком много внимания, и он должен быть соответствующим образом наказан. Если декодер находится вВ тот момент, когда внимание продолжает обращать внимание на второй токен, например:В этом случае получаемые потери относительно велики. Если декодер находится вМомент не второй знак беспокойства? Например:В этом случае расчетные потери относительно невелики.
4. Анализ результатов
При оценке рефератов метод, предложенный в этой статье, значительно улучшает показатель ROUGE. Кроме того, автор обнаружил, что при экспериментальной настройке лида-3, то есть были извлечены и сгенерированы только первые три предложения статьи, оценка ROUGE была значительно выше, поскольку ключевая информация новостей обычно появлялась в начале статья. На самом деле авторы экспериментировали и обнаружили, что использование только первых 400 токенов работает лучше.
Кроме того, автор также проанализировал долю редких n-грамм, сгенерированных моделью в этой статье и моделью seq2seq+attentoin:Редкая n-грамма определяется как не встречающаяся в исходной n-грамме. Как видно из рисунка выше, модель в этой статье генерирует относительно мало редких n-грамм, а модель seq2seq+attentoin генерирует больше, и большинство из них ошибочны.
5. Инновация или вклад
- В тексте предлагается модель гибридного указателя, в которой представлен механизм наложения, который может эффективно решить проблемы неточности и дублирования генеративных моделей.
- В задаче извлечения длинного текста результаты этой модели значительно превзошли результаты SOTA того времени.
- Эта статья основана на модели PointerNetwork и Coverage, добавленной к модели seq2seq Эффект значительно улучшен, но параметры модели не сильно увеличились. В деталях параметры базовой модели имеют в общей сложности 21 499 600 параметров, генератор указателей добавляет 1153 параметра, а покрытие добавляет 512 параметров.
6. Личное мышление
Классические статьи, классические идеи, достойные глубокого изучения!
[Ссылаться на]paper code-pytorch