부스트캠프 AI Tech 1기 [T1209 최보미]/U stage

Day24 학습정리 - 정점 표현 & 추천시스템 (심화)

B1001101 2021. 2. 25. 23:42

강의복습

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

더보기

1) 정점 표현 학습

  • 그래프의 정점들을 벡터로 표현하는 것
  • 정점 임베딩(Node Embedding)이라고도 함
  • 임베딩 공간: 정점이 표현되는 벡터 공간
  • 정점 표현 학습의 목표: 그래프에서의 정점간 유사도를 임베딩 공간에서도 보존하는 것
  • 임베딩 공간에서의 유사도: 내적 사용
  • 그래프에서 정점 사이의 유사성을 계산하는 방법에 따라 여러 접근법이 구분됨

2) 인접성(Adjacency) 기반 접근법

  • 두 정점이 인접할 때(둘을 직접 연결하는 간선이 있을 때) 유사하다고 간주
  • 인접 행렬: 두 정점 u, v가 인접한 경우 해당 원소 1, 아니면 0
  • 손실 함수

3) 거리/경로/중첩 기반 접근법

  • 거리 기반 접근법: 두 정점 사이의 거리가 충분히 가까운 경우 유사하다고 간주
  • 경로 기반 접근법: 두 정점 사이의 경로가 많을수록 유사하다고 간주
  • 중첩 기반 접근법: 두 정점이 많은 이웃을 공유할수록 유사하다고 간주
    • 공통 이웃 수 대신 자카드 유사도 혹은 Adamic Adar 점수 사용할 수도 있음
자카드 유사도(Jaccard Similarity) Adamic Adar 점수
공통 이웃의 수 대신 비율을 계산하는 방식 공통 이웃 각각에 가중치를 부여하여 가중합을 계산하는 방식

4) 임의보행 기반 접근법

  • 한 정점에서 시작하여 임의보행을 할 때 다른 정점에 도달할 확률을 유사도로 간주
  • 손실함수
  • 임의보행 방법에 따라 DeepWalk와 Node2Vec가 구분됨
    • Deepwalk: 기본적인 임의보행
    • Node2Vec: 2차 치우친 임의보행(Second-order Biased Random Walk)을 사용 (직전 정점의 거리를 기준으로 차등적인확률 부여)
  • 손실함수 계산할 때 정점의 수의 제곱에 비례하는 시간이 소요됨
    →근사식 사용 (네거티브 샘플 뽑아서 비교)

5) 변환식 정점 표현 학습의 한계

  • 변환식(Transductive) 방법: 학습의 결과로 정점의 임베딩 자체를 얻음
    귀납식(Inductive) 방법: 학습의 결과로 인코더(정점을 임베딩으로 변화시키는 함수) 얻음
  • 변환식 임베딩 방법의 한계
    • 학습 진행 이후 추가된 정점에 대해서는 임베딩 얻을 수 없음
    • 모든 정점에 대한 임베딩을 미리 계산하여 저장해두어야 함
    • 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 없음

6) 실습: Node2Vec을 사용한 군집 분석 및 정점 분류

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

더보기

1) 추천시스템 기본 복습

  • 내용기반추천, 협업필터링등

2) 넷플릭스 챌린지 소개

3) 기본 잠재 인수 모형

  • 사용자 임베딩, 상품 임베딩을 학습
  • 임베딩의 내적으로 평점을 근사

4) 고급 잠재 인수 모형

  • 사용자 편향, 상품 편향, 시간적 편향을 고려

5) 넷플릭스 챌린지의 결과

6) 실습: Surprise 라이브러리와 잠재 인수 모형의 활용


코멘트

어제까지는 내용이 별로 어렵지 않아서 할만했는데 오늘 내용은 좀 어려운 것 같다. 그리고 피어세션때 팀원분이 저번주 과제였던 캐글 대회 코드를 1시간동안이나 설명해주셔서 정말 대단하다고 생각했다.