ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Inductive Representation Learning on Large Graphs (GraphSAGE) 정리
    AI/GNN 2022. 1. 19. 14:59
    728x90

    Inductive Representation Learning on Large Graphs (GraphSAGE) 정리

     

     

     

     

    들어가기 전에...

     

     

    https://asidefine.tistory.com/159

     

    Semi-Supervised Classification with Graph Convolutional Networks (GCN) 정리 및 코드 분석

    0. 들어가기 전에 1) Graph Representation 먼저 GCN을 설명하기 앞서 필요한 개념들을 설명하겠습니다. 그래프는 일반적으로 행렬로 표현합니다.  첫번째로 인접 행렬은 노드 간의 연결 여부를 표현합

    asidefine.tistory.com

     

     

    커다란 그래프에서 일반적으로 노드들 사이의 관계는 인접 행렬(adjacency matrix)의 형태로 주어집니다. 이때 인접 행렬은 노드의 수가 많아지면 많아질수록 차원이 점점 커지며, 동시에 점점 Sparse해집니다. Sparse Vector를 다루는 것은 쉽지 않은 일입니다.

     

     

    이후에 이런 문제를 해결하기 위하여 그래프 임베딩이라는 개념을 통해 더 작은 차원으로 줄여서 사용합니다. 노드들의 관계를 저차원으로 표현할 수 있다면 각각의 노드 사이의 관계를 보다 효과적으로 판단할 수 있게 될 것입니다. 그래프를 입력으로 해서 Node(혹은 정점, Vertex)의 임베딩을 만들어내는 네트워크를 Graph Neural Network라고 합니다.

     

     

     

     

    graphSAGE 이전의 GCN과 같은 기존 GNN 방식들은 그래프 상의 일부 node edge ground truth를 아는 상태에서 나머지 node edge의 값을 추정하는 것으로, 주어진 node들에 관해서만 예측 가능합니다. 이를 Transductive Learning이라고 합니다. 그래서 보지 못한 노드들에 대해서는 임베딩을 만드는 데에 어려움이 있었고 이에 따른 여러 가지 제약들이 있었습니다.

    [However, most existing approaches require that all nodes in the graph are present during training of the embeddings; these previous approaches are inherently transductive and do not naturally generalize to unseen nodes.]

     

     

    이를 극복하고자 graphSAGE에서는 주어진 Graph 외에서, 새로운 node에 대해서도 합리적으로 추론할 수 있는 새로운 method을 제안합니다. (Inductive Learning)

    [we present GraphSAGE, a general inductive framework that leverages node feature information (e.g., text attributes) to efficiently generate node embeddings for previously unseen data ]

     

     

     

     

     

    1. Introduction

     

     

    앞서 말씀드린 inductive learning은 지금껏 본 적이 없는 Node에 대해 일반화를 하는 것은 이미 알고리즘이 최적화한 Node 임베딩에 대해 새롭게 관측된 subgraph를 맞추는 (align) 작업이 필요하기 때문에 매우 어렵습니다. 

    [ The inductive node embedding problem is especially difficult, compared to the transductive setting, because generalizing to unseen nodes requires “aligning” newly observed subgraphs to the node embeddings that the algorithm has already optimized on.]

     

     

    이런 inductive model는 반드시 Node의 Graph 내에서의 지역적인 역할과 글로벌한 위치 모두를 정의할 수 있는 Node의 이웃의 구조적인 특성을 학습해야 합니다. 

    [ An inductive framework must learn to recognize structural properties of a node’s neighborhood that reveal both the node’s local role in the graph, as well as its global position. ]

     

     

     

     

    =>  따라서 graphSAGE는, 

     

    (1) 새로운 node들에 대해서도 일반화할 수 있는 embedding function을 학습하기 위해 node feature들(e.g. text attributes, node profile information, node degrees )을 활용할 것입니다. node feature들을 포함함으로써, 각 노드들의 이웃의 topological structure 뿐만이 아니라 이웃의 node feature들의 distribution까지 학습할 것입니다. 

    [Unlike embedding approaches that are based on matrix factorization, we leverage node features (e.g., text attributes, node profile information, node degrees) in order to learn an embedding function that generalizes to unseen nodes. By incorporating node features in the learning algorithm, we simultaneously learn the topological structure of each node’s neighborhood as well as the distribution of node features in the neighborhood] 

     

     

    (2) 또한 모든 graph에서 보이는 structural feature들 (e.g., node degrees) 또한 활용할 것이기 때문에 node feature들 없는 graph에도 적용할 수 있습니다. 

    [our approach can also make use of structural features that are present in all graphs (e.g., node degrees). Thus, our algorithm can also be applied to graphs without node features.]

     

     

     

     

     

     

    train 시에는, 

    각 node들에 대해서 고유의 embedidng vector들을 학습하는 것 대신에, 위 사진처럼  한 노드의 local neighborhood부터 feature information을 aggregate하는 aggregator function들의 집합을 학습할 것입니다. 각 aggregate 함수들은 주어진 하나의 노드로부터  a different number of hops, or search depth 정보를 학습하게 됩니다. 

    [Instead of training a distinct embedding vector for each node, we train a set of aggregator functions that learn to aggregate feature information from a node’s local neighborhood (Figure 1). Each aggregator function aggregates information from a different number of hops, or search depth, away from a given node.]

     

     

    test (evaluate, inference) 시에는, 

    이 aggregation 함수들을 적용해서 한번도 보지 못한 노드들에 대해서 embedding을 생성합니다. 이전 연구들처럼  task-specific supervision없이도 학습할 수 있도록 unsupervised loss function을 사용합니다. 그리고 또한 graphSAGE가 fully supervised한 방식으로 학습될 수 있다는 것을 보여줄 것입니다. 

    [At test, or inference time, we use our trained system to generate embeddings for entirely unseen nodes by applying the learned aggregation functions. Following previous work on generating node embeddings, we design an unsupervised loss function that allows 융GraphSAGE to be trained without task-specific supervision. We also show that GraphSAGE can be trained in a fully supervised manner.]

     

     

     

     

    2. Related Work

     

     

    전반적인 GNN 분야의 변천사를 요약합니다. 

     

     

     

    1) Factorization-based embedding approachs 

     

    :  저차원으로 node을 embedding하려는 시도는 random walk statistics이나 matrix-factorization 기반의 방식이 존재했습니다. 하지만 이런 방식의 학습 방법들은 개별 노드들을 직접 embedding하기 때문에 본질적으로 transductive할 수밖에 없습니다. 그래서 새로운 node들에 대해서 학습하기 위해선 SGD과 같은 방법들을 통해 expensive하게 추가적인 학습을 했어야만 했습니다. 

    이를 극복한 Planetoid-I 방식이 있긴 있으나, 이 모델은 그래프의 구조적인 정보를 inference 중에 담지 못한다는 한계가 있습니다. (그래도 그래프의 구조를 regularization의 형태로 반영하긴 했다 합니다)

     

    =>  이런 기존의 방식과 달리, 기존에 보지 못했던 노드들의 embedding을 위해 feature information에 대해서 leverage할 것입니다!  

     

     

     

    2) Supervised learning over graphs 

     

    앞서 말씀드린 node embedding 방식을 넘어서, graph로 이뤄진 data을 supervised learning을 기반으로 학습할 수 있습니다. 

    즉 다시 말해서, 다양한 graph kernel들로부터 feature vector을 추출할 수 있는 kernel-based 학습으로 접근한 것입니다. 

     

    graph kernel : 그래프에서 내적을 계산하는 커널 함수입니다. 그래프 커널은 그래프 쌍의 유사성을 측정하는 함수로 직관적으로 이해할 수 있습니다. 고정된 feature vector들을 transform하는 feature extraction 없이 svm과 같은 학습 알고리즘을 통해서 graph에서 직접 작동합니다.

    [ In structure mining, a graph kernel is a kernel function that computes an inner product on graphs.[1] Graph kernels can be intuitively understood as functions measuring the similarity of pairs of graphs. They allow kernelized learning algorithms such as support vector machines to work directly on graphs, without having to do feature extraction to transform them to fixed-length, real-valued feature vectors. ] 

     

     

    => 이전의 접근들은 graph 자체나 subgraph들을 분류하려는 시도를 했다면, 우리는 각 개별 노드에 대해서 유용한 representation을 생성하기 위해 supervised learning을 사용할 것입니다. 

     

     

     

     

    3) Graph Convolutional Networks 

     

     

    최근 몇 년 간 CNN이 graph 적용되는 구조들이 제안이 되었는데, 대부분의 방식들이 큰 graph들을 scale하지 않거나 그냥 graph 자체를 classification하는 데에 그쳤습니다. 

     

    => 하지만, 우리의 접근은 GCN과 유사하게, GCN의 연장선에서 GCN과 달리 transductive하지 않은, 즉 inductive하게 접근할 것입니다. 

     

     

     

     

    3. Proposed Method : GraphSAGE

     

     

    우리의 접근법의 가장 중요한 아이디어는 Node의 지역 이웃으로부터 Feature Information을 통합하는 방법에 대해 학습한다는 것입니다. 먼저 3.1에서는 GraphSAGE 모델의 파라미터가 이미 학습되어 있다고 가정하고 GraphSAGE의 임베딩 생성 알고리즘에 대해 설명할 것이고, 이후 3.2에서는 Stochastic Gradient Descent Backpropagation 기술을 통해 모델이 어떻게 학습되는지 설명합니다. 

     

     

     

    3.1. Embedding Generation (i.e., forward propagation) algorithms

     

     

    먼저 3.1에서는 GraphSAGE 모델의 파라미터가 이미 학습되어 있다고 가정하고 GraphSAGE의 임베딩 생성 알고리즘에 대해 설명할 것입니다. 

     

    첫 번째는  개의 Aggregator Function으로, 라고 표현되며, 이 함수는 Node 이웃으로부터 정보를 통합하는 역할을 수행합니다.

    두 번째는 Weight Matrices의 집합으로, 라고 표현되며, 이들은 모델의 다른 layer나 search depth 사이에서 정보를 전달하는데 사용됩니다.

     

     

    다음은 파라미터 학습 과정을 나타낸 것이다.

    알고리즘1의 바깥 Loop의 각 단계를 살펴보면, 는 그 단계에서의 Node의 Representation을 의미합니다.

     

    위에서 확인할 수 있는 직관은 각 iteration 혹은 search depth에서 각각의 모든 Node는 그의 지역 이웃으로부터(Line 4) 정보들을 모으고(Line 5), 이러한 과정이 반복되면서 Node는 Graph의 더 깊은 곳으로부터 정보를 증가시키면서 얻게 된다는 것입니다.

     

     

    Line 4 : 각 Node v 는 그것의 바로 이웃(Immediate Neighborhood)에 속하는 Node들의 Representation을 하나의 벡터 로 합산합니다.

    ( + 이때 이 합산 단계는 바깥 Loop의 이전 반복 단계(k-1)에서 생성된 Representation에 의존하고 k=0 일 때는 Input Node Feature가 Base Representation의 역할을 하게 됩니다

    ( + 사실 여기서의 Aggregator Function은 다양하게 변형될 수 있으며, 여러 방법에 대해서는 3.3에서 자세히 다루게 됩니다.  )

     

    Line 5 : 이웃한 Feature 벡터들을 모두 통합한 다음, 모델은 Node의 현재 Representation과 통합된 이웃 벡터를 결합한 뒤 비선형 활성화 함수를 통과시킵니다.

     

    Line 9 : 최종적으로 depth K에 도달하였을 때의 Representation

     

     

    =>  실제로 위의 알고리즘 1처럼 모든 이웃 집합을 사용하지는 않고, 고정된 크기의 이웃 집합을 샘플링하여 사용합니다. 이렇게 함으로써 각 Batch의 계산량을 동일하게 유지할 수 있습니다.   는 User-specified 상수이며, 실제 적용할 때 K=2와 으로 했을 때 좋은 성능을 보였다고 합니다.

     

     

     

     

     

    위 알고리즘 1을 mini batch 환경에서 일반화하여 확장한 것이 아래의 알고리즘 2입니다.

     

    알고리즘1을 Mini-batch 환경으로 확장하기 위해서는 먼저 depth  까지 필요한 이웃 집합을 추출해야 합니다. 이후 안쪽 Loop(알고리즘1의 Line 3)를 실행하는데, 이 때 모든 Node를 반복하는 것이 아니라 각 depth에서의 반복(recursion)을 만족하는데 필요한 Represention에 대해서만 계산합니다.

     

    전체적인 형태는 이전과 유사한 것처럼 보이지만, 조금 달라진 점은 1-7번까지의 Line이 새로 추가되었다는 점입니다. 기본적인 아이디어는 필요한 모든 노드들을 미리 저장해두는 것입니다. 필요한 노드들만을 모아 미리 가지고 있게 됩니다.

     

     

     

     

     

    이를 그림으로 나타내면 아래와 같게 됩니다.

     

     

    가운데 빨간 색 노드가 우리가 뽑은 배치에 들어간 노드라고 한다면, 이 노드가 에 속한 노드가 될 것입니다. 이 노드의 Neighbor들을 샘플링한 것이 이 되고, 다시 에 속해있는 노드들의 Neighbor를 모은 것이 가 됩니다. 따라서 어떠한 노드가 주어졌을 때, 그 노드와 바로 연결되어 있는 노드가 k=1에 속한 노드가 되고, k=1에 있는 노드들과 연결되어 있는 노드들이 k=2에 속한 노드가 되는 것이죠. 결과적으로 k=2에 속한 노드를 이용해 k=1에 속한 노드들의 feature를 구하고, 이를 이용해 최종적으로 우리가 원하는 노드의 feature를 구하게 되는 것입니다.

     

     

     

     

     

    3.2. Learning the parameters of GraphSAGE

     

     

    3.2에서는 Stochastic Gradient Descent Backpropagation 기술을 통해 모델이, 즉 파라미터가 어떻게 학습되는지 설명합니다. 

     

    Graph 기반의 Loss 함수는 인접한 Node들이 유사한 Representation을 갖도록 하게 하고 서로 멀리 떨어져 있는 Node들은 다른 Representation을 갖게 만듭니다. 각 노드에 대하여 embedding lookup을 통해 각각의 embedding을 학습하던 이전의 접근법들과 다르게, 이 loss function의 input인 representations zu는 그 이웃 노드까지 포함한 특징으로부터 생성됩니다. 이러한 비지도 학습 세팅은 Node Feature가 서비스 혹은 정적인 Repository에 있는 downstream 머신러닝 application에 적용될 때의 상황을 모방하게 됩니다.

    • v: u의 fixed-length random walk 위에 공동? 등장하는 노드
    • σ: sigmoid function
    • Pn: negative sampling distribution
    • Q: negative sample 수

     

    => 이때 task에 따라 그에 적합하도록 위의 Loss를 Supervised한 세팅으로 바꾸는 것 (이를테면 Cross Entropy)도 가능합니다.

     

     

     

     

    3.3. Aggregator Architectures

     

     

    문장에서의 단어 등과 다르게 노드들 사이에는 순서가 없다는 사실에 주의해야 합니다. 따라서 이웃하는 노드들을 입력으로 받는 Aggregator는 이러한 순서에 영향을 받지 않는 함수여야 합니다. 따라서 우리의 이상적인 aggregator는 Input이 순서를 바꿔도 상관 없도록 symmetric해야하며, 동시에 여전히 학습 가능해야 하며 높은 representational capacity를 유지해야 합니다. (Symmetry property는 우리의 NN model이 학습되어 임의의 순서 이웃 노드 feature set에 적용될 수 있음을 보장)

     

     

     

    (0) GCN Aggregator 

     

    알고리즘 1과 동일한 듯 

     

     

    (1) Mean Aggregator

     

    가장 직관적으로 떠올릴 수 있는 함수는 아마 평균이 될 것입니다. 이때 Mean을 사용하는 경우에는 Concat 연산을 따로 적용하지 않는다는 점에 주의해야합니다.

    알고리즘 1의 4~5줄을 다음과 같이 변형하면 GCN의 inductive한 변형 버전을 만들어낼 수 있습니다.

    위 식은 Localized Spectral Convolution의 개략적인 선형 근사이기 때문에 이를 Modified Mean-based Aggregator Convolutional이라고 부릅니다. 

     

     

    (2) LSTM Aggregator

     

    LSTM의 경우 표현력에 있어서 장점을 지니지만 본질적으로 대칭적이지 않기 때문에 permutation invariant 하지 않습니다. (larger expressive capability, but not symmetric (sequential))

    따라서 본 논문에서는 LSTM을 Node의 이웃의 Random Permutation에 적용함으로써 순서가 없는 벡터 집합에 대해서도 LSTM이 잘 동작하도록 했습니다.

     

     

     

    (3) Pooling Aggregator

     

    Pooling Aggregator는 대칭적이면서도 학습 가능합니다. 각 이웃의 벡터는 독립적으로 fully-connected된 신경망에 투입된다. 이후 이웃 집합에 Elementwise max-pooling 연산이 적용되어 정보를 통합합니다.

     

    이론 상으로 max-pooling 이전에 여러 겹의 layer를 쌓을 수도 있지만, 본 논문에서는 간단히 1개의 layer 만을 사용하였는데, 이 방법은 효율성 측면에서 더 나은 모습을 보여줍니다. W대신 더 복잡한 Multi-layer를 사용하는 것도 물론 가능하지만, 여기에서는 단순한 Single-layer를 사용합니다. 이웃 각각의 벡터들 중에서 중요한 정보만을 뽑아서 반영한다고 생각할 수 있게 됩니다.

     

    계산된 각 피쳐에 대해 max-pooling 연산을 적용함으로써 모델은 이웃 집합의 다른 측면을 효과적으로 잡아내게 됩니다. 물론 이 때 어떠한 대칭 벡터 함수든지 max 연산자 대신 사용할 수 있습니다.

     

    본 논문에서는 max-pooling과 mean-pooling 사이에 있어 큰 차이를 발견하지 못하였고 이후 논문에서는 max-pooling을 적용하는 것으로 과정을 통일했습니다.

     

    LSTM과 Pooling이 실험 결과가 좋았고, LSTM은 Pooling에 비해 매우 느렸다고 합니다.

     

     

    4. Experiments

     

     

    실험은 아래와 같이 크게 3가지 benchmark task로 구성됩니다. 

     

    (1) Citation Data

    큰 citation datatset (Web of Science)에 있는 논문의 subject category를 예측하는 task 

    (2) Reddit Data 

    Reddit에 있는 게시물들이 속한 커뮤니티를 구분하는 것

    (3) Protein-protein interaction (PPI)

    다양한 생물학적 Protein-protein interaction 그래프 속에서 protein 역할들, 함수를 분류하는 것

     

     

    => 이를 통해 training 중에 보지 못했던 node들에 대한 prediction을 수행하고, PPI dataset에 대해서는 아예 보지 못한 그래프로 test합니다. 

     

     

     

    4.1. Inductive learning on evolving graphs : Citation and Reddit data

    4.2. Generalizing across graphs : Protein-protein interactions

    4.3. Runtime and parameter sensitivity 

    4.4. Summary comparison between the different aggregator architectures

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    5. Theoretical analysis

     

     

     

    이 부분에서는 GraphSAGE가 어떻게 graph structure에 대해서 학습할 수 있는지를 증명할 것입니다. 

     

    GraphSAGE가 노드의 clustering coefficient(결집 계수, 노드에서 한 개 떨어진 이웃들의 triangles의 proportion)를 예측하도록 학습할 수 있는지 살펴볼 것입니다. 그리고 이 증명이 왜 GraphSAGE가 GCN의 성능을 능가했는지 insight을 제공합니다. 

     

    Clustering Coefficient(결집 계수)란, 네트워크가 얼마나 뭉쳐있는지를 나타내는 지표입니다. 결집계수는 추이성(Transitivity)을 기반으로 합니다. 이는 A->B이고 B->C이면 A->C가 되는 성질을 말합니다. 문제는 네트워크 그래프의 노드들은 항상 추이성을 가지지 않을 수도 있다는 것에 있습니다. A가 B와 연결되고, B가 C와 연결되어있다고 하더라도, A가 C와 반드시 연결되지 않을 수도 있기 때문입니다. 

    뭉쳐있는 정도를 얘기하다가 추이성을 꺼낸 이유는, 우리가 노드들이 똘똘 뭉쳐있다는 것을 "추이성" 가지고 정의할 것이기 때문입니다. 즉 A->B 이고, B->C일때 A->C인 경우 A, B, C는 뭉쳐있다고 보자고 정의하는 것입니다. 이를 바탕으로 결집계수가 정의됩니다.

    수식으로 정의하자면, 아래와 같습니다. TΔ는 A-B, B-C, C-A로 연결된 3개의 노드쌍을 모아놓은 집합이고, T는 A-B, B-C로 연결된 노드쌍의 집합입니다. 즉 전체 A-B, B-C로 연결된 전체 노드쌍들 중에서 C-A가 연결까지 노드쌍의 비율을 계산하는 것입니다.

    연결된 노드 삼중체들의 모든 가중치 합을 구하고, 삼각형을 이루는 삼중체들의 가중치 합과의 비율을 살펴보는 것입니다. Opsahl은 삼중체를 이루는 각 간선 가중치의 산술평균 또는 기하평균, 최댓값, 최솟값을 후보로 제시했습니다. 네트워크에 따라 실험을 통해 적절한 가중치 계산법을 사용해야 하는 것을 추천했습니다.

    이 결집 계수를 전체 네트워크를 대상으로 계산하게 되면 전역 결집 계수(Global Clustering Coefficient), 한 노드 주변의 노드들이 얼마나 뭉쳐있는지는 지역 결집계수(Local Clustering Coefficient)가 됩니다. 또한 모든 노드에 대해서 지역 결집 계수를 계산하고 그 평균을 구한 것은 네트워크 평균 결집 계수(Network Average Clustering Coefficient)라고 합니다.  

    랜덤 그래프의 경우 그래프의 규모가 커질수록 결집계수는 0에 가까워지는 특징이 있습니다. 따라서 결집계수가 높게 나오는 것은 랜덤 그래프가 아닌 노드 간의 연결이 뚜렷한 그래프라고 볼 수 있습니다. 
     

     

    결집 계수

     

     

    전역 결집 계수 (Global Clustering Coefficient)
    지역 결집 계수 (Local Clustering Coefficient) / A_xy 는 x와 y가 연결되어 있음을 의미. 즉 i의 모든 이웃들 중에서 2개씩 고른 쌍 중에서 연결되어 있는 쌍들의 비율을 계산하는 것.

     

     

     

    어떻게 Algorithm 1에서 Clustering Coefficient을 arbitrary degree of precision으로 근사 가능한지 아래의 사진으로 증명합니다. 

     

    각 노드가 unique한 feature representation을 갖는다면, 노드를 indicator vector로 맵핑하거나 노드의 이웃들을 확인할 수 있도록 학습할 수 있을 것이라는 가정 하에, node feature matrix을 continuous random distribution으로 sampling하는 경우에서도 local graph structure에 대해 학습하도록 합니다. 즉 위 정리는, 만약 모든 Node의 feature가 고유한 값을 가질 때, Graph 속에서 Clustering Coefficient을 근사할 수 있는 파라미터 세팅이 존재함을 의미합니다. 

     

     

    6. Conclusions 

     

     

    Summary 

     

    1. 새로운 node들에 대해 embedding을 생성할 수 있는 새로운 접근 방식을 제시했습니다.

    [We introduced a novel approach that allows embeddings to be efficiently generated for unseen nodes]

     

    2. 이웃 노드들을 sampling하는 방식을 통해 SOTA baseline들의 성능을 뛰어넘었고, local graph structure들에 대해서 어떻게 학습할 수 있는지 Theoretical Analysis에서 살펴보았습니다. 

    [GraphSAGE consistently outperforms state-of-the-art baselines, effectively trades off performance and runtime by sampling node neighborhoods, and our theoretical analysis provides insight into how our approach can learn about local graph structures. ]

     

     

     

     

    Future Works 

     

     

    1. 우리의 graphSAGE을 확장하여, directed graph나 multi-modal graph에 적용 가능할 것이라 합니다. 

    [A number of extensions and potential improvements are possible, such as extending GraphSAGE to incorporate directed or multi-modal graphs]

     

    2. non-uniform neighborhood sampling functions이나 이런 방식의 함수들을 graphSAGE을 최적화하는 방법 중 하나로 사용해도 좋을 것입니다.

    [A particularly interesting direction for future work is exploring non-uniform neighborhood sampling functions, and perhaps even learning these functions as part of the GraphSAGE optimization.]

     

     

    추가적으로...

     

     

    Attention Mechanism은 Graph의 모든 Edge에 공유되어 적용되기 때문에 전체 Graph에 대한 접근 없이도 학습이 진행될 수 있으며 이에 따라 Inductive Learning을 가능하게 합니다.

     

    GraphSAGE는 각 Node에 대해 고정된 수의 이웃을 추출하기 때문에 계산량을 일정하게 유지하게 되는데, 이는 추론을 행할 때 전체 이웃집단에 대해 접근할 수 없게 만드는 현상을 초래합니다. 사실 본 논문에서는 LSTM Aggregator의 성능이 가장 좋았다고 기술하고 있는데, 이는 이웃 집단 내에서 각 이웃사이의 순서가 중요하다는 것을 암시하는 것과 다름이 없습니다. 만약 다른 Max Pooling Aggregator나 Mean Pooling Aggregator를 사용하였는데, 각 이웃 Node 사이의 순서 혹은 다른 개별적인 특징이 중요하다면, GraphSAGE는 이러한 부분까지는 커버하지 못하는 단점을 지니게 됩니다. 본 논문에서 제시하는 GAT는 이러한 한계에서 자유로우며 이웃 전체에 대해 접근하면서도 효율적으로 학습을 진행할 수 있다는 장점을 지닙니다.

     

     

     

    Reference

     

    * 논문 

     

    https://www.youtube.com/watch?v=y52qSiGOhbs 

    https://greeksharifa.github.io/machine_learning/2020/12/31/Graph-Sage/

     

    Python, Machine & Deep Learning

    Python, Machine Learning & Deep Learning

    greeksharifa.github.io

    https://github.com/lshhhhh/deep-learning-study/wiki/Inductive-Representation-Learning-on-Large-Graphs

     

    GitHub - lshhhhh/deep-learning-study: from https://github.com/hunkim/DeepLearningZeroToAll

    from https://github.com/hunkim/DeepLearningZeroToAll - GitHub - lshhhhh/deep-learning-study: from https://github.com/hunkim/DeepLearningZeroToAll

    github.com

    https://kangbk0120.github.io/articles/2020-03/graphsage

     

    Inductive Representation Learning on Large Graphs, GraphSage with Stellargraph

    GraphSage 강병규 오늘은 GCN의 발전된 형태인 GraphSage를 읽고 간단하게 내용을 정리해봤습니다. 들어가며 커다란 그래프에서 일반적으로 노드들 사이의 관계는 인접 행렬(adjacency matrix)의 형태로 주

    kangbk0120.github.io

     

     

    * Graph Kernel 

     

    https://chioni.github.io/posts/ddgk/

     

    Learning Graph Representations for Deep Divergence Graph Kernels (WWW 2019)

    실습으로 살펴봤던 GCN이 수행한 Task는 하나의 그래프 네트워크에서 각 노드의 Class를 맞추는 Node Classification Task였다. 이외에도 그래프를 재구성하여 missing edge를 찾는 link prediction Task / 그래프 자

    chioni.github.io

    http://mlwiki.org/index.php/Graph_Kernel

     

    Graph Kernel - ML Wiki

    A kernel of a graph $K \subset V$ is ($V$ - all nodes of a graph) $\forall a \in K, \not \exists b: a \to b$ no alternative $a$ inside the kernel $K$ is better than any other alternative $b$ inside $K$ $\forall c \not \in K, \exists a \in K: a \to c$ each

    mlwiki.org

    https://en.wikipedia.org/wiki/Graph_kernel

     

    Graph kernel - Wikipedia

    In structure mining, a graph kernel is a kernel function that computes an inner product on graphs.[1] Graph kernels can be intuitively understood as functions measuring the similarity of pairs of graphs. They allow kernelized learning algorithms such as su

    en.wikipedia.org

     

    * Clustering Coefficient 

     

    https://bab2min.tistory.com/557

     

    [네트워크 이론] 결집계수(Clustering Coefficient)

    앞서서 네트워크 상에서 어떤 노드가 중요한지를 알아보는 중심성을 살펴봤는데, 이번에는 네트워크가 얼마나 똘똘 뭉쳐있는지를 알려주는 '결집계수(Clustering Coefficient)'에 대해서 살펴보도록

    bab2min.tistory.com

     

    728x90
Designed by Tistory.