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

Оглавление

  1. Как люди переводят язык
  2. Базовая интуиция внимания
  3. Работа внимания
  4. Как вычислить alpha_ij?
  5. Заключение

1. Как люди переводят язык

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

2. Базовая интуиция внимания

Мы используем двунаправленный RNN (без части softmax) в сети кодировщика и однонаправленный RNN в сети декодера, причина использования двунаправленного заключается в том, что вывод будет зависеть от набора слов, а декодер является однонаправленным, поскольку он будет генерировать одно слово, за которым следует другое слово. Синие ячейки в сети кодировщика — это передние единицы, а зеленые ячейки — обратные единицы. Выходные данные скрытых векторов h¹ — › и h¹‹ — объединяются (h^t= h¹ — › + h¹‹ — )

3. Работа внимания

Предположим, что y1, y2, y3, y4 являются выходными данными модели декодера, то есть словами на ассамском языке. Теперь вывод y2 будет зависеть не только от слов x1 и x2, но и от слов после x2, которые равны x3 и x4. Чтобы добиться этого понимания, мы используем двунаправленную RNN, которая поможет нам фиксировать информацию от последнего слова до первого.

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

Контекстный вектор C1 представляет собой взвешенную сумму выходных данных, которые мы получаем от модели кодировщика. Tx — это гиперпараметр, в этом примере мы считаем его равным 4, и в качестве регуляризации мы хотим, чтобы значения alpha_i были неотрицательными, а сумма alpha_i должна быть равна 1. Эти ограничения не позволят значениям aplha_i достигая -бесконечности или + бесконечности.

4. Как вычислить alpha_ji?

Большой вопрос здесь заключается в том, чтобы спроектировать alpha_ji так, чтобы он удовлетворял упомянутым выше ограничениям. Теперь давайте определим alpha_ji как:

Теперь e_ji является функцией S_j-1 и h_i, поэтому alpha_ji зависит от e_ji и функция e_ji зависят от выходных данных модели кодировщика в i_th момент времени h_i и входных данных декодера S_j-1. функция представляет собой простую нейронную сеть, и с помощью обратного распространения мы получим требуемые веса.

5. Вывод

По мере увеличения длины предложения оценка BLEU (точность перевода) для RNNsearch-50 остается неизменной при использовании Tx = 50.

Основным недостатком является временная сложность, которая составляет O(длина входного предложения x длина выходного предложения)