Какие знаешь виды attention в нейросетях, кроме тех, что используются в трансформерах
-
Self-Attention (внутреннее внимание) — механизм, где каждый элемент последовательности взаимодействует с другими элементами той же последовательности (как в трансформерах).
-
Global Attention — все элементы входной последовательности учитываются при расчете весов внимания (аналогично self-attention, но может применяться вне трансформера).
-
Local Attention — ограничивает область внимания окном вокруг текущего элемента, уменьшая вычислительную сложность.
-
Hard Attention — бинарный механизм, выбирающий только один элемент для фокусировки (недифференцируем, требует методов вроде REINFORCE).
-
Soft Attention — дифференцируемый аналог hard attention, взвешивает все элементы (как в трансформерах).
-
Hierarchical Attention — применяет внимание на нескольких уровнях (например, сначала к словам, затем к предложениям).
Пример кода для local attention (PyTorch):
import torch
import torch.nn.functional as F
def local_attention(q, k, v, window_size=3):
scores = torch.matmul(q, k.transpose(-2, -1))
mask = torch.ones_like(scores) * -1e9
center = scores.size(-1) // 2
start = max(0, center - window_size)
end = min(scores.size(-1), center + window_size + 1)
mask[:, :, start:end] = 0
scores = scores + mask
weights = F.softmax(scores, dim=-1)
return torch.matmul(weights, v)
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру