[Graph] 3์ฅ. Graph Node Embedding Methods
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/Graph-Node-Embedding-Methods
1. ๊ทธ๋ํ ๋ ธ๋ ์๋ฒ ๋ฉ์ ํ์์ฑ
๊ทธ๋ํ ๋ ธ๋ ์๋ฒ ๋ฉ
์ ๊ทธ๋ํ์ ๊ฐ ๋ ธ๋๋ฅผ ์ ์ฐจ์ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ๋งคํํ๋ ๊ณผ์ ์ ๋๋ค.- ์ด๋ ๊ทธ๋ํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๊ณ ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
- ์ฌ๊ธฐ์ ์ค์ํ ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ด๋ค ์ ๋ณด(WHAT)๋ฅผ ์ฐ๋ฆฌ๋ ๋ณด์กด(preserve, embed)ํ ๊ฒ์ธ๊ฐ?
- ์ด๋ป๊ฒ ์ ๋ณด(HOW)๋ฅผ ์ ๋ณด๋ฅผ ๋ณด์กดํ ๊ฒ์ธ๊ฐ?
- ์์:
- ์์ ๋คํธ์ํฌ์์ ๊ฐ ์ฌ์ฉ์๋ฅผ 100์ฐจ์์ ๋ฒกํฐ๋ก ํํํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
- ์ด ๋ฒกํฐ๋ ์ฌ์ฉ์์ ํน์ฑ(๋์ด, ๊ด์ฌ์ฌ ๋ฑ)๊ณผ ๋คํธ์ํฌ ๋ด ์์น(์น๊ตฌ ๊ด๊ณ, ์ปค๋ฎค๋ํฐ ๋ฑ)๋ฅผ ๋ชจ๋ ํฌํจํ ์ ์์ต๋๋ค.
2. ์๋ฒ ๋ฉ ๊ณผ์
- ์๋ฒ ๋ฉ ๊ณผ์ ์ ํฌ๊ฒ ๋ค ๊ฐ์ง ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ง๋๋ค:
- ๋งคํ ํจ์: ๋ ธ๋๋ฅผ ๋ฒกํฐ๋ก ๋ณํํฉ๋๋ค.
- ์ ๋ณด ์ถ์ถ๊ธฐ: ๊ทธ๋ํ์์ ๋ณด์กดํ๊ณ ์ ํ๋ ํต์ฌ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
- ์ ๋ณด ์ฌ๊ตฌ์ฑ๊ธฐ: ์๋ฒ ๋ฉ์ผ๋ก๋ถํฐ ์๋ ์ ๋ณด๋ฅผ ์ฌ๊ตฌ์ฑํฉ๋๋ค.
- ๋ชฉ์ ํจ์: ์ถ์ถ๋ ์ ๋ณด์ ์ฌ๊ตฌ์ฑ๋ ์ ๋ณด์ ์ ์ฌ๋๋ฅผ ์ต๋ํํฉ๋๋ค.
3. ๋ณํ์ (Transductive) vs ๊ท๋ฉ์ (Inductive) ๋ฐฉ๋ฒ
-
๋ณํ์ (Transductive) ๋ฐฉ๋ฒ
- ์ ์ :
- ํน์ ๋ฐ์ดํฐ์ ์ ๋ํด ์ง์ ์ ์ผ๋ก ์์ธก์ ์ํํ๋ ๋ฐฉ์์ ๋๋ค. ์๋ก์ด ๋ฐ์ดํฐ์ ๋ํ ์ผ๋ฐํ๋ฅผ ๋ชฉํ๋ก ํ์ง ์์ต๋๋ค.
- ๋ณํ์ ๋ฐฉ๋ฒ์ ํ์ต ์์ ์ ๊ทธ๋ํ์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์๊ณ ์์ด์ผ ํ๋ฉฐ, ๋ชจ๋ ๋ ธ๋(ํ์ต์ ์ฌ์ฉ๋์ง ์์ ๋ ธ๋ ํฌํจ)์ ๋ํ ์๋ฒ ๋ฉ์ ํ ๋ฒ์ ํ์ตํฉ๋๋ค.
- ํน์ง
- ์ ์ฒด ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ํ์ตํฉ๋๋ค.
- ํ์ต ์ ๋ณด์ง ์์ ์๋ก์ด ๋ ธ๋์ ๋ํด ์ง์ ์ ์ผ๋ก ์๋ฒ ๋ฉ์ ์์ฑํ ์ ์์ต๋๋ค.
- ๊ทธ๋ํ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ ์ฒด ๋ชจ๋ธ์ ๋ค์ ํ์ตํด์ผ ํฉ๋๋ค.
- ์์
- ์์
๋คํธ์ํฌ์์ 1000๋ช
์ ์ฌ์ฉ์์ ๋ํ ์น๊ตฌ ์ถ์ฒ ์์คํ
์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค.
- ๋ณํ์ ๋ฐฉ๋ฒ์ 1000๋ช ์ ์ฒด์ ๊ด๊ณ๋ฅผ ํ ๋ฒ์ ํ์ตํ์ฌ ๊ฐ ์ฌ์ฉ์์ ์๋ฒ ๋ฉ์ ์์ฑํฉ๋๋ค.
- ์๋ก์ด ์ฌ์ฉ์๊ฐ ๊ฐ์ ํ๋ฉด, 1001๋ช ์ ๋ํด ์ฒ์๋ถํฐ ๋ค์ ํ์ตํด์ผ ํฉ๋๋ค.
- ์์
๋คํธ์ํฌ์์ 1000๋ช
์ ์ฌ์ฉ์์ ๋ํ ์น๊ตฌ ์ถ์ฒ ์์คํ
์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค.
- ์ฅ๋จ์
- ์ฅ์ : ์ ์ฒด ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๋ฏ๋ก ๋ณต์กํ ๊ด๊ณ๋ฅผ ์ ํฌ์ฐฉํ ์ ์์ต๋๋ค.
- ๋จ์ : ์๋ก์ด ๋ ธ๋ ์ถ๊ฐ ์ ๊ณ์ฐ ๋น์ฉ์ด ๋๊ณ , ๋์ ๊ทธ๋ํ์ ์ ์ฉํ๊ธฐ ์ด๋ ต์ต๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ:
- DeepWalk, Node2Vec
- ์ ์ :
-
๊ท๋ฉ์ (Inductive) ๋ฐฉ๋ฒ
- ์ ์
- ์ผ๋ฐ์ ์ธ ๊ท์น์ด๋ ๋ชจ๋ธ์ ํ์ตํ์ฌ ์๋ก์ด, ๋ณด์ง ์์ ๋ฐ์ดํฐ์ ์ ์ฉํ๋ ๋ฐฉ์์ ๋๋ค.
- ๊ท๋ฉ์ ๋ฐฉ๋ฒ์ ๋ ธ๋์ ํน์ฑ๊ณผ ์ง์ญ์ ์ด์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ๋ฉ์ ์์ฑํ๋ ๊ท์น์ ํ์ตํฉ๋๋ค. ์ด ๊ท์น์ ์๋ก์ด ๋ ธ๋์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
- ํน์ง
- ๋ ธ๋์ ํน์ฑ๊ณผ ์ง์ญ์ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ํ์ตํฉ๋๋ค.
- ํ์ต ์ ๋ณด์ง ์์ ์๋ก์ด ๋ ธ๋์ ๋ํด์๋ ์๋ฒ ๋ฉ์ ์์ฑํ ์ ์์ต๋๋ค.
- ๊ทธ๋ํ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ๋ชจ๋ธ์ ๋ค์ ํ์ตํ ํ์๊ฐ ์์ต๋๋ค.
- ์์
- ๋ง์ฐฌ๊ฐ์ง๋ก, ์์
๋คํธ์ํฌ์์ 1000๋ช
์ ์ฌ์ฉ์์ ๋ํ ์น๊ตฌ ์ถ์ฒ ์์คํ
์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค.
- ๊ท๋ฉ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์์ ํ๋กํ ์ ๋ณด์ ์ง์ ์ ์ธ ์น๊ตฌ ๊ด๊ณ๋ง์ ์ด์ฉํ์ฌ ์๋ฒ ๋ฉ ์์ฑ ๊ท์น์ ํ์ตํฉ๋๋ค.
- ์๋ก์ด ์ฌ์ฉ์๊ฐ ๊ฐ์ ํ๋ฉด, ํ์ต๋ ๊ท์น์ ์ ์ฉํ์ฌ ์ฆ์ ์ ์ฌ์ฉ์์ ์๋ฒ ๋ฉ์ ์์ฑํ ์ ์์ต๋๋ค.
- ๋ง์ฐฌ๊ฐ์ง๋ก, ์์
๋คํธ์ํฌ์์ 1000๋ช
์ ์ฌ์ฉ์์ ๋ํ ์น๊ตฌ ์ถ์ฒ ์์คํ
์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด๋ด
์๋ค.
- ์ฅ๋จ์
- ์ฅ์ : ์๋ก์ด ๋ ธ๋์ ๋ํด ์ ์ฐํ๊ฒ ๋์ํ ์ ์์ผ๋ฉฐ, ๋์ ๊ทธ๋ํ์ ์ ํฉํฉ๋๋ค.
- ๋จ์ : ์ ์ฒด ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ์์ ํ ํ์ฉํ์ง ๋ชปํ ์ ์์ด, ์ผ๋ถ ๋ณต์กํ ๊ด๊ณ๋ฅผ ํฌ์ฐฉํ์ง ๋ชปํ ์ ์์ต๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ:
- GraphSAGE
- ์ ์
-
์ฐจ์ด์ (inductive vs transductive in graph learning)
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ:
- Transductive: ์ ์ฒด ๊ทธ๋ํ๋ฅผ ํ ๋ฒ์ ์ฒ๋ฆฌ
- Inductive: ๋ ธ๋ ๋จ์๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์๋ก์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ:
- Transductive: ์ ๋ ธ๋ ์ถ๊ฐ ์ ์ฌํ์ต ํ์
- Inductive: ์ ๋ ธ๋์ ๋ฐ๋ก ์ ์ฉ ๊ฐ๋ฅ
- ์ ์ฉ ๋ฒ์:
- Transductive: ํ์ต ์ ๋ณธ ๊ทธ๋ํ์ ํ์
- Inductive: ์๋ก์ด ๊ทธ๋ํ๋ ๋ ธ๋์๋ ์ ์ฉ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ:
์ถ์ฒ: https://data-science-notes.tistory.com/1
-
Transductive Learning (์ผ์ชฝ ์ด๋ฏธ์ง)
- ํ์ต ๋จ๊ณ:
- ์ ์ฒด ๊ทธ๋ํ(๋ชจ๋ ๋ ธ๋์ ์ฃ์ง)๊ฐ ํ์ต ์์ ์ ์ ๊ณต๋ฉ๋๋ค.
- ์ผ๋ถ ๋ ธ๋(ํ๋์๊ณผ ์ฒญ๋ก์)์ ๋ ์ด๋ธ์ ์๋ ค์ ธ ์๊ณ , ๋ค๋ฅธ ๋ ธ๋(๋ฌผ์ํ๋ก ํ์)์ ๋ ์ด๋ธ์ ์์ธกํด์ผ ํฉ๋๋ค.
- ์์ธก ๋จ๊ณ:
- ํ์ต๋ ๋ชจ๋ธ์ ํ์ต ์ ๋ณด์๋ ๊ทธ๋ํ์ ๋ ์ด๋ธ์ด ์๋ ๋ ธ๋(๋ฌผ์ํ)์ ๋ํด ์์ธก์ ์ํํฉ๋๋ค.
- ์๋ก์ด ๋ ธ๋๋ ์ฃ์ง๋ ๊ณ ๋ ค๋์ง ์์ต๋๋ค.
- ํน์ง:
- ์ ์ฒด ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ํ์ตํฉ๋๋ค.
- ํ์ต ์ ๋ณด์ง ์์ ์๋ก์ด ๋ ธ๋์ ๋ํด์๋ ์ง์ ์ ์ผ๋ก ์์ธกํ ์ ์์ต๋๋ค.
- ํ์ต ๋จ๊ณ:
-
Inductive Learning (์ค๋ฅธ์ชฝ ์ด๋ฏธ์ง)
- ํ์ต ๋จ๊ณ:
- ๋ชจ๋ธ H๋ ์ผ๋ถ ๊ทธ๋ํ์ ๋ํด ํ์ต๋ฉ๋๋ค.
- ํ์ต๋ ๋ชจ๋ธ์ ๋ ธ๋์ ํน์ฑ๊ณผ ์ฃผ๋ณ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ์์ธกํ๋ ๊ท์น์ ํ์ตํฉ๋๋ค.
- ์์ธก ๋จ๊ณ:
- ํ์ต๋ ๋ชจ๋ธ์ ์์ ํ ์๋ก์ด ๊ทธ๋ํ๋ ๋ ธ๋์ ๋ํด ์ ์ฉ๋ ์ ์์ต๋๋ค.
-
๋ ๊ฐ์ง ์์๊ฐ ์ ์๋จ:
a) ๊ธฐ์กด ๊ทธ๋ํ์ ์๋ก์ด ๋ ธ๋๊ฐ ์ถ๊ฐ๋ ๊ฒฝ์ฐ
b) ์์ ํ ์๋ก์ด ๊ทธ๋ํ์ ์ ์ฉ๋๋ ๊ฒฝ์ฐ
- ํน์ง:
- ๋ ธ๋์ ํน์ฑ๊ณผ ์ง์ญ์ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ์ผ๋ฐํ๋ ๊ท์น์ ํ์ตํฉ๋๋ค.
- ํ์ต ์ ๋ณด์ง ์์ ์๋ก์ด ๋ ธ๋๋ ๊ทธ๋ํ์ ๋ํด์๋ ์์ธก์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํ์ต ๋จ๊ณ:
4. DeepWalk ์๊ณ ๋ฆฌ์ฆ
- DeepWalk ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ํ์ ๋ ธ๋๋ฅผ ์ ์ฐจ์ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ์๋ฒ ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ ๋จ๊ณ๋ฅผ ์๋ ์ฝ๋๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- DeepWalk ์๊ณ ๋ฆฌ์ฆ:
- ์ ๋ ฅ: ๊ทธ๋ํ G, ์ํฌ ๊ธธ์ด l, ์ํฌ ์ ฮณ, ์๋์ฐ ํฌ๊ธฐ w, ์๋ฒ ๋ฉ ์ฐจ์ d
- ์๋ฒ ๋ฉ ๋ฒกํฐ ฮฆ๋ฅผ ๋๋ค์ผ๋ก ์ด๊ธฐํ
- ฮณ ๋ฒ ๋ฐ๋ณต:
- ๊ทธ๋ํ์ ๋ชจ๋ ๋
ธ๋ v์ ๋ํด:
- RandomWalk(G, v, l)๋ก ์ํฌ ์์ฑ
- SkipGram(ฮฆ, ์ํฌ, w)๋ก ์๋ฒ ๋ฉ ์ ๋ฐ์ดํธ
- ๊ทธ๋ํ์ ๋ชจ๋ ๋
ธ๋ v์ ๋ํด:
- ์ต์ข ์๋ฒ ๋ฉ ฮฆ ๋ฐํ
- DeepWalk ์๊ณ ๋ฆฌ์ฆ:
- DeepWalk๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค:
- ๊ทธ๋ํ์ ๊ฐ ๋ ธ๋์์ ์์ํ์ฌ ๋๋ค ์ํฌ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ํํฉ๋๋ค.
- ์์ฑ๋ ์ํฌ๋ฅผ ๋ฌธ์ฅ์ผ๋ก ๊ฐ์ฃผํ๊ณ , Skip-gram ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๋ ธ๋ ์๋ฒ ๋ฉ์ ํ์ตํฉ๋๋ค.
- ์ด ๊ณผ์ ์ ํตํด ๊ทธ๋ํ์ ๊ตฌ์กฐ์ ์ ๋ณด๋ฅผ ๋ฒกํฐ ๊ณต๊ฐ์ ์ธ์ฝ๋ฉํฉ๋๋ค.
(์ฐธ๊ณ ) SKIP-GRAM
-
SKIPGRAM์ Word2Vec์ ํ ๋ฐฉ๋ฒ์ผ๋ก, ์ฃผ์ด์ง ๋จ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฃผ๋ณ ๋จ์ด๋ค์ ์์ธกํ๋ ๋ชจ๋ธ์ ๋๋ค. ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ค์ฌ ๋จ์ด๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ต๋๋ค.
- ์๋์ธต์ ํต๊ณผ์์ผ ์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ด ์๋ฒ ๋ฉ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํด ์ฃผ๋ณ ๋จ์ด๋ค์ ์์ธกํฉ๋๋ค.
- ์ค์ ์ฃผ๋ณ ๋จ์ด์ ์์ธก๋ ๋จ์ด ๊ฐ์ ์ค์ฐจ๋ฅผ ์ต์ํํ๋๋ก ํ์ตํฉ๋๋ค.
-
DEEPWALK์ SKIPGRAM์ ์ ์ฌ์ :
- ์
๋ ฅ ๋ฐ์ดํฐ ๊ตฌ์กฐ:
- SKIPGRAM: ๋ฌธ์ฅ ๋ด ๋จ์ด ์ํ์ค
- DEEPWALK: ๊ทธ๋ํ์์ ์์ฑ๋ ๋๋ค ์ํฌ ์ํ์ค๋ ๊ฒฝ์ฐ ๋ชจ๋ ์์๊ฐ ์๋ ์ํ์ค ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ํ์ต ๋ชฉํ:
- SKIPGRAM: ์ค์ฌ ๋จ์ด๋ก ์ฃผ๋ณ ๋จ์ด ์์ธก
- DEEPWALK: ํ์ฌ ๋ ธ๋๋ก ์ฃผ๋ณ ๋ ธ๋ ์์ธก๋ ๋ค ์ค์ฌ ์์๋ฅผ ํตํด ์ฃผ๋ณ ์์๋ฅผ ์์ธกํ๋ ๊ตฌ์กฐ์ ๋๋ค.
- ์๋ฒ ๋ฉ ์์ฑ:
- ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์ ์ฐจ์ ๋ฒกํฐ ๊ณต๊ฐ์ ์์(๋จ์ด ๋๋ ๋ ธ๋)๋ฅผ ์๋ฒ ๋ฉํฉ๋๋ค.
- ์ปจํ
์คํธ ํ์ฉ:
- SKIPGRAM: ๋จ์ด์ ์ฃผ๋ณ ์ปจํ ์คํธ ํ์ฉ
- DEEPWALK: ๋ ธ๋์ ์ด์ ๊ด๊ณ(๋๋ค ์ํฌ๋ก ์์ฑ๋) ํ์ฉ
- ํ์ต ๋ฐฉ์:
- ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ๋ค๊ฑฐํฐ๋ธ ์ํ๋ง์ด๋ ๊ณ์ธต์ ์ํํธ๋งฅ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์
๋ ฅ ๋ฐ์ดํฐ ๊ตฌ์กฐ:
5. Node2Vec ์๊ณ ๋ฆฌ์ฆ
-
Node2Vec์ DeepWalk๋ฅผ ํ์ฅํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๋ ์ ์ฐํ ๋ฌด์์ ๋ณดํ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
- Node2Vec ์๊ณ ๋ฆฌ์ฆ:
- ์ ๋ ฅ: ๊ทธ๋ํ G, ์ฐจ์ d, ์ํฌ ๊ธธ์ด l, ์ํฌ ์ r, ์ปจํ ์คํธ ํฌ๊ธฐ k, ํ๋ผ๋ฏธํฐ p, q
- ๊ฐ ๋ ธ๋ u์ ๋ํ ์ ์ด ํ๋ฅ ฯ ๊ณ์ฐ
- ์๋ฒ ๋ฉ ๋ฒกํฐ f๋ฅผ ๋๋ค์ผ๋ก ์ด๊ธฐํ
- r ๋ฒ ๋ฐ๋ณต:
- ๊ทธ๋ํ์ ๋ชจ๋ ๋
ธ๋ u์ ๋ํด:
- ๋ ธ๋ u์์ ์์ํ๋ ๊ธธ์ด l์ ํธํฅ๋ ๋๋ค ์ํฌ ์์ฑ (ฯ ์ฌ์ฉ)
- ๊ทธ๋ํ์ ๋ชจ๋ ๋
ธ๋ u์ ๋ํด:
- ์์ฑ๋ ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ Skip-gram์ผ๋ก f ์ต์ ํ
- ์ต์ข ์๋ฒ ๋ฉ f ๋ฐํ
- Node2Vec ์๊ณ ๋ฆฌ์ฆ:
-
Node2Vec์ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค:
- DeepWalk์ ์ ์ฌํ์ง๋ง, ๋๋ค ์ํฌ ์ ๋ต์ด ๋ ์ ์ฐํฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ p์ q๋ฅผ ์ฌ์ฉํ์ฌ ๊น์ด ์ฐ์ ํ์(DFS)๊ณผ ๋๋น ์ฐ์ ํ์(BFS) ์ฌ์ด์ ๊ท ํ์ ์กฐ์ ํฉ๋๋ค.
- p๋ ๋๋์๊ฐ ํ๋ฅ ์, q๋ ๋ฉ๋ฆฌ ํ์ํ ํ๋ฅ ์ ์ ์ดํฉ๋๋ค.
- ์ด๋ฅผ ํตํด ๋ก์ปฌ ๋ฐ ๊ธ๋ก๋ฒ ๊ทธ๋ํ ๊ตฌ์กฐ๋ฅผ ๋ ์ ํฌ์ฐฉํ ์ ์์ต๋๋ค.
- DeepWalk์ ์ ์ฌํ์ง๋ง, ๋๋ค ์ํฌ ์ ๋ต์ด ๋ ์ ์ฐํฉ๋๋ค.
-
Node2Vec๊ณผ DeepWalk์ ์ฃผ์ ์ฐจ์ด์ :
- ๋๋ค ์ํฌ ์ ๋ต:
- DeepWalk: ๋จ์ํ ๋ฌด์์ ์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- Node2Vec: ํธํฅ๋(biased) ๋๋ค ์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ p์ q๋ฅผ ๋์ ํ์ฌ ์ํฌ์ ํน์ฑ์ ์กฐ์ ํฉ๋๋ค.
- ํ๋ผ๋ฏธํฐ:
- DeepWalk: ํน๋ณํ ํ๋ผ๋ฏธํฐ ์์ด ๊ท ์ผํ ํ๋ฅ ๋ก ์ด์ ๋ ธ๋๋ฅผ ์ ํํฉ๋๋ค.
- Node2Vec: p(๋์์ฌ ํ๋ฅ )์ q(๋ฉ์ด์ง ํ๋ฅ )๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌ์ ํน์ฑ์ ์กฐ์ ํฉ๋๋ค.
- ๊ทธ๋ํ ๊ตฌ์กฐ ํ์:
- DeepWalk: ๋ก์ปฌ๊ณผ ๊ธ๋ก๋ฒ ๊ตฌ์กฐ๋ฅผ ๊ท ํ ์๊ฒ ํ์ํฉ๋๋ค.
- Node2Vec: p์ q ๊ฐ์ ๋ฐ๋ผ ๋ก์ปฌ(BFS-like) ๋๋ ๊ธ๋ก๋ฒ(DFS-like) ๊ตฌ์กฐ ํ์์ ์กฐ์ ํ ์ ์์ต๋๋ค.
- ๋๋ค ์ํฌ ์ ๋ต:
- Node2Vec๊ณผ DFS(BFS)
- Node2Vec์์ q ๊ฐ์ ๋ฎ๊ฒ ์ค์ ํ๋ฉด(q < 1), ์ํฌ๊ฐ ์์ ๋ ธ๋๋ก๋ถํฐ ๋ฉ์ด์ง๋ ๊ฒฝํฅ์ด ๊ฐํด์ง๋๋ค. ์ด๋ DFS(๊น์ด ์ฐ์ ํ์)์ ์ ์ฌํ ๋์์ ๋ณด์ ๋๋ค.
- DFS๋ ํ ๊ฒฝ๋ก๋ฅผ ๊น๊ฒ ํ์ํ๋ค๊ฐ ๋งํ๋ฉด ๋ฐฑํธ๋ํนํ์ฌ ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค. Node2Vec์์ q๋ฅผ ๋ฎ๊ฒ ์ค์ ํ๋ฉด ํ์ฌ ๋ ธ๋์์ ๋ฉ๋ฆฌ ์๋ ๋ ธ๋๋ก ์ด๋ํ ํ๋ฅ ์ด ๋์์ ธ, DFS์ ์ ์ฌํ ๊น์ด ์๋ ํ์์ด ๊ฐ๋ฅํด์ง๋๋ค.
- ๋ฐ๋ฉด, q ๊ฐ์ ๋๊ฒ ์ค์ ํ๋ฉด(q > 1) BFS(๋๋น ์ฐ์ ํ์)์ ์ ์ฌํ ๋์์ ๋ณด์ ๋๋ค.
6. GraphSAGE ์๊ณ ๋ฆฌ์ฆ
- GraphSAGE ์๊ณ ๋ฆฌ์ฆ์ ์๋์ฝ๋์ ์๋ ๋ฐฉ์์ ์๋์ ๊ฐ์ด ์ ์ํ ์ ์์ต๋๋ค:
- ์
๋ ฅ:
- ๊ทธ๋ํ G, ๋ ธ๋ ํน์ฑ X, ๊น์ด K, ์ด์ ์ํ ํฌ๊ธฐ S, ๊ฐ์ค์น ๋งคํธ๋ฆญ์ค W, ์ง๊ณ ํจ์ AGGREGATE
- ๊ฐ ๋
ธ๋ v์ ๋ํด:
- hv0=Xvh^0_v = X_vhv0โ=Xvโ (์ด๊ธฐ ๋ ธ๋ ํน์ฑ)
- For k = 1 to K:
-
๊ฐ ๋ ธ๋ v์ ๋ํด:
a. Nv=SampleNeighbors(v,S)N_v = SampleNeighbors(v, S)Nvโ=SampleNeighbors(v,S) (v์ ์ด์ ์ค S๊ฐ ์ํ๋ง)
b. hNk=AGGREGATE({hukโ1ย forย uโNv})h^k_N = AGGREGATE({h^{k-1}_u \text{ for } u \in N_v})hNkโ=AGGREGATE({hukโ1โย forย uโNvโ}) (์ด์ ํน์ฑ ์ง๊ณ)
c. hvk=ฯ(Wkโ CONCAT(hvkโ1,hNk))h^k_v = \sigma(W_k \cdot CONCAT(h^{k-1}_v, h^k_N))hvkโ=ฯ(Wkโโ CONCAT(hvkโ1โ,hNkโ)) (์์ ๊ณผ ์ด์ ํน์ฑ ๊ฒฐํฉ ํ ๋ณํ)
-
- ์ต์ข
๋
ธ๋ ์๋ฒ ๋ฉ ๋ฐํ:
- zv=hvKz_v = h^K_vzvโ=hvKโ
- ์
๋ ฅ:
- GraphSAGE์ ์๋ ๋ฐฉ์:
- ์ด๊ธฐํ: ๊ฐ ๋ ธ๋์ ์ด๊ธฐ ํน์ฑ์ ์ค์ ํฉ๋๋ค.
- ์ด์ ์ํ๋ง: ๊ฐ ๋ ธ๋์ ๋ํด ๊ณ ์ ๋ ์(S)์ ์ด์์ ๋ฌด์์๋ก ์ํ๋งํฉ๋๋ค. ์ด๋ ๋๊ท๋ชจ ๊ทธ๋ํ์์์ ๊ณ์ฐ ํจ์จ์ฑ์ ์ํ ํต์ฌ ๋จ๊ณ์ ๋๋ค.
- ์ ๋ณด ์ง๊ณ: ์ํ๋ง๋ ์ด์์ ํน์ฑ์ AGGREGATE ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ง๊ณํฉ๋๋ค. ์ด ํจ์๋ ํ๊ท , ์ต๋๊ฐ, LSTM ๋ฑ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ์ ์์ต๋๋ค.
- ํน์ฑ ์ ๋ฐ์ดํธ: ํ์ฌ ๋ ธ๋์ ํน์ฑ๊ณผ ์ง๊ณ๋ ์ด์ ํน์ฑ์ ๊ฒฐํฉํ๊ณ , ๊ฐ์ค์น ๋งคํธ๋ฆญ์ค๋ฅผ ํตํด ๋ณํํฉ๋๋ค. ์ด ๊ณผ์ ์์ ๋น์ ํ ํ์ฑํ ํจ์(ฯ)๋ฅผ ์ ์ฉํฉ๋๋ค.
- ๋ฐ๋ณต: ์ ๊ณผ์ ์ K๋ฒ ๋ฐ๋ณตํ์ฌ ๋ ๋์ ๋ฒ์์ ์ด์ ์ ๋ณด๋ฅผ ํฌํจ์ํต๋๋ค.
- ์ต์ข ์๋ฒ ๋ฉ: K๋ฒ์ ๋ฐ๋ณต ํ, ๊ฐ ๋ ธ๋์ ์ต์ข ์๋ฒ ๋ฉ์ ์ป์ต๋๋ค.
- GraphSAGE์ ํต์ฌ์ ์ด์ ์ํ๋ง๊ณผ ์ง๊ณ ๊ณผ์ ์ ๋๋ค.
- ์ด๋ฅผ ํตํด ๋๊ท๋ชจ ๊ทธ๋ํ์์๋ ํจ์จ์ ์ผ๋ก ๋ ธ๋ ์๋ฒ ๋ฉ์ ํ์ตํ ์ ์์ผ๋ฉฐ, ์๋ก์ด ๋ ธ๋์ ๋ํด์๋ ์๋ฒ ๋ฉ์ ์์ฑํ ์ ์๋ ๊ท๋ฉ์ ํ์ต์ด ๊ฐ๋ฅํฉ๋๋ค.