Enhancements
Inductive Models and Datasets
Representations
PyKEEN v1.11.1 introduces several new representations to support scenarios when you can bring your own featurization (such as chemical fingerprints in the cheminformatics domain)
- 🪫🔈 Generalize low-rank representation by @mberr in #1509
- 👩👩👧👦⛽ Add Multi-backfill representation by @mberr in #1507
- ✨✨ Add feature-enriched embedding and MLP-transformed representation by @cthoyt in #1511
- ➕🎒 Add embedding bag representation by @mberr in #1512
Loss Weights
PyKEEN v1.11.1 introduces loss weights, which influence how much a given triple is weighted in the loss function. They are primarily a tool to shape your optimization criterion, i.e., what you optimize your embedding models on. For example, you may want to focus more or less on certain types of triples because they are more or less important for your application. You can also use loss weights to counteract imbalances in relation frequencies, i.e., to down-weight frequent relation types.
More information at: https://pykeen.readthedocs.io/en/latest/reference/loss_weighting.html
- 🔓⚖️ Expose pos_weight for BCEWithLogitsLoss by @mberr in #1525
- 💸🏋Loss weights by @mberr in #1529
- 🦍🍌 Training with sample weights by @mberr in #1532
- 💸❇️ Basic loss weights by @mberr in #1534
Misc
- 👾🍉 Add custom error for
max_id
mismatch in representations by @cthoyt in #1508 - 🔢✅ Check maximum in
base_ids
in BackfillRepresentation by @chartsNgraphs in #1499 - ⏩#️⃣ Forward max_id to adapted representations by @mberr in #1528
Removals
Fixes
- 🧑🔧🪓 Fix inductive split by @mberr in #1516
- 🧑🔧⛓️💥 Fix dataset restrict by @mberr in #1495
- ⏱️🧺 Fix Caching Test by @mberr in #1497
- 🍍🐉 Fix Slicing and Explicit Target Indices by @mberr in #1485
- 🧹🚯 Fix unused variables by @mberr in #1486
Documentation
- 🎓🚊 Add a concrete example in "Using learned embeddings" tutorial by @Str1ien in #1518
- 🏴☠️❇️ Update inductive NodePiece example by @mberr in #1503
- 🤝🌐 Update resolvers and docs by @cthoyt in #1479
- 🧑🏫📖 Update Tutorial on Representations by @mberr in #1478
↔️ 🧑🏫 Interaction Function Tutorial by @mberr in #1484- 🔙🫗 Update backfill example by @mberr in #1493
- 📚🎁 Update tokenization section of representation tutorial by @mberr in #1515
Meta
- 🤖🔓 GHA: Also run on pull_request_target by @mberr in #1522
- 🧽✨ Support torch 2.6 by @mberr in #1494
- 🐕 🧹 Apply ruff v0.9.4 and limit torch <2.6 by @cthoyt in #1496
- 🛁 🐍 Minor cleanup and quality-of-life improvements by @mberr in #1504
- 🐍 🆙 Update minimum python version to 3.10 by @cthoyt in #1481
Testing
- Regression tests for loss functions by @mberr in #1530
- #️⃣⏬ Store regression targets with lower than machine precision by @mberr in #1531
Typing and Code Style
- ⌨️⚙️ Update typing and project config by @cthoyt in #1535
- ⌨️⚙️ Update numpy type checking by @cthoyt in #1537
- 🔁🧼 Refactor typing in
repeat_if_necessary()
andModel._get_entity_len()
by @cthoyt in #1536 - Ruff and MyPy fixes by @cthoyt in #1526
- 🦩🫧 Fixes FunctionResolver type annotations by @cthoyt in #1540
- 🪢🪛 Fix type annotations for entity/relation to ID mapping by @mberr in #1521
- 🧹🏷️ Add Missing Model Types by @mberr in #1483
- 📚 🧼 Format docstrings by @cthoyt in #1502
New Contributors
- @chartsNgraphs made their first contribution in #1499
- @Str1ien made their first contribution in #1518
Full Changelog: v1.11.0...v1.11.1