Свёрточные сети на графах
Давайте рассмотрим свёрточные сети, но не обычные свёртки, а скорее их аналог для работы с графовыми данными. Граф — это сложный и непонятный для привычных нам нейронных сетей объект. Самый простой способ представить граф для работы с ним — записать его в виде матрицы смежности, в которой каждой вершине соответствует своя строка и свой столбец. В простейшем виде, такая матрица будет содержать только рёбра — единицы в клетках пересечения строк и столбцов, соответствующих связанным вершинам.
Однако мы можем захотеть хранить больше информации в этой матрице. Тогда, например, на диагонали будут находиться состояния вершин, а в клетках рёбер состояние рёбер. Кроме того, эти самые состояния не обязательно представляют из себя одно единственное число: рёбра могут иметь направления и т.д.
В 2015 году учёные из Гарвардского Университета предложили новый подход для работы с графами — Свёрточные сети на графах (Convolutional Networks on Graphs). Решая задачу об извлечении признаков из графового представления молекул, они предложили следующий подход.
Пусть
Такой подход имеет свои плюсы и минусы, и, безусловно, за три прошедших года в работе с графами всё сильно изменилось.
Есть вопросы? Напишите в комментариях!