[U] Week 5 Day 25

나며기·2021년 2월 26일
1

부스트캠프 AI Tech

목록 보기
26/79
post-thumbnail

강의 복습 내용

[Day 25] GNN 기초 & GNN 심화

[Graph 9강] 그래프 신경망이란 무엇일까? (기본)

1. 정점 표현 학습 복습

1.1 정점 표현 학습

  • 정점 표현 학습이란 그래프의 정점들을 벡터의 형태로 표현하는 것입니다
  • 정점 표현 학습은 간단히 정점 임베딩(Node Embedding)이라고도 부릅니다
  • 정점 표현 학습의 입력은 그래프입니다
  • 주어진 그래프의 각 정점 𝑢에 대한 임베딩, 즉 벡터 표현 𝒛𝑢가 정점 임베딩의 출력입니다
  • 그래프에서의 정점간 유사도를 임베딩 공간에서도 “보존”하는 것을 목표로 합니다
  • 그래프에서 두 정점의 유사도는 어떻게 정의할까요?
    • 그래프에서 정점의 유사도를 정의하는 방법에 따라, 인접성/거리/경로/중첩/임의보행 기반 접근법으로 나뉩니다

1.2 변환식 정점 표현 학습과 귀납식 정점 표현 학습

  • 지금까지 소개한 정점 임베딩 방법들을 변환식(Transductive) 방법입니다
  • 변환식(Transdctive) 방법은 학습의 결과로 정점의 임베딩 자체를 얻는다는 특성이 있습니다
  • 정점을 임베딩으로 변화시키는 함수, 즉 인코더를 얻는 귀납식(Inductive) 방법과 대조됩니다
  • 출력으로 임베딩 자체를 얻는 변환식 임베딩 방법은 여러 한계를 갖습니다
    1) 학습이 진행된 이후에 추가된 정점에 대해서는 임베딩을 얻을 수 없습니다
    2) 모든 정점에 대한 임베딩을 미리 계산하여 저장해두어야 합니다
    3) 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 없습니다
  • 출력으로 인코더를 얻는 귀납식 임베딩 방법은 여러 장점을 갖습니다
    1) 학습이 진행된 이후에 추가된 정점에 대해서도 임베딩을 얻을 수 있습니다
    2) 모든 정점에 대한 임베딩을 미리 계산하여 저장해둘 필요가 없습니다
    3) 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 있습니다

2. 그래프 신경망 기본

2.1 그래프 신경망 구조

  • 그래프 신경망은 그래프와 정점의 속성 정보를 입력으로 받습니다
  • 그래프의 인접 행렬을 A라고 합시다
  • 인접 행렬 A은 |𝑉|×|𝑉|의 이진 행렬입니다
  • 각 정점 𝑢의 속성(Attribute) 벡터를 𝑋𝑢라고 합시다
  • 정점 속성 벡터 𝑋𝑢는 𝑚차원 벡터이고, 𝑚은 속성의 수를 의미합니다
  • 정점의 속성의 예시는 다음과 같습니다
    • 온라인 소셜 네트워크에서 사용자의 지역, 성별, 연령, 프로필 사진 등
    • 논문 인용 그래프에서 논문에 사용된 키워드에 대한 원-핫 벡터
    • PageRank 등의 정점 중심성, 군집 계수(Clustering Coefficient) 등
  • 그래프 신경망은 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻습니다
  • 예시에서 대상 정점의 임베딩을 얻기 위해 이웃들 그리고 이웃의 이웃들의 정보를 집계합니다
  • 각 집계 단계를 층(Layer)이라고 부르고, 각 층마다 임베딩을 얻습니다
  • 각 층에서는 이웃들의 이전 층 임베딩을 집계하여 새로운 임베딩을 얻습니다
  • 0번 층, 즉 입력 층의 임베딩으로는 정점의 속성 벡터를 사용합니다
  • 대상 정점 마다 집계되는 정보가 상이합니다
  • 대상 정점 별 집계되는 구조를 계산 그래프(Computation Graph)라고 부릅니다
  • 서로 다른 대상 정점간에도 층 별 집계 함수는 공유합니다
  • 서로 다른 구조의 계산 그래프를 처리하기 위해서는 어떤 형태의 집계 함수가 필요할까요?
  • 집계 함수는 (1) 이웃들 정보의 평균을 계산하고 (2) 신경망에 적용하는 단계를 거칩니다
  • 마지막 층에서의 정점 별 임베딩이 해당 정점의 출력 임베딩입니다

2.2 그래프 신경망의 학습

  • 그래프 신경망의 학습 변수(Trainable Parameter)는 층 별 신경망의 가중치입니다
  • 먼저 손실함수를 결정합니다. 정점간 거리를 “보존”하는 것을 목표로 할 수 있습니다
  • 변환식 정점 임베딩에서처럼 그래프에서의 정점간 거리를 “보존”하는 것을 목표로 할 수 있습니다
  • 만약, 인접성을 기반으로 유사도를 정의한다면, 손실 함수는 다음과 같습니다
  • 후속 과제(Downstream Task)의 손실함수를 이용한 종단종(End-to-End) 학습도 가능합니다
  • 정점 분류가 최종 목표인 경우를 생각해봅시다
  • 예를 들어,
    (1) 그래프 신경망을 이용하여 정점의 임베딩을 얻고
    (2) 이를 분류기(Classifier)의 입력으로 사용하여
    (3) 각 정점의 유형을 분류하려고 합니다
  • 이 경우 분류기의 손실함수, 예를 들어 교차 엔트로피(Cross Entropy)를, 전체 프로세스의 손실함수로 사용하여 종단종(End-to-End) 학습을 할 수 있습니다
  • 그래프 신경망과 변환적 정점 임베딩을 이용한 정점 분류
    • 그래프 신경망의 종단종(End-to-End) 학습을 통한 분류는, 변환적 정점 임베딩 이후에 별도의 분류기를 학습하는 것보다 정확도가 대체로 높습니다
  • 학습에 사용할 대상 정점을 결정하여 학습 데이터를 구성합니다
  • 선택한 대상 정점들에 대한 계산 그래프를 구성합니다
  • 마지막으로 오차역전파(Backpropagation)을 통해 손실함수를 최소화합니다
  • 구체적으로, 오차역전파를 통해 신경망의 학습 변수들을 학습합니다

2.3 그래프 신경망의 활용

  • 학습된 신경망을 적용하여, 학습에 사용되지 않은 정점의 임베딩을 얻을 수 있습니다
  • 마찬가지로, 학습 이후에 추가된 정점의 임베딩도 얻을 수 있습니다
  • 학습된 그래프 신경망을, 새로운 그래프에 적용할 수도 있습니다

3. 그래프 신경망 변형

3.1 그래프 합성곱 신경망

  • 소개한 것 이외에도 다양한 형태의 집계 함수를 사용할 수 있습니다
  • 그래프 합성곱 신경망(Graph Convolutional Network, GCN)의 집계 함수입니다
  • 기존의 집계 함수와 비교하여 작은 차이지만 큰 성능의 향상으로 이어지기도 합니다

3.2 GraphSAGE

  • GraphSAGE의 집계 함수입니다
  • 이웃들의 임베딩을 AGG 함수를 이용해 합친 후, 자신의 임베딩과 연결(Concatenation)하는 점이 독특합니다
  • AGG 함수로는 평균, 풀링, LSTM 등이 사용될 수 있습니다

4. 합성곱 신경망과의 비교

4.1 합성곱 신경망과 그래프 신경망의 유사성

  • 합성곱 신경망과 그래프 신경망은 모두 이웃의 정보를 집계하는 과정을 반복합니다
  • 구체적으로, 합성곱 신경망은 이웃 픽셀의 정보를 집계하는 과정을 반복합니다

4.2 합성곱 신경망과 그래프 신경망의 차이

  • 합성곱 신경망에서는 이웃의 수가 균일하지만, 그래프 신경망에서는 아닙니다
  • 그래프 신경망에서는 정점 별로 집계하는 이웃의 수가 다릅니다
  • 그래프의 인접 행렬에 합성곱 신경망을 적용하면 효과적일까요?
  • 그래프에는 합성곱 신경망이 아닌 그래프 신경망을 적용하여야 합니다!
  • 많은 분들이 흔히 범하는 실수입니다
  • 합성곱 신경망이 주로 쓰이는 이미지에서는 인접 픽셀이 유용한 정보를 담고 있을 가능성이 높습니다
  • 하지만, 그래프의 인접 행렬에서의 인접 원소는 제한된 정보를 가집니다
  • 특히나, 인접 행렬의 행과 열의 순서는 임의로 결정되는 경우가 많습니다

9강 정리

  1. 정점 표현 학습
  • 그래프의 정점들을 벡터로 표현하는 것
  • 그래프에서 정점 사이의 유사성을 계산하는 방법에 따라 여러 접근법이 구분됨
  • 그래프신경망등의귀납식정점표현학습은임베딩함수를출력으로얻음
  1. 그래프 신경망 기본
  • 그래프 신경망은 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻음
  • 후속 과제의 손실함수를 사용해 종단종 학습이 가능함
  • 학습된 그래프 신경망을 학습에서 제외된 정점, 새롭게 추가된 정점, 새로운 그래프에 적용 가능
  1. 그래프 신경망 변형
  2. 합성곱 신경망과의 비교
  • 그래프 형태의 데이터에는 합성곱 신경망이 아닌 그래프 신경망을 사용해야 효과적

[Graph 10강] 그래프 신경망이란 무엇일까? (심화)

1. 그래프 신경망 복습

1.1 귀납식 정점 표현 학습

  • 정점을 임베딩하는 함수, 즉 인코더를 학습하는 귀납식 정점 표현 학습은 여러 장점을 갖습니다
    1) 학습이 진행된 이후에 추가된 정점에 대해서도 임베딩을 얻을 수 있습니다
    2) 모든 정점에 대한 임베딩을 미리 계산하여 저장해둘 필요가 없습니다
    3) 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 있습니다
  • 그래프 신경망(Graph Neural Network)은 대표적인 귀납식 임베딩 방법입니다

1.2 그래프 신경망의 구조

  • 그래프 신경망은 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻습니다
  • 집계 함수의 형태에 따라, 그래프 신경망, 그래프 합성곱 신경망, GraphSAGE 등이 구분됩니다
  • 그래프 신경망은 비지도 학습, 지도 학습이 모두 가능합니다
  • 비지도 학습에서는 정점간 거리를 “보존”하는 것을 목표로 합니다
  • 지도 학습에서는 후속 과제의 손실함수를 이용해 종단종 학습을 합니다

1.3 그래프 신경망의 활용

  • 학습된 신경망을 적용하여, 학습에 사용되지 않은 정점, 학습 이후에 추가된 정점, 심지어 새로운 그래프의 정점의 임베딩을 얻을 수 있습니다

2. 그래프 신경망에서의 어텐션

2.1 기본 그래프 신경망의 한계

  • 기본 그래프 신경망에서는 이웃들의 정보를 동일한 가중치로 평균을 냅니다
  • 그래프 합성곱 신경망에서 역시 단순히 연결성을 고려한 가중치로 평균을 냅니다

2.2 그래프 어텐션 신경망

  • 그래프 어텐션 신경망(Graph Attention Network, GAT)에서는 가중치 자체도 학습합니다
  • 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문입니다
  • 가중치를 학습하기 위해서 셀프-어텐션(Self-Attention)이 사용됩니다
  • 각 층에서 정점 𝑖로부터 이웃 𝑗로의 가중치 𝜶𝒊𝒋는 세 단계를 통해 계산합니다
    1) 해당 층의 정점 𝑖의 임베딩 𝐡𝑖에 신경망𝑾를 곱해 새로운 임베딩을 얻습니다

    2) 정점 𝑖와 정점 𝑗의 새로운 임베딩을 연결한 후, 어텐션 계수 𝒂를 내적합니다 어텐션 계수 𝒂는 모든 정점이 공유하는 학습 변수입니다

    3) 2)의 결과에 소프트맥스(Softmax)를 적용합니다
  • 여러 개의 어텐션을 동시에 학습한 뒤, 결과를 연결하여 사용합니다
  • 멀티헤드 어텐션(Multi-head Attention)이라고 부릅니다
  • 어텐션의 결과 정점 분류의 정확도(Accuracy)가 향상되는 것을 확인할 수 있었습니다

3. 그래프 표현 학습과 그래프 풀링

3.1 그래프 표현 학습

  • 그래프 표현 학습, 혹은 그래프 임베딩이란 그래프 전체를 벡터의 형태로 표현하는 것입니다
  • 개별 정점을 벡터의 형태로 표현하는 정점 표현 학습과 구분됩니다
  • 그래프 임베딩은 벡터의 형태로 표현된 그래프 자체를 의미하기도 합니다
  • 그래프 임베딩은 그래프 분류 등에 활용됩니다
  • 그래프 형태로 표현된 화합물의 분자 구조로부터 특성을 예측하는 것이 한가지 예시입니다

3.2 그래프 풀링

  • 그래프 풀링(Graph Pooling)이란 정점 임베딩들로부터 그래프 임베딩을 얻는 과정입니다
  • 평균 등 단순한 방법보다 그래프의 구조를 고려한 방법을 사용할 경우, 그래프 분류 등의 후속 과제에서 더 높은 성능을 얻는 것으로 알려져 있습니다
  • 미분가능한 풀링(Differentiable Pooling, DiffPool)은 군집 구조를 활용 임베딩을 계층적으로 집계합니다

4. 지나친 획일화 문제

4.1 지나친 획일화 문제

  • 지나친 획일화(Over-smoothing) 문제란 그래프 신경망의 층의 수가 증가하면서 정점의 임베딩이 서로 유사해지는 현상을 의미합니다
  • 지나친 획일화 문제는 작은 세상 효과와 관련이 있습니다
  • 적은 수의 층으로도 다수의 정점에 의해 영향을 받게 됩니다
  • 지나친 획일화의 결과로 그래프 신경망의 층의 수를 늘렸을 때, 후속 과제에서의 정확도가 감소하는 현상이 발견되었습니다
  • 그래프 신경망의 층이 2개 혹은 3개 일 때 정확도가 가장 높습니다
  • 잔차항(Residual)을 넣는 것, 즉 이전 층의 임베딩을 한 번 더 더해주는 것 만으로는 효과가 제한적입니다

4.2 지나친 획일화 문제에 대한 대응

  • 획일화 문제에 대한 대응으로 JK 네트워크(Jumping Knowledge Network)는 마지막 층의 임베딩 뿐 아니라, 모든 층의 임베딩을 함께 사용합니다
  • APPNP는 0번째 층을 제외하고는 신경망 없이 집계 함수를 단순화하였습니다
  • APPNP의 경우, 층의 수 증가에 따른 정확도 감소 효과가 없는 것을 확인했습니다

5. 그래프 데이터의 증강

5.1 그래프 데이터 증강

  • 데이터 증강(Data Augmentation)은 다양한 기계학습 문제에서 효과적입니다
  • 그래프에도 누락되거나 부정확한 간선이 있을 수 있고, 데이터 증강을 통해 보완할 수 있습니다
  • 임의 보행을 통해 정점간 유사도를 계산하고, 유사도가 높은 정점 간의 간선을 추가하는 방법이 제안되었습니다

5.2 그래프 데이터 증강의 효과

  • 그래프 데이터 증강의 결과 정점 분류의 정확도가 개선되는 것을 확인했습니다

10강 정리

  1. 그래프 신경망 복습
  2. 그래프 신경망에서의 어텐션
  • 그래프 어텐션 신경망은 이웃 정점들의 임베딩을 평균내는 과정에서의 가중치도 함께 학습함
  1. 그래프 표현 학습과 그래프 풀링
  • 정점 임베딩으로부터 그래프 풀링을 통해 전체 그래프 임베딩, 즉 전체 그래프의 벡터 표현을 얻음
  1. 지나친 획일화 문제
  • 그래프 신경망의 층 수를 증가시킬 때, 정점 임베딩이 서로 유사해지고, 후속 과제의 정확도가 떨어지는 현상
  1. 그래프 데이터 증강
  • 그래프에 간선을 추가한 뒤 그래프 신경망을 학습시키는 방법으로 후속 과제의 정확도가 향상 시킴

“그래프를 위한 기계 학습” 복습

1강. 그래프란 무엇이고 왜 중요할까?

  • 그래프는 복잡계를 효과적으로 표현하고 분석하기 위한 언어임을 배웠습니다

2강. 실제 그래프는 어떻게 생겼을까?

  • 랜덤 그래프와 구분되는 실제 그래프의 구조적 특성에 대해서 배웠습니다

3강. 검색 엔진에서는 그래프를 어떻게 활용할까?

  • 페이지랭크 알고리즘을 통해 웹페이지의 관련성과 신뢰도를 평가하는 방법을 배웠습니다

4강. 그래프를 바이럴 마케팅에 어떻게 활용할까?

  • 그래프에서의 전파 과정을 모형화하고, 전파를 최대화하기 위한 방법을 배웠습니다

5강. 그래프의 구조를 어떻게 분석할까?

  • 밀접하게 연결된 정점의 집합, 즉 군집을 찾는 방법에 대해서 공부했습니다

6강. 그래프를 추천시스템에 어떻게 활용할까? (기본)

  • 내용 기반 추천시스템과 협업 필터링에 대해 배웠습니다

7강. 그래프의 정점을 어떻게 벡터로 표현할까?

  • DeepWalk, Node2Vec 등 정점 표현 학습에 대해서 배웠습니다

8강. 그래프를 추천시스템에 어떻게 활용할까? (심화)

  • 잠재 인수 모형과 넷플릭스 챌린지에 대해서 배웠습니다

9강. 그래프 신경망이란 무엇일까? (기본)

  • 그래프 신경망의 구조, 학습, 활용에 대해서 배웠습니다

10강. 그래프 신경망이란 무엇일까? (심화)

  • 그래프 신경망에서의 어텐션, 데이터 증강, 지나친 획일화 문제 등에 대해서 배웠습니다

퀴즈 결과 회고

[Graph Quiz] Simple한 퀴즈

  1. 다음 중 협업 필터링(Collaborative Filtering)에 대한 설명으로 옳은 것은? (O)
  • ans : 새로운 상품에 대한 추천이 어렵다는 단점이 있다.
  1. 다음 중 페이지랭크(PageRank)에 대한 설명으로 틀린 것은? (O)
  • ans : 웹페이지에 키워드와 그 등장 횟수를 활용한다.
  1. 다음 중 정점 임베딩(Node Embedding)에 대한 설명으로 틀린 것은? (O)
  • ans : 다양한 형태의 데이터를 그래프 형태로 표현하여 분석하는 기법이다.
  1. 다음 중 군집 탐색(Community Detection)에 대한 설명으로 틀린 것은? (O)
  • ans : 서로 연결되어 있는 정점(Node)들은 같은 항상 군집(Community)에 속하게 된다.
  1. 다음 중 그래프로 표현될 수 있는 데이터를 모두 고르시오. (O)
  • ans : 월드와이드웹, 전자상거래 구매내역, 온라인 소셜 네트워크, 지하철 노선도

Further Question

GraphSAGE 모델에서는 하나의 정점을 나타내기 위하여 집계 함수를 활용합니다. 이때, 자기 자신만의 임베딩 뿐 아니라 이웃 정점의 임베딩까지 사용합니다. 이러한 방식으로 정점을 정의하게 된다면, 어떠한 장점이 있을까요?

  • 이웃 정점이 유용한 정보를 담고 있을 가능성이 높아, 더 나은 성능을 보여줄 수 있습니다.

피어 세션 정리

강의 리뷰 및 Q&A

  • [Graph 9강] 그래프 신경망이란 무엇일까? (기본)
  • [Graph 10강] 그래프 신경망이란 무엇일까? (심화)

마스터 클래스

마스터 소개

Machine Learning with Graphs의 신기정 교수님 (KAIST 인공지능대학원 교수님)

사전 질문 답변

  1. 지금 실생활에서 경험할 수 있는 추천시스템들이 더 발전될 가능성이 있을까요? 사람의 마음이 딱 떨어지는게 아니라서 그때 그때 다른것 같은 어떻게 방향을 정해서 추천 알고리즘을 개선해 나가는 건가요?
  • 충분히 발전 여지가 있다.
  • context 정보를 수집해서 추천시스템에 사용할 수 있다면, 더 좋아질 것이다.
  • 현재로서는 정확도를 높이는 것이 중요해 보인다.
  • 개인의 입장으로는 본인의 취향에 적합한 상품을 추천받는 것이 좋으나, 회사의 입장에서는 회사의 이익을 최대화하는 것이 중요하다.
  • 그리고 특정 상품만 추천되는 공정성 이슈도 있다.
  • 또한, 사람의 취향은 항상 고정된 것이 아니고, 얼마든지 변화할 수 있다.
  1. CV에서 활용할 수 있는, 예를 들어서 객체인식 segmentation 등에서 그래프를 사용할 수 있는 방법 같은 것이 있을까요?
  • 3D로 모델링할 때, 매쉬라는 그래프 형태로 표현한다.
  • 그리고 이미지를 픽셀 단위로 처리할 수도 있지만, 의미 단위로 처리할 수도 있기 때문에 이때 그래프를 사용하는 것으로 알고 있다.
  • 마지막으로 비디오에서 그래프로 모델링하는 것으로 알고 있다.
  1. 시중에 나오는 딥러닝 관련 서적에는 GNN이나 GCN 같은 그래프 관련 내용이 거의 없는데 혹시 이유가 있을까요?
  • 다른 딥러닝 이론에 비해서 4~5년 가량 늦게 나왔다.
  • 그래프 신경망은 아직 초창기이다.
  • 따라서 특정 문제에 대해서는 성능이 잘 나올 수 있으나, 일반화는 떨어진다.
  • 현재 영어 서적으로 출판되고는 있으나, 초보자를 위한 책은 아니다.
  • 물론 번역본도 없다.
  1. 추천 시스템이 발전하고 있는 방향이 있는지 궁금합니다. 자연어 처리 분야에서는 self-supervised learning 형태로 데이터를 많이 모으고, 모델을 크게 만드는 방향으로 발전하고 있는 것 같은데 추천 시스템에서도 이러한 최신 트렌드 같은게 있을지 궁금합니다.
  • 강의에서는 간단하게만 소개를 했었는데, 최근에는 다양한 딥러닝을 사용해서 추천시스템에 적용하고 있다.
  • GNN 기술들이 최근에는 추천시스템에 사용되면서 성공적인 결과를 보여주고 있다.
  1. 교수님이 많은 딥러닝 분야 중에서 graph 분야를 선택한 이유가 궁금합니다. 또 그래프 분야는 다른 딥러닝 분야에 비해서 어떤 메리트가 있을까요?
  • 딥러닝 분야 중에서 그래프를 고른 것이 아니라, 그래프를 공부하고 있는 와중에 딥러닝이 나왔다.
  • 그래프 관련 기술들이 경제학, 경영학 등에서 사용된다.
  • 컴퓨터와 경제를 복수 전공하면서 그래프를 공부하기 시작했다.
  • 현재까지는 컴퓨터 비전이나 자연어 처리에 대한 공급과 수요가 많다.
  • 그에 비해서 그래프는 수요도 적고 공급도 적기 때문에, 메리트가 있다고 생각한다.
  • 우리나라는 수요가 적지만, 해외에서 페이스북이나 링크드인과 같은 기업에서는 수요가 있다.
  1. 최근 교수님이 연구하시는 연구 주제나 방향 등이 궁금합니다.
  • 그래프, 행렬 분해 등을 연구하고 있다.
  • 특히, 그래프 중에서 하이퍼 그래프라는 것을 연구하고 있다.
  • 하이퍼 그래프란 1대1이 아니라 다대다를 다루는 그래프이다.
  • 하이퍼 그래프의 특성과 하이퍼 그래프 신경망에 대해서 연구하고 있다.
  • 추가적으로 시계열, MF -> TF를 연구하고 있다.
  • 마지막으로 일기 예보와 관련된 연구를 하고 있고, 현재 슈퍼 컴퓨터 보다 더 적은 사양을 사용하면서도 더 정확한 모델을 만들기 위한 연구를 하고 있다.
  1. 딥러닝을 활용한 그래프가 실제 산업에서 어떻게 사용되는지 궁금합니다. 추천시스템 외에 적용분야도 알 수 있을까요?
  • 소셜 미디어 회사나, 검색 포털, 물리 현상 등에서 그래프를 사용하고 있다.
  1. 추천 시스템은 산업 현장에서 지금도 많이 사용되는 만큼, 실제로 작성해보면서 배우는 것이 중요하다고 생각하는데, 이론을 적용해볼 수 있는 데이터셋이나 캐글 대회 등을 찾기 많이 힘듭니다. 학부생에게 그래프 분야를 실습할 수 있는 방법을 추천해주실 수 있을까요? 또한 실제환경과 유사한 대량의 네트워크 데이터셋을 어떻게 경험할 수 있을까요?
  • 캐글 대회, 넷플릭스 대회, 야후 대회 등에서 찾을 수 있다.
  • public 그래프 데이터 또한 엄청나게 많이 있기 때문에, 검색해보면 쉽게 찾을 수 있다.
  • Open Graph Benchmark
  1. 사회적 관점에서 추천시스템이 (불건전한) 편향을 강화시키고 집단끼리 고립된 군집화가 되는 결과를 가져올 수 있는데, 이런 윤리적 문제를 어떻게 해결할 수 있을까요?
  • 추천시스템이라는 것이 회사의 이익과 직결된 문제이기 때문에, 해당 데이터를 공개하는 것을 굉장히 꺼려한다.
  • 따라서 이론적으로만 접근해서 문제를 해결하려고 한다.
  • 근본적인 문제를 해결하기 위해서는 데이터가 공개되어 할 것이다.
  1. 기존의 다른 뉴럴 네트워크를 사용하지 않고 GNN을 사용 했을 때의 이점이 무엇인지 궁금합니다.
  • 임의의 데이터를 그래프를 변환 후 CNN으로 적용하는 것을 많이 봤는데, 그렇게 해서는 안된다.
  • 그래프의 인접 행렬은 무작위로 선정된 것이기 때문에, CNN에 적합하지 않다.
  • 따라서 그래프 데이터는 GNN을 사용하는 것이 이점이 있다.
  1. GNN에 대해서 더 깊게 공부하고 싶다면, 스탬포드의 CS224W 이외에 추천해주실 자료가 있을까요?
  • GNN은 아직 과도기라서, GNN을 공부하기 보다는 그래프 자체를 공부해보는 것이 좋을 것 같다.
  • Networks, Crowds, and Markets 추천
  • Linked (링크) 추천
  1. 수업을 보면 데이터 분석 위주로 많은 예시가 나와있는데, 이쪽 분야는 대부분 분석 위주인가요? 아니면 다른 활용 분야가 있을까요?
  • 추천 시스템, 검색 알고리즘, 소셜 미디어, 생물, 화학, 제약, 경영, 경제 등에서 많이 사용된다.
  1. 어떤 task에 그래프 모델이 주로 사용되고 있는지 궁금합니다. 진행해보셨던 연구 주제, 모델링 중에 '그래프 모델이 정말 딱 알맞다!'고 느낀 것이 있다면 무엇인가요?
  • 데이터 자체가 그래프이거나 자연스럽게 그래프로 표현이 가능한 경우에는 적용이 잘된다.
  • 다만, 그래프로 표현할 수 없는 데이터를 억지로 그래프로 변환해서 사용하는 것은 별로인 것 같다.
  1. 컴퓨터 비전, 자연어 처리, 추천 시스템 중에 취업에 어떤 분야가 가장 유리하다고 생각하시나요?
  • 수요와 공급의 문제로 보았을 때, 추천 시스템이 가장 메리트 있어 보인다.
  1. 학사 졸업 후 취업을 목표로 하는 캠퍼들에게 조언해 주실 만한 것이 있을까요? 교수님이라면 부스트 캠프를 수행하며, 어떤 역량이나 스킬을 채워나가셨을 것 같나요?
  • 프레임워크를 다루는 기술은 누구나 할 수 있는 것이기 때문에, 툴에서 벗어나 유연하게 대처할 수 있는 프로그래밍 기술이 필요한 것 같다.
  • 따라서, 자료구조, 알고리즘, 프로그래밍 등을 공부하자.
  1. 연구자로 교수님께서 대학원생에게 기대하시는 바람직한 모습이 궁금합니다. 그리고 그 중에서도 연구 주제를 정하는 방법에 대해서도 의견을 구하고 싶습니다.
  • 공부는 노력과 결과가 비례하는 편인데, 연구는 노력과 결과가 비례하지 않는다.
  • 실패가 일상이기 때문에, 이를 훌훌 털고 다시 도전할 수 있는 멘탈이 중요한 것 같다.
  • 따라서 리스크 회피성인 사람들은 연구와 어울리지 않는 것 같다.
  • 연구 주제를 정함에 있어서, 문제가 중요하고 일반화할 수 있는 것이 좋다.
  • 그리고 교수님과 학생이 동시에 만족할 수 있는 주제여야 한다.

라이브 Q&A

  1. collaborative filtering은 모든 사람과 유사도를 파악하기 때문에 연산량이 굉장히 많아보이는데, 실제로 넷플릭스처럼 서비스인원이 많은(2억명) 경우에는 이를 어떻게 해결하는지, 또 현업에서는 어떤 방식으로 추천알고리즘을 개발하는지 궁금합니다.
  • 모든 사람과 모든 상품 간의 점수로 inference 하는 것은 아니고, 표본을 가지고 inference 후 추천한다.
  1. 교수님, 이번 주 수업 내용을 기반으로 읽으면 좋을 논문 "딱 하나"만 추천해주신다면 어떤 게 있나요!
  1. 교수님께서 학부 때부터 CS 전공이셨고, 연구하시는 분야도 EE보단 CS 기반이시라고 생각합니다. 하지만, 현재 교수님께선 (AI 대학원과 더불어) KAIST EE 소속이신 걸로 알고 있습니다. 이에 대한(CS -> EE) 특별한 이유 혹은 계기가 있으시다면 여쭤보고 싶습니다.
  • 카이스트 전자 경우에는, 소규모의 컴퓨터과가 있다고 생각하면 된다.
  1. 추천시스템이 고도화되면서 소비자가 좋아하는 컨텐츠를 정말 잘 추천해주는듯 합니다. 그러다 문득 든 생각이 '내 취향을 추천시스템이 잘 찾아주는걸까? 아니면 추천시스템이 내 취향을 만드는걸까?' 라는 조금 엉뚱한? 생각이 들기도 합니다. 이에 대해 어떻게 생각하시는지 궁금합니다!
  • 변인 통제를 굉장히 잘해줘야 한다.
  • 윤리적인 문제도 있을 수 있기 때문에 조심해야 한다.
  1. 저도 경제학을 (학부)전공했는데, 경제학에서 그래프를 활용한 연구는 어떤게 있을까요? 경제 이론을 시뮬레이션하는 용도로 쓰이나요?
  • 미시경제, 거시경제, 게임이론 등에서 많이 사용한다.
  1. 영어 용어를 왜 한국어로 번역해서 설명해주시는지 궁금합니다.
  • 평소에는 영어로 수업을 하지만, 처음 공부하시는 분들을 위해서 한국어로 번역해서 설명했다.
  1. 안녕하세요, 교수님. GNN 같은 경우 다른 분야(NLP, CV)에 비해서 벤치데이터들의 성능이 낮게 나오는 편인데 그 이유를 Task의 어려움이라고 이해하면 되는 걸까요?
  • 문제 자체가 어렵다기 보다는, GNN의 역사가 짧아서 그런 것 같다.
  1. Direct PhD 유학을 지망하고 있는 학부생입니다! 탑스쿨 진학하기 위해 꼭 미리 준비해야할 점이 있다면 어떤 것이 있을까요? GRE나 TOEFL성적 외에 CV 작성을 위해 준비해야할 점을 알고 싶습니다! (연구실 인턴을 하면서 논문 작성 등)
  • 연구실에 들어가서 1년 정도 일하면서 논문을 작성하고 추천서를 받는 것이 베스트이다.
  • 예전에는 영어 성적과 학점이 중요했는데, 요즘에는 논문이나 추천서가 더 중요하다.
  1. 저는 물리학 전공의 졸업생인데 재학 중에 간단한 입자 운동 관련 group theory를 공부하였습니다. 어떤 rule을 주어주고 자연현상을 시뮬레이션 해보는 공부를 했었는데 이런 자연현상을 해석하는 분야에서 GNN을 활용하는 경우가 있을까요??
  • 잘 아는 분야가 아니다.
  1. 장바구니 검색을 통한 추천과 수업 때 다룬 협업, 컨텐츠기반의 추천이 성능 차이가 큰가요?
  • 사용 용도가 다르다고 하는 것이 맞을 것 같다.
  • 즉, 추천 시스템과는 다르다.

후기

그래프 이론에 대한 교수님의 생각을 들을 수 있었고, 견문이 넓어지는 시간이었습니다.

총평

사실 그래프 이론에는 크게 관심이 없어, 어제 강의까지는 시큰둥했었습니다.
그런데 오늘 강의에서 딥러닝과 연관된 그래프 신경망에 대해서 학습하고 나니 없었던 관심이 생기기 시작했습니다.
특히, 그래프 신경망은 CNN과 유사한 부분이 많아 이해하기가 수월했습니다.
그리고 기존의 학습 방법을 이런 식으로도 적용할 수 있다는 것을 배울 수 있었습니다.

이번 주 강의는 배경지식이 없어 깊이 있게 이해하지는 못했지만, 딥러닝을 새로운 시각으로 바라보는 기회가 되었습니다.

오늘보다 더 성장한 내일의 저를 기대하며, 다음 주에 뵙도록 하겠습니다.

읽어주셔서 감사합니다!

profile
PLUS ULTRA

0개의 댓글