- 2020년 9월 4일 오후 4:50
- 조회수: 13523
REFERENCES
INFORMATION
- 2020년 9월 11일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
발표자 후기
이번 세미나는 코로나 사태로 인해 비대면으로 진행하기 위해서 세미나 녹화본 영상을 유튜브 링크로 공유하는 방식으로 진행하였다. 세미나에서는 Attention 기초 내용과 Graph Neural Networks에 대한 설명과 함께 이 둘을 결합한 Graph Attention Networks를 소개하였다. 복잡하게 설명하기보다는 핵심 내용만 간추려서 내용을 구성하고 설명하려고 했는데도 처음으로 긴 시간동안 녹화를 하다보니까 오프라인 발표할 때보다 더 매끄럽게 세미나를 진행하기 어려웠고 설명이 장황하게 길어지는 경향이 있었다. 이번 세미나가 Attention과 GNN을 공부하는 연구원들에게 도움이 되었으면 좋겠다.
청취자 후기
이번주 세미나는 "Graph Attention Networks"라는 주제로 강현규 선배님께서 발표해 주셨습니다. 세미나는 크게 Key, Query, Value를 사용한 Attention에 대한 설명과 self-Attention을 이용한 Transformer, 그리고 Graph Neural Networks에 데이터 구조 및 표현, GNN의 활용법 및 학습방법, 마지막으로 Graph Attention Networks를 설명하는 파트로 구성되어 있습니다.
먼저 Attention에 대한 부분에서 Dictionary자료구조인 Key, Query, Value부터 설명하며 Query와 Key의 유사도를 계산한 후 value의 가중합을 계산하는 과정을 쉬운 예시를 통해 알려주었습니다. 그리고 Self-Attention과 Transformer를 소개하고 기존 RNN, CNN 구조와의 차이를 설명해 주셨습니다. Transformer는 Attention만을 사용하여 Feature Representation을 하고 Key의 차원수로 Scale을 하여 Vanishing Gradient 문제를 해결합니다. 이러한 Transformer의 다른 장점으로 계산 복잡도가 적고 병렬계산이 가능하며 Long term dependency 문제 또한 해결이 가능합니다. 거기에 Self-Attention Score를 통해 시각화하여 어느정도 해석을 할 수 있습니다.
그리고 Graph Attention Networks를 설명하기 전에 기본적인 Graph Neural Networks에 대해 설명을 해주셨습니다. Graph data는 Text data나 Image data와 달리 Euclidean space에 표현을 할 수가 없기 때문에 Graph data는 Node를 설명하는 Node-Feature Matrix와 Edge를 설명하는Adjacency Matrix를 사용하여 표현합니다. 그렇기에 GNN은 Node Level, Edge Level 그리고 Graph 전체의 Level에서 활용할 수 있으며 Computer Vision이나 NLP 등에서 활용 및 연구되고 있습니다.
GNN은 시퀀스가 없고 다양한 그래프 구조를 가지고 있으며 타켓 노드에 따른 엣지의 수가 다르다는 것을 고려하여 인접 노드에 대한 정보를 받아 학습을 시켜야 합니다. GNN을 학습을 하기위해서 Layer에서 Aggregate, Combine 마지막으로 Readout 과정을 거치게 됩니다. Aggregate는 타겟 노드위 이웃 노드들의 그 전 시점의 hidden stat를 결합하여 요약된 정보를 생성합니다. 이 요약된 정보와 그 전시점의 hidden state를 Combine하여 다음 시점의 target node의 hidden state를 업데이트 합니다. 마지막 Readout에서는 다음 시점의 모든 노드들의 hidden state를 결합하여 graph의 hidden state를 생성합니다. 이러한 Layer를 여러 개 이용하여 그래프의 hop을 증가시킬 수 있습니다. GNN은 Aggregate와 combine function의 정의에 따라 다양한 모델이 존재하는데 GCN, Gated GNN 등이 있습니다.
이 GNN에 Attention의 개념을 도입한 것이 Graph Attention Networks인데 Aggregate 과정에서 Target Node의 근접 노드 hidden state값을 Key,Query,Value로 사용하여 유사도를 계산합니다. 이렇게 구해진 Aggregated information과 hidden state를 이용하여 hidden state를 update합니다. 이러한 GAN은 다른 모델들 보다 성능이 더 뛰어나고 Attention Score를 통해서 설명이 가능하게 됩니다.
지난 주 세미나에서 배운 Transformer를 Graph Neural Networks에 활용할 수 있다는 내용을 알게 되었고 Graph Attention Networks를 설명하기 위해 Attention, GNN 순으로 차근차근 설명해 주셔서 더욱 쉽게 따라갈 수 있었습니다. 이렇게 디테일한 강의를 만들어주신 강현규 선배님께 감사드리며 세미나 후기를 마무리 하겠습니다.
금일 세미나 주제는 Graph Attention Networks로 현규형이 졸업 전 마지막 세미나를 진행해주셨다. 현규형과 함께 연구미팅을 하면서 Graph Attention Network에 대한 키워드를 예전부터 접목했었고, 이것을 활용한 감성분석 연구를 들으며 그래프와 딥러닝을 결합한 분야에 대해 꼭 공부해보고 싶었는데 이번 세미나를 자세하게 접할 수 있어 좋았다. 또한, Attention의 핵심 개념 리마인드와 활용 모델을 자세하게 짚어주어 좋았고, Attention score 산출 테크닉들까지 여러 개 소개해주었다. 이 것은 'Graph Attention Network'에서 'Attention'이 어떤 역할과 방법으로 산출되는지 이해하기 위한 필수적 도움이 되었고, 발표자의 이해를 돕기 위한 현규형의 친절한 성격을 잔뜩 느낄 수 있어 나도 세미나는 이런 방식으로 진행해야겠다 생각이 들었다. 가장 인상 깊었던 점은 '그래프 데이터'의 설명에서 '그래프 데이터를 활용한 태스크'가 어떻게 이어졌는지와, 이를 풀기 위한 그래프 인공신경망 학습 형태, 개선점을 그래프 분야의 연구 흐름 순서로 잘 설명해준 것이다. 이 점은 처음 그래프 분야를 접한 나도 쉽게 이해할 수 있었고, 다른 연구원들도 마찬가지로 다가갔을 거라고 생각한다.
본인은 이제 신입생이 아니지만 입학 초기부터 모르는 점이 생길 때마다 현규형에게 자주 묻곤 했다. 하나를 물으면 5개를 알려주곤 했던 현규형의 성격을 다시 한번 볼 수 있는 세미나 장표와 영상을 보며 감사의 말을 전하고 싶고, 그래프 인공신경망에 대한 연구를 하고 싶은 자에게 주저없이 이 영상을 추천해야겠다 다짐했다. 현규형 고생하셨습니다!
이번 세미나는 "Graph Attention Networks"라는 주제로 진행되었습니다. Attention은 기계번역 문제를 풀기 위해 처음 제안된 메커니즘으로 attention을 사용했을 때 기존 모델보다 좋은 성능을 보일 뿐 아니라 해석이 가능하다는 장점을 가지게 되었습니다. Transformer는 attention만을 활용하여 기존의 RNN의 문제점을 해결했을 뿐 아니라 성능 또한 크게 향상하면서 많은 주목을 받게 되었습니다. 이를 계기로 다양한 분야에서 attention을 활용한 모델들이 등장하게 됩니다. 오늘 세미나에서는 Graph Neural Network(GNN)에 attention을 적용한 모델인 Graph Attention Network(GAN)에 관해서 소개되었습니다. 그래프는 노드와 엣지로 구성되어 있으며 노드는 시스템의 구성요소를 의미하고 엣지는 노드 사이의 관계를 표현해 줍니다. 그래프는 문장, 사진처럼 우리가 흔히 접할 수 있는 데이터부터 분자구조식 혹은 3D 형태의 물체까지 다양한 형태의 데이터를 표현할 수 있습니다. GNN은 그래프에 neural network를 적용한 모델로 1. Aggregate, 2. Combine, 3. Readout 세 단계를 거쳐 진행됩니다. Aggregate는 인접한 노드의 정보를 결합하는 방법, Combine은 인접한 노드의 정보와 타겟 노드의 정보를 결합해 다음 시점의 타겟 노드를 업데이트 하는 방법, Readout은 모든 노드의 정보를 결합해 그래프를 표현하는 방법을 의미합니다. 세 가지의 단계가 어떻게 정의되느냐에 따라 GNN의 다양한 모델들이 정의될 수 있습니다. GAN은 aggregate 과정에서 self-attention을 활용합니다. 타겟 노드와 인접한 노드의 유사도를 feed forward neural network를 이용해 계산합니다. 계산된 유사도를 노드별로 softmax 함수를 취해 attention score를 계산합니다. Combine 단계에서는 계산된 score를 각 노드의 hidden state 벡터와 곱해 다음 시점 타겟노드의hidden state 벡터로 사용하게 됩니다. GAN에서는 Transformer에서 제안되었던 multi-head attention을 동일하게 활용하여 그래프에서 노드 사이의 다양한 관계를 표현할 수 있게 했습니다. 이를 통해 기존의 GNN 모델들과 비교했을 때 성능을 크게 향상했을 뿐 아니라 해석력까지 갖춘 모델을 제안하게 됩니다. 이번 세미나를 attention에 대해 다시 한번 정리할 수 있었으며 평소 관심 있었던 GAN에 대한 전반적인 이해를 할 수 있어서 의미 있는 세미나였습니다. 모델의 진행 과정이 그림과 함께 단계별로 제시되어 모델의 전체적인 구조를 이해하기 좋았습니다. 세미나를 위해 고생해준 현규형에게 감사의 뜻을 표하며 세미나 후기 마치도록 하겠습니다.
이번 세미나는 Attention 메커니즘과 Graph Neural Networks에 대한 기본내용을 설명하고 GNN에 Attention을 도입한 Graph Attention Networks를 소개하는 내용이었다. 우선 Attention 메커니즘에 대해 초보자도 이해할 수 있도록 단계적으로 계산과정을 상세히 설명해줘서 좋았다. Attention은 Dictionary 자료구조와 유사하게 Query, Key, Value 개념을 사용하고 있고, Query와 Key의 유사도에 Value를 곱한 값을 합하여 Attention Score를 계산하게 된다. 이 때 유사도는 다양한 Similarity Function으로 사용이 가능한데, Additive, Dot product, Scaled-dot product 등이 있다. Attention은 Query,Key,Value가 모두 동일한 Self-Attention으로 발전하여 RNN, CNN 구조를 사용하지 않고도 Attention만을 사용하여 feature를 표현할 수 있게 되었고, 이러한 Self-Attention으로 Transformer가 만들어지게 되었다. Transformer는 Similarity Function으로 Scaled-dot product를 사용하고 있는데, 이는 최적화된 Matrix multiplication code를 사용하여 더 빠르고 효율적이기 때문이다. Transformer에서의 Self Attention이 어떻게 구현되어 있는지 단계별로 상세히 설명해줘서 어려운 내용이지만 그나마 이해할 수 있었고, 결과적으로 Transformer는 계산복잡도를 감소시켜주고, 병렬처리가 가능하게 하며, 좀 더 해석가능한 모델이 될 수 있기 때문에 최근 다양한 분야에서 쓰이고 있는 것 같다.
다음은 GNN에 대한 내용을 기초부터 알 수 있었다. Graph Data Structure는 기본적으로 Node와 Edge로 이루어지며, 이에 대한 관계를 표현한 Adjacency Matrix가 있다. GNN의 learning process는 Aggregate→Combine→Readout의 단계를 거치는데, Aggregate는 이전 시점의 이웃 Node들의 hidden state를 결합하고, Combine은 이전시점의 hidden state와 Aggregated information을 사용하여 현재시점의 hidden state를 update하게 된다. Readout은 모든 Node들의 hidden state를 결합하여 graph의 hidden state를 생성하는 과정으로 Graph level classification에 사용된다. GNN은 Aggregate와 Combine Function을 어떻게 정의하여 사용하느냐에 따라 다양한 방식의 모델이 있고 이에 대한 몇가지 소개가 있었다.
Graph Attention Networks는 GNN과 Attention을 결합한 구조이며, GNN의 Aggregate, Combine 단계를 거칠때 Attention 메커니즘를 적용하게 된다. Aggregate 단계에서는 자기자신과 이웃 Node들간의 Attention score를 계산하고, Combine 단계에서 이 값과 이전시점의 hidden state를 가중합하여 현재시점의 hidden state를 업데이트하게 된다. 또한 Multi-head Attention을 적용하여 여러번 수행한 결과를 Concatenate 하거나 Average하여 최종 hidden state를 업데이트한다. GNN 모델에 Attention을 적용한 GAN을 단계별로 상세하게 알 수 있게 되어 유익한 세미나였다. 초보자도 이해할 수 있도록 기초부터 심화까지 상세하게 내용을 준비해준 강현규 연구원에게 감사하다는 말을 전한다.
Graph attention networks를 주제로 오늘 현규 오빠가 세미나를 진행해주었다. 오늘 세미나는attention의 연산 과정을 key, query, value를 사용하여 자세히 설명해준 이후 graph neural network에 attention이 어떻게 활용되었는지 까지 교육처럼 진행되었다. 평소 진행되었던 세미나보다 길었지만 내용이 알차서 그런지 순식간에 들었던 것 같다. Graph convolution networks에 대해서 공부해서 세미나한적이 있는대 그 부분을 다시 복습할 수 있는 기회가 되어서 좋았다. 현규 오빠의 워낙 꼼꼼하고 친절한 성격이 세미나에 반영되어 최대한 많은 내용은 전달해주려는 마음이 느껴졌다. 진행하고 있는 연구를 잘 마무리하고 취준도 파이팅하길 바라면서 후기를 마친다.
금일 세미나는 “Graph Attention Networks”의 주제로 진행되어 Attention과 Graph Neural Networks의 개념부터 Graph Attention Networks까지 진행되었다.
첫 번째로, Attention은 모델이 집중해서 학습해야하는 곳을 학습하여 알아가고 이러한 정보를 활용하려는 방법에 해당하며, Key, Query, Value의 값들간의 유사도 계산 및 가중합 등을 통하여 최종 Attention score를 구하게 된다. 이 때, 더 나아가 Transformer 모델에서 활용된 Self-attention같은 경우 RNN, CNN의 구조를 사용하지 않고 Attention만을 활용하는 방식이다.
다음으로, Graph Neural Networks는 그래프 내에서의 노드와 그 노드들 간의 상호작용을 표현하고 이를 함축하는 그래프 구조를 활용한 Neural Network에 해당한다. 해당 GNN이 수행하는 task로는 노드, 엣지, 그래프 별로 다양한 레벨이 존재한다는 점이 흥미롭게 다가왔고, 이러한 다양한 task들을 조금 더 구체적으로 공부한다면 기타 다른 분야에서도 다양하게 활용해 볼 수 있지 않을까 라는 생각이 들었다. GNN은 1) 타겟 노드의 이웃 노드들의 hidden state를 결합하는 Aggregate 단계, 2) 주변 정보를 활용하여 hidden state를 업데이트 시키는 Combine 단계, 3) 모든 노드의 계산된 정보를 결합하여 그래프를 표현하는 Readout 단계로 이루어진다. 해당 단계들을 순차적으로 진행하는 레이어들을 여러 층 쌓아 활용하면 타겟 노드 주변의 더욱 다양한 노드 정보를 함께 활용하여 그래프에 대한 정보를 표현하고 이를 활용할 수 있게 된다.
마지막으로, 위에서 설명한 Attention과 Graph Neural Network의 두 가지 개념을 함께 활용한 Graph Attention Network는 GNN의 1) Aggregate, 2) Combine 두 단계를 진행할 때 어텐션 연산을 사용하는 알고리즘이다. 어텐션을 함께 활용하면서 더 좋은 성능과 함께 시각적 해석력을 보완한다는 장점을 갖게 되었다.
기본적인 Attention의 개념부터 평소 공부하고 싶었던 Graph Neural Networks, Graph Attention Networks에 대한 내용을 공부할 수 있어 더욱 의미있는 시간이었다. 평소 들었던 세미나보다 오래 진행되었지만 모든 내용이 다 알차서 더 집중하고 듣게 되었다. 직관적인 그림과 설명으로 쉽게 이해할 수 있도록 만들어진 해당 세미나 자료는 유튜브에 올려진 발표 영상과 함께 필요할때마다 참고하는 좋은 자료로 활용될 것 같다.
Graph라는 독특한 데이터 구조를 어떻게 Neural Network로 학습시킬 수 있을까?? Graph를 Matrix로 표현하고, Aggregate, Combine으로 이루어진 Layer를 쌓아 학습시킨다는 GNN에 관해 세미나가 진행되었다. 특히 지난 세미나에 이어 이번 세미나에서도 Attention 이 키워드라고 할 수 있다. Banilla GNN 구조부터, Transformer(Attention is All you need)에 영감을 받아 RNN이나 CNN 구조 필요없이 Self-Attention을 적용한 GAT까지의 논문 흐름이 소개 되었다.
GNN에 대해 많이 접해보지 않았고, 다소 생소한 구조라 잘 와닿지 않았다. 하지만 분자구조나 Social Network등 Graph는 우리 생활 속에서 흔히 찾아볼 수 있다는 것을 알았다. GNN은 기존 딥러닝의 주요 Task인 Text나 Image 뿐만 아니라 분자구조 생성 등 적용할 수 있는 분야가 무궁무진하다.
현규 형의 지난 세미나인 Visual Attention 을 듣고, Attention Mechanism을 처음 접했을 때가 기억난다. 단번에 이해하기에는 어려워서 그당시엔 이해하지 못했지만, 방학 때 영재형과의 멘토링을 통해 NLP와 Attention을 공부한 후 다시 봤을 때는 확실히 잘 이해되었다. 지금 GNN 구조도 직접 구현해보지 않고 세미나만 들어서 완벽히 이해할 수는 없지만, 이번 기회를 통해 새로운 연구분야를 알게 되어 좋았다. 다음에 GNN 계열을 공부할 때, 현규형 세미나 자료를 곱씹으며 공부하기 좋을 것 같다. 현규형, 마지막 세미나 준비하느라 고생 많으셨습니다.
이번주 논문세미나는 Graph Attention Networks를 주제로 현규가 진행했다. 현규가 예전부터 NLP를 연구하면서 attention에 대해서 많은 공부를 해왔었는데, 지난번 세미나를 포함해서 이번에도 자세하고 쉽게 설명해주었다고 생각이 들었다. Attention의 기본적인 컨셉은 'output을 산출하는데 있어서 input이 미친 영향'을 정량화하는 것이라고 생각할 수 있으며 이를 학습하면서 모델의 성능이 향상되고 해석할 수 있는 기능을 제공하는 것이다. Attention 매커니즘은 LSTM, RNN과 같이 순차적 데이터를 해석하고자 하는 알고리즘을 기반으로 처음 제안되었다. 예를 들어 기계번역을 수행할 때 번역된 단어가 '원본 언어의 어떤 단어'를 참조하여 번역되었는지 attention을 통해 알 수 있다. 이와 같이 "데이터의 구조를 반영할 수 있는 매커니즘"만 잘 구축하면 attention을 적용해서 성능향상과 결과 해석력을 얻을 수 있고, 그래프 구조에 적용한 케이스가 바로 오늘 세미나에서 다룬 graph attention networks이다. Graph neural networks의 스텝은 크게 aggregate, combine, readout 3단계로 구분할 수 있다. Keq-query-value attention을 aggregate 단계에 적용해서 score를 뽑고, combine 단계에서는 adjacency matrix를 반영해서 필요없는 부분을 masking하여 효율적으로 value를 계산한다. 설명을 들으면서 masking하는 것도 학습을 할 수만 있다면 그래프 구조를 학습할 수 있겠다는 생각도 해보았다. 이번 세미나는 거의 튜토리얼 수준으로 좋은 설명을 들을 수 있었고 매우 뜻깊은 시간이 되었다고 생각한다.
이번주 세미나는 현규형이 ‘Graph Attention Networks’라는 주제를 가지고 진행하였다. Graph Attention Networks는 graph의 중요 node에 가중치를 부여하여 구조를 학습하는 딥러닝 모델이다. Attention이란 모델이 예측해야할 단어와 연관이 있는 입력 단어를 좀더 집중해서 보자는 아이디어에서 나오게 되었다. Attetion 함수는 주어진 쿼리에 대해 모든 키와의 유사도를 구하고 유사도를 키와 맵핑 되어있는 각각의 값에 반영해주고 유사도가 반영된 값을 모두 더해 주는 것이 attention value이다. Graph Neural Networks는 CV, NLP 등등 여러 분야에서 사용되고 있다. GNN은 aggregate, combine, readout으로 구성되어 있다. Aggregate에서 타겟 노드의 이웃 노드들의 전 시점의 hidden state를 결합하여 값을 구한 뒤 이전 시점의 hidden state와 aggregate value를 가지고 hidden state를 update해준다. 마지막 readout에서는 모든 node의 hidden state를 결합하여 graph의 hidden state를 생성한다. 이번 세미나에서 NLP부터 GNN까지 다루면서 알고있었던 개념을 다시 한번 더 정리하고 몰랐던 부분을 배울 수 있는 유익한 세미나였다고 생각한다.
금일 세미나는 “Graph Attention Networks”라는 주제로 강현규 연구원이 진행해 주었다. 세미나 진행 전 졸업하기 전 마지막 세미나라고 언급을 하였던 만큼 정성을 가득 담은 세미나였다. 지난주에 진행되었던 이영재 연구원님의 세미나와 연관되어 들으면서 Attention과 Transformer에 대해서 더 잘 이해할 수 있는 시간이었다. 특히 이번 세미나에서는 본 주제인 Graph Attention Networks를 설명하기 전에 Attention에 대해서 더욱 집중해서 세미나를 해주었는데, Attention을 구성하는 Key/Query/Value의 개념을 우리에게 친숙한 예제를 사용하여 하나하나 설명해 주는 방식을 통해 이해가 잘 되었다. 특히 예시를 Dictionary 자료형의 결과 리턴 과정과의 비교를 통해 이해하기가 더욱 수월하였으며, 짧게 개념만을 설명하는 것이 아닌 Code 구현, 도형을 통한 예시, 구조도 등을 통해 반복적으로 청중이 하나하나 따라갈 수 있는 시간을 만들어 줌으로써 청중을 이해시킨다는 세마나의 목적을 충실히 수행할 수 있었던 것 같다. Attention에 대한 집중 설명 후 본론인 Graph Neural Networks에 대한 이야기가 나왔는데, 새로운 개념이었음에도 불구하고 이전의 Attention에 대한 개념이 깊게 자리 잡게 되어 1시간이 훌쩍 넘는 세미나를 지루하지 않게 들었다. 세미나를 듣는 동안 동기였던 강현규 연구원이 대학원 입학 이후 연구했던 모든 내용을 이 하나의 세미나에서 풀어내는 것 같은 느낌을 강하게 받았다. 1년 반 동안의 수학 내용을 1시간 반으로 압축하기 위해 그것도 요점만은 완벽하게 전달하기 위해 밤낮으로 노력했을 거란 느낌이 드는 세미나였다. 훌륭한 세미나를 진행해준 강현규 연구원님께 감사의 말을 전하고 싶다.
금일은 Attention의 기초부터 Transformers, 나아가 GNN의 기초부터 Graph Attention Networks(GAT)가 있기 전까지의 여러 GCN모델, 그리고 마지막으로 GAT에 대해 스텝-바이-스텝 수준의 상세하고 친절한 현규형의 설명이 가득한 세미나였다. 대다수 Attention 설명은 simliarity를 기본으로 깔고 진행되기에 해당 용어에 생소한 사람들을 첫 이해가 다소 어려울 수 있는데, 이를 위해 직접 간단한 dictionary 개념 기반의 pseudo-code 예시를 시작점으로 해서 attention까지 매끄럽게 설명한 점이 인상적이었다. 이와 같이 기본 설명 이후에 application에 대해서 쭉 설명해줌으로서 attention 기본 개념에 익숙한 사람들에게도 도움이 될 수 있도록 overview를 진행하였다. 이후에도 비슷한 방식으로 가장 중요할 만한 부분인 Transformers, GCN 기초에 대해서 자세히 설명하고, 여러 파생 모델에 대해서는 개괄적으로 설명해주는 방식을 취해 본 발표가 꽤 긴 시간이었음에도 머릿속에 큰 맥락은 가져갈 수 있는 형식이였다. GAT가 본 주제였기에, 다른 GCN 파생 모델에 대해서는 어떻게 설명할해주실까 궁금했는데, [Aggregate, Combine] 을 큰 뼈대 삼아, 이 부분에 대한 필요한 특징만 딱 짚고 넘어가주셔서, 처음 듣는 사람들도 Message passing GNN의 큼직한 스텝이 무엇인지 잘 알 수 있었다. 좋은 발표란 '이것이다' 라고 보여준 현규형에게 진심으로 감사하다고 전한다.
금일 세미나는 현규형이 Graph Attention Networks라는 주제로 세미나를 진행해주었다. Attention의 기본적인 개념에 대하여 설명해주는데 Attention이 왜 연구되어지게 되었는지, 어떻게 수식이 전개가되고 실제 모델에서 사용될 때 어떻게 작용되는지 빠짐없이 설명해주었다. 그리고 Attention에서 더 심화된 Self-Attention 개념과 Self-Attention을 핵심 아이디어로 개발된 트랜스포머 모델에 대한 설명을 해주었다. 예전에 비정형데이터분석 과목을 수강하는 동안에 개인적으로 공부하기 위해 트랜스포머 모델에 대하여 자세히 알고 싶어 공부한 적이 있다. 많은 자료들이 있었지만 설명해주는 사람마다 표현 방식도 너무 다르고 아쉬운 점들이 많았다. 만약 그때 지금의 현규형 세미나를 들을 수 있었더라면 너무 좋았을 것 같다는 생각이 들었다. 트랜스포머에서 어텐션이 어떻게 작용되는지 발표 초반에 설명했던 개념을 바탕으로 수식적으로 설명해주는데 너무 이해하기 쉬웠다. 이후 Graph Neural Networks에 대한 설명을 해주었는데 나는 개인적으로 학부 과정에서 그래프에 관련된 최적화 이론을 공부한 경험이 있다. 최근 수업과 세미나를 통해 Graph Neural Networks라는 개념을 많이 접할 수 있었는데 기본적인 개념만 알고 넘어갔었다. 그래서 항상 GNNs에 대해서 궁금하고 알고 싶었던 부분들이 많았는데 현규형이 그 궁금증을 해소해주었다. GNN은 3-Level의 Task로 이루어져있어 노드 / 엣지 / 그래프 단위별로 태스크를 수행하기 위한 원리와 나중에 참고하기 좋은 GNNs관련 논문들도 추천해주었다. 연구실에 들어와 지금까지 청취했던 세미나 중 가장 긴 세미나였지만 하나도 지루하지 않고 가볍게 넘어갈만한 내용 없이 모든 내용들이 너무 필요한 부분들이었고 연구실에서 마지막으로 준비한 세미나를 너무 잘 마무리해주어서 현규형에게 감사하다고 전하고 싶다.
금일 세미나는 "Graph Attention Networks"라는 주제로 현규오빠가 진행해주었다. Attention에서부터 Graph neural networks, Graph attention networks에 대한 설명을 순차적으로 소개해주었다. 지난 attention세미나 이후에도 개인적으로 헷갈릴때마다 다시 찾아보았던 지난 세미나 자료가 인상깊었었는데, 오늘 세미나 자료는 graph관련 문헌으로 자주 볼 것 같다는 생각이 들었다. Graph neural networks는 크게 aggregate, combine, readout으로 구성되어있다. Aggregate단계에서는 타겟노드와 이웃노드들의 hidden state를 결합하며, combine단계에서는 주변 정보를 활용하여 hidden state를 업데이트하게 된다. 마지막으로 readout단계에서 노드의 정보를 결합하여 그래프로 표현하게된다. Graph attention networks는 aggregate와combine단계에서 attention score를 활용하며, 그 과정에서 multi-head, masking등 transformer에서 제안된 구조들을 활용하여 성능뿐만 아니라 해석성까지 제공할 수 있다. 내용 구성에서부터 장표내용들이 현규오빠의 오랜 고민으로 구성되어 내용이 잘 전달된 것 같다. 유익한 내용으로 세미나를 구성해준 현규오빠에게 감사하고, 남은 학교생활도 잘 마무리하길 응원한다.
Attention 전문가 현규가 세미나를 진행했다. 요즘 Transformer 구조를 활용하여 센서데이터 기반 분류 문제에 적용하는 연구를 수행 중 반가운 세미나였다. 현규도 말했고, 나 역시 그러했듯 Attention mechanism을 이해할 때 Key, Query, Value부터 접하게 되는데 왜 그렇게 예를 드는지 잘 모르겠다. 텍스트 모델링에서 등장한 개념이기도 하며 쉬운 설명을 위해 SQL 문에 등장하는 단어로 예를 든 것 같다. Attention mechanism은 (1) 원본데이터와 (2) 원본데이터 특징을 0과 1사이로 만들어주는 레이어를 곱하여 원본데이터에 영향도를 조정한다는 의미다. 우리가 Dense, Convolutional, recurrent layer의 개수와 노드크기를 원하는대로 설정하듯 하듯 Attention layer도 꼭 논문에 나와있는 구조를 강요당하기 보단 자유롭게 사용하면 된다. Transformer 논문은 sequential 데이터를 학습하는데 Attention layer만을 사용해도 충분하다는 걸 강조한다. 거기에 아이디어를 얻어 다변량시계열데이터 설비고장예측에 적용해보았는데 후기를 쓰고 있는 지금 학습이 잘 되고 있다. 기분 좋다. Graph Data를 위한 Attention 활용도 소개해 주었다. 우리는 여러 비교실험을 할 때 "모델구조"를 비교하곤 하는데 원본데이터 자체를 Graph 데이터로 표현할 수 있을 때가 많다. 비교실험을 "데이터 구조"로써 Graph로 표현해볼 수 있다면, 또 어느 node와 edge관계가 중요한지 설명할 수 있는 모델을 제안한다면, 여러 도메인에서 새로운 연구로 진행할 수 있을 것 같다.
본 세미나에서는 NLP 분야에서 처음 제안된 Attention 및 Graph neural Networks의 내용으로 진행하였고, Attention은 딥러닝 모델의 한계점이었던 해속력을 보완하고 성능향상도 보여주었다. Text 데이터는 순서/단어의 동시 등장빈도의 분석이 필요하기 때문에 전통적인 NLP 연구에는 RNN 구조를 활용하여 연구되어 왔다. Seq2Seq와 같은 RNN 기반의 딥러닝 모델은 Input Data의 길이가 길어지게 되면 Long term dependency, Vanishing/Exploding gradient 문제가 발생하게 되며, Attention으로 문제를 해결하려 연구하게 되었다. Dictionary 자료 구조의 Query와 Key의 일치성을 통해 Return 및 Result 생성하는 과정을 설명하였으며, Attention이 기계 번역에서 어떻게 작동하는지에 대한 설명을 진행하였다. RNN과 CNN 구조를 사용하지 않는 오직 Attention만으로 실행하고자 하는 Self-Attention 및 관련논문 아키텍처인 Transformer에 대한 이해를 도왔다.
Graph neural Networks는 Node와 Edge로 구성되어 있는 자료 구조임. Social Network, Molecular Graph 및 3D Mesh 형태의 데이터를 Euclidean Space에 표현하는 설명을 진행하였고, GNN의 이웃 Node들의 정보를 요약하는 Aggregate과정과 Combine과정, Readout과정을 설명하였다. GNN의 예시를 설명하는 시간을 가졌다. Attention에 대한 개념 및 Graph Neural Networks 구조에 대해 학습하는 세미나 내용이었다.
지난번 세미나에서 접한 Transformer를 잘 이해하기 위해서는 Attention개념에 대한 기초 지식이 필요하였습니다. 이번 세미나는 지난번 세미나 내용에 이어 Transformer의 요소 개념 중 하나인 Attention에 한 층 자세히 이해할 수 있었고, Graph Neural Network(GNN)에 Attention이 적용된 Graph Attention Network(GAN)또한 접할 수 있었습니다.Attention은 AI에서 사용되는 용어인 Weigt와 유사한데 '모델이 집중해서 학습해야 하는 곳 까지도 모델이 학습하게 하는 것' 으로 이해하면 용이하다는 내용을 듣고, 이 개념 한 가지는 꼭 기억하고 가려합니다. Attention의 Key, Query, Value 등 기본적인 용어 설명 부터 Graph Attention Network(GAN)의 모델 구조와 Node Feature도출 과정(Combine, Aggreate, Readout)을 시각화하여 상세히 설명해 주셔서 많은 도움이 되었습니다. 긴 시간의 세미나를 준비하고 진행해 주신 강현규 연구원님께 감사드립니다. 진행중이신 연구 마무리 잘 하시고, 앞으로 좋은 일들이 가득하시길 바랄게요. 감사합니다.
Graph Attention Network 에 대해 이전에 프로젝트를 진행한 적이 있어서 매우 흥미롭게 들을 수 있었습니다. 설명해 주신 부분들은 Attention 분야의 시작이 NLP 분야다보니, 자연어 처리 중심으로 설명을 해주셨는데 제가 했던 프로젝트의 경우에는 추천시스템에 그래프 어텐션 네트워크를 접목 시키는 프로젝트였습니다. 기존 연구 중 핀터레스트에서 이미지 기반으로 Graph Attention Network를 구현하여 이미지 추천 엔진을 구현했다고 발표했었고, 저희 컨셉은 이와 비슷했습니다. 그 과정에서 Graph Attention Network에 대해 리서치를 하고 공부를 했었는데, 해당 세미나가 제 부족한 점들을 채울 수 있는 기회가 된 것같습니다. 특히 Transformer에서 Dot product 방식을 채택한 이유에 대해 깊게 생각해보지 않았는데, 유사도 레이어를 두지 않고 Matrix multiplication 을 활용하는 방식으로 효율성을 높였다는 점, Scale 단계를 왜 거쳐야하는 지에 대해 짚어주셔서 다시 한번 생각해보게 되었습니다. 좋은 세미나 감사합니다.
Attention, Self-Attention은 컴퓨터 비전, 자연어 처리를 비롯한 모든 인공지능 분야에서 뜨거운 주제이다. 지난 세미나에 이어 Attention 계열에 대한 발표가 진행되었고, 특히 그래프 분야에서의 설명 위주로 진행되었다. 발표자가 수식 내용과 이를 코딩으로 어떻게 구현하는지를 쉽게 설명해주어 많은 사람들이 참고할 수 있을 것으로 생각한다. 나의 연구 분야 내 자주 언급되는 Random walk 알고리즘에 대한 이해도 가능하게 되었고, 이를 Attention walk로 변환하는 과정에 대한 연구가 필요했는데 좋은 참고 자료로 사용할 수 있을 것으로 기대한다. 컴퓨터 비전 내 Semantic Segmentation에서 입력 데이터를 그래프 형태로 변환하고 그래프 네트워크와 풀링 레이어의 반복으로 입력 이미지의 인코딩, 그리고 그래프 기반 픽셀별 확률 할당이 가능하다면 새로운 Semantic Segmentation 알고리즘을 개발 할 수 있을 것이라는 생각도 들었다. 여러번의 Attention 계열 세미나를 진행하면서 많은 이해를 준 현규에게 감사하다는 말을 전한다.
금일은 Graph Attention Networks를 주제로 세미나가 진행되었다. 개인적으로 최근에 Attention Networks와 Graph Networks에 대한 공부를 하고 있어 이번 세미나는 나에게 도움이 많이 될 것 같았다. 실제로 세미나를 들은 뒤 추후에 몇 번 더 듣게 될 것 같다는 생각이 들었다. 이번 세미나는 Attention Networks에 대한 내용 소개로 시작되었다. Attention이 등장하게 된 배경과 Recurrent Neural Networks(RNN), Convolutional Neural Networks(CNN), Seq2Seq 모델에서 Attention을 적용하는 방식 및 Self-Attention 적용 방식까지 설명이 진행되었다. 그리고 Attention 자체에 대해서 Key, Query, Value에 대한 설명 및 이들이 작동하는 방식까지 상세하게 설명을 들을 수 있었다. 이해하기 쉬운 예제를 기반으로 설명해주어서 이해하는데 도움이 많이 되었다. 이후에는 Graph Neural Networks에 대한 설명이 진행되었다. Node, Edge로 구성된 Graph의 기본 구조부터 이를 사용해 모델링하는 방식까지 설명이 진행되었다. 이후 Graph Neural Networks에서 Attention을 적용하는 방법에 대해 상세하게 설명을 들을 수 있었다. 서두에 말한 것처럼 최근에 Attention 및 Graph Networks에 대한 공부를 진행하고 있다 보니 이번 세미나를 통해 많은 지식을 얻을 수 있었다. 공부를 하면서 놓쳤던 기초에 대해서는 다시 재정립할 수 있었고, 잘 이해하지 못했던 영역에 대해서는 이번 세미나를 통해 조금은 더 이해할 수 있게 되었다. 이번 세미나 및 자료를 활용한다면 Attention과 GNN 부분에 대해서 더 잘 이해하고 공부할 수 있을 것 같다. 좋은 세미나를 준비해준 현규에게 고맙다고 말해주고 싶다.
이번 세미나는 현규의 Graph Attention Network이라는 주제로 Attention의 등장배경부터 이 Attention이 급부상하게 된 Transformer를 거쳐 다양한 전파사례중 하나의 또 넓은 분야인 Graph Attention Network(GAT)을 다루었다. 처음부터 어텐션 설명시에 파이썬에서 자주 쓰는 자료구조인 Dictionary를 가지고 Key, Value, Quey 를 설명하는건 어텐션 처음 접했을때 CS 전공인 나에겐 혹시 관련이 있지 않을까 싶었는데 그 궁금증이 확실히 해소해주었다. Query라는 질의가 주어졌을때 그 질의가 Key별로 얼마나 유사한지의 값을 해당 Query에 따른 Key의 유사도를 Value에 곱해 가중합을 얻는 과정을 너무 쉽게 설명해주었고 다시 한번 정리가 되었다. 그리고 Transformer의 Self Attention으로 얻을 수 있는 장점을 명확히 RNN과 CNN으로 나눠서 정리가 되는 것도 좋았다. RNN는 각각 병렬처리가 불가하고 Vanishing gradient와 Long-term dependency의 문제 그리고 CNN은 Long path length between long-range dependencies 문제에 대해서 언급하였다. CNN에 대해서 Window가 길수록 Receptive Field의 크기가 작으면 많은 층이 쌓여야 정보가 교류가 된다는 점에서 한계가 있는것 또한 알아가며 이전에 Convulution으로 RNN 을 대체할때는 Attention을 사용하는게 확실히 좋겠다라는 생각도 한편 들었다. 그리고 확률 그래프 네트워크 수업을 하면서 코드 구현을 하며 마지막에 살짝 다룬 그래프 딥러닝 모델쪽에도 적용하면 어떤 모습일까라고 상상을 했었다. 그런데 오늘 이시간에 Graph Neural Net 과 Attention까지 적용된 모델들에 대해서 알 수 있어서 더 좋았다. 다음엔 그 확률그래프 과제를 좀 더 업그레이드한다면 기존 모델과 비교해서 결과를 봐도 좋을것 같다는 생각이 들었다. 마지막으로 학부 시절 알고리즘 수업시간에 Graph 알고리즘 과제한다고 Edge, Node 엄청 그려가며 많은 알고리즘을 문제를 풀었던 기억이 있다. 이 분야 또한 현규와 민재와 얘기를 통해서 Scalabililty에 대한 이슈가 많고 레이어를 얼만큼 쌓을것인가, 아니면 이웃노드의 개수에 따른 편차를 어떻게 극복할거냐에 대한 많은 고민거리가 있다고 들었다. Complexity와 Computation 측면에서 많은 컨트리뷰션이 나올 수 있는 연구분야인점에서 관심을 가져야겠다고 생각이 들었다. 현규가 마지막 세미나라고 하는데 너무 아쉬운 맘이 절로 드는 세미나였고 다음에 그래프네트워크나 Attention 이 그리울 때 다시 한번 찾고 싶은 세미나를 해줘서 감사합니다.
이번 세미나는 “Graph attention network”를 주제로 현규오빠가 발표하셨다. 최종적인 세미나 주제인 Graph attention network를 이해하기 위한 attention, self-attention의 개념과 graph neural network의 기본부터 발전된 방법론까지 모두 하나의 세미나를 통해 배울 수 있다는 점이 청취자입장에서 감사한 세미나였다. 최근 Transformer의 self-attention이 NLP분야 이외의 다양한 분야에도 접목이 되면서 접할 기회가 많은 알고리즘이다. 처음 Transformer를 접할 때 Key, Query, Value를 이해하기 위해 다양한 자료를 찾아가며 겨우 이해했던 기억이 있다. 이번 세미나의 명쾌한 설명으로 완벽하게 이해할 수 있어서 묵은 체증이 내려가는 느낌이었다. 또한, 다소 생소할 수 있는 graph 관련 연구를 쉽게 풀어 설명하시려는 노력이 돋보이는 세미나였다. 여러 번 참고하게 될 자료라고 생각된다.
이번 세미나는 "Graph Attention Networks"를 주제로 Attention에 대한 설명, Self-Attention을 이용한 Transformer, Graphe Neural Networks, Graph Attention Networks 순으로 진행되었다. Attention의 기본 개념인 Query, Key, Value의 개념과 유사도, 가중합을 구하는 과정을 재미있는 예시와 함께 설명해주어 더 쉽게 이해할 수 있었고, Transformer가 어떻게 Attention 기법을 사용하여 Long Term Dependency 문제와 Vanishing Gradient 문제를 해결하는지에 대한 설명도 무척 흥미로웠다. 또한, 그래프에 신경망 구조를 적용한 Graph Neural Networks의 학습 과정, 그리고 각 과정인 Aggregate, Combine, Readout이 어떻게 정의되느냐에 따라 다양한 GNN 모델이 정의된다는 것을 알 수 있었다. Graph Attention Networks는 GNN에 Attention 개념을 도입한 것으로, Aggregate, Combine 과정에서 타겟 노드, 근접 노드, hidden state 값을 Key, Query, Value로 사용하여 유사도를 계산한다. 이로써 기존 GNN 모델들과 비교하여 크게 성능을 향상시킬 수 있었고, Attention score를 이용하여 설명력까지 갖추게 되었다. 이번 세미나에서는 무척 자세하고 친절한 설명으로 Attention, GNN, Graph Attention Networks에 대한 전반적인 이해도를 높일 수 있었고, 특히 처음 접해본 그래프 분야에 대한 진입장벽을 낮출 수 있었던 무척 유익하고 감사한 시간이었다.
이번주 세미나는 "Graph Attention Networks"라는 주제로 진행되었다. 이전 세미나와 연관되어 attention에 대하여 좀 더 자세한 히스토리 기반으로 설명이 진행되어 참고 할 수 있어서 참 좋았다. "attention"이란 중요 Node에 가중치를 부여하는 attention mechanism을 활용하는 것이다. 기존 RNN, Seq2Seq 의 단점인 Long term dependency, Vanishing 문제를 해결하기 위해 Attention이 추가 되었고 이를 설명하기 위해 Key, Query, Value 인 Dictionary자료형의 형태로 설명을 잘해 주었다. Attention이란 Query와 Key의 유사도를 계산한 후 value의 가중합을 계산하는 과정이고 attention score란 value에 곱해지는 가중치를 말한다. attention은 초기에는 RNN기반이었다가 CNN기반의으로 넘어가고 다시 self-Attention만을 활용하여 Transformer(Scale-dot product attention)가 나오게 되었다.
Graph Neural Networks(GNN)는 Node Level, Edge Level, Graph Level등 다양한 Level에서 활용되는것에 흥미로웠다.
마지막으로 GNN과 attention을 모두 함께 활용한 Graph Attention Network는 Aggregate, Combine 두단계를 진행할때 target노드의 근접노드 hidden state값을 attention방식을 활용하여 유사도를 계산하였다. 이 방식은 다른 모델들 보다 더 좋다.
평상시보다 매우 길었지만 또 시간이 잘 가는 좋은 영상이었다. 현규에게 좋은 세미나에 감사를 표한다.
금주 세미나는 현규가 "Graph Attention Networks"라는 주제로 발표를 진행해주었다. 우선 발표의 앞 부분에서 Attention 메커니즘을 쉽고 자세하게 설명해주는데, 발표를 듣는 것만으로도 Attention 매커니즘 전반에 대해 다시 한번 복습이 될 정도였다. 또한 앞 부분의 자세한 설명 덕분에 다소 생소한 Graph Network에 Attention 매커니즘이 적용하는 과정도 이해하기 수월했다.
Graph Neural Network는 흔히 알고 있는 Neural Network의 input 형태가 아닌 그래프 구조에 대한 정보와 각 노드별 feature 정보의 두가지 input을 받는 Network를 말한다. 엄밀히 말하면 그래프 구조에 대한 정보를 바탕으로 각 노드별 연결 정보를 받고, 각 노드들은 그래프 상의 인접한 노드의 정보와 자신의 정보를 이용하여 embedding vector를 만들어 다음 Layer로 전달한다. 발표에서는 이렇게 인접한 노드의 정보를 자신의 정보와 합치는 과정을 Aggregate, Combine, Readout 3단계로 소개하였다. Aggregate의 단계에서는 인접한 노드끼리의 embedding 과정인데 이때 Graph Attention Networks에서는 이 과정에서 1-layer feed forward 네트워크를 두어 인접한 노드별 Attention Score를 뽑아낸다. 이렇게 인접한 노드별로 Score를 뽑아냄으로써 각 연결마다 다른 의미를 부여한다고 할 수 있다. 다음으로 이를 자기 자신 노드와 합치는 과정이 Combine 과정이다. Graph Attention Networks는 이 전 단계에서 필요없는 부분을 Masked Attention 테크닉으로 지워주기에 효율적으로 value를 산출할 수 있다. Graph Network 전반에 대한 이해가 아직 부족하여 완벽히 이해하지는 못하였지만 방대한 내용을 쉽고 자세하게 차근차근 설명을 해준 현규에게 다시금 감사를 표한다.