diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 8106639201..f4bde1bc3f 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.4.1-dev +current_version = 1.5.0-dev commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P\d+)(?:-(?P[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+(?P[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))? diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000000..acd8f99504 --- /dev/null +++ b/.mailmap @@ -0,0 +1,8 @@ +Laurent Vermue Laurent Vermue +Laurent Vermue Laurent Vermue +Daniel Domingo-Fernández ddomingof +Daniel Domingo-Fernández daniel.domingo.fernandez +Mehdi Ali mali +Mehdi Ali Mehdi Ali <33023925+mali-git@users.noreply.github.com> +Anna Breit anna +Sahand Sharifzadeh diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2272188618..620d3d468a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,8 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on `Keep a Changelog `_ and this project adheres to `Semantic Versioning `_ -`Unreleased `_ +`Unreleased `_ ----------------------------------------------------------------------- + +`1.5.0 `_ - 2021-06-13 +-------------------------------------------------------------------------------- New Metrics ~~~~~~~~~~~ - Adjusted Arithmetic Mean Rank Index (https://github.com/pykeen/pykeen/pull/378) @@ -22,32 +25,60 @@ New Models - QuatE (https://github.com/pykeen/pykeen/pull/367) - CompGCN (https://github.com/pykeen/pykeen/pull/382) - CrossE (https://github.com/pykeen/pykeen/pull/467) +- Reimplementation of LiteralE with arbitrary combination (g) function (https://github.com/pykeen/pykeen/pull/245) + +New Negative Samplers +~~~~~~~~~~~~~~~~~~~~~ +- Pseudo-typed Negative Sampler (https://github.com/pykeen/pykeen/pull/412) Datasets ~~~~~~~~ -- Removed invalid datasets (OpenBioLink filtered sets; https://github.com/pykeen/pykeen/pull/#439) +- Removed invalid datasets (OpenBioLink filtered sets; https://github.com/pykeen/pykeen/pull/https://github.com/pykeen/pykeen/pull/439) +- Added WK3k-15K (https://github.com/pykeen/pykeen/pull/403) +- Added WK3l-120K (https://github.com/pykeen/pykeen/pull/403) +- Added CN3l (https://github.com/pykeen/pykeen/pull/403) Added ~~~~~ - Documentation on using PyKEEN in Google Colab and Kaggle (https://github.com/pykeen/pykeen/pull/379, thanks `@jerryIsHere `_) -- Documentation on - Pass custom training loops to pipeline (https://github.com/pykeen/pykeen/pull/334) - Compatibility later for the fft module (https://github.com/pykeen/pykeen/pull/288) - Official Python 3.9 support, now that PyTorch has it (https://github.com/pykeen/pykeen/pull/223) - Utilities for dataset analysis (https://github.com/pykeen/pykeen/pull/16, https://github.com/pykeen/pykeen/pull/392) +- Filtering of negative sampling now uses a bloom filter by default (https://github.com/pykeen/pykeen/pull/401) +- Optional embedding dropout (https://github.com/pykeen/pykeen/pull/422) +- Added more HPO suggestion methods and docs (https://github.com/pykeen/pykeen/pull/446) +- Training callbacks (https://github.com/pykeen/pykeen/pull/429) +- Class resolver for datasets (https://github.com/pykeen/pykeen/pull/473) + Updated ~~~~~~~ - R-GCN implementation now uses new-style models and is super idiomatic (https://github.com/pykeen/pykeen/pull/110) - -Changed -~~~~~~~ +- Enable passing of interaction function by string in base model class (https://github.com/pykeen/pykeen/pull/384, + https://github.com/pykeen/pykeen/pull/387) +- Bump scipy requirement to 1.5.0+ - Updated interfaces of models and negative samplers to enforce kwargs (https://github.com/pykeen/pykeen/pull/445) +- Reorganize filtering, negative sampling, and remove triples factory from most objects ( + https://github.com/pykeen/pykeen/pull/400, https://github.com/pykeen/pykeen/pull/405, + https://github.com/pykeen/pykeen/pull/406, https://github.com/pykeen/pykeen/pull/409, + https://github.com/pykeen/pykeen/pull/420) +- Update automatic memory optimization (https://github.com/pykeen/pykeen/pull/404) +- Flexibly define positive triples for filtering (https://github.com/pykeen/pykeen/pull/398) +- Completely reimplemented negative sampling interface in training loops (https://github.com/pykeen/pykeen/pull/427) +- Completely reimplemented loss function in training loops (https://github.com/pykeen/pykeen/pull/448) +- Forward-compatibility of embeddings in old-style models and updated docs on + how to use embeddings (https://github.com/pykeen/pykeen/pull/474) Fixed ~~~~~ - Regularizer passing in the pipeline and HPO (https://github.com/pykeen/pykeen/pull/345) - Saving results when using multimodal models (https://github.com/pykeen/pykeen/pull/349) +- Add missing diagonal constraint on MuRE Model (https://github.com/pykeen/pykeen/pull/353) +- Fix early stopper handling (https://github.com/pykeen/pykeen/pull/419) +- Fixed saving results from pipeline (https://github.com/pykeen/pykeen/pull/428, thanks @kantholtz) +- Fix OOM issues with early stopper and AMO (https://github.com/pykeen/pykeen/pull/433) +- Fix ER-MLP functional form (https://github.com/pykeen/pykeen/pull/444) `1.4.0 `_ - 2021-03-04 -------------------------------------------------------------------------------- diff --git a/MANIFEST.in b/MANIFEST.in index 4b23ab72af..3668e02576 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -15,5 +15,5 @@ include config/config.ini global-exclude *.py[cod] __pycache__ *.so *.dylib .DS_Store *.gpickle -exclude .bumpversion.cfg .coveragerc .flake8 .travis.yml .readthedocs.yml tox.ini .pre-commit-config.yaml +exclude .bumpversion.cfg .coveragerc .flake8 .travis.yml .readthedocs.yml tox.ini .pre-commit-config.yaml .mailmap include LICENSE *.md *.rst diff --git a/README.md b/README.md index a52caf9cf1..46c19912f4 100644 --- a/README.md +++ b/README.md @@ -340,10 +340,12 @@ This project has been supported by several organizations (in alphabetical order) The development of PyKEEN has been funded by the following grants: -| Funding Body | Program | Grant | -|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------| -| DARPA | [Automating Scientific Knowledge Extraction (ASKE)](https://www.darpa.mil/program/automating-scientific-knowledge-extraction) | HR00111990009 | -| German Federal Ministry of Education and Research (BMBF) | [Maschinelles Lernen mit Wissensgraphen (MLWin)](https://mlwin.de) | 01IS18050D | +| Funding Body | Program | Grant | +|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-----------------| +| DARPA | [Automating Scientific Knowledge Extraction (ASKE)](https://www.darpa.mil/program/automating-scientific-knowledge-extraction) | HR00111990009 | +| German Federal Ministry of Education and Research (BMBF) | [Maschinelles Lernen mit Wissensgraphen (MLWin)](https://mlwin.de) | 01IS18050D | +| German Federal Ministry of Education and Research (BMBF) | [Munich Center for Machine Learning (MCML)](https://mcml.ai) | 01IS18036A | +| Innovation Fund Denmark (Innovationsfonden) | [Danish Center for Big Data Analytics driven Innovation (DABAI)](https://dabai.dk) | Grand Solutions | ### Logo diff --git a/docs/source/conf.py b/docs/source/conf.py index ade3edc36d..83c7e1f83e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -52,7 +52,7 @@ author = 'PyKEEN Project Team' # The full version, including alpha/beta/rc tags. -release = '1.4.1-dev' +release = '1.5.0-dev' # The short X.Y version. parsed_version = re.match( @@ -263,3 +263,6 @@ } autoclass_content = 'both' +# autodoc_member_order = 'bysource' +# autodoc_typehints = 'both' # TODO turn on after 4.1 release +# autodoc_preserve_defaults = True diff --git a/setup.cfg b/setup.cfg index ef38c189f6..0339c79f5d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,10 +16,10 @@ project_urls = Bug Tracker = https://github.com/pykeen/pykeen/issues # Author information -author = Mehdi Ali -author_email = mehdi.ali@cs.uni-bonn.de -maintainer = Mehdi Ali -maintainer_email = mehdi.ali@cs.uni-bonn.de +author = "Mehdi Ali, Max Berrendorf, Charles Tapley Hoyt, Laurent Vermue" +author_email = ", , , " +maintainer = "Mehdi Ali, Max Berrendorf, Charles Tapley Hoyt, Laurent Vermue" +maintainer_email = ", , , " # License information license = MIT diff --git a/src/pykeen/losses.py b/src/pykeen/losses.py index 50cebc024f..9b789c3dcd 100644 --- a/src/pykeen/losses.py +++ b/src/pykeen/losses.py @@ -586,7 +586,7 @@ def __init__(self, margin: float = 9.0, adversarial_temperature: float = 1.0, re The name of the reduction operation to aggregate the individual loss values from a batch to a scalar loss value. From {'mean', 'sum'}. - .. note:: The default hyperparameters are based the experiments for FB15k-237 in [sun2019]_. + .. note:: The default hyperparameters are based on the experiments for FB15k-237 in [sun2019]_. """ super().__init__(reduction=reduction) self.inverse_softmax_temperature = adversarial_temperature diff --git a/src/pykeen/models/cli/builders.py b/src/pykeen/models/cli/builders.py index d2e4914c16..e215a47084 100644 --- a/src/pykeen/models/cli/builders.py +++ b/src/pykeen/models/cli/builders.py @@ -9,12 +9,14 @@ from typing import Any, Mapping, Optional, Type, Union import click +from class_resolver import HintOrType from torch import nn from . import options from .options import CLI_OPTIONS from ..base import Model from ...nn.message_passing import Decomposition +from ...regularizers import Regularizer from ...triples import TriplesFactory from ...typing import Constrainer, Hint, Initializer, Normalizer @@ -44,6 +46,14 @@ Optional[Mapping[str, Any]], Union[None, str, nn.Module], Union[None, str, Decomposition], + +} +_SKIP_HINTS = { + Hint[Initializer], + Hint[Constrainer], + Hint[Normalizer], + Hint[Regularizer], + HintOrType[nn.Module], } @@ -68,7 +78,7 @@ def _decorate_model_kwargs(command: click.Command) -> click.Command: else: parameter = signature.parameters[name] - if annotation in {Hint[Initializer], Hint[Constrainer], Hint[Normalizer]}: # type: ignore + if annotation in _SKIP_HINTS: logger.debug('Unhandled hint: %s', annotation) continue if parameter.default is None: diff --git a/src/pykeen/models/cli/options.py b/src/pykeen/models/cli/options.py index d635cfc644..3aef26b75a 100644 --- a/src/pykeen/models/cli/options.py +++ b/src/pykeen/models/cli/options.py @@ -84,6 +84,10 @@ def _callback(_, __, value): '--clamp-score', type=float, ), + 'combination_dropout': click.option( + '--combination-dropout', + type=float, + ), } device_option = click.option( diff --git a/src/pykeen/templates/README.md b/src/pykeen/templates/README.md index 2ea24bb034..c884a81654 100644 --- a/src/pykeen/templates/README.md +++ b/src/pykeen/templates/README.md @@ -224,10 +224,12 @@ This project has been supported by several organizations (in alphabetical order) The development of PyKEEN has been funded by the following grants: -| Funding Body | Program | Grant | -|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------| -| DARPA | [Automating Scientific Knowledge Extraction (ASKE)](https://www.darpa.mil/program/automating-scientific-knowledge-extraction) | HR00111990009 | -| German Federal Ministry of Education and Research (BMBF) | [Maschinelles Lernen mit Wissensgraphen (MLWin)](https://mlwin.de) | 01IS18050D | +| Funding Body | Program | Grant | +|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-----------------| +| DARPA | [Automating Scientific Knowledge Extraction (ASKE)](https://www.darpa.mil/program/automating-scientific-knowledge-extraction) | HR00111990009 | +| German Federal Ministry of Education and Research (BMBF) | [Maschinelles Lernen mit Wissensgraphen (MLWin)](https://mlwin.de) | 01IS18050D | +| German Federal Ministry of Education and Research (BMBF) | [Munich Center for Machine Learning (MCML)](https://mcml.ai) | 01IS18036A | +| Innovation Fund Denmark (Innovationsfonden) | [Danish Center for Big Data Analytics driven Innovation (DABAI)](https://dabai.dk) | Grand Solutions | ### Logo diff --git a/src/pykeen/version.py b/src/pykeen/version.py index 04da573f17..207c37b5ca 100644 --- a/src/pykeen/version.py +++ b/src/pykeen/version.py @@ -16,7 +16,7 @@ 'env', ] -VERSION = '1.4.1-dev' +VERSION = '1.5.0-dev' @lru_cache(maxsize=2)