군집(Community)이란 다음 조건들을 만족하는 정점들의 집합이다.
집합에 속하는 정점 사이에는 많은 간선이 존재
집합에 속하는 정점과 그렇지 않은 정점 사이에는 적은 수의 간선이 존재한다.
수학적으로 엄밀한 정의는 아니다.
온라인 소셜 네트워크의 군집들은 사회적 무리(Social Circle)을 의미하는 경우가 많다.
온라인 소셜 네트워크 군집들이 부정 행위와 관련된 경우도 많다.
조직 내의 분란이 소셜 네트워크 상의 군집으로 표현된 경우도 있다.
키워드 - 광고주 그래프에서는 동일한 주제의 키워드들이 군집을 형성한다.
뉴런간 연결 그래프에서는 군집들이 뇌의 기능적 구성단위를 의미한다.
그래프를 여러 군집으로 '잘' 나누는 문제를 군집 탐색(Community Detection)문제 라고 한다.
보통은 각 정점이 한 개의 군집에 속하도록 군집을 나눈다.
비지도 기계학습 문제인 클러스터링(Clustering)과 상당히 유사하다.
먼저 성공적인 군집 탐색부터 정의하자.
성공적인 군집 탐색을 정의하기 위해 먼저 배치 모형(Configuration Model)을 소개한다.
아래의 그래프에 대한 배치 모형은,
군집 탐색의 성공 여부를 판단하기 위해서, 군집성(Modularity)가 사용된다.
그래프와 군집들의 집합 S가 주어졌다고 가정
각 군집 ∈ 가 군집의 성질을 잘 만족하는 지를 살펴보기 위해,
군집 내부의 간선의 수를 그래프와 배치 모형에서 비교한다.
구체적으로, 군집성은 다음 수식으로 계산된다.
즉, 배치 모형과 비교했을 때, 그래프에서 군집 내부 간선의 수가 월등히 많을수록 성공한 군집 탐색이다.
즉, 군집성은 무작위로 연결된 배치 모형과의 비교를 통해 통계적 유의성을 판단한다.
군집성은 항상 -1과 +1 사이의 값을 갖는다.
보통 군집성이 0.3 ~ 0.7 정도의 값을 가질 때, 그래프에 존재하는 통계적으로 유의미한 군집들을 찾아냈다고 할 수 있다.
Girvan-Newman 알고리즘은 대표적인 하향식(Top-Down) 군집 탐색 알고리즘
Girvan-Newman 알고리즘은 전체 그래프에서 탐색을 시작하고, 군집들이 서로 분리되록 간선을 순차적으로 제거한다.
Q : 어떤 간선을 제거해야 군집들이 분리될까요?
Q : 서로 다른 군집을 연결하는 다리 역할의 간선을 어떻게 찾아낼까?
Grivan-Newman 알고리즘은 매개 중심성이 높은 간선을 순차적으로 제거한다.
간선이 제거될 때마다, 매개 중심성을 다시 계산하여 갱신한다.
Grivan-Newman 알고리즘은 간선의 제거 정도에 따라서 다른 입도(Granularity)의 군집구조가 나타난다.
Q : 간선을 어느 정도 제거하는 것이 가장 적합할까?
정리하면,
대표적인 상향식(Botton-Up) 군집 탐색 알고리즘
개별 정점에서 시작해서 군집성을 기준으로 점점 큰 군집을 형성한다.
알고리즘의 동작 과정 :
개별 점점으로 구성된 크기 1의 군집들로부터 시작.
각 정점 를 기존 혹은 새로운 군집으로 이동.
이때, 군집성이 최대화되도록 군집을 결성.
더 이상 군집성이 증가하지 않을 때까지 2를 반복한다.
각 군집을 하나의 정점으로 하는 군집 레벨의 그래프를 얻은 뒤 3을 수행한다.
한 개의 정점이 남을 때까지 4를 반복한다.
실제 그래프의 군집들은 중첩되어 있는 경우가 많다.
위의 Grivan-Newman, Louvain 알고리즘은 군집 간의 중첩이 없다고 가정한다.
각 정점은 여러 개의 군집에 속할 수 있다.
각 군집 에 대하여, 같은 군집에 속하는 두 정점은 A 확률로 간선으로 직접 연결된다.
두 정점이 여러 군집에 동시에 속할 경우 간선 연결확률은 독립적이다.
어느 군집에도 함께 속하지 않는 두 정점은 낮은확률로 직접 연결된다.
중첩 군집 모형이 주어지면, 그래프의 확률을 계산할 수 있다.
그래프의 확률은 다음 확률들의 곱이다.
중첩 군집 탐색을 용이하게 하기 위하여 완화된 중첩 군집 모형을 사용.
완화된 중첩 군집 모형에서는 각 정점이 각 군집에 속해 있는 정도를 실숫값으로 표현
즉, 기존 모형에서는 각 정점이 각 군집에 속하거나 속하지 않거나 둘 중 하나였지만, 중간 상태를 표현할 수 있게 된다.
최적화 관점에서는, 모형의 매개변수들이 실수 값을 가지기 때문에 익숙한 최적화 도구 (경사하강법 등)을 사용하여 모형을 탐색할 수 있다는 장점이 있다.
추천 시스템은 사용자 각각이 구매할 만한 혹은 선호할 만한 상품을 추천한다.
추천 시스템의 핵심은 사용자별 구매를 예측하거나 선호를 추정하는 것이다.
그래프 관점에서 추천시스템은 "미래의 간선을 예측하는 문제" 혹은 "누락된 간선의 가중치를 추정하는 문제"로 해석할 수 있다.
각 사용자가 구매/만족했던 상품과 유사한 것을 추천하는 방법
예시 :
동일한 장르의 영화 추천
동일한 감독, 배우의 영화 추천
동일한 카테고리 상품 추천
동갑의 같은 학교를 졸업한 사람을 친구로 추천
내용 기반 추천은 다음 4 가지 단계로 이루어 진다.
첫 단계는 사용자가 선호했던 상품들의 상품 프로필(Item Profile)을 수집하는 단계이다.
어떤 상품의 상품 프로필이란 해당 상품의 특성을 나열한 벡터이다.
영화의 경우 감독, 장르, 배우 등의 원-핫 인코딩이 상품 프로필이 될수 있다.
다음 단계는 사용자 프로필(User Profile)을 구성하는 단계이다.
사용자 프로필은 선호한 상품의 상품 프로필을 선호도를 사용하여 가중 평균하여 계산한다.
즉 사용자 프로필 역시 벡터이다.
앞선 영화 프로필 예시에서는 다음과 같은 형태의 사용자 프로필을 얻을 수 있다.
다음 단계는 사용자 프로필과 다른 상품들의 상품 프로필을 매칭하는 단계이다.
코사인 유사도가 높을 수록 해당 사용자가 과거 선호했던 상품들과 해당 상품이 유사함을 의미한다.
마지막 단계는 사용자에게 상품을 추천하는 단계이다.
계산한 코사인 유사도가 높은 상품들을 추천한다.
장점 :
단점 :
3 단계로 구성이 된다.
취향의 유사성은 상관 계수(Correlation Coefficient)를 통해 측정한다.
취향의 유사도를 가중치로 사용한 평점의 가중 평균을 통해 평점을 추정한다.
마지막 단계는 추정한 평점이 가장 높은 상품을 추천한다.
추정한 평점과 실제 평가 데이터를 비교하여 오차를 측정한다.
오차를 측정하는 지표로는 평균 제곱 오차(MSE), 평균 제곱근 오차(RMSE)가 많이 사용된다.
이 밖에도 다양한 지표가 사용된다.
추천한 평점으로 순위를 매긴 후, 실제 평점으로 매긴 순위와의 상관 계수를 계산하기도 한다.
추천한 상품 중 실제 구매로 이루어진 것의 비율을 측정하기도 한다.
추천의 순서 혹은 다양성까지 고려하는 지표들도 사용된다.