GNN(Graph Neural Networks)
μ΄μ λΆν°λ κ·Έλνκ° μμ΄ λΆλ³(Permutation invariant)μ νλ ¬ νμμ΄ λμ΄ μλ€κ³ νκ³ , κ·Έλν μμΈ‘ μμ μ ν΄κ²°νκΈ° μν΄ GNNμ μ¬μ©νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€. GNNμ κ·Έλνμ λͺ¨λ μμ±(λ Έλ, μ£μ§, μ μ)μ λν΄ κ·Έλν λμΉμ±(μμ΄ λΆλ³μ±)μ μ μ§νλ μ΅μ νλ λ³ν κ³Όμ μ λλ€. μ΄λ² κΈμμ Graph Nets architecture schematicsλ₯Ό νμ©ν βλ©μμ§ μ λ¬ μ κ²½λ§(Message Passing Neural Network)β νλ μμν¬λ₯Ό μ΄μ©ν΄μ GNNμ ꡬμΆν΄λ³΄κ² μ΅λλ€. GNNμ βκ·Έλν-μΈ, κ·Έλν-μμβ μν€ν μ²λ₯Ό μ±νν©λλ€. μ΄ μν€ν μ³λ GNN λͺ¨λΈμ΄ λ Έλ, μ£μ§ λ° μ μμ μ λ³΄κ° λ΄κ²¨μλ κ·Έλνλ₯Ό μ λ ₯κ°μΌλ‘ λ°μλ€μ΄κ³ μ λ ₯λ κ·Έλνμ μ°κ²°μ±μ λ³νμν€μ§ μμΌλ©΄μ μλ² λ©μ μ μ§μ μΌλ‘ λ³νν©λλ€.
The Simplest GNN
μ°μ κ·Έλνμ μ°κ²°μ±μ μ¬μ©νμ§ μλ κ°μ₯ κ°λ¨ν GNN μν€ν μ²λΆν° μμνκ² μ΅λλ€. μ΄μ λ€μ΄μ΄κ·Έλ¨μμλ λ¨μνκ² νννκΈ° μν΄ μ€μΉΌλΌλ₯Ό μ¬μ©ν΄μ κ·Έλν μμ±μ νννμ§λ§ μ€μ λ‘λ νΌμ³ 벑ν°λ₯Ό μ¬μ©ν©λλ€.
μ΄ GNNμ κ·Έλνμ κ° κ΅¬μ±μμμ λν΄ λ³λμ λ€μΈ΅ νΌμ νΈλ‘ (MLP)μ μ¬μ©ν©λλ€. μ°λ¦¬λ μ΄κ±Έ GNN λ μ΄μ΄λΌκ³ λΆλ¦ λλ€. κ° λ Έλ 벑ν°μ λν΄ MLPλ₯Ό μ μ©νκ³ νμ΅λ λ Έλ 벑ν°λ₯Ό λ€μ κ°μ Έμ΅λλ€. κ° μμ§μ λν΄μλ λμΌν μμ μ μνν΄μ μ£μ§λ³ μλ² λ©μ νμ΅ν©λλ€. λ μ 체 κ·Έλνμ λν΄μλ λ¨μΌ μλ² λ©μ νμ΅νλ μ μ 컨ν μ€νΈ 벑ν°μ λν΄μλ λμΌν μμ μ μνν©λλ€.
κ°λ¨ν GNNμ λ¨μΌ λ μ΄μ΄ μ΄λ―Έμ§μ λλ€. κ·Έλνκ° μ λ ₯κ°μ΄κ³ κ° κ΅¬μ±μμ(V, E, U)λ MLPμ μν΄ μ λ°μ΄νΈλμ΄ μλ‘μ΄ κ·Έλνλ₯Ό μμ±ν©λλ€.
GNNμ μ λ ₯λ κ·Έλνμ μ°κ²°μ±μ μ λ°μ΄νΈνμ§ μκΈ° λλ¬Έμ μ λ ₯ κ·Έλνμ λμΌν μΈμ μ± λͺ©λ‘(adjacency list)κ³Ό λμΌν μμ νΌμ³ 벑ν°λ‘ GNN μΆλ ₯ κ·Έλνλ₯Ό μ€λͺ ν©λλ€. νμ§λ§ μΆλ ₯ κ·Έλνμλ λ Έλ, μ£μ§ λ° μ μ 컨ν μ€νΈκ° μ λ°μ΄νΈλλ―λ‘ μλ² λ©μ΄ μ λ°μ΄νΈ λμ£ . μ 리ν΄λ³΄λ©΄ GNNμ μ λ ₯ν κ·Έλνμ μ°κ²°μ±μ λ³κ²½νμ§ μκ³ μλ² λ©μ μ μ§μ μΌλ‘ λ³νν©λλ€.
GNN Predictions by Pooling Information
μ, μ΄μ κ°λ¨ν GNNμ ꡬμΆνμ΅λλ€. κ·Έλ λ€λ©΄ μμμ μ€λͺ ν μμ μμ μ΄λ»κ² μμΈ‘μ ν μ μλ κ±ΈκΉμ?
μ¬κΈ°μλ μ΄μ§ λΆλ₯μ κ²½μ°λ₯Ό μ€λͺ νκ² μ§λ§, μ΄ νλ μμν¬λ μ½κ² λ€μ€ ν΄λμ€λ νκ·λ‘ νμ₯ν μ μμ΅λλ€. κ·Έλνμ μ΄λ―Έ λ Έλ μ λ³΄κ° ν¬ν¨λμ΄ μλ€λ©΄, λ Έλμ λν μ΄μ§ μμΈ‘μ μν΄ κ° λ Έλ μλ² λ©μ μ ν λΆλ₯κΈ°(linear classifier)λ₯Ό μ μ©νλ©΄ λ κ²λλ€.
νμ§λ§ λ¬Όλ‘ νμ κ°λ¨ν μΌλ§ μλ 건 μλκ² μ£ . μλ₯Ό λ€μ΄ κ·Έλν μ£μ§μλ μ λ³΄κ° μμ§λ§ λ Έλμλ μ λ³΄κ° μλ κ²½μ°λΌλ©΄ μ΄λ¨κΉμ? λ Έλ μμΈ‘μ μν΄μ μ£μ§μμ μ 보λ₯Ό μμ§ν΄μ λ Έλμ ν΄λΉ μ 보λ₯Ό μ 곡ν μ μλ λ°©λ²μ΄ νμν©λλ€. κ·Έ λ°©λ²μ λ°λ‘ νλ§(Pooling)μ λλ€. νλ§μ 2λ¨κ³λ‘ ꡬμ±λ©λλ€.
1.νλ§ν κ° νλͺ©μ λν΄ κ° μλ² λ©μ μμ§ν΄ νλ ¬λ‘ μ°κ²°
2.μμ§λ μλ² λ©μ ν©κ³ μ°μ°μ ν΅ν΄ μ§κ³
νλ§ μ°μ°μ \(\rho\)λ‘ νννκ³ , μ£μ§μμ λ Έλλ‘ μ 보λ₯Ό μμ§νλ κ²μ \(P_{E_{n} \rightarrow V_{n}}\)μΌλ‘ λνλ λλ€.
μ£μ§ μμ€μ μ λ³΄λ§ μλ€λ©΄ νλ§μ μ΄μ©ν΄μ μ 보λ₯Ό νμν κ³³μΌλ‘ λΌμ°ν νμΈμ. λͺ¨λΈμ μλμ κ°μ΅λλ€.
λ§μ½ λ Έλ μμ€μ μ λ³΄λ§ μκ³ , μ΄μ§ μ£μ§ μμ€ μ 보λ₯Ό μμΈ‘νλ κ²½μ°μλ μλ λͺ¨λΈμ μ΄μ©νλ©΄ λ©λλ€.
λ Έλ μμ€μ μ λ³΄λ§ μκ³ , μ΄μ§ κΈλ‘λ² μμ±μ μμΈ‘ν΄μΌ νλ κ²½μ°μλ μ΄λ¨κΉμ? μ΄ κ²½μ°μ μ¬μ© κ°λ₯ν λͺ¨λ λ Έλ μ 보λ₯Ό νλ° λͺ¨μ μ§κ³ν©λλ€. μ΄λ¬ν μ κ·Όμ CNNμ Global Average Pooling λ μ΄μ΄μ μ μ¬ν©λλ€. μ£μ§ μ λ³΄λ§ μμ λλ λ§μ°¬κ°μ§κ³ μ.
λ³΄ν΅ λΆμ μμ±μ μμΈ‘ν λκ° μ΄λ° κ²½μ°μ λλ€. μλ₯Ό λ€μ΄ μμ μ 보μ μ°κ²°μ±μ΄ μλ κ²½μ°μ λΆμμ λ μ± μ¬λΆμ νΉμ ν ν₯κΈ°(μ₯λ―Έ) μ¬λΆλ₯Ό νμΈνλ€λ©΄ μ λͺ¨λΈμ μ¬μ©νλ©΄ λ©λλ€. μμ μμ λ±μ₯νλ λΆλ₯ λͺ¨λΈ \(c\)λ λ€λ₯Έ Differentiable Modelλ‘λ λ체ν μ μκ³ , νΉμ μ ν λͺ¨λΈμ μ΄μ©ν΄ λ€μ€ ν΄λμ€ λΆλ₯μλ μ μ©ν μ μμ΅λλ€.
μ§κΈκΉμ§ κ°λ¨ν GNN λͺ¨λΈμ ꡬμΆνκ³ , κ·Έλνμ μλ‘ λ€λ₯Έ λΆλΆ κ°μ μ 보λ₯Ό λΌμ°ν νλ©΄μ μ΄μ§ μμΈ‘μ νλ ꡬ쑰λ₯Ό μ΄ν΄λ΄€μ΅λλ€. μ΄ νλ§ κΈ°λ²μ λ³΄λ€ μ κ΅ν GNN λͺ¨λΈμ ꡬμΆνκΈ° μν λΉλ© λΈλ‘ μν μ ν κ²λλ€. λ§μ½ μλ‘μ΄ κ·Έλν μμ±μ΄ μλ€λ©΄, ν μμ±μμ λ€λ₯Έ μμ±μΌλ‘ μ 보λ₯Ό μ λ¬νλ λ°©λ²μ μ μνκΈ°λ§ νλ©΄ λ©λλ€.
μ§κΈκΉμ§ μ΄ν΄λ³Έ GNN 곡μμμλ GNN λ μ΄μ΄ λ΄λΆμμ κ·Έλνμ μ°κ²°μ±μ μ ν μ¬μ©νμ§ μλ€λ λ€λ μ μ μνμκΈΈ λ°λλλ€. κ° λ Έλλ λ 립μ μΌλ‘ μ²λ¦¬λ©λλ€. μ£μ§λ λ§μ°¬κ°μ§κ³ , μ μ 컨ν μ€νΈλ λ§μ°¬κ°μ§ μ λλ€. μμΈ‘μ μν΄ μ 보λ₯Ό νλ§ν λλ§ κ·Έλνμ μ°κ²°μ±μ μ¬μ©ν©λλ€.
Passing messages between parts of the graph
μ§κΈλΆν°λ GNN λ μ΄μ΄ λ΄λΆμμ κ·Έλνμ μ°κ²°μ±μ μ¬μ©νλ λ°©λ²μ μ΄ν΄λ³΄κ² μ΅λλ€. νμ΅λ μλ² λ©μ΄ κ·Έλν μ°κ²°μ±μ μΈμνλλ‘ νκΈ° μν΄μ GNN λ μ΄μ΄ λ΄μμ νλ§μ μ¬μ©νλ©΄ λ©λλ€. μ΄λ κ² νλ©΄ λ μ κ΅ν μμΈ‘μ ν μ μμ£ . μ΄μν λ Έλλ μ£μ§κ° μλ‘ μ 보λ₯Ό κ΅νν΄μ ν΄λΉ λ Έλμ μνλ₯Ό μ λ°μ΄νΈνλ μ΄λ₯Έλ° Message Passingμ μ΄μ©νλ©΄ μ΄λ° μ κ΅ν μμΈ‘μ μνν μ μμ΅λλ€.
Message Passingμ 3λ¨κ³λ‘ μ§νλ©λλ€.
κ·Έλνμ κ° λ Έλμ λν΄ μΈμ ν λͺ¨λ λ Έλ μλ² λ©μ μμ§
ν©κ³ ν©μλ₯Ό ν΅ν΄ λͺ¨λ μλ² λ©(λ©μμ§)μ μ§κ³ν©
νλ§λ λͺ¨λ λ©μμ§λ νμ΅λ μ κ²½λ§(μ λ°μ΄νΈ ν¨μ)μ ν΅ν΄ μ λ¬
νλ§μ΄ λ Έλλ μ£μ§μ μ μ©λλ κ²μ²λΌ, Message Passingλ λ§μ°¬κ°μ§ μ λλ€. μ¬νΌ μ΄ λ¨κ³λ κ·Έλνμ μ°κ²°μ±μ κ΄μνκΈ° μν ν΅μ¬ κ³Όμ μ λλ€. μ΄μ λΆν°λ GNN λ μ΄μ΄μμ Message Passingλ₯Ό λμ± μ κ΅νκ² λ³ννμ¬ ννλ ₯κ³Ό μ±λ₯μ΄ ν₯μλ GNN λͺ¨λΈμ ννν΄λ³΄κ² μ΅λλ€.
μ΄λ κ² μΌλ ¨μ μ°μ°μ μ μ©νλ©΄ κ°μ₯ κ°λ¨ν μ νμ MP GNN κ³μΈ΅μ΄ λ©λλ€.
μ΄λ¬ν μ κ·Ό λ°©μμ ν©μ±κ³±(standard convolution)μ μ°μμν΅λλ€. MPμ ν©μ±κ³±μ λ³Έμ§μ μΌλ‘ μμμ κ°μ μ λ°μ΄νΈνκΈ° μν΄ μμμ μ΄μ μ 보λ₯Ό μ§κ³νκ³ μ²λ¦¬νλ μ°μ°μ λλ€. κ·Έλνμμ μμλ λ Έλμ΄κ³ μ΄λ―Έμ§μμ ν½μ μ΄μ£ . μ°¨μ΄μ μ΄λΌλ©΄ μ΄λ―Έμ§μμ κ° ν½μ λ§λ€ μ ν΄μ§ μμ μΈμ μμκ° μμ§λ§ κ·Έλνμμ μΈμ λ Έλμ μκ° κ°λ³μ μ΄λΌλ κ±°κ² μ£ .
MP GNN λ μ΄μ΄λ₯Ό μμμ¬λ¦¬λ©΄ κ²°κ΅ μ 체 κ·Έλνμ μ 보λ₯Ό ν΅ν©ν μλ μμ΅λλ€. κ·Έλ¦¬κ³ μΈ λ μ΄μ΄λ₯Ό μ§λλ©΄ λ Έλ νλλ μμ μΌλ‘λΆν° μΈ λ¨κ³ λ¨μ΄μ§ λ Έλμ λν μ 보λ₯Ό κ°κ² λ κ²λλ€. μλ‘μ΄ μ 보 μμ€λ₯Ό ν¬ν¨νλλ‘ μν€ν μ² λ€μ΄μ΄κ·Έλ¨μ μ λ°μ΄νΈ ν΄λ³΄κ² μ΅λλ€.
μ λ€μ΄μ΄κ·Έλ¨μ 1λ 거리μ μΈμ λ Έλλ₯Ό νλ§ν΄μ κ·Έλνμ λ Έλ ννμ μ λ°μ΄νΈνλ GCN(Graph Convolutional Network) μν€ν μ²μ λͺ¨μλμ λλ€.
Learning edge representations
μ°λ¦¬κ° μ¬μ©ν λ°μ΄ν°μ μ΄ νμ λ Έλ, μ£μ§, μ μ 컨ν μ€νΈμ λͺ¨λ μ νμ μ 보λ₯Ό ν¬ν¨νλ 건 μλκ²λλ€. λ Έλμ λν μμΈ‘μ νκ³ μΆμ§λ§ λ°μ΄ν°μ μ μ£μ§ μ λ³΄λ§ μλ κ²½μ°μλ νλ§μ μ¬μ©ν΄μ μ£μ§μμ λ Έλλ‘ μ 보λ₯Ό λΌμ°ν νλ λ°©λ²μ μκ°ν΄λλ Έμ΅λλ€. νμ§λ§ μ΄ λ°©λ²μ λͺ¨λΈμ μ΅μ’ μμΈ‘ λ¨κ³μμλ§ κ°λ₯ν©λλ€. κ·Έλ΄ λ MPλ₯Ό μ¬μ©νμ¬ GNN λ μ΄μ΄ μμμ λ Έλμ μ£μ§κ°μ μ 보λ₯Ό 곡μ ν μ μμκ²λλ€.
μμ μ΄μ λ Έλμμ μ 보λ₯Ό μμ§ν΄ μ¬μ©νλ κ²μ²λΌ μ£μ§μλ μ μ©ν μ μμ΅λλ€. μ΄μ μ£μ§μ μ 보λ₯Ό νλ§νκ³ μ λ°μ΄νΈ ν¨μλ‘ λ³νν λ€ μ μ₯νλ μμΌλ‘ μ΄μ μ£μ§μ μ 보λ₯Ό ν΅ν©ν μ μμ΅λλ€.
νμ§λ§ κ·Έλνμ μ μ₯λ λ Έλμ μ£μ§ μ 보λ ν¬κΈ°λ λͺ¨μμ΄ λ°λμ κ°μ 건 μλκΈ°μ μ΄λ₯Ό κ²°ν©νλ λ°©μμ΄ λͺ ννμ§λ μμ΅λλ€. μ΄λ΄ λ μΈ μ μλ λ°©λ²μ μ£μ§ 곡κ°μμ λ Έλ 곡κ°μΌλ‘, νΉμ λ Έλ 곡κ°μμ μ£μ§ 곡κ°μΌλ‘ μ ν 맀νμ νμ΅νλ κ²λλ€. νΉμ μ λ°μ΄νΈ ν¨μ μ μ μ΄λ€μ μλ‘ μ°κ²°ν μλ μμ΅λλ€.
μ΄λ€ κ·Έλν μμ±μ λ¨Όμ μ λ°μ΄νΈν μ§λ GNNμ ꡬμ±ν λ κ²°μ ν΄μΌν μ¬ν μ€ νλμ λλ€. λ Έλ μλ² λ©μ μ£μ§ μλ² λ©λ³΄λ€ λ¨Όμ μ λ°μ΄νΈν μ§, μλλ©΄ κ·Έ λ°λλ‘ ν μ§ μ ννλ©΄ λ©λλ€. νΉμ βμ§μ‘°β λ°©μ(λ Έλ-λ Έλ(μ ν), μ£μ§-μ£μ§(μ ν), λ Έλ-μ£μ§(μ£μ§ λ μ΄μ΄), μ£μ§-λ Έλ(λ Έλ λ μ΄μ΄)μ 4κ°μ§ λ°©μμ κ²°ν©ν΄μ μ λ°μ΄νΈ νλ λ°©μ)μΌλ‘ μ λ°μ΄νΈ ν μλ μμ΅λλ€.
Adding global representations
μ§κΈκΉμ§ μ€λͺ ν λ€νΈμν¬λ ν κ°μ§ κ²°ν©μ΄ μμ΅λλ€. λ°λ‘, κ·Έλνμμ μλ‘ λ©λ¦¬ λ¨μ΄μ Έ μλ λ ΈλλΌλ¦¬λ λ©μμ§ μ λ¬μ μ¬λ¬ λ² μ μ©νλλΌλ ν¨μ¨μ μΌλ‘ μ λ¬νμ§ λͺ»ν μ μλ€λ κ²λλ€. ν λ Έλμ λ μ΄μ΄κ° kκ°μΌ κ²½μ°, μ 보λ μ΅λ kλ¨κ³κΉμ§λ§ μ νλ©λλ€. μλ‘ λ©λ¦¬ μλ λ Έλλ λ Έλ κ·Έλ£Ήμ μμ‘΄ν΄μ μμΈ‘ μμ μ ν΄μΌν κ²½μ° λ¬Έμ κ° λ μ μμ£ . ν΄κ²°μ± μ λͺ¨λ λ Έλκ° μλ‘μκ² μ 보λ₯Ό μ λ¬ν μ μκ² νλ κ²λλ€. νμ§λ§ μ΄ κ²½μ°μλ κ·Έλνμ μ¬μ΄μ¦κ° ν° κ²½μ° κ³μ° λΉμ©μ΄ λΉ λ₯΄κ² μ¦κ°νλ€λ λ¬Έμ κ° μμ΅λλ€. λ¬Όλ‘ λΆμ κ°μ μμ κ·Έλνλ₯Ό κ°μ§κ³ ν κ²½μ°μλ μ΄ μ κ·Ό λ°©μ(Virtual Edges, κ°μ μ£μ§)μ μ¬μ©ν΄μ λ¬Έμ λ₯Ό ν μ μμ΅λλ€.
λ νλμ ν΄κ²°μ± μ κ·Έλνμ μ μ νν, μ΄λ₯Έλ° λ§μ€ν° λ Έλ(νΉμ Context Vector)λ₯Ό μ¬μ©νλ κ²λλ€. κΈλ‘λ² μ»¨ν μ€νΈ 벑ν°λ λ€νΈμν¬μ λ€λ₯Έ λͺ¨λ λ Έλμ μ£μ§μ μ°κ²°λμ΄ μμ΄ μ 보λ₯Ό μ λ¬νλ λ€λ¦¬ μν μ ν©λλ€. μ΄λ₯Ό ν΅ν΄ κ·Έλν μ 체μ λν ννμ ꡬμΆν μ μμ£ . μ΄λ° λ§μ€ν° λ Έλλ₯Ό μ΄μ©νλ©΄ λ€λ₯Έ λ°©λ²μΌλ‘ νμ΅ν μ μμλ κ²λ³΄λ€ ν¨μ¬ λ νλΆνκ³ λ³΅μ‘ν κ·Έλν ννμ λ§λ€ μ μμ΅λλ€.
μ΄ λ°©μμμλ λͺ¨λ κ·Έλνμ μμ±λ€μ΄ νμ΅λ ννμ κ°κ³ μκΈ° λλ¬Έμ νλ§ κ³Όμ μ€μμ μ°λ¦¬κ° κ΄μ¬μλ μμ±μ μ 보λ₯Ό λλ¨Έμ§ μμ± μ 보μ λν΄ conditioningνμ¬ νμ©ν μ μμ΅λλ€. μλ₯Ό λ€μ΄λ³΄κ² μ΅λλ€. νλμ λ Έλμ λν΄μ μ°λ¦¬λ μΈμ λ Έλ, μ°κ²°λ μ£μ§ μ 보, μ μ μ 보λ₯Ό κ³ λ €ν μ μμκ²λλ€. λͺ¨λ κ°λ₯ν μ 보 μμ€μ λν΄ μλ‘μ΄ λ Έλ μλ² λ©μ conditioningνλ €λ©΄ κ·Έλ₯ κ°λ¨ν μ°κ²°λ§ νλ©΄ λ©λλ€. μΆκ°λ‘ μ ν 맡μ ν΅ν΄ λμΌν 곡κ°μ 맡νμ ν΄μ μΆκ°νκ±°λ feature-wise modulation layer(featurize-wise attention λ©μ»€λμ¦μ μΌμ’ )λ₯Ό μ μ©ν μλ μμ΅λλ€.