Repository: pykeen/pykeen
Issue: NodePiece with the `SparseBFSSearcher` search crashes when defined in a pipeline object 
Root cause: Configuration Error

### Describe the bug

Hey - really excited to see the METIS tokenizer for large graphs has been added for NodePiece! However when I try to run it with NodePiece defined as part of the pipeline, I get the following error:

``` 
Traceback (most recent call last):
  File "python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "train_nodepiece_pipeline.py", line 114, in <module>
    trainer.train()
  File "train_nodepiece_pipeline.py", line 34, in train
    result = pipeline(
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/pipeline/api.py", line 1133, in pipeline
    model_instance, model_kwargs = _build_model_helper(
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/pipeline/api.py", line 845, in _build_model_helper
    model_resolver.make(
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 210, in make
    raise e
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/models/unimodal/node_piece.py", line 154, in __init__
    super().__init__(
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/models/nbase.py", line 317, in __init__
    self.entity_representations = _prepare_representation_module_list(
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/models/nbase.py", line 185, in _prepare_representation_module_list
    rs = representation_resolver.make_many(representations, kwargs=representation_kwargs, max_id=max_id)
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 345, in make_many
    return [
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 346, in <listcomp>
    self.make(query=_result_tracker, pos_kwargs=_result_tracker_kwargs, **common_kwargs)
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 210, in make
    raise e
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/pykeen/nn/node_piece/representation.py", line 289, in __init__
    tokenizer_resolver.make_many(queries=tokenizers, kwargs=tokenizers_kwargs),
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 345, in make_many
    return [
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 346, in <listcomp>
    self.make(query=_result_tracker, pos_kwargs=_result_tracker_kwargs, **common_kwargs)
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 210, in make
    raise e
  File "~/Venvs/pykeen_m/lib/python3.9/site-packages/class_resolver/api.py", line 204, in make
    return cls(**(pos_kwargs or {}), **kwargs)  # type: ignore
TypeError: __init__() got an unexpected keyword argument 'num_partitions' 
```

This error doesn't occur if I predefine NodePiece and use that as part of the pipeline instead.

### How to reproduce

This code will crash with the error listed above:

``` python

from pykeen.datasets import Nations
from pykeen.models import NodePiece

dataset = Nations(create_inverse_triples=True)

result = pipeline(
    dataset=dataset,
    model=NodePiece,
    model_kwargs=dict(
        tokenizers=["AnchorTokenizer", "RelationTokenizer"],
        num_tokens=[2, 2],
        tokenizers_kwargs=[
            dict(
                num_partitions=2,
                selection="MixtureAnchorSelection",
                selection_kwargs=dict(
                    selections=["degree", "random"],
                    ratios=[0.5, 0.5],
                    num_anchors=2, 
                ),
                device="cpu", 
                searcher="SparseBFSSearcher",
                searcher_kwargs=dict(max_iter=5), 
            ),
            dict(),
        ],
        aggregation="mlp",
        embedding_dim=10,
    ),
)
```

However the following code will work:

``` python 

from pykeen.datasets import Nations
from pykeen.models import NodePiece

dataset = Nations(create_inverse_triples=True)
model = NodePiece(
    triples_factory=dataset.training,
    tokenizers=["MetisAnchorTokenizer", "RelationTokenizer"],
    num_tokens=[2, 2], 
    embedding_dim=10,
    interaction="rotate",
    tokenizers_kwargs=[
        dict(
            num_partitions=2, 
            device="cpu", 
            selection="MixtureAnchorSelection", 
            selection_kwargs=dict(
                selections=["degree", "random"],
                ratios=[0.5, 0.5],
                num_anchors=2,  
            ),
            searcher="SparseBFSSearcher",  
            searcher_kwargs=dict(max_iter=5),  
        ),
        dict(),
    ],
    aggregation="mlp",
)

result = pipeline(
    dataset=dataset,
    model=model,
)
```

### Environment

| Key             | Value                       |
|-----------------|-----------------------------|
| OS              | posix                       |
| Platform        | Linux                       |
| Release         | 3.10.0-1160.11.1.el7.x86_64 |
| Time            | Tue Jul 19 14:19:20 2022    |
| Python          | 3.9.5                       |
| PyKEEN          | 1.8.3-dev                   |
| PyKEEN Hash     | UNHASHED                    |
| PyKEEN Branch   |                             |
| PyTorch         | 1.11.0+cu113                |
| CUDA Available? | false                       |
| CUDA Version    | 11.3                        |
| cuDNN Version   | 8200                        |

### 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

The first sample code uses `AnchorTokenizer` instead of `MetisAnchorTokenizer`

Ah you are right - sorry @mberr ! The heatwave in the UK must be getting to me. Sorry!