esa-graph-encoder / README.md
Juan Viguera Diez
Fixed some default hyper-parameters
0ba40c2
|
Raw
History Blame Contribute Delete
2.36 kB
---
license: mit
tags:
- graph-neural-network
- attention
- molecular-property-prediction
- chemistry
---
# ESA — Edge-Set Attention
Graph encoder from the paper [An end-to-end attention-based approach for learning on graphs](https://www.nature.com/articles/s41467-025-56067-5) (Buterez et al., Nature Communications 2025).
ESA treats edges (or nodes) as a set and applies masked multi-head attention over them, encoding graph structure as an attention bias mask. No message-passing, no PyG required at inference time.
## Usage
```python
from transformers import AutoModel, AutoConfig
model = AutoModel.from_pretrained("viguera10/esa-graph-encoder", trust_remote_code=True)
# Inputs are plain PyTorch tensors
import torch
# Two molecules batched together:
# mol0: 4 nodes, edges 0->1, 1->2, 2->3 (and reverse)
# mol1: 3 nodes, edges 0->1, 1->2 (and reverse)
node_features = torch.randn(7, 84) # total 7 nodes, 84 node features (ChemProp one-hot)
edge_index = torch.tensor([ # global node indices
[0,1,1,2,2,3, 4,5,5,6],
[1,0,2,1,3,2, 5,4,6,5],
])
edge_attr = torch.randn(10, 14) # 10 edges, 14 edge features (ChemProp one-hot)
batch_mapping = torch.tensor([0,0,0,0, 1,1,1]) # node -> graph id
output = model(
node_features=node_features,
edge_index=edge_index,
batch_mapping=batch_mapping,
edge_attr=edge_attr,
)
# output.last_hidden_state: Tensor[2, 256] — one embedding per graph
```
## Configuration
Key parameters in `config.json`:
| Parameter | Description |
|---|---|
| `apply_attention_on` | `"edge"` (ESA) or `"node"` (NSA) |
| `hidden_dims` | Feature dimension at each layer |
| `num_heads` | Attention heads at each layer |
| `layer_types` | Sequence of `"S"` (SAB), `"M"` (masked SAB), `"P"` (PMA pooling) |
| `dim_output` | Dimension of the output graph embedding |
| `xformers_or_torch_attn` | `"torch"` (default) or `"xformers"` |
## Citation
```bibtex
@Article{Buterez2025,
author={Buterez, David
and Janet, Jon Paul
and Oglic, Dino
and Li{\`o}, Pietro},
title={An end-to-end attention-based approach for learning on graphs},
journal={Nature Communications},
year={2025},
month={Jun},
day={05},
volume={16},
number={1},
pages={5244},
issn={2041-1723},
doi={10.1038/s41467-025-60252-z},
url={https://doi.org/10.1038/s41467-025-60252-z}
}
```