O KGTK faz referência a documentação do PyTorch-BigGraph (PBG) para explicar
https://torchbiggraph.readthedocs.io/en/latest/related.html
É possível gerar os graph embeddings com 4 operadores:
TransE
Modelo popular na completação de KG devido à sua simplicidade: quando dois embeddings são comparados para calcular a pontuação (score) de uma aresta entre eles, o do lado direito (cabeça, origem) é primeiro traduzido por um vetor vr (da mesma dimensão que os embeddings) que é específico para o tipo de relação. TransE visa dar pontuações mais baixas a entidades que estão próximas, portanto, a pontuação de uma tripla (x, r, y) é calculado como:
onde d é uma função de dissimilaridade (diferença), como a norma L1 ou L2
RESCAL
As relações são representadas como matrizes Mr, e a pontuação de uma tripla (x, r, y) é calculado como:
RESCAL só deve ser considerado para modelos com um grande número de arestas para cada tipo de relação, onde o overfitting não é um problema
DistMult
É um caso especial de RESCAL, no qual as relações são limitadas a matrizes diagonais representadas como vetores vr. A pontuação de uma tripla (x, r, y) é calculada assim:
ComplEx
É semelhante ao DistMult, mas usa embeddings em C e representa os embeddings do lado direito como conjugados complexos dos do lado esquerdo. Isso permite representar relações não simétricas. A pontuação de uma tripla (x, r, y) é calculada como:
Conforme mostrado no artigo original, a pontuação ComplEx pode então ser escrita como um produto escalar.
Eu ainda não consegui entender essa explicações
ResponderExcluirAchei um survey que explica mais -> https://versant-pesquisadedoutorado.blogspot.com/2021/07/knowledge-graph-embedding-survey-of.html
ExcluirO algoritmos implementados atualmente não levam em conta as arestas “atributo” (ie, aresta saindo de aresta).
ResponderExcluirEstão implementando o STAR-E, que usa este modelo, mas ainda está em desenvolvimento.