8
$\begingroup$

I am new to transformers, so this may be a silly question, but I was reading about transformers and how they use attention, and it involves the usage of three special vectors. Most articles say that one will understand their purpose after reading about how they are used for attention. I believe I understand what they do, but I'm unsure about how they are created.

I'm aware that they come from the multiplication of the input vector by three corresponding weights, but I'm not sure how these weights are derived. Are they chosen at random and trained like a standard neural network, and if so how if there's no predefined attention data in the training corpus?

I'm very new to this, so I hope everything I'm saying makes sense. If I've got something completely wrong, please tell me!

$\endgroup$

3 Answers 3

5
$\begingroup$

These matrices are not learned parameters but are a result of previous (yet parameterized) computations. In self-attentive layers, are all three of them the same, they are the outputs of the previous layers. In encoder-decoder attention, the queries are decoder states from the previous layer, keys and values and the encoder states.

In Equation 1 of the Attention is all you need paper, these are just parameters that come from outside:

enter image description here

It just says, what do you do, if get some queries, keys, and values from somewhere outside. This also the case of the unnumbered equation on top of page 5. Here, you only project the keys, queries, and values for the heads of multiple attentions.

enter image description here

Here $W_i^Q$, $W_i^K$, and $W_i^V$ are learnable parameters and they learned by the standard back-propagation algorithm.

Note that although keys and values (and queries in the self-attention) are equal only at the input of the $\text{Multihead}$ function. The $\text{Attention}$ function already gets the projected states.

$\endgroup$
1
  • $\begingroup$ Thank you so much! That really helps, but at what stage are the weights trained? And wouldn't that backpropagation interfere with that of the rest of the system? Is there not other backpropagation elsewhere? $\endgroup$ Feb 17, 2020 at 19:34
4
$\begingroup$

Q, K, V vectors are trained with standard backpropagation. All trainable parameters are initialized at random, and then adjusted step by step with a Gradient Descent algorithm.

Surprisingly, they are trained just as any standard ANN! It's pretty amazing what they can achieve with such a classical trick.

$\endgroup$
2
  • 1
    $\begingroup$ Hi @Leevo, do you mean the WQ, WK, WV or you mean the component values of Q, K, V themselves? $\endgroup$
    – EyeQ Tech
    Feb 25 at 16:51
  • $\begingroup$ hi, you're right let's make a distinction. Let's call Q, K, V the input tensors of the Attention mechanism. They are external inputs. As a first step, they are pushed through a linear Dense layer, we can call their outputs WQ, WK, WV. This passage is done via trained weights. Thanks for pointing that out, now it's more clear. $\endgroup$
    – Leevo
    Mar 20 at 21:19
2
$\begingroup$

As Jindřich has said, Q, K, V come from previous computations, they are not trained directly with backpropagation. However, the weights $W_i^Q, W_i^K, W_i^V$ are trained directly with backpropagation.

Expanding on this, in the "Attention is all you need paper", in the self attention used by the encoder and decoder, Q, K, V are the same matrix.

If we just look at the self attention in the encoder, in the first layer Q, K, V are the representation of the input sentence, after the embedding and positional encoding steps. The number of rows in these matrices is equal to the number of tokens in the input sequence, and the number of columns is based on the architecture (it's 64 in the paper). The outputs from the first encoder layer are then used as Q, K, V for the next layer (again these are all the same matrix).

The decoders attention self attention layer is similar, however the decoder also contains attention layers for attending to the encoder. For this attention, the Q matrix comes the decoders self-attention, and K,V are the outputs of the final encoder layer.

$\endgroup$
1
  • 1
    $\begingroup$ I am not sure if i understand correctly, if in self-attention, Q==K==V, and Q, K, V are calculated based off W^q, W^k, W^v, does that mean W^q==W^k==W^v? $\endgroup$
    – shelper
    Oct 18, 2021 at 2:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.