Sobes.tech
Senior

¿Qué es la incrustación de grafo de conocimiento (TransE, DistMult, ComplEx, RotatE)?

sobes.tech AI

Respuesta de la IA

El incrustamiento de gráficos de conocimiento es un método para representar entidades y relaciones de un grafo de conocimiento en forma de vectores en un espacio continuo. Esto permite utilizar eficazmente los gráficos de conocimiento en tareas de aprendizaje automático, como la predicción de nuevas conexiones o la clasificación.

Modelos principales:

  • TransE: modela las relaciones como desplazamientos vectoriales. Para un triplete (cabecera, relación, cola), intenta que el vector de la cabecera + el vector de la relación esté cerca del vector de la cola. Modelo simple y rápido, funciona bien para relaciones de tipo "uno a uno".

  • DistMult: utiliza una forma bilineal con una matriz diagonal para las relaciones. Evalúa la plausibilidad del triplete mediante el producto escalar de los vectores de la cabecera, la relación y la cola. Bueno para relaciones simétricas.

  • ComplEx: extiende DistMult al espacio complejo, lo que permite modelar relaciones asimétricas gracias a los números complejos y su conjugado.

  • RotatE: representa las relaciones como rotaciones en el plano complejo. La cabecera gira en un ángulo correspondiente a la relación para obtener la cola. Permite modelar diversas propiedades de las relaciones (simetría, asimetría, inversión).

Ejemplo de uso de TransE (pseudocódigo):

# cabecera + relación ≈ cola
head_vec = embedding['París']
relation_vec = embedding['esCapitalDe']
tail_vec = embedding['Francia']
score = -np.linalg.norm(head_vec + relation_vec - tail_vec)