День №3. Что происходит внутри GNN: от математики к PyG
День №3. Что происходит внутри GNN: от математики к PyG Graph Neural Networks: теперь заглянем под капот Мы уже разобрались, зачем бизнесу графы и из чего можно собрать Graph ML-стек. Сегодня отвечаем на более неприятный вопрос: а что GNN вообще делает с графом математически? И так, в основе большинства GNN лежит message passing, то есть каждый узел берёт собственные признаки, получает информацию от соседей, агрегирует её и обновляет своё представление. Один слой GNN видит соседей на расстоянии одного ребра, два слоя уже позволяют учитывать окружение примерно в два шага, и именно так структура графа постепенно превращается в новые embeddings. GCN нормализует и агрегирует признаки соседних узлов, GraphSAGE отдельно агрегирует окружение и особенно удобен, когда модели приходится работать с новыми узлами, а GAT добавляет attention и учится назначать разным соседям разные коэффициенты важности. В актуальном PyTorch Geometric всё это уже реализовано готовыми слоями GCNConv, SAGEConv и GATConv, поэтому страшная математика довольно быстро превращается в несколько строк Python. Для лучшего понимая математики, загляните в шпаргалку, а для того чтобы объединить сложные цифры и код, мы собрали три готовых учебных PyG-пайплайна: GCN, GraphSAGE и GAT. Внутри уже есть датасет Cora, обучение, validation/test split и оценка качества: скачиваем архив, открываем .py в PyCharm или VS Code, устанавливаем зависимости и начинаем тестить. А в следующей части мы разберём, что происходит, когда граф меняется во времени (временные ряды), почему обычной GraphSAGE этого уже недостаточно и зачем появляются Temporal GNN и TGN. Файл для скачивания 👇👇👇 #GraphML #GNN #PyTorchGeometric #GraphSAGE #GCN #GAT #MachineLearning #Нейроманка