В чем понт В статье решают задачу понимания языка - учатся отвечать на вопросы к текстам, причем ответ может содержать слова, которых нет в вопросе и текстах. Модель бьет SOTA по этой задаче на датасете MS-MARCO.
Подробности Устройство модели Обучение модели проходит в два этапа - на первом этапе мы выделяем в текстах начало и конец кусков, которые могут содержать полезную информацию, а на втором - с помощью модели seq2seq и дополнительных фичей в виде начала и конца полезных нам кусков, генерим ответ на вопрос.
Выделение кусков Эта часть нужна для того, чтобы достать наши фичи - начало и конец информации о вопросе в тексте. Для текстов и вопросов независимо строятся эмбеддинги с помощью двунаправленной реккурентной сети (GRU). Затем слова во всех текстах с помощью attention и реккурентных сетей преобразуются в эмбеддинги, с учетом конкретного вопроса. Теперь нам нужно выделить начало и конец куска текстов, несущего информацию о вопросе. Для этого мы сливаем все тексты в один и предсказываем начало и конец такого куска. Делаем мы это с помощью Pointer Network. Главная мысль этой нашумевшей в свое время архитектуры в том, что мы определяем начало и конец интересного куска как позицию с максимальной вероятностью, полученной после обработки софтмаксом attention от преобразования эмбедддингов текстов с учетом вопросов.
Генерация ответа Далее мы делаем seq2seq модель с attention, в декодере, который позволяет декодеру видеть все состояния энкодера. Модель берет на вход вопрос и тексты и генерит ответ. Получившиеся начало и конец куска мы используем как фичи в энкодере. Качества ответа мерится с помощью BLEW score и ROUGE-L score и бьет SOTA.
Что в итоге Побили SOTA в крайне полезной для науки и индустрии задаче c помощью рекурентных сетей и неоднократного использования attention - подтверждает, что attention тренд на века:)