Encoder (Transformer) (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

Енкодер (англ. Encoder, кодировщик) — в машинното обучение и дълбокото обучение това е компонент на невронната мрежа, чиято основна задача е да преобразува входната последователност от данни (например текст или изображение) в богато числово представяне, обикновено наричано скрито състояние, контекстен вектор или embedding. Това представяне улавя ключовите характеристики и семантиката на входните данни във форма, удобна за по-нататъшна обработка.

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

Концепция и предназначение

Основната цел на енкодера в невронните мрежи е да извлече полезни признаци от входните данни и да ги „кодира" в плътен вектор с фиксирана дължина. Този процес може да се разглежда като форма на нелинейно намаляване на размерността, при което високоразмерните и разредени входни данни (например текст, представен чрез one-hot вектори) се преобразуват в нискоразмерно, но информационно наситено векторно пространство (латентно пространство).

Този кодиран вектор след това може да бъде използван:

  • От декодера за генериране на нова последователност (например при машинен превод).
  • От класификатора за решаване на задачи за анализ (например определяне на тоналността на текст).
  • За задачи, изискващи разбиране на целия входен контекст.

Енкодер в различни архитектури

Енкодер в автоенкодер

Един от класическите примери е архитектурата на автоенкодера. Той се състои от две части:

  1. Енкодер: Компресира входните данни в скрито представяне с по-малка размерност (латентен код).
  2. Декодер: Опитва се да възстанови изходните данни от това компресирано представяне.

Обучавайки такава мрежа да минимизира грешката при възстановяване, енкодерът се научава да извлича най-важните признаци от данните.

Енкодер в рекурентни невронни мрежи (RNN/LSTM)

Преди появата на архитектурата Transformer, енкодерите в задачите за обработка на последователности (seq2seq) бяха изградени на основата на рекурентни невронни мрежи (RNN) или техния усъвършенстван вариант LSTM.

  • Принцип на работа: RNN-енкодерът обработва входната последователност токен по токен. На всяка стъпка той актуализира своето скрито състояние, включвайки информация за текущия токен и предишното състояние. Крайното скрито състояние, получено след обработка на цялата последователност, се разглежда като вектор, кодиращ смисъла на цялата входна последователност. Този вектор често се нарича контекстен вектор или „вектор на мисълта" (thought vector).

Енкодер в архитектурата Transformer

Революцията в обработката на естествен език е свързана с появата на енкодера на основата на архитектурата Transformer. За разлика от RNN, той обработва всички токени на последователността паралелно.

Енкодерът на Transformer се състои от стек (N) от идентични слоеве. Всеки слой има два основни подслоя:

  1. Многоглавно самовнимание (Multi-Head Self-Attention): Този механизъм позволява на всеки токен във входната последователност да „обръща внимание" на всички останали токени и да претегля тяхната важност за формиране на собственото му контекстуално представяне. Това позволява на модела да улавя сложни зависимости между думите, независимо от тяхното положение.
  2. Напълно свързана невронна мрежа (Feed-Forward Network): Прилага се към представянето на всеки токен поотделно за по-нататъшно нелинейно преобразуване.

Ключовата разлика между енкодера на Transformer и RNN-енкодера е, че на изхода той дава не един контекстен вектор, а последователност от контекстуализирани вектори — по един за всеки входен токен. Всеки такъв вектор съдържа информация за своя токен в контекста на цялата последователност.

Видове модели на основата на енкодер

Модели енкодер-декодер

Това е класическата архитектура за задачи за преобразуване на последователност в последователност (seq2seq), като машинен превод или сумаризация.

  • Принцип на работа: Енкодерът обработва цялата входна последователност (например изречение на изходния език). Неговите изходни представяния след това се предават на декодера, който, използвайки ги, авторегресивно генерира изходната последователност (изречение на целевия език). Декодерът „гледа" към изхода на енкодера чрез специален механизъм на кръстосано внимание (cross-attention).
  • Примери: Оригиналният Transformer, T5, BART.

Модели само-енкодер (Encoder-Only)

Тези модели използват изключително стек от енкодери на Transformer.

  • Принцип на работа: Те са предназначени за задачи, изискващи дълбоко разбиране на контекста на целия входен текст. Благодарение на двупосочната природа на механизма за самовнимание, те създават богати контекстуални представяния за всеки токен.
  • Приложение: Идеални за задачи за анализ и разбиране на езика (NLU), като:
    • Класификация на текст (например анализ на тоналност).
    • Разпознаване на именувани същности (NER).
    • Отговори на въпроси (Question Answering), където отговорът е фрагмент от текста.
  • Пример: BERT и неговите производни (RoBERTa, ALBERT).

Връзка с декодера

В архитектурата енкодер-декодер енкодерът и декодерът изпълняват комплементарни роли:

  • Енкодерът отговаря за разбирането на входната последователност.
  • Декодерът отговаря за генерирането на изходната последователност.

Ключовата връзка между тях е механизмът на кръстосано внимание (cross-attention) вътре в декодера. На всяка стъпка от генерирането декодерът формира заявка (Query) на основата на вече генерираната част от изходната последователност и я използва, за да „обърне внимание" към изходните представяния на енкодера (които служат като ключове и стойности — Key и Value). Това позволява на декодера да се фокусира върху най-релевантните части от входната последователност при генерирането на следващия токен.

Литература

  • Hinton, G. E.; Salakhutdinov, R. R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science. DOI:10.1126/science.1127647.
  • Cho, K. et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. arXiv:1406.1078.
  • Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Bahdanau, D.; Cho, K.; Bengio, Y. (2015). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Kingma, D. P.; Welling, M. (2014). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Dai, Z. et al. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Dosovitskiy, A. et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.

Вижте също

  • BERT