# bilinear_attention

allennlp.modules.attention.bilinear_attention

[SOURCE]

## BilinearAttention¶

``````@Attention.register("bilinear")
class BilinearAttention(Attention):
| def __init__(
|     self,
|     vector_dim: int,
|     matrix_dim: int,
|     activation: Activation = None,
|     normalize: bool = True
| ) -> None
``````

Computes attention between a vector and a matrix using a bilinear attention function. This function has a matrix of weights `W` and a bias `b`, and the similarity between the vector `x` and the matrix `y` is computed as `x^T W y + b`.

Registered as an `Attention` with name "bilinear".

#### Parameters¶

• vector_dim : `int`
The dimension of the vector, `x`, described above. This is `x.size()[-1]` - the length of the vector that will go into the similarity computation. We need this so we can build the weight matrix correctly.
• matrix_dim : `int`
The dimension of the matrix, `y`, described above. This is `y.size()[-1]` - the length of the vector that will go into the similarity computation. We need this so we can build the weight matrix correctly.
• activation : `Activation`, optional (default = `linear`)
An activation function applied after the `x^T W y + b` calculation. Default is linear, i.e. no activation.
• normalize : `bool`, optional (default = `True`)
If true, we normalize the computed similarities with a softmax, to return a probability distribution for your attention. If false, this is just computing a similarity score.

### reset_parameters¶

``````class BilinearAttention(Attention):
| ...
| def reset_parameters(self)
``````