[Graph] 1μ₯. κ·Έλνμ GNN
μλ³Έ κ²μκΈ: https://velog.io/@euisuk-chung/1μ₯.-κ·Έλνμ-GNN
1. κ·Έλνλ?
- κ·Έλνλ νμ€ μΈκ³μ λ°μ΄ν°λ₯Ό νννλ μ€μν λκ΅¬λ‘ μ¬μ©λ©λλ€.
- λ€μν λΆμΌμμ κ·Έλνλ₯Ό νμ©νμ¬ κ΄κ³μ ꡬ쑰λ₯Ό λͺ¨λΈλ§ν μ μμ΅λλ€.
- μμ:
- μ¬ν κ³Όν: μμ λ€νΈμν¬μμ κ°μΈ κ°μ κ΄κ³λ₯Ό κ·Έλνλ‘ ννν μ μμ΅λλ€. μλ₯Ό λ€μ΄, νμ΄μ€λΆ μΉκ΅¬ κ΄κ³λ λ Έλ(μ¬μ©μ)μ μμ§(μΉκ΅¬ κ΄κ³)λ‘ λνλΌ μ μμ΅λλ€.
- νν: μμμ λΆμ ꡬ쑰λ₯Ό κ·Έλνλ‘ λνλΌ μ μμ΅λλ€. κ° μμλ λ Έλλ‘, νν κ²°ν©μ μμ§λ‘ ννλ©λλ€.
- μΈμ΄ν: λ¬Έμ₯μμ λ¨μ΄ κ°μ κ΄κ³λ₯Ό κ·Έλνλ‘ λͺ¨λΈλ§ν μ μμ΅λλ€. κ° λ¨μ΄λ λ Έλλ‘, λ¨μ΄ κ°μ μ°κ΄μ±μ μμ§λ‘ λνλΌ μ μμ΅λλ€.
2. κ·Έλνμ νν (Graph Representation)
- κ·Έλν ( G={V,E}\mathcal{G} = {\mathcal{V}, \mathcal{E}}G={V,E} )λ λ Έλ μ§ν© ( V\mathcal{V}V )μ μμ§ μ§ν© ( E\mathcal{E}E)λ‘ κ΅¬μ±λ©λλ€.
A Graph is the type of data structure that contains nodes and edges. A node can be a person, place, or thing, and the edges define the relationship between nodes. The edges can be directed and undirected based on directional dependencies. - Datacamp
- κ·Έλν(Graph): λ Έλμ μμ§λ‘ ꡬμ±λ ꡬ쑰λ‘, λ Έλ κ°μ κ΄κ³μ μ°κ²°μ λνλ λλ€.
- λ Έλ(Node): κ·Έλνμμ κ°λ³μ μΈ κ°μ²΄λ₯Ό λνλ΄λ©°, μ¬μ©μλ μμ λ€νΈμν¬μ μ¬μ©μλ ννμμμ μμ λ±μ΄ λ μ μμ΅λλ€.
- μμ§(Edge): λ λ Έλ κ°μ μ°κ²°μ λνλ΄λ©°, κ΄κ³λ μνΈμμ©μ ννν©λλ€.
- κ·Έλν νκΈ° μμ:
- λ Έλμ μμ§μ κ΄κ³λ₯Ό μΈμ νλ ¬λ‘ λνλΌ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λ€μκ³Ό κ°μ μΈμ νλ ¬μ΄ μμ λ:
μ΄λ λ€μκ³Ό κ°μ κ·Έλνλ₯Ό λνλ λλ€:
- v1v_1v1βμ v2v_2v2βμ v5v_5v5βμ μ°κ²°
- v2v_2v2βλ v1v_1v1βκ³Ό v4v_4v4βμ μ°κ²°
- v3v_3v3βλ v5v_5v5βμ μ°κ²°
- v4v_4v4βλ v2v_2v2βμ v5v_5v5βμ μ°κ²°
- v5v_5v5βλ v1v_1v1β, v3v_3v3β, v4v_4v4βμ μ°κ²°
3. κ·Έλνμ μμ± λ° μΈ‘μ (Graph Properties and Measures)
κ·Έλνμ λ€μν μμ±κ³Ό μ΄λ₯Ό μΈ‘μ νλ λ°©λ²μ΄ μμ΅λλ€.
βοΈ μ°¨μ(Degree): λ Έλμ μ°κ²°λ μμ§μ μμ λλ€.
CD(v)=deg(v)C_D(v) = \text{deg}(v)CDβ(v)=deg(v)
- μμ: v1v_1v1βμ μ°¨μλ 2μ λλ€. (λ κ°μ μμ§ e1e_1e1βκ³Ό e5e_5e5βμ μ°κ²°)
βοΈ μ΄μ(Neighbor): λ Έλμ μ§μ μ°κ²°λ λ€λ₯Έ λ Έλλ€μ λλ€.
- μμ: v1v_1v1βμ μ΄μμ v2v_2v2βμ v5v_5v5βμ λλ€.
βοΈ κ²½λ‘(Path): λ Έλμ μμ§λ₯Ό λ²κ°μ λμ΄νμ¬ μμ λ Έλμμ λ λ Έλλ‘ κ°λ μ°κ²°μ λλ€.
- μμ: v1v_1v1βμμ v3v_3v3βλ‘ κ°λ κ²½λ‘λ v1βv5βv3v_1 \to v_5 \to v_3v1ββv5ββv3βμ λλ€.
βοΈ λ³΄ν(Walk): Walkλ λ Έλμ μμ§λ₯Ό λ²κ°μ λμ΄ν μμμ΄λ‘, κ° μμ§λ λ°λ‘ μλ€μ λ Έλμ μ°κ²°λμ΄ μμ΅λλ€.
-
Walkλ Closed Walkμ Open Walkλ‘ λλκ² λ©λλ€.
-
Closed Walk
: μμ λ Έλμ λλλ λ Έλκ° κ°μ κ²½μ°(start_node = end_node)λ₯Ό μλ―Ένλ€. -
Open Walk
: μμ λ Έλμ λλλ λ Έλκ° κ°μ§ μλ κ²½μ°(start_node β end_node)λ₯Ό μλ―Έν©λλ€.
-
-
μμ:
κ·Έλ¦Ό μΆμ² : https://ok-lab.tistory.com/245
μ κ·Έλ¦Όμμ Open Walkμ Closed Walkλ₯Ό λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€:
-
μΌμͺ½ κ·Έλ¦Ό: Open Walk (μ΄λ¦° 보ν) (a,ab,b,bc,c,cd,d,db,b)(a, ab, b, bc, c, cd, d, db, b)(a,ab,b,bc,c,cd,d,db,b)
μ΄λ λ Έλ aμμ μμνμ¬ λ Έλ dμμ λλλ μ΄λ¦° 보νμ λνλ λλ€. κ° λ¨κ³μμ λ Έλμ μμ§λ₯Ό λ²κ°μ νμνμ΅λλ€.
-
μ€λ₯Έμͺ½ κ·Έλ¦Ό: Closed Walk (λ«ν 보ν), (e,ec,c,cf,f,fg,g,ge,e)(e, ec, c, cf, f, fg, g, ge, e)(e,ec,c,cf,f,fg,g,ge,e)
μ΄λ λ Έλ eμμ μμνμ¬ λ€μ eλ‘ λμμ€λ λ«ν 보νμ λνλ λλ€. μμ λ Έλμ λ λ Έλκ° κ°μ κ²μ΄ νΉμ§μ λλ€.
μ΄λ¬ν νν λ°©μμμ:
- κ° λ Έλλ κ·Έ μμ²΄λ‘ νμλ©λλ€ (μ: a, b, c, β¦)
- κ° μμ§λ μ°κ²°νλ λ λ Έλμ μ΄λ¦μ λΆμ¬ νμν©λλ€ (μ: abλ aμ bλ₯Ό μ°κ²°νλ μμ§)
Walkλ₯Ό μ’ λ ꡬλΆμ§μ΄λ³΄λ©΄, Trailκ³Ό Pathλ‘ μ μν μ μμ΅λλ€:
-
Trail
- μ μ: Trailμ μμ§κ° λ°λ³΅λμ§ μλ Walkμ λλ€.
- νΉμ§: Trailμμλ λ Έλμ λ°λ³΅μ νμ©λμ§λ§, μμ§μ λ°λ³΅μ νμ©λμ§ μμ΅λλ€.
- μμ: v1βe1βv2βe2βv3βe3βv2v_1 \to e_1 \to v_2 \to e_2 \to v_3 \to e_3 \to v_2v1ββe1ββv2ββe2ββv3ββe3ββv2β
-
Path
- μ μ: Pathλ λ Έλκ° λ°λ³΅λμ§ μλ Walkμ λλ€. λ°λΌμ Pathλ Trailμ νΉλ³ν κ²½μ°μ λλ€.
- νΉμ§: Pathμμλ λ Έλμ μμ§ λͺ¨λ λ°λ³΅λμ§ μμ΅λλ€.
- μμ: v1βe1βv2βe2βv3v_1 \to e_1 \to v_2 \to e_2 \to v_3v1ββe1ββv2ββe2ββv3β
-
κ΄κ³ (Walk β Trail β Path)
-
λͺ¨λ Pathλ Trailμ΄λ©°, λͺ¨λ Trailμ Walkμ λλ€.
-
κ·Έλ¬λ λͺ¨λ Walkκ° TrailμΈ κ²μ μλλ©°, λͺ¨λ Trailμ΄ PathμΈ κ²λ μλλλ€.
-
π‘ μ΄? κ·Όλ° μΌλ° κ²½λ‘λ₯Ό ννν λλ PathλΌλ λ§μ μ°λλ°?
κ·Έλν μ΄λ‘ μ λ€λ£° λ, λλ‘λ βPathβλΌλ μ©μ΄κ° μ’ λ μΌλ°μ μΈ μλ―Έλ‘ μ¬μ©λμ΄ Walkλ Trailμ ν¬ν¨νλ κ²½μ°λ μμ΅λλ€. κ·Έλ¬λ μλ°ν μ μμ λ°λ₯΄λ©΄, Pathλ λ Έλμ λ°λ³΅μ΄ μλ κ°μ₯ μ νμ μΈ ννμ Walkμ λλ€.
βοΈ λΆλΆ κ·Έλν(Subgraph): μ£Όμ΄μ§ κ·Έλν G=V,E\mathcal{G} = {\mathcal{V}, \mathcal{E}}G=V,Eμ λΆλΆ κ·Έλν Gβ²=Vβ²,Eβ²\mathcal{Gβ} = {\mathcal{Vβ}, \mathcal{Eβ}}Gβ²=Vβ²,Eβ²λ λ Έλ μ§ν© Vβ²βV\mathcal{Vβ} \subseteq \mathcal{V}Vβ²βVμ μμ§ μ§ν© Eβ²βE\mathcal{Eβ} \subseteq \mathcal{E}Eβ²βEλ‘ κ΅¬μ±λ κ·Έλνμ λλ€. λν Vβ²\mathcal{Vβ}Vβ²λ Eβ²\mathcal{Eβ}Eβ²μ λͺ¨λ λ Έλλ₯Ό ν¬ν¨ν΄μΌ ν©λλ€.
-
μμ: μλ³Έ κ·Έλνμμ μΌλΆ λ Έλμ μμ§λ₯Ό μ ννμ¬ λΆλΆ κ·Έλνλ₯Ό νμ±ν©λλ€.
μλ³Έ κ·Έλν: V=v1,v2,v3,v4,v5\mathcal{V} = {v_1, v_2, v_3, v_4, v_5}V=v1β,v2β,v3β,v4β,v5β, E=e1,e2,e3,e4,e5\mathcal{E} = {e_1, e_2, e_3, e_4, e_5}E=e1β,e2β,e3β,e4β,e5β
λΆλΆ κ·Έλν: Vβ²=v1,v2,v3\mathcal{Vβ} = {v_1, v_2, v_3}Vβ²=v1β,v2β,v3β, Eβ²=e1,e2\mathcal{Eβ} = {e_1, e_2}Eβ²=e1β,e2β
βοΈ μ°κ²° μ±λΆ(Connected Component): κ·Έλν G=V,E\mathcal{G} = {\mathcal{V}, \mathcal{E}}G=V,Eμμ, λΆλΆ κ·Έλν Gβ²=Vβ²,Eβ²\mathcal{Gβ} = {\mathcal{Vβ}, \mathcal{Eβ}}Gβ²=Vβ²,Eβ²κ° μ°κ²° μ±λΆμ΄ λλ €λ©΄, Gβ²\mathcal{Gβ}Gβ² λ΄μ λͺ¨λ λ Έλ μ μ¬μ΄μ μ μ΄λ νλμ κ²½λ‘κ° μ‘΄μ¬ν΄μΌ νλ©°, Vβ²\mathcal{Vβ}Vβ²μ λ Έλλ€μ΄ VβVβ²\mathcal{V} \setminus \mathcal{Vβ}VβVβ²μ λ Έλμ μΈμ νμ§ μμμΌ ν©λλ€.
-
μ°κ²° μ±λΆμ κ²°κ΅, λ€μμ μλ―Έν©λλ€:
- μ°κ²° μ±λΆ λ΄μ λͺ¨λ λ Έλ μ¬μ΄μ κ²½λ‘κ° μμ΄μΌ ν¨ (λ΄λΆ μ°κ²°)
- μ°κ²° μ±λΆ λ΄μ λ Έλλ€μ΄ μ±λΆ μΈλΆμ λ Έλλ€κ³Ό μ§μ μ°κ²°λμ§ μμμΌ ν¨ (μΈλΆ λ¨μ )
-
μμ: κ·Έλνμμ νλμ μ°κ²° μ±λΆμ μ°Ύλ λ°©λ²μ λͺ¨λ λ Έλ μμ΄ μ°κ²°λμ΄ μλ νμ κ·Έλνλ₯Ό μ°Ύλ κ²μ λλ€.
βοΈ μ°κ²° κ·Έλν(Connected Graph): κ·Έλν G=V,E\mathcal{G} = {\mathcal{V}, \mathcal{E}}G=V,Eκ° νλμ μ°κ²° μ±λΆμΌλ‘ μ΄λ£¨μ΄μ§ κ²½μ°, μ΄λ₯Ό μ°κ²° κ·ΈλνλΌκ³ ν©λλ€.
- μμ: λͺ¨λ λ Έλκ° νλμ μ°κ²° μ±λΆμ μ΄λ£¨λ κ²½μ°μ λλ€.
βοΈ Shortest Path: λ λ Έλ κ°μ μ΅λ¨ κ²½λ‘λ λ λ Έλλ₯Ό μ°κ²°νλ κ°μ₯ μ§§μ κ²½λ‘λ₯Ό μλ―Έν©λλ€.
pstsp=argβ‘minβ‘pβPstβ£pβ£p_{st}^{sp} = \arg \min_{p \in P_{st}} | p | pstspβ=argminpβPstβββ£pβ£ |
μ¬κΈ°μ PstP_{st}Pstβλ λ Έλ sssμ tttλ₯Ό μ°κ²°νλ λͺ¨λ κ²½λ‘μ μ§ν©μ λλ€.
- μμ:
- v1v_1v1βκ³Ό v2v_2v2β μ¬μ΄μ μ΅λ¨ κ²½λ‘λ 111
- v1v_1v1βκ³Ό v3v_3v3β μ¬μ΄μ μ΅λ¨ κ²½λ‘λ 222
βοΈ Diameter: κ·Έλνμ μ§λ¦μ κ·Έλν λ΄μ λͺ¨λ μ΅λ¨ κ²½λ‘ μ€ κ°μ₯ κΈ΄ κ²μ μλ―Έν©λλ€.
diameter(G)=maxβ‘vs,vtβVminβ‘pβPstβ£pβ£\text{diameter}(\mathcal{G}) = \max_{v_s, v_t \in \mathcal{V}} \min_{p \in P_{st}} | p | diameter(G)=maxvsβ,vtββVβminpβPstβββ£pβ£ |
- μμ: κ·Έλνμ μ§λ¦μ 222λ‘, μ΄λ μ΅λ¨ κ²½λ‘ μ€ κ°μ₯ κΈ΄ κ²μ΄ 222λΌλ κ²μ μλ―Έν©λλ€.
βοΈ μ€μ¬μ±(Centrality): λ
Έλμ μ€μλ
λ₯Ό μΈ‘μ νλ μ¬λ¬ κ°μ§ λ°©λ²μ΄ μμ΅λλ€.
-
μ°¨μ μ€μ¬μ±(Degree Centrality):
- μ μ: λ Έλμ μ°κ²°λ μμ§μ μλ₯Ό μΈ‘μ ν©λλ€.
- 곡μ: CD(v)=deg(v)C_D(v) = \text{deg}(v)CDβ(v)=deg(v)
- μμ: νΈμν°μμ νλ‘μ μκ° λ§μ μ¬μ©μλ μ°¨μ μ€μ¬μ±μ΄ λμ΅λλ€.
-
κ³ μ λ²‘ν° μ€μ¬μ±(Eigenvector Centrality):
- μ μ: λ Έλμ μ€μλλ₯Ό ν΄λΉ λ Έλμ μ°κ²°λ μ΄μ λ Έλλ€μ μ€μλλ‘ μΈ‘μ ν©λλ€.
-
곡μ: CE(v)=1Ξ»βuβneighbors(v)AuvCE(u)C_E(v) = \frac{1}{\lambda} \sum_{u \in \text{neighbors}(v)} A_{uv} C_E(u)CEβ(v)=Ξ»1ββuβneighbors(v)βAuvβCEβ(u)
- μ¬κΈ°μ Ξ»\lambdaΞ»λ κ³ μ κ°, AuvA_{uv}Auvβλ λ Έλ uuuμ vvv μ¬μ΄μ μ°κ²°μ λνλ΄λ μΈμ νλ ¬μ κ°μ λλ€.
- μμ: νμ΄μ§λν¬(PageRank) μκ³ λ¦¬μ¦μ κ³ μ λ²‘ν° μ€μ¬μ±μ νμ©νμ¬ μΉνμ΄μ§μ μ€μλλ₯Ό νκ°ν©λλ€.
-
Katz μ€μ¬μ±(Katz Centrality):
- μ μ: κ³ μ λ²‘ν° μ€μ¬μ±μ λ³νμΌλ‘, λ Έλ μ체μ μ€μλλ₯Ό ν¬ν¨ν©λλ€.
-
곡μ: CK(v)=Ξ±βuβneighbors(v)AuvCK(u)+Ξ²C_K(v) = \alpha \sum_{u \in \text{neighbors}(v)} A_{uv} C_K(u) + \betaCKβ(v)=Ξ±βuβneighbors(v)βAuvβCKβ(u)+Ξ²
- μ¬κΈ°μ Ξ±\alphaΞ±μ Ξ²\betaΞ²λ μμμ λλ€. Ξ²=0\beta = 0Ξ²=0μΌ κ²½μ°, Katz μ€μ¬μ±μ κ³ μ λ²‘ν° μ€μ¬μ±κ³Ό λμΌν©λλ€.
- μμ: κΈ°μ λ€νΈμν¬μμ νΉμ μ§κΈμ μ€μλλ₯Ό νκ°ν λ μ¬μ©λ©λλ€.
-
λ§€κ° μ€μ¬μ±(Betweenness Centrality):
- μ μ: κ·Έλν λ΄μμ νΉμ λ Έλκ° μ΅λ¨ κ²½λ‘λ₯Ό λͺ λ²μ΄λ μ§λλμ§λ₯Ό μΈ‘μ ν©λλ€.
-
곡μ: CB(v)=βsβ vβ tΟst(v)ΟstC_B(v) = \sum_{s \neq v \neq t} \frac{\sigma_{st}(v)}{\sigma_{st}}CBβ(v)=βsξ β=vξ β=tβΟstβΟstβ(v)β
- μ¬κΈ°μ Οst\sigma_{st}Οstβλ λ Έλ sssμμ tttλ‘ κ°λ μ΅λ¨ κ²½λ‘μ μ, Οst(v)\sigma_{st}(v)Οstβ(v)λ λ Έλ vvvλ₯Ό μ§λλ μ΅λ¨ κ²½λ‘μ μμ λλ€.
- μμ: λ¬Όλ₯ λ€νΈμν¬μμ μ€μν νλΈ κ³΅νμ λ§μ ν곡νΈμ κ²½λ‘μ ν¬ν¨λλ―λ‘ λ§€κ° μ€μ¬μ±μ΄ λμ΅λλ€.
4. μ€ννΈλ΄ κ·Έλν μ΄λ‘ (Spectral Graph Theory)
- μ μ:
μ€ννΈλ΄ κ·Έλν μ΄λ‘
μ κ·Έλνμ κ΄λ ¨λ νλ ¬(μ£Όλ‘ μΈμ νλ ¬μ΄λ λΌνλΌμμ νλ ¬)μ κ³ μ κ°(eigenvalues)κ³Ό κ³ μ 벑ν°(eigenvectors)λ₯Ό μ°κ΅¬νμ¬ κ·Έλνμ νΉμ±μ μ΄ν΄νκ³ λΆμνλ λ°©λ²λ‘ μ λλ€. -
λͺ©μ :
- κ·Έλν ꡬ쑰 λΆμ: κ·Έλνμ μ°κ²°μ±, κ΅°μ§ κ΅¬μ‘°, λμΉμ± λ± λ³΅μ‘ν ꡬ쑰μ νΉμ±μ μνμ μΌλ‘ νμ ν©λλ€.
- ν¨μ¨μ μΈ μκ³ λ¦¬μ¦ κ°λ°: κ·Έλν λΆν , κ΅°μ§ν, λνΉ λ± λ€μν κ·Έλν κ΄λ ¨ λ¬Έμ λ₯Ό ν΄κ²°νλ ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ κ°λ°νλ λ° νμ©λ©λλ€.
- κ·Έλν μλ² λ©: κ³ μ°¨μμ κ·Έλν λ°μ΄ν°λ₯Ό μ μ°¨μ 곡κ°μΌλ‘ λ§€ννμ¬ μκ°ννκ±°λ κΈ°κ³ νμ΅μ νμ©ν μ μκ² ν©λλ€.
- λμ μμ€ν μ΄ν΄: κ·Έλν μμ νμ° κ³Όμ μ΄λ λλ€ μν¬ λ± λμ νλ‘μΈμ€λ₯Ό λͺ¨λΈλ§νκ³ λΆμν©λλ€.
- λ€νΈμν¬ κ°κ±΄μ± νκ°: λ€νΈμν¬μ μ·¨μ½μ μ΄λ μ€μ λ Έλλ₯Ό μλ³νλ λ° μ¬μ©λ©λλ€.
-
μ£Όμ κ°λ :
- λΌνλΌμμ νλ ¬ (Laplacian Matrix):
- L = D - A (D: μ°¨μ νλ ¬, A: μΈμ νλ ¬)
- μ΄ νλ ¬μ κ³ μ κ°κ³Ό κ³ μ 벑ν°κ° κ·Έλνμ λ§μ νΉμ±μ λ°μν©λλ€.
- μ€ννΈλΌ (Spectrum):
- λΌνλΌμμ νλ ¬μ κ³ μ κ° μ§ν©
- λ λ²μ§Έλ‘ μμ κ³ μ κ°(Fiedler value)μ κ·Έλνμ μ°κ²°μ±μ λνλ λλ€.
- κ³ μ κ°λ€μ λΆν¬λ κ·Έλνμ μ λ°μ μΈ κ΅¬μ‘°λ₯Ό λ°μν©λλ€.
- μ€ννΈλ΄ κ΅°μ§ν (Spectral Clustering):
- λΌνλΌμμμ κ³ μ 벑ν°λ₯Ό μ¬μ©νμ¬ κ·Έλνλ₯Ό λΆν νλ κΈ°λ²
- λΌνλΌμμ νλ ¬ (Laplacian Matrix):
5. κ·Έλν μ νΈ (Graph Signal)
-
κ·Έλν μ νΈμ μ μ:
- κ·Έλν μ νΈλ κ·Έλνμ κ° λ Έλμ ν λΉλ λ°μ΄ν° κ°μ μλ―Έν©λλ€.
- μνμ νν: x = [xβ, xβ, β¦, xβ], μ¬κΈ°μ nμ λ Έλμ μ
- κ° xα΅’λ iλ²μ§Έ λ Έλμ νΉμ±(feature) κ°μ λνλ λλ€.
- μ΄ κ°μ μ€μΉΌλΌ(λ¨μΌ κ°)μ΄κ±°λ 벑ν°(μ¬λ¬ νΉμ±μ ν¬ν¨)μΌ μ μμ΅λλ€.
-
κ·Έλν μ νΈμ μλ―Έ:
- λ Έλμ μμ±μ΄λ μνλ₯Ό λνλ λλ€ (μ: μμ λ€νΈμν¬μμ μ¬μ©μμ νλλ)
- κ·Έλν ꡬ쑰μ κ²°ν©νμ¬ λ³΅μ‘ν κ΄κ³μ ν¨ν΄μ ννν©λλ€.
-
κ·Έλν μ νΈ μ²λ¦¬ λ°©λ²:
a) κ·Έλν νΈλ¦¬μ λ³ν (GFT):
- λͺ©μ : κ·Έλν μ νΈλ₯Ό μ£Όνμ λλ©μΈμΌλ‘ λ³ν
- κ³Όμ : λΌνλΌμμ νλ ¬μ κ³ μ 벑ν°λ₯Ό κΈ°μ λ‘ μ¬μ©νμ¬ μ νΈλ₯Ό λΆν΄
-
μ΄μ : κ·Έλν ꡬ쑰λ₯Ό κ³ λ €ν μ£Όνμ λΆμ κ°λ₯
1. κ·Έλν νΈλ¦¬μ λ³ν μ μ: L=UΞUTL = U \Lambda U^TL=UΞUT
κ·Έλν G\mathcal{G}Gμ λΌνλΌμμ νλ ¬ LLLμ κ³ μ κ° λΆν΄λ₯Ό ν΅ν΄ κ³ μ λ²‘ν° UUUμ κ³ μ κ° Ξ\LambdaΞλ₯Ό ꡬν©λλ€.
2. κ·Έλν μ νΈ xxxμ κ·Έλν νΈλ¦¬μ λ³ν: x^=UTx\hat{x} = U^T xx^=UTx
μ¬κΈ°μ x^\hat{x}x^λ κ·Έλν μ νΈ xxxμ μ£Όνμ λλ©μΈ ννμ λλ€.
3. κ·Έλν νΈλ¦¬μ μλ³ν: x=Ux^x = U \hat{x}x=Ux^
b) κ·Έλν νν°λ§:
- λͺ©μ : μ νΈμ νΉμ μ±λΆμ κ°μ‘°νκ±°λ μ κ±°
- λ°©λ²: λΌνλΌμμμ λ€νμμ μ΄μ©ν νν° μ€κ³
- μμ©: λ Έμ΄μ¦ μ κ±°, νΉμ± μΆμΆ
c) κ·Έλν μ¨μ΄λΈλ¦Ώ λ³ν:
- λͺ©μ : μ νΈμ μ§μμ νΉμ±κ³Ό λ€μ€ μ€μΌμΌ λΆμ
- μ΄μ : κ΅μμ μΈ ν¨ν΄ νμ§μ κ³μΈ΅μ ꡬ쑰 λΆμ
d) κ·Έλν ν©μ±κ³± (Graph Convolution):
- λͺ©μ : μ΄μ λ Έλμ μ 보λ₯Ό μ§κ³νμ¬ μλ‘μ΄ λ Έλ νν μμ±
- μμ©: κ·Έλν μ κ²½λ§(GNN)μ ν΅μ¬ μ°μ°
e) κ·Έλν μλ² λ©:
- λͺ©μ : λ Έλλ κ·Έλν μ 체λ₯Ό μ μ°¨μ 벑ν°λ‘ νν
- λ°©λ²: λλ€ μν¬, νλ ¬ λΆν΄, μ κ²½λ§ λ± λ€μν κΈ°λ² μ¬μ©
- μμ©: λ Έλ λΆλ₯, λ§ν¬ μμΈ‘, κ·Έλν λΆλ₯ λ±
f) μ€ννΈλ΄ ν΄λ¬μ€ν°λ§:
- λͺ©μ : κ·Έλνμ ꡬ쑰μ νΉμ±μ λ°νμΌλ‘ λ Έλ κ΅°μ§ν
- λ°©λ²: λΌνλΌμμμ κ³ μ 벑ν°λ₯Ό μ΄μ©ν μ°¨μ μΆμ λ° ν΄λ¬μ€ν°λ§
6. 볡μ‘ν κ·Έλν (Introduction to Complex Graphs)
-
μ΄μ§ κ·Έλν(Heterogeneous Graphs):
- κ°λ : μ¬λ¬ μ’ λ₯μ λ Έλμ μ£μ§κ° 곡쑴νλ κ·Έλνμ λλ€.
- νΉμ§:
- λ Έλμ μ£μ§κ° κ°κ° λ€λ₯Έ μ νμ κ°μ§λλ€.
- 볡μ‘ν κ΄κ³λ₯Ό ννν μ μμ΅λλ€.
- μ€μν μμ: μν μΆμ² μμ€ν
- λ Έλ μ ν: μ¬μ©μ, μν, λ°°μ°, κ°λ
-
μ£μ§ μ ν: βμμ²νλ€β, βμΆμ°νλ€β, βκ°λ νλ€β
-
μ΄λΆ κ·Έλν(Bipartite Graphs):
- κ°λ : λ Έλλ₯Ό λ κ·Έλ£ΉμΌλ‘ λλκ³ , κ°μ κ·Έλ£Ή λ΄μ λ Έλ κ°μλ μ°κ²°μ΄ μλ κ·Έλνμ λλ€.
- νΉμ§:
- λ κ°μ λ 립μ μΈ λ Έλ μ§ν©μΌλ‘ ꡬμ±λ©λλ€.
- μ£μ§λ νμ μλ‘ λ€λ₯Έ μ§ν©μ λ Έλλ₯Ό μ°κ²°ν©λλ€.
- μ€μν μμ: μ¨λΌμΈ μΌνλͺ°μ μ¬μ©μ-μν κ΄κ³
- λ Έλ κ·Έλ£Ή 1: μ¬μ©μλ€
- λ Έλ κ·Έλ£Ή 2: μνλ€
-
μ£μ§: βꡬ맀νλ€β κ΄κ³
-
λ€μ°¨μ κ·Έλν(Multidimensional Graphs):
- κ°λ : λ Έλ κ°μ μ¬λ¬ μ’ λ₯μ κ΄κ³κ° μ‘΄μ¬νλ κ·Έλνμ λλ€.
- νΉμ§:
- κ°μ λ Έλ μ μ¬μ΄μ μ¬λ¬ κ°μ μ£μ§κ° μ‘΄μ¬ν μ μμ΅λλ€.
- κ° μ£μ§λ μλ‘ λ€λ₯Έ μ νμ κ΄κ³λ₯Ό λνλ λλ€.
- μ€μν μμ: 볡ν©μ μΈ μμ
λ―Έλμ΄ κ΄κ³
- λ Έλ: μ¬μ©μλ€
-
μ£μ§ μ ν: βμΉκ΅¬λ€β, βνλ‘μ°νλ€β, βκ°μ κ·Έλ£Ήμ μνλ€β
- λΆνΈνλ κ·Έλν(Signed Graphs):
- κ°λ : μ£μ§μ μμ λλ μμ κ°μ΄ ν λΉλ κ·Έλνμ λλ€.
- νΉμ§
- μ£μ§κ° κΈμ μ λλ λΆμ μ κ΄κ³λ₯Ό λνλ λλ€.
- 볡μ‘ν μ¬νμ κ΄κ³λ μ견 μ°¨μ΄λ₯Ό λͺ¨λΈλ§νλ λ° μ μ©ν©λλ€.
- μ€μν μμ: μ¨λΌμΈ 리뷰 μμ€ν
- λ Έλ: μ¬μ©μ, μ ν
-
μ£μ§: κΈμ μ 리뷰(+), λΆμ μ 리뷰(-)
- νμ΄νΌκ·Έλν(Hypergraphs):
- κ°λ : νλμ μ£μ§(νμ΄νΌμ£μ§)κ° λ κ° μ΄μμ λ Έλλ₯Ό μ°κ²°ν μ μλ κ·Έλνμ λλ€.
- νΉμ§:
- 볡μ‘ν λ€λλ€ κ΄κ³λ₯Ό ννν μ μμ΅λλ€.
- μ ν΅μ μΈ κ·Έλνλ³΄λ€ λ νλΆν κ΄κ³ ννμ΄ κ°λ₯ν©λλ€.
- μ€μν μμ: νμ λ
Όλ¬Έ 곡μ μ κ΄κ³
- λ Έλ: μ°κ΅¬μλ€
-
νμ΄νΌμ£μ§: νλμ λ Όλ¬Έ (μ¬λ¬ μ μλ₯Ό λμμ μ°κ²°)
- λμ κ·Έλν(Dynamic Graphs):
- κ°λ : μκ°μ λ°λΌ κ΅¬μ‘°κ° λ³νλ κ·Έλνμ λλ€.
- νΉμ§:
- λ Έλμ μ£μ§κ° μκ°μ λ°λΌ μΆκ°λκ±°λ μ κ±°λ μ μμ΅λλ€.
- μκ°μ λ°λ₯Έ λ€νΈμν¬μ μ§νλ₯Ό λͺ¨λΈλ§ν μ μμ΅λλ€.
- μ€μν μμ: μκ°μ λ°λ₯Έ μμ
λ€νΈμν¬μ λ³ν
- λ Έλ: μ¬μ©μ
- μ£μ§: μΉκ΅¬ κ΄κ³
-
μκ°μ λ°λΌ μλ‘μ΄ μ¬μ©μ κ°μ , μΉκ΅¬ κ΄κ³ νμ± λλ ν΄μ
7. κ·Έλνλ‘ λ¬΄μμ κ³μ°ν μ μλκ°? (What we can compute with graphs?)
- λ
Έλ μ€μ¬ μμ
(Node-focused tasks):
- λ
Έλ λΆλ₯ (Node Classification): κ° λ
Έλμ λ μ΄λΈμ ν λΉνλ μμ
μ
λλ€.
- μμ: μμ λ€νΈμν¬μμ μ¬μ©μ νλ‘νμ λΆμνμ¬ κ° μ¬μ©μμ κ΄μ¬μ¬λ₯Ό λΆλ₯ν μ μμ΅λλ€.
- λ§ν¬ μμΈ‘ (Link Prediction): λ λ
Έλ κ°μ μμ§κ° μ‘΄μ¬ν κ°λ₯μ±μ μμΈ‘νλ μμ
μ
λλ€.
- μμ: μΉκ΅¬ μΆμ² μμ€ν μμ μ¬μ©μκ° μλ‘κ² μΉκ΅¬κ° λ κ°λ₯μ±μ΄ λμ μ¬μ©μλ₯Ό μμΈ‘ν μ μμ΅λλ€.
- λ
Έλ λΆλ₯ (Node Classification): κ° λ
Έλμ λ μ΄λΈμ ν λΉνλ μμ
μ
λλ€.
- κ·Έλν μ€μ¬ μμ
(Graph-focused tasks):
- κ·Έλν λΆλ₯ (Graph Classification): κ·Έλν μ 체μ λ μ΄λΈμ ν λΉνλ μμ
μ
λλ€.
- μμ: νν ꡬ쑰 κ·Έλνλ₯Ό λΆμνμ¬ νΉμ λΆμκ° μ½λ¬Όλ‘ μ¬μ©λ μ μλμ§ λΆλ₯ν μ μμ΅λλ€.
- κ·Έλν λΆλ₯ (Graph Classification): κ·Έλν μ 체μ λ μ΄λΈμ ν λΉνλ μμ
μ
λλ€.
μμ½
- μ λ΄μ©μ ν΅ν΄ κ·Έλν μ΄λ‘ μ κΈ°λ³Έ κ°λ κ³Ό λ€μν μ€μ¬μ± μ§ν, κ·Έλν μ νΈ μ²λ¦¬, 볡μ‘ν κ·Έλνμ μ ν, κ·Έλ¦¬κ³ κ·Έλνλ₯Ό μ¬μ©νμ¬ μνν μ μλ λ€μν μμ μ λν΄ μμΈν μ΄ν΄ν μ μμ΅λλ€.
- μ΄λ¬ν κΈ°μ΄ μ§μμ λ°νμΌλ‘ κ·Έλν μ κ²½λ§(GNN)μ ꡬμΆνκ³ λ€μν λ°μ΄ν° κ³Όν λ¬Έμ μ μ μ©ν μ μμ΅λλ€.