Repository: pykeen/pykeen
Issue: TypeError: DoubleMarginLoss.__init__() got an unexpected keyword argument 'margin_positive'
Root cause: Validation Gap

### Describe the bug

This error occurs when using the hpo pipeline with the DoubleMarginLoss. I did not use a parameter called margin_positive. Unfortunately, I don't know what values the other components were because I was trying out a random search and did not log in case of failure. I thought it might be good to know regardless. In the documentation for the DoubleMarginLoss, the parameter is called positive_margin, not margin_positive. The traceback is the following:
```python
hpo_result = hpo_pipeline(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/pykeen/hpo/hpo.py", line 868, in hpo_pipeline
    study.optimize(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/optuna/study/study.py", line 425, in optimize
    _optimize(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/optuna/study/_optimize.py", line 66, in _optimize
    _optimize_sequential(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/optuna/study/_optimize.py", line 163, in _optimize_sequential
    frozen_trial = _run_trial(study, func, catch)
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/optuna/study/_optimize.py", line 251, in _run_trial
    raise func_err
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/optuna/study/_optimize.py", line 200, in _run_trial
    value_or_values = func(trial)
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/pykeen/hpo/hpo.py", line 259, in __call__
    result = pipeline(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/pykeen/pipeline/api.py", line 1509, in pipeline
    model_instance = _handle_model(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/pykeen/pipeline/api.py", line 979, in _handle_model
    model_instance, model_kwargs = _build_model_helper(
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/pykeen/pipeline/api.py", line 839, in _build_model_helper
    model_kwargs["loss"] = loss_resolver.make(loss, loss_kwargs)
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/class_resolver/api.py", line 210, in make
    raise e
  File "/home/anaconda3/envs/pykeen/lib/python3.10/site-packages/class_resolver/api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
TypeError: DoubleMarginLoss.__init__() got an unexpected keyword argument 'margin_positive'
```

### How to reproduce

Use `hpo_pipeline` with the `DoubleMarginLoss`

### Environment

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | posix                    |
| Platform        | Linux                    |
| Release         | 6.2.0-33-generic         |
| Time            | Mon Oct  2 13:27:42 2023 |
| Python          | 3.10.9                   |
| PyKEEN          | 1.10.0                   |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 1.13.1+cu117             |
| CUDA Available? | true                     |
| CUDA Version    | 11.7                     |
| cuDNN Version   | 8500                     |


### Additional information

_No response_

### Issue Template Checks

- [X] This is not a feature request (use a different issue template if it is)
- [X] This is not a question (use the [discussions](https://github.com/pykeen/pykeen/discussions/new) forum instead)
- [X] I've read the text explaining why including environment information is important and understand if I omit this information that my issue will be dismissed

Here's the line that needs to get fixed (rename `margin_positive` to `positive_margin`):

https://github.com/pykeen/pykeen/blob/d5b409f0aa265bae278656e21526b008c780a2e7/src/pykeen/losses.py#L689

More generally, we should test that all keys in `hpo_default` dictionaries correspond to keyword arguments in the class's `__init__`.