Vertel in detail over multi-head attention: wat zijn Q/K/V, hoe worden de aandachtgewichten berekend, waarom meerdere hoofden.
sobes.tech AI
Antwoord van AI
Multi-head attention — is een belangrijk mechanisme in transformers dat het model in staat stelt zich tegelijkertijd op verschillende delen van de invoerreeks te richten.
-
Q (Query), K (Key), V (Value) — dit zijn drie matrices die worden verkregen uit de invoergegevens via trainbare lineaire transformaties. Elke positie in de reeks wordt omgezet in drie vectoren:
- Query — de query waarmee relevante informatie wordt gezocht.
- Key — de sleutel waarmee de query wordt vergeleken.
- Value — de waarde die wordt geretourneerd als antwoord op de query.
-
Berekening van de aandachtgewichten:
- Het scalair product tussen Query en Key wordt voor elk paar posities berekend.
- Het resultaat wordt geschaald (meestal gedeeld door de wortel van de dimensie van de sleutels) om de gradiënten te stabiliseren.
- Softmax wordt toegepast om een probabilistische verdeling van de gewichten te verkrijgen.
- De gewichten worden vermenigvuldigd met de bijbehorende Values, en de resultaten worden opgeteld — dit is de output van de aandacht.
-
Waarom meerdere hoofden (multi-head)? Meerdere hoofden stellen het model in staat om informatie vanuit verschillende "hoeken" te bekijken, dat wil zeggen dat elke kop leert verschillende afhankelijkheden en patronen in de data te benadrukken. Dit verhoogt de uitdrukkingskracht en de kwaliteit van het model.
Voorbeeld vereenvoudigd:
# Voor elke kop:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
attention_weights = softmax((Q_i @ K_i.T) / sqrt(d_k))
output_i = attention_weights @ V_i
# Combineer de outputs van alle hoofden
output = concat(output_1, ..., output_h) * W_O
Waar W_Q_i, W_K_i, W_V_i, W_O trainbare matrices zijn, d_k de dimensie van de sleutels, en h het aantal hoofden.