Peer Session Badge

My assignment: PageRank

페이지랭크

  • 배경

      • 웹페이지(정점), 하이퍼링크(간선)로 구성된 방향성 있는 그래프
      • 웹페이지는 키워드 정보를 포함
    • 구글 이전의 검색엔진: 디렉토리
      • 웹을 거대한 디렉토리로 정리 시도
      • 웹페이지의 수가 증가함에 따라 카테고리의 수과 깊이가 무한정 커짐
      • 현재는 수백억 개의 웹페이지 존재
    • 구글 이전의 검색엔진: 키워드
      • 사용자가 입력한 키워드에 대해 해당 키워드를 (여러 번) 포함한 웹페이지 반환
      • 악의적 (광고성) 웹페이지에 취약
    • 구글의 페이지랭크
      • 사용자 키워드와 관련성이 높으면서, 동시에 신뢰할 수 있는 웹페이지 찾는 방법
  • 정의

    • 투표
      • 투표의 주체: 웹페이지
      • 하이퍼링크를 통해 투표
      • 웹페이지 uv로의 하이퍼링크를 포함한다면 uv에게 투표한 것
      • 들어오는 간선이 많을 수록 신뢰할 수 있음
      • 악용(인위적 조작)에 의한 효과 줄이기 위해 가중 투표
      • 가중치: 자신의 페이지랭크 점수나가는 이웃의 수
      • 페이지랭크 점수

        rj=iNin(j)ridout(i)

    • 임의 보행(random walk)
      • 웹서퍼는 현재 웹페이지에 있는 하이퍼링크 중 하나를 균일한 확률로 클릭하는 방식으로 서핑
      • pi(t): 웹서퍼가 t번째 방문한 웹페이지가 i일 확률
      • pi(t): 길이가 웹페이지 수와 같은 확률분포 벡터
      • pi(t+1)=iNin(j)pi(t)dout(i)
      • t가 무한히 커지만 p(t)는 정상 분포(stationary dist.) p에 수렴하고 p(t)=p(t+1)=p 성립
      • 정상 분포 p

        pi=iNin(j)pidout(i)

    • 투표 관점에서 정의한 페이지 랭크 점수 = 임의 보행 관점에서의 정상 분포

      관점
      투표 페이지랭크 점수 rj=iNin(j)ridout(i)
      임의 보행 정상 분포 pi=iNin(j)pidout(i)
  • 계산

    • 반복곱(power iteration)
      • 각 웹페이지 i의 페이지랭크 점수 r(0)i1웹페이지 수로 초기화
      • 다음 식으로 각 웹페이지 페이지랭크 점수를 갱신

        r(t+1)j=iNin(j)r(t)idout(i)

      • 페이지랭크 점수가 수렴하면 종료, else 계속 갱신
    • 반복곱의 문제점
      • Spider trap(들어오는 간선만 있고 나가는 간선은 없는 정점 집합) 때문에 수렴 보장 x
      • Dead end(들어오는 간선만 있고 나가는 간선은 없는 정점) 때문에 합리적 점수로 수렴 보장 x
    • 순간이동(teleport) 도입
      • 임의 보행 관점에서 웹서퍼의 행동을 다음과 같이 수정
      • 현재 웹페이지에 하이퍼링크가 없다면 임의의 웹페이지로 순간이동, 하이퍼링크가 있다면 동전 던지기
      • 동전 앞면(확률: α, damping factor, 보통 0.8)일 경우 하이퍼링크 중 하나를 균일한 확률로 선택, 뒷면일 경우 임의의 웹페이지로 순간이동
    • 수정된 반복곱

      rj=iNin(j)(αridout(i))+(1α)1|V|

      • |V|: 전체 웹페이지의 수

그래프와 전파

  • 전파 예시

    • 정보
      • 정보
      • 행동 (아이스 버킷 챌린지, 펭귄 문제)
      • 고장 (네트워크 장비), 정전
      • 질병 (코로나-19)
  • 수학적 모형화

    • 의사결정 기반 전파 모형
      • 주변 사람들의 의사결정을 고려해 각자 의사결정을 내리는 경우
      • ex. Linear threshold model
      • p 비율의 이웃이 A를 선택, 1p 비율의 이웃이 B를 선택
      • A를 선택해야할 때: apN>b(1p)N
      • 따라서 임계치 q=ba+b 를 넘을 때에 A 선택
      • 시드 집합(seed set): 처음 A를 사용하는 얼리 어답터 집합. 항상 A 고수
      • 이웃 중 A를 선택한 비율이 임계치를 넘을 경우, A 선택으로 변경하는 식으로 전파됨
    • 확률적 전파 모형
      • 질병 전파와 같이, 의사결정을 내려 선택하는 게 아닌 것의 전파 모형
      • ex. 독립 전파 모형(independent cascade model): 감염자는 계속 감염자 상태로 남아있는 것을 가정
      • 간선 (u,v)의 가중치 puv: u가 감염되었을 때 감염되지 않은 v를 감염시킬 확률
  • 바이럴 마케팅

    • 소비자로 하여금 긍정적 입소문을 효과적으로 전파시키는 방법
    • 소문의 시작점(시드 집합)에 따라 입소문이 전파되는 범위가 영향을 받음
    • 전파 최대화(influence maximization) 문제
      • 그래프, 전파 모형, 시드 집합 크기 주어짐
      • 전파를 최대화하는 시드 집합을 찾는 문제
      • 많은 전파 모형에서 NP-hard 문제
        • |V|개의 정점이 있을 때 k개로 제한된 시드 집합의 경우의 수만 해도 \binom{\vert V \vert}{k}개로 굉장히 큰 수가 됨
      • 정점의 중심성(node centrality)
        • 휴리스틱 방법
        • 정점의 중심성이 높은 순으로 k개 정점을 선택
        • 페이지랭크 점수, 연결 중심성, 근점 중심성, 매개 중심성 등을 기준으로 삼음
        • 합리적이지만, 최적 시드 집합 보장 x
      • 탐욕(greedy) 알고리즘
        • 시드 집합의 원소를 한번에 한 명씩 선택
          1. 집합 (1),(2), \dots, (\vert V \vert)를 비교해 전파를 최대화하는 시드 집합을 찾는다 \rightarrow (x)
          2. 집합 (x,1),(x,2), \dots, (x, \vert V \vert)를 비교해 전파를 최대화하는 시드 집합을 찾는다 \rightarrow (x,y)
          3. k개를 찾을 때까지 반복
        • 최초 전파자 간의 조합의 효과 고려 x
        • 최적 전파 크기의 0.632배 이상임이 수학적으로 보장되어 있음 (\geq \Big( 1 - \frac{1}{e} \Big))