Ai tech Day24

Lee·2021년 2월 25일
0

그래프의 정점을 벡터로 표현

정점 표현 학습

정점 표현 학습이란?

정점 표현 학습이란 그래프의 정점들을 벡터의 형태로 표현하는 것입니다.

정점 표현 학습은 간단히 정점 임베딩(Node Embedding)이라고도 부릅니다.
정점 임베딩은 벡터 형태의 표현 그 자체를 의미하기도 합니다.
정점이 표현되는 벡터 공간을 임베딩 공간이라고 부릅시다.


정점 표현 학습의 입력은 그래프입니다.
주어진 그래프의 각 정점 uu 에 대한 임베딩, 즉 벡터 표현 zuz_u 정점 임베딩의 출력입니다.


정점 표현 학습의 이유

정점 임베딩의 결과로, 벡터 형태의 데이터를 위한 도구들을 그래프에도 적용할 수 있습니다.

기계학습 도구들이 한가지 예시입니다.
대부분 분류기(로지스틱 회귀분석, 다층 퍼셉트론 등) 그리고 군집 분석 알고리즘(K-Means, DBSCAN 등)은 벡터 형태로 표현된 사례(Instance)들을 입력으로 받습니다.

그래프의 정점들을 벡터 형태로 표현할 수 있다면, 위의 예시와 같은 대표적인 도구들 뿐 아니라 최신의 기계 학습도구들을 정점 분류(Node Classification), 군집 분석(Community Detection) 등에
활용할 수 있습니다.


정점 표현 학습의 목표

어떤 기준으로 정점을 벡터로 변환해야할까요?

그래프에서의 정점간 유사도를 임베딩 공간에서도 '보존'하는 것을 목표로 합니다.


임베딩 공간에서의 유사도로는 내적(Inner Product)을 사용합니다.

임베딩 공간에서의 uuvv 의 유사도는 둘의 임베딩의 내적

zvTzu=zuzvcos(θ)z_v^Tz_u = ||z_u|| \cdot ||z_v|| \cdot cos(\theta)

입니다. 내적은 두 벡터가 클 수록, 그리고 같은 방향을 향할 수록 큰 값을 갖습니다.


그래프에서 두 정점의 유사도는 어떻게 정의할까요?

이 질문에는 여러가지 답이 있을 수 있습니다


정점 임베딩은 다음 두 단계로 이루어집니다.

1) 그래프에서의 정점 유사도를 정의하는 단계
2) 정의한 유사도를 보존하도록 정점 임베딩을 학습하는 단계



인접성 기반 접근법

인접성 기반 접근법

인접성(Adjacency) 기반 접근법에서는 두 정점이 인접할 때 유사하다고 간주합니다.

두 정점 uuvv 가 인접하다는 것은 둘을 직접 연결하는 간선 (u,v)(u,v) 가 있음을 의미합니다.

인접행렬(Adjacency Matrix) AAuuvv 열 원소 Au,vA_{u,v}uuvv 가 인접한 경우 1 아닌 경우 0 입니다.
인접행렬의 원소 Au,vA_{u,v} 를 두 정점 uuvv 의 유사도로 가정합니다.


인접성 기반 접근법의 손실 함수(Loss Function)는 아래와 같습니다.

즉, 이 손실 함수가 최소가 되는 정점 임베딩을 찾는 것을 목표로 합니다. 손실 함수 최소화를 위해서는 (확률적) 경사하강법 등이 사용됩니다.


인접성 기반 접근법의 한계

인접성만으로 유사도를 판단하는 것은 한계가 있습니다.

빨간색 정점파란색 정점은 거리가 3인 반면
초록색 정점파란색 정점은 거리가 2입니다.

인접성만을 고려할 경우 이러한 사실에 대한 고려 없이, 두 경우의 유사도는 0으로 같습니다.


군집 관점에서는 빨간색 정점파란색 정점은 다른 군집에 속하는 반면
초록색 정점파란색 정점은 다른 군집에 속합니다.

인접성만을 고려할 경우 이러한 사실에 대한 고려 없이, 두 경우의 유사도는 0으로 같습니다.


인접성만으로 유사도를 판단하면 거리와 군집성 등을 무시하게 된다.



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

거리 기반 접근법

거리 기반 접근법에서는 두 정점 사이의 거리가 충분히 가까운 경우 유사하다고 간주합니다.

예를 들어, '충분히'의 기준을 2 로 가정합시다.

빨간색 정점은 초록색 그리고 파란색 정점들과 유사합니다. 즉 유사도가 1입니다.

반면, 빨간색 정점은 보라색 정점과는 유사하지 않습니다. 즉 유사도가 0입니다.


경로 기반 접근법

경로 기반 접근법에서는 두 정점 사이의 경로가 많을 수록 유사하다고 간주합니다.

정점 uuvv 의 사이의 경로(Path)는 아래 조건을 만족하는 정점들의 순열(Sequence)입니다.

(1) uu 에서 시작해서 vv 에서 끝나야 합니다
(2) 순열에서 연속된 정점은 간선으로 연결되어 있어야 합니다.

경로가 아닌 순열의 예시:
1, 6, 8
1, 3, 4, 5, 6, 8


두 정점 uuvv 의 사이의 경로 중 거리가 kk 인 것은 수는 Au,vkA_{u,v}^k 와 같습니다.
즉, 인접 행렬 AAkk 제곱의 uuvv 열 원소와 같습니다.

경로 기반 접근법의 손실 함수는 다음과 같습니다.


중첩 기반 접근법

중첩 기반 접근법에서는 두 정점이 많은 이웃을 공유할 수록 유사하다고 간주합니다.

아래 그림에서 빨간색 정점파란색 정점두 명의 이웃을 공유하기 때문에 유사도는 2가 됩니다.


정점 uu 의 이웃 집합을 N(u)N(u) 그리고 정점 vv 의 이웃 집합을 N(v)N(v) 라고 하면 두 정점의 공통 이웃 수 Su,vS_{u,v} 는 다음과 같이 정의 됩니다.

Su,v=N(u)N(v)=wN(u)N(v)1S_{u,v}=|N(u) \cap N(v)|=\sum_{w \in N(u) \cap N(v)} 1

중첩 기반 접근법의 손실 함수는 다음과 같습니다.


공통 이웃 수 대신 자카드 유사도 혹은 Adamic Adar 점수를 사용할 수도 있습니다.

자카드 유사도(Jaccard Similarity)는 공통 이웃의 수 대신 비율을 계산하는 방식입니다.

0NuNvNuNv10 \le \cfrac{|N_u \cap N_v|}{|N_u \cup N_v|} \le 1

Adamic Adar 점수는 공통 이웃 각각에 가중치를 부여하여 가중합을 계산하는 방식입니다.

wNuNv1dw\sum_{w \in N_u \cap N_v} \cfrac{1}{d_w}

연결성이 지인을 높은 공통 지인으로 갖는 것은 가중치가 크지 않다. 예를 들어, A와 B가 트와이스를 follow 했어도, 트와이스는 follower 수가 수백만명이기 때문에 A와 B를 가깝다고 할 수는 없는 것이다.


이렇게 구해진 자카드 유사도 혹은 Adamic Adar 점수는 손실함수에서 Su,vS_{u,v} 대신 사용될 수 있다.



임의보행 기반 접근법

임의보행 기반 접근법

임의보행 기반 접근법에서는 한 정점에서 시작하여 임의보행을 할 때 다른 정점에 도달할 확률을 유사도로 간주합니다.

임의보행이란 현재 정점의 이웃 중 하나를 균일한 확률로 선택하는 이동하는 과정을 반복하는 것을 의미합니다.

임의보행을 사용할 경우 시작 정점 주변의 지역적 정보그래프 전역 정보를 모두 고려한다는 장점이 있습니다.

이전의 경로 기반 접근법에서는 k거리를 조건으로 두었지만 임의보행 기반 접근법에서는 거리를 제한 하지 않아 그래프 전역 정보를 고려합니다.


임의보행 기반 접근법은 세 단계를 거칩니다.

1) 각 정점에서 시작하여 임의보행을 반복 수행합니다.

2) 각 정점에서 시작한 임의보행 중 도달한 정점들의 리스트를 구성합니다. 이 때, 정점 uu 에서 시작한 임의보행 중 도달한 정점들의 리스트를 NR(u)N_R(u) 라고 합시다. 한 정점을 여러 번 도달한 경우, 해당 정점은 NR(u)N_R(u) 에 여러 번 포함될 수 있습니다.

3) 다음 손실함수를 최소화하는 임베딩을 학습합니다.


어떻게 임베딩으로부터 도달 확률을 추정할까요?

정점 uu 에서 시작한 임의보행이 정점 vv 에 도달할 확률 P(vzu)P(v|\operatorname{z}_u) 을 다음과 같이 추정합니다.

P(vzu)=exp(zuTzv)nVexp(zuTzn)P(v|\operatorname{z}_u)=\cfrac{\operatorname{exp}(\operatorname{z}_u^T\operatorname{z}_v)}{\sum_{n \in V}\operatorname{exp}(\operatorname{z}_u^T\operatorname{z}_n)}

즉 유사도 zuTzv\operatorname{z}_u^T\operatorname{z}_v 가 높을 수록 도달 확률이 높습니다.


추정한 도달 확률을 사용하여 손실함수를 완성하고 이를 최소화하는 임베딩을 학습합니다.


DeepWalk와 Node2Vec

임의보행의 방법에 따라 DeepWalkNode2Vec이 구분됩니다.

DeepWalk는 앞서 설명한 기본적인 임의보행을 사용합니다.
즉, 현재 정점의 이웃 중 하나를 균일한 확률로 선택하는 이동하는 과정을 반복합니다.


Node2Vec2차 치우친 임의보행(Second-order Biased Random Walk)을 사용합니다.

현재 정점(예시에서 vv)과 직전에 머물렀던 정점(예시에서 uu)을 모두 고려하여 다음 정점을 선택합니다.

직전 정점의 거리를 기준으로 경우를 구분하여 차등적인 확률을 부여합니다.


Node2Vec에서는 부여하는 확률에 따라서 다른 종류의 임베딩을 얻습니다.

아래 그림은 Node2Vec으로 임베딩을 수행한 뒤, K-means 군집 분석을 수행한 결과입니다.


멀어지는 방향에 높은 확률을 부여한 경우, 정점의 역할(다리 역할, 변두리 정점 등)이 같은 경우 임베딩이 유사합니다.

파란색 정점들은 다리역할을 하는 것을 확인할 수 있다.


가까워지는 방향에 높은 확률을 부여한 경우, 같은 군집(Community)에 속한 경우 임베딩이 유사합니다.


손실 함수 근사

임의보행 기법의 손실함수는 계산에 정점의 수의 제곱에 비례하는 시간이 소요됩니다.

중첩된 합 때문입니다.

정점이 많은 경우, 제곱은 매우 큰 숫자입니다.
예시로 1억의 제곱은 1경 = 10,000조 입니다.


따라서 많은 경우 근사식을 사용합니다.

모든 정점에 대해서 정규화하는 대신 몇 개의 정점을 뽑아서 비교하는 형태입니다. 이 때 뽑힌 정점들을 네거티브 샘플이라고 부릅니다.

연결성에 비례하는 확률로 네거티브 샘플을 뽑으며, 네거티브 샘플이 많을 수록 학습이 더욱 안정적입니다.



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

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

지금까지 소개한 정점 임베딩 방법들을 변환식(Transductive) 방법입니다.

변환식(Transdctive) 방법학습의 결과로 정점의 임베딩 자체를 얻는다는 특성이 있습니다.
정점을 임베딩으로 변화시키는 함수, 즉 인코더를 얻는 귀납식(Inductive) 방법과 대조됩니다.


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

변환식 임베딩 방법은 여러 한계를 갖습니다.

1) 학습이 진행된 이후에 추가된 정점에 대해서는 임베딩을 얻을 수 없습니다.
2) 모든 정점에 대한 임베딩을 미리 계산하여 저장해두어야 합니다.
3) 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 없습니다.






그래프와 추천 시스템

추천 시스템

추천 시스템과 그래프

추천 시스템은 사용자 각각이 구매할 만한 혹은 선호할 만한 상품/영화/영상을 추천합니다.

추천 시스템의 핵심은 사용자별 구매를 예측하거나 선호를 추정하는 것입니다.

그래프 관점에서 추천 시스템은 '미래의 간선을 예측하는 문제' 혹은 '누락된 간선의 가중치를 추정하는 문제'로 해석할 수 있습니다.


내용 기반 추천시스템

내용 기반 추천은 각 사용자가 구매/만족했던 상품과 유사한 것을 추천하는 방법입니다.

  • 동일한 장르의 영화를 추천하는 것
  • 동일한 감독의 영화 혹은 동일 배우가 출현한 영화를 추천하는 것
  • 동일한 카테고리의 상품을 추천하는 것
  • 동갑의 같은 학교를 졸업한 사람을 친구로 추천하는 것


내용 기반 추천시스템은 다음 장/단점을 같습니다.

(+) 다른 사용자의 구매 기록이 필요하지 않습니다.
(+) 독특한 취향의 사용자에게도 추천이 가능합니다.
(+) 새 상품에 대해서도 추천이 가능합니다.
(+) 추천의 이유를 제공할 수 있습니다.

(-) 상품에 대한 부가 정보가 없는 경우에는 사용할 수 없습니다.
(-) 구매 기록이 없는 사용자에게는 사용할 수 없습니다.
(-) 과적합(Overfitting)으로 지나치게 협소한 추천을 할 위험이 있습니다.


협업 필터링

협업 필터링은 유사한 취향의 사용자들이 선호/구매한 상품을 추천하는 방법입니다.

추천의 대상 사용자를 xx 라고 합시다.

우선 $$x 와 유사한 취향의 사용자들을 찾습니다.

다음 단계로 유사한 취향의 사용자들선호한 상품을 찾습니다.

마지막으로 이 상품들을 xx 에게 추천합니다.


협업 필터링은 다음의 장/단점을 갖습니다.

(+) 상품에 대한 부가 정보가 없는 경우에도 사용할 수 있습니다.
(−) 충분한 수의 평점 데이터가 누적되어야 효과적입니다.
(−) 새 상품, 새로운 사용자에 대한 추천이 불가능합니다.
(−) 독특한 취향의 사용자에게 추천이 어렵습니다.


추천시스템의 평가

훈련 데이터를 이용하여 추정한 점수를 평가 데이터와 비교하여 정확도를 측정합니다.

오차를 측정하는 지표로는 평균 제곱 오차(Mean Squared Error, MSE)가 많이 사용됩니다.
평가 데이터 내의 평점들을 집합을 TT 라고 합시다.
평균 제곱 오차는 아래 수식으로 계산합니다.

1TrxiT(rxir^xi)2\cfrac{1}{|T|}\sum_{r_{xi} \in T} (r_{xi} - \hat{r}_{xi})^2

평균 제곱급 오차(Root Mean Squared Error, RMSE)도 많이 사용됩니다.

1TrxiT(rxir^xi)2\sqrt{\cfrac{1}{|T|}\sum_{r_{xi} \in T} (r_{xi} - \hat{r}_{xi})^2}


넷플릭스 챌린지 소개

넷플릭스 챌린지 데이터셋

넷플릭스 챌린지(Netflix Challenge)에서는 사용자별 영화 평점 데이터가 사용되었습니다.

훈련 데이터(Training Data)는 2000년부터 2005년까지 수집한 48만명 사용자의 1만 8천개의 영화에 대한 1억 개의 평점으로 구성되어 있습니다.

평가 데이터(Test Data)는 각 사용자의 최신 평점 280만개로 구성되어 있습니다.


넷플릭스 챌린지 대회 소개

넷플릭스 챌린지의 목표는 추천시스템의 성능을 10%이상 향상시키는 것이었습니다.

평균 제곱근 오차 0.95140.8563까지 낮출 경우 100만불의 상금을 받는 조건이었습니다.

2006년부터 2009년까지 진행되었으며, 2700개의 팀이 참여하였습니다.
넷플릭스 챌린지를 통해 추천시스템의 성능이 비약적으로 발전했습니다.



잠재 인수 모형

잠재 인수 모형 개요

잠재 인수 모형(Latent Factor Model)의 핵심은 사용자와 상품을 벡터로 표현하는 것입니다.


사용자와 영화를 임베딩한 예시입니다.


잠재 인수 모형에서는 고정된 인수 대신 효과적인 인수를 학습하는 것을 목표로 합니다.

학습한 인수를 잠재 인수(Latent Factor)라 부릅니다.


손실 함수

사용자와 상품을 임베딩하는 기준은 무엇인가요?

사용자와 상품의 임베딩의 내적(Inner Product)이 평점과 최대한 유사하도록 하는 것입니다.
사용자 xx 의 임베딩을 pxp_x, 상품 ii 의 임베딩을 qiq_i 라고 합시다.
사용자 xx 의 상품 ii 에 대한 평점을 𝑟𝑥𝑖라고 합시다.
임베딩의 목표는 pxTp_x^Tqiq_irxir_{xi}와 유사하도록 하는 것입니다.


행렬 차원에서 살펴봅시다.

사용자 수의 열과 상품 수의 행을 가진 평점 행렬을 RR 이라고 합시다.
사용자들의 임베딩, 즉 벡터를 쌓아서 만든 사용자 행렬을 PP 라고 합시다.
영화들의 임베딩, 즉 벡터를 쌓아서 만든 상품 행렬을 QQ 라고 합시다.


잠재 인수 모형은 다음 손실 함수를 최소화하는 PPQQ 를 찾는 것을 목표로 합니다.

하지만, 위 손실 함수를 사용할 경우 과적합(Overfitting)이 발생할 수 있습니다.
과적합이란 기계학습 모형이 훈련 데이터의 잡음(Noise)까지 학습하여, 평가 성능은 오히려 감소하는 현상을 의미합니다.


과적합을 방지하기 위하여 정규화 항을 손실 함수에 더해줍니다.

pxp_xqiq_i 가 너무 큰 값을 가지지 않는다.

임베딩된 값들이 너무 크면 훈련데이터 안에 있는 noise까지 배울 수 있습니다. 이는 새로운 상품과 사용자를 예측할 때는 도움이 되지 않기에 배우지 않습니다.


정규화는 극단적인, 즉 절댓값이 너무 큰 임베딩을 방지하는 효과가 있습니다.

원점으로부터 너무 멀리 떨어진 사용자들을 다시 원점으로 불러들이는 효과가 있습니다. 어떤 사람이 우하단에 있는 영화를 재밌게 봤다고 해서, 무조건 우하단을 좋아하는게 아니라 그런 경향성이 있다고 학습합니다.


최적화

손실함수를 최소화하는 PPQQ 를 찾기 위해서는 (확률적) 경사하강법을 사용합니다.

경사하강법은 손실함수를 안정적으로 하지만 느리게 감소시킵니다.

확률적 경사하강법은 손실함수를 불안정하지만 빠르게 감소시킵니다.

실제로는 확률적 경사하강법이 더 많이 사용됩니다.



고급 잠재 인수 모형

사용자와 상품의 편향을 고려한 잠재 인수 모형

사용자의 편향해당 사용자의 평점 평균과 전체 평점 평균의 차입니다.

나연이 매긴 평점의 평균이 4.0개의 별,
다현이 매긴 평점의 평균이 3.5개의 별이라고 합시다.

전체 평점 평균이 3.7개의 별인 경우,
나연의 사용자 편향은 4.0 - 3.7 = 0.3개의 별입니다.
다현의 사용자 편향은 3.5 - 3.7 = -0.2개의 별입니다.


상품의 편향해당 상품에 대한 평점 평균과 전체 평점 평균의 차입니다.

영화 식스센스에 대한 평점의 평균이 4.5개의 별,
영화 클레멘타인이 매긴 평점의 평균이 3.0개의 별이라고 합시다.

전체 평점 평균이 3.7개의 별인 경우,
식스센스의 상품 편향은 4.53.7 = 0.8개의 별입니다.
클레멘타인의 상품 편향은 3.0 - 3.7 = -0.7개의 별입니다.


개선된 잠재 인수 모형에서는 평점을 전체 평균, 사용자 편향, 상품 편향, 상호작용으로 분리합니다.


개선된 잠재 인수 모형의 손실 함수는 아래와 같습니다.

(확률적) 경사하강법을 통해 손실 함수를 최소화하는 잠재 인수와 편향을 찾아냅니다.



시간적 편향을 고려한 잠재 인수 모형

넷플릭스 시스템의 변화로 평균 평점이 크게 상승하는 사건이 있었습니다.


영화의 평점은 출시일 이후 시간이 지남에 따라 상승하는 경향을 갖습니다.

처음 영화를 보는 사람들은 그 영화를 보기를 간절히 원했던 사람들이라 점수가 높은 것입니다. 시간이 지날 수록 해당 영화를 좋아할만한 사람들이 영화를 보기 때문에 평점이 올라갑니다.


개선된 잠재 인수 모형에서는 이러한 시간적 편향을 고려합니다.

구체적으로 사용자 편향과 상품 편향을 시간에 따른 함수로 가정합니다.



넷플릭스 챌린지의 결과

앙상블 학습

BellKor 팀은 앙상블 학습을 사용하여 처음으로 목표 성능에 도달하였습니다.


BellKor 팀의 독주에 위기감을 느낀 다른 팀들은 연합팀 Ensemble을 만들었습니다.

그 결과 Ensemble 팀 역시 목표 성능에 도달하였습니다.


넷플릭스 챌린지의 우승팀

넷플릭스 챌린지 종료 시점에 BellKorEnsemble 팀의 오차는 정확히 동일했습니다.
하지만 BellKor 팀의 제출이 20분 빨랐습니다. BellKor 팀의 우승입니다.

profile
초보 개발자입니다

0개의 댓글