[Graph 3강] 검색 엔진에서는 그래프를 어떻게 활용할까?
페이지랭크의 배경
웹은 웹페이지와 하이퍼링크로 구성된 거대한 방향성이 있는 그래프이다. 웹페이지는 정점에 해당하고, 하이퍼링크는 간선에 해당한다.
구글 이전에는 이런 웹을 거대한 디렉토리로 정리하려는 시도가 있었다. 이는, 웹페이지의 증가에 따라 카테고리의 수와 깊이가 무한정 커지는 문제가 있었다. 또한, 카테고리의 구분이 모호한 경우가 많아 저장이나 검색에 어려움이 존재했다.
검색에 있어서는, 키워드에 의존한 검색 방법을 사용했었다. 웹페이지 내에 해당 키워드의 빈도를 통해 검색을 하는 방법을 의미한다. 이는, 악의적인 페이지 구성 등에 의해 적절한 검색이 방해될 수 있다. 예를 들면, '축구'라는 키워드를 다수 포함한 성인 사이트는 키워드 검색에 의해 검색될 것이다.
페이지랭크의 정의
페이지랭크는 관련성이 높고 신뢰할 수 있는 웹페이지를 검색할 수 있도록 제시된 알고리즘이다. 페이지랭크의 핵심 아이디어는 투표이다. 투표의 주체는 웹페이지이며, 하이퍼 링크를 통해 투표를 진행한다. 하이퍼 링크를 포함한다는 의미는, 관련성이 높고 신뢰할 수 있다는 의미로 이해될 수 있기 때문이다.
단순히 투표의 수로만 계산을 할 경우, 문제가 생길 수 있다. 의도적으로 한 페이지의 링크를 포함한 여러 웹페이지를 개설하는 등으로 웹페이지를 노출시킬 수 있기 때문이다.
이러한 악용을 막기 위해서 가중 투표의 개념을 도입한다. 신뢰할 수 있는 페이지의 투표에 가중치를 두는 방식으로, 신뢰성과 관련성 모두를 확보하는 것이다.
투표의 관점으로 보았을 때, 페이지랭크는 다음과 같이 해석할 수 있다. 특정 페이지 는 관련성이 높은 페이지에 대해서 자신의 점수를 나누어 투표한다. 특정 페이지 는 다른 페이지들로부터 투표받은 점수를 갖는다. 즉, 페이지랭크의 점수는 와 같다.
임의 보행의 관점으로도 동일하게 정의할 수 있다. 한 사용자가 시점에 방문한 웹페이지가 일 확률을 라고 하면, 다음번에 로 갈 확률은 가 된다. 이와 같은 과정을 무한히 반복하면, 가 된다. 이렇게 수렴한 확률 는 정상 분포이며, 최종적으로 정리하면 위와 동일한 형태의 수식이 된다.
즉, 투표 관점이든 임의 보행 관점이든 동일한 해석의 결과가 나오는 것을 알 수 있다.
페이지랭크의 계산
페이지랭크 점수는 반봅곱을 사용해 계산하게 된다. 이는 아래와 같은 순서로 이루어진다.
- 각 웹페이지 의 Score 를 모두 으로 초기화한다. (num은 웹페이지의 갯수)
- 식을 이용해 각 웹페이지의 Score를 갱신한다.
- 페이지랭크 Score가 수렴했을 경우 종료하고, 아닌 경우 2번으로 돌아간다.
위와 같이 페이지랭크를 정의할 경우, 반복곱이 수렴하지 않는 문제가 생길 수 있다. 들어오는 간선은 있지만 나가는 간선이 없는 정점 집합이 있는 경우이며, 이를 스파이더 트랩이라고 한다.
또한, 합리적이지 않은 점수로 수렴될 가능성이 있다. 들어오는 간선은 있지만 나가는 간선이 없는 경우이며, 이를 막다른 정점의 문제라고 한다.
위와 같은 문제를 방지하기 위해서, Teleport개념을 도입한다. 규칙은 다음 사진과 같다.
수식적으로는 다음과 같이 계산된다.
이를 통해서, 위에서 제시된 문제를 해결할 수 있다.
실습 코드
[Graph 4강] 그래프를 바이럴 마케팅에 어떻게 활용할까?
그래프를 통한 전파의 예시
전파란 특정한 정보나 증상 등이 여러 정점에 동일하게 나타나도록 하는 현상을 의미한다. 예시를 통해 알아보자.
SNS를 통해서 정보나 행동이 전파될 수 있다.
네트워크 상에서는 일부 장비의 고장으로, 다른 장비에 과부하를 초래하고 고장을 전파할 수 있다.
실제 사회에서도 질병과 같은 증상이 전파될 수 있다.
이와 같은 전파를 체계적으로 이해하고 대처하기 위해서 수학적 모형화가 필요하다.
의사결정 기반의 전파 모형
의사결정 모형은 주변 노드의 의사결정을 고려하여 각자의 의사결정을 내리는 형태를 모델링한다. 가장 간단한 형태의 의사결정 모델인 선형 임계치 모형을 알아보자.
노드 와 가 연결되어 있을 때, 동일한 선택을 했을 경우에만 편익이 발생한다. 빨간색을 선택할 경우 a만큼, 파란색을 선택할 경우 b만큼의 편익이 발생한다고 가정해보자.
노드 가 여러 이웃을 가지는 경우에는 각각으로부터 얻는 편익을 계산하게 된다.
노드 를 기준으로, a를 선택한 이웃의 비율을 로 정의하면, b를 선택한 이웃의 비율은 가 된다. 일반화하여 표현했을 때, 가 얻을 수 있는 편익은 혹은 이다. 가 a를 선택할 합리적인 조건은 인 것이다. 이를 정리하면 인 경우에, a를 선택한다고 할 수 있다. 이 를 임계치라고 칭한다.
선형 임계치 모형에서의 전파를 알아보자. 주변과 관계 없이 a를 택하는 시드집합이 있다고 가정하고, 임계치는 55%를 가정할 경우 모형의 전파는 다음과 같다.
확률적 전파 모형
질병과 같은 전파 과정은 의사결정과 무관하게 이루어진다. 이는 확률적 과정으로 위와는 다른 모델링이 필요하다. 확률적 전파 모형 중 가장 간단한 형태의 독립 전파 모형에 대해 알아보자.
독립 전파 모형은 노드 가 감염되었을 때, 를 감염시킬 확률을 간선의 가중치 형태로 표현한다. 즉, 각 정점 가 감염될 때마다 각 이웃 는 확률로 전염된다. 최초 감염자에 해당하는 시드 집합으로부터 전염이 시작되고, 전염된 노드로부터 다시 전염이 일어나는 형태로 반복 수행된다.
이때, 서로 다른 이웃의 전염 확률은 각각 독립적이라고 가정한다. 와 는 서로 독립적이며, 와 는 독립적이라고 가정하는 것이다. 또한, 감염자는 지속적으로 감염상태임을 가정한다. 감염자의 회복까지 고려한 SIS나 SIR과 같은 다른 전파모형도 존재한다.
바이럴 마케팅과 전파 최대화 문제
바이럴 마케팅이란, 상품에 대한 소비자들의 긍정적 소문을 기대하는 마케팅 기법이다. 바이럴 마케팅은 이 소문의 시작점에 큰 영향을 받기 때문에, 어디서부터 마케팅을 시작할지에 큰 관심을 가진다.
앞서 의사결정 모형에서 살펴보았듯, 2개의 시드집합으로부터 총 9개의 노드가 변경되는 것을 볼 수 있었다. 하지만, 다른 시드집합을 설정할 경우 완전히 다른 결과를 얻을 수 있다.
위와 같이 그래프, 전파 모형, 시드 집합의 크기가 주어졌을 때 전파를 가장 크게 만드는 문제를 전파 최대화 문제라고 부른다. 전파 최대화 문제를 해결할 가장 기본적인 아이디어는 모든 경우의 수를 계산하는 것이다. 하지만, 이와 같은 모든 경우의 수 계산은 Np-hard의 문제이다. 예를 들어, 정점이 10000개, 시드 집합이 10개인 경우만 고려하더라도, 으로 매우 큰 경우의 수가 되는 것을 알 수 있다.
모든 경우의 수를 계산하는 대신, 정점 중심성을 이용할 수 있다. 즉, 시드 집합의 크기가 로 고정되어 있을 때, 정점의 중심성이 높은 순으로 개를 고르는 간단한 방법이다. 정점 중심성의 기준으로 사용할 수 있는 것으로는 페이지랭크 점수, 연결 중심성, 근접 중심성, 매개 중심성 등이 있다. 간단한 방법인만큼, 최고의 시드 집합을 찾는다는 보장은 없다.
탐욕 알고리즘을 이용해 조금 더 안정적으로 문제를 해결할 수 있다. 탐욕 알고리즘은 다음과 같이 동작한다.
탐욕 알고리즘의 장점은, 독립 전파 모형의 경우 최저 성능이 수학적으로 보장되어 있다.
실습 코드
Reference
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[U] Day 24 - 정점 표현 & 추천시스템 (심화) (0) | 2021.03.26 |
---|---|
[U] Day 23 - 군집 탐색 & 추천시스템 (기초) (0) | 2021.03.26 |
[U] Day 21 - 그래프 이론 기초 & 그래프 패턴 (0) | 2021.03.26 |
[U] Day 20 - NLP V (0) | 2021.03.26 |
[U] Day 19 - NLP IV (0) | 2021.03.26 |
Uploaded by Notion2Tistory v1.1.0