Repository: pykeen/pykeen
Issue: HPO with TransH not working
Root cause: Interface Contract Mismatch

### Describe the bug

During HPO, whenever I try to use **TransH** model, i get the following error:

```python-traceback
Traceback (most recent call last):
  File "c:\Users\34656\Desktop\embeddings\PyKEEN\hypo.py", line 12, in <module>
    hpo_pipeline_result = hpo_pipeline(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\hpo\hpo.py", line 865, in hpo_pipeline
    study.optimize(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\study.py", line 425, in optimize
    _optimize(
    _optimize_sequential(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 163, in _optimize_sequential      
    frozen_trial = _run_trial(study, func, catch)
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 251, in _run_trial
    raise func_err
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 200, in _run_trial
    value_or_values = func(trial)
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\hpo\hpo.py", line 195, in __call__
    default_kwargs_ranges=self.regularizer.hpo_default,
AttributeError: type object 'NormLimitRegularizer' has no attribute 'hpo_default'
```
I tried adding an hpo_default attrinute to *NormLimitRegularizer* but then the error is as follows:

```
[I 2023-05-19 09:52:20,773] A new study created in memory with name: no-name-2b3f4faf-fe2a-4875-a096-7730ff44d8d9
No random seed is specified. Setting to 3558519906.
[W 2023-05-19 09:52:20,814] Trial 0 failed with parameters: {'model.embedding_dim': 192, 'model.scoring_fct_norm': 1, 'loss.margin': 2.8584383870999033, 'regularizer.weight': 0.8035391401985735, 'optimizer.lr': 0.0012332433634917863, 'negative_sampler.num_negs_per_pos': 8, 'training.num_epochs': 600, 'training.batch_size': 128} because of the following error: TypeError("__init__() got an unexpected keyword argument 'regularizer'").
```

### How to reproduce

This is the code I have been using, which works for all the other models I have been working with.
```python
hpo_pipeline_result = hpo_pipeline(
    n_trials=100,
    training = training,
    testing = testing,
    validation = validation,
    training_loop = 'slcwa',
    model='TransH',
    sampler = 'tpe',
    model_kwargs={"random_seed": 1998},
    model_kwargs_ranges=dict(embedding_dim=dict(type=int,low=16,high=64,q=2)),
    optimizer_kwargs_ranges=dict(lr=dict(type=float,low=0.0005,high=0.005)),
    loss='marginranking',
    training_kwargs=dict(num_epochs=200, batch_size=32),
    negative_sampler='bernoulli',
    negative_sampler_kwargs_ranges=dict(num_negs_per_pos=dict(type=int,low=20,high=80,q=10)),
    evaluation_kwargs=dict(batch_size=128),
    metric = "tail.realistic.hits_at_3",
    stopper='early',
    device='gpu'
    )
```

I also tried it with the toy example provided in the documentation, with the same results.
```python
hpo_pipeline_result = hpo_pipeline(
    n_trials=30,
    dataset='Nations',
    model='TransH',
)
```

### Environment

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | nt                       |
| Platform        | Windows                  |
| Release         | 10                       |
| Time            | Fri May 19 09:45:25 2023 |
| Python          | 3.9.7                    |
| PyKEEN          | 1.10.1                   |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 2.0.0+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

Hi @TOWK ,

the error is caused by `TransH` defining a `regularizer_default=NormLimitRegularizer` which itself does not provide a default HPO range. It should be fixed with #1274 .

Thanks for the quick fix, really appreciate it! But now, in with the new dev version, I'm getting the same error that I got when I tried fixing it myself:

```
[W 2023-05-20 09:43:50,662] Trial 0 failed with parameters: {'model.embedding_dim': 160, 'model.scoring_fct_norm': 1, 'loss.margin': 1.169191331638885, 'regularizer.weight': 0.31767147656891304, 'optimizer.lr': 0.05128094685888498, 'negative_sampler.num_negs_per_pos': 3, 'training.num_epochs': 600, 'training.batch_size': 16} because of the following error: TypeError("__init__() got an unexpected keyword argument 'regularizer'").
Traceback (most recent call last):
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 200, in _run_trial
    value_or_values = func(trial)
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\hpo\hpo.py", line 259, in __call__
    result = pipeline(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 1509, in pipeline
    model_instance = _handle_model(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 979, in _handle_model
    model_instance, model_kwargs = _build_model_helper(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 846, in _build_model_helper
    model_resolver.make(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\class_resolver\api.py", line 210, in make
    raise e
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\class_resolver\api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\models\unimodal\trans_h.py", line 116, in __init__
    super().__init__(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\models\nbase.py", line 329, in __init__
    super().__init__(triples_factory=triples_factory, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'regularizer'
[W 2023-05-20 09:43:50,668] Trial 0 failed with value None.
Traceback (most recent call last):
  File "c:\Users\34656\Desktop\DS\TFM\code\embeddings\PyKEEN\hypo.py", line 12, in <module>
    hpo_pipeline_result = hpo_pipeline(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\hpo\hpo.py", line 865, in hpo_pipeline
    study.optimize(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\study.py", line 425, in optimize
    _optimize(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 66, in _optimize
    _optimize_sequential(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 163, in _optimize_sequential      
    frozen_trial = _run_trial(study, func, catch)
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 251, in _run_trial
    raise func_err
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\optuna\study\_optimize.py", line 200, in _run_trial
    value_or_values = func(trial)
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\hpo\hpo.py", line 259, in __call__
    result = pipeline(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 1509, in pipeline
    model_instance = _handle_model(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 979, in _handle_model
    model_instance, model_kwargs = _build_model_helper(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\pipeline\api.py", line 846, in _build_model_helper
    model_resolver.make(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\class_resolver\api.py", line 210, in make
    raise e
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\class_resolver\api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\models\unimodal\trans_h.py", line 116, in __init__
    super().__init__(
  File "C:\Users\34656\AppData\Local\Programs\Python\Python39\lib\site-packages\pykeen\models\nbase.py", line 329, in __init__
    super().__init__(triples_factory=triples_factory, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'regularizer'
```

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | nt                       |
| Platform        | Windows                  |
| Release         | 10                       |
| Time            | Sat May 20 09:44:50 2023 |
| Python          | 3.9.7                    |
| PyKEEN          | 1.10.2-dev               |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 2.0.0+cu117              |
| CUDA Available? | true                     |
| CUDA Version    | 11.7                     |
| cuDNN Version   | 8500                     |