Knowledge Graph Completion
Teknik til at forudsige manglende kanter (relationer) i en vidensgraf baseret på eksisterende entiteter og relationer.
Kort fortalt
En metode til at udfylde huller i en vidensgraf ved at gætte, hvilke forbindelser der mangler mellem kendte begreber.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Opgaven med at forudsige manglende relationer mellem entiteter i en vidensgraf, typisk formuleret som at afgøre, om en tredobbelt (hoved, relation, hale) er sand.
- Knowledge graph completion kan bruges til at forudsige, at 'Danmark' har relationen 'hovedstad' til 'København', selvom denne tredobbelt mangler i grafen.
- Modellen TransE lærer en embedding for hver entitet og relation, således at hoved + relation ≈ hale for sande tripletter. — Bordes et al., 2013
Hvornår bruges det
Knowledge graph completion bruges til at berige og forbedre ufuldstændige vidensgrafer, fx i søgemaskiner, anbefalingssystemer og spørgsmålsbesvarelse. Det anvendes ofte i kombination med graph-embedding-teknikker som TransE, RotatE eller ConvE for at lære en scorefunktion over tripletter (hoved, relation, hale).
Formel
f(h, r, t) = ||h + r - t|| (TransE)Kodeeksempel
import numpy as np
def transe_score(h, r, t, embeddings):
# h, r, t are index into embeddings
h_vec = embeddings[h]
r_vec = embeddings[r]
t_vec = embeddings[t]
return -np.linalg.norm(h_vec + r_vec - t_vec)
# Example usage
# embeddings = np.random.randn(num_entities, dim)
# score = transe_score(0, 1, 2, embeddings)Simpel implementering af TransE-scorefunktionen til knowledge graph completion.
Oprindelse
Sammensat af 'knowledge graph' (vidensgraf) og 'completion' (fuldførelse). Begrebet opstod omkring 2010'erne med fremkomsten af vidensgrafer som Freebase og WordNet.