- 2019년 8월 2일 오후 5:02
- 조회수: 10174
INFORMATION
- 2019년 8월 9일
- 오후 1시 ~
- 고려대학교 신공학관 218호
TOPIC
OVERVIEW
Convolutional Neural Networks (CNNs)는
이미지와 텍스트 등의 격자(grid)로 표현될 수 있는 데이터에 사용되어 이미지 인식 또는 기계번역과
같은 문제를 성공적으로 해결하였다.
더불어 최근 3D mesh, 소셜 네트워크, 분자 구조 등 다양한 그래프(graph) 데이터에 CNNs을 적용하는 많은 연구들이 시도되고 있다.
따라서 이번 세미나에서는 그래프 데이터에 spatial 관점의 convolution 연산이 어떻게 진행될 수 있는지 설명하고, 응용으로 어텐션 메커니즘(attention mechanism)이
어떻게 적용될 수 있는지 살펴보고자 한다.
- 참고 논문
[1] Veličković,
P., Cucurull, G., Casanova, A., Romero, A., Lio, P., & Bengio, Y. (2017).
Graph attention networks. arXiv preprint arXiv:1710.10903.
[2] Hamilton, W., Ying, Z.,
& Leskovec, J. (2017). Inductive representation learning on large
graphs. In Advances in Neural Information Processing Systems (pp.
1024-1034).
[3] Kipf, T. N., & Welling, M.
(2016). Semi-supervised classification with graph convolutional networks. arXiv
preprint arXiv:1609.02907.
발표자 후기
이번 세미나는 Graph Convolutional Networks(GCN)로 진행하였다. 그동안 내가 세미나에서 Convolutional Neural Networks 관련한 주제 (Capsule Networks, Bayesian Convolutional Networks)를 많이 하기도 하였고, 이번 학기에 graph 관련 수업을 들었기 때문에 자연스럽게 선정하게 되었던 것 같다. Graph Convolutional Networks에서 항상 중심이 되는 논문 Semi-Supervised Classification with Graph Convolutional Networks뿐만 아니라 Graph Attention Networks (GAT)를 주로 세미나 내용을 구성한 이유는 요즘 연구실 내에서 Attention mechanism에 대해서 기존 세미나 및 연구주제로 다수의 연구원에게 도움이 되지 않을까 생각을 했다.
CNNs 모델은 이미지 데이터에서 우수한 성능을 보이며 다양한 architecture가 연구되었다. 따라서 이미지+CNNs 모델에 빗대어 이해를 도우려 세미나를 구성하였다. 이미지의 특성과 Convolution layer가 가진 특성(Sparse connection, Weight sharing, Receptive field)을 엮어서 설명하고, 이런 특징이 Graph+CNNs에서는 어떻게 반영되었는지 설명하였고 이를 세미나 준비할 때 제일 흥미롭게 준비했던 것 같다.
GAT 모델에서도 기존에 Self-attention 모델이 Graph에 적용되면서 Masked self-attention으로 사용되는 과정을 설명하면서 기존에 Transformer의 연산 과정을 훌륭히 정리해둔 블로그를 많이 참고하였다. 해당 블로그가 기존에 Transformer 모델을 이해할 때 크게 도움이 되었다. 그 이유가 무엇인지 고민해보면 연산 과정을 직관적으로 이미지화했기 때문이었다. 나도 내 연구를 사람들에게 직관적으로 이해시키기 위해 이미지로 ppt로 풀어내는 것을 귀찮다고 생각 말고 열심히 해야겠다는 생각이 들었다.
세미나 시간에 언급하진 않았지만, Graph Convolutional Networks는 크게 Spectral method와 Spatial (Non-spectral) methods 두 갈래로 연구되고 있다. 욕심 상으로는 Spectral method로도 깊게 설명하고 싶었지만, 누군가에게 전달할 자신이 없어 이번 세미나 시간에는 제외하였다. 스스로 기본기의 부족함에 대해서 아쉬움이 크게 남는다.
항상 세미나를 준비하면서 많이 공부하고 배우지만, 이번 세미나를 준비하면서 느낀 점이 있다. 기존에는 논문에서 모르고 이해가 완벽히 되지 않는 부분이 너무 많았기 때문에 그 부분을 어쩔 수 없이 넘겨야 했고 그럼에도 불구하고 너무 내가 무지했던 탓에 많은 것을 얻고 배울 수 있었다. 하지만 이번에 준비하면서 느낀 점은 그동안 내가 성장했다는 의미일 수도 있겠지만 그렇게 이해가 안되는 부분을 잠깐 넘겨야지 하면 정말 내가 아는 수준에서만 해당 논문을 받아드린다는 점이었다. 이번에 처음 논문을 읽을 때 어떤 단어는 내가 몰랐기 때문에 ‘그냥 단순한 단어겠지’하고 넘겼다가 다음에 다시 읽으면서 그 단어를 검색해보았더니 학문의 한 가지였음을 알게 되어 놀란 경험을 하였다. 이제는 정독이 필요한 논문에 한해서 조금 더 꼼꼼하게 살펴야겠다고 생각이 들었다.
청취자 후기
오늘 전체세미나는 Graph convolution network(GCN)라는 주제로 민정이가 진행하였다. Graph는 Node, edge로 이루어진 데이터를 의미하며 학습 및 예측의 대상은 Graph, Node, Edge level로 task에 따라 나뉜다. 오늘은 Node level 분류 문제에 적용할 수 있는 GCN을 중점적으로 소개해 주었다. GCN는 Graph 데이터를 적용했을 때, Node 별 Class를 예측하는 Convolutional neural network 모델 구조다. 그 구조로 제안된 알고리즘은 Semi-supervised classification with GCN, Inductive representation learning on large graphs, Graph attention networks 알고리즘이 있다. Node간 연결 강도를 나타내는 edge가 학습의 대상이며 모델 내 Node간 연결여부를 나타내는 Adjacency 행렬이 주어져 학습이 진행되며, 특징추출 연산이 Convolution 연산인 점이 핵심이다. 그 구조에 Attention mechanism을 적용한 Graph attention networks이 상당히 흥미로웠다. 학습을 잘 할 수 있도록 Attention mechanism을 적용한 효과를 볼 수도 있지만 Graph 예측문제에서 충분한 성능이 확보되었을 때, 그 클래스를 예측하고자 한 중요 원인이 무엇이었는지 살펴보는 방법론으로 적용해 볼 수 있을 것 같다. 우리 연구실에서 수행하고 있는 여러 프로젝트 데이터에도 Graph로 표현할 수 있는 데이터가 많다. 사실 전부 Graph로 표현할 수 있지만 그 예측 목적 Graph로 표현될 수 있다는 점을 알아차리지 못할 때가 많다. 적극적으로 활용해 볼 수 있을 것 같고, 개인적으로는 수면 이벤트 시퀀스데이터를 Graph로 표현해 예측문제에 적용한 적이 있는데 Graph attention network를 사용하여 예측 성능을 확보할 뿐만아니라 수면 상태에 영향을 미치는 구간과 상태들이 무엇인지 살펴보고 싶다.
통신 서비스의 대중화가 됨에 따라 전산화되는 데이터는 기하급수적으로 늘어나고 있다. 정형데이터부터 해서 이제는 꽤나 익숙한 비정형데이터인 사진, 음성, 텍스트 데이터도 당연히 늘고 있지만, 여기서 주목해야 할 부분은 IoT의 패러다임에 따라서 객체 간 관계에 대한 데이터가 많이 증가하고 있다는 점이다. 하지만, 이러한 유형의 데이터에 대해서 End-to-End를 수행하는 파이프라인 방법론이 마땅히 없기에 수동적으로 여러 번의 Query를 통해 원하는 데이터의 관계를 뽑거나 Graph 형태를 명시적으로 띄는 데이터에 대해서는 Graph-Embedding 알고리즘을 통해 데이터 전처리 후, 기존의 off-the-shelf ML 알고리즘으로 처리를 하는 방식을 지금껏 관계형 데이터에 대해 처리해왔다. 이렇게 Graph 형태(혹은 관계형)의 데이터 파이프라인은 사람의 손으로 일일이 feature engineering을 하는 부분이 많기에 이 부분을 최근 급부상하고 있는 Deep Learning 기법 중 convolution으로 End-to-end 방식으로 해결해보자는 것이 이번 시간에 소개할 Graph Neural Network의 한 갈래인 Graph Convolution Network이다.
먼저 Graph 데이터의 특징부터 살펴보자. Graph는 Non-euclidean한 데이터로서 각 노드의 인접노드의 갯수가 상이할 수 있으며, 무엇보다 이미지 데이터처럼 방향성을 지니지 않는다. 이 때문에 기존에 이미지 domain에서 동일한 convolution filter 사이즈를 가지고 움직이는 방식을 그대로 취하지는 못한다. 하지만, convolution을 가할 피객체의 국소부위에서 두 점간의 특징은 유사하다는 가정을 하고, graph data 또한 이러한 가정에 부합한다고 가정하면 convolution의 개념을 차용해볼 수 있다. 참고로 Graph Convolution 방식에는 Fourier Transform을 이용해 인접 노드들이 지니는 embedding vector들의 분포를 주파수 대역으로 변환시켜 해석하는 Spectral 방식과 기존 convolution 방식과 거의 동일한 Spatial 방식이 있는데 오늘 소개해준 내용은 Spatial 방식이라고 한다. (이하 Spatial Graph Convolution은 Graph Convolution으로 표기)
Graph Convolution은 역시나 convolution이다. 주변의 노드가 가지고 있는 특징벡터(+자기 자신)으로 해당 노드를 다시 잘 represent 해보자는 것이다. 이때 그래프에서 노드 간 관계(edge)는 정량적으로 adjacency matrix(혹은 degree, Laplacian matrix)로 표현한다. 여기서 adjacency matrix는 일종의 인접 노드로 특징벡터부터 얼만큼의 가중합을 줄 것인지에 대한 베이스라인이 되며, 이후 Graph Attention Network(GAT)나 GraphSAGE 알고리즘 같은 경우 이 가중합을 어떻게 줘서 representation을 잘 할 것인지에 대한 방법론이겠다.
GraphSAGE 알고리즘은 기존의 GCN 알고리즘이 transductive하다는 단점을 커버하기 위해 full-batch가 아닌 mini-batch를 썼다. 학습하는 것은 사실상 convolution layer의 weight이고 이 matrix는 이전 step의 (hidden) representation vector 크기와 것의 곱인 D_(t-1) x D(t)로서 mini-batch로서 학습해도 표현벡터의 크기만 지켜준다면 W가 학습이 된다. 나아가 layer 한번에 receptive field를 인근 노드 한 hop 밖에 가지지 못한다는 점을 보완하기 위해 search depth를 늘려 receptive field를 증가시켰다. 이때 늘어난 receptive field로 인해 늘어난 계산 복잡도를 완화시키고 정규화 효과를 얻기 위해 sampling을 마지막에 하여 최종적인 receptive field, 즉, 해당 노드에 대한 mini-batch를 얻어낸다. 이렇게 얻어낸 노드에 대한 aggregation은 위에 설명한 바와 같이 여러가지 방식(lstm, mean, pooling, attention)으로 계산해낼 수 있다.
GAT 같은 경우 aggregation을 attention을 통해서 하는 점이 다른 점이다. 가중치를 정해주는 방식을 여러가지 방식(lstm,등)으로 학습시킬 수야 있겠지만 현재 이 도메인에서 SOTA 기법인 multi-head attention의 놀라운 성능은 실험 결과에서도 명백히 빛났다. Attention method는 정말이지 이제는 선택이 아니라 필수인 것으로 보인다.
이번 발표에 대한 논문은 1-dimension edge로 얻은 adjacency matrix를 기반으로 전개하였으나, 대다수의 관계형 데이터는 노드가 다차원일 뿐만 아니라 관계(edge) 또한 다차원으로 표현되는 경우가 많으므로 현실적인 데이터에 적용하기 위해서는 추후 확장 연구가 필요해 보인다. 또한, graph 형태의 데이터는 real-time으로 노드와 에지가 변동하는 경우가 많은데 현재의 알고리즘은 계산 복잡도가 높아 real-time domain으로 적용하기에는 한계가 보인다. GraphSAGE에서 mini-batch나 sampling 기법으로 어느 정도 완화를 했으나 아직은 static graph에서나 적합한 알고리즘으로 보인다. 마지막으로, layer가 deep 해질수록 인근 노드와 유사도를 높이는 방향으로 갈텐데 원치 않는 단일 state로 수렴해버리는 것 또한 풀어야할 문제로 보인다.
당장의 GNN은 computation cost이 높아서 정적 그래프에나 어울리는 온실 속 알고리즘이겠지만, CNN 그리고 RNN 또한 한 때 아장거렸던 시절이 있던 것을 감안하고, Non-Euclidean 데이터의 공급/수요가 향후 늘어날 것을 본다면 GNN 또한 CNN, RNN 처럼 하나의 정석 domain으로 자리 잡지 않을까 조심스레 예상하고 있다. 마침으로, 대다수의 사람들에게 낯선 주제인데다가, 차주에 비슷한 주제로 강교수님의 발표가 있어서 어떻게 접근해야 될지 굉장히 고민이 많았을 텐데, 귀에 쏙쏙 박히게 설명을 잘 해준 민정이에게 고맙고, 또 많이 배워간다고 전하고 싶다.
[세미나주제]
Graph Convolution Network
[세미나를 통해 얻은 지식]
- GCN의 기본 개념
- GCN의 동작 방식
- Graph의 기본 구조(Node, Edge, cyclic/acyclic 개념등)
[세미나 Good Point]
- 논문에는 기술되지 않은 발표자가 그린 상세한 설명
- 통상적인 tabular data/untabular data외에 social network같은 mesh 구조 데이터에 적합한 머신러닝 모델 학습
[세미나 소감]
- 최근들어 RDBMS를 넘어 mesh 구조 데이터를 저장하기 위한 노력으로 Graph DBMS가 활성화 되고 있습니다. 이 분야 Global No.1 software 회사로는 neo4j(https://neo4j.com/)이라는 회사가 존재합니다. 해당 DBMS를 접하면서 Node, Edge, cyclic/acyclic개념을 접한바 있습니다. 이러한 DBMS는 social network및 연관도 분석등에 있어 기존 RDBMS로 처리가 어려운 복잡한 관계를 처리할수 있습니다. 이를 위해 Graph DB에서는 Cypher Query Language라는 neo4j사의 Query방식이 defacto standard가 되어 가고 있습니다.
- Graph 구조가 머신러닝 모델에 접목이 되면서 유사하게 social network 분석, citation분석등에 활용될수 있다는 측면에서 어쩌면 Graph라는 개념이 특정 기술 영역으로 파고드는 속도가 가속화 되는 것이 아닌가 싶은 생각이 듭니다. Graph Algorithms -> Graph DBMS -> Graph ML 모델 식으로 말이죠. 그만큼 사물간, 사물과 사람간 relation이 복잡해지고 연관성이 다양한 경로를 통해서 이루어질수 있기 때문에 GCN의 경우 이러한 Usecases에 적합하다고 생각됩니다.
[세미나 지식의 활용]
-Graph DBMS + Graph ML모델을 결합하는 형태의 Usecases가 가능하지 않을까 싶습니다. Graph형태 데이터를 먼저 Graph DBMS에 축적하고, 이를 Graph ML모델로 분석하는 application 형태가 가능할 듯 싶습니다.
- 통상적인 tabular data의 경우 pandas등을 활용하여 처리가 가능한데, 이 범주에 들어가지 않는 데이터에 대한 분석을 GCN을 통해 가능할 듯 합니다.
[추가 지식습득 혹은 연구 방향]
- Graph Embedding pytorch-biggraph(https://torchbiggraph.readthedocs.io/)가 언급된 논문(Inductive Representation Learning on Large Graphs)과 관련이 있는지 확인해 보고 싶습니다.
오늘 세미나는 Graph convolution network(GCN)이라는 주제로 민정 언니가 진행하였다. 먼저 graph에 대한 소개와 대표적인 논문 Semi-supervised classification with GCN, Inductive representation learning on large graphs, Graph attention networks을 순차적으로 다루며 각 논문의 한계점과 개선점을 차분히 설명해주었다. 지난 학기 언니와 함께 들은 확률그래피컬 모델 수업에서 처음 graph라는 개념에 대해 알 수 있었는데, 금일 세미나는 그 때 배운 개념들을 정리함과 동시에 평소 궁금해온 부분들을 해결해주는 시간이었다. 수업시간에 다뤄진 내용들은 대부분이 그래프를 추정하는 과정이어서 그래프를 해석하고, 군집하는 과정에 비중을 두어 다뤄져 항상 내게 좀더 익숙한 예측문제에는 어떻게 이루어지는지, 가능한지에 대해 궁금해왔다. 금일 소개된 흐름들은 그래프를 어떻게 효과적으로 예측하는지에 대해 중점적으로 다루었다. 특히, 이미지 데이터가 CNN에 좋은 성능을 보일 수 있었던 inductive bias 1. Sparse connection, 2. Weight sharing, 3. Receptive field가 그래프에도 자연스럽게 접목되어 그래프 또한 CNN으로 예측하는데 주어진 가정들이 충분히 성립하는 것이 흥미로웠다. 마지막에 소개된 Graph attention network는 self-attention의 개념이 충분히 녹아있으면서, text에서도 test단계에서 미래의 단어를 모르는 가정에 사용된 mask가 graph에서는 edge의 연결정보를 모르는데 활용되는 점도 흥미로운 점이었다. 이번 세미나를 통해 다시 한 번 그래프에 대한 개괄적인 정보 그리고 이루어지는 연구들에 대해 다뤄볼 수 있었다. 이런 광범위한 주제를 편하게 즐겁게 들을 수 있었던 데에는 세미나 준비 과정에서 광범위한 주제를 소화하기 위해 노력해준 발표자가 있었기 때문인 것 같다. 언니는 항상 각 연구 분야들 혹은 다른 형태의 데이터타입들이 어떤 특성으로 어떻게 연결가능한지 고민을 많이 한다. 나 또한 옆에서 이러한 긍정적인 영향을 많이 받을 수 있고, 배울 수 있어 항상 감사하다.
오늘은 Graph Convolutional Networks(GCN)를 주제로 진행되었다. 지금까지의 세미나에서는 이미지나 음성, 텍스트와 같은 데이터를 분석할 때 Convolution Network가 어떻게 사용되는지에 대한 내용을 주로 다루었었다. 이런 데이터에 대한 내용은 수차례 들어왔던터라 어느정도 이해를 하고 있었는데 그래프 데이터에 대한 Convolution network 분석은 처음이라 상당히 흥미로웠다. 그래프는 엣지와 노드로 구성되어 있는데 노드는 우리가 지금까지 사용하던 데이터라고 보면되고 엣지는 데이터간의 연결 정도라고 보면 된다. 그래프 분석은 결국 데이터간의 관계를 정의할 수 있을때 이 정보를 어떻게 사용할 것인가에 대한 부분으로 생각할 수 있다. 이런 과정을 오늘 세미나에서 다루었는데 총 3가지의 논문을 리뷰했다. Semi-supervised classification with GCN, Inductive representation learning on large graphs, Graph attention networks을 순차적으로 다루며 각 논문의 한계점과 개선점을 차분히 설명해주었다. 금일 세미나에서 가장 중점적으로 다루었던 Graph attention network는 모델을 학습할 때 엣지 정보를 이용하여 필요없는 부분을 제외하는 masked self attention 기법을 구현하였는데 인상 깊었다. 최종적으로 나오는 아웃풋에 각 데이터의 엣지에 대한 attention score 를 구할 수 있는데 이는 결국 엣지의 weight 와도 같아서 이를 그래프 내용 해석에 이용하는 것도 좋은 방법일 것 같다. 처음 보는 분야의 논문이었지만 쉽고 간결하게 잘 설명해주어 이해하기에 좋았던 세미나였다.
금주 세미나는 graph convolutional networks를 주제로 진행되었다. 세미나는 매우 친절하게 graph에 대한 간략한 소개, graph convolutional networks가 주로 사용되는 semi-supervised learning에 대한 간략한 소개로 시작되었으며, 총 3개의 논문에 대한 리뷰를 진행하였다. 그래프는 node와 edge로 구성되어 있으며, 경우에 따라서는 node 들이 자체적인 특성치를 갖거나, edge에 방향성 또는 weight가 주어지는 경우들이 있다. 세미나에서 고려한 상황은 undirected, unweighted graph로, node 간의 관게가 있다 또는 없다로 해석가능한 가장 단순한 그래프가 주어진 경우이다. 그래프에서 node는 변수 또는 관측치를 의미할 수 있는데, 세미나에서는 node가 관측치인 경우를 다루었으며, 이는 semi-supervised learning에서 흔히 찾아볼 수 있는 상황이다. 기존 semi-supervised learning의 경우에는 주어진 그래프에서 인접한 경우, 두 관측치는 지도학습 문제 (특히 분류 문제)에서 같은 레이블을 가질 가능성이 높다고 가정한다. 하지만 graph convolution에서는 명시적으로 레이블이 같다고 가정하는 대신, 인접한 관측치들이 서로 정보를 공유하는 방식을 사용한다. Graph convolution은 일반적인 convolution과 같이 "인접한" 변수들의 정보를 활용하여 변수 추출을 시행하는데, graph상에서 인접한 변수들을 사용한다는 점이 다르다고 할 수 있다. 세미나에서는 이런 아이디어를 neural network에 잘 녹여낸 3개의 논문을 리뷰하였으며, inductive representation learning on large graphs와 graph attention networks 두 논문의 경우에는 다른 분야로 확장 가능한 많은 아이디어들을 포함하고 있다고 생각한다.
Graph Convolutional Networks(GCN)에 대한 세미나를 청취하였다. 약 1~2년 전부터 연구가 활발히 진행되고 있던 분야였고, 다양한 도메인에서 사용되는 알고리즘이기 때문에 특히 흥미롭게 들었다. 그래프 혹은 네트워크 데이터는 노드와 노드 사이의 관계를 설명하는 엣지로 이루어져 있는 데이터를 의미한다. 이러한 그래프 데이터를 갖고 다양한 태스크를 수행할 수 있는데, 금일 세미나에서 초점을 맞춘 부분은 노드=관측치이며 노드를 분류하는 태스크였다. 그래프 데이터의 특징을 분석하기에 적합한 뉴럴 네트워크 구조를 디자인 하는 것이 중요한데, 소개한 알고리즘에서는 graph structure (adjacency matrix)를 직접적으로 모델에 넣어주는 방식을 사용하였다. 이전 기계 학습 알고리즘에서는 graph-based regularization, 즉 Laplacian term을 사용해서 연결된 노드의 레이블을 동일하게 강제하여 할당하는 방식을 사용하였다. 하지만 GCN에서는 노드간 관계를 정의하고 임베딩하는 과정을 거치기 때문에, convolution 연산에서 인접한 노드간의 관계를 자연스럽게 고려하게 된다. 세미나 마지막에는 GCN과 self-attention mechanism을 활용한 Graph Attention Networks를 소개했는데, 최근 많은 분야에서 뛰어난 성능을 내고 있는 attention이 그래프 구조를 설명하기에 본질적으로 일맥상통하는 부분이 있다고 느꼈다. 세미나 중간에 소개했던 내용 중, 네트워크 구조를 사전에 정의해줘야 하기 때문에 피할 수 없는 full-batch learning을 해결하기 위해 사용된 GraphSAGE (SAmple and aggreGatE)도 상당히 흥미로웠다. 변수간 관계가 아닌, 관측치간 관계를 사전에 정의하고 이를 모델에 학습시키기 위해서 항상 겪어야만 하는 문제점인데, 추후에 시간을 들여 천천히 리뷰를 해 볼 생각이다.
금일은 Graph Convolutional Networks를 주제로 세미나가 진행되었다. 개인적으로 Graph Network에 대한 개념에 대해 알고 싶었는데, 이번 세미나를 통해 기본적인 개념에 대해서 알게 된 것 같아 기뻤다. 먼저 Graph Network와 Convolution에 대한 설명으로 세미나는 시작되었다. Graph Network란 노드와 그 노드를 연결하는 Edge들로 구성되어 있는 구조를 말하며, 노드는 연구자의 연구 목적에 따라 변수의 값으로 설정할 수 있고, 관측치의 값으로도 설정 할 수 있다. 그리고 이후에는 Graph Network를 Matrix로 표현하는 3가지 방식이 소개 되었다. 먼저 두 노드 사이에 Edge가 있냐, 없냐 여부를 1, 0으로 표현 하는 것은 Adjacency Matrix이고, 두번째로 각 노드 별로 연결되어 있는 Edge의 개수로 표현하는 것은 Degree Matrix이며 Adjacency Matrix와 Degree Matrix의 차이로 표현하는 것은 Laplacian Matrix이다. Graph Network를 Matrix로 표현하는 방식에 대한 소개 이후 Transductive, Inductive에 대한 설명과 Convolutional Layer에 대한 설명이 이어졌다. 기초가 되는 개념 설명 이후 본 세미나에 핵심이 되는 ‘Semi-supervised classification with GCN’ 논문과 ‘Inductive Representation Learning on Large Graphs’ 논문, ‘Graph Attention Networks’ 논문에 대한 설명이 이어졌다. 개인적으로 ‘Graph Attention Networks’에 대한 설명이 진행되면서 Attention에 대한 기본 개념들을 녹여서 설명해준 것이 좋았다. 최근 뉴럴네트워크에 대한 해석의 필요성이 증대되고 있는 시점에서 ‘Attention’ 개념이 많이 활용 되고 실제 다양한 과제에서도 적용 되고 있는 시점이다. 해당 내용에 대해서 이전부터 많은 선배 연구원들이 설명을 진행해준 데 이어서, 금번 세미나처럼 다른 세미나 주제임에도 Attention이 활용된 부분에서 기본적인 개념을 또 다시 들을 수 있어서 좋았다. 다양한 사례와 청중들이 이해하기 쉽게 설명하려고 노력해 준 민정이에게 감사함을 표한다.
오늘 세미나는 Graph Convolutional Networks(GCN)에 대한 내용이었다. Graph는 크게 node와 node를 연결한는 edge로 구성되어 있으며 이 두 가지를 어떻게 정의하고 사용하는지가 중요하다. GCN은 node간 관계를 edge로 표현하며 이 edge들을 2차원의 matrix 형태로 된 표를 cnn을 이용하여 분석하는 것이다. 이 때 node가 많아짐에 따라 matrix가 점점 커지고 그에 따라 computation cost가 매우 증가한다. 따라서 큰 데이터의 경우 모든 edge를 사용하는 것은 매우 비효율 적이다. 이러한 문제점을 해결하기 위해 기존 연구들은 연결된 depth나 value값을 이용하여 선택적으로 edge들을 선별하여 계산하였다. 그와 다르게 Graph Attention Networks는 Self-attention model을 사용하였으며 nlp에 주로 사용되는 transformer 모델을 적용하였다. 그 결과 하나의 node에 대해 연관이 있는 node들만 연산을 하게 되어 효율적이고 예측력을 높힐 수 있었다. Attention 기법이 Graph network에도 잘 적용된다는 것을 알 수 있었다. 데이터가 점점 많아짐에 따라 중요한 것만 볼 수 있는 attention기법이 많이 활용되고 있으며 생각보다 다른 영역에서도 잘 적용된다는 것을 알 수 있었다. 또한 배경 지식이 많이 필요한 논문이었는데 여러 가지를 설명하면서 최종 논문까지 잘 설명해 주었던 것 같다.
이번 세미나는 "Graph Convolutional Networks(GCN)" 라는 주제로 세미나가 진행되었다. Graph 라고 하여 모든 그래프 형태의 Network을 그래프 network 라고 하는줄 알았는데 실제로는 여러 노드들이 어떠한 연관성에 따라 edge(노드를 연결하는 선)으로 연결되어 있는 network 를 Graph network 이라고 한다고 하였다. 노드는 연구 목적에 따라 자체적인 특성값으로 설정 할 수도 있고, 관측치의 값으로도 설정 가능하며(weight, 방향성 등) 새미나에서는 undirected, unweighted graph 에 관하여 노드간의 관계가 있다 또는 없다 의 단순 해석가능한 그래프로 진행 하였다. 또한 Matrix변환하여 표현하는 3가지 방식이 소개 해 주었는데 1. 두 노드 사이에 Edge가 있냐, 없냐 여부를 1, 0으로 표현 하는 것은 Adjacency Matrix , 2. 각 노드 별로 연결되어 있는 Edge의 개수로 표현하는 것은 Degree Matrix, 3. Adjacency Matrix와 Degree Matrix의 차이로 표현하는 것은 Laplacian Matrix이다. 세미나에서 가장 중점적으로 다루었던 Graph attention network는 모델을 학습할 때 엣지 정보를 이용하여 필요없는 부분을 제외하는 masked self attention 기법을 보여 주었는데 이로인해 계산량이 줄어드는 효과를 볼수 있었다. 최근 attention 이 주목받고 있는데 attention 에 대한 기본 개념 및 어떻게 사용되는지 알게 되어서 참 도움이 되었다.
금주 세미나는 Graph Convolutional Networks라는 주제로 진행되었다. 민정이말대로 처음 graph라는 단어를 들었을 때 가장 먼저 떠오른 것은 bar형태로 이루어진 graph가 먼저 떠올랐다. 하지만 여기서 나온 graph는 node와 edge로 이루어진 형태를 만ㄹ한다. 여기서 node는 관측치에 해당하고 edge에 directed/undirected, weighted/unweighted를 준다. 그리고 관측치에 해당하는 node를 분류하는게 주된 목적이다. Graph Convolutional Networks를 설명하기 위해서 Semi-supervised classification with GCN, Inductive representation learning on large graph, Graph attention networks에 해당하는 3개의 논문을 다루어 주어 좀더 이해하기 쉬웠다. 특히 마지막에 중점적으로 다룬 Graph attention networks는 attention mechanism을 잘 녹여낸 알고리즘이였다. Attention mechanism을 처음 접하게 된 것은 NLP에 관련된 task를 하면서 접하게 되었는데 요즘은 NLP task뿐만 아니라 도메인에 관계없이 다양하게 쓰이고 있다. 기존의 self-attention 모델이 Graph에 적용되면서 Masked self-attention 으로 사용되어 mask된 edge의 정보에 활용한다는 점도 흥미로웠다. 따라가기 어려운 내용이였음에도 불구하고 자세하게 설명해준 민정이에게 감사하다.
오늘 세미나는 Graph convolution network(GCN)이라는 주제로 이민정 박사과정 연구원이 진행해주었다. GCN에서의 Graph는 Neural Network 안의 Node 끼리의 연결을 말하는 것으로 Node의 연결 유무를 통해 Data의 연관도를 확인하는 기법이라고 한다. 처음 주제를 듣고 우리가 흔히 알고 있던 Chart(Histogram, bar, box, cumulative 등)들 과는 조금 거리가 있기 때문에 조금은 낯설었던 어려운 내용이었다. GCN에서 다루는 Matrix 가운데 Weight가 동일하고 Node의 연결 유/무 만을 경우로 가지는 상황으로 설명해주어 이해에 도움이 되었다. Idea의 핵심은 Self-Attention Model을 사용하여 연관이 있는 node만을 연산하여 연산의 효율을 극대화 하는 방법이었다. Neural Network을 배워가는 학생으로 높은 성능을 발휘하지만 결과에 대한 해석이 어렵고, 계산이 복잡하다는 Neural Network의 단점 중 하나를 해결하는 방법으로 획기적인 Insight를 옅 볼 수 있는 유익한 세미나였다. 100 Page가 넘는 방대한 분량을 재미있고, 정확하게 소개해준 이민정 연구원님께 감사하다는 말을 전하고 싶다.
오늘은 최근 많이 연구되고 있는 Graph Neural Networks를 주제로 세미나가 진행되었다. 첫 번째로 소개된 논문 'Semi-supervised Classification with Graph Convolutional Networks (2016)'은 spectral graph convolution을 spatial domain에서 손쉽게 계산할 수 있도록 연산을 근사했다는 점에서 의의를 가진다. 하지만 transductive learning 문제에만 적용이 가능하다는 단점을 가지는데, 두 번째로 소개된 'Inductive Representation Learning on Large Graphs (2017)' 논문에서는 graph convolution 연산을 mini-batch 단위에서 새롭게 정의하며 해결하고자 하였다. 마지막으로 소개된 'Graph Attention Networks (2017)'에서는 최근 CNN, RNN 등의 뉴럴 네트워크 구조에서 널리 사용되는 attention 기법을 graph convolution으로 끌고 들어오면서 성능의 개선을 꾀하였다.
개인적으로 계속 공부를 하고 있는 분야인데, 발표의 흐름은 물론 직관적인 이해를 위해 정성을 다하여 준비한 자료들이 너무 좋았다. 우리가 다루는 데이터/문제상황 중에서 그래프로 표현함으로써 더 다양한 분석이 가능해지는 경우가 생각보다 많다. 아직은 생소한 분야지만 향후 1-2년 안에 크게 성장할 연구분야라고 생각한다.
금일 세미나는 Graph Convolution Networks 라는 주제로 민정이가 진행을 하였다. 그래프는 노드(node)와 아크(arc)로 구성되어 있다. 최적화 수업을 듣기 전까지는 수치를 한눈에 요약하여 볼 수 있는 그림으로만 이해하고 있었다. 최적화 수업을 듣고 나서는 그래프의 개념을 위와 같이 바꿀수 있었다. 그래프는 최적화의 NP-Hard 문제와 많은 관련이 있고, 수송 문제나 최소 거리 찾기 문제 해결하는 과정에서 많이 보았다. 하지만 그래프가 인공지능 분야에서는 처음 보았던 기회였다. 현실에 존재하는 많은 데이터를 노드와 아크로 나타내어, 이를 분석하는 알고리즘이 존재하는지를 알 수 있는 기회였다. 그래프의 상황을 반영할 수 있는 여러가지 행렬을 산출하고 이를 CNN을 기반으로 특징을 추출하고 분석을 진행하였다. Self-Attention 부분은 아직 학습이 부족하여 정확히 이해 할 수 없었다. 해당 부분을 학습한 뒤, 다시 한번 살펴보아야겟다고 다짐했다.
또한 발표 내용의 일부의 Semi-Supervised Learning은 항상 관심있는 분야이다. 발표에서 사용된 데이터는 노드과 관측치인 상황을 기반으로 진행하였다. 현재 진행하고 있는 프로젝트에 대해 관측치와 노드를 연결시킬 수 있는 방법을 연구한다면, 자동 레이블링(Auto Labeling)을 할 수 있을 것으로 기대한다. 선배이자 동기인 민정이에게 항상 많은 것을 배우고 감사하게 여기고 있고, 이를 다시 한번 느끼게 해준 세미나였다.
이번 세미나는 민정이가 Graph Convolutional Neural Network를 주제로 민정이가 진행하였다. Graph CNN 구조에 대한 기본적인 설명과 함께 이를 기반으로 한 3개의 논문을 리뷰하는 세미나였다. Graph는 Node와 Edge의 2가지로 구성된다. Edge는 분석 대상이 되는 Node간 relation을 표현하는 것이며 일반적인 데이터의 구성과 Graph로 구성하는 것의 핵심 차이가 된다. 여기서 Node는 단순히 Node간 단순 similarity를 의미하는 것이 아닌 문서의 인용, 네트워크 구조 등의 관계를 의미하며 Adjacency matrix, Degree matrix, Laplacian Matrix를 구성하여 관계를 표현한다. 첫 번째 논문인 Semi-supervised classification with GCN은 Graph CNN을 사용한 Transductive learning 방법론으로 Edge로 연결된 Node들은 동일한 class라는 가정 하에 분류 문제를 수행한다. 다음으로 다룬 Inductive Representation Learning on Large Graphs에서는 이전 논문이 갖는 Transductive 상황에서만 적용이 가능하다는 문제점(Full batch를 사용하여 연산시 메모리가 과도하게 사용, Unseen data에 대한 분류 문제 수행 불가)를 Minibatch로 학습하게끔 Graph sampling과 Node Aggregation을 수행하여 Inductive learning이 가능하게 하였다. 마지막으로 Graph Attention Network는 NLP 테스크에서 자주 접한 Self-Attention을 Graph 구조에 접목시켜 분류성능을 향상시켰다. Attention은 NLP를 넘어 딥러닝 모델을 사용하는 어느 영역에서나 활용 가능할 것이라는 생각을 이번 논문 리뷰를 하며 다시 느꼈다.
먼저 발표자가 유익한 세미나가 되기 위해 준비를 얼마나 열심히 했는지가 드러나는 세미나였다. 민정이 세미나를 3번째 들으며 느낀 점은 항상 본인이 완벽하게 이해하고 세미나를 진행하려고 노력하고, 사람들의 이해를 돕기 위해 작은 부분까지 디테일하게 설명해주는 부분이 돋보이는 것 같다. 본인의 공부를 위해서도 있겠지만, 연구원들에게 많은 도움을 주기 위해 애쓰는 점이 정말 고맙고 본받을만한 자세라는 것을 느꼈다. 그리고 민정이 세미나 덕에 개인 연구에 활용할 아이디어를 얻어 실제로 GCN 구현까지 해봤을 정도로 도움이 많이 되었다. 정말 좋은 세미나를 해준 민정이에게 감사하다.