Что такое knowledge graph embedding (TransE, DistMult, ComplEx, RotatE)?
Ответ от нейросети
sobes.tech AI
Knowledge graph embedding — это метод представления сущностей и отношений из графа знаний в виде векторов в непрерывном пространстве. Это позволяет эффективно использовать графы знаний в задачах машинного обучения, например, для предсказания новых связей или классификации.
Основные модели:
-
TransE: моделирует отношения как векторные сдвиги. Для триплета (голова, отношение, хвост) пытается сделать так, чтобы вектор головы + вектор отношения был близок к вектору хвоста. Простая и быстрая модель, хорошо работает для отношений типа "один-к-одному".
-
DistMult: использует билинейную форму с диагональной матрицей для отношений. Оценивает правдоподобие триплета через скалярное произведение векторов головы, отношения и хвоста. Хорошо для симметричных отношений.
-
ComplEx: расширяет DistMult в комплексном пространстве, что позволяет моделировать асимметричные отношения, благодаря комплексным числам и их сопряжению.
-
RotatE: представляет отношения как вращения в комплексной плоскости. Голова вращается на угол, соответствующий отношению, чтобы получить хвост. Позволяет моделировать различные свойства отношений (симметрия, асимметрия, инверсию).
Пример использования TransE (псевдокод):
# head + relation ≈ tail
head_vec = embedding['Paris']
relation_vec = embedding['isCapitalOf']
tail_vec = embedding['France']
score = -np.linalg.norm(head_vec + relation_vec - tail_vec)