Графы и сети

Graph Basics

Основы графов

актуальноТекущий рабочий стандарт

Вершины, рёбра, веса и направления. Матрица смежности и список рёбер — два способа хранить одно и то же.

Ключевые тезисы

  • Плотный граф удобно хранить матрицей, разреженный — списком смежности; выбор влияет на всё остальное.
  • Обходы в ширину и глубину дают компоненты связности, расстояния и циклы.
  • Двудольные графы описывают взаимодействия «пользователь — товар» и лежат в основе рекомендаций.

Подробный разбор

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%

Собственный вектор · Математический справочник

Направление, сохраняющееся при линейном преобразовании с точностью до масштаба.