mixle.models.knowledge_graph moduleΒΆ

Knowledge-graph embedding helpers.

class KnowledgeGraphFitResult(model, history, validation_history=None)[source]

Bases: FitResult[TransEKnowledgeGraphModel]

Result from TransE margin fitting.

Parameters:
class TransEKnowledgeGraphModel(entity_embeddings, relation_embeddings, entity_names=None, relation_names=None, name=None)[source]

Bases: object

Dependency-free TransE model with a NumPy margin objective.

Parameters:
  • entity_embeddings (Any)

  • relation_embeddings (Any)

  • entity_names (Sequence[Any] | None)

  • relation_names (Sequence[Any] | None)

  • name (str | None)

classmethod random(num_entities, num_relations, embedding_dim=16, seed=None, scale=0.01, entity_names=None, relation_names=None, name=None)[source]

Create a randomly initialized model.

Parameters:
Return type:

TransEKnowledgeGraphModel

distance_triples(triples)[source]

Return squared TransE distances ||h + r - t||^2.

Parameters:

triples (Sequence[tuple[Any, Any, Any]])

Return type:

ndarray

score_triples(triples)[source]

Return TransE scores; higher is more plausible.

Parameters:

triples (Sequence[tuple[Any, Any, Any]])

Return type:

ndarray

margin_loss(positive_triples, negative_triples, margin=1.0)[source]

Return the pairwise TransE ranking loss.

Parameters:
Return type:

float

negative_sample(triples, seed=None, corrupt='tail')[source]

Corrupt heads or tails to produce negative triples.

Parameters:
Return type:

list[tuple[Any, Any, Any]]

fit_margin(positive_triples, negative_triples=None, margin=1.0, lr=0.01, max_its=100, seed=None, normalize_entities=True)[source]

Fit embeddings with simple stochastic subgradient descent.

Parameters:
Return type:

KnowledgeGraphFitResult

normalize_entity_embeddings(max_norm=1.0)[source]

Project entity embeddings into an L2 ball.

Parameters:

max_norm (float)

Return type:

None