group-telegram.com/gonzo_ML/404
Last Update:
Rethinking Attention with Performers
Krzysztof Choromanski, Valerii Likhosherstov, David Dohan, Xingyou Song, Andreea Gane, Tamas Sarlos, Peter Hawkins, Jared Davis, Afroz Mohiuddin, Lukasz Kaiser, David Belanger, Lucy Colwell, Adrian Weller
Статья: https://arxiv.org/abs/2009.14794
Код: https://github.com/google-research/google-research/tree/master/performer
Свеженький Performer, которому ещё недели не исполнилось, от сборной команды Гугла, DeepMind, Университета Кэмбриджа и Института Алана Тьюринга.
Окей, ладно, в реальности он появился ещё в июне в другой статье с названием “Masked Language Modeling for Proteins via Linearly Scalable Long-Context Transformers” (https://arxiv.org/abs/2006.03555), но она объявлена deprecated, так что он всё равно обновился (как минимум, добавился + к методу FAVOR).
Цель всё та же — заменить стандартное квадратичное внимание трансформера чем-то линейным. Но хочется это сделать так, чтобы точность была гарантирована, и при этом не полагаться на какие-то прайоры типа разреженности или низкоранговости.
Куча модификаций трансформера, также целящихся в его ускорение, не имеют целью аппроксимировать стандартное [софтмакс] внимание, а скорее предлагают более специфические механизмы внимания, часто за счёт дополнительных ограничений. Эти методы как правило без строгих гарантий относительно representational power и проверить их часто можно лишь эмпирически. Есть группа оптимизаций лишь по части памяти (обратимые слои или шаренные веса), но они не про аппроксимацию внимания. Из идейно близкого будет Linformer (https://www.group-telegram.com/br/gonzo_ML.com/397), но его оценка внимания смещённая и он даёт большую среднеквадратичную ошибку.
Авторы предложили новый интересный подход под названием FAVOR+: Fast Attention Via positive Orthogonal Random features. В двух словах он даёт качество полноценного механизма внимания (с теоретическими гарантиями), но с линейной сложностью!
Сначала про FA (Fast Attention). Здесь используются ядерная функция (kernel) от рандомизированного мэппинга φ(x) фич размерности d в размерность r. Авторы предлагают вид φ(x) такой, что через него можно смоделировать большинство ядер, используемых на практике (Гауссово, софтмакс, PNG-ядра).
В частности для софтмакса получают несмещённую аппроксимацию через тригонометрические функции (sin, cos). Но с ними засада — рандомный маппинг с потенциально отрицательными значениями ведёт к нестабильному поведению, особенно когда ядро близко к нулю. Авторы взамен предлагают устойчивый механизм с положительными рандомными фичами. Это про R+ часть.
И наконец в фичи добавляют ортогональность, это ещё уменьшает дисперсию оценки софтмакса внимания. Это O-часть метода.
Желающие могут проверить предложенную теорию положительных ортогональных случайных фич, есть доказательства разных интересных свойств.
Далее идут эксперименты, где в стандартном трансформере заменяют механизм внимания на предложенный, оставляя всё остальное как есть (такой вот drop-in replacement). Получают линейное время и субквадратичную память. Кроме того, показывают, что и ортогональные и положительные фичи дают меньшую ошибку в реконструкции внимания, чем IID и тригонометрические.Также на разных задачах (например, на белковом TrEMBL) показывают, что в целом перформанс Performer’а соответствует нормальному трансформеру, чего не скажешь о перформансе Linformer’а или Reformer’а (https://www.group-telegram.com/br/gonzo_ML.com/176).
Отдельный интерес — датасеты с длинными последовательностями, на которых обычный трансформер даже не посчитаешь. 6-слойный Performer равносилен 12-слойному Reformer’у, аналогично с 12/24 слоями.
Работа изначально делалась с прицелом на биологические последовательности, что очень круто. Кажется, наконец, появился прямо таки заточенный на биоинформатику трансформер!
История эта скорее всего сильно больше, чем только про трансформеры. Наверняка, оно будет полезно и в куче других мест с механизмами внимания. Большое поле для деятельности. Ну и тема про рандомные фичи, думаю, ещё не раз себя покажет с интересных сторон.
BY gonzo-обзоры ML статей
Share with your friend now:
group-telegram.com/gonzo_ML/404