Repository: pykeen/pykeen
Issue: Document how to optimize entity initializers in the HPO pipeline
Root cause: Documentation Deficiency

**Is your feature request related to a problem? Please describe.**

When I want to optimize the hyperparameters, I am a little confused about HPO and ablation study. And I find it seems that I could not choose initializers.

**Describe the solution you'd like**

What I want is when I optimize the hyperparameters, I want to choose  the different initializers [normal, uniform....].

**Describe alternatives you've considered**


**Additional context**
By the way, when I use ablation study, what should I do?
1. determine the certain embedding_dim, eg. [64,128,256,512,1024]
(how could I use multiply, and could I just write some certain numbers)
2. if I want to optimize the type of loss as well as loss_kwargs, do I just need write the types on optimizer_kwargs=[adam,adagrad...] as well as write down the range optimizer_kwarg= dict(lr=dict(.....))


In #282, we made the initializers configurable across most models. It's now possible to use the `model_kwargs_ranges` argument to specify a list of values from which one argument could be chosen.

However, looking at the documentation in https://pykeen.readthedocs.io/en/stable/tutorial/running_hpo.html, there's only a mention that this can be done with categorical variables but no explanation. I will make an update to this page to make it more clear. In the mean time, here's an example of how you could pick different entity initializers for TransE:

```python
from pykeen.hpo import hpo_pipeline

hpo_pipeline(
    dataset='Nations',
    model='TransE',
    model_kwargs_ranges={
        'entity_initializer': {
            'type': 'categorical',
            'choices': ['xavier_uniform', 'xavier_uniform_norm', 'uniform'],
        }
    },
)
```

I'm also aware that the possible choices here aren't really documented anywhere either :/ so here's a snippet from the code itself:

https://github.com/pykeen/pykeen/blob/193f2bffbbf675b1398bce79675fd301a96ceeb0/src/pykeen/nn/emb.py#L477-L486

Even worse, I see a potentially problematic typo in the definition here that I will fix ASAP 👀 

Note that different models might have different names for the initializer since there could be multiple representations for each entity. Check your desired model's documentation page for the kwargs that you can optimize over. If it's the case that there's a setting that isn't exposed, you could open up a new issue to alert us.

If you're not sure what to do with an ablation study, please check the latest docs that @mali-git recently updated at https://pykeen.readthedocs.io/en/latest/tutorial/running_ablation.html, and feel free to start a discussion on the board here https://github.com/pykeen/pykeen/discussions/new

Hi @lzw950905, I hope this explanation was helpful. I went even further on the PR https://github.com/pykeen/pykeen/pull/461 than I had expected and did a big overhaul on the HPO docs. Please check them out on the "latest" branch on Read The Docs at https://pykeen.readthedocs.io/en/latest/tutorial/running_hpo.html. If there's still anything that's unclear, please let me know here or feel free to open a new issue :)