Skip to content

Repository files navigation


Mission

One place to find, run and compare entity-alignment models on DBP15K.

Entity Alignment (EA) research is scattered across dozens of repositories, each with its own data format, training loop and evaluation quirks. EntityAlignment-Nexus brings nine landmark methods together under a single, readable codebase with a shared data layer, shared metrics and a shared trainer pattern, so you can study a method, reproduce its numbers, and compare it to the others without re-learning a new project every time.

Every model ships twice:

  • as an installable package (code/) driven by one YAML config per model, and
  • as a self-contained notebook (Notebook/) that re-implements the whole engine inline, documented cell by cell, so you can read a method top to bottom in one file.

Highlights

Unified & faithful

  • 9 models, 1 data loader, 1 metrics module, 1 trainer pattern
  • DBP15K zh_en / ja_en / fr_en, the standard 30% seed split
  • CSLS, MRR, Hit@1/5/10 reported the same way for everyone

Reproducible & transparent

  • Timestamped run dirs: config snapshot, logs, CSV, checkpoints, curves
  • Paper-level (or above) on several models, gaps documented honestly
  • "Debugging lessons" notes explaining what actually made each model work

The model collection

flowchart LR
    subgraph S["Structural"]
        NAEA["NAEA<br/>IJCAI'19"]
        BootEA["BootEA<br/>IJCAI'18"]
        AliNet["AliNet<br/>AAAI'20"]
        GCN["GCN-Align<br/>EMNLP'18"]
    end
    subgraph R["Relation-aware GNN"]
        KECG["KECG<br/>EMNLP'19"]
        MRAEA["MRAEA<br/>WSDM'20"]
        RREA["RREA<br/>CIKM'20"]
    end
    subgraph A["Side information"]
        JAPE["JAPE<br/>attributes<br/>ISWC'17"]
        DGMC["DGMC<br/>entity names<br/>ICLR'20"]
    end
    DBP["DBP15K"] --> S & R & A
    classDef s fill:#1f6feb,stroke:#58a6ff,color:#fff;
    classDef r fill:#8957e5,stroke:#a371f7,color:#fff;
    classDef a fill:#bf4b8a,stroke:#f778ba,color:#fff;
    class NAEA,BootEA,AliNet,GCN s;
    class KECG,MRAEA,RREA r;
    class JAPE,DGMC a;
Loading
Model Venue Family One-line idea Page
NAEA IJCAI 2019 structural + attention Neighbourhood-aware GAT over translation-consistent messages docs
BootEA IJCAI 2018 structural + bootstrap AlignE TransE + alignment-by-swapping + editable MWGM self-training docs
AliNet AAAI 2020 gated multi-hop GNN 1-hop GCN + attentional 2-hop, fused by a learned gate docs
KECG EMNLP 2019 GNN + TransE Shared diagonal GAT cross-graph + knowledge-embedding loss docs
GCN-Align EMNLP 2018 GCN Functionality-weighted adjacency + shared 2-layer GCN (SE) docs
JAPE ISWC 2017 TransE + attributes Merged-seed TransE fused with a TF-IDF attribute channel docs
DGMC ICLR 2020 name features + GNN GloVe name features + sparse top-k neighbourhood consensus docs
MRAEA WSDM 2020 meta-relation GNN Relation + inverse aware GAT + iterative mutual-NN bootstrap docs
RREA CIKM 2020 relational reflection Householder reflection aggregation + turn-based CSLS bootstrap docs

Results

DBP15K zh_en, 30% seed. Bold = this repo matches or beats the paper. Every value is re-scored from the run's best checkpoint under one protocol (CSLS k=10, both directions averaged). Training curves live in the results page.

Model Hit@1 (paper) Hit@1 (here) Hit@10 (paper) Hit@10 (here) MRR (paper) MRR (here)
NAEA 0.650 0.628 0.867 0.860 0.720 0.711
BootEA 0.629 0.543 0.847 0.851 0.703 0.653
AliNet 0.539 0.513 0.826 0.812 0.628 0.621
KECG 0.477 0.497 0.835 0.855 0.598 0.619
GCN-Align (SE) 0.384 0.363 0.703 0.679 - 0.475
JAPE (SE+AE) 0.412 0.412 0.745 0.751 0.490 0.525
DGMC (names) 0.801 0.753 0.875 0.836 - 0.783
MRAEA (base) 0.638 0.698 0.882 0.923 0.729 0.780
MRAEA (+iter) 0.757 0.747 0.930 0.936 0.827 0.817
RREA (basic) 0.715 0.715 0.929 0.932 0.794 0.794
RREA (semi) 0.801 0.802 0.948 0.946 0.857 0.857

RREA (semi-supervised) is the current top performer in this repo. MRAEA (base) and KECG exceed their published Hit@1 under this protocol.


Quickstart

# 1. install the package (editable)
cd code
pip install -e .

# 2. train any model from its YAML config
python -m src.main --config ../configs/rrea_dbp15k.yaml          # RREA (semi-supervised)
python -m src.main --config ../configs/jape_dbp15k.yaml          # JAPE (SE + attributes)
python -m src.main --config ../configs/dgmc_dbp15k.yaml --lang zh_en   # DGMC (entity names)

# 3. override on the fly
python -m src.main --config ../configs/mraea_dbp15k.yaml --lang fr_en --epochs 2000

Each run writes a timestamped folder (config snapshot, training.txt, loss.csv, metrics.csv, dark-theme curves, checkpoints, embeddings).

Prefer reading over running? Open any notebook in Notebook/ - each one re-implements the full pipeline inline, documented cell by cell.


Repository layout

EntityAlignment-Nexus/
├── code/                  # installable package (pip install -e .)
│   └── src/
│       ├── data.py        # DBP15K loading + graph builders + samplers
│       ├── trainer.py     # all 9 trainers (shared pattern)
│       ├── main.py        # CLI entry point (YAML-driven)
│       ├── models/        # one file per model + its losses
│       └── utils/         # config, logging, metrics (MRR/Hit@k/CSLS), plotting
├── configs/               # one YAML per model
├── Notebook/              # 9 self-contained, documented notebooks
└── docs/                  # MkDocs Material documentation site
#  (training runs are written to a git-ignored experiments/ directory)

Documentation

A full MkDocs Material site (dark + light theme, Mermaid diagrams, math, training curves) covers every model in depth:

pip install -r requirements-docs.txt
mkdocs serve        # live preview at http://127.0.0.1:8000

It is deployed automatically to GitHub Pages on every push to main (see .github/workflows/docs.yml).


Roadmap

The repo is built to grow. Next up: transformer-based entity-alignment models (self-attention encoders, pre-trained language model initialisation, and large-model EA pipelines). See the roadmap for the shortlist and how to propose a model.


Contributing

Contributions are very welcome - a new model, a stronger config, a ja_en/fr_en run, or a doc fix. The shared data.py / trainer.py / metrics.py make adding a model mostly a matter of writing models/<your_model>.py, a trainer and a YAML. See the about page.

Citation

@software{ea_dbp15k,
  title  = {EntityAlignment-Nexus: A Unified Framework of Entity Alignment Models on DBP15K},
  author = {Nadjib ZAHAF},
  year   = {2026},
  url    = {https://github.com/Z-Nadjib/EntityAlignment-Nexus}
}

License

Released under the MIT License. The original papers and the DBP15K benchmark remain the property of their respective authors.

About

A unified, from-scratch PyTorch zoo of 9 entity-alignment models (JAPE, GCN-Align, BootEA, NAEA, KECG, AliNet, MRAEA, RREA, DGMC) reproduced on DBP15K — one data layer, one metrics module, one trainer pattern, with paper-vs-repo results and documented deviations.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages