# TuckER¶

class TuckER(*, embedding_dim=200, relation_dim=None, dropout_0=0.3, dropout_1=0.4, dropout_2=0.5, apply_batch_normalization=True, entity_initializer=<function xavier_normal_>, relation_initializer=<function xavier_normal_>, **kwargs)[source]

An implementation of TuckEr from [balazevic2019].

TuckER is a linear model that is based on the tensor factorization method Tucker in which a three-mode tensor $$\mathfrak{X} \in \mathbb{R}^{I \times J \times K}$$ is decomposed into a set of factor matrices $$\textbf{A} \in \mathbb{R}^{I \times P}$$, $$\textbf{B} \in \mathbb{R}^{J \times Q}$$, and $$\textbf{C} \in \mathbb{R}^{K \times R}$$ and a core tensor $$\mathfrak{Z} \in \mathbb{R}^{P \times Q \times R}$$ (of lower rank):

$\mathfrak{X} \approx \mathfrak{Z} \times_1 \textbf{A} \times_2 \textbf{B} \times_3 \textbf{C}$

where $$\times_n$$ is the tensor product, with $$n$$ denoting along which mode the tensor product is computed. In TuckER, a knowledge graph is considered as a binary tensor which is factorized using the Tucker factorization where $$\textbf{E} = \textbf{A} = \textbf{C} \in \mathbb{R}^{n_{e} \times d_e}$$ denotes the entity embedding matrix, $$\textbf{R} = \textbf{B} \in \mathbb{R}^{n_{r} \times d_r}$$ represents the relation embedding matrix, and $$\mathfrak{W} = \mathfrak{Z} \in \mathbb{R}^{d_e \times d_r \times d_e}$$ is the core tensor that indicates the extent of interaction between the different factors. The interaction model is defined as:

$f(h,r,t) = \mathfrak{W} \times_1 \textbf{h} \times_2 \textbf{r} \times_3 \textbf{t}$

where $$\textbf{h},\textbf{t}$$ correspond to rows of $$\textbf{E}$$ and $$\textbf{r}$$ to a row of $$\textbf{R}$$.

The dropout values correspond to the following dropouts in the model’s score function:

$\text{Dropout}_2(BN(\text{Dropout}_0(BN(h)) \times_1 \text{Dropout}_1(W \times_2 r))) \times_3 t$

where h,r,t are the head, relation, and tail embedding, W is the core tensor, times_i denotes the tensor product along the i-th mode, BN denotes batch normalization, and $$\text{Dropout}$$ dropout.

Initialize the entity embedding model.

Constructor of the base class pykeen.models.Model

Attributes Summary

 hpo_default The default strategy for optimizing the model’s hyper-parameters loss_default_kwargs The default parameters for the default loss function class

Methods Summary

 score_h(rt_batch) Forward pass using left side (head) prediction. score_hrt(hrt_batch) Forward pass. score_t(hr_batch) Forward pass using right side (tail) prediction.

Attributes Documentation

hpo_default: ClassVar[Mapping[str, Any]] = {'dropout_0': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'dropout_1': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'dropout_2': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'embedding_dim': {'high': 256, 'low': 16, 'q': 16, 'type': <class 'int'>}, 'relation_dim': {'high': 256, 'low': 16, 'q': 16, 'type': <class 'int'>}}

The default strategy for optimizing the model’s hyper-parameters

loss_default_kwargs: ClassVar[Mapping[str, Any]] = {}

The default parameters for the default loss function class

Methods Documentation

score_h(rt_batch)[source]

Forward pass using left side (head) prediction.

This method calculates the score for all possible heads for each (relation, tail) pair.

Parameters

rt_batch (LongTensor) – shape: (batch_size, 2), dtype: long The indices of (relation, tail) pairs.

Return type

FloatTensor

Returns

shape: (batch_size, num_entities), dtype: float For each r-t pair, the scores for all possible heads.

score_hrt(hrt_batch)[source]

Forward pass.

This method takes head, relation and tail of each triple and calculates the corresponding score.

Parameters

hrt_batch (LongTensor) – shape: (batch_size, 3), dtype: long The indices of (head, relation, tail) triples.

Raises

NotImplementedError – If the method was not implemented for this class.

Return type

FloatTensor

Returns

shape: (batch_size, 1), dtype: float The score for each triple.

score_t(hr_batch)[source]

Forward pass using right side (tail) prediction.

This method calculates the score for all possible tails for each (head, relation) pair.

Parameters

hr_batch (LongTensor) – shape: (batch_size, 2), dtype: long The indices of (head, relation) pairs.

Return type

FloatTensor

Returns

shape: (batch_size, num_entities), dtype: float For each h-r pair, the scores for all possible tails.