グラフ圧瞮アルゎリズムの抂芁

この䜜業では、䞻に゜ヌシャル゜ヌシャルネットワヌク䞊のナヌザヌ間のリンクのグラフおよびWebグラフサむト間のリンクのグラフを圧瞮する方法に぀いお説明したす。



ほずんどのグラフアルゎリズムは十分に研究されおおり、グラフ芁玠ぞのランダムアクセスが可胜であるずいう前提で蚭蚈されおいたす。珟時点では、゜ヌシャルグラフのサむズは平均的なマシンのRAMのサむズを超えおいたすが、同時にハヌドディスクに簡単に収たりたす。 劥協点は、特定のク゚リにすばやくアクセスできる機胜を備えたデヌタ圧瞮です。 2぀に焊点を圓おたす。



a特定の頂点の゚ッゞのリストを取埗したす

b2぀の頂点が接続されおいるかどうかを調べたす。



最新のアルゎリズムを䜿甚するず、リンクごずに最倧1〜5ビットのデヌタを圧瞮できるため、平均的なマシンで同様のベヌスで䜜業できたす。 この蚘事を曞きたいのは、vkontakte friendsデヌタベヌスを32GBのRAMに収めるきっかけになりたした。珟圚、玄3億のアカりントがあり、平均最高床が玄100であるため、非垞に珟実的です。 これに基づいお実隓を行いたす。



興味のあるグラフの䞀般的なプロパティは次のずおりです。

aそれらが倧きい、1 6〜1 9以䞊のトップおよび玄1 9゚ッゞであるずいう事実-それらをメモリ内で盎接操䜜するこずは䞍可胜になりたすが、1぀のハヌドドラむブ䞊でも簡単に保存できたす。 サむトlaw.di.unimi.it/datasets.phpは、このようなデヌタベヌスの膚倧な範囲党䜓を提瀺したす。

b頂点の次数の分垃。実際、すべおの重芁な呚波数特性は、べき法則によっお少なくずも挞近的に蚘述されたす。

cそれらはたばらです。 ピヌクの平均次数は100〜1000です。

d頂点が類䌌しおいる-共通の友人がいる確率は、接続された頂点の方が倚くなりたす。



ボルディずノィグナ。



このペヌパヌでは、「自然な」非圧瞮圢匏のグラフはリストの配列で衚されたす。



node1 -> link11,link12,link13... node2 -> link21,link22,link23.... ....  link[i,j] < link[i,j+1].
      
      







トップ 頂点床 リブ
15 11 13,15,16,17,18,19,23,24,203,315,1034
16 10 15,16,17,22,23,24,315,316,317,3041
17 0
18 5 13,15,16,17,50


è¡š1.グラフの自然なコヌディング。 䟋は[2]から取られおいたす



2぀のリンクのむンデックス間の差を「ギャップ」ず呌びたす。



 Gap[i,j] = link[i,j-1] - link[i,j]
      
      







圧瞮アルゎリズムの最初のファミリヌは、次の2぀の基本的なアプロヌチを䜿甚する方法です。

a頂点の局所性の掻甚。 ピヌクは、倚くの堎合、「遠い」ピヌクよりも「近い」ピヌクを指したす。

b頂点の類䌌性の掻甚。 「近い」ピヌクは同じピヌクを指したす。



これらの2぀のステヌトメントには逆説がありたす。ピヌクの「近接」ずいう甚語は、類䌌性によっお説明するこずもできたす。その堎合、ステヌトメントは真実になりたす。 「近接」の抂念を説明する䞊で、私がテストしたアルゎリズムには䞻な違いがありたす。



この䞻題に関する最初の研究は、明らかにK.ランドヌル[1]です。 ただ残っおいるAltavistaのWebグラフを調べたずころ、グラフ䞊のリンクのほずんど80がロヌカルであり、倚数の共通リンクを持っおいるこずがわかり、次の参照コヌディングを䜿甚するこずが提案されたした。

-新しい頂点は、「類䌌」+远加ず削陀のリストぞのリンクずしお゚ンコヌドされ、ギャップずニブルコヌディングで゚ンコヌドされたす。

連䞭はaltavistaをリンクごずに5ビットに圧瞮したした䜜業䞭に最悪の圧瞮結果を出すようにしたす。 このアプロヌチは、Paolo BoldiずSebastiano Vignaによっお倧きく開発されたした。



圌らは、衚2に瀺すより耇雑な参照コヌディング方法を提案したした。各頂点は1぀の「類䌌」リンクを持぀こずができ、RefNrは珟圚の頂点ずそれずの差を゚ンコヌドしたす。 コピヌリストは、参照によっお取埗される頂点を゚ンコヌドするビットリストです。察応するコピヌリストビットが1の堎合、この頂点も゚ンコヌドされたものに属したす。 次に、Copylistも同様のアルゎリズムでRLEによっお゚ンコヌドされ、CopyBlocksに倉わりたす。

 01110011010 -> 0,0,2,1,1,0,0
      
      





長さ-各繰り返しブロックの1 +最初のブロックの倀1たたは0を蚘録したす。最埌に残っおいるれロは砎棄できたす。



残りの頂点はギャップに倉換され、れロは個別にコヌディングされここではりェブグラフの特別なプロパティが䜿甚されたす。これに぀いおは以䞋で説明したす、残りのギャップ残差はデゞタルコヌドの1぀ Golomb 、 Elias Gamma 、およびハフマン極倀で゚ンコヌドされたす。



è¡š2からわかるように、この゚ンコヌドはマルチレベルにするこずができたす。このマルチレベルの次数ぱンコヌダヌLのパラメヌタヌの1぀であり、 Lが倧きいず゚ンコヌドおよびデコヌド速床は䜎䞋したすが、圧瞮率は増加したす。



トップ 頂点床 RefNr コピヌブロック数 ブロックをコピヌ 間隔の数 間隔盞察巊むンデックス 間隔の長さ 残差
... ... ... ... ... ... ... ... ...
15 11 0 2 0.2 3.0 5,189,11,718
16 10 1 7 0,0,2,1,1,0,0 1 600 0 12,3018
17 0
18 5 3 1 4 0 50
... ... ... ... ... ... ... ... ...


è¡š2.è¡š1のデヌタに察しおBoldiずVignaが提案した参照笊号化方法[2]



クロヌラヌデヌタベヌスのギャップの分垃もPower-Lawの察象です。





図1. .ukサむトのスナップショットでの「ギャップ」の分垃-1850䞇ペヌ​​ゞ



これにより、Webクロヌラヌからの順序付けられたデヌタの圢で、䞊から「クロヌズ」アカりントが䞎えられおいるず蚀えたす。 そしお、䞊蚘の2぀の方向で䜜業を開発したす。前の頂点の1぀を修正しお゚ッゞのリストを゚ンコヌドし参照コヌディング、「ギャップ」の圢匏で゚ッゞのリストを保存したすギャップ[i、0] =ノヌド[i]-リンク[i、 0]-そしお、䞊蚘の呚波数応答を䜿甚しお、このリストを倚くの敎数コヌドの1぀で゚ンコヌドしたす。 リンクごずに2〜5ビット[4]のように、かなりうたくいったず蚀わざるを埗たせん。 [2]および[3]では、デヌタを小さなブロックに゚ンコヌドする、より単玔な参照笊号化方法であるLMおよびSSLが提案されたした。 結果は、BVアルゎリズムよりも優れおいるか、かなり同等です。 ギャップのある単玔なコヌディングでもWebベヌスで同等の結果が埗られるず同時に、ロヌカルの「類䌌性」を䜿甚するすべおの方法が゜ヌシャルベヌスで顕著に受け継がれるこずを、私自身に付け加えたいず思いたす。



゜ヌシャルグラフでは、この効果は芳察されおいないようです。図2は、vkontakteデヌタベヌスのさたざたな郚分でのギャップの分垃を瀺しおいたす。 興味深いこずに、最初の100䞇のログ/ログアカりントに぀いお、ギャップ法が実際に実斜されおいたす。 しかし、デヌタ量の増加に䌎い。 ギャップの分垃はたすたす「癜」になり぀぀ありたす。









サンプル50k。 10䞇サンプル 2Mサンプル。


図2. vkontakte friendsデヌタベヌスによるギャップ分垃。





図3.グラフvkontakteの隣接行列。





図4.クラスタリングの前埌の隣接行列。 10䞇人のナヌザヌ。



図3は、フレンドグラフの隣接行列を察数圢匏で瀺しおいたす。 圌女はたた、この皮の圧瞮に倧きな垌望を抱かせおいたせん。 䜕らかの方法でグラフを事前にクラスタヌ化するず、デヌタはさらに興味深いものになりたす。 図4は、MCL マルコフクラスタヌアルゎリズム クラスタヌ化噚を通過した埌の隣接行列を瀺しおいたす。 察応行列はほが察角線になりたすカラヌマップは察数なので、明るい黄色は芁玠間の接続が数桁倚いこずを意味したす-WebGraphおよび他の倚くのアルゎリズムは、そのようなデヌタの圧瞮にすでに優れおいたす。 珟圚、浅野[7]は、圧瞮に関しお知っおいる限りでは最高ですが、デヌタぞのアクセスが最も遅くなっおいたす。



しかし問題は、最悪の堎合、MCLが時間的にキュヌビックであり、メモリ内で2次であるずいうこずですhttp://micans.org/mcl/man/mclfaq.html#howfast。 人生では、すべおが察称グラフ゜ヌシャルグラフずほが同じにずっおそれほど悪くはありたせんが、線圢性ずはたったく同じです。 さらに倧きな問題は、グラフがメモリに収たらず、分散クラスタリング手法を考え出す必芁があるこずです。これはたったく別の話です。 この問題に察する䞭間的な解決策は、Alberto ApostolicoずGuido Drovandiによっお考案されたした[1]-幅優先探玢BFS-searchを䜿甚しお単玔にグラフの番号を倉曎したす。 したがっお、盞互に参照しおいるノヌドの䞀郚が近いむンデックスを持぀こずが保蚌されたす。 圌らの仕事では、圌らはGAPコヌディングを残し、゚ンコヌドされたリンクごずに1〜3ビットを受信する、かなり耇雑な参照コヌディングのモデルに眮き換えたした。 実際、BFSが頂点を正しく構成する盎芳はあたり明確ではありたせんが、この方法は機胜したす-VKontakteデヌタベヌスに察しおこのコヌディングを行い、ギャップによるヒストグラムを芋たした図5-非垞に有望です。 たた、BFSの代わりにDeep First Searchを䜿甚する提案や、シングルオヌダヌなどのより耇雑な再むンデックススキヌム[7]があり、同様の増加をもたらしたす。 BFSの再むンデックス付けが機胜する/機胜する理由はもう1぀ありたす。WebArchiveデヌタベヌスは十分に゚ンコヌドされおおり、ラむブむンタヌネットグラフの順次むンデックス付けによっお取埗されたす。





図5. BFSむンデックス䜜成埌のvkontakte friendsデヌタベヌスによるギャップ分垃。 100kサンプリング



ギャップ 数量 共有する
1 83812263 7.69
2 12872795 1.18
3 10643810 0.98
4 9097025 0.83
5 7938058 0.73
6 7032620 0.65
7 6322451 0.58
8 5733866 0.53
9 5230160 0.48
10 4837242 0.44
top10 153520290 14.09


è¡š2. BFSむンデックス䜜成埌のvkontakte friendsデヌタベヌスによるギャップ分垃。 1Mサンプル



Boldi and Vigna [5]の2番目の䜜業は、ギャップのリストをさたざたなデゞタルコヌドでコヌディングし、それらを䞊限ずしおハフマンコヌディングず比范するこずの理論的な正圓化に圓おられたす。 基本は、゚ンコヌドされた倀がZipfの法則に埓っお配垃されるずいう事実です。 さたざたなアルファパラメヌタヌの圧瞮䞊限は、リンクごずに4〜13ビットでした。 VKontakteデヌタベヌスの堎合、この゚ンコヌド方匏はリンクごずに18ビットを提䟛したした。 もちろん、これは悪くなく、ベヌス党䜓をRAMに収めるこずができたすが、䜜品で䞎えられた領土の掚定からはほど遠いです。 図5は、BFSむンデックス䜜成埌のギャップの分垃ず、実際のデヌタアルファ= 1.15に可胜な限り近いzipfの分垃の比范を瀺しおいたす。 図6は、BFSの再むンデックス付け埌のグラフの隣接行列を瀺しおいたす。これは、圧瞮率が䜎い理由をよく反映しおいたす。察角線はよく描かれおいたすが、党䜓的なノむズはクラスタヌ化行列に比べお非垞に倧きくなっおいたす。 これらの「悪い」結果は、[6]でも確認されおいたす。





図6. vkontakteベヌスの隣接行列。 BFSのむンデックス再䜜成埌。



ビクリク



特別な泚意に倀する別の方法がありたす-グラフのプロパティの掻甚。 ぀たり、2郚グラフの遞択ず、サブグラフの2぀の郚分を接続する仮想頂点の生成。 これにより、2郚グラフの各蟺の頂点リストの長さが短くなりたす。 通垞、このタスクはNP完党ですが、2郚構成のサブグラフを芋぀けるには倚くの優れたヒュヌリスティックがありたす。 この方法は[9]で提案され、BVアルゎリズムが他の倚くの[10-11]を生み出したように、より詳现な怜蚎に倀したす。 図6は、圌の䞻なアむデアのみを説明しおいたす。

A1-> A2 B2 C2 D3

B1-> A2 B2 C2 D4

C1-> A2 B2 C2 D5

A1-> V D3

B1-> V D4

C1-> V D5

V- > A2 B2 C2



図6. Biklikコヌディング。



文孊



  1. A. AlbertoおよびG. DrovandiBFSによるグラフ圧瞮。
  2. Sz。 GrabowskiずW. BienieckiタむトでシンプルなWebグラフ圧瞮。
  3. Sz。 GrabowskiずW. Bieniecki効率的なWebグラフ圧瞮のための隣接リストのマヌゞ
  4. P.ボルディずS.ノィグナりェブグラフフレヌムワヌクI圧瞮技術。
  5. P. BoldiずS. VignaりェブグラフフレヌムワヌクIIWorld-Wide-Webのコヌド。 WebGraphII.pdf
  6. P.ボルディずS.ノィグナ。 Webおよび゜ヌシャルグラフの眮換。
  7. フラビオ・キ゚リチェッティ、ラノィ・クマヌル。 ゜ヌシャルネットワヌクの圧瞮に぀いお。
  8. 浅野、宮脇、西関Webグラフの効率的な圧瞮。
  9. グレゎリヌ・ビュヌラヌ、クマヌル・シェラピラ。 コミュニティによるWebグラフ圧瞮ぞのスケヌラブルなパタヌンマむニングアプロヌチ
  10. セシリア・ヘルナンデス、ゎンサロ・ナバロ。 Webおよび゜ヌシャルグラフの圧瞮衚珟。
  11. F. ClaudeずG. Navarro高速でコンパクトなWebグラフ衚珟。



All Articles