Telegram Group & Telegram Channel
3. Сложные модификации Трансформера -- борьба с ограничениями.

Базовых ограничений у Трансформера несколько:
* не может быть контекста длиннее длины входа
* тяжело увеличивать длину входа (attention это квадрат от входа по сложности)
* не Turing Complete
Соответственно, последние полгода народ активно работает над снятием этих ограничений. Тут мне попались такие штуки:

3.1. Universal Transformers, Google, написан в прошлом году, попал на ICLR2019
Статья: https://arxiv.org/abs/1807.03819
Блогопост: https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html
Свежий разбор: http://mostafadehghani.com/2019/05/05/universal-transformers/

Мотивация -- трасформеры не Turing Complete и у трасформеров нет Recurrent Inductive Bias, а оно, говорят, очень полезно для генерализации структуры.
Давайте сделаем реккурентную сеть поверх трансформерной ячейки.

Ячейка -- один энкодерный слой из трансформера, на каждом такте она обрабатывает все входы и выдаёт самой себе выход на следующий шаг.
При этом надо как-то понять когда остановиться -- делаем вычисляемый признак остановки -- отдельный для каждой позиции входа.
Такая конструкция называется Adaptive universal transformer (идея adaptive остновки взята из аналогичных более старых работ про RNN).
Если для какой-то позиции случалась остановка -- стейт этой позиции замораживаем и копируем дальше на входы внимания другим словам на более поздних итерациях.

Утверждается, что UT существенно более эффективен, чем обычный Трансформер на задачах, где мало входных данных.

3.2. Transformer-XL, начало 2019, Google Brain + CMU
Статья: https://arxiv.org/abs/1901.02860
Разбор: https://towardsdatascience.com/transformer-xl-explained-combining-transformers-and-rnns-into-a-state-of-the-art-language-model-c0cfe9e5a924

Боремся с проблемой фиксированной длины входа. Transformer-XL это модификация LM over vanilla Transformer, позволяющая откусить больше, чем в рот помещается. Полезная для понимания схема -- ниже.
Логика простая:
* Пусть у нас есть допустимый вход длины Х. И входное предложение длины Y>X.
* Порежем входное предложение на куски длины Х.
* Первый кусок пропустим как обычно, но будем сохранять промежуточные стейты.
* Дальше будем обрабатывать следующий кусок, плюс подавать на вход ещё и стейты с предыдущего куска (и запоминать новые).
Такая схема позволяет, сохраняя историю стейтов равную высоте стэка, имитировать длинное окно входа. Это не совсем честно, т.к. градиент на прошлый кусок уже не уйдёт, но всё равно не так плохо. Есть ещё одна загвоздка -- в оригинальном Трансформере у нас есть абсолютное позиционное кодирование. Здесь вместо него предлагается использовать относительное: при расчёте внимания со слова в позиции А на слово в позиции В считать вес внимания отдельно по совпадению Query/Key (без позиционного сигнала) + часть веса добавлять как функицю от разности (В-А). И такую конструкцию, в отличие от оригинального Трансформера, следует делать на каждом слое сети.

Показано, что такой подход даёт SOTA на задачах, где нужно держать длинный контекст.



group-telegram.com/gonzo_ML/62
Create:
Last Update:

3. Сложные модификации Трансформера -- борьба с ограничениями.

Базовых ограничений у Трансформера несколько:
* не может быть контекста длиннее длины входа
* тяжело увеличивать длину входа (attention это квадрат от входа по сложности)
* не Turing Complete
Соответственно, последние полгода народ активно работает над снятием этих ограничений. Тут мне попались такие штуки:

3.1. Universal Transformers, Google, написан в прошлом году, попал на ICLR2019
Статья: https://arxiv.org/abs/1807.03819
Блогопост: https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html
Свежий разбор: http://mostafadehghani.com/2019/05/05/universal-transformers/

Мотивация -- трасформеры не Turing Complete и у трасформеров нет Recurrent Inductive Bias, а оно, говорят, очень полезно для генерализации структуры.
Давайте сделаем реккурентную сеть поверх трансформерной ячейки.

Ячейка -- один энкодерный слой из трансформера, на каждом такте она обрабатывает все входы и выдаёт самой себе выход на следующий шаг.
При этом надо как-то понять когда остановиться -- делаем вычисляемый признак остановки -- отдельный для каждой позиции входа.
Такая конструкция называется Adaptive universal transformer (идея adaptive остновки взята из аналогичных более старых работ про RNN).
Если для какой-то позиции случалась остановка -- стейт этой позиции замораживаем и копируем дальше на входы внимания другим словам на более поздних итерациях.

Утверждается, что UT существенно более эффективен, чем обычный Трансформер на задачах, где мало входных данных.

3.2. Transformer-XL, начало 2019, Google Brain + CMU
Статья: https://arxiv.org/abs/1901.02860
Разбор: https://towardsdatascience.com/transformer-xl-explained-combining-transformers-and-rnns-into-a-state-of-the-art-language-model-c0cfe9e5a924

Боремся с проблемой фиксированной длины входа. Transformer-XL это модификация LM over vanilla Transformer, позволяющая откусить больше, чем в рот помещается. Полезная для понимания схема -- ниже.
Логика простая:
* Пусть у нас есть допустимый вход длины Х. И входное предложение длины Y>X.
* Порежем входное предложение на куски длины Х.
* Первый кусок пропустим как обычно, но будем сохранять промежуточные стейты.
* Дальше будем обрабатывать следующий кусок, плюс подавать на вход ещё и стейты с предыдущего куска (и запоминать новые).
Такая схема позволяет, сохраняя историю стейтов равную высоте стэка, имитировать длинное окно входа. Это не совсем честно, т.к. градиент на прошлый кусок уже не уйдёт, но всё равно не так плохо. Есть ещё одна загвоздка -- в оригинальном Трансформере у нас есть абсолютное позиционное кодирование. Здесь вместо него предлагается использовать относительное: при расчёте внимания со слова в позиции А на слово в позиции В считать вес внимания отдельно по совпадению Query/Key (без позиционного сигнала) + часть веса добавлять как функицю от разности (В-А). И такую конструкцию, в отличие от оригинального Трансформера, следует делать на каждом слое сети.

Показано, что такой подход даёт SOTA на задачах, где нужно держать длинный контекст.

BY gonzo-обзоры ML статей


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/gonzo_ML/62

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

Telegram was founded in 2013 by two Russian brothers, Nikolai and Pavel Durov. Telegram was co-founded by Pavel and Nikolai Durov, the brothers who had previously created VKontakte. VK is Russia’s equivalent of Facebook, a social network used for public and private messaging, audio and video sharing as well as online gaming. In January, SimpleWeb reported that VK was Russia’s fourth most-visited website, after Yandex, YouTube and Google’s Russian-language homepage. In 2016, Forbes’ Michael Solomon described Pavel Durov (pictured, below) as the “Mark Zuckerberg of Russia.” "There are a lot of things that Telegram could have been doing this whole time. And they know exactly what they are and they've chosen not to do them. That's why I don't trust them," she said. In the United States, Telegram's lower public profile has helped it mostly avoid high level scrutiny from Congress, but it has not gone unnoticed. Soloviev also promoted the channel in a post he shared on his own Telegram, which has 580,000 followers. The post recommended his viewers subscribe to "War on Fakes" in a time of fake news.
from no


Telegram gonzo-обзоры ML статей
FROM American