Search

[CS224W] Lecture 4

Person
Title
Link Analysis: PageRank, RWR, MF
๋น„๊ณ 

4.1 PageRank

์›น์€ ๊ทธ๋ž˜ํ”„๋ผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›นํŽ˜์ด์ง€๋Š” node, ํ•˜์ดํผ๋งํฌ๋Š” edges๋ผ๊ณ  ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์›น์€ ํ•˜์ดํผ๋งํฌ๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€๊ฐ€ ์„œ๋กœ ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— directed graph์ž…๋‹ˆ๋‹ค.
๋ชจ๋“  ์›นํŽ˜์ด์ง€๊ฐ€ ์ค‘์š”ํ•œ ํŽ˜์ด์ง€๋Š” ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€๋ผ๋ฆฌ ์ˆœ์œ„๋ฅผ ๋งค๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด link analysis๋กœ node๋“ค์˜ ์ค‘์š”๋„๋ฅผ ์ธก์ •ํ•œ ๋ฐฉ๋ฒ•์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
1.
PageRank
2.
Personalized PageRank (PPR)
3.
Random Walk with Restarts
PageRank๋Š” ๊ฐ๊ฐ์˜ source node๋“ค์˜ rank(importance) ๋ฅผ out-link ์˜ ๊ฐœ์ˆ˜์— ๋‚˜๋ˆˆ ๊ฐ’๋“ค์„ link์˜ rank๋กœ ๋‘๊ณ , target node์— ๋Œ€ํ•ด์„œ๋Š” ์ด rank๋“ค์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.
did_i ๊ฐ€ ii ์˜ out-link ๊ฐœ์ˆ˜, rir_i ๊ฐ€ node ii ์˜ rank ์ผ ๋•Œ, node jj ์˜ rank๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
rj=โˆ‘iโ†’jridir_j = \sum_{i \rightarrow j}^{} \frac{r_i}{d_i}
did_i ๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ€์ง€๋Š” ํ–‰๋ ฌ์ธ MM (column stochastic matrix)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
node i์—์„œ node j๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด Mji=1diM_{ji} = \frac{1}{d_i} ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด๋•Œ Mโ‹…rM\cdot r ์€ pagerank๋ฅผ ํ•œ ๋ฒˆ ๊ณ„์‚ฐํ•œ ๊ฐ’์ด๋ฉฐ, ๊ฐ๊ฐ์˜ ์›์†Œ๊ฐ€ ๋‹ค์‹œ rr๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ, r=Mโ‹…rr = M \cdot r ์ด๋ž€ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ 1โ‹…r=Mโ‹…r1\cdot r = M \cdot r ์ด๋ฏ€๋กœ (ฮปโ‹…c=Aโ‹…c)\lambda \cdot c = A \cdot c) rr์€ MM ์— ๋Œ€ํ•œ principle eigen vector (eigen value๊ฐ€ 1์ธ)๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.2 PageRank : How to Solve?

rr๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ power iteration method๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฒ˜์Œ์— ๋ชจ๋“  node๋“ค์„ ๋˜‘๊ฐ™์€ ํ™•๋ฅ ๋กœ initializeํ•˜๊ณ  ๊ณ„์† MM๋ฅผ ๊ณฑํ•˜์—ฌ rtr^t ๊ฐ€ ์ˆ˜๋ ดํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
power iteration์„ ํ†ตํ•ด ryr_y, rar_a, rmr_m ์„ ๊ตฌํ•œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณตํ•ด์„œ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ ์ˆ˜๋ ดํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์œผ๋ฉฐ, ์ˆ˜๋ ดํ–ˆ์„ ๋•Œ rank ๊ฐ’๋“ค์ด ์›ํ•˜๋Š” ๊ฐ’์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Dead ends์™€ Spider traps ๋ผ๋Š” ๋‘๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
Dead end์˜ ๊ฒฝ์šฐ out-link๊ฐ€ ์—†๋Š” node์— ๋Œ€ํ•ด์„œ iteration์„ ๋ฐ˜๋ณตํ•˜๋ฉด rank๊ฐ€ 0์œผ๋กœ ์ˆ˜๋ ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Spider trap์˜ ๊ฒฝ์šฐ out-link๊ฐ€ ์ž๊ธฐ์ž์‹ ์ด๋ฏ€๋กœ rank๊ฐ€ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์œ ์ง€๋˜๊ฑฐ๋‚˜ ๊ณ„์† ์ปค์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Dead Ends์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” dead-ends์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์ผ์ • ํ™•๋ฅ ์„ ํ†ตํ•ด ๋‹ค๋ฅธ node๋กœ teleport ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
spider traps์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์—ญ์‹œ ๊ฐ node๋“ค์— ๋Œ€ํ•ด์„œ ํŠน์ • ํ™•๋ฅ ๋กœ random jump๋ฅผ ํ•˜์—ฌ ๋‹ค๋ฅธ node๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Random teleport์„ ํ†ตํ•ด spider trap ๋˜๋Š” dead end ๋•Œ๋ฌธ์— ์›ํ•˜์ง€ ์•Š๋Š” rank๋กœ ์ˆ˜๋ ดํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹์œผ๋กœ์จ random teleport๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉด ์œ„์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์•ž์˜ ํ•ญ์€ random walk, ๋’ค์ชฝ ํ•ญ์€ random jump๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๋˜‘๊ฐ™์€ ํ™•๋ฅ ๋กœ random jump๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ bias ๋œ ํ™•๋ฅ ๋กœ random jump๋ฅผ ํ•œ๋‹ค๋ฉด, ์ด๋ฅผ Personalized PageRank๋ผ ํ•ฉ๋‹ˆ๋‹ค.

4.3 Random Walk with Restarts

Bipartite graph์—์„œ ๋น„์Šทํ•œ interaction์„ ๊ฐ€์ง„ item์„ ์ถ”์ฒœํ•  ๋•Œ random walk ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์–ด๋–ค Query node Q๊ฐ€ ์žˆ์„ ๋•Œ, ์ด node์—์„œ random walk๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
Random walk ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ query node (item) ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ random user node๋ฅผ ๊ฑฐ์ณ random item node์— ๋ฐฉ๋ฌธํ•˜๋ฉด, ํ•ด๋‹น item node์˜ ๋ฐฉ๋ฌธ ํšŸ์ˆ˜๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ํŠน์ •ํ™•๋ฅ ๋กœ query node item์—์„œ ๋‹ค์‹œ random walk๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ๊ฐ item node์— ๋Œ€ํ•ด์„œ ๋ฐฉ๋ฌธ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด Query node Q์™€ ๊ฐ€์žฅ ๋น„์Šทํ•œ item์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.4 Matrix Factorization and Node Embeddings

node embedding์„ ๋งŒ๋“ค ๋•Œ ๋งŒ์•ฝ ii ์™€ jj node๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด Aij=1A_{ij} = 1 ์ด๊ณ  ziTโ‹…zj=1z_{i}^T \cdot z_{j} = 1 ๊ฐ€ ๋˜๋„๋ก zi,zjz_i , z_j ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด์ƒ์ ์œผ๋กœ๋Š” A=ZTZA = Z^TZ ์ด๊ณ , objective function์„ ์œ„์™€ ๊ฐ™์ด ์„ธ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
DeepWalk๊ณผ Node2Vec ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด์„œ๋„ node similarity๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ†’ ๋ฌด์Šจ ๋‚ด์šฉ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹คโ€ฆ
matrix factorization๊ณผ random walk๋ฅผ ํ†ตํ•ด node embedding์„ ํ•˜๊ฒŒ ๋˜๋ฉด ์ƒ๊ธฐ๋Š” ์„ธ๊ฐ€์ง€ ํ•œ๊ณ„์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
1.
์ƒˆ๋กญ๊ฒŒ node๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ๊ทธ๋ž˜ํ”„ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ํ•™์Šตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2.
๊ทธ๋ž˜ํ”„์˜ structural similarity๋ฅผ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
3.
node, edge์˜ feature๋“ค์„ ์ถ”๊ฐ€๋กœ ์ด์šฉํ•ด ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
a.
protein-protein interaction graph์—์„œ protein property๋ฅผ feature vector๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ