Skip to main content

GNN Practice 1

by @teasgen
Created on November 5|Last edited on November 6
Я имплементировал две графовые свертки: GСN и GAT. А третью GraphSage взял из семинара.
После чего на одинаковом наборе данных Cora обучил графовые нейросети для классификации, для этого реализовал перебор топ3 важных (по моему мнению) гиперпараметров

GraphSage

Гиперпараметры:
  • num_layers: [1, 2, 5]
  • hidden_dim: [32, 64]
  • lr: [1e-2, 1e-3]
Cora dataset

Showing first 10 runs
010203040Step0.511.5
Showing first 10 runs
010203040Step0.20.40.60.8
Run set
52

Лучшая конфигурация для Cora: [5, 32, 1e-2], набирающая test_acc = 0.800 на последнем чекпоинте
CiteSeer dataset

Run set
48

Лучшая конфигурация для CiteSeer: [2, 32, 1e-3], набирающая test_acc = 0.702
Для второго датасета подбор гиперпараметров более важен, чем для Cora, помимо этого обучение сильно дольше, что можно увидеть по логам обучения в колабе. Однако сетка все равано обучалсь до нормального качества.

GСN

Гиперпараметры:
  • num_layers: [1, 2, 5, 10]
  • hidden_dim: [32, 64]
  • lr: [1e-2, 1e-3, 3e-4]
Cora dataset

Run set
52

Лучшая конфигурация: [2, 64, 1e-3], набирающая test_acc = 0.805. Отмечу, что для этой сети сильно важнее подбор гиперпараметров, иначе как видно про графику test_acc многие комбинации просто не подходящие.
CiteSeer dataset

Run set
48

Лучшая конфигурация: [2, 32, 1e-2], набирающая test_acc = 0.711

GAT

Гиперпараметры:
  • num_layers: [1, 2, 5, 10]
  • heads: [1, 2]
  • lr: [1e-2, 1e-3]
Cora dataset

Run set 2
52


Лучшая конфигурация: [1, 64, 1e-3], набирающая test_acc = 0.787 на чекпоинте из 230 эпохи. К моему удивлению эта свертка выступила хуже всех, возможно требуется поискать лучше гиперпараметры или оптимизатор + шедулер, но это занимает очень много времени((


Run set 2
48

Лучшая конфигурация: [2, 32, 1e-2], набирающая test_acc = 0.679

Вывод

Лучшая модель в моем сетапе - GCN, которая в целом дает такой же результат, как и GraphSage, однако последний проще в настройке гиперпараметров. GAT у меня не получилось завести до качества лучше других моделей, так что есть поле для дальнейших экспериментов, однако все предложенные свертки получилось успешно имплементировать и получить приемлимое качество, а так же протестировать на двух open source датасетах.
DatasetModelAccuracy
CoraGraphSage0.800
GCN0.805
GAT0.787
CiteSeerGraphSage0.702
GCN0.711
GAT0.679