Концепции, которые вы должны знать перед тем, как заняться трансформерами

Концепции, которые вы должны знать перед тем, как заняться трансформерами

Исходный узел: 1894868

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

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

Слова, имеющие одинаковое значение, будут близки с точки зрения евклидова расстояния/косинусного сходства. например, в приведенном ниже представлении слова «суббота», «воскресенье» и «понедельник» связаны с одним и тем же понятием, поэтому мы можем видеть, что слова получаются похожими.
 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer

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

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

Мы попытаемся объяснить позиционное кодирование.

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

Здесь «pos» относится к положению «слова» в последовательности. P0 относится к позиции встраивания первого слова; «d» означает размер встраивания слова/токена. В этом примере d=5. Наконец, «i» относится к каждому из 5 отдельных размеров вложения (т. е. 0, 1,2,3,4, XNUMX, XNUMX, XNUMX).

если «i» варьируется в приведенном выше уравнении, вы получите набор кривых с различными частотами. Считывание значений встраивания положения на разных частотах, дающее разные значения при разных размерах вложения для P0 и P4.

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

В этом запрос, Q представляет собой векторное слово, ключи К все остальные слова в предложении, и значение В представляет собой вектор слова.

Целью внимания является вычисление важности ключевого термина по сравнению с термином запроса, относящимся к тому же человеку/предмету или понятию.

В нашем случае V равно Q.

Механизм внимания дает нам важность слова в предложении.

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

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

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

При вычислении скалярного произведения между Q и KT мы пытаемся оценить, как выровнены векторы (то есть слова между запросом и ключами), и вернуть вес для каждого слова в предложении.

Затем мы нормализуем результат, возведенный в квадрат d_k, и функция softmax упорядочивает термины и изменяет их масштаб между 0 и 1.

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

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

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer

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

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer
 

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

Это говорит модели не обращать внимания на эти слова.

Цель функции softmax — получить действительные числа (положительные и отрицательные) и превратить их в положительные числа, сумма которых равна 1.

 

Понятия, которые вы должны знать, прежде чем приступить к работе с Transformer

 
 
Равикумар Надувин занят созданием и пониманием задач НЛП с использованием PyTorch.

 
Оригинал, Перемещено с разрешения.
 

Отметка времени:

Больше от КДнаггетс