- The library has been migrated to pytorch. This is a breaking change. You will likely need to adapt to this new version if you have been using estimators from version 1.x.
- The RankNet and CmpNet estimators are now trained with a loss that applies to the whole result (the general/discrete choice or ranking). They were previously trained on object pairs with different loss functions.
- Behavior and default parameters of the estimators may differ from the previous versions. For example the default activation for CmpNet and RankNet is now SELU instead of ReLU.
- The dataset generators in csrank.dataset_reader are no longer imported on the top level.
- We no longer override any of the defaults of our default optimizer (SGD). In particular, the parameters nesterov, momentum and lr are now set to the default values set by keras.
- All optimizers must now be passed in uninitialized. Optimizer parameters can be set by passing optimizer__{kwarg} parameters to the learner. This follows the scikit-learn and skorch standard.
- Regularizers must similarly be passed uninitialized, therefore the reg_strength parameter is replaced by kernel_regularizer__l.
- Tuning functionality has been removed. Since our Learners are ScikitLearn estimators, any standard tuning framework should work and no special support is needed.
- The tunable class and notably its set_tunable_parameters function has been removed. Use set_params from the scikit-learn estimator API instead.
- Make all our optional dependencies mandatory to work around a bug in our optional imports code. Without this, an exception is raised on import. A proper fix will follow.
- Change public interface of the learners to be more in line with the scikit-learn interface (ongoing). As part of these changes, it is no longer required to explicitly pass the data dimensionality to the learners on initialization.
- Rewrite and document normalized discounted cumulative gain (ndcg) metric to fix numerical issues. See #32 for details.
- Fix passing fit keyword arguments on to the core network in
FATEChoiceFunction
. - Fix arguments for
AllPositive
baseline. - Raise ValueError rather than silently using a default value for unknown passed arguments.
- Internal efforts to increase code quality and make use of linting
(
black
,flake8
,doc8
). - Remove old experimental code.
- Add the expected reciprocal rank (ERR) metric.
- Fix bug in callbacks causing the wrong learning rate schedule to be applied.
- Make csrank easier to install by making some dependencies optional.
- Add guidelines for how to contribute to the project.
- Fix deployment to GH-pages
- Add
HISTORY.rst
file to track changes over time - Set up travis-ci for deployment to PyPi
- Initial release