728x90
반응형
- 강의 목록
- 검색 엔진에서는 그래프를 어떻게 활용할까?
- 그래프를 바이럴 마케팅에서 어떻게 활용할까?
- 요약
강의
피어세션
- 학습정리
웹과 그래프
- 웹은 웹 페이지와 하이퍼링크로 구성된 거대한 방향성 있는 그래프이다.
- 웹 페이지는 정점에 해당하며, 하이퍼링크는 해당 웹페이지에서 나가는 간선에 해당한다.
- 단, 웹 페이지는 추가적으로 키워드 정보를 포함한다.
- 구글 이전의 검색 엔진은 웹을 거대한 디렉토리 구조로 정리하려 했다.
- 하지만 웹 페이지의 수가 증가함에 따라 카테고리의 수와 깊이가 무한정 커졌다.
- 또한 카테고리 구분이 모호한 경우가 많아 저장과 검색의 어려움이 있었다.
- 그래서 키워드에 의존한 검색 엔진을 구축했다.
- 하지만 이 방식은 악의적인 웹페이지에 취약하다는 단점이 있다.
- 예를 들어 불법 사이트가 여러 키워드를 포함하면 검색의 결과로 불법 사이트가 나올 수 있다.
- 그래서 사용자 키워드와 관련성이 높고 신뢰할 수 있는 웹 페이지를 찾기 위해, 구글의 창업자인 래리 페이지와 세르게이 브린이 페이지 랭크를 개발했다.
페이지 랭크
- 페이지 랭크의 핵심 아이디어는 투표이다.
- 투표를 통해 사용자 키워드와 관련성이 높고 신뢰할 수 있는 웹 페이지를 찾는다.
- 투표의 주체는 웹 페이지이며, 하이퍼링크를 통해 투표를 한다.
- 사용자 키워드를 포함한 웹페이지가 특정 하이퍼링크를 포함하고 있다면, 해당 웹 페이지의 작성자가 해당 하이퍼 링크가 주제에 맞음을 의미하고, 투표했다고 생각한다.
- 들어오는 간선이 많을 수록 신뢰할 수 있다.
- 단, 간선의 수를 세기만 하는 것은 악용될 소지가 있다. 인위적으로 웹 페이지를 여러 개 만들어서 간선의 수를 부풀릴 수 있기 때문.
- 이런 악용을 막기 위해 페이지 랭크는 가중 투표를 한다.
- 관련성이 높고 신뢰할 수 있는 웹사이트의 투표를 더 중요하게 간주한다.
- 이러한 방식은 재귀, 즉 연립방정식 풀이를 통해 가능하다.
- 각 웹페이지는 각각의 나가는 이웃에게 (자신의 페이지랭크 점수 / 나가는 이웃의 수) 만큼의 가중치로 투표를 한다.
- 또한 페이지 랭크는 임의 보행 (Random Walk)의 관점에서도 정의할 수 있다.
페이지 랭크의 계산
1) 반복곱
- 각 웹페이지 i의 페이지 랭크 점수를 동일하게 (1 / 웹페이지의 수)로 초기화한다.
- 이후 위의 식을 이용해 각 웹 페이지의 페이지 랭크 점수를 갱신한다.
- 페이지 랭크 수가 수렴했으면 종료하고, 아니면 2번 단계로 돌아간다.
- 그러나 반복곱은 반드시 수렴하는 것을 보장할 수 없다.
- 또한 합리적인 점수로 수렴하는 것을 보장할 수 없다.
- 이러한 문제 해결을 위해 순간이동(Teleport)를 도입했다.
2) 순간이동 (Teleport)
- 임의 보행 관점에서 웹을 서핑하는 웹서퍼의 행동을 다음과 같이 수정한다.
- 현재 웹 페이지에 하이퍼링크가 없다면 임의의 웹페이지로 순간이동
- 현재 웹 페이지에 하이퍼링크가 있다면 앞면이 나올 확률이 a인 동전을 던진다.
- 앞면이라면 하이퍼링크 중 하나를 균일한 확률로 선택해 클릭
- 윗면이라면 임의의 웹 페이지로 순간이동
- 위의 과정 중 순간이동은 전체 웹 페이지들 중 하나를 균일 확률로 선택한다.
- 순간이동에 의해 스파이더 트랩과 막다른 정점에 갇히는 일이 없어졌다.
- 확률 a는 감폭 비율(Damping Factor)이라 부르며, 보통 0.8을 값으로 사용한다.
- 순간이동 도입은 페이지 랭크 점수 계산을 다음과 같이 바꾼다.
Python에서의 페이지 랭크
#방향성이 있는 networkx.DiGraph를 사용해 G를 정의한다.
#G에 그래프를 정의하고, 이 중 필요한 키워드들을 node_key : list 로 정의한다.
#node_key에 대한 부분 그래프를 만든다.
H = G.subgraph(node_key)
#alpha 값을 0.9로 하여 pagerank를 수행한다.
pr = networkx.pagerank(H, alpha=0.9)
바이럴 마케팅에서의 그래프
그래프를 통한 전파
- 정보의 전파 : 유용한 과학적 정보가 전파되기도 한다.
- 행동의 전파
- 고장의 전파 : 컴퓨터 네트워크에서는 일부 장비의 고장이 전체 네트워크를 마비할 수 있다. (정전 전파 사례도 유사)
- 질병의 전파 : 사회라는 거대한 네트워크를 통해 질병의 전파도 가능하다.
- 이렇듯 전파 과정을 다양할 뿐 아니라 매우 복잡하다.
- 이를 체계적으로 이해하고 대처하기 위해서는 수학적 모형화가 필요하다.
- 오늘 수업에서는 전파 과정을 위한 모형들 중 두 가지를 학습했다.
의사결정 기반의 전파 모형
- 주변 사람들의 의사결정이 본인의 의사결정에 영향을 미치는 경우.
- 주변 사람들의 의사결정을 고려하여 각자 의사결정을 내리는 경우, 의사결정 기반의 전파 모형을 사용한다.
- 선형 임계치 모형은 가장 간단한 형태의 의사결정 기반의 전파 모형이다.
선형 임계치 모형 (Linear Threshold Model)
- 위의 마지막 모형을 선형 임계치 모형이라고 한다.
- 각 정점은 이웃 중 A를 선택한 비율이 임계치 q를 넘을 때만 A를 선택한다.
- 그런데 위 모형은 전부 B를 사용하는 상황을 가정한다.
- 그리고 처음 A를 사용하는 얼리 어답터들을 가정하는데, 이들을 '시드 집합'이라고 부른다.
- 시드 집합은 주변의 선택과 관계없이 항상 무언가를 고수한다고 가정하는 집합이다.
- B는 이미 사용되고 있는 기술, A는 새롭게 등장한 기술이라고 보면 된다.
- 시드 집합은 새로운 기준으로써 주위 노드들에 전파된다.
확률적 전파 모형
- 질병의 전파 과정의 경우, 의사결정 기반 모형은 적합하지 않다.
- 그 누구도 질병에 걸리겠다고 의사결정을 내리지 않기 때문.
- 이런 경우 확률적 전파 모형이 사용되는데, 질병의 전파와 같이 확률적 과정의 전파에 사용한다.
- 독립 전파 모형은 가장 간단한 형태의 확률적 전파 모형이다.
독립적 전파 모형 (Independent Cascade Model)
- 각 간선 (u,v)의 가중치 p(uv)는 u가 감염되었을 때 u가 v를 감염시킬 확률이다.
- 즉, 각 정점 u가 감염될 때마다 각 이웃 v는 p(uv)< 확률로 전염된다.
- 서로 다른 이웃이 전염되는 확률은 독립적이다.
- 그렇기에 모든 노드들이 감염될 확률은 독립적이다.
- 모형의 모델은 최초 감염자들로부터 시작한다. 독립적 전파 모형에서는 이러한 최초 감염자들을 시드 집합이라 한다.
- 계속해서 전파하며 더 이상 새로운 감염자가 없으면 종료한다.
바이럴 마케팅과 전파 최대화 문제
바이럴 마케팅
- 소비자들로 하여금 상품에 대한 긍정적인 입소문을 내게 하는 방법
- 효과적인 바이럴 마케팅을 위해서는 소문의 시작점이 중요하다.
- 시작점에 따라 입소문이 전파되는 범위가 영향을 받기 때문.
- 소셜 인플루언서들이 높은 광고비를 받는 이유이다.
- 이들을 시드 집합이라 한다.
- 앞서 소개한 전파 모형들에서도 시드 집합이 전파 크기에 많은 영향을 미친다.
- 그래프, 전파 모형, 그리고 시드 집합의 크기가 주어졌을 때 전파를 최대화하는 시드 집합을 찾는 문제를 전파 최대화 문제라고 한다.
*전파 모형은 선형 임계치 모형, 독립 전파 모형 등 다양한 모형으로 구축할 수 있다.
전파 최대화 문제
- 전파 최대화 문제는 방대한 그래프에서 영향력 있는 시드 집합을 찾아내는 문제이다.
- 전파 최대화 문제는 너무 많은 경우의 수를 고려해야 하기에 매우 어려운 문제이다.
- 이론적으로 많은 전파 모형에 대해 전파 최대화 문제는 NP-hard 임이 증명되었다.
*NP-hard : 다항시간내에 풀 수 없는 문제
- 이로 인해 거대한 그래프에 대해 최적의 시드 집합을 찾는 것은 포기해야 하는 경우가 많다.
- 대신 휴리스틱이라 불리는 근사 알고리즘을 사용해야 한다.
정점 중심성 휴리스틱
- 휴리스틱이란 실험적으로는 잘 동작할 수 있지만 이론적으로는 정확도를 보장할 수 없는 알고리즘을 의미한다.
- 전파 최대화 문제에서 대표적인 휴리스틱으로는 정점 중심성 휴리스틱이 있다.
- 정점 중심성 휴리스틱은 시드 집합의 크기가 k개로 고정되었을 때, 정점의 중심성이 높은 순으로 k개의 정점을 선택하는 방법이다.
- 정점의 중심성은 페이지랭크 점수, 연결 중심성, 근접 중심성, 매개 중심성 등으로 측정할 수 있다.
- 정점 중심성 휴리스틱은 분명 합리적인 방법이지만 최고의 시드 집합을 찾는다는 보장이 없다.
탐욕 알고리즘
- 정점 중심성 휴리스틱 외에도 탐욕 알고리즘도 많이 사용된다.
- 탐욕 알고리즘은 시드 집합의 원소, 즉 최초 전파자를 한 번에 한 명씩 선택한다.
- 정점의 집합이 {1,2, ..., v}일 경우 구체적인 단계는 다음과 같다.
- 위의 과정에서 볼 수 있듯 탐욕 알고리즘은 최초 전파자 간의 조합의 효과를 고려하지 않는다.
- 그저 근시안적으로 최초 전파자를 선택하는 과정을 반복할 뿐이다.
- 탐욕 알고리즘의 최저 성능은 수학적으로 보장되어 있다.
- 즉, 최적의 성능은 보장할 수 없지만 어느정도의 성능은 보장한다.
- 피어세션 회의 내용
- 해야할 일
728x90
반응형
'BOOSTCAMP AI TECH > 5주차_Machine Learning with Graphs' 카테고리의 다른 글
[BOOSTCAMP AI TECH] 25일차_ GNN (0) | 2021.02.26 |
---|---|
[BOOSTCAMP AI TECH] 24일차_정점 표현 & 추천 시스템 (심화) (0) | 2021.02.25 |
[BOOSTCAMP AI TECH] 23일차_군집 탑색 & 추천 시스템 (0) | 2021.02.24 |
[BOOSTCAMP AI TECH] 21일차_그래프 이론 기초 & 그래프 패턴 (0) | 2021.02.22 |