R-Transformer: Recurrent Neural Network Enhanced Transformer
Zhiwei Wang, Yao Ma, Zitao Liu, Jiliang Tang
Статья: https://arxiv.org/abs/1907.05572
Код: https://github.com/DSE-MSU/R-transformer
Ещё вариация на тему трансформера -- химера с RNN.
Трансформер, как известно, хорош возможностью ловить глобальные зависимости (ну, в пределах своего attention span, конечно), но в целом не очень умеет эффективно моделировать локальные структуры. Рекуррентные сетки хороши в моделировании последовательностей вообще (в трансформеры для этого приходится добавлять позиционные эмбеддинги, иначе ему пофиг про порядок, он смотрит на всё) и локальной структуры в частности (по идее для этого и свёрточные тоже хороши, а у трансформера также есть вариант с относительными позиционными эмбеддингами).
Решение простое: давайте постороим гибрид, где сначала будет left-to-right RNN с ограниченным окном (здесь она называется LocalRNN), а поверх её эмбеддингов будет уже работать трансформер (никаких позиционных эмбеддингов уже не используем). LocalRNN имеет шаринг весов для всех позиций.
В работе рассматривают не полный кейс с seq2seq, а моделирование последовательности (смотрим только влево на предыдущий контекст, вправо не смотрим).
По мне, честно говоря, непонятно, почему здесь нельзя точно так же было свёртки вставить, и авторы пишут, что это в общем аналогично одномерной свёртке, но свёртка, мол, игнорирует информацию о последовательности внутри окна (что мне кажется, фигня). Как минимум было бы интересно проверить. Плюс, свёртки быстрее будут считаться.
Построили, получили более хороший результат, чем у обычного трансформера.
Среди прочего сравниваются со свёрточной TCN (temporal convolutional network, малоизвестная, но с хорошими способностями, она отсюда: https://arxiv.org/abs/1803.01271) Про ней пишут, что TCN тоже локальную информацию о последовательности игнорирует. Спорно, мне кажется.
Следующим гибридом просится CNN-RNN-Transformer. Ибо гибриды CNN-LSTM вполне хорошо работают.
Zhiwei Wang, Yao Ma, Zitao Liu, Jiliang Tang
Статья: https://arxiv.org/abs/1907.05572
Код: https://github.com/DSE-MSU/R-transformer
Ещё вариация на тему трансформера -- химера с RNN.
Трансформер, как известно, хорош возможностью ловить глобальные зависимости (ну, в пределах своего attention span, конечно), но в целом не очень умеет эффективно моделировать локальные структуры. Рекуррентные сетки хороши в моделировании последовательностей вообще (в трансформеры для этого приходится добавлять позиционные эмбеддинги, иначе ему пофиг про порядок, он смотрит на всё) и локальной структуры в частности (по идее для этого и свёрточные тоже хороши, а у трансформера также есть вариант с относительными позиционными эмбеддингами).
Решение простое: давайте постороим гибрид, где сначала будет left-to-right RNN с ограниченным окном (здесь она называется LocalRNN), а поверх её эмбеддингов будет уже работать трансформер (никаких позиционных эмбеддингов уже не используем). LocalRNN имеет шаринг весов для всех позиций.
В работе рассматривают не полный кейс с seq2seq, а моделирование последовательности (смотрим только влево на предыдущий контекст, вправо не смотрим).
По мне, честно говоря, непонятно, почему здесь нельзя точно так же было свёртки вставить, и авторы пишут, что это в общем аналогично одномерной свёртке, но свёртка, мол, игнорирует информацию о последовательности внутри окна (что мне кажется, фигня). Как минимум было бы интересно проверить. Плюс, свёртки быстрее будут считаться.
Построили, получили более хороший результат, чем у обычного трансформера.
Среди прочего сравниваются со свёрточной TCN (temporal convolutional network, малоизвестная, но с хорошими способностями, она отсюда: https://arxiv.org/abs/1803.01271) Про ней пишут, что TCN тоже локальную информацию о последовательности игнорирует. Спорно, мне кажется.
Следующим гибридом просится CNN-RNN-Transformer. Ибо гибриды CNN-LSTM вполне хорошо работают.