Repository: pykeen/pykeen
Issue: Node Piece cannot work with PairRE & TripleRE
Root cause: Algorithmic Error

### Describe the bug

It seems like Node Piece isn't work with PairRE and TripleRE interaction 
```python-traceback
[/usr/local/lib/python3.7/dist-packages/pykeen/models/nbase.py] in _prepare_representation_module_list(max_id, shapes, label, representations, representation_kwargs, skip_checks)
    188     if len(rs) != len(shapes):
    189         raise ValueError(
--> 190             f"Interaction function requires {len(shapes)} {label} representations, but {len(rs)} were given."
    191         )
    192     check_shapes(

ValueError: Interaction function requires 2 relation representations, but 1 were given.
```
In [Node Piece Module](https://github.com/pykeen/pykeen/blob/master/src/pykeen/models/unimodal/node_piece.py) file, some change may solve the problem, but I take only distance-based interaction into consideration

for line 124 - 132 
```python
interaction = interaction_resolver.make(interaction)
r_shape = len(interaction.relation_shape)

relation_representations = [  
            representation_resolver.make(
            query=None,
            max_id=2 * triples_factory.real_num_relations + 1,
            shape=embedding_dim,
            initializer=relation_initializer,
            normalizer=relation_normalizer,
            constrainer=relation_constrainer,
            regularizer=relation_regularizer,
           ) for _ in range(r_shape)
]
```

for line 168 - 171
```python
relation_representations_kwargs=[
                dict(base=relation_representation) for relation_representation in relation_representations
]
```



### How to reproduce
```python
import torch.nn

from pykeen.models import NodePiece
from pykeen.pipeline import pipeline

result = pipeline(
    dataset="fb15k237",
    dataset_kwargs=dict(
        create_inverse_triples=True,
    ),
    model=NodePiece,
    model_kwargs=dict(
        tokenizers=["AnchorTokenizer", "RelationTokenizer"],
        num_tokens=[20, 12],
        tokenizers_kwargs=[
            dict(
                selection="MixtureAnchorSelection",
                selection_kwargs=dict(
                    selections=["degree", "pagerank", "random"],
                    ratios=[0.4, 0.4, 0.2],
                    num_anchors=500,
                ),
                searcher="ScipySparse",
            ),
            dict(),  # empty dict for the RelationTokenizer - it doesn't need any kwargs
        ],
        embedding_dim=64,
        interaction="pairre",
        interaction_kwargs = {
         'p' : 1
   },
    ),
)
```

### Environment

| Key             | Value                    |
|-----------------|--------------------------|
| OS              | posix                    |
| Platform        | Darwin                   |
| Release         | 20.6.0                   |
| Time            | Wed Aug 10 09:52:53 2022 |
| Python          | 3.8.2                    |
| PyKEEN          | 1.8.1                    |
| PyKEEN Hash     | UNHASHED                 |
| PyKEEN Branch   |                          |
| PyTorch         | 1.11.0                   |
| CUDA Available? | false                    |
| CUDA Version    | N/A                      |
| cuDNN Version   | N/A                      |


### 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 @jasper881108 ,

did you already see https://github.com/pykeen/pykeen/issues/662 ?

@mberr Thanks, it’s a clear answer