You could have invented transformers from memory
Память можно рассматривать как хранилище пар «ключ — значение»: ключ служит для поиска по схожести, значение — то, что нужно вспомнить. Главная характеристика хорошей памяти — способность вспоминать, а не просто хранить: чем больше записей, тем сильнее они мешают друг другу при извлечении. Отношение помехи к сигналу определяет ёмкость — сколько воспоминаний удерживается, пока помеха не сравняется с сигналом.
Простейшее линейное хранилище накапливает воспоминания через внешние произведения матрицы значений и ключей, а запрос — это поиск по схожести со всеми ключами сразу. Оказывается, шаг градиентного спуска в линейном слое — это тоже запись воспоминания с ключом-входом и значением-градиентом. Но линейная память ограничена: при 64-мерных ключах она держит около 64 воспоминаний.
Дальше ёмкость резко растёт: многослойный перцептрон с нелинейностью (ReLU гасит половину помех, снижая их в корень из двух раз) поднимает предел примерно до 2700, а самовнимание с нормировкой схожести хранит потенциально неограниченное число воспоминаний — свыше миллиона. Так от линейного слоя через перцептрон к вниманию выстраивается единая лестница роста памяти.