Назад к подготовке

GraphSAGE, GCN и графовые рекомендации

Как использовать графовые модели в рекомендациях? В чем отличие GCN от GraphSAGE и neighbor sampling подходов?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

В RecSys граф обычно строится из user-item или item-item interactions. GCN агрегирует признаки соседей слоями по графу, а GraphSAGE учит агрегатор и sampling соседей, что удобнее для больших и новых графов.

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

Графовая постановка в рекомендациях появляется естественно: users, items, games, posts или tags становятся nodes, а interactions - edges. Разные типы действий можно хранить как разные edge types или графы. Цель - получить embeddings, которые учитывают не только признаки объекта, но и структуру соседей.

GCN делает message passing: на каждом слое node агрегирует информацию от соседей, поэтому после нескольких слоев representation содержит более широкий graph context. GraphSAGE похож по духу, но делает sampling соседей и учит aggregation function, поэтому лучше масштабируется на большие графы и может работать inductively для новых nodes с признаками.

Для рекомендаций важно сравнивать такие модели с простыми baselines: item-to-item, matrix factorization, two-tower, sequential/transformer recommender. Графовая модель не обязана выиграть, если interactions sparse, граф шумный или latency/complexity слишком высоки.

Теория

Graph RecSys использует структуру взаимодействий как дополнительный источник сигнала, но платит сложностью sampling, обучения и serving.

Типичные ошибки

  • Считать graph model автоматически лучше matrix factorization.
  • Не различать transductive и inductive сценарии.
  • Игнорировать edge types, sampling bias и serving cost.

Как отвечать на собеседовании

  • Объясните user-item graph и message passing простыми словами.
  • Сравните GCN и GraphSAGE через aggregation и neighbor sampling.