-
Figure 1.
An example of the semantic-rich HIN DBpedia.
-
Figure 2.
Diverse semantically similar communities.
-
Figure 3.
The schema of the HIN illustrated in Fig. 1 with five example meta-paths between nodes with a type
.$\mathrm{Person}$ -
Figure 4.
Parallel
-neighbor expansion.$ {\cal{P}}^* $ -
Figure 5.
Efficiency comparison.
-
Figure 6.
Effect of
on efficiency.$ \hat{l} $ -
Figure 7.
Effect of
on effectiveness metrics (NMP and SC).$ \hat{l} $ -
Figure 8.
Effect of
on efficiency.$ k $ -
Figure 9.
Effect of
on effectiveness metrics (NMP and SC).$ k $ -
Figure 10.
Effect of
on efficiency.$ r $ -
Figure 11.
Effect of
on effectiveness metrics (NMP and SC).$ r $ -
Figure 12.
Effect of
on efficiency.$ b $ -
Figure 13.
Effect of # threads on efficiency.
-
Figure 14.
Case studies on DBpedia.
-
Input: HIN , SMP =$ G $ ,$ \langle A_t,A_a,S,\hat{l} \rangle $ ,$ q $ 0,$ k \geq $ $ r \geq 1 $ Output: top- SICs with highest semantic cohesiveness$ r $ 1 ;$ \mathrm{HSet} \leftarrow \emptyset $ ;$ \mathrm{SemSet}\leftarrow \emptyset $ ;$ H^{\prime} \leftarrow \emptyset $ 2 0; //$ \mathrm{count} \leftarrow $ $ \mathrm{ number of SICs}$ 3 , in descending order of$ \mathrm{R} \leftarrow \{ S_i \in {\cal{R}} \} $ ;$ W_{S_i\rightarrow S} $ 4 while: do${\it{\mathrm{count}}} \lt r $ // $\mathrm{Step (1): Semantic expansion} $ 5 if then$ |{\it{\mathrm{SemSet}}}| = |{\it{\mathrm{R}}}| $ 6 break; 7 .poll();$ \mathrm{SemSet} \leftarrow \mathrm{SemSet}\cup\mathrm{R} $ // $\mathrm{Step (2): } G_{\mathrm{SMP}} \mathrm{ construction } $ 8 ;$ G_{\text{SMP}} \leftarrow \mathrm{getSMPGraph} (G, \text{SMP}, q, \mathrm{SemSet}) $ // $\mathrm{Step (3): SIC extraction} $ 9 find a connected ($ H \leftarrow $ ,SMP)-core of$ k $ from$ q $ ;$ G_{\text{SMP}} $ 10 if does not exist then$ H $ 11 continue; // $\mathrm{Step (4): Quality evaluation} $ 12 if then$ |V(H)| \gt |V(H^{\prime})| $ 13 ;$ \mathrm{HSet} \leftarrow \mathrm{HSet} \cup H $ 14 ;$ H^{\prime} \leftarrow H $ 15 ;$ \mathrm{count} \leftarrow \mathrm{count}+1 $ 16 return ;${\it{\mathrm{HSet}}}$ Table 1.
.$\mathrm{Basic}$ -
Input: HIN , SMP =$ G $ ,$ \langle A_t,A_a,S,\hat{l} \rangle $ ,$ q $ $\mathrm{SemSet}$ Output: -centric SMP-graph$ q $ $ G_{\text{SMP}} $ 1 ;$\mathrm{Expand} \leftarrow q $ ;$ \mathrm{Visited} \leftarrow \emptyset $ ;$ G_{\text{SMP}} \leftarrow \emptyset $ 2 while: do$ \mathrm{Expand} \neq \emptyset $ // $ \mathrm{Step (1): Neighbor retrieval} $ 3 .poll();$ u \leftarrow \mathrm{Expand} $ 4 ($ \langle N^*(u), E^*(u) \rangle \leftarrow \mathrm{FPN}$ , SMP,$ G, u $ );$\mathrm{SemSet}$ // $ \mathrm{Step (2): Graph update} $ 5 ;$ G_{\text{SMP}} \leftarrow G_{\text{SMP}} \cup \langle N^*(u), E^*(u) \rangle $ 6 ;$ \mathrm{Visited} \leftarrow \mathrm{Visited} \cup \{u\} $ 7 ;$ \mathrm{Expand} \leftarrow \mathrm{Expand} \cup (N^*(u) \setminus \mathrm{Visited}) $ 8 return ;$ G_{\text{SMP}} $ Table 2.
($\mathrm{getSMPGraph}$ , SMP,$ G $ ,$ q $ ).$\mathrm{SemSet}$ -
Input: HIN , node$ G $ , SMP =$ u $ ,$ \langle A_t,A_a,S,\hat{l} \rangle $ ,$ q $ $\mathrm{SemSet}$ Output: -neighbors and edges of node$ {\cal{P}}^* $ $ u $ $ \langle N^*(u), E^*(u) \rangle $ 1 ;$ N^*(u) \leftarrow \emptyset $ ;$ E^*(u) \leftarrow \emptyset $ 2 ;$ \mathrm{NbrExpand} \leftarrow u $ 3 ;$ \mathrm{Path} \leftarrow p_{uu} $ 4 while: do$ \mathrm{NbrExpand} \neq \emptyset $ // $\mathrm{Step (1): Neighbor exploration} $ 5 .poll();$ w \leftarrow \mathrm{NbrExpand} $ 6 .poll();$ p_{uw} \leftarrow \mathrm{Path} $ 7 w's neighbors in$ \mathrm{Neighbor}(w) \leftarrow $ ;$ G $ 8 while: do$ \mathrm{Neighbor}(w) \neq \emptyset $ // $\mathrm{Step (2): Path extension} $ 9 .poll();$ v \leftarrow \mathrm{Neighbor}(w) $ 10 if .contains($ \mathrm{SemSet} $ ) then$ \psi(e_{wv}) $ 11 ;$ p_{uv} \leftarrow p_{uw} \cup e_{wv} $ 12 if then$ u=v $ 13 continue; // Step (3): Neighbor update 14 if .length()$ p_{uv} $ and$ \leq \hat{l} $ and$ \phi(v) = A_t $ ($ \phi(x) = A_a $ is a node in$ x $ ) then$ p_{uv} $ 15 ;$ N^*(u) \leftarrow N^*(u) \cup v $ 16 ;$ E^*(u) \leftarrow E^*(u) \cup p_{uv} $ 17 else if .length()$ p_{uv} $ then$ \lt \hat{l} $ 18 ;$ \mathrm{NbrExpand} \leftarrow \mathrm{NbrExpand} \cup v $ 19 ;$ \mathrm{Path} \leftarrow \mathrm{Path} \cup p_{uv} $ 20 return ;$ \langle N^*(u), E^*(u) \rangle $ Table 3.
($\mathrm{FPN}$ , SMP,$ G, u $ ).$\mathrm{SemSet}$ -
Input: HIN , SMP =$ G $ ,$ \langle A_t,A_a,S,\hat{l} \rangle $ ,$ q $ 0,$ k \geq $ ,$ r\geq 1 $ $ b \gt 1 $ Output: top- SICs with highest semantic cohesiveness$ r $ 1 ;$ \mathrm{HSet} \leftarrow \emptyset $ ;$ \mathrm{SemSet} \leftarrow \emptyset $ ;$ H^{\prime} \leftarrow \emptyset $ 2 , sorted in descending order;$ \mathrm{R} \leftarrow \{ S_i| S_i \in {\cal{R}} \} $ 3 1;$ U \leftarrow $ 4 while: do$ U \lt |\mathrm{R}| $ // $ \mathrm{Step (1): Batch semantic expansion} $ 5 if then$ U+b \lt |\mathrm{R}| $ 6 ;$ D = U+b $ 7 else 8 ;$ D = |\mathrm{R}| $ 9 for to$ i\leftarrow U $ do$ D $ 10 .get($ \mathrm{SemSet} \leftarrow \mathrm{SemSet} \cup \mathrm{R} $ );$ i $ // $ \mathrm{Step (2): Construct } G_\mathrm{SMP}$ 11 ;$ G_{\text{SMP}} \leftarrow \mathrm{getSMPGraph}(G, \text{SMP}, q, \mathrm{SemSet}) $ // $ \mathrm{Step (3): SIC extraction} $ 12 find a connected ($ H \leftarrow $ ,SMP)-core of$ k $ from$ q $ ;$ G_{\text{SMP}} $ // $ \mathrm{Step (4): Binary semantic search} $ 13 if does not exist then$ H $ 14 ;$ U\leftarrow D+1 $ 15 continue; 16 else 17 if then$ |V(H)| \gt |V(H^{\prime})| $ 18 ($ \mathrm{HSet} \leftarrow \mathrm{HSet} \cup \mathrm{BSS} $ ,$ H' $ ,$ G_{\text{SMP}} $ ,$ U $ ,$ D $ ,$\mathrm{R}$ ,$ r $ ,$ |\mathrm{HSet}| $ );$ q $ 19 if =$ |\mathrm{HSet}| $ then$ r $ 20 break; 21 ;$ H^{\prime} \leftarrow H $ 22 ;$ U\leftarrow D+1 $ 23 else 24 ;$ U\leftarrow D+1 $ 25 continue; 26 return ;${\it{\mathrm{HSet}}}$ Table 4.
.$\mathrm{Opt-BSS}$ -
Input: ,$ H' $ ,$ G_{\text{SMP}} $ ,$ U \gt 0 $ ,$ D \gt 0 $ ,$\mathrm{R}$ ,$ r \geq 1 $ 0,$ \mathrm{count} \geq $ $ q $ Output: top- SICs with highest semantic cohesiveness$ r $ 1 ;$\mathrm{left} \leftarrow U $ ;$ \mathrm{right} \leftarrow D $ 2 ;$\mathrm{HSet} \leftarrow \emptyset $ ;$ \mathrm{SemSet}\leftarrow \emptyset $ 3 while do$ \mathrm{left} \leq \mathrm{right} $ // $\mathrm{Termination check}$ 4 if =$\mathrm{count}$ then$ r $ 5 break; 6 if = 0 then$\mathrm{count}$ 7 ;$ H^{\prime} \leftarrow \emptyset $ // $\mathrm{Step (1): Midpoint selection}$ 8 =$\mathrm{mid}$ +$\mathrm{left}$ ;$ \lfloor (\mathrm{right} - \mathrm{left}) / 2 \rfloor $ 9 ;$\mathrm{SemSet}\_\mathrm{BSS} \leftarrow \emptyset $ 10 for to$ i \leftarrow 1 $ do$\mathrm{mid}$ 11 .get($ \mathrm{SemSet}\_\mathrm{BSS} \leftarrow \mathrm{SemSet}\_\mathrm{BSS} \cup \mathrm{R} $ );$ i $ // $\mathrm{Step (2) and (3)}$ 12 find a smaller$ G'_{\text{SMP}} \leftarrow $ using$ G'_{\text{SMP}} $ ;$\mathrm{SemSet}\_\mathrm{BSS}$ 13 find a connected ($ H \leftarrow $ ,SMP)-core of$ k $ from$ q $ ;$ G'_{\text{SMP}} $ // $\mathrm{Step (4): SIC refinement}$ 14 if exists and$ H $ then$ |V(H)| \gt |V(H^{\prime})| $ 15 if =$\mathrm{mid}$ then$\mathrm{left}$ 16 ;$ H' \leftarrow H $ 17 =$\mathrm{count}$ + 1;$\mathrm{count}$ 18 ;$\mathrm{HSet} \leftarrow \mathrm{HSet} \cup H $ 19 ;$\mathrm{left} \leftarrow \mathrm{mid} +1 $ 20 ;$\mathrm{right} \leftarrow D $ 21 continue; 22 else 23 =$\mathrm{right}$ ;$\mathrm{mid}-1 $ 24 else 25 =$\mathrm{left}$ ;$\mathrm{mid}+1 $ 26 if then$\mathrm{left} \gt \mathrm{right}$ 27 .get($\mathrm{SemSet}\_\mathrm{BSS} \leftarrow \mathrm{SemSet}\_\mathrm{BSS} \cup \mathrm{R} $ );$ \mathrm{left}$ 28 repeat lines 12-13; 29 if exists then$ H $ 30 repeat lines 16−21; 31 return ;${\it{\mathrm{HSet}}}$ Table 5.
($\mathrm{BSS}$ ,$ H' $ ,$ G_{\text{SMP}} $ ,$ U $ ,$ D $ ,$\mathrm{R}$ ,$ r $ ,$ \mathrm{count}$ ).$ q $ -
Input: HIN , SMP =$ G $ , query node$ \langle A_t,A_a,S,\hat{l} \rangle $ , integer$ q $ 0, integer$ k \geq $ , integer$ r \gt 0 $ $ b \gt 1 $ Output: SICs with top- semantic cohesiveness$ r $ 1 ;$\mathrm{HSet} \leftarrow \emptyset $ ;$ \mathrm{SemSet} \leftarrow \emptyset $ ;$ H^{\prime} \leftarrow \emptyset $ 2 , sorted in descending order;$\mathrm{R} \leftarrow \{ S_i| S_i \in {\cal{R}} \} $ 3 1;$ U \leftarrow $ 0; //$\mathrm{count} \leftarrow $ 4 while: do$ U \lt |\mathrm{R}| $ // $\mathrm{Step (1)-(3)}$ 5 lines 5-12 in (Algorithm 4)$\mathrm{Opt-BSS}$ // $\mathrm{Step (4): Binary semantic search with recording}$ 6 if does not exist then$ H $ 7 lines 14-15 in (Algorithm 4)$\mathrm{Opt-BSS}$ 8 else 9 if then$ |V(H)| \gt |V(H^{\prime})| $ 10 .put($\mathrm{findedH} $ ,$\mathrm{mid} $ );$ H $ 11 ($ \mathrm{HSet} \leftarrow \mathrm{HSet} \cup \mathrm{RecordBSS} $ ,$ H' $ ,$ U $ ,$ D $ ,$\mathrm{R}$ ,$ r $ ,$ \mathrm{count}$ ,$ q $ );$ \mathrm{findedH}$ 12 lines 19-22 in (Algorithm 4)$\mathrm{Opt-BSS}$ 13 else 14 lines 24-25 in (Algorithm 4)$\mathrm{Opt-BSS}$ 15 return ;$\mathrm{HSet}$ Table 6.
.$\mathrm{Opt-Record}$ -
Input: previously discovered community , integer$ H' $ , integer$ U \gt 0 $ , ordered list of edge types$ D \gt 0 $ , integer$\mathrm{R}$ , integer$ r \gt 0 $ 0, query node$ \mathrm{count} \geq $ $ q $ Output: SICs with top- semantic cohesiveness$ r $ 1 ;$ \mathrm{left} \leftarrow U $ ;$ \mathrm{right} \leftarrow D $ 2 ;$ \mathrm{HSet} \leftarrow \emptyset $ ;$ \mathrm{SemSet}\_\mathrm{BSS} \leftarrow \emptyset $ 3 ;$ \mathrm{lastRight} \leftarrow \emptyset $ ;$ \mathrm{SemSizeSet} \leftarrow \emptyset $ 4 while: do$ \mathrm{left} \leq \mathrm{right}$ // $ \mathrm{Step (1): Midpoint selection}$ 5 lines 4–11 in (Algorithm 5)$\mathrm{BSS}$ // $ \mathrm{Step (2): SIC extraction}$ 6 if then$\mathrm{right = D}$ 7 =$\mathrm{lastH}$ .get($\mathrm{findedH}$ )$\mathrm{right}$ 8 else 9 =$\mathrm{lastH}$ .get($\mathrm{findedH}$ )$\mathrm{right + 1}$ 10 find a connected ($ H \leftarrow $ ,SMP)-core that satisfies$ k $ in$\mathrm{SemSet}\_\mathrm{BSS}$ containing$\mathrm{lastH}$ ;$ q $ // $ \mathrm{Step (3): SIC refinement}$ 11 if exists and$ H $ then$ |V(H)| \gt |V(H^{\prime})| $ 12 if =$\mathrm{mid}$ then$\mathrm{left}$ 13 =$\mathrm{count}$ + 1;$\mathrm{count}$ 14 lines 16–20 in (Algorithm 5)$\mathrm{BSS}$ 15 if then$\mathrm{left} \gt \mathrm{right}$ 16 if .isEmpty() then$\mathrm{lastRight}$ 17 break; 18 .pop();$\mathrm{right} \leftarrow \mathrm{lastRight} $ 19 else 20 .put($ \mathrm{findedH}$ ,$\mathrm{mid}$ );$ H $ 21 .push($\mathrm{lastRight}$ );$\mathrm{right}$ 22 =$\mathrm{right}$ ;$\mathrm{mid}-1 $ 23 $\mathrm{SemSizeSet} \leftarrow \mathrm{SemSizeSet} \cup \mathrm{mid}$ 24 else 25 =$ \mathrm{left}$ ;$\mathrm{mid}+1 $ 26 if .contains($\mathrm{SemSizeSet}$ ) then$ \mathrm{mid}+1 $ 27 lines 16–18 in (Algorithm 5)$\mathrm{BSS}$ 28 repeat lines 15–18 29 return ;$\mathrm{HSet}$ Table 7.
($\mathrm{BSS-Record}$ ,$ H' $ ,$ U $ ,$ D $ ,$\mathrm{R}$ ,$ r $ ,$\mathrm{count} $ ,$ q $ ).$\mathrm{findedH}$ -
Table 1.
Statistics of datasets.
-
Method Wikidata Freebase NMP ALSD SC AAS NMP ALSD SC AAS Ours (1)–(6) 34 20.6% 0.844 0.291 34.5 21.5% 0.802 0.186 KAC$ r $ 12.25 55.6% 0.576 0.181 15.5 50.6% 0.649 0.209 KC 15.7 − 0.413 0.101 21 − 0.294 0.082 VAC 3.2 − 0.558 0.081 4.5 − 0.504 0.105 FastOnline 5.3 − − 0.124 13.7 − − 0.163 Boldface indicates the best result, and underlining indicates the second-best result. Table 2.
Effectiveness evaluation on Wikidata and Freebase.
-
Method YAGO DBpedia NMP ALSD SC AAS NMP ALSD SC AAS Ours (1)–(6) 26 16.3% 0.898 0.226 77.75 26.1% 0.877 0.149 KAC$ r $ 11.3 46.6% 0.543 0.128 13.17 73.9% 0.578 0.118 KC 7 − 0.503 0.115 22.8 − 0.639 0.131 VAC 2 − 0.524 0.111 2.75 − 0.571 0.116 FastOnline 8.2 − − 0.142 18.3 − − 0.105 Red values indicate the best results, while blue underlined values indicate the second-best results. Table 3.
Effectiveness evaluation for YAGO and DBpedia.
-
Methods Wiki Freebase YAGO DBpedia $ G_{\rm{SMP}} $ Other $ G_{\rm{SMP}} $ Other $ G_{\rm{SMP}} $ Other $ G_{\rm{SMP}} $ Other Basic 22.38 7.462 21.37 6.028 13.88 3.916 28.86 8.162 Opt-BSS 15.05 6.665 9.660 4.278 7.770 3.330 19.60 8.460 Opt-Record 10.44 6.456 4.017 2.483 4.202 2.598 12.36 7.716 Basic+P 4.940 2.210 16.64 5.256 2.964 0.936 4.560 1.708 Opt-BSS+P 3.876 1.824 4.148 1.952 1.904 0.896 3.944 1.856 Opt-Record+P 2.460 1.640 2.880 1.920 0.840 0.560 2.460 1.640 Table 4.
The runtime (sec) of each step.
Figures
(14)
Tables
(11)