HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: stateful, greedy decoding, dec, bos, eos, декодер, sequence-to-sequence, data science, big data, энкодер, финальный вектор контекста, категориальное распределение, суммарная вероятность генерации последовательности слов</p>
1 <p>Теги: stateful, greedy decoding, dec, bos, eos, декодер, sequence-to-sequence, data science, big data, энкодер, финальный вектор контекста, категориальное распределение, суммарная вероятность генерации последовательности слов</p>
2 <p>Ключевая идея модели заключается в том, что мы рассматриваем входные данные (предложение на языке А) и выходные данные (предложение на языке Б) как последовательности слов.</p>
2 <p>Ключевая идея модели заключается в том, что мы рассматриваем входные данные (предложение на языке А) и выходные данные (предложение на языке Б) как последовательности слов.</p>
3 <p>Таким образом, алгоритм перевода состоит из следующих основных этапов:</p>
3 <p>Таким образом, алгоритм перевода состоит из следующих основных этапов:</p>
4 <p>1) Энкодер (enc) последовательно считывает входное предложение и выдает вектор контекста "С". На рисунке передаче вектора контекста от энкодера к декодеру соответствует стрелка<strong>h4 → dec1</strong>.</p>
4 <p>1) Энкодер (enc) последовательно считывает входное предложение и выдает вектор контекста "С". На рисунке передаче вектора контекста от энкодера к декодеру соответствует стрелка<strong>h4 → dec1</strong>.</p>
5 <p>2) Получив компактное описание входного предложения в виде "С", декодер (dec) генерирует слова на другом языке последовательно. Отдельным "словом" в словаре языка Б обозначим начало предложения "BOS" и конец предложения "EOS".</p>
5 <p>2) Получив компактное описание входного предложения в виде "С", декодер (dec) генерирует слова на другом языке последовательно. Отдельным "словом" в словаре языка Б обозначим начало предложения "BOS" и конец предложения "EOS".</p>
6 <p>Схематично этот процесс представлен на рисунке.</p>
6 <p>Схематично этот процесс представлен на рисунке.</p>
7 <h2>Рассмотрим декодер подробнее</h2>
7 <h2>Рассмотрим декодер подробнее</h2>
8 <p>Его можно представить в виде следующей функции:</p>
8 <p>Его можно представить в виде следующей функции:</p>
9 <p>Здесь ht - вектор скрытого состояния декодера на шаге t (можно сказать, что декодер - такая "stateful" функция от предыдущего слова), pt - распределение по словам на шаге t, w(t-1) это слово, которое выбрано в качестве основной гипотезы исходя из распределения p(t-1) на шаге "t-1".</p>
9 <p>Здесь ht - вектор скрытого состояния декодера на шаге t (можно сказать, что декодер - такая "stateful" функция от предыдущего слова), pt - распределение по словам на шаге t, w(t-1) это слово, которое выбрано в качестве основной гипотезы исходя из распределения p(t-1) на шаге "t-1".</p>
10 <p>Для энкодера аналогичное уравнение выглядит следующим образом:</p>
10 <p>Для энкодера аналогичное уравнение выглядит следующим образом:</p>
11 <p>Обратите внимание, что в качестве финального вектора контекста C выбирается последнее скрытое состояние энкодера, в данном случае h4. В случае более сложных подходов (например, с добавлением механизмов т.н. "внимания") схема чуть усложнится.</p>
11 <p>Обратите внимание, что в качестве финального вектора контекста C выбирается последнее скрытое состояние энкодера, в данном случае h4. В случае более сложных подходов (например, с добавлением механизмов т.н. "внимания") схема чуть усложнится.</p>
12 <h2>В чем преимущество такого подхода?</h2>
12 <h2>В чем преимущество такого подхода?</h2>
13 <p>Прежде всего тем, что количество параметров модели не зависит от длины предложения: одни и те же модели (enc и dec) работают на всех шагах по времени.</p>
13 <p>Прежде всего тем, что количество параметров модели не зависит от длины предложения: одни и те же модели (enc и dec) работают на всех шагах по времени.</p>
14 <p>В завершение, вернемся к вопросу выбора правильной последовательности слов w1,w2,...wn, учитывая что декодер выдает только вероятности слов p1,p2,...pn.</p>
14 <p>В завершение, вернемся к вопросу выбора правильной последовательности слов w1,w2,...wn, учитывая что декодер выдает только вероятности слов p1,p2,...pn.</p>
15 <p>Мы можем выбрать любое слово w(t-1) из категориального распределения p(t-1) над словарём, получить новое скрытое состояние ht и новое распределение pt. Выбору этого слова будет соответствовать определённая вероятность, которую будем обозначать p(t-1) (w(t-1)).</p>
15 <p>Мы можем выбрать любое слово w(t-1) из категориального распределения p(t-1) над словарём, получить новое скрытое состояние ht и новое распределение pt. Выбору этого слова будет соответствовать определённая вероятность, которую будем обозначать p(t-1) (w(t-1)).</p>
16 <p>Выполняя на каждом шаге такую процедуру, получаем суммарную вероятность генерации последовательности слов:</p>
16 <p>Выполняя на каждом шаге такую процедуру, получаем суммарную вероятность генерации последовательности слов:</p>
17 <p>Простейший способ генерировать последовательность - выбирать на каждом шаге самое вероятное слово wt из распределения pt ("<strong>greedy decoding</strong>"). Это, однако, не гарантирует нам, что мы найдём именно ту последовательность слов, которая максимизирует P(w1,w2,...wn) для заданного энкодера и декодера.</p>
17 <p>Простейший способ генерировать последовательность - выбирать на каждом шаге самое вероятное слово wt из распределения pt ("<strong>greedy decoding</strong>"). Это, однако, не гарантирует нам, что мы найдём именно ту последовательность слов, которая максимизирует P(w1,w2,...wn) для заданного энкодера и декодера.</p>
18 <p><a>Дополнительные материалы</a></p>
18 <p><a>Дополнительные материалы</a></p>
19 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
19 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
20  
20