Lecture 1 요약 정리

강하예진(Erica)·2023년 4월 26일
0

1-1.

그래프란?

개체와 관계, 상호작용을 묘사하고 분석하기 위한 언어. 네트워크와 관계로 세상을 정의한다.
그래프란 결국 관계 구조 모델링이다!

이 수업을 들으며 고민해야 할 주요 질문

  • Relational Structure(관계 구조)를 어떻게 활용하여 더 나은, 더 정확한 예측을 만들 것인가?
  • 어떻게 더 넓게 적용 가능한 신경망을 개발할 것인가?
  • 신경망 아키텍처를 어떻게 설계하여 인간의 feature engineering이 필요하지 않은 종단간 방식으로 이루어질 수 있게 할 것인가?

그래프의 특징

  1. 이미지 그리드나 텍스트와 같은 공간 지역성이 없다.
  2. 기준점이 없으며, 딥러닝을 할 수 있는 고정된 노드 순서가 없다.
  3. 동적이며 멀티 모델 기능을 지닌다.

Representation Learning

= 그래프의 특징을 자동으로 추출하거나 학습하는 것.

그래프의 노드를 d-차원 embedding, 즉 d차원 벡터로 mapping하는 것. 이를 통해 네트워크에서 노드가 가까운 것들은 임베딩 공간에서도 가까이 배치된다.
목표는 노드를 d차원 실수 벡터로 매핑하는 함수 f를 학습하는 것. 다시 말해, feed-forward와 back-propagation을 통해 '더욱 완벽한 벡터를 만들어내는 함수'를 학습한다. 이 벡터를 representation, feature representation, embedding이라고 한다.

임베딩 == 노드가 매핑된 n차원의 실수 벡터(차원축소됨) == Representation(표현) == feature Representation(특징 표현)


1-2.

여러 종류의 Tasks

  • Node level : Node classification : 개별 사용자나 아이템에 초점을 맞춘다. 유저의 특성과 아이템의 특성을 바탕으로 두 노드 사이의 관련성을 추정하고, 이를 통해 추천을 생성. (ex. 사용자의 관심사와 아이템 카테고리 비교 - 사용자에게 어떤 아이템에 관심을 끌 것인지 예측)

  • Edge level : Link prediction : 노드 관계(예측, 이해)에 초점을 맞춘다. 사용자와 아이템 간의 연결, 사용자 간의 친구 관계, 아이템 간의 유사성 등을 고려하여 추천을 생성. (ex. 친구들이 좋아하는 아이템 추천, 과거에 좋아했던 아이템과 유사한 아이템 추천)
    + 학습 원리 : 관련이 있는 노드 쌍의 거리는 짧다! 따라서, 학습 과정에서 손실 함수를 사용해 관련이 있는 노드 쌍의 거리가 관련없는 노드 쌍의 거리보다 작아지도록 최적화한다. 이 과정에서 임베딩이 업데이트되며, 거리 개념은 유클리디안/코사인 지표를 사용!

  • subgraph level : 노드와 엣지의 일부 집합에 초점을 맞춘다. 예를 들어, 사용자의 소셜 네트워크를 분석하여 그룹을 찾고, 그룹 내에서 인기있는 아이템을 추천. 서브그래프(집단) 내 아이템 간의 연관 규칙을 분석하여, 특정 아이템을 구매한 사용자가 함께 구매하는 다른 아이템을 추천 가능.

  • Graph level prediction (Graph Generation) : 전체 그래프 구조를 활용하여 추천. 노드, 엣지, 서브그래프 레벨에서의 정보를 모두 활용하여 더욱 정확한 추천을 제공 그래프 임베딩 기법을 사용해 사용자/아이템 표현을 학습하고, 임베딩으로 사용자/아이템 간 유사성을 계산해 추천 가능!
    + Clustering / Graph generation / Graph evolution


1-3.

Graph의 구성 요소 = 노드 + 엣지
N : Object : nodes, vertices
E : Interactions: links, edges
G(N,E) : System : network, graph

그래프를 정의하는 방법?

  • 노드는 무엇인가?
  • 엣지는 무엇인가?
    데이터셋이 주어지면, 기본 Graph를 어떻게 설계할 것인지, 관심 있는 Object가 무엇인지, 그들 사이의 관계가 무엇인지 결정해야 한다.

그래프와 방향성

  • Directed - Link에 방향성 있음(arcs) / examples(Phone calls, Following on Twitter, 금융 거래)
    ㄴ in-degree & out-degree 개념을 구분한다.

  • Undirected - Link에 방향성 없음(Symmetrical, reciprocal) / examples(Collaborations, Frendship in Facebook)
    ㄴ Node Degree 개념을 사용해 방향성 없는 그래프를 생성할 수도 있다. node degree는 주어진 node에 인접한 edge의 개수이다. 이때 차수란 엣지 수의 2배를 노드 수로 나눈 것이다.

Bipartite Graph

추천 시스템에서 많이 사용되는 그래프 구조. 두 가지 다른 유형의 노드로 구성된 그래프로, 한 노드는 다른 유형의 노드와만 상호 작용한다. 따라서 bipartite Graph는 노드를 두 파티션으로 나눌 수 있으며, 엣지는 왼쪽에서 오른쪽 파티션으로만 연결된다.
이는 조금 더 나아가 folded/projected bipartite graph 개념도 정의할 수 있다. projected bipartite graph는 두 가지 유형 중 하나의 노드만 사용하며, 노드를 연결하는 방식은 적어도 하나의 공통 이웃이 있는 노드에 엣지를 생성한다. (e.g, 같은 물건을 구매한 유저간에 엣지가 생기는 식)
추천 시스템으로 예시를 들자면, 사용자와 아이템을 두 종류의 노드로 가진 이분 그래프를 구성하고, 이것을 사용자나 아이템 중심으로 Folded/Projected하면 새로운 유형의 연결성 특성을 도출할 수 있다. 이런 특성은 추천 모델의 입력 특성으로 사용될 수 있으며, 사용자나 아이템 간의 유사성을 측정하는데 활용될 수도 있다. (compute cost는 엄청날 것 같지만..)

Adjacency Matrix

그래프를 표현하는 방법 중 하나. 그래프를 Adjacency Matrix(인접 행렬)로 표현하는 것이다. 기본적으로 Undirected Graph의 경우, 노드 수에 따라 제곱 행렬을 만들고, 이진 행렬이다. 노드가 연결되어 있으면 1, 아니면 0이다. 그래프가 directional 하다면 행렬은 대칭이고, Undirectional 하다면 대칭이 아니다.

Networks are Sparse

Adjacency Matrix는 대부분이 0이고, 이는 매우 sparse하다는 것을 의미한다. 평균 차수는 대략 10에서 최대 100 정도이다. 따라서, 우리는 행렬을 dense matrix로 표현하지 않고, 항상 sparse matrix로 표현해야 한다. 희소 행렬에서는 0이 아닌 원소의 값과 그 위치만 저장하면 되기 때문이다.
여담이지만 추천시스템의 경우에서는, 유저-아이템 간의 상호작용을 반영한 행렬이 지나치게 sparse한 경우, 이런 Cold-Start 문제를 해결하는 것이 주요한 모델성능향상 Task이다.

그래프 표현 방식 2개

  1. Edge List : 2차원 행렬의 형태. 딥러닝 프레임워크에서 인기가 많다. 그러나 그래프 조작이나 분석이 어렵다.
  2. Adjacency List : 사전처럼 각 노드의 이웃을 기재한다. 크고 sparse한 네트워크를 다루기 쉬우며, 검색도 빠르다. Directed Graph의 in-degree와 out-degree도 표현 가능하다.
    Q. 딥러닝 프레임워크들은 왜 Adjacency matrix 대신 Edge List 방식을 사용할까?

Representing Graph : 그래프와 Feature

Node와 Edge, 전체 Graph에 Attributes(속성)이나 Features(특성)이 추가될 수 있다.

  • weight (e.g. frequency of communication)
  • ranking (best frends, second best friend)
  • type (friend, relative, co-worker)
  • sign (follow vs block)
  • Properties depending on the structure of the rest of graph (Number of common graph)
    결과적으로 그래프는 node와 edge의 위상뿐만 아니라, 그것들에 부여되는 attribute(feature)도 포함한다. 물론 이런 속성들은 인접 행렬에서 직접 표현될 수도 있다.

Self Loofs

  • Self Loofs는 adjacency matrix의 대각선 항목에 해당한다.
  • 한 개의 노드 쌍 사이에 여러 엣지를 허용하는 다중 그래프 Multigraph를 생성할 수도 있다.

그래프와 연결성(Connectivity)

그래프의 모든 노드가 연결되어 있지 않을 수도 있다. 만약에 그래프 내 node 간에 connectivity가 없다면, Adjacency Matrix에서는 해당 그래프 부분이 대각선 구조를 가진다.
이 개념은 Directed Graph로도 확장된다. 먼저 약하게 연결된 directed graph는 엣지 방향을 무시하면 연결된 그래프다. 반대로 모든 노드 쌍에 대해 방향성이 있는 경로가 존재하는 그래프는 강하게 연결된 그래프다. 여기서 SCCs라는 개념이 다시 등장한다.

SCCs (Strongly connected components)

강하게 연결된 구성 요소(SCCs)는 그래프 내의 노드 집합으로, 해당 집합의 모든 노드가 방향성 있는 경로를 통해 서로 방문할 수 있다. 노드 ABC가 서로를 부석순처럼 가리키고 있다. 노드가 순환하고 있다는 뜻이다.

profile
Recommend System & BackEnd Engineering

0개의 댓글