Graph Attention Networks (GATs) are a popular and state-of-the-art architecture for representation learning on graphs. However, this paper reveals that GATs compute a limited form of attention, which is *static* and unconditioned on the query node. This means that the ranking of attention scores is shared across all nodes in the graph, rather than being specific to each query node. The authors introduce *GATv2*, a modified version of GAT that uses a *dynamic* attention mechanism, which can condition the attention scores on the query node. This modification allows GATv2 to express more complex problems and outperforms GAT in various benchmarks, including synthetic problems and real-world datasets from the Open Graph Benchmark (OGB). The paper provides theoretical foundations for the expressive power of both static and dynamic attention mechanisms and demonstrates the practical benefits of GATv2 through extensive experiments.Graph Attention Networks (GATs) are a popular and state-of-the-art architecture for representation learning on graphs. However, this paper reveals that GATs compute a limited form of attention, which is *static* and unconditioned on the query node. This means that the ranking of attention scores is shared across all nodes in the graph, rather than being specific to each query node. The authors introduce *GATv2*, a modified version of GAT that uses a *dynamic* attention mechanism, which can condition the attention scores on the query node. This modification allows GATv2 to express more complex problems and outperforms GAT in various benchmarks, including synthetic problems and real-world datasets from the Open Graph Benchmark (OGB). The paper provides theoretical foundations for the expressive power of both static and dynamic attention mechanisms and demonstrates the practical benefits of GATv2 through extensive experiments.