Графы знаний
Knowledge Graph Embeddings
Google Knowledge Graph содержит 70 миллиардов фактов - и всё равно неполон. Знает ли Wikidata всех детей Пушкина? Все работодателей каждого учёного? Дополнение знаниевых графов через ML-предсказание пропущенных связей - задача, где в 2013-2019 годах появилось несколько элегантных геометрических решений.
- **Google/Bing Knowledge Panels:** предсказание связанных фактов в поисковой выдаче
- **Recommendation systems:** граф пользователь-товар-категория для предсказания интересов
- **Drug discovery:** предсказание взаимодействий лекарство-белок-заболевание
TransE: отношение как трансляция
Google Knowledge Graph содержит 70 миллиардов фактов вида (субъект, отношение, объект): (Москва, столица, Россия), (Пушкин, написал, Евгений_Онегин). Граф неполон - многие факты отсутствуют. **KG Embeddings** отображают сущности и отношения в векторное пространство, чтобы предсказывать недостающие триплеты.
**TransE** (Bordes et al., 2013) - первая простая идея: если тройка (h, r, t) истинна, то вектор головы плюс вектор отношения должен быть близок к вектору хвоста. Отношение работает как трансляция (сдвиг) в пространстве.
- **Сильные стороны:** прост, быстро обучается, хорошо моделирует 1-to-1 и antisymmetric отношения
- **Слабые стороны:** не может моделировать симметрию (женат_на), reflexivity, composition через несколько шагов
- **Сложность:** O(n_e + n_r) параметров, O(1) на scoring
TransE не может корректно моделировать симметричное отношение 'является_другом'. Почему?
DistMult: билинейная диагональная модель
**DistMult** (Yang et al., 2015) заменяет сложение на мультипликацию: вектор отношения r - это диагональная матрица, скорингующая согласованность головы и хвоста. Формально: score(h, r, t) = h^T · diag(r) · t = Σ h_i · r_i · t_i.
**Интуиция:** h · r · t высокое, когда h и t 'согласованы' в направлениях, усиливаемых r. Если r_i > 0 - предпочтительны h_i и t_i одного знака; если r_i < 0 - разного.
| Свойство отношения | Пример | TransE | DistMult |
|---|---|---|---|
| Antisymmetric | родитель_of | ✓ | ✗ |
| Symmetric | женат_на | ✗ | ✓ |
| Inverse | купил / продал | ✓ | ✗ |
| 1-to-N | работает_в | ✗ (грубо) | частично |
Почему score(h,r,t) = score(t,r,h) в DistMult?
RotatE: отношение как поворот в комплексной плоскости
**RotatE** (Sun et al., 2019) берёт лучшее из обоих миров: сущности - это комплексные векторы, отношение r действует как поэлементный поворот: t_i = h_i · r_i, где |r_i| = 1 (r_i = e^{iθ_i}).
Что означает ограничение |r_i| = 1 в RotatE?
ComplEx: комплексные эмбеддинги для антисимметрии
**ComplEx** (Trouillon et al., 2016) использует комплексные векторы для сущностей и отношений, но без ограничения |r_i| = 1. Scoring: Re(Σ h_i · r_i · conj(t_i)) - вещественная часть трилинейной формы с комплексным сопряжением.
| Модель | Параметры | Симметрия | Антисимметрия | Инверсия | Состав | FB15k MRR |
|---|---|---|---|---|---|---|
| TransE | 2n+m | ✗ | ✓ | ✓ | ✓ | 0.294 |
| DistMult | 2n+m | ✓ | ✗ | ✗ | ✗ | 0.241 |
| ComplEx | 4n+2m | ✓ | ✓ | ✓ | ✗ | 0.347 |
| RotatE | 4n+m | ✓ | ✓ | ✓ | ✓ | 0.338 |
**Evaluation metrics для KG Embeddings:** MRR (Mean Reciprocal Rank) - среднее 1/rank_true по всем тестовым триплетам. Hits@k - доля триплетов, где истинная сущность вошла в top-k. Тест-бенчмарки: FB15k-237 (237K триплетов, 14K сущностей), WN18RR (93K триплетов, WordNet).
Почему DistMult не может моделировать антисимметричные отношения, а ComplEx - может?
Прогресс KG Embedding моделей
- **TransE (2013):** h + r ≈ t, прост, но не может моделировать симметрию
- **DistMult (2015):** h · diag(r) · t, симметричен по построению, слаб на антисимметрии
- **RotatE (2019):** r как поворот e^{iθ}, моделирует все паттерны кроме composition
- **ComplEx (2016):** Re(h · r · conj(t)), сочетает симметрию и антисимметрию
Связанные темы
KG Embeddings соединяют символьный ИИ (графы знаний) с нейросетевыми методами.
- GNN на графах знаний — Следующий шаг: графовые нейросети вместо прямых embedding lookup
- Word Embeddings (Word2Vec, GloVe) — Аналогичная идея: семантика через геометрию векторного пространства
Вопросы для размышления
- Какие паттерны отношений реального мира (например, в медицинском знаниевом графе) не моделируются ни одной из рассмотренных моделей?
- Как метрика Hits@10 может вводить в заблуждение при сравнении моделей на графах с разной структурой?
- Почему задача link prediction в знаниевых графах принципиально сложнее, чем предсказание отсутствующих рёбер в обычных графах?