Skip to content

9. Pozornostní mechanismy (attention)

Definice

  • Attention mechanismus napodobuje kognitivní pozornost, díky které jsou určité důležité části dat zvýrazněny a naopak méně důležité části jsou potlačeny. Detekce regionů, kterým je vhodné věnovat větší pozornost, záleží na kontextu a je třeba modely na jejich identifikaci trénovat.

Otázky

Co je attention v textu, obrazu?

Attention v textu

  • Při zpracování textu se bude pozornostní mechanismus zaměřovat na důležitá a více vypovídající slova. Nemá smysl dávat důraz spojkám a velmi běžným slovům, které nám nepřidávají dostatečnou informaci.

Attention v obrazu

  • Při zpracování obrazu se pozornostní mechanismus zaměřuje na regiony v obraze, které obsahují důležité příznaky pro rozpoznání obrazu či jeho popis. Nemá smysl se zaměřovat na nějaké generické pozadí.

Jak se implementuje v autoencoderech?

Attention

  • Pridame attention bloky do dekodéru, v attention bloku: dopředná + softmax vrstva co nám říká co ma jakou váhu
  • V autoencoderech je attention implementován attention blokem v decoderu: Vnitřní stav encoderu (plus předchozí výstup decoderu pro RNN autoencoder) se pošle do attention bloku, kde projde FC vrstvou a softmax výstup určuje důležitost vstupů do decoderu.
  • Pro seq2seq překlady se používá alignment model, který vytvoří kontextový vektor tak, že čím více spolu souvisí vstup na i-té pozici a výstup na j-té pozici, tím větší bude parametr alfa_i,j. Tento kontextový vektor pak spolu s předchozím výstupem decoderu a vnitřním stavem encoderu určuje následující výstup decoderu.
  • Matici těchto alignment scores lze vizualizovat a znázornit tak korelaci vstupních a výstupních vektorů (např. slov v angličtině a jejich přeloženým ekvivalentům ve francouzštině).
  • Matici těchto alignment scores lze vizualizovat a znázornit tak korelaci vstupních a výstupních vektorů (např. slov v angličtině a jejich přeloženým ekvivalentům ve francouzštině). seq2seq-attention.png

Co znamena self-attention?

  • Self-attention
    • Je případ kdy values a keys jsou stejné a tedy hledáme relevanci různých pozic jedné a té samé sekvence.
    • Toto může být užitečně pokud v rámci jedné věty hledáme slova, která odkazují na stejný objekt.
  • Global/Soft attention
    • Bere v potaz celý vstupní prostor, všechny attentiony se předají dál.
  • Local/Hard attention
    • Bere v potaz jen lokální region (např. patch v obrázku), pravděpodobnost že se zaměří na konkrétní část může být dána její relevancí (attention score).

Jake jsou výhody oproti RNN?

  • Výhodou použití attentionu je, že se model může soustředit na části vstupu, které mu nejlépe pomohou splnit vykonat svůj úkol.
  • Nevýhodou je, že model ma vyšší výpočetní složitost (model má více parametrů).