in kbc/models.py [0:0]
def score(self, x):
lhs = self.embeddings[0](x[:, 0])
rel = self.embeddings[1](x[:, 1])
rhs = self.embeddings[0](x[:, 2])
lhs = lhs[:, :self.rank], lhs[:, self.rank:]
rel = rel[:, :self.rank], rel[:, self.rank:]
rhs = rhs[:, :self.rank], rhs[:, self.rank:]
return torch.sum(
(lhs[0] * rel[0] - lhs[1] * rel[1]) * rhs[0] +
(lhs[0] * rel[1] + lhs[1] * rel[0]) * rhs[1],
1, keepdim=True
)