RGCNRepresentations
- class RGCNRepresentations(triples_factory, embedding_specification, num_layers=2, use_bias=True, activation=None, activation_kwargs=None, edge_dropout=0.4, self_loop_dropout=0.2, edge_weighting=None, decomposition=None, decomposition_kwargs=None, regularizer=None, regularizer_kwargs=None)[source]
Bases:
pykeen.nn.emb.RepresentationModule
Entity representations enriched by R-GCN.
The GCN employed by the entity encoder is adapted to include typed edges. The forward pass of the GCN is defined by:
\[\textbf{e}_{i}^{l+1} = \sigma \left( \sum_{r \in \mathcal{R}}\sum_{j\in \mathcal{N}_{i}^{r}} \frac{1}{c_{i,r}} \textbf{W}_{r}^{l} \textbf{e}_{j}^{l} + \textbf{W}_{0}^{l} \textbf{e}_{i}^{l}\right)\]where \(\mathcal{N}_{i}^{r}\) is the set of neighbors of node \(i\) that are connected to \(i\) by relation \(r\), \(c_{i,r}\) is a fixed normalization constant (but it can also be introduced as an additional parameter), and \(\textbf{W}_{r}^{l} \in \mathbb{R}^{d^{(l)} \times d^{(l)}}\) and \(\textbf{W}_{0}^{l} \in \mathbb{R}^{d^{(l)} \times d^{(l)}}\) are weight matrices of the l-th layer of the R-GCN.
The encoder aggregates for each node \(e_i\) the latent representations of its neighbors and its own latent representation \(e_{i}^{l}\) into a new latent representation \(e_{i}^{l+1}\). In contrast to standard GCN, R-GCN defines relation specific transformations \(\textbf{W}_{r}^{l}\) which depend on the type and direction of an edge.
Since having one matrix for each relation introduces a large number of additional parameters, the authors instead propose to use a decomposition, cf.
pykeen.nn.message_passing.Decomposition
.Instantiate the R-GCN encoder.
- Parameters
triples_factory (
CoreTriplesFactory
) – The triples factory holding the training triples used for message passing.embedding_specification (
EmbeddingSpecification
) – The base embedding specification.num_layers (
int
) – The number of layers.use_bias (
bool
) – Whether to use a bias.activation_kwargs (
Optional
[Mapping
[str
,Any
]]) – Additional keyword based arguments passed if the activation is not pre-instantiated. Ignored otherwise.edge_dropout (
float
) – The edge dropout to use. Does not apply to self-loops.self_loop_dropout (
float
) – The self-loop dropout to use.edge_weighting (
Union
[str
,EdgeWeighting
,None
]) – The edge weighting mechanism.decomposition (
Union
[str
,Decomposition
,None
]) – The decomposition, cf.pykeen.nn.message_passing.Decomposition
.decomposition_kwargs (
Optional
[Mapping
[str
,Any
]]) – Additional keyword based arguments passed to the decomposition upon instantiation.regularizer (
Union
[str
,Regularizer
,None
]) – A regularizer, which is applied to the selected embeddings in forward passregularizer_kwargs (
Optional
[Mapping
[str
,Any
]]) – Additional keyword arguments passed to the regularizer
Methods Summary
forward
([indices])Enrich the entity embeddings of the decoder using R-GCN message propagation.
Apply constraints which should not be included in gradients.
Reset the module's parameters.
Methods Documentation
- forward(indices=None)[source]
Enrich the entity embeddings of the decoder using R-GCN message propagation.
- Return type
FloatTensor