​​Внимание — все, что вам нужно: как работает attention в нейросетях

#knowhow



Мы продолжаем серию постов об устройстве нейронных сетей. В прошлом материале «Системный Блокъ» рассказывал о том, зачем нужны рекуррентные нейросети (RNN), что такое рекуррентность и как добавить нейросети долгосрочной памяти.



Сегодня рассказываем о механизме внимания, на котором работают в 2020 году все действительно крутые нейросети. Почему внимание стало killer-фичей диплернинга, что под капотом у attention mechanism, как нейросеть понимает, какие признаки текста или картинки важнее других.



У применения RNN в области обработки и понимания естественного языка есть три основные проблемы:

1. RNN работает медленно и недостаточно эффективно;

2. RNN учитывает только прошлый контекст, а не все предложение;

3. в RNN контекст со временем размывается.



Чтобы решить вторую проблему, используют двунаправленную RNN. Она обрабатывает предложение один раз слева направо, другой раз — справа налево, и только потом начинает предсказывать.



А механизм внимания решает третью проблему. Его цель — заставить нейросеть сильнее сосредоточиться на важном слове в дальнем конце предложения. Контекст — это сумма векторов всех слов в предложении. «Подсветить» важное слово в контексте — значит умножить его вектор на большое число («вес внимания»). Чтобы понять, какое слово сейчас важно, потребуется еще одна нейросеть (внутри нейросети).



О чем рассказываем в статье:



— Какие бывают типы рекуррентных архитектур

— Чем хороша архитектура «энкодер — декодер» для машинного перевода

— Как работает двунаправленная RNN

— В чем заключается идея механизма внимания

— Как сделан механизм внимания в энкодере

— Как сделан механизм внимания в декодере

— Как получить вес внимания и понять, что на самом деле важно «запомнить»

— Как работает функция активации Softmax



https://sysblok.ru/knowhow/vnimanie-vse-chto-vam-nuzhno-kak-rabotaet-attention-v-nejrosetjah/