Лекция 07

Свёртки, память и внимание

Схема внимания: связи между позициями последовательности
Внимание связывает каждый элемент последовательности с каждым — с разными весами.

MLP не знает, что соседние пиксели связаны, а слова в предложении идут по порядку. Специальные архитектуры вшивают эти индуктивные смещения в сами формулы.

Свёрточная сеть

Двумерная свёртка фильтра \(K\in\mathbb{R}^{k\times k}\) по карте признаков \(X\):

$$(X * K)_{ij} = \sum_{u=0}^{k-1}\sum_{v=0}^{k-1} K_{uv}\, X_{i+u,\, j+v} + b$$

Один и тот же фильтр скользит по всему изображению — веса разделяются. После нескольких свёрток ставят пулинг, например max-pooling:

$$\operatorname{maxpool}(X)_{ij} = \max_{0\le u,v

Глубже по сети растёт рецептивное поле: нейрон «видит» всё большую область исходной картинки.

Рекуррентная сеть

Для последовательности \(\mathbf{x}_1,\dots,\mathbf{x}_T\) скрытое состояние обновляется так:

$$\mathbf{h}_t = \tanh(W_{xh}\mathbf{x}_t + W_{hh}\mathbf{h}_{t-1} + \mathbf{b})$$

LSTM добавляет вентили, чтобы помнить дольше. Ячейка памяти:

$$\begin{aligned} \mathbf{f}_t &= \sigma(W_f[\mathbf{h}_{t-1};\mathbf{x}_t]+\mathbf{b}_f) \\ \mathbf{i}_t &= \sigma(W_i[\mathbf{h}_{t-1};\mathbf{x}_t]+\mathbf{b}_i) \\ \tilde{\mathbf{c}}_t &= \tanh(W_c[\mathbf{h}_{t-1};\mathbf{x}_t]+\mathbf{b}_c) \\ \mathbf{c}_t &= \mathbf{f}_t\odot\mathbf{c}_{t-1} + \mathbf{i}_t\odot\tilde{\mathbf{c}}_t \\ \mathbf{o}_t &= \sigma(W_o[\mathbf{h}_{t-1};\mathbf{x}_t]+\mathbf{b}_o) \\ \mathbf{h}_t &= \mathbf{o}_t\odot\tanh(\mathbf{c}_t) \end{aligned}$$

\(\mathbf{f}_t\) решает, что забыть, \(\mathbf{i}_t\) — что записать, \(\mathbf{o}_t\) — что показать наружу.

Самовнимание

Трансформер не гоняет состояние по времени, а сразу смотрит на всю последовательность. Из эмбеддингов \(X\) получают запросы, ключи и значения:

$$Q=XW_Q,\quad K=XW_K,\quad V=XW_V$$

Масштабированное скалярное внимание:

$$\operatorname{Attention}(Q,K,V) = \operatorname{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}\right)V$$

Деление на \(\sqrt{d_k}\) удерживает дисперсию скалярных произведений около единицы, иначе softmax становится почти one-hot. Много голов считают несколько таких карт параллельно и склеивают результат:

$$\operatorname{MultiHead}(X)=\operatorname{Concat}(H_1,\dots,H_h)W_O$$

Позиции

Без порядка внимание перестановочно-инвариантно. Синусоидальные позиции из исходной статьи:

$$PE_{(pos,2i)}=\sin\!\left(\frac{pos}{10000^{2i/d}}\right), \qquad PE_{(pos,2i+1)}=\cos\!\left(\frac{pos}{10000^{2i/d}}\right)$$
Современные языковые модели — всё те же слои: внимание, нормализация, маленькая MLP. Меняются масштаб, данные и трюки стабилизации, но не сам каркас формул.