Paper Reading: TurboIso, Matching Order
2025๋ ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฉ์ ์ปจํํ์ฌ ํ๋ถ ์กธ์ ์ฐ๊ตฌ ์ฃผ์ ๋ฅผ ๋ฐ์์ ์งํํ๊ณ ์์ต๋๋ค. ์ ์ ์ฃผ์ ๋ โContinuous Subgraph Matchingโ๊ณผ ๊ด๋ จํด ์ฝ๋๋ฅผ ์ต์ ํ ํ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ทธ๋ํ ์ฟผ๋ฆฌ ๊ด๋ จ ๋ ผ๋ฌธ์ ์ฝ๊ณ , C++ ์ฝ๋๋ฅผ ํ๋ํ๊ณ ์์ต๋๋ค. ์กธ์ ๋ง์ง๋ง ํ๊ธฐ์ ๋ฃ๋ ์์ ์ธ๋ฐ ๋ง์ ๋ ธํ์ฐ์ ๊ฒฝํ์ ์๊ณ ์กธ์ ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค ใ ใ
Wook-Shin Han, Jinsoo Lee, and Jeong-Hoon Lee. 2013. TurboISO: Towards UltraFast and Robust Subgraph Isomorphism Search in Large Graph Databases
๋ค์ด๊ฐ๋ฉฐ
์ง๋ ํฌ์คํธ๋ถํฐ TurboIso ๋ ผ๋ฌธ์ ์ฝ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค ๐โโ๏ธ ๋ ผ๋ฌธ ๋์ ๋ถ์์ โMatching Order๊ฐ ์ค์ํ๋ค!โ๋ผ๊ณ ์ง์ ํ๋ ๊ฒ์ด ๊ธฐ์ต ๋๋๋ฐ์! ์ด๋ฒ ํฌ์คํธ์์๋ TurboIso ๋ ผ๋ฌธ์์ ์ ์ํ Matching Order์ ๋ํด์ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
๋ณต์ต
TurboIso๋ Subgraph Matching ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๋์ ๊ณผ์ ์ ์ํ ํ์ต๋๋ค.
- ์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ NEC ํธ๋ฆฌ๋ก ๋ณํ
- NEC ํธ๋ฆฌ๋ฅผ ๋ฐ๋ผ DFS ํ์์ ์ํ
- ๊ฐ NEC ๋ ธ๋๋ง๋ค ๋งค์นญ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ์์ง, โCandidate Subregionโ์ ์์ฑ
Matching Order Selection
Matching Order is Important
์ฟผ๋ฆฌ ๊ทธ๋ํ $q$๊ฐ $n$๊ฐ ๋ ธ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ฉด, ๋งค์นญ์ ์ฐพ๊ธฐ ์ํด ๋ฐ์ดํฐ ๊ทธ๋ํ์์ ํ์ํด์ผ ํ๋ ๊ฒ์ ๊ณต๊ฐ(= ๊ฒฝ์ฐ์ ์)๋ ์๋์ ๊ฐ์ต๋๋ค.
\[\vert C(u_1) \vert \times \cdots \times \vert C(u_n) \vert\]์ด๋, $C(u_i)$๋ ์ฟผ๋ฆฌ ๋ ธ๋ $u_i$์ ๋งค์นญ ๊ฐ๋ฅํ ํ๋ณด ๋ฐ์ดํฐ ๋ ธ๋์ ์งํฉ(Candidate Subregion) ์ ๋๋ค.
์ข์ ๋งค์นญ ์์๋ ์ค๊ฐ ๋จ๊ณ์์์ ๊ฒฝ์ฐ์ ์๊ฐ ์ ๊ฒ ๋๋ ์์๋ฅผ ๋งํฉ๋๋ค. ๊ทธ๋์ผ ํ์์ด ๋นจ๋ผ์ง๊ณ , ๋งค์นญ์ด ์กด์ฌํ์ง ์๋ ์ํฉ์ ์กฐ๊ธฐ์ ํ์ธํ๊ณ ๊ณผ์ ์ ์ข ๋ฃํ ์ ์์ต๋๋ค.
SPath Selectivity
๊ธฐ์กด์ SPath(2010) ๋ฐฉ์์ ์๋์ ๊ฐ์ด ์ ํ๋ ํจ์ $sel(p)$๋ฅผ ์ ์ํ๊ณ , ์ด ์ค์์ ๊ฐ์ฅ ๋์ ๊ฐ์ ๊ฐ๋ ๊ฒฝ๋ก $p$๋ฅผ ์ ํํด ์ฐ์ ๋งค์นญ์ ํฉ๋๋ค.
\[sel(p) = \frac{2^{\vert V(p) \vert}}{\prod_{u \in V(p)} \vert C(u) \vert}\]$p$๋ ์ฟผ๋ฆฌ ๊ทธ๋ํ ์์์์ ํ์ ๊ฒฝ๋ก(= ๋งค์นญ ์ค๋), $V(p)$๋ ๊ฒฝ๋ก์ ํฌํจ๋ ์ฟผ๋ฆฌ ๋ ธ๋์ ์งํฉ, ๊ทธ๋ฆฌ๊ณ $\vert C(u) \vert$๋ ์ฟผ๋ฆฌ ๋ ธ๋์ ๋งค์นญ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ๋ ธ๋์ ๊ฐฏ์๋ฅผ ๋งํฉ๋๋ค.
์ฐธ๊ณ ๋ก ๊ฒฝ๋ก $p$๋ ์ฟผ๋ฆฌ ํธ๋ฆฌ๋ฅด ์ํํ๋ ์์๋ฅผ ๊ฒฝ๋ก ๋ถํดํ ์์ ์ ๋๋ค.
SPath์ ์ ํ๋ ํจ์๋ ์ข์ ๊ฒฝ๋ก๋ฅผ ์์นํ ํ๋ ค๊ณ ํ์ต๋๋ค. ๊ทธ๋์,
- ๋ถ์ $2^{\vert V(p) \vert}$
- ๊ฒฝ๋ก $p$์ ํฌํจ๋ ์ ์ ์๊ฐ ๋ง์์๋ก ์ข๋ค.
- ๋ ๊ธด ๊ฒฝ๋ก๋ฅผ ๋งค์นญํ๋ฉด, ํํฐ๋ง์ด ๋ ์ ์ผ์ด๋์ ๊ฒฐ๊ณผ๋ฅผ ๋นจ๋ฆฌ ์ขํ ์ ์์ ๊ฒ์ด๋ค.
- ๋ถ๋ชจ $\prod \vert C(u) \vert$
- ๊ฐ ์ฟผ๋ฆฌ ๋ ธ๋์ ํ๋ณด ๊ฐฏ์์ ๊ณฑ
- ํ๋ณด๊ฐ ๋ง์ผ๋ฉด, ๋ง์์๋ก ๋งค์นญ์ด ์ด๋ ค์์ง๋ค.
- ์ ํ๋๊ฐ ๋ฎ์์ง๋๋ก ํ๋ค.
TurboIso๋ SPath์ ์ด ์ ํ๋ ํจ์๊ฐ ์ ์ ํ์ง ์๋ค๊ณ ์ง์ ํฉ๋๋ค.
(์ ๊ฐ SPath์ ๋ํ ๋
ผ๋ฌธ์ ์ฝ์๊ฒ ์๋๋ผ์ SPath์ ํจ์๊ฐ ์ ์๋ฟ์ง ์๋ค์โฆ ใ
ใ
, ์ผ๋จ ์ ๊ฐ ๋๋ผ๊ธฐ๋ก๋ ์๋ก ๊ธธ์ด๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก์ ๋ํด์ ์์ ์ ํ๋ ํจ์๋ก๋ ๋ ๊ฒฝ๋ก๋ฅผ ๋น๊ตํ๋๊ฒ ์ ์ ๋ ๊ฒ ๊ฐ๋ค๋ ๋๋ ์ ๋๋ง ์์ต๋๋ค ๐ค)
Note that the denominator represents the join cardinality of the candidate sets for all query vertices in $p$. However, this over-estimate leads to significant errors in estimating the join cardinality.
๋จ์ํ ๊ฐ ์ฟผ๋ฆฌ ์ ์ ์ ๊ณฑํ๋ ๊ฑด, ์ง์ง ๋งค์นญ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์(Join Cardinality)๋ฅผ ๊ณผ๋ ํ๊ฐํ๋ค๊ณ ํฉ๋๋ค. ์ค์ ๋ก ๋งค์นญ ํ๋ณด $C(u)$ ์ ๋ถ๊ฐ ๋งค์นญ๋๋๊ฒ ์๋๊ธฐ ๋๋ฌธ์ด์ฃ ! ๊ฒฐ๊ตญ, SPath์์ ๋ถ๋ชจ ๋ถ๋ถ์ Maximum Join Cardinality๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ๋๋ฅผ ์ ์ํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ์ ํ๋ ๊ณ์ฐ์ด ์ด๋ค์ง๋ค๋ ์ ์ ์ง์ ํฉ๋๋ค.
TurboIso Selectivity
SPath ์ ํ๋์ ๋จ์ ์ ๊ฐ์ ํ๊ธฐ ์ํด, TurboIso๋ ์ง์ ํ๋ณด ์์ญ์ ํ์ํ๊ณ , ํ๋ณด ์ ์ ์ ์๋ฅผ ์นด์ดํธ ํฉ๋๋ค. ์ฆ, ์ด๋ก ์ ์ธ ์ถ์ ์ด ์๋๋ผ ์ ํํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋จํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ SPath์์ ์ฌ์ฉํ๋ $C(u)$๋ ์ ์ฒด ๋ฐ์ดํฐ ๊ทธ๋ํ ์์์ ๋งค์นญ ๊ฐ๋ฅํ ๋ ธ๋์ ์งํฉ์ด๊ธฐ ๋๋ฌธ์, ๋ฒ์๊ฐ ๋ฐ์ดํฐ ๊ทธ๋ํ ์ ์ฒด ์ ๋๋ค. ๊ทธ๋ฌ๋ TurboIso์์๋ โ๋งค์นญ์ด ์ผ์ด๋ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ถ๋ถโ๋ง์ผ๋ก Candidate Region์ ์ ์ ํ๊ธฐ ๋๋ฌธ์, ๋ ๊ฒฌ๊ณ ํฉ๋๋ค. ์ฆ, $\vert C(u) \vert$ ๋์ $\vert CR_i(uโ, -) \vert$๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฟผ๋ฆฌ ๊ทธ๋ํ๋ฅผ ์ํํ๋ ๊ณผ์ ์ 3๊ฐ์ง ๊ฒฝ๋ก($p_1$, $p_2$, $p_3$)๋ก ๊ฒฝ๋ก ๋ถํด ๋ฉ๋๋ค. ์ด๋, ๊ฐ ๊ฒฝ๋ก์ ๋ฆฌํ ๋ ธ๋ $u_2$, $u_3$, $u_4$์ ๋งค์นญ๋๋ ๋ฐ์ดํฐ ๋ ธ๋์ ๊ฐฏ์๊ฐ Candidate Region ๋ณ๋ก ๊ณ์ฐ ๋์ด ์์ต๋๋ค: $\vert CR_1(uโ, -) \vert$.
Subgraph Matching์ ํ์ธํ๊ธฐ ์ํด, ๋ฆฌํ ๋ ธ๋์ ๋งค์นญ ํ๋ณด๊ฐ ๊ฐ์ฅ ์ ์ ๊ฒฝ๋ก๋ถํฐ ์ ํํฉ๋๋ค. $CR_1$ ์์ญ์ ๋ํด ์ํํ ๋๋, $p_3$๋ถํฐ ์ ํํด ๋งค์นญ์ ํ์ธํ๊ณ , $CR_2$ ์์ญ์์๋ $p_3$๋ถํฐ ์ ํํด ๋งค์นญ์ ํ์ธํฉ๋๋ค.
$p_3$์ ๋ํ ๋งค์นญ์ ํ์ธํ๊ณ ๋๋ฉด, ๊ทธ ๋ค์์ผ๋ก ๋งค์นญ ํ๋ณด๊ฐ ์ ์ ๊ฒฝ๋ก๋ฅผ ์ ํ ํฉ๋๋ค. $CR_1$์์๋ $p_1$์, $CR_2$์์๋ $p_2$๋ฅผ ์ ํ ํฉ๋๋ค. ์ข ํฉํ๋ฉด, ์๋์ ๊ฐ์ต๋๋ค.
\[\begin{aligned} CR_1&: p_3 \rightarrow p_1 \rightarrow p_2 \\ CR_2&: p_3 \rightarrow p_2 \rightarrow p_1 \\ \end{aligned}\]์์๋ก ๋งค์นญ ์ค๋๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค.
When non-tree edge exist
NEC ๋ ธ๋ $uโ$์ ๋ํด $j$๊ฐ์ non-tree ์ฃ์ง๊ฐ ์กด์ฌํ๋ค๊ณ ํ์. ๊ทธ๋ฌ๋ฉด, $uโ$์ ๋ํ Candidate vertex์ ๊ฐฏ์๋ฅผ $(j+1)$๋ก ๋๋ ์ค๋๋ค.
๋ ผ๋ฌธ์์ ์์๋ ๋ค์ด์ฃผ๊ธด ํ๋๋ฐ, ๋ญ ๋ง์ธ์ง ์ ํ ๋ชจ๋ฅด๊ฒ ๋ค์ ใ ใ
When NEC vertex contains many vertices
NEC ๋ ธ๋์ ์ฌ๋ฌ ์ฟผ๋ฆฌ ๋ ธ๋๊ฐ ๋์ ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, NEC ํธ๋ฆฌ ์์์๋ ๊ฒฝ๋ก๊ฐ ํ๋์ง๋ง, ์ค์ ์ฟผ๋ฆฌ ๊ทธ๋ํ์์๋ ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ์ค์ฒฉ๋์ด ์กด์ฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Fig 3์์ NEC์์ ๊ฒฝ๋ก $uโ_1 \rightarrow uโ_3$๋ ๋จ์ผ ๊ฒฝ๋ก ์ด์ง๋ง, ์ฟผ๋ฆฌ ๊ทธ๋ํ์์๋ ์ด๊ฒ์ด $u_1 \rightarrow u_3$์ $u_1 \rightarrow u_4$ ๋ ๊ฐ์ ํด๋น ํฉ๋๋ค.
์ด๊ฒ์ ๋จ์ํ $\vert CR(uโ_3, -) \vert$๋ง ๋ณด๊ณ ํ๋จํ ์ ์๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ๋ $CR(uโ_3, -) = \left\{ v_2, v_3, v_4, v_5 \right\}$ ์ค์์ NEC ๋ ธ๋์ ํฌ๊ธฐ ๋งํผ์ ๋ฝ๋ โ์กฐํฉ(combination)โ์ ํด์ผ ํฉ๋๋ค.
\[{\vert CR(u'_3, -) \vert \choose \vert u'_3.NEC \vert} = {4 \choose 2} = 6\]์ด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ฐฉ์์ ๊ฒฝ๋ก $p$์ ๋ฆฌํ ๋ ธ๋์ NEC ๋ ธ๋๊ฐ ๋ค์ค ์ฟผ๋ฆฌ ๋ ธ๋์ธ ๊ฒฝ์ฐ๋ง, ์ด๋ ๊ฒ ํธ๋ค๋ง ํ ์ ์์ต๋๋ค. ๊ฒฝ๋ก์ ์ค๊ฐ NEC๊ฐ ๋ค์ค ์ฟผ๋ฆฌ ๋ ธ๋์ธ ๊ฒฝ์ฐ๋ ์ค์ ๋งค์นญ ์๋ฅผ ์ ํํ ์ ์ ์๋ค๊ณ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์์์ ์ฌ์ฉํ ์กฐํฉ์๋ ์ ํํ์ง ์์ ์ ์์ต๋๋ค. ์๋ํ๋ฉด, $u_3$์ $u_v$๋ ๊ฐ์ DFS ๊ฒฝ๋ก ์์์ ๊ฐ์ ๋ถ๋ชจ ๋ ธ๋๋ก๋ถํฐ ๋ด๋ ค์์ผ ํ๊ธฐ ๋๋ฌธ ์ ๋๋ค. ๋ง์ฝ, ๋ ๊ฒฝ๋ก๊ฐ ๋ค๋ฅธ ๋ถ๋ชจ ๋ ธ๋์์ ๋ด๋ ค์จ๋ค๋ฉด, over-estimate๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ๋์ TurboIso์์ ์ฌ์ฉํ๋ ์ต์ข ๋ณด์ ์์ ์๋์ ๊ฐ์ต๋๋ค.
\[\sum_{v \, \in \, CR(P(u'), -)} {\vert CR(u', v) \vert \choose \vert u'.NEC \vert }\]๊ฐ ์์๋ฅผ ์ค๋ช ํ๋ฉด,
- $P(uโ)$๋ NEC ๋ ธ๋์ ๋ถ๋ชจ ๋ ธ๋ ์ ๋๋ค.
- $CR(P(uโ), -)$๋ ๊ทธ ๋ถ๋ชจ ๋ ธ๋์ ๋งค์นญ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์ ์ ์ ์งํฉ ์ ๋๋ค.
- $CR(uโ, v)$๋ ๋ถ๋ชจ ๋ฐ์ดํฐ ์ ์ $v$์ ์ฐ๊ฒฐ๋ ์์ ๋ฐ์ดํฐ ์ ์ ๋ค ์ค, $uโ$์ ๋งค์นญ ๊ฐ๋ฅํ ๊ฒ๋ค์ ๋ชจ์ ์ ๋๋ค.
์ด๋ ๊ฒ ํด์, ๊ฐ์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๊ฐ์ง ๋์ ์กฐํฉ์ ๊ณ์ฐํ๋๋ก ํฉ๋๋ค.
๋งบ์๋ง
์ฌ์ค ๋ค์ ์ข๋ ๋ด์ฉ์ด ๋จ์๋๋ฐ์! TurboIso(2013)๋ ์ง๊ธ 2025๋ ๊ธฐ์ค์ผ๋ก๋ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๊ณ , TurboFlux(2018)๊ณผ SymBi(2021) ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๊ธฐ ์ํ ๋ฐฐ๊ฒฝ ์ง์์ ์ป๊ธฐ ์ํด ์ด ์ ๋๋ง ์ฝ๊ณ ๋ง๋ฌด๋ฆฌ ํ๋ ค๊ณ ํฉ๋๋ค.
TurboIso์ ๋์๋
- NEC
- Candidate Region
- NLF Filter
- Matching Order
- Selectivity
๋ฑ๋ฑ์ ๋ด์ฉ์ ๋ค๋ฅธ Subgraph Matching ๋ ผ๋ฌธ๊ณผ ๊ทธ๋ํ ๊ด๋ จ ์ฐ๊ตฌ๋ฅผ ํ ๋, ์ข์ ์ธ์ฌ์ดํธ๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค ใ ใ