스탠포드그래프

인공지능공부/그래프

[Stanford/CS224W] 8. GNN Augmentation and Training(1) : Graph Augmentation for GNNs

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 단일 레이어를 어떻게 쌓는지 한번 살펴보았습니다. 이번 포스팅에서는 graph augmentation에 대해서 알아보겠습니다. Graph Augmentation 일반적인 그래프 프레임워크는 아래와 같이 구성되어 있다는 것을 배웠었죠. 정리하자면, 이웃 노드로부터 메세지를 받아 변환하고 기준 노드로 넘기는 Message과정, 기준 노드와 변환된 이웃 노드를 받아 하나로 합쳐주는 Aggregation과정, 이 계층을 이어주는 Layer connectivity, 그래프의 표현을 더 풍부하게 만들어주는 graph augmentation, 마지막으로 어떻게 학습할지에 대한 Learning Objective입니다. 이번 포스팅에서는 그래프의 표현을 더 풍부..

인공지능공부/그래프

[Stanford/CS224W] 7. GNN2(3) : Stacking Layers of a GNN

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 단일 레이어에서 GNN이 어떻게 동작하는지 살펴보았습니다. 이번 포스팅에서는 단일 레이어를 어떻게 쌓는지 한번 살펴보겠습니다. Stacking Layer 앞의 포스팅에서 단일 레이어를 배웠으니 이제 쌓아서 여러 계층의 GNN을 만들어 봅시다. 일반적으로 딥러닝 모델에서 레이어를 쌓는다고 하면, 더 "깊은"계층을 가지게 됩니다. 하지만 GNN에서는 깊이라기 보다는 너비의 의미가 강한데요. 더 깊게 쌓을 수록 더 멀리있는 노드의 정보를 받을 수 있습니다. 즉, GNN에서 깊은 계층이란 거쳐올 hop의 수를 뜻합니다. 아키텍처를 한번 그려보자면, 다음과 같이 그릴 수 있습니다. 초기 임베딩 값인 xv을 받아서 각 GNN layer를 거치고, 결과로 나..

인공지능공부/그래프

[Stanford/CS224W] 7. GNN2(1) : A General Perspective on Graph Neural Networks

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 신경망을 일반화하여 그래프에 적용해보았습니다. 오늘 포스팅에서는 본격적으로 GNN이 어떻게 사용되는지 설명하기 전 GNN Framework에 대해 간단하게 정리하겠습니다. (포스팅이 매우 짧을 예정입니다!) GNN Framework GNN Framework는 총 5개로 나뉠 수가 있습니다. Message 앞에서 설명한 그래프 모델을 보시면 모두 message를 전파시키고있습니다. 이부분은 메세지를 어떻게 받을지 결정하는 부분이라 생각하시면 됩니다. 메세지를 어떻게 받아들이냐에 따라 그래프 모델의 성능이 달라질 수 있습니다. Aggregation 받은 메세지를 어떻게 합칠것이냐에 대한 문제인데요. 앞의 포스팅에서는 단순히 평균을 이용했는데, 이 방..

인공지능공부/그래프

[Stanford/CS224W] 6. GNN(2) : Basic of Deep Learning

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 그래프 신경망이 뭔지, 이전과 뭐가 다른지 간단하게 훑어보았습니다. 이번 포스팅에서는 그래프 신경망에 본격적으로 들어가기 전 딥러닝 개념에 대해서 빠르게 훑어보겠습니다. 여기서는 정말 간단하게 훑을 예정이니 더 딥하게 보고 싶으신 분들은 아래 포스팅을 참고해주세요. 활성화 함수의 모든 것 최적화 함수의 모든 것(1) 최적화 함수의 모든 것(2) 역전파의 모든 것 손실함수의 모든 것 Machine Learning supervised learning은 입력 x를 넣어주었을 때, 라벨 y를 예측하는 것을 목표로 합니다. 입력 x는 실제 숫자 벡터, 시퀀스(자연어), 행렬(이미지), 그래프가 될 수 있습니다. 여기서 머신 러닝은 우리가 x로부터 y를 얻..

인공지능공부/그래프

[Stanford/CS224W] 6. GNN(1) : Graph Neural Networks

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 Belief Propgation에 대해서 알아보았습니다. 이번 포스팅에서는 드디어 그래프 신경망에 대해서 알아보겠습니다! 딥하게 들어가는 것은 다음 포스팅 부터이니 가볍게 읽어주세요! 현재까지의 Node Embedding 지금까지 우리가 노드 임베딩을 하려고 했던 이유는 그래프의 노드를 d차원의 벡터로 표현하기 위함이었습니다. 임베딩 할 때는 실제 그래프에서 가까운 노드끼리 벡터 공간에서도 가깝에 유지하도록 매핑 함수 f를 학습하려고 하였습니다. 위의 학습을 위해서는 크게 두 가지를 정의해야합니다. (참고 포스팅) 1. 인코더 인코더는 '노드를 어떻게 벡터로 바꾸는가' 입니다. 즉, 노드를 수치로 나타내는 것이죠. 여기서는 shallow enco..

인공지능공부/그래프

[Stanford/CS224W] 5. Message Passing(3) : Belief Propagation

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 Relational Classification, Iterative Classification에 대해서 알아보았습니다. 이번 포스팅에서는 Belief Propgation에 대해서 알아보겠습니다. Belief Propagation 지난 포스팅에서 설명한 방법론들을 살펴보면 모두 이웃 노드로부터 받은 확률의 가중 평균으로 자기 자신을 업데이트합니다. (초기에는 라벨로 부터 받죠) 이 말은 즉, 주변 노드가 현재 노드의 결정에 영향을 준다는 말이죠. 학교에서 쪽지 돌리는 것을 생각해보죠. 서로 가깝거나 연결된 사람에게 쪽지를 돌릴 수 있습니다. 이것을 이웃 노드가 belief를 준다 라고 표현합니다. 노드는 이웃 노드들로부터 belief를 받아 자신을 ..

인공지능공부/그래프

[Stanford/CS224W] 5. Message Passing(2) : Relational Classification and Iterative Classification

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 대략적으로 Node Classification을 하기 위해 어떤 과정이 필요한지 알아보았습니다. 이번 포스팅에서는 앞의 포스팅에서 언급한 Relational Classification, Iterative Classification에 대해서 알아보겠습니다. Relational Classification relational classification의 기본 아이디어는 노드 v의 라벨 확률인 Yv는 그 노드의 주변 노드들 확률의 가중 평균을 내는 것입니다. 여기서 노드는 v, 초기화 된 라벨은 Yv, 정답 라벨은 Yv*라고 하겠습니다. 라벨이 없는 노드는 초기 Yv = 0.5가 됩니다.(여기서는 이진 분류로 가정하겠습니다.) 즉, 두 라벨 중 어떤것도..

인공지능공부/그래프

[Stanford/CS224W] 5. Message Passing(1) : Message Passing and Node Classification

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 노드 임베딩의 Matrix Factorization에 대해서 알아봤습니다. 이번 포스팅에서는 노드 분류를 위해 노드 간의 의미 교환은 어떻게 하는지 알아보겠습니다. Node Classification 앞의 강의에 노드를 임베딩 하는 방법 또는 그래프를 임베딩하는 방법에 대해서 배웠습니다. 이제 여기서 조금 더 나아가면 각 노드가 어떤 라벨을 가지는지 분류하는 node classification를 생각해 볼 수 있습니다. node classification이란 위와 같이 그래프가 있을때, 각 노드에 라벨이 존재하는 것을 뜻합니다. 왼쪽 그래프에서 빨간색, 초록색이 라벨이고, 회색은 라벨이 없는 노드입니다. 즉, 위의 라벨이 있는 노드로부터 라벨이 ..

인공지능공부/그래프

[Stanford/CS224W] 4. PageRank(4) : Matrix Factorization and Node embedding

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 Personalized PageRank(PPR), Random Walk with Restarts(RWR) 알고리즘에 대해서 알아봤습니다. 페이지 랭크 알고리즘의 문제점과 해결방법을 알아 보았습니다. 이번 포스팅에서는 노드 임베딩의 Matrix Factorization에 대해서 알아보겠습니다. Matrix Factorization 노드 임베딩 관련 예전 포스팅에서 우리는 노드 임베딩 매트릭스를 위와 같이 정의했었죠. 각 노드들은 전체 matrix의 한 행을 의미하고, 이 임베딩의 목적은 각 노드의 내적이 최대가 되는것이었습니다. 간단하게 생각하면 노드 사이의 내적(유사도)라는 것은 노드 끼리 연결되어 있는 것을 뜻하죠. 따라서 두 노드 v, u가 ..

인공지능공부/그래프

[Stanford/CS224W] 4. PageRank(3) : Random Walk with Restarts(RWR)와 Personalized PageRank(PPR)

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 페이지 랭크 알고리즘의 문제점과 해결방법을 알아 보았습니다. 이번 포스팅에서는 재시작이 포함된 랜덤 워크와 개인화된 페이지 랭크에 대해서 알아보도록 하겠습니다. 앞의 포스팅에서 페이지 랭크의 해결 방법으로 모든 노드를 균일한 확률로 순간이동을 했었습니다. 여기서는 두 노드가 유사성을 전혀 고려하지 않습니다. 일반적으로 생각했을 때, 유사한 노드에 더 많이 이동해야 더 명확한 값을 가질 수 있겠죠? Recommendation 먼저 각 알고리즘에 대해 알아보기 전에 그래프를 이용한 추천에 대해서 알아보고 가겠습니다. 다음과 같이 하나의 유저 노드가 여러개의 아이템 노드를 가질 수 있는 bipartite graph(이분 그래프)로 표현해 줄 수 있습니..

컴공누나
'스탠포드그래프' 태그의 글 목록