논문 링크 : https://arxiv.org/abs/1802.08773
Github : https://github.com/JiaxuanYou/graph-generation
<Introduction>
1. 그래프로부터 그래프 생성방법 직접 학습합니다.
=> 서로 다른 노드 순서로 그래프를 시퀀스로 표현가능
=> 입력노드 순서에 따라 서로 다른 그래프가 생성되는 것이 아닌 동일한 그래프가 생성되도록 회귀모델을 제안
=> 노드와 엣지의 개수가 다양해도 그래프생성 가능
2. 기존 Graph Generation 연구의 문제점은 다음과 같습니다.
- 크고 다양한 output => N개의 노드 -> n^2 개의 output
- 노드의 집합이나 개수가 미리 정해져 있어야 함
- 복잡한 종속성
=> 두 노드가 공통 이웃을 가지면 연결될 가능성 높음
=> 다음 엣지는 이전에 생성된 엣지에 의존
<Model>
전체 구조도
1. Autoregressive(자동회귀) 모델
- 모든 노드와 엣지 사이의 복잡한 결합확률 포착에 용이
- 가변 크기의 그래프 수용
2. 계층적 모델
- Graph-level: 새로운 노드생성, 그래프 유지
- Edge-level: 새로 생성된 노드에 대한 엣지 생성
3. BFS사용
-확장성 향상
4. Input: 인접벡터와 이전 state
5. 입력순서: graph를 BFS순서의 sequence로 나타낸 것
<결론>
- 각 노드와 edge를 생성하기 위해 graph-level RNN과 edge-level RNN을 사용.
=> edge-level RNN: 이전 sequence에서 생성된 노드에 새로운 노드를 연결할지 나타내는 binary sequence를 생성
=> graph-level RNN : 매번 node sequence에 새로운 node를 추가
* GCN과의 차이점*
1. GCN
- 인접행렬 사용
- 입력은 노드의 입력 feature
- 그래프 각 노드의 feature를 학습
2. GraphRNN
- 인접행렬대신 인접벡터 사용, 신경망의 입력으로 사용
- 그래프 생성법 학습
- 노드의 입력은 깊이우선탐색으로..