CS224W - 01.Machine Learning with Graphs
- CS224W의 Intro를 정리한 글입니다.
1. Why Networks?
2. Networks and Applications
3. Starter Topic: Structure of Graphs
4. Choice of Network Representation
Why Networks?
- 네트워크 및 그래프에 대한 분류로 시작
Networks(=Natural Graphs)
vsInformation Graphs
- Networks
- 주어진 도메인을 어떻게 모델링할 것인가? 및 그 네트워크는 도메인에 대해 무엇을 나타내고 있는가? 에 대한 관심
- Networks
- Information Graphs
- Entity들 사이의 relationship에 관심 -> 예측(Prediction) 진행
- Information Graphs
- 하지만 이 두 분류가 혼합되어 사용되는 경우가 많다.
- 데이터가 네트워크의 형태로 표현되는 사례는 굉장히 많음.
- Social networks
- Economic networks
- Communication networks
- Information networks: Web & Citations
- Internet
Network of neruons 등등
- “네트워크에 대한 제대로 된 이해 없이는 어떤 모델링이나 예측도 ‘제대로’진행할 수 없다.” (Domain Motivation 필요)
- 많은 데이터들은 그래프의 형태로 표현됨
- Event Graphs
- Knoledge Graphs
- Disease Pathways
- Molecules
- Scene Graphs
Cell-cell similarity Networks
- “이런 데이터에서 Relationship들을 잘 모델링할 수 있다면 Prediction에 상당한 도움이 될 것.”
- Network가 중요한가? 그렇다면 왜 지금인가?
- 복잡한 데이터를 묘사하기 위한 보편적인 언어 Universal Language)
- 분야들 사이에서의 용어 공유 (Shared Vocab.)
- 데이터 이용가능성 (Data Availability) & 연산 능력 증대
- Impact (Google, Cisco, Facebook, Amazon, Pinterest와 같은 기업들)
Networks and Applications
- Node classification
- 주어진 노드의 타입/색깔 예측 - Link prediction
- 두 노드들이 연결되어 있는지 예측 - Community Detection
- 고밀도를 이루고 있는 노드들의 군집 인식 - Network Similarity
- 두 노드 및 네트워크들의 유사도 측정
- Embedding Node에 대한 언급
- 목표
- 유사한 네트워크에 속하는 노드들이 Embedding space에서 더 가까운 거리에 위치하도록 Input Space의 많은 노드들을 d-dimensional embedding space로 mapping
- Graph 상에서 깊은 관계를 맺고 있던 노드들은 d-dim space에서도 가까이에 놓이게 된다.
- 그래프 상의 모든 노드들이 d-dim space에서 하나의 ‘점’이 된다.
- Ideation “d-dim 상의 임의의 점을 택했을 때, 이 점 주변의 점들이 무엇인가?”를 찾는 것이 바로 ‘Recommendation’
- 앞으로 학습할 것은 ‘그렇다면 이 mapping을 어떻게 할 것인가?’에 대한 것
Starter Topic: Structure of Graphs
네트워크의 구성요소
Components | 표기 |
---|---|
Objects: Nodes, Vertices | N |
Interactions: links, edges | E |
System: network, graph | G(N,E) |
- Network? Graphs?
- 네트워크: 현실 세계를 지칭
- ex) Web, Social Network, Metabolic network
- Terms: Network, node, link
- 그래프: 네트워크의 ‘수학적인’ 표현 (Mathematical Representation of network)
- ex) Web graph, Social graph, Knowledge Graph
- Temrs: Graph, vertex, edge
- 네트워크: 현실 세계를 지칭
- (앞에서도 강조했지만) 어떤 domain에 대해 네트워크를 적용하고 있는지를 정확히 파악하고, 그 도메인에 맞는 적절한 네트워크 표기 (proper network representation)을 선택하는 것이 네트워크의 성공적인 활용을 결정
- 같이 일하는 개인들을 연결한다면 ->
Professional Network
를 탐색하게 될 것이고, - 서로를 인용하고 있는 과학 논문들을 연결한다면 ->
Citation Network
를 연구하게 될 것 etc.
- 같이 일하는 개인들을 연결한다면 ->
Choice of Network Representation
1. Directed vs. Undirected Graphs (방향 그래프, 무방향 그래프)
2. Node Degrees (노드의 차수)
- 무방향 그래프의 경우
- E: 총 Edge들의 개수
- 2를 곱하는 이유: 차수 카운팅시 모든 edge들은 두 번 세지기 때문에.
- 방향 그래프의 경우
- 전입, 전출차수를 구분 (전입: in-degree, 전출: out-degree) ㅇ
3. Complete Graph (완전 그래프)
: 서로 다른 두 개의 꼭짓점이 반드시 하나의 변으로 연결된 그래프
- N개의 노드를 가진 무방향 완전 그래프의 Edge의 개수
4. Bipartite Graph (이분 그래프)
- cf) ‘Folded’ Networks: 한 side에서의 두 노드가 적어도 하나의 공통된 neighbor를 share.
- 첫번째, 세번째 그림: Folded Networks
- 두번째 그림: Bipartite Graph
그래프를 나타내는 방법
1. 인접 행렬 (Adjacency Matrix)
2. 엣지 리스트 (Edge List)
3. 인접 리스트 (Adjacency List)
- 인접 행렬
- 노드끼리 연결되어 있으면1, 아니면 0으로 나타내는 행렬
- 역시 방향, 무방향 그래프의 두 경우를 나누어 생각해볼 수 있음
- 하지만, 인접행렬의 단점:
Sparsity
- 인접행렬을 Matrix 상에 표시해본 것인데, 상당히 Sparse함을 알 수 있음.
- 엣지 리스트
- 그래프를 엣지들의 집합으로 나타냄
- 그래프를 엣지들의 집합으로 나타냄
- 인접 리스트
- 네트워크가
크거나(Large)
,희소할(Sparse)
때 잘 working - 특정 노드가 주어지면 그 노드의 이웃 노드들을 빨리 찾을 수 있음
- 네트워크가
- 실 세계의 네트워크에 대해서 잘 곱씹어 볼 사항 중의 하나
- 실 세계의 네트워크는 정말
Sparse
하다.
- 예를들어, MSN의 경우를 보면, 노드는 2억 개가 넘는데, 평균 차수는 11.1 밖에 안됨.
- 실세계는 너무나 복잡한 나머지 그 관계들도 정말 복잡할 것 같지만, 실제로는 의외로 상당히 ‘Sparse’하다.
-> 이것이 바로 그래프를 Adjacency Matrix로 잘 나타내지 않는 이유.
Edge Attributes
- 엣지들 특성에도 다양한 옵션들이 있음.
- Weight (가중치)
- Ranking (best friend, second best friend)
- Type (friend, relative, co-worker)
- Sign (Postive, Negative, 친구 vs 적) 등등
이 외의 여러 그래프 타입
- Unweighted, Weighted, Self-Edges, Multigraph
무방향 그래프의 연결성
- Disconnected graph는 두 개 이상의 연결 성분으로 구성되어 있다.
- Giant Component는 연결 성분으로 구성된 그룹들 중 가장 크기가 큰 그룹을 의미
방향 그래프의 연결성
Strongly
connected directed graph- 방향 그래프에서, 어떤 한 노드에서 다른 모든 노드들로의 경로가 있는 방향 그래프
Weakly
connected directed graph- 방향 그래프에서, 그 방향성을 무시했을 때에, 어떤 한 노드에서 다른 모든 노드들로의 경로가 발생하는 그래프
- 그래프를 strongly connected components (SCCs) 로 decompose할 수 있다.
- Strongly connected components (SCCs)
- Strongly connected components (SCCs)