expected_likelihood
- expected_likelihood(h, r, t, exact=True)[source]
Compute the similarity based on expected likelihood.
\[D((\mu_e, \Sigma_e), (\mu_r, \Sigma_r))) = \frac{1}{2} \left( (\mu_e - \mu_r)^T(\Sigma_e + \Sigma_r)^{-1}(\mu_e - \mu_r) + \log \det (\Sigma_e + \Sigma_r) + d \log (2 \pi) \right) = \frac{1}{2} \left( \mu^T\Sigma^{-1}\mu + \log \det \Sigma + d \log (2 \pi) \right)\]with \(\mu_e = \mu_h - \mu_t\) and \(\Sigma_e = \Sigma_h + \Sigma_t\).
- Parameters:
h (
GaussianDistribution
) – shape: (batch_size, num_heads, 1, 1, d) The head entity Gaussian distribution.r (
GaussianDistribution
) – shape: (batch_size, 1, num_relations, 1, d) The relation Gaussian distribution.t (
GaussianDistribution
) – shape: (batch_size, 1, 1, num_tails, d) The tail entity Gaussian distribution.exact (
bool
) – Whether to return the exact similarity, or leave out constant offsets.
- Return type:
FloatTensor
- Returns:
torch.Tensor, shape: (batch_size, num_heads, num_relations, num_tails) The similarity.