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.