Описание
EvolveGCN — это open-source проект, предлагающий реализацию кода для Evolving Graph Convolutional Networks (EvolveGCN), нового подхода для динамических графов. Этот фреймворк, подробно описанный в статье, опубликованной на AAAI 2020, решает задачу моделирования графовых структур, которые изменяются со временем. Репозиторий предоставляет полный набор инструментов и скриптов, необходимых для воспроизведения экспериментов и изучения возможностей EvolveGCN.
Проект включает код для обработки и подготовки различных типов данных динамических графов. Описаны семь наборов данных, использованных в оригинальной статье, включая стохастические блочные модели, транзакционные сети биткоина (OTC и Alpha), социальную сеть UC Irvine, данные автономных систем, сеть гиперссылок Reddit и набор данных elliptic. Предоставлены инструкции по загрузке и подготовке этих наборов данных, с предварительно обработанной версией набора данных elliptic, доступной по ссылке, хотя обновления отмечают недействительность ссылки и предоставляют инструкции по ручной подготовке.
Настройка EvolveGCN может быть выполнена с использованием Docker, что упрощает конфигурацию среды. Репозиторий содержит Dockerfile, описывающий контейнер для запуска экспериментов на Unix-подобных машинах. Рекомендуется наличие GPU для обучения, с возможностью отключения CUDA при необходимости. Процесс установки включает сборку образа Docker и запуск контейнера, который предоставляет готовую к использованию среду для выполнения кода.
Использование включает выполнение Python-скриптов с конфигурационными файлами, указанными через аргументы командной строки. Скрипт `run_exp.py` является центральным для запуска экспериментов, используя YAML-конфигурационные файлы, которые определяют различные параметры. Проект также поддерживает настройку гиперпараметров, позволяя устанавливать параметры в пределах заданных минимальных и максимальных границ, обеспечивая случайную выборку для каждого запуска. Для детального анализа файлы журналов, сгенерированные во время экспериментов, могут быть обработаны с помощью скрипта `log_analyzer.py` для извлечения метрик оценки на лучшей эпохе валидации.
EvolveGCN особенно актуален для исследователей и практиков в области машинного обучения, графовых нейронных сетей и науки о данных, которые работают с развивающимися или динамическими графовыми данными. Его open-source характер и подробная документация делают его ценным ресурсом для развития области обучения представлений динамических графов и его приложений.
Главное о EvolveGCN
Код для Evolving Graph Convolutional Networks (EvolveGCN)
Разработан для анализа динамических графов
Включает реализации для 7 наборов данных
Предоставляет настройку Docker для управления средой
Поддерживает настройку гиперпараметров с минимальными/максимальными границами
Включает скрипт анализатора журналов для результатов экспериментов
Опубликован на AAAI 2020
Репозиторий с открытым исходным кодом
Требует PyTorch 1.0+ и Python 3.6+
Рекомендуется ускорение на GPU
Начало работы с EvolveGCN
Настройка среды: Установите Docker и драйверы NVIDIA, если используете GPU.
Сборка образа Docker: Перейдите в папку docker-set-up и выполните `sudo docker build -t gcn_env:latest .`.
Запуск контейнера Docker: Выполните `sudo docker run -ti --gpus all -v $( pwd ) :/evolveGCN gcn_env:latest`.
Подготовка данных: Загрузите и поместите наборы данных в папку 'data' согласно инструкциям.
Конфигурация эксперимента: Отредактируйте или создайте YAML-конфигурационные файлы в папке 'experiments'.
Запуск эксперимента: Выполните `python run_exp.py --config_file ./experiments/parameters_example.yaml`.
Анализ результатов: Используйте `log_analyzer.py` для парсинга файлов журналов с целью получения метрик оценки.
Варианты использования EvolveGCN
- Моделирование динамических графов
- Анализ эволюции сетей
- Классификация узлов
- Предсказание связей
- Временное представление графов
- Анализ социальных сетей
- Обнаружение мошенничества







