Repository: pykeen/pykeen
Issue: Grid search HPO: "TypeError: __init__() missing 1 required positional argument: 'search_space'"
Root cause: Documentation Deficiency

### Describe the bug

Hello,

I encountered an issue running HPO with grid search. When running the example from here (https://pykeen.readthedocs.io/en/stable/tutorial/running_hpo.html?highlight=GridSampler#choosing-a-search-algorithm), I get the error `Grid search HPO: "TypeError: __init__() missing 1 required positional argument: 'search_space'"`

The full stack trace is shown below:
```python-traceback
Traceback (most recent call last):
  File "/workspace/twig/temp2.py", line 3, in <module>
    hpo_pipeline_result = hpo_pipeline(
  File "/root/miniconda3/envs/twig/lib/python3.9/site-packages/pykeen/hpo/hpo.py", line 674, in hpo_pipeline
    sampler=sampler_resolver.make(sampler, sampler_kwargs),
  File "/root/miniconda3/envs/twig/lib/python3.9/site-packages/class_resolver/api.py", line 211, in make
    raise e
  File "/root/miniconda3/envs/twig/lib/python3.9/site-packages/class_resolver/api.py", line 205, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
TypeError: __init__() missing 1 required positional argument: 'search_space'
``` 

### How to reproduce

Command run: `# python temp.py `

In temp.py:
```python
from pykeen.hpo import hpo_pipeline
from optuna.samplers import GridSampler
hpo_pipeline_result = hpo_pipeline(
    n_trials=30,
    sampler=GridSampler,
    dataset='Nations',
    model='TransE',
)
```

### Environment

```console
$ python -m pykeen version
Unable to handle parameter in AutoSF: coefficients
```

| Key             | Value                             |
|-----------------|-----------------------------------|
| OS              | posix                             |
| Platform        | Linux                             |
| Release         | 5.10.16.3-microsoft-standard-WSL2 |
| Time            | Mon Mar 14 12:13:37 2022          |
| Python          | 3.9.7                             |
| PyKEEN          | 1.7.0                             |
| PyKEEN Hash     | UNHASHED                          |
| PyKEEN Branch   |                                   |
| PyTorch         | 1.10.2+cu113                      |
| CUDA Available? | true                              |
| CUDA Version    | 11.3                              |
| cuDNN Version   | 8200                              |

### Additional information

_No response_

I could locally verify the issue. The main problem seems to be that you need to provide the grid you want to search through as `search_space` inside `sampler_kwargs`. For instance, the snippet below works. Determining this dictionary is a bit tedious though, since I essentially re-run the snippet to see which keys were missing. Moreover, it seems as if we need to provide a relatively large grid, e.g., comprising the margin, even if there is a default margin
https://github.com/pykeen/pykeen/blob/8f3e74f40d2fc1ff14fa6e360ba0741a78057d45/src/pykeen/losses.py#L576

So, at least, I think we should update the tutorial. :slightly_smiling_face:  Maybe there is also an option to fill in some of the values in search space whenever there is a default. I am not sure though how high we should prioritize adding this, as it is specific to a single sampler, which, afaik, is not used very often due to the exponential growth of required trials to explore the grid, cf., e.g. [here](https://jmlr.org/papers/v13/bergstra12a.html).


#### Working Snippet
The following snippet is a one-element grid. Expand where you want to study more than one option.
```python
from optuna.samplers import GridSampler
from pykeen.hpo import hpo_pipeline

hpo_pipeline_result = hpo_pipeline(
    n_trials=30,
    sampler=GridSampler,
    sampler_kwargs=dict(
        search_space={
            "model.embedding_dim": [32],
            "model.scoring_fct_norm": [1],
            "loss.margin": [1.0],
            "optimizer.lr": [1.0e-03],
            "negative_sampler.num_negs_per_pos": [32],
            "training.num_epochs": [100],
            "training.batch_size": [128],
        },
    ),
    dataset="Nations",
    model="TransE",
)
```