Содержание

Charlie Puth — Текст песни Attention

[Intro]

Woah-oh, hm-hmm

 

[Verse 1]

You’ve been runnin’ ’round, runnin’ ’round, runnin’ ’round

Throwin’ that dirt all on my name

‘Cause you knew that I, knew that I, knew that I’d

Call you up

You’ve been going ’round, going ’round, going ’round

Every party in LA

‘Cause you knew that I, knew that I, knew that I’d

Be at one, oh

 

[Pre-Chorus]

I know that dress is karma, perfume regret

You got me thinking ’bout when you were mine, ooh

And now I’m all up on ya, what you expect?

But you’re not coming home with me tonight

 

[Chorus]

You just want attention, you don’t want my heart

Maybe you just hate the thought of me with someone new

Yeah, you just want attention, I knew from the start

You’re just making sure I’m never gettin’ over you, oh

 

[Verse 2]

You’ve been runnin’ ’round, runnin’ ’round, runnin’ ’round

Throwin’ that dirt all on my name

‘Cause you knew that I, knew that I, knew that I’d

Call you up

Baby, now that we’re, now that we’re, now that we’re

Right here standin’ face to face

You already know, ‘ready know, ‘ready know

That you won, oh

 

[Pre-Chorus]

I know that dress is karma (Dress is karma), perfume regret, yeah

You got me thinking ’bout when you were mine, ooh

(You got me thinking ’bout when you were mine)

And now I’m all up on ya (All up on ya), what you expect? (Oh, baby)

But you’re not coming home with me tonight, oh no

 

[Chorus]

You just want attention, you don’t want my heart

Maybe you just hate the thought of me with someone new (One new)

Yeah, you just want attention (Oh), I knew from the start (The start)

You’re just making sure I’m never gettin’ over you (Over you), oh

 

[Bridge]

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh?

 

[Pre-Chorus]

I know that dress is karma, perfume regret

You got me thinking ’bout when you were mine

And now I’m all up on ya, what you expect?

But you’re not coming home with me tonight

 

[Chorus]

You just want attention, you don’t want my heart

Maybe you just hate the thought of me with someone new

Yeah, you just want attention, I knew from the start

You’re just making sure I’m never gettin’ over you (Over you)

 

[Outro]

What are you doin’ to me? (Hey)

What are you doin’, huh? (What are you doin’, love?)

What are you doin’ to me?

What are you doin’, huh? (Yeah, you just want attention)

What are you doin’ to me? (I knew from the start)

What are you doin’ huh? (You’re just making sure I’m never gettin’ over you)

What are you doin’ to me?

What are you doin’, huh?

 

Charlie Puth — Attention — текст песни, слова

Whoa oh oh hm

You’ve been runnin’ ’round, runnin’ ’round, runnin’ ’round throwin’ that dirt all on my name

‘Cause you knew that I, knew that I, knew that I’d call you up

You’ve been going ’round, going ’round, going ’round every party in LA

‘Cause you knew that I, knew that I, knew that I’d be at one, oh

I know that dress is karma, perfume regret

You got me thinking ’bout when you were mine, oh

And now I’m all up on ya, what you expect?

But you’re not coming home with me tonight

You just want attention

You don’t want my heart

Maybe you just hate the thought of me with someone new

Yeah, you just want attention

I knew from the start

You’re just making sure I’m never gettin’ over you, oh

You’ve been runnin’ round, runnin’ round, runnin’ round throwing that dirt all on my name

‘Cause you knew that I, knew that I, knew that I’d call you up

Baby, now that we’re, now that we’re, now that we’re right here standing face to face

You already know, ‘ready know, ‘ready know that you won, oh

I know that dress is karma (dress is karma), perfume regret, yeah

You got me thinking ’bout when you were mine, oh

(You got me thinking ’bout when you were mine)

And now I’m all up on ya (all up on ya), what you expect?

(Oh, baby)

But you’re not coming home with me tonight, oh no

You just want attention

You don’t want my heart

Maybe you just hate the thought of me with someone new, someone new

Yeah, you just want attention, oh

I knew from the start, the start

You’re just making sure I’m never gettin’ over you, over you, oh

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh? (What are you doin’?)

What are you doin’ to me?

What are you doin’, huh?

I know that dress is karma, perfume regret

You got me thinking ’bout when you were mine

And now I’m all up on ya, what you expect?

But you’re not coming home with me tonight

You just want attention

You don’t want my heart

Maybe you just hate the thought of me with someone new

Yeah, you just want attention

I knew from the start

You’re just making sure I’m never gettin’ over you, over you

What are you doin’ to me? (hey)

What are you doin’, huh? (what are you doin’, what?)

What are you doin’ to me?

What are you doin’, huh? (yeah, you just want attention)

What are you doin’ to me? (I knew from the start)

What are you doin’, huh?

(You’re just making sure I’m never gettin’ over you)

What are you doin’ to me?

What are you doin’, huh?

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

Одним из предшественников такого масштабного прогресса стало введение Seq2Seq и моделей нейронного внимания, что позволило нейронным сетям стать более избирательными в отношении данных, с которыми они работают в любой момент времени.

Основной задачей нейронного механизма внимания является научиться распознавать, где найти важную информацию. Вот пример нейронного машинного перевода:

Источник: Google seq2seq

Цикл работает следующим образом:
  • Слова из входного предложения передаются в кодировщик для передачи значения предложения; так называемый «мыслительный вектор».
  • На основе этого вектора декодер производит слова одно за другим для создания выходного предложения.
  • На протяжении всего этого процесса механизм внимания помогает декодеру сосредоточиться на различных фрагментах входного предложения.
Нынешний успех нейронного машинного перевода можно объяснить:
  1. Зеппом Хохрайтером и Юргеном Шмидхубером в 1997 году была создана нейронная клетка LSTM (долговременная кратковременная память). Это дало возможность работать с относительно длинными последовательностями, используя парадигму машинного обучения.
  2. Реализация последовательности к последовательности (Sutskever et al., 2014, Cho et al., 2014) на основе LSTM. Идея состоит в том, чтобы «съесть» часть последовательности и «вернуть» другую.
  3. Создание «механизма внимания», впервые представленного Бахданау и др., 2015 г.

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

Реальные приложения алгоритма Seq2Seq

Алгоритм Seq2Seq может выполнять несколько основных задач, все они основаны на «переводе», но каждая из них имеет свои отличия. Давайте подробнее рассмотрим некоторые из них.

Нейронный машинный перевод

Машинный перевод сделал огромный шаг вперед в 2017 году благодаря внедрению двунаправленной остаточной нейронной сети Seq2Seq (последовательность к последовательности) с механизмом внимания. Роль механизма заключается в определении важности каждого слова во входном предложении, а затем в извлечении дополнительного контекста вокруг каждого слова. Благодаря этой разработке современные инструменты теперь могут производить высококачественные переводы длинных и сложных предложений.

Источник: TensorFlow seq2seq tutorial

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

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

Источник: Богданау и др., 2015 г.

Обобщение текста

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

Источник: Обобщение текста с TensorFlow

Чат-боты с возможностью ответа на вопрос

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

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

Подписи к изображениям на естественном языке (Img2Seq)

Идея здесь та же, что и для распознавания изображений. Разница, однако, заключается в том, что для подписи к изображению тепловая карта внимания меняется в зависимости от каждого слова в фокусном предложении.

Источник: Show, Attend and Tell: Нейронная генерация подписи к изображению с визуальным вниманием

Нейронная сеть может «переводить» все, что она видит на изображении, в слова. Приведенный выше пример показывает нам, как сеть распределяет свое внимание при формулировании описания.

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

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

Системы ответов на вопросы на основе изображений

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

Источник: Stacked Attention Networks for Image Question Answering

Нейронный машинный перевод TensorFlow Seq2Seq с механизмом внимания: пошаговое руководство

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

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

Мы использовали структуру TensorFlow, чтобы предложить полезный низкоуровневый рабочий пример концепции, основанный на руководстве Dynamic Seq2Seq в TensorFlow. И мы стремимся сделать его таким же хорошим, как и оригинальная версия PyTorch.

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

Майкл Константинов
Специалист по глубокому обучению в Eleks

Как работает внимание в рекуррентных нейронных сетях кодировщика-декодера

Джейсон Браунли on 13 октября 2017 г.

Последнее обновление: 7 августа 2019 г.

Внимание — это механизм, который был разработан для повышения производительности кодировщика-декодера RNN при машинном переводе.

В этом руководстве вы познакомитесь с механизмом внимания для модели Encoder-Decoder.

После прохождения этого урока вы будете знать:

  • О модели Encoder-Decoder и механизме внимания для машинного перевода.
  • Как реализовать механизм внимания шаг за шагом.
  • Приложения и расширения механизма внимания.

Начните свой проект с моей новой книги Deep Learning for Natural Language Processing, включающей пошаговых руководств и исходный код Python для всех примеров.

Давайте начнем.

  • Обновление, декабрь 2017 г. : исправлена ​​небольшая опечатка на шаге 4, спасибо Синтии Фриман.

Обзор учебника

Этот туториал разделен на 4 части; они:

  1. Кодировщик-декодер Модель
  2. Внимание Модель
  3. Рабочий пример внимания
  4. Расширения для внимания

Кодировщик-декодер Модель

Модель кодировщика-декодера для рекуррентных нейронных сетей была представлена ​​в двух статьях.

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

Илья Суцкевер и др. сделайте это в статье «Последовательное обучение с помощью нейронных сетей» с использованием LSTM.

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

Модель высокого уровня состоит из двух подмоделей: кодера и декодера.

  • Кодер : Кодер отвечает за пошаговое выполнение входных временных шагов и кодирование всей последовательности в вектор фиксированной длины, называемый вектором контекста.
  • Декодер : Декодер отвечает за пошаговое выполнение временных шагов вывода при чтении из вектора контекста.

Модель рекуррентной нейронной сети кодировщик-декодер.
Взято из «Изучение представлений фраз с использованием кодировщика-декодера RNN для статистического машинного перевода»

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

— Изучение представлений фраз с использованием кодировщика-декодера RNN для статистического машинного перевода, 2014.

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

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

Вместо использования популярной RNN с долговременной кратковременной памятью (LSTM) авторы разрабатывают и используют свой собственный простой тип RNN, позже названный Gated Recurrent Unit или GRU.

Далее, в отличие от Sutskever, et al. В модели выходные данные декодера с предыдущего временного шага подаются в качестве входных данных для декодирования следующего выходного временного шага. Вы можете видеть это на изображении выше, где выход y2 использует вектор контекста (C), скрытое состояние, полученное при декодировании y1, а также выход y1.

… и y(t), и h(i) также зависят от y(t−1) и сводки c входной последовательности.

— Изучение представлений фраз с использованием кодировщика-декодера RNN для статистического машинного перевода, 2014 г.

Внимание Модель

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

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

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

— Нейронный машинный перевод путем совместного обучения выравниванию и переводу, 2015 г.

Внимание предлагается как метод выравнивания и перевода.

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

… мы представляем расширение модели кодер-декодер, которое учится выравнивать и транслировать совместно. Каждый раз, когда предлагаемая модель генерирует слово в переводе, она (мягко) ищет набор позиций в исходном предложении, где сосредоточена наиболее релевантная информация. Затем модель предсказывает целевое слово на основе векторов контекста, связанных с этими исходными позициями и всеми ранее сгенерированными целевыми словами.

— Нейронный машинный перевод путем совместного обучения выравниванию и переводу, 2015 г.

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

Пример внимания
Взято из «Нейронный машинный перевод путем совместного обучения выравниванию и переводу», 2015 г.

Как и в случае с документом Encoder-Decoder, этот метод применяется к проблеме машинного перевода и использует единицы GRU, а не ячейки памяти LSTM. В этом случае используется двунаправленный ввод, при котором входные последовательности предоставляются как в прямом, так и в обратном направлении, которые затем объединяются перед передачей в декодер.

Вместо того, чтобы повторять уравнения для расчета внимания, мы рассмотрим рабочий пример.

Нужна помощь с глубоким обучением для текстовых данных?

Пройдите мой бесплатный 7-дневный экспресс-курс по электронной почте прямо сейчас (с кодом).

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

Рабочий пример внимания

В этом разделе мы уделим внимание конкретному небольшому рабочему примеру. В частности, мы пройдем расчеты с невекторизованными членами.

Это даст вам достаточно подробное понимание, чтобы вы могли обратить внимание на свою собственную реализацию кодера-декодера.

Этот рабочий пример разделен на следующие 6 секций:

  1. Проблема
  2. Кодировка
  3. Выравнивание
  4. Взвешивание
  5. Вектор контекста
  6. Расшифровать

1. Проблема

Проблема представляет собой простую задачу предсказания последовательностей.

Имеется три временных шага ввода:

х1, х2, х3

х1, х2, х3

Модель требуется для прогнозирования 1 временного шага:

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

2. Кодировка

В модели кодировщик-декодер ввод будет закодирован как один вектор фиксированной длины. Это выходные данные модели кодировщика для последнего временного шага.

h2 = Энкодер (x1, x2, x3)

h2 = Энкодер (x1, x2, x3)

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

h2, h3, h4 = Энкодер (x1, x2, x3)

h2, h3, h4 = датчик (x1, x2, x3)

3.

Выравнивание

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

Модель выравнивания оценивает (e) насколько хорошо каждый закодированный ввод (h) соответствует текущему выводу декодера (ов).

Для расчета оценки требуется вывод декодера из предыдущего временного шага вывода, например. с(т-1). При подсчете самого первого вывода для декодера это будет 0,

Оценка выполняется с помощью функции a(). Мы можем оценить каждую аннотацию (h) для первого временного шага вывода следующим образом:

е11 = а(0, h2)
е12 = а(0, h3)
e13 = a(0, h4)

e11 = a(0, h2)

e12 = a(0, h3)

e13 = a(0, h4)

Мы используем два индекса для этих оценок, например. e11, где первая «1» представляет выходной временной шаг, а вторая «1» представляет входной временной шаг.

Мы можем представить, что если бы у нас была проблема последовательностей с двумя временными шагами вывода, то позже мы могли бы оценить аннотации для второго временного шага следующим образом (при условии, что мы уже вычислили наш s1):

е21 = а(s1,h2)
e22 = a(s1, h3)
e23 = a(s1, h4)

e21 = a(s1, h2)

e22 = a(s1, h3)

e23 = a(s1, h4)

Функция a() в документе называется моделью выравнивания и реализована в виде нейронной сети с прямой связью.

Это традиционная однослойная сеть, в которой каждый вход (s(t-1) и h2, h3 и h4) взвешивается, используется передаточная функция гиперболического тангенса (tanh), а выход также взвешивается.

4. Взвешивание

Затем показатели выравнивания нормализуются с помощью функции softmax.

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

Эти нормализованные оценки называются весами аннотаций.

Например, мы можем рассчитать веса аннотаций softmax (a) с учетом рассчитанных оценок выравнивания (e) следующим образом:

a11 = exp(e11) / (exp(e11) + exp(e12) + exp(e13))
a12 = exp(e12) / (exp(e11) + exp(e12) + exp(e13))
a13 = exp(e13) / (exp(e11) + exp(e12) + exp(e13))

a11 = exp(e11) / (exp(e11) + exp(e12) + exp(e13))

a12 = exp(e12) / (exp(e11) + exp(e12) + exp(e13))

a13 = exp(e13) / (exp(e11) + exp(e12) + exp(e13))

Если бы у нас было два временных шага вывода, веса аннотаций для второго временного шага вывода были бы рассчитаны следующим образом:

a21 = exp(e21) / (exp(e21) + exp(e22) + exp(e23))
a22 = exp(e22) / (exp(e21) + exp(e22) + exp(e23))
a23 = exp(e23) / (exp(e21) + exp(e22) + exp(e23))

a21 = exp(e21) / (exp(e21) + exp(e22) + exp(e23))

a22 = exp(e22) / (exp(e21) + exp(e22) + exp(e23))

а23 = ехр(е23) / (ехр(е21) + ехр(е22) + ехр(е23))

5.

Вектор контекста

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

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

c1 = (a11 * h2) + (a12 * h3) + (a13 * h4)

с1 = (а11 * h2) + (а12 * h3) + (а13 * h4)

Вектор контекста представляет собой взвешенную сумму аннотаций и нормализованных показателей выравнивания.

Если бы у нас было два выходных временных шага, вектор контекста состоял бы из двух элементов [c1, c2], рассчитанных следующим образом:

с1 = а11 * h2 + а12 * h3 + а13 * h4
с2 = а21 * h2 + а22 * h3 + а23 * h4

c1 = a11 * h2 + a12 * h3 + a13 * h4

c2 = a21 * h2 + a22 * h3 + a23 * h4

6.

Расшифровать

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

Выход декодера(ов) упоминается в документе как скрытое состояние.

s1 = Декодер (c1)

s1 = Декодер(c1)

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

Расширения для внимания

В этом разделе рассматриваются некоторые дополнительные приложения Bahdanau, et al. механизм внимания.

Жесткое и мягкое внимание

В статье 2015 года «Покажи, посети и расскажи: генерация нейронных подписей к изображениям с визуальным вниманием» Кельвин Сюй и др. обратил внимание на данные изображения с использованием сверточных нейронных сетей в качестве средств извлечения признаков для данных изображения по проблеме подписи к фотографиям.

Они разработали два механизма внимания, один из которых они назвали « мягкое внимание », который напоминает внимание, как описано выше с взвешенным вектором контекста, и второй « жесткое внимание », где принимаются четкие решения об элементах вектора контекста. для каждого слова.

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

Удаление предыдущего скрытого состояния

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

Два примера:

  • Иерархические сети внимания для классификации документов, 2016 г.
  • Двунаправленные сети долговременной кратковременной памяти на основе внимания для классификации отношений, 2016 г.

Это приводит к тому, что модель не получает представление о ранее декодированном выводе, которое предназначено для облегчения выравнивания.

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

Изучение предыдущего скрытого состояния

Минх-Тханг Луонг и др. в своей статье 2015 года «Эффективные подходы к нейронному машинному переводу на основе внимания» явно реструктурируют использование предыдущего скрытого состояния декодера при оценке аннотаций. Также см. презентацию статьи и соответствующий код Matlab.

Они разработали структуру для сопоставления различных способов оценки аннотаций. Их структура вызывает и явно исключает предыдущее скрытое состояние при оценке аннотаций.

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

… мы предлагаем подход с подачей входных данных, в котором векторы внимания ht объединяются с входными данными на следующих временных шагах […]. Эффект от наличия таких связей двоякий: (а) мы надеемся, что модель будет полностью осведомлена о предыдущих вариантах выравнивания, и (б) мы создадим очень глубокую сеть, охватывающую как по горизонтали, так и по вертикали

— Эффективные подходы к нейронному машинному переводу на основе внимания, 2015.

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

Подача скрытого состояния в качестве входных данных для декодера
Взято из «Эффективные подходы к нейронному машинному переводу на основе внимания», 2015 г.

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

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

— Эффективные подходы к нейронному машинному переводу на основе внимания, 2015.

Анализ в статье глобального и локального внимания с различными функциями оценки аннотаций показывает, что локальное внимание обеспечивает лучшие результаты в задаче перевода.

Дополнительное чтение

В этом разделе содержится больше ресурсов по теме, если вы хотите углубиться.

Бумага для кодировщика-декодера

  • Изучение представлений фраз с использованием кодировщика-декодера RNN для статистического машинного перевода, 2014.
  • Последовательное обучение с помощью нейронных сетей, 2014 г.

Внимание Бумаги

  • Нейронный машинный перевод путем совместного обучения выравниванию и переводу, 2015 г.
  • Покажи, посети и расскажи: генерация подписей к изображениям на основе нейронных сетей с визуальным вниманием, 2015.
  • Иерархические сети внимания для классификации документов, 2016 г.
  • Двунаправленные сети долговременной кратковременной памяти на основе внимания для классификации отношений, 2016 г.
  • Эффективные подходы к нейронному машинному переводу на основе внимания, 2015.

Подробнее о Внимание

  • Внимание в рекуррентных нейронных сетях долговременной памяти
  • Лекция 10: Нейронно-машинный перевод и модели с вниманием, Стэнфорд, 2017 г.
  • Лекция 8 – Генерация языка с вниманием, Оксфорд.

Сводка

В этом руководстве вы узнали о механизме внимания для модели Encoder-Decoder.

Конкретно вы узнали:

  • О модели Encoder-Decoder и механизме внимания для машинного перевода.
  • Как реализовать механизм внимания шаг за шагом.
  • Приложения и расширения механизма внимания.

Есть вопросы?
Задавайте свои вопросы в комментариях ниже, и я сделаю все возможное, чтобы ответить.

Разрабатывайте модели глубокого обучения для текстовых данных уже сегодня!

Разработка собственных текстовых моделей за 9 минут0013

…с помощью всего нескольких строк кода Python

Узнайте, как в моей новой электронной книге:
Глубокое обучение для обработки естественного языка

Он содержит учебных пособий для самостоятельного изучения по таким темам, как:
Bag-of-Words , встраивание слов, языковые модели, генерация титров, перевод текста и многое другое.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *