Вершины, рёбра, веса и направления. Матрица смежности и список рёбер — два способа хранить одно и то же.
Ключевые тезисы
- Плотный граф удобно хранить матрицей, разреженный — списком смежности; выбор влияет на всё остальное.
- Обходы в ширину и глубину дают компоненты связности, расстояния и циклы.
- Двудольные графы описывают взаимодействия «пользователь — товар» и лежат в основе рекомендаций.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Способы хранения графа
Выбор структуры определяет, какие операции будут быстрыми.
| Структура | Память | Быстро | Медленно |
|---|---|---|---|
| Матрица смежности | проверка ребра | обход соседей разреженного графа | |
| Список смежности | обход соседей | проверка конкретного ребра | |
| Список рёбер | потоковая обработка | любые локальные запросы | |
| CSR | векторизованные операции | изменение структуры |
Реальные графы почти всегда разрежены: у миллиона вершин обычно десятки миллионов рёбер, а не . Поэтому матрицу смежности материализуют редко.
2Графовые признаки для табличных моделей
Самый быстрый способ получить пользу от графа.
- Степень вершины, число треугольников, коэффициент кластеризации.
- Размер компоненты связности и расстояние до известных «плохих» вершин.
- PageRank и персонализированный PageRank относительно множества меток.
- Агрегаты по соседям: средний возраст аккаунта соседей, доля заблокированных.
Эти признаки считаются один раз и подаются в бустинг. На практике такой подход часто обыгрывает графовую нейросеть — при несопоставимо меньшей сложности.
Связанные темы
Машинное обучение на графах
Centrality85%
Центральности · Графы и сетиМеры важности вершины: по числу связей, по посредничеству, по близости и по влиянию соседей.
PageRank85%
PageRank · Графы и сетиСтационарное распределение случайного блуждания по графу с телепортацией. Классический алгоритм ранжирования, который до сих пор используется как признак.
Community Detection85%
Поиск сообществ · Графы и сетиРазбиение графа на плотно связанные группы: клиенты одного круга, связанные аккаунты, тематические кластеры документов.
Graph Embeddings85%
Графовые эмбеддинги · Графы и сетиВекторные представления вершин, в которых близость отражает связанность в графе.
Graph Neural Networks85%
Графовые нейросети · Графы и сетиНейросети, работающие прямо на структуре графа: представление вершины обновляется по представлениям соседей.
Message Passing85%
Передача сообщений · Графы и сетиЕдиная схема, к которой сводятся почти все архитектуры GNN: собрать сообщения от соседей, агрегировать, обновить состояние.
Link Prediction85%
Предсказание связей · Графы и сетиЗадача «появится ли ребро между вершинами»: рекомендации друзей и товаров, достройка графов знаний.
Knowledge Graphs85%
Графы знаний · Графы и сетиФакты в виде троек «субъект — предикат — объект». Структурированная память, которую всё чаще подключают к языковым моделям.
Network Motifs85%
Мотивы и триады · Графы и сетиМаленькие повторяющиеся подграфы, встречающиеся чаще, чем в случайной сети. Хорошие признаки для классификации вершин.
Clustering85%
Кластеризация · Обучение без учителяРазбиение объектов на группы похожих без заранее известных меток.
Eigenvector85%
Собственный вектор · Математический справочникНаправление, сохраняющееся при линейном преобразовании с точностью до масштаба.