인곡지λŠ₯

[Day 22] Graph - νŽ˜μ΄μ§€λž­ν¬ & μ „νŒŒ

Frank_the_Tank 2021. 2. 23. 14:30

πŸ“ PageRank

  πŸ”₯ λ°°κ²½

    - μ›Ή = Web page + Hyper Link인 λ°©ν–₯μ„± μžˆλŠ” κ·Έλž˜ν”„

μ›Ή νŽ˜μ΄μ§€λŠ” 정점에 ν•΄λ‹Ήν•˜κ³  ν•˜μ΄νΌλ§ν¬λŠ” 간선에 ν•΄λ‹Ή

    - ꡬ글 μ΄μ „μ˜ 검색 μ—”μ§„μœΌλ‘œλŠ” λ””λ ‰ν† λ¦¬λ‘œ 웹을 μ •λ¦¬ν•˜λŠ” κ²½μš°κ°€ μžˆμ—ˆμŒ

      -> μ›ΉνŽ˜μ΄μ§€ 수 증가에 따라 μΉ΄ν…Œκ³ λ¦¬μ˜ μˆ˜μ™€ κΉŠμ΄λ„ λ¬΄ν•œμ • μ»€μ§€λŠ” 문제 λ°œμƒ

    - λ‹€μŒμœΌλ‘œλŠ” ν‚€μ›Œλ“œμ— μ˜μ‘΄ν•œ 검색 엔진이 μžˆμ—ˆμŒ

      -> μ‚¬μš©μžκ°€ μž…λ ₯ν•œ ν‚€μ›Œλ“œμ— λŒ€ν•΄, ν•΄λ‹Ή ν‚€μ›Œλ“œλ₯Ό μ—¬λŸ¬ 번 ν¬ν•¨ν•œ μ›ΉνŽ˜μ΄μ§€λ₯Ό λ°˜ν™˜

      -> μ•…μ˜μ μœΌλ‘œ μ‚¬μš©ν•  κ°€λŠ₯성이 λ†’μŒ(성인 μ‚¬μ΄νŠΈμ— 'μš΄λ™'μ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό 보이지 μ•Šκ²Œ μ—¬λŸ¬ 번 ν¬ν•¨ν•˜λ©΄, 'μš΄λ™'을 κ²€μƒ‰ν–ˆμ„ 경우 ν•΄λ‹Ή 성인 μ‚¬μ΄νŠΈκ°€ 결과둜 λ‚˜μ˜¬ 수 있음)

 

    - κ΅¬κΈ€μ—μ„œλŠ” μ‚¬μš©μž ν‚€μ›Œλ“œμ™€ 관련성이 λ†’κ³  μ‹ λ’°ν•  수 μžˆλŠ” μ›ΉνŽ˜μ΄μ§€λ₯Ό μ°ΎκΈ°μœ„ν•΄ λ…Έλ ₯ν–ˆμŒ

 

  πŸ”₯ μ •μ˜(νˆ¬ν‘œ, μž„μ˜ 보행)

    - νˆ¬ν‘œ κ΄€μ μ—μ„œ λ³Έ νŽ˜μ΄μ§€λž­ν¬κ°€ μžˆλ‹€.

      -> νˆ¬ν‘œ(μ›ΉνŽ˜μ΄μ§€κ°€ ν•˜μ΄νΌλ§ν¬λ₯Ό 톡해 νˆ¬ν‘œ)λ₯Ό 톡해 μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μ›ΉνŽ˜μ΄μ§€λ₯Ό 찾음

      -> λ“€μ–΄μ˜€λŠ” 간선이 λ§Žμ„μˆ˜λ‘ 신뒰도가 높아짐

        => ν•˜μ§€λ§Œ μ΄λŠ” μ•…μš©μ˜ μ†Œμ§€κ°€ 있음

        => μ–΄λ–»κ²Œ 막을 수 μžˆμ„κΉŒ? κ°€μ€‘μΉ˜

 

    - μž„μ˜ 보행(Random Walk) κ΄€μ μ—μ„œ μ •μ˜

      -> μž„μ˜ 보행을 톡해 웹을 μ„œν•‘ν•˜λŠ” μ›Ήμ„œνΌλ₯Ό κ°€μ •: μ›Ήμ„œνΌλŠ” ν˜„μž¬ pageμ—μ„œ ν•˜μ΄νΌλ§ν¬λ₯Ό κ· μΌν•œ ν™•λ₯ λ‘œ 클릭

      -> μ›Ήμ„œνΌκ°€ t번째 λ°©λ¬Έν•œ μ›ΉνŽ˜μ΄μ§€κ°€ μ›ν•˜λŠ” iνŽ˜μ΄μ§€μΌ ν™•λ₯ μ„ p_i(t)라고 ν•œλ‹€λ©΄ p(t)λŠ” μ›ΉνŽ˜μ΄μ§€ μˆ˜μ™€ 같은 ν™•λ₯ λΆ„포 벑터

     -> κ·Έλ ‡κ²Œ λœλ‹€λ©΄ μ•„λž˜ 식이 성립

      -> μ›Ήμ„œνΌκ°€ 이 과정을 λ¬΄ν•œνžˆ λ°˜λ³΅ν•˜κ³  λ‚˜λ©΄(tκ°€ λ¬΄ν•œλŒ€λ‘œκ°€λ©΄) ν™•λ₯  λΆ„ν¬λŠ” p(t)에 수렴(즉, p(t) = p(t+1) = p)

        => μˆ˜λ ΄ν•œ pλ₯Ό 정상 뢄포(Stationary Distribution)이라고 함.

        => μ•„λž˜μ™€ 같이 식을 λ³€κ²½ν•  수 있음

    - νˆ¬ν‘œμ˜ κ΄€μ μ—μ„œλ‚˜ μž„μ˜ λ³΄ν–‰κ΄€μ μ—μ„œλ‚˜ κ²°κ΅­ 같은 식이 λ„μΆœλœ λ‹€λŠ” 것을 μ•Œ 수 있음.

 

  πŸ”₯ 계산

    - 반볡곱(Power Iteration)을 μ‚¬μš©

 

    - ν•˜μ§€λ§Œ 반볡곱이 항상 μˆ˜λ ΄ν•˜λŠ” 것은 μ•„λ‹ˆλ‹€!

      -> λ“€μ–΄μ˜€λŠ” 간섭은 μžˆμ§€λ§Œ λ‚˜κ°€λŠ” 간선이 μ—†λŠ” μŠ€νŒŒμ΄λ” 트랩(Spider trap)μ—μ„œ λ¬Έμ œκ°€ λ°œμƒ

 

    - λ˜ν•œ 반볡곱이 '합리적인' 점수둜 μˆ˜λ ΄ν•˜λŠ” 것을 보μž₯ν•˜μ§€ μ•ŠλŠ”λ‹€!

      -> λ“€μ–΄μ˜€λŠ” 간선은 μžˆμ§€λ§Œ λ‚˜κ°€λŠ” 간선이 μ—†λŠ” 막닀λ₯Έ 정점(Dead End)μ—μ„œ λ¬Έμ œκ°€ λ°œμƒ

 

      => μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μˆœκ°„μ΄λ™(Teleport)을 λ„μž…

 

    - μž„μ˜ 보행 κ΄€μ μ—μ„œ 보게되면 μ•„λž˜μ™€ κ°™λ‹€.

αλ₯Ό 감폭 λΉ„μœ¨(Damping Factor)이라고 λΆ€λ₯΄λ©° 보톡 0.8정도λ₯Ό μ‚¬μš©

      -> μ•„λž˜μ™€ 같은 식이 μˆ˜ν–‰λ¨.

 

πŸ“ μ „νŒŒ

  πŸ”₯ μ „νŒŒμ˜ μ˜ˆμ‹œ

    - 정보, 행동, κ³ μž₯, μ§ˆλ³‘ 등이 쑴재

      -> μ „νŒŒμ˜ 과정을 μ²΄κ³„μ μœΌλ‘œ μ΄ν•΄ν•˜κ³  λŒ€μ²˜ν•˜κΈ° μœ„ν•΄μ„œλŠ” μˆ˜ν•™μ  λͺ¨ν˜•ν™”κ°€ ν•„μš”

        => μ˜μ‚¬ κ²°μ • 기반, ν™•λ₯ μ  μ „νŒŒ λͺ¨ν˜• 등이 쑴재

 

  πŸ”₯ μ˜μ‚¬κ²°μ • 기반의 μ „νŒŒ λͺ¨ν˜•

    - μ£Όλ³€ μ‚¬λžŒλ“€μ˜ μ˜μ‚¬κ²°μ •μ„ κ³ λ €ν•΄ 각자 μ˜μ‚¬κ²°μ •μ„ λ‚΄λ¦¬λŠ” κ²½μš°μ— μ‚¬μš©(μ„ ν˜• μž„κ³„μΉ˜ λͺ¨ν˜•이 쑴재)

    - μ„ ν˜• μž„κ³„μΉ˜ λͺ¨ν˜•(Linear Threshold Model)

      -> 친ꡬ κ΄€κ³„μ˜ 두 μ‚¬λžŒ u, vκ°€ μžˆμ„ 경우, A기술과 B기술 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•΄μ•Όν•œλ‹€.

      -> Aλ₯Ό λ‘˜λ‹€ κ³ λ₯Ό 경우 a만큼 λ§Œμ‘±λ„κ°€ 있고, B의 경우 b만큼 λ§Œμ‘±λ„κ°€ μžˆλ‹€. ν•˜μ§€λ§Œ λ‹€λ₯Ό 경우 0이닀.

    - μœ„μ˜ κ²½μš°μ—λŠ” μ—„μ²­λ‚˜κ²Œ μž‘μ€ λ„€νŠΈμ›Œν¬λ₯Ό λ³΄μ•˜λ‹€λ©΄ μ–΄λ§ˆμ–΄λ§ˆν•˜κ²Œ 큰 μ†Œμ…œ λ„€νŠΈμ›Œν¬λ₯Ό 보자.

 - λ§Œμ•½ 2a > 3b라면 Aλ₯Ό μ„ νƒν•˜κ³  λ‚˜λ¨Έμ§€μ˜ κ²½μš°λŠ” Bλ₯Ό μ„ νƒν•œλ‹€κ³  ν•˜μž.

- κ·Έ 경우 p의 λΉ„μœ¨μ˜ 이웃이 Aλ₯Ό μ„ νƒν•˜κ³  (1-p)의 λΉ„μœ¨μ΄ Bλ₯Ό μ„ νƒν–ˆλ‹€κ³  ν•  수 μžˆλ‹€. λ”°λΌμ„œ Aλ₯Ό μ„ νƒν•˜κ²Œ 될 κ²½μš°λŠ” pa > (1-p)bκ°€ 되고 이λ₯Ό μ •λ¦¬ν•˜λ©΄ μ•„λž˜μ™€ κ°™λ‹€.

 p > b/(a+b)   ==> μ—¬κΈ°μ„œ b/(a+b)λ₯Ό μž„κ³„μΉ˜ q라고 ν•œλ‹€.

 

 

  πŸ”₯ ν™•λ₯ μ  μ „νŒŒ λͺ¨ν˜•

    - COVID-19와 같은 μ˜μ‚¬ 바탕이 μ•„λ‹Œ ν™•λ₯ μ μœΌλ‘œ 감염이 λ˜λŠ” 것에 μ‚¬μš©λ˜λŠ” λͺ¨λΈ

      -> 독립 μ „νŒŒ λͺ¨ν˜•(Independent Cascade Model)

    - 독립 μ „νŒŒ λͺ¨ν˜•

      -> λ°©ν–₯성이 있고 κ°€μ€‘μΉ˜κ°€ μžˆλŠ” κ·Έλž˜ν”„

      -> κ°„μ„ (u, v)의 κ°€μ€‘μΉ˜ P_u,vλŠ” vκ°€ κ°μ—Όλ˜μ§€ μ•Šκ³  uκ°€ κ°μ—Όλ˜μ–΄ μžˆμ„ λ•Œ, uμ—κ²Œμ„œ vκ°€ 감염될 ν™•λ₯ μ„ μ˜ˆμ‹œλ‘œ λ“€ 수 있음(단, κ°μ—ΌμžλŠ” 회볡이 μ•ˆλœλ‹€λŠ” μ „μ œ)

      => νšŒλ³΅μ„ κ°€μ •ν•˜λŠ” SIS, SIRλ“±μ˜ λͺ¨ν˜•이 쑴재

 

  πŸ”₯ λ°”μ΄λŸ΄ λ§ˆμΌ€νŒ…κ³Ό μ „νŒŒ μ΅œλŒ€ν™” 문제

    - λ°”μ΄λŸ΄ λ§ˆμΌ€νŒ…: μ†ŒλΉ„μžλ“€λ‘œ ν•˜μ—¬κΈˆ μƒν’ˆμ— 긍정적인 μž…μ†Œλ¬Έμ„ λ‚΄κ²Œν•˜λŠ” 기법(ex. μ†Œμ…œ μΈν”Œλ£¨μ–Έμ„œμ˜ κ΄‘κ³ )

      -> λŒ€ν‘œμ μœΌλ‘œ 'λ―Έλ“€ν„΄ 효과(Kate Middleton Effect)'κ°€ 있음

 

    - μ „νŒŒ μ΅œλŒ€ν™” 문제(Influence Maximization Problem)

      -> μ‹œλ“œ μ§‘ν•©(Seed set)을 선택할 수 μžˆμ„ λ•Œ, κ·Έλž˜ν”„, μ „νŒŒλͺ¨ν˜•, μ‹œλ“œ μ§‘ν•©μ˜ 크기λ₯Ό κ³ λ €ν•΄ μ „νŒŒλ₯Ό μ΅œλŒ€ν™” ν•˜λŠ” μ‹œλ“œμ§‘ν•©μ„ μ°ΎλŠ” 문제. 즉, 영ν–₯λ ₯ μžˆλŠ” μ‹œλ“œ 집합을 μ°Ύμ•„λ‚΄λŠ” 문제

      -> κ·Έλž˜ν”„μ— |v|개의 정점이 μžˆμ„ 경우, μ‹œλ“œ μ§‘ν•©μ˜ 크기λ₯Ό K둜 μ œν•œν•˜λ”λΌλ„ 경우의 μˆ˜λŠ” |v| combination k이닀.

        => 정점: 10,000개, k: 10이라고 ν–ˆμ„λ•Œμ—λ„ 경우의 μˆ˜λŠ” 2.7x10^34κ°œλ‚˜ 됨 => NP-hardμž„(거의 λΆˆκ°€λŠ₯)

 

    - λ”°λΌμ„œ 근사적(νœ΄λ¦¬μŠ€ν‹±)으둜 μ ‘κ·Ό

      -> μ •μ μ˜ 쀑심성(Node Centrality)을 μ‚¬μš©(νŽ˜μ΄μ§€ 랭크 점수, μ—°κ²° 쀑심성, κ·Όμ ‘ 쀑심성, 맀개 쀑심성 등이 있음)

      -> ν•©λ¦¬μ μ΄μ§€λ§Œ, 졜고의 μ‹œλ“œ 집합을 μ°ΎλŠ”λ‹€λŠ” 보μž₯은 μ—†μŒ

 

  πŸ”₯ νƒμš• μ•Œκ³ λ¦¬μ¦˜(Greedy Algorithm)

    - μ‹œλ“œ μ§‘ν•©μ˜ μ›μ†Œλ₯Ό ν•œλ²ˆμ— ν•˜λ‚˜μ”© μ„ νƒν•˜μ—¬ λͺ©ν‘œν•˜λŠ” 크기의 μ‹œλ“œ 집합에 도달할 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜

    - ν•΄λ‹Ή μ•Œκ³ λ¦¬μ¦˜μ˜ 경우 μ •ν™•λ„λŠ” μˆ˜ν•™μ μœΌλ‘œ λ‹€μŒκ³Ό κ°™λ‹€.