Data Scientist are o colectie de tehnici in cutia lor de instrumente proverbiala. Ingineria datelor, analiza statistica si invatarea automata sunt printre cele mai cunoscute. Cu toate acestea, exista numeroase cazuri in care analiza se concentreaza pe relatia dintre elementele de date. In aceste cazuri, datele sunt reprezentate cel mai bine ca un grafic. Analiza graficului, numita si analiza retelei, este o colectie de algoritmi pentru a raspunde la intrebari formulate impotriva datelor grafice. Analiza graficelor nu este noua.
Prima problema a graficului a fost pusa de Euler in 1736, cele Sapte Poduri din Konigsberg si a pus bazele campului matematic al teoriei graficelor.
Array
Aplicarea analizei grafice acopera o mare varietate de domenii, inclusiv marketing, biologie, fizica, informatica, sociologie si cibernetic, pentru a numi doar cateva. Versiunea RAPIDS 0.6 include prima versiune oficiala a cuGraph.
https://en.wikipedia.org/wiki/Seven_Bridges_of_K%C3%B6nigsberg
RAPIDS cuGraph este o biblioteca de algoritmi grafici care se integreaza perfect in ecosistemul stiintei datelor RAPIDS si permite cercetatorului de date sa apeleze cu usurinta algoritmi grafici folosind datele stocate intr-un cadru de date GPU.
Array
Pentru versiunea initiala, datele grafice trebuie sa fie in format de coordonate (COO), cunoscut si sub numele de lista de margini, si sunt reprezentate de doua coloane, Sursa si Destinatie. Luati in considerare urmatorul exemplu de date NetFlow si analizati doar primele cinci coloane. Coloanele „id.orig_h” si „id.resp_h” identifica un eveniment intre doua adrese IP. Aceste doua coloane reprezinta o lista de margini care poate fi utilizata pentru procesarea graficelor.
Exemplu de date Cyber NetFlow
Odata ce cele doua coloane de margine sunt identificate, omul de stiinta al datelor poate utiliza apoi oricare dintre analizele cuGraph.
Array
Pentru a rula algoritmul PageRank, utilizatorul ar efectua ceva de genul:
G = cugraph.Graph ()
G.add_edge_list (gdf [„src”], gdf [“dst”])
df = cugraph.pagerank (G)
Unul dintre obiectivele de proiectare ale cuGraph este de a avea un API familiar pentru oamenii de stiinta a datelor obisnuiti sa efectueze analize grafice. Prin urmare, cercetatorul de date cu experienta in NetworkX va recunoaste procesul de creare a unui obiect grafic si apoi rularea unei analize impotriva acelui obiect grafic. Un exemplu mai detaliat este dat in partea de jos a acestui blog.
- badoo porno www.ace-ace.co.jp
- porno papa global-autonews.com
- porno malien www.4x4brasil.com.br
- porno viol www.ass-media.de
- sun porno www.7d.org.ua
- porno coqnu www.nudist-camp.info
- miley cyrus porno www.balboa-island.com
- legal porno rcm.trvlbooking.ca
- porno pokémon www.wblib.org
- illico porno earlymusichicago.org
- cara st germain porno www.electricalguard.com
- porno hup proyectovision.net
- porno choc unityofeffort.com
- karin schubert porno www.americanstylefridgefreezer.co.uk
- humour porno www.greekspider.com
- oksana porno leanbuild.org
- film porno perfect 21cpp.com
- femme poilue porno www.horesga.de
- porno anal francais www.bestonlinecare.net
- kamasutra porno www.gazzettaweb.net
- maroc porno www.studyrama.be
- porno plage www.ligainternational.org
Versiunea RAPIDS 0.6 reprezinta prima versiune oficiala a cuGraph si primul pas catre un pachet complet de analiza a graficelor. Aceasta versiune initiala se concentreaza pe furnizarea unei fundatii si include mai multi algoritmi optimizati pentru analiza cu un singur GPU.
- Similitudine Jaccard – o masura a similitudinii vecinatatii intre varfurile conectate. In cadrul sistemelor de recomandari, acest lucru este foarte util pentru gasirea clientilor cu un comportament similar.
- Jaccard ponderat – acesta este similar cu Jaccard, cu exceptia faptului ca algoritmul insumeaza greutatile vertexului.
- Page Rank – aceasta este o masura de importanta relativa, utilizata cel mai faimos in motoarele de cautare, totusi are aplicatii in analiza retelelor sociale, sisteme de recomandare si pentru utilizari noi in stiinte naturale atunci cand studiaza relatia dintre proteine si in retelele ecologice.
- Single Source Shortest Path (SSSP) – este utilizat pentru a identifica cea mai scurta cale intre o pereche de varfuri. In cadrul unei retele rutiere poate fi folosit pentru a gasi cea mai rapida cale de la A la B. Mai mult, SSSP poate fi utilizat pentru optimizarea unei game largi de probleme logistice.
BFS Traversal
- Breadth-First Search (BFS) – acesta este un algoritm clasic de cautare care exploreaza iterativ graficul. Incepand de la un punct de insamantare, algoritmul elimina cate un hamei pe iteratie. Asa cum se arata in imaginea din stanga.
- Clusterare spectrala – clusterizarea grafica consta in gruparea varfurilor pe baza caracteristicilor lor, astfel incat sa existe o similitudine mare intre grupuri si o similaritate mica intre grupuri. Exista multe modalitati de a determina aceste grupuri. Schema de clusterizare spectrala construieste o matrice, rezolva o problema asociata valorii proprii si extrage informatii de divizare din vectorii proprii calculati. Sunt incluse atat versiunea de maximizare a modularitatii, cat si versiunea Min-Cut.
Clusterare spectrala Min-Cut vs Ground Adevar
- Louvain Clustering – este o alta tehnica de clustering grafic. Louvain foloseste Modularitatea ca metrica pentru combinarea iterativa a varfurilor in clustere. Louvain incepe cu fiecare varf din propriul cluster si fuzioneaza iterativ clusterele pe baza modularitatii.
Louvain
Algoritmii enumerati mai sus sunt proiectati pentru executie pe un singur GPU cu seturi de date in jur de 500 de milioane de margini sau mai putin. In comparatie cu o analiza NetworkX cu un singur nod in Python, cercetatorul de date se poate astepta la o imbunatatire a performantei de 50-500x in medie.
Performanta Louvain cu un singur GPU in comparatie cu NetworkX
Ca un mijloc de masurare a performantei, a fost utilizat etalonul PageRank de cautare web din HiBench Suite. Site-ul HiBench descrie suita ca „ … o suita de referinta pentru date mari care ajuta la evaluarea diferitelor cadre de date mari in termeni de viteza, debit si utilizari ale resurselor de sistem ”. O caracteristica a HiBench este ca masoara performanta de la capat la cap pe care o va experimenta un utilizator. Aceasta include incarcarea datelor, pregatirea datelor si rularea unei analize. Punctul de referinta PageRank consta in procesarea unui grafic pe baza paginilor web (varfuri) si a conexiunilor dintre paginile web (margini).
Rezultate HiBench Websearch PageRank
Cea mai mare provocare cu care s-a confruntat atunci cand a fost executata valoarea de referinta a fost cu cititorii de date. Cititorul CSV din cuDF este semnificativ mai rapid decat cel gasit in Pandas, totusi am intampinat probleme de scalabilitate cu seturi de date mari. Pentru a se asigura ca seturile mari de date au fost procesate, cititorul CSV de la cuDF a fost utilizat impreuna cu cititorul CSV gasit in Pandas. In plus, benchamrk a fost rulat pe un cluster Spark cu 10 noduri si pe o statie de lucru de mare putere care ruleaza NetworkX. Deoarece NetworkX este cel mai popular cadru grafic utilizat de oamenii de stiinta de date, aceste rezultate vor fi utilizate ca baza pentru evaluarea performantei.
RAPIDS cuDF + cuGraph este cu 300 de ori mai rapid decat NetworkX pentru setul de date imens. Daca se elimina timpii de incarcare a datelor si se compara doar numerele de performanta PageRank, atunci cuGraph este cu 3400x mai rapid decat NetworkX. Pe masura ce dimensiunile seturilor de date cresc, citirea datelor incepe sa devina factorul limitativ, citirea datelor contribuind la peste 92% din timpul de rulare.
Gasirea unor repere comparabile externe pentru Spark nu este trivala, deoarece numarul de noduri afecteaza performanta. Un rezultat de referinta de la Mellanox folosind 6 noduri dual-Xeon si RDMA executa setul de date gigant in 1.087 secunde. Lu Liu a raportat rezultate gigantice de 9.953 secunde pentru Spark si 4.078 secunde pentru Hadoop pe un cluster cu patru noduri. In cele din urma, Hameeza Ahmed si colab., Au masurat doar portiunea PageRank pe 4 noduri fata de setul de date gigant, cu un timp de rulare de 346,85 secunde. In comparatie, cuGraph PageRank pe setul de date gigant a durat 3,7 secunde, o viteza de 103x.
Depozitul cuGraph GitHub contine instructiuni detaliate despre cum sa accesati biblioteca cuGraph. Consultati https://github.com/rapidsai/cugraph
In plus, o colectie de exemplare de notebook-uri cuGraph poate fi gasita in depozitul de notebook-uri RAPIDS sub cugraph: https://github.com/rapidsai/notebooks/tree/branch-0.6/cugraph.
Urmatorul exemplu trece prin modul de executare a ponderii Jaccard pe un grafic in care ponderile sunt scorurile PageRank.
RAPIDS este un set de biblioteci open source pentru GPU care accelereaza pregatirea datelor, invatarea automata si acum analiza graficelor. Foaia de parcurs este pentru imbunatatirea analitica suplimentara si imbunatatirea constanta a performantei, cu scopul fiind ca fiecare algoritm cuGraph sa accepte multi-GPU. Echipa cuGraph este dornica sa auda feedback si impresii despre aceasta lansare initiala. Este planificata o serie de bloguri pe analize grafice, asa ca cautati mai multe bloguri pe cuGraph.








