Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Comunicatii


Qdidactic » stiinta & tehnica » comunicatii
Google - istoric si evolutie Google - de la inceput pana acum



Google - istoric si evolutie Google - de la inceput pana acum



Google pe scurt
Scurt Istoric Google
Anatomia unui mega-motor de cautare hipertext pentru Web

  • Introducere
    • Motoare de cautare - Evolutie: 1994-2000
    • Google: Evolutie concomitenta cu Web-ul
    • Caracteristici ale configuratiei
      • Capacitate imbunatatita de cautare
      • O cercetare academica a motorului de cautare
  • Trasaturile sistemului
    • PageRank: Ordonarea Web-ului
      • Descrierea unui calcul PageRank
      • Explicarea intuitiva
    • Textul link-ului
    • Alte trasaturi
  • Activitati similare
    • Extragerea de informatii
    • Diferente intre Web si colectiile bine controlate
  • Configuratia sistemului
    • Scurta descriere a arhitecturii Google
    • Structuri majore de date
      • BigFiles
      • Biblioteca (Repository)
      • Indexul documentelor
      • Lexiconul
      • Listele de hit-uri (Hit Lists)
      • Indexul primar (Forward Index)
      • Indexul complementar

Indexarea Web-ului



Cautarea

  • Sistemul de clasificare
  • Scurta recapitulare

Rezultate si mod de functionare

  • Parametri pentru stocare
  • Modul de functionare a sistemului
  • Procesul de cautare

Concluzii

  • Activitati viitoare
  • Cautare la standarde inalte
  • Arhitectura scalabila
  • Un instrument de cercetare

Google pe scurt

Google este cel mai mare motor de cautare si datorita parteneriatelor sale cu Yahoo!, Netscape si altele este capabil sa raspunda la mult mai multe interogari decat orice alt serviciu online asemanator.
Interogari solutionate in fiecare zi: peste 150 de milioane
Pagini web parcurse: peste 2,4 miliarde Tipuri de fisiere cautate:
HyperText Markup Language (html)q Adobe Portable Document Format (pdf)q Adobe PostScript (ps)q Lotus 1-2-3 (wk1, wk2, wk3, wk4, wk5, wki, wks, wku)q Lotus WordPro (lwp)q MacWrite (mw)q Microsoft Excel (xls)q Microsoft PowerPoint (ppt)q Microsoft Word (doc)q Microsoft Works (wks, wps, wdb)q Microsoft Write (wri)q Rich Text Format (rtf)q Text (ans, txt)q Imagini: peste 330 milioane Mesaje Usenet: peste 700 de milioane

Utilizatori
Google.com este unul din primele zece dintre cele mai populare site-uri de pe Internet si este folosit de oameni din lumea intreaga

Media lunara a numarului de utilizatori: 55.6 milioane (Nilesen/NetRatings 5/02)

Gradul de utilizare atat acasa, cat si la birou: #4 (Nilesen/NetRatings 5/02)

Limbile pentru care Google asigura o interfata: 81
Limbile in care Google ofera rezultate: 35 Utilizatori: Mai mult de jumatate din traficul Google.com provine din afara USA

Administratie
Personalul Google include profesionisti cu experienta in domeniul tehnologiei, iar compania este sustinuta de fonduri provenite de la doua firme ce se ocupa cu investitiile de risc.
Numar aproximativ de angajati: 400
Detinatori ai titlului de doctor: peste 50

SCURT ISTORIC GOOGLE

1995
Martie-Decembrie 1995
Sergey Brin si Larry Page se intalnesc la o adunare a doctorilor in informatica de la Universitatea Stanford. Aproape de sfarsitul anului, colaboreaza in vederea dezvoltarii de tehnologii care vor deveni temelia motorului de cautare Google. Se spune ca fondatorii companiei Sergey Brin si Larry Page nu se intelegeau chiar foarte bine atunci cand s-au intalnit pentru prima oara. Totusi, opiniile puternice, dar si parerile contradictorii vor gasi in cele din urma un punct comun in incercarea de a solutiona una dintre cele mai mari provocari legate de domeniul computerelor: extragerea unor informatii relevante dintr-o serie masiva de date.

1996-1997
Ianuarie 1996-Decembrie1997
Sergey si Larry au inceput colaborarea la BackRub (precursorul motorului de cautare Google), numit astfel datorita capacitatii sale unice de a analiza back links - link-urile care fac referinta la un anumit site. Larry si-a asumat sarcina de a construi un nou tip de configurawie de server-e, utilizand PC-uri nepretentioase in locul unor sisteme scumpe.
Un an mai tarziu, perspectiva lor unica asupra analizei link-urilor a determinat o crestere a reputatiei motorului BackRub printre cei care mai vazusera aceasta tehnologie.

1998
Ianuarie-Iulie 1998
Larry si Sergey continua sa perfectioneze tehnologia de cautare Google. Urmand aceesi conceptie care va deveni o parte esentiala a metodei Google, ei ofera un terabyte de spatii de stocare la preturi accesibile si isi construiesc propriul centru de gazduire a calculatoarelor in dormitorul lui Larry de la Stanford, care devine si centrul de date Google, in timp ce camera lui Sergey devine birou. Si-au deschis propria companie incurajati de unul dintre fondatorii Yahoo! si coleg de universitate, David Filo. Filo a aprobat eficienta tehnologiei, dar i-a incurajat pe Larry si Sergey sa isi dezvolte singuri afacerea prin intemeierea unei companii de motoare de cautare.

August-Decembrie 1998
Neputand atrage atentia portalurilor importante, Sergey si Larry concep un plan de afaceri si, avand doar un bagaj de cunostinte, strang 1 milion de dolari de la familie, prieteni si investitori pentru a forma Google. Ca fondator al Sun Microsystems, Andy Bechtolsheim a fost solicitat sa isi spuna parerea. Cand a vazut varianta demo a lui Google, a intuit potentialul acestuia din primul moment.
Pe 7 septembrie 1998, Google Inc. este inregistrat, isi muta sediul in primul sa birou aflat in garajul unui prieten din California si are 4 angajati. Google raspunde la 10,000 de intrebari pe zi. PC Magazine include Google, care este inca in beta, in Topul 100 al site-urilor web si motoarelor de cautare din 1998.

1999
Februarie-Iunie 1999
Google isi muta sediul pe University Avenue din Palo Alto, California, are 8 angajati si raspunde la 500,000 de intrebari. Red Hat devine primul client comercial al Google. Google primeste 25 de milioane de dolari in mod egal de la Sequoia Capital si Kleiner Perkins Caufield & Byers. Michael Moritz de la Sequoia si John Doerr de la Kleiner Perkins si investitorul Ram Shriram se alatura consiliului director al Google. AOL/Netscape adauga tehnologia de cautare Google in portalul sau, Netcenter.

August-Decembrie 1999
Google se muta in Mountain View, California si isi lanseaza in mod oficial site-ul. Compania efectueaza 3 milioane de cautari pe zi si are 39 de angajati. Virgilio, portalul online leader in Italia, alege Google sa ofere servicii WebSearchTM. Google castiga o serie de premii in mai putin de 4 luni, printre care: Technical Excellence Award oferit de PC Magazine pentru inovatii in dezvoltarea aplicatiilor web, Top 100 pentru cele mai bune site-uri pe 1999 oferit de Shift si P.O.V. si Top Ten Best Cybertech pe 1999 oferit de TIME.

2000
Ianuarie-Aprilie 2000
Google prezinta prima tehnologie completa de cautare pentru telefoane WAP si accesorii si lanseaza o intreaga gama de servicii automate si personalizate Google WebSearch. Google inglobeaza si Open Directory Project de la Netscape, care diversifica si largeste rezultatele cautarii Google cu liste de directoare selectate manual. Revista Yahoo! InternetLife numeste Google cel mai bun motor de cautare, iar revista Smart Computing intorduce Google in top 50 Hot Technologies.

Mai-Iunie 2000
Google initiaza metode de cautare in alte 10 limbi in afara de engleza si castiga prestigiosul premiu Webby pentru cea mai buna realizare tehnica a anului 2000 si premiul People's Voice la categoria realizare tehnica a anului 2000. Discursul celor doi, Sergey si Larry, a avut doar cinci cuvinte: "We love you, Google users!".
In luna urmatoare, Google devine cel mai mare motor de cautare de pe web, avand un index nou continand 1 bilion de URL-uri. Yahoo! selecteaza Google ca suport informational standard pentru completarea directorului web si ghidului de navigare Yahoo!. Google ofera raspuns la 18 milioane de intrebari pe zi.
Pe 26 iunie, Google si Yahoo! anunta un parteneriat care asigura reputatia companiei nu doar ca agent ce asigura tehnologie, dar si ca o afacere substantiala ce se ocupa cu asigurarea raspunsurilor la peste 18 milioane de intrebari pe zi.

August-Octombrie 2000
Google semneaza acorduri cu portalurile si site-urile cele mai cunoscute din Statele Unite, Europa si Asia, lanseaza programe publicitare pentru suplimentarea serviciilor de cautare aflate intr-o ascensiune continua, si adauga o serie de trasaturi avansate in procesul de cautare care include Google Number SearchTM (GNS), care face introducerea de date de tip wireless mai usoara si mai rapida pe telefoanele WAP. Forbes include Google in clasamentul Best of the Web, PC World numeste Google cel mai bun motor de cautare si Google primeste premiul WIRED pentru cel mai inteligent agent de pe Internet.
Portalul important al Chinei NetEase si portalul NEC's BIGLOBE din Japonia au adaugat Google la site-urile lor
Noiembrie-Decembrie 2000
Google raspunde la mai mult de 60 de milioane de cautari pe zi. Indexul Google cuprinde mai mult de 1.3 bilioane de pagini web. Google lanseaza bara de unelte Google (Google ToolbarTM ), un browser care poate fi descarcat si care mareste abilitatea utilizatorilor de a cauta informatii pe orice pagina de pe intregul web. PC Magazine din Anglia recompenseaza Google cu premiul pentru cea mai buna inovatie de pe Internet.

2001
Ianuarie-Februarie 2001
Google raspunde la mai mult de 100 de milioane de cautari pe zi. Google achizitioneaza arhiva Usenet de la Deja.com care dateaza din 1995. Google lanseaza noi tehnologii wireless de cautare special destinate pentru I-mode pentru telefoanele mobile din Japonia. Portalul european multi-acces, Vizzavi, alege Google pentru motorul sau de cautare. Google lanseaza Google PhoneBook, care ofera numere de telefon si adrese valabile.


Martie-Aprilie 2001
Dr. Eric Schmidt, presedinte si CEO (Chief Executive Officer) al Novell, fost CTO al Sun Microsystems, se alatura Google ca presedinte al consiliului director. Google intareste serviciile de cautare la Yahoo! Japonia, Fujitsu NIFTY si NEC BIGLOBE, cele mai bune portaluri din Japonia, si, de asemenea, site-urile corporatiilor Procter&Gamble, IDG.net (care contine 300 de site-uri), Vodaphone si MarthaStewart.com. Google anunta ca a gasit ceea ce multe alte companii online au pierdut din vedere: profitul.

Mai-Iunie 2001
Handspring integreaza tehnologia de cautare Google in propriul browser web, Blazer, disponibil pentru orice computer bazat pe Palm. Google controleaza 130 de portaluri si site-uri din 30 de tari. Google adauga Yahoo!, Procter&Gamble, IDG.net (care continea 300 de site-uri), Vodaphone si MarthaStewart.com, Spring si Handspring listei sale, aflate in continua crestere, de clienti ai serviciilor sale de cautare.
Programele promotionale Google atrag mai mult de 350 de sponsori si mii de agenti publicitari AdWords, si ofera rate de accesare de la 4 pana la 5 ori mai mult decat pentru accesarea bannerelor obisnuite.
Google ofera domenii in UK, Germania, Franta, Italia, Elvetia, Canada, Japonia si Coreea. Utilizatorii pot selecta interfata Google in aproape 40 de limbi in afara de engleza. Optiunea Google de traducere automata traduce pagini gasite ca rezultat al procedeului de cautare in limba preferata a utilizatorului.

Iulie-August 2001
Dr. Eric E. Schmidt este numit noul CEO al Google, in timp ce co-fondatorii sai, Larry Page si Sergey Brin, devin presedinti. Google castiga alt premiu Webby, de aceasta data la categoria Best Practices. Google ofera posibilitatea de cautare si pentru utilizatorii Cingular Wireless si pentru mai mult de 300 de website-uri ale corporatiilor Sony. Noul index Google Image Search, cu 250 de milioane de imagini si cautare de informatii, devine disponibil prin pagina avansata de cautare Google. Sistemele de cautare, tendintele si noutatile sunt publicate pe Google Zeitgeist. Partenerii Google de la Logitech care ofereau iTouchTM ofereau utilizatorilor de tastatura si mouse-uri acces instantaneu pe motorul de cautare Google.

Octombrie 2001
Google semneaza un parteneriat cu Universo Online (cel mai mare ISP din America Latina, avand 80% din utilizatorii Internet din Brazilia).

Decembrie 2001
Indexul Google depaseste granita de 3 milioane de pagini; Google Groups (arhiva de newsgroup-uri) iese din stadiul beta.

Februarie 2002
EarthLink, unul dintre leaderii ISP din Statele Unite, adopta Google ca motor de cautare preferat pe site-ul www.earthlink.com.

Mai 2002
America On Line si Google semneaza un contract pe mai multi ani, prin care Google este folosit ca motor de cautare pentru site-urile AOL, CompuServe, AOL.COM si Netscape. De asemenea, Google va afisa link-uri platite de clientii sai, pe aceste site-uri (Google Sponsored links). Dupa terminarea programului de afisari, Google va ramane singurul furnizor de link-uri sponsorizate pe site-urile din proprietatea AOL.
Conform BtoB - cea mai importanta publicatie de marketing din SUA -, Google intra in top 10 al firmelor de reclama.

Iunie 2002
Google anunta ca firme ca The Boeing Company, Cisco Systems, PBS.org, National Semiconductor Corp., Sur La Table, Universitatea din Florida si altele au ales produsul Google Search Appliance pentru facilitatile de cautare de produse si informatii pe intranet-urile de corporatie si pe site-urile lor Web.

Iulie 2002
Cautarile Google devin disponibile pentru milioanele de clienti AT&T Worldnet ® Service. De asemenea, clientii AT&T vor avea acces si la reclamele AdWords SelectT.
AskJeeves si Google semneaza un contract pe trei ani, prin care AskJeeves va afisa Google Sponsored Links. Se estimeaza ca veniturile din afisarile link-urilor sponsorizate vor depasi 100 milioane de dolari.

Va prezentam in continuare un text realizat de creatorii Google, Sergey Brin si Larry Page, in perioada studentiei lor. La momentul redactarii, motorul Google, inca in varianta experimentala, indexa aproximativ 24 de milioane de pagini; pentru comparatie, la momentul actual, Google indexeaza peste 2 miliarde de pagini. Consideram utila prezentarea acestei lucrari, deoarece prezinta filosofia care sta la baza motorului si rationamentele care au facut din Google una dintre cele mai ingenioase si de succes constructii ale mintii umane pe Internet.


Anatomia unui mega-motor de cautare hipertext pentru Web

Aceasta lucrare prezinta Google, prototipul unui mega-motor de cautare care utilizeaza in mod extensiv structura existenta in hipertext. Google este conceput sa parcurga si sa indexeze in mod eficient web-ul, dar si sa ofere rezultate mult mai satisfacatoare decat celelalte sisteme. Prototipul continand textul integral si evidenta hyperlink-urilor a peste 24 milioane de pagini este disponibila la https://google.stanford.edu/.
Proiectarea unui motor de cautare este o provocare. Motoarele de cautare indexeaza zeci sau chiar sute de milioane de pagini web, implicand un numar echivalent de termeni distincti. Acestea raspund la zeci de milioane de intrebari in fiecare zi. Desi importanta acestor motoare de cautare pe web este mare, totusi ele nu au constituit subiectul unei cercetari academice amanuntite. In plus, datorita gradului rapid de avansare a tehnologiei si dezvoltarii continue a web-ului, metoda de creare a unui motor de cautare este foarte diferita de cea folosita acum trei ani. Aceasta lucrare ofera o descriere amanuntita a motorului nostru de cautare, prima de acest gen din cate stim noi.
In afara problemelor de masurare a capacitatii motoarelor traditionale de cautare pana la a putea suporta o cantitate importanta de date, exista noi provocari tehnice corelate cu utilizarea informatiilor aditionale prezente in hipertext, cu scopul producerii de rezultate mai bune. Lucrarea de fata pune aceasta intrebare, cum sa construiesti un sistem practic de masurare care poate folosi informatia aditionala din hipertext. De asemenea, luam in considerare modul de tratare efectiv al colectiilor de hipertext, care nu pot fi in intregime controlate si unde fiecare este liber sa publice ceea ce doreste.



1. Introducere

Web-ul creeaza noi provocari pentru obtinerea de informatii. Cantitatea de informatii de pe web creste intr-un ritm alert, pe masura numarului de noi utilizatori lipsiti de experienta in arta cautarii pe web. De obicei, oamenii navigheaza pe web folosind graficul acestuia de link-uri, adeseori incepand cu indici superiori calitativ, mentinuti de interventia umana, cum ar fi Yahoo! sau cu motoare de cautare. Listele unde intervine mintea umana acopera subiecte diverse si populare, dar sunt subiective, costisitoare de intretinut si mentinut, greu de imbunatatit si nu pot acoperi toate subiectele ce tin de domenii specializate (ezoterice-). Motoarele de cautare automate, care se bazeaza pe potrivirea de cuvinte-cheie, ofera, in mod obisnuit, prea multe rezultate neconcludente. Pentru a inrautati situatia, unii agenti publicitari incearca sa castige atentia prin diferite metode destinate sa induca in eroare motoarele automate de cautare. Noi am construit un motor de cautare pe scara larga care are raspuns pentru multe din problemele sistemului existent. Acesta utilizeaza, in special, structura aditionala din hipertext pentru a oferi rezultate concludente. Am numit acest sistem Google deoarece este un cuvant asemanator cu googol sau 10100 si corespunde cel mai bine intentiei noastre de a construi motoare de cautare pe scara larga.

1.1 Motoare de cautare - Evolutie: 1994-2000

Tehnologia motoarelor de cautare a fost obligata sa se reinventeze in mod constant pentru a putea tine pasul cu expansiunea web-ului. In 1994, unul dintre primele motoare de cautare, World Wide Web Worm (WWWW) [McBryan 94], avea un index de 110,000 pagini web si documente accesibile pe web. In noiembrie 1997, motoarele de cautare cele mai performante realizau indexarea de la 2 milioane (WebCrawler) pana la 100 de milioane de documente web (din Search Engine Watch). Este previzibil ca, pana in anul 2000, un index complet al Web-ului sa contina peste un bilion de documente. In acelasi timp, numarul interogarilor la care pot face fata motoarele de cautare a crescut intr-un ritm incredibil de rapid. In martie si aprilie 1994, World Wide Web Worm primea in jur de 1500 de intrebari pe zi. In noiembrie 1997, Altavista pretindea ca rezolva aproximativ 20 de milioane de interogari pe zi. Odata cu cresterea numarului de utilizatori ai web-ului si sistemelor automate care puneau intrebari motoarelor de cautare, este posibil ca motoarele performante de cautare sa poata raspunde la sute de milioane de intrebari pe zi pana in anul 2000. Scopul sistemului nostru este sa rezolve multe dintre aceste probleme, atat din punct de vedere al calitatii, cat si al scalabilitatii, coordonate introduse de tehnologia motoarelor de cautare care au atins cifre extraordinare.

1.2 Google: Evolutie concomitenta cu Web-ul

Crearea unui motor de cautare care sa tina pasul cu web-ul zilelor noastre este subordonata multor provocari. Tehnologia rapida de parcurgere este necesara pentru a tine o evidenta a documentelor web si pentru al le actualiza in permanenta. Spatiul de stocare trebuie folosit in mod eficient pentru organizarea indicilor si, optional, chiar a documentelor. Sistemul de indexare trebuie sa proceseze cat mai bine sute de gigabiti de date. Intrebarile trebuie sa aiba un raspuns intr-un interval cat mai scurt, la o rata de sute pana la mii pe secunda.
Aceste sarcini devin din ce in ce mai dificile pe masura ce Web-ul se dezvolta. Totusi, performantele hardware si costurile au crescut si ele in mod constant pentru a rezolva partial aceasta problema. Exista, bineinteles, cateva exceptii importante de la acest progres cum ar fi timpul de cautare pe disc si performantele sistemului de operare. In proiectarea sistemului Google, am luat in considerare atat rata de evolutie a Web-ului, cat si schimbarile tehnologice. Google este construit in asa fel incat sa parcurga eficient mari cantitati de date. In acelasi timp, Google utilizeaza eficient spatiul de stocare pentru organizarea indexului. Structurile sale informationale sunt optimizate pentru accesul rapid si concludent (vezi sectiunea 4.2). Speram ca pretul indexarii si stocarii de text sau HTML sa devina in cele din urma mai mic in raport cu cantitatea de date ce va fi disponibila (vezi Anexa B). Acest lucru va genera caracteristici mai performante de organizare pentru sistemele centralizate ca Google.

1.3 Caracteristici ale configuratiei

1.3.1 Capacitate imbunatatita de cautare

Scopul principal a fost acela de a imbunatati calitatea motoarelor de cautare. In 1994, existau pareri ca un index complet de cautare va face posibila gasirea rapida a oricarui raspuns. In opinia Best of the Web 1994 - Navigators, "Cel mai bun sistem de navigare ar trebui sa faciliteze gasirea unui raspuns la aproape orice intrebare pe Web (din momentul introducerii datelor)". Totusi, Web-ul anului 1997 este diferit. Oricine a utilizat recent un motor de cautare, poate oricand sa spuna ca nu complexitatea indexului este singurul factor care asigura calitatea rezultatelor cautarii. Rezultatele neconcludente (junk results) estompeaza de obicei relevanta rezultatelor de care un utilizator este intr-adevar interesat. De fapt, din noiembrie 1997, numai unul dintre cele 4 motoare de cautare comerciale isi mentioneaza numele (returneaza pagina proprie de cautare ca raspuns la numele sau in topul primelor 10 rezultate). Una dintre principalele cauze ale acestei probleme este aceea ca numarul documentelor din indici a crescut progresiv acoperind diferitele grade de importanta, in timp ce modul de percepere al utilizatorului asupra acestor documente nu s-a schimbat. Oamenii manifesta in continuare interes doar pentru primele 10 rezultate. Din acest motiv, pe masura ce colectia de date se mareste, avem nevoie de instrumente cu un grad ridicat de precizie (adica numar de documente relevante returnate, sa zicem in topul primelor 10 rezultate). Intr-adevar, vrem ca notiunea de "relevant" sa includa caracteristica de cel mai important ignorand chiar cautarea in sine (numarul total de documente relevante pe care sistemul este capabil sa le ofere. Exista chiar un sentiment de optimism care se refera la utilizarea mai multor informatii hipertextuale ce pot contribui la imbunatatirea cautarii si la alte aplicatii [Marchiori 97] [Spertus 97] [Weiss 97] [Kleinberg 98]. In particular, structura si textul link-ului ofera multe informatii pentru efectuarea de analize relevante si filtrari de calitate. Google foloseste atat structura link-ului cat si textul acestuia (vezi sectiunile 2.1 si 2.2).

1.3.2. O cercetare academica a motorului de cautare

In afara de o crestere considerabila, Web-ul a adoptat si o caracteristica comerciala de-a lungul timpului. In 1993, 1,5% din serverele web erau pe domenii .com. Numarul acestora a atins 60 de procente in 1997. In acelasi timp, motoarele de cautare au parasit academicul in favoarea comercialului. Pana in prezent dezvoltarea majoritatii motoarelor de cautare a fost efectuata de companii care aveau prea putin de-a face cu detaliile tehnice. Acest fenomen a determinat ramanerea in umbra a tehnologiei motoarelor de cautare si orientarea acestora catre comercial (vezi Anexa A). Cu Google, scopul nostru este acela de a orienta dezvoltarea si perceperea acestora catre sfera academicului.
O alta trasatura importanta a acestei configuratii era construirea de sisteme pe care multi oameni sa le poate utiliza. Modul de utilizare era important pentru noi deoarece suntem de parere ca unele dintre cele mai interesante cercetari implica manipularea unei vaste cantitati de informatii care sunt disponibile pe sistemele web moderne. De exemplu, zilnic sunt initiate zeci de milioane de cautari. Totusi, toate aceste date sunt foarte dificil de obtinut, in special pentru ca se considera ca au valoare comerciala.
Scopul final al acestei configuratii era sa realizam o arhitectura care sa poata sustine activitati inedite de cautare pe scara larga a informatiei pe web. Pentru a sprijini aceste activitati de cautare, Google stocheaza toate documentele in format comprimat pe care le parcurge. Unul dintre scopurile principale ale configuratiei Google a fost acela de a stabili un mediu unde ceilalti cautatori puteau intra repede, procesa sectiuni considerabile ale web-ului si oferi rezultate interesante care ar fi fost greu de oferit prin adoptarea unei alte metode. In intervalul scurt de timp in care sistemul a fost construit, existau deja cateva lucrari care foloseau bazele de date oferite de Google si multe altele sunt realizate acum. O alta intentie a noastra este aceea de a constitui un mediu asemanator cu un laborator spatial unde cercetatorii sau chiar studentii sa poata propune si chiar executa experimente interesante folosind informatiile complexe ale web-ului.

2. Trasaturile sistemului

Motorul de cautare Google este caracterizat de doua trasaturi importante care ajuta la producerea de rezultate cu un grad ridicat de precizie. In primul rand, Google se foloseste de structura de link-uri a Web-ului pentru a calcula un indice calitativ al fiecarei pagini web. Aceasta estimare a nivelului calitativ se numeste PageRank In al doilea rand, Google utilizeaza link-urile pentru a imbunatati rezultatele cautarii.

2.1 PageRank: Ordonarea Web-ului

Graficul de link-uri al web-ului este o resursa importanta care a ramas in mare parte neutilizata de motoarele de cautare. Am realizat harti continand nu mai putin de 518 milioane din aceste hyperlink-uri, o mostra semnificativa a totalului. Aceste harti permit calcularea rapida a PageRank-ului unei pagini web, o masura obiectiva a importantei link-urilor care corespunde cu ideea subiectiva de importanta a oamenilor. Datorita acestei corespondente, PageRank reprezinta o metoda excelenta de stabilire a gradului de importanta a rezultatelor cautarilor bazate pe cuvinte cheie. Pentru cele mai populare subiecte, un text simplu care se potriveste cu cautarea si care este limitat la titluri ale paginii web este foarte bine reprezentat atunci cand PageRank stabileste importanta rezultatelor (demonstratie disponibila la google.stanford.edu). Pentru cautarile ce au la baza un text integral in sistemul principal Google, PageRank este, de asemenea, de mare ajutor.

2.1.1 Descrierea unui calcul PageRank

Literatura de specialitate referitoare la link-uri a fost raportata la web, in general prin numerotarea link-urilor sau backlink-urilor unei pagini date. Acest lucru stabileste cu aproximatie importanta sau calitatea unei pagini. PageRank extinde aceasta idee nu prin efectuarea unei numerotari a link-urilor din toate paginile, ci prin stabilirea numarului de link-uri dintr-o pagina. PageRank este definit dupa cum urmeaza:
Presupunem ca pagina A este formata din paginile T1 . Tn care se refera la aceasta (adica sunt link-uri). Parametrul d este un factor de nivelare care se afla intre 0 si 1. De obicei, stabilim valoarea 0.85 pentru acest factor. Mai multe detalii despre d sunt oferite in sectiunea urmatoare. De asemenea, C(A) este definit ca un numar de link-uri care nu fac parte din pagina A. PageRank-ul paginii A este dupa cum urmeaza:
PR(A) = (1-d) +d(PR(T1)/C(T1)+ . +PR(Tn)/C(Tn))
Trebuie retinut ca PageRank formeaza o distributie a probabilitatii paginilor web, astfel ca suma tuturor paginilor web ce tin de PageRank este 1.
PageRank sau PR(A) poate fi calculat utilizand un simplu algoritm repetabil si care corespunde principalului vector propriu al matricii link-ului normalizat al web-ului. De asemenea, un PageRank pentru 26 milioane de pagini web poate fi calculat in cateva ore intr-un punct de lucru de marime medie. Exista multe alte detalii care depasesc intentia acestei lucrari.

2.1.2 Explicarea intuitiva

PageRank poate fi considerat un model al comportamentului utilizatorului. Sa presupunem ca exista un navigator oarecare care viziteaza o pagina web aleasa la intamplare si care acceseaza link-urile, fara a reveni la pagina initiala: in cele din urma se va plictisi si se va orienta spre alta pagina web aleasa la intamplare. Probabilitatea ca acest navigator sa viziteze o pagina este reprezentata de PageRank. Iar d, factorul de nivelare, reprezinta probabilitatea ca navigatorul sa se plictiseasca la fiecare pagina accesata si sa continue cautarea paginilor la intamplare. O variatie importanta este aceea de a adauga doar factorul de nivelare d unei singure pagini sau unui grup de pagini. Acest lucru permite personalizarea si poate face aproape imposibila inducerea deliberata in eroare a sistemului pentru obtinerea unui calificativ superior. Pentru mai multe referiri la PageRank, vezi [Page 98]
O alta explicatie intuitiva este ca o pagina poate avea un PageRank ridicat daca exista mai multe pagini care fac referire la aceasta sau daca exista cateva pagini care au un PageRank ridicat si care o recomanda. In mod intuitiv, paginile la care se face referire din multe colturi ale web-ului sunt considerate importante. De asemenea, paginile care probabil au o singura referire de la gazda a Yahoo! sunt considerate importante. Daca o pagina nu are un nivel calitativ ridicat sau are un link insuficient, este mai mult decat probabil ca pagina gazda a Yahoo! nu va avea nici un link pentru aceasta. PageRank face fata ambelor situatii si chiar mai mult de atat prin propagarea recursiva a gradului de importanta in intreaga structura de link-uri a web-ului.

2.2 Textul link-ului

Textul link-ului este tratat intr-un mod cu totul special de motorul nostru de cautare. Majoritatea motoarelor de cautare asociaza textul link-ului cu pagina de care se leaga. In plus, noi il asociem cu pagina pe care link-ul respectiv o indica. Acest sistem prezinta mai multe avantaje. In primul rand, link-urile ofera deseori descrieri mai precise ale paginilor web decat o fac paginile respective. In al doilea rand, link-urile pot face referire la documente care nu pot fi indexate de un motor de cautare bazat pe text, cum ar fi: imagini, programe sau baze de date. Acest lucru face posibila returnarea paginilor web care nici macar nu au fost parcurse. Trebuie retinut ca paginile care nu au fost parcurse pot cauza probleme din moment ce nu le-a fost niciodata verificata validitatea inainte de a fi oferite utilizatorului. In acest caz, motorul de cautare poate oferi o pagina care nu a existat niciodata cu adevarat, dar care are hyperlink-uri care fac referire la ea. Totusi, este posibil ca rezultatele sa fie sortate, astfel ca aceasta problema apare rareori.
Ideea corelarii textului link-ului cu pagina web la care se refera a fost implementata in World Wide Web Worm [McBryan 94], in special pentru ca ajuta la cautarea informatiei de tip non-text si mareste aria de acoperire a cautarii prin numarul mai redus de documente descarcate. Folosim propagarea de link-uri deoarece textul link-ului poate contribui la oferirea de rezultate mai bune. Utilizarea eficienta a text-ului link-ului este dificila din punct de vedere tehnic din cauza cantitatilor mari de date care trebuie procesate. In procesul de parcurgere a 24 milioane de pagini, am indexat peste 259 de milioane de link-uri.

2.3 Alte trasaturi

In afara de PageRank si de utilizarea textului link-ului, Google are si alte trasaturi. Prima este aceea ca are informatii de baza pentru toate cautarile si astfel utilizeaza, in mod frecvent, proximitatea in procesul de cautare. A doua se refera la faptul ca Google are in vedere detaliile vizuale ale prezentarii cum ar fi marimea fonturilor. Cuvintele scrise cu un font mai mare sau cu caractere ingrosate sunt percepute altfel decat celelalte cuvinte. A treia trasatura este aceea ca se tine o evidenta a intregului sir al paginilor HTML.

3. Activitati similare

Cercetarea navigarii pe web are o istorie scurta si concisa. World Wide Web Worm (WWWW) [McBryan 94] a fost unul dintre primele motoare de cautare. Acesta a fost ulterior urmat de alte cateva motoare de cautare academice, dintre care multe sunt acum companii publice. Comparativ cu dezvoltarea Web-ului si importanta motoarelor de cautare, exista putine documente valoroase refe-ritoare la motoarele de cautare recente [Pinkerton 94]. Conform lui Michael Mauldin (cercetator la Lycos Inc) "serviciile variate (inclusiv Lycos) urma-resc indeaproape detaliile acestor baze de date". Totusi, exista studii despre trasaturile specifice ale motoarelor de cautare. Un studiu bine realizat este acela care duce la obtinerea de rezultate prin procesarea ulterioara a rezultatelor motoarelor de cautare comerciale sau la producerea, la scara redusa, de motoare de cautare individualizate. Cercetari amanuntite au fost facute pe sistemele care se ocupa cu extragerea de informatii, in special pe colectiile bine controlate. In urmatoarele doua sectiuni, discutam despre zone unde aceasta cerce-tare trebuie extinsa pentru a se putea lucra mult mai bine pe web.

3.1 Extragerea de informatii

Cercetarea sistemelor care se ocupa cu extra-gerea de informatii a fost initiata acum multi ani si este acum bine dezvoltata [Witten 94]. Totusi, majoritatea cercetarilor asupra acestor sisteme se concentreaza pe colectiile omogene si bine intre-tinute cum ar fi: colectiile de lucrari stiintifice sau articole despre un subiect apropiat. Intr-adevar, prototipul extragerii de informatii, The Text Retrie-val Conference [Trec 96] foloseste pentru teste colectii mici dar bine controlate. Testul "Very Large Corpus" are doar 20 GB in comparatie cu 147 GB ai 24 de milioane de pagini web pe care l-am parcurs noi. Tot ce functioneaza bine pe TREC nu ofera de obicei rezultate satisfacatoare pe web. De exemplu, modelul de vector spatial standard incearca sa returneze documentele care se apropie cel mai mult de interogare, tinand seama de faptul ca atat interogarea cat si documentul sunt vectori definiti de ocurenta cuvintelor lor. Pe web, aceasta strategie ofera de obicei documente scurte care contin interogarea si cateva cuvinte in plus. De exemplu, am observat ca un motor important de cautare returneaza o pagina continand doar "Bill Clinton Sucks" si o fotografie dintr-o interogare referitoare la Bill Clinton. Unii sunt de parere ca, pe web, utilizatorii ar trebui sa specifice cu mai multa acuratete ceea ce doresc sa afle si sa adauge mai multe cuvinte intrebarii respective. Noi nu suntem de acord cu aceasta conceptie. Daca un utilizator formuleaza o interogare de tipul "Bill Clinton" ar trebui sa primeasca rezultate conclu-dente din moment ce exista o cantitate consi-derabila de informatii valoroase disponibile pentru acest subiect. Prin aceste exemple credem ca procesul standard de extragere de informatii trebuie extins pentru a putea utiliza web-ul in mod eficient.

3.2 Diferente intre Web si colectiile bine controlate

Web-ul reprezinta o colectie vasta de docu-mente eterogene. Documentele de pe web sunt caracterizate printr-o variatie interna constanta a documentelor si de asemenea prin meta informatie externa care poate sa fie disponibila. De exemplu, documentele difera din punct de vedere intern prin limbaj (atat uman, cat si de programare), vocabular (adrese de e-mail, link-uri, coduri zip, numere de telefon, numere de productie), tip de format (text, HTML, PDF, imagini, sunete) si pot fi generate chiar de sistem (fisiere jurnal sau extrase din baza de date). Pe de alta parte, definim meta informatia externa ca informatia care poate fi dedusa despre un document, dar care nu este continuta de acesta. Exemple de meta informatie externa includ aspecte precum reputatia sursei, frecventa actualizarii, calitatea, popularitatea sau uzajul si link-urile. Nu numai ca sursele posibile ale meta informatiei externe sunt variate, dar lucrurile care sunt masu-rate variaza de asemenea din punct de vedere al gradelor de importanta. De exemplu, sa comparam informatia uzuala de pe o pagina gazda impor-tanta ca Yahoo!, care primeste zilnic milioane de accesari de pagini cu un articol istoric obscur care poate fi accesat o data la zece ani. In mod evident, aceste doua aspecte trebuie tratate in mod diferit de un motor de cautare.
O alta diferenta majora intre web si colectiile traditionale este aceea ca, practic, nu exista nici un control asupra a ceea ce pot publica oamenii pe web. Coreland aceasta flexibilitate de a putea publica orice cu influenta considerabila a motoa-relor de cautare care pot afecta traficul (si exista diverse companii care manipuleaza deliberat motoa-rele de cautare pentru a obtine profit), ajungem la o problema serioasa. Aceasta problema nu a fost pusa in cazul sistemelor traditionale de extragere de informatii. De asemenea, este interesant de observat ca eforturile depuse in cazul metadatelor au esuat in cazul motoarelor de cautare, deoarece orice text de pe pagina care nu este direct oferit utilizatorului este supus manipularii efectuate de motoarele de cautare. Exista chiar numeroase companii care s-au specializat in manipularea motoa-relor de cautare in vederea obtinerii de profit.

4. Configuratia sistemului

Mai intai vom directiona discutia catre un nivel superior si vom vorbi despre arhitectura. Apoi, vom avea in vedere cateva descrieri detaliate ale struc-turilor importante de date. In cele din urma, ne vom ocupa de aplicatiile majore: parcurgere, indexare si cautare vor fi analizate in amanunt.

4.1 Scurta descriere a arhitecturii Google

In aceasta sectiune vom oferi o descriere despre modul de functionare al sistemului dupa cum indica si Figura 1. In sectiunile urmatoare vom discuta despre aplicatiile si structurile de date care nu vor fi mentionate in aceasta sectiune. Cea mai mare parte din Google este realizata in C sau C++ pentru eficienta si poate rula atat in Solaris, cat si in Linux.
In Google parcurgerea web-ului (descarcarea de pagini) este facuta de mai multe crawlere diferite. Exista un server URL care trimite listele de URL-uri ce trebuie gasite de crawlere. Paginile web care sunt gasite sunt apoi returnate serverului de stocare, care le memoreaza. Acesta comprima paginile si le depune intr-o biblioteca. Orice pagina web are un numar de identificare numit docID, care este oferit ori de cate ori un nou URL este analizat si extras dintr-o pagina web. Functia de indexare este realizata de indexer si de sorter. Indexer-ul indeplineste o serie de functii. Citeste documentele din biblioteca, decomprima docu-mentele si le analizeaza. Fiecare document este convertit intr-o serie de asocieri de cuvinte numite hit-uri. Acestea inregistreaza cuvantul si pozitia sa in document, aproximeaza dimensiunea fontului si tipurile de litere folosite. Indexer-ul distribuie aceste hit-uri intr-o serie de categorii, creand un index partial dezvoltat de sortare. Indexer-ul mai indeplineste si o alta functie importanta. Anali-zeaza toate link-urile din fiecare pagina web si stocheaza informatii importante despre acestea intr-un fisier de link-uri. Acest fisier contine infor-matii suficiente pentru a stabili unde ne indreapta link-ul respectiv, precum si textul link-ului.
Sistemul de analizare a URL-urilor citeste fisie-rul de link-uri si converteste URL-urile relative in URL-uri absolute si, respectiv, in docID-uri. Plasea-za textul link-ului in indexul initial care este asociat cu docID-ul la care se refera link-ul. Acesta gene-reaza de asemenea o baza de date de link-uri care nu sunt altceva decat corespondentele docID-urilor. Aceasta baza de link-uri este folosita pentru calcu-larea PageRank-urilor pentru toate documentele.
Sorter-ul preia categoriile care sunt sortate de docID si le clasifica dupa wordID pentru a forma un index complementar (inverted index). Un pro-gram numit DumpLexicon preia aceasta lista impreuna cu lexiconul produs de indexer si formeaza un lexicon nou care poate fi utilizat de searcher. Searcher-ul este rulat de un server si foloseste lexiconul construit de DumpLexicon impreuna cu indexul complementar si PageRank pentru a raspunde intrebarilor.

4.2 Structuri majore de date

Structurile de date ale Google sunt optimizate astfel incat o colectie ampla de documente poate fi parcursa si indexata cu putin efort. Desi CPU-urile si majoritatea ratelor de input output s-au imbu-natatit de-a lungul anilor o simpla cautare pe disc tot necesita 10 ms pentru a fi realizata. Google este proiectat sa evite acest gen de cautari de cate ori este posibil, iar acest lucru a avut o influenta consi-derabila asupra formatului structurilor de date.

4.2.1 BigFiles

BigFiles reprezinta fisiere virtuale care parcurg multiple fisiere de sistem si care sunt operationale cu 64 de biti integrali. Impartirea intre multiplele fisiere de sistem este realizata in mod automat. Aceste fisiere suporta de asemenea alocarea si dealocarea descriptorilor de fisiere, din moment ce sistemele de operare nu ofera destul pentru ceea ce avem noi nevoie. BigFiles suporta si optiuni simple de comprimare.

4.2.2 Biblioteca (Repository)

Biblioteca contine HTML-ul integral al fiecarei pagini web. Fiecare pagina este comprimata prin folosirea zlib (vezi RFC 1950). Optarea pentru o tehnica de compresie reprezinta echilibrul intre viteza si proportia comprimarii. Am ales viteza zlib dintr-o serie de imbunatatiri semnificative aduse comprimarii de bzip. Rata compresiei bzip era de aproximativ 4 la 1 in biblioteca, in comparatie cu zlib care oferea o rata de 3 la 1. In biblioteca, documentele sunt stocate unul dupa altul si sunt prefixate de docID, precizandu-li-se lungimea si URL-ul dupa cum se observa in Figura 2. Biblioteca nu solicita alte structuri de date care sa fie folosite pentru ca aceasta sa fie accesata. Acest lucru contribuie la consistenta informatiei usurand dez-vol-tarea; putem reconstrui toate celelalte struc-turi de date doar din biblioteca si dintr-un fisier care listeaza erorile crawler-ului.

4.2.3 Indexul documentelor

Indexul documentelor pastreaza informatii despre fiecare document. Acesta este un index ISAM (Index sequential access mode) cu o latime fixa, ordonat de un docID. Informatia continuta de fiecare scurta introducere include statutul curent al documentului, un indicator catre biblioteca, o evidenta a documentului si statistici variate. Daca documentul a fost parcurs atunci contine un indi-cator catre un fisier cu multe variabile numit docinfo si care cuprinde URL-ul si titlul docu-mentului. In caz contrar, indicatorul se indreapta catre lista URL-urilor care cuprinde numai URL-uri. Aceasta hotarare de design a fost luata in confor-mitate cu dorinta de a avea o structura compacta de date, precum si cu abilitatea de stabili un record de accesare unica a discului in timpul unei cautari.
In plus, exista un fisier care este folosit in convertirea URL-urilor in docID-uri. Acesta contine o lista cu URL-uri impreuna cu docID-ul cores-pun-zator si este sortat de suma de control. Pentru a gasi docID-ul unui anume URL, suma de control a URL-ului este calculata si o cautare binara este realizata pe fisierul de sume de control pentru identificarea docID-ului. URL-urile pot fi convertite in docID-uri luand mai multe simultan prin alipirea la acest fisier. Aceasta este tehnica pe care cel ce solutio-neaza URL-uri o foloseste pentru a trans-forma URL-urile in docID-uri. Aceasta metoda de abordare este im-portanta pentru ca altfel trebuie sa efectuam o cautare pentru fiecare link care, tinand cont de disc, ar dura mai mult de o luna pentru baza noastra de 322 milioane de link-uri.

4.2.4 Lexiconul

Lexiconul are mai multe forme diferite. O modificare esentiala adusa, spre deosebire de siste-mele an-te-rioare, este ca lexiconul se poate ajusta memoriei la un pret rezonabil. In implementarea actuala putem pastra lexiconul in memorie intr-un sistem cu 256 MB de memorie. Lexiconul actual contine 14 milioane de cuvinte (desi cateva cuvinte rare nu au fost adaugate). Lexiconul are doua parti - o lista de cuvinte (insiruite impreuna, dar sepa-rate de zerouri) si o serie de indicatori. Pentru a indeplini diverse functii, lista de cuvinte are informatii auxiliare care se afla insa dincolo de scopul acestei lucrari.

4.2.5 Listele de hit-uri (Hit Lists)

O lista de hit-uri corespunde unei liste de aparitii ale unui anumit cuvant intr-un document, incluzand informatii despre pozitia, fontul si tipul de litera folosit. Listele de hit-uri explica cea mai mare parte a spatiului utilizat atat in indicele primar (forward index), cat si in indicele comple-mentar (inverted index).
Din aceasta cauza, este important sa le repre-zentam cat mai eficient posibil. Am luat in calcul mai multe alternative pentru pozitia de codificare, font si tipul de litera - codificarea simpla (un grup de trei numere inetgrale), codificarea compacta (o serie de biti optimizati manual) si codificarea Huffmann. In final, am ales codificarea compacta optimizata manual deoarece necesita de departe mai putin spatiu decat codificarea simpla si mult mai putina manipulare a bitilor decat codificarea Huffmann. Detalii despre aceste hit-uri sunt aratate in Figura 3.
Codificarea compacta foloseste doi biti pentru fiecare hit. Exista doua tipuri de hit-uri: hit-uri complexe (fancy hits) si hit-uri simple (plain hits). Hit-urile complexe includ aparitia hit-urilor intr-un URL, titlu, textul link-ului sau meta tag. Hit-urile simple includ restul. Un hit simplu consta dintr-un bit referitor la tipul de litera, marimea fontului si 12 biti de pozitii ale cuvantului intr-un document (toate pozitiile ce depasesc 4095 sunt catalogate 4096). Marimea fontului este reprezentata relativ fata de restul documentului utilizand 3 biti (doar 7 valori sunt de fapt folosite deoarece 111 este simbolul care semnaleaza aparitia unui hit com-plex). Un hit complex consta intr-un bit referitor la tipul de litera, marimea fontului este setata la 7 pentru a indica ca este vorba de un hit complex, 4 biti pentru codificarea tipului de hit complex si 8 biti de pozitie. Pentru hit-urile de tip anchor, cei 8 biti ai pozitiei sunt impartiti in 4 biti pentru pozitie in link si 4 biti pentru continutul docID-ului in care link-ul apare. Aceasta ne ofera o sintagma redusa de cautare din moment ce nu exista multe link-uri pentru un anumit cuvant. Trebuie sa actualizam metoda de stocare a hit-urilor anchor pentru permiterea unei rezolutii mai mari in cadrul pozitiei si campurilor de docID-uri. Folosim mari-mea fontului in legatura cu restul documentului deoarece, atunci cand cautam, nu dorim listarea diferita a unor documente identice doar pentru ca unul din documente este scris cu un font mai mare.
Lungimea unei liste de hit-uri este stocata inainte chiar de hit-urile in sine. Pentru a economisi spatiu, lungimea listei de hit-uri este combinata cu wordID-ul in indexul primar si cu docID-ul in indexul complementar. Acest lucru o limiteaza la 8 si respectiv 5 biti (exista o serie de trucuri care permit ca 8 biti sa fie imprumutati din wordID). Daca lungimea este mai mare si nu se poate incadra in respectivii biti, atunci un cod de rezerva este folosit in acesti biti, iar urmatorii 2 biti vor contine lungimea actuala.

4.2.6 Indexul primar (Forward Index)

Indexul primar este deja partial sortat si este stocat intr-o serie de categorii (am folosit 64). Fiecare categorie contine o serie de wordID-uri. Daca un document contine cuvinte care tin de un anumit barrel, docID-ul este intregistrat in cate-gorie urmat de o lista de wordID-uri cu liste de hit-uri care corespund cuvintelor respective. Aceasta schema necesita mai mult spatiu de stocare din cauza docID-urilor duplicate, dar diferenta este foarte mica pentru un numar considerabil de categorii si economiseste timp si complexitate de codificare in faza finala de indexare facuta de sorter. Mergand mai departe, in loc de a stoca wordID-urile actuale, stocam fiecare wordID ca o diferenta relativa de la wordID-ul minim care se gaseste in categoria in care se afla si wordID-ul. Astfel, putem folosi 24 biti pentru wordID-uri in categorii nesortate, lasand 8 biti pentru lungimea listelor de hit-uri.

4.2.7 Indexul complementar

Indexul complementar consta din aceleasi categorii ca si indexul primar, cu diferenta ca aces-tea au fost procesate de sorter. Pentru fiecare wordID valid, lexiconul contine un indicator catre categoria in care wordID-ul este inclus. Acest indicator se refera la o lista de docID-uri luate impreuna cu listele de hit-uri corespunzatoare. Aceasta lista reprezinta toate aparitiile acelui cuvant in toate documentele.
(sfarsitul in numarul viitor)3. Activitati similare
Cercetarea navigarii pe web are o istorie scurta si concisa. World Wide Web Worm (WWWW) [McBryan 94] a fost unul dintre primele motoare de cautare. Acesta a fost ulterior urmat de alte cateva motoare de cautare academice, dintre care multe sunt acum companii publice. Comparativ cu dezvoltarea Web-ului si importanta motoarelor de cautare, exista putine documente valoroase refe-ritoare la motoarele de cautare recente [Pinkerton 94]. Conform lui Michael Mauldin (cercetator la Lycos Inc) "serviciile variate (inclusiv Lycos) urma-resc indeaproape detaliile acestor baze de date". Totusi, exista studii despre trasaturile specifice ale motoarelor de cautare. Un studiu bine realizat este acela care duce la obtinerea de rezultate prin procesarea ulterioara a rezultatelor motoarelor de cautare comerciale sau la producerea, la scara redusa, de motoare de cautare individualizate. Cercetari amanuntite au fost facute pe sistemele care se ocupa cu extragerea de informatii, in special pe colectiile bine controlate. In urmatoarele doua sectiuni, discutam despre zone unde aceasta cerce-tare trebuie extinsa pentru a se putea lucra mult mai bine pe web.


4.4 Indexarea Web-ului

Analiza: orice sistem de analizare care este destinat sa ruleze pe intreg Web-ul trebuie sa faca fata unei mari cantitati de erori posibile. Acestea se pot intinde de la mici greseli in sintagmele HTML pana la kilobiti de zerouri in mijlocul unei sintagme, caractere non-ASCII, sintagme HTML depozitate in interior si o mare varietate de alte greseli care pot provoca imaginatia oricui pentru a-l determina sa apara cu altele noi. Pentru viteza maxima, in loc sa folosim YACC pentru a genera un sistem CFG de analiza, folosim un cablu electric pentru initierea unui analizator lexical which pe care il dotam cu propria informatie. Dezvoltarea acestui sistem de analiza care ruleaza cu o viteza rezonabila si care este foarte solid a insemnat un timp indelungat de munca continua.
Indexarea documentelor in categorii: dupa ce fiecare document este analizat, este codificat intr-o serie de categorii. Fiecare cuvant este convertit intr-un wordID utilizand un continut de tip in-memory - lexiconul. Adaugirile care se fac continutului lexiconului sunt consemnate intr-un fisier. Din momentul in care cuvintele sunt convertite in wordID-uri, aparitiile lor in documentul curent sunt traduse in liste de hit-uri si sunt scrise in categoriile primare. Principala dificultate cu simultaneitatea fazei de indexare este aceea ca lexiconul trebuie impartit. In loc de impartirea lexiconului, am considerat indicat sa scriem un logaritm pentru toate cuvintele auxiliare care nu se aflau in lexiconul de baza, pe care l-am fixat la 14 milioane de cuvinte. In acest fel, indexer-ele multiple pot rula in paralel si apoi fisierul jurnal cu logaritmii cuvintelor auxiliare poate fi procesat de un singur indexer final.
Sortarea: pentru a putea genera indexul complementar, sorter-ul preia fiecare categorie primara si o sorteaza dupa wordID pentru a produce o categorie complementara pentru titlu si hit-urile de tip anchor si o categorie complementara de text integral. Acest proces se intampla cu fiecare categorie in parte, necesitand astfel un spatiu mic de stocare temporara. De asemenea, comparam faza de sortare pentru a utiliza cat mai multe sisteme posibile prin simpla rulare de sorter-e multiple, care pot procesa categorii diferite in acelasi timp. Din moment ce categoriile nu sunt compatibile cu memoria principala, sorter-ul le subdivide mai departe in subcategorii care se potrivesc cu memoria bazata pe word ID si docID. Apoi, sorter-ul incarca fiecare subcategorie in memorie, o sorteaza si ii transcrie continutul in categorii complementare mici si in categorii complementare detaliate.O alta caracteristica importanta o reprezinta ordinea in care docID-urile trebuie sa apara in lista. O solutie simpla este sa le stocam in functie de docID. Acest lucru permite fuzionarea rapida a diferitelor liste pentru intrebarile cu multe cuvinte. O alta posibilitate este sa le stocam in functie de aparitia cuvantului in fiecare document. Acest lucru implica lipsa de valoare a raspunsurilor la intrebarile alcatuite dintr-un singur cuvant si face posibil faptul ca raspunsurile la intrebarile cu multe cuvinte sa se afle chiar la inceput. Totusi, fuzionarea este cu mult mai dificila. De asemenea, acest lucru face ca dezvoltarea sa devina mult mai dificila, in sensul ca o schimbare in functia de ordonare necesita o reconstruire a indexului. Am ales sa facem un compromis intre aceste optiuni, prin pastrarea a doua serii de categorii complementare - o serie pentru listele de hit-uri care include titlul sau link-ul si o alta serie pentru toate listele de hit-uri. In acest fel, verificam primul set de categorii si daca nu gasim destule potriviri in cadrul acestora le verificam si pe cele mai mari.
Rularea unui crawler web reprezinta o provocare. Exista actiuni riscante si subiecte sigure si, mult mai important, exista subiecte sociale. Parcurgerea (crawling) reprezinta cea mai fragila aplicatie din moment ce implica interactiunea cu sute de mii de servere web si nume de servere diverse care se afla dincolo de posibilitatea de control a sistemului.
Pentru a pacurge sute de milioane de pagini web, Google are un sistem rapid (fast distributed crawling). Un singur server URL ofera liste de URL-uri unui numar de crawlers (in general folosim in jur de 3). Atat server-ul URL, cat si crawler-ele sunt realizate in Python. Fiecare crawler tine in jur de 300 de conexiuni (connections) deschise simultan. Acest lucru este necesar pentru regasirea paginilor web la o viteza suficient de rapida. La viteze mari sistemul poate sa parcurga peste 100 de pagini pe secunda utilizand 4 crawlere. Acesta se ridica la aproximativ 600K de date pe secunda. O actiune importanta este reprezentata de verificarea DNS. Fiecare crawler mentine un cache DNS propriu, astfel ca nu este nevoie sa se faca un control DNS inainte de parcurgerea fiecarui document. Fiecare dintre sutele de conexiuni se poate afla in stadii diverse: verificarea DNS, conectarea la gazda, transmiterea solicitarilor si primirea raspunsurilor. Acesti factori fac din crawler o componenta complexa a sistemului. Acesta foloseste IO asincron pentru a face fata solicitarilor si un numar de secvente pentru mutarea preluarilor de pagini din sectiune in sectiune.
Se adevereste astfel ca rularea unui crawler care se conecteaza la mai mult de jumatate de milion de servere si care genereaza zeci de milioane de fisiere jurnal implica o cantitate considerabila de e-mailuri si apeluri telefonice. Datorita numarului mare de persoane care sunt online, exista intotdeauna aceia care nu stiu ce este un crawler deoarece acesta este primul pe care il vad. Aproape in fiecare zi primim un mesaj de genul 'V-ati uitat la foarte multe pagini din site-ul meu. Ce parere aveti despre el?'. Exista de asemenea unele persoane care nu au aflat de existenta protocolului de excluziune la roboti si se considera ca pagina lor ar trebui protejata impotriva unei indexari de genul 'Aceasta pagina este protejata si nu va fi indexata', care este dificil de inteles de crawler-ele web. De asemenea, din cauza cantitatii uriase de date implicate, lucruri neasteptate se pot intampla. De exemplu, sistemul nostru a incercat sa parcurga un joc online. Rezultatul a constat intr-o multime de mesaje iritante chiar in mijlocul jocului. Se pare ca aceasta a fost o problema usor de rezolvat. Dar aceasta problema nu aparuse pana in momentul in care am descarcat zeci de milioane de pagini. Datorita variatiei ridicate in paginile web si in servere, este practic imposibil sa testezi un crawler fara sa-l rulezi pe o parte considerabila a Internetului. Invariabil, apar sute de probleme obscure care se pot ivi pe o singura pagina din tot web-ul si pot cauza distrugerea crawler-ului sau mai rau, poate cauza o reactie imprevizibila sau incorecta. Sistemele care acceseaza parti mari din Internet trebuie sa fie foarte solide si testate cu multa atentie. Din moment ce sistemele complexe cum sunt crawler-ele vor duce in mod invariabil la aparitia problemelor, trebuie sa existe resurse semnificative dedicate citirii de e-mail-uri si rezolvarii problemelor din momentul in care acestea apar.

4.5 Cautarea

Scopul cautarii este acela de a oferi rezultate concludente in timp util. Multe dintre motoarele de cautare comerciale par sa fi facut progrese considerabile din punct de vedere al eficientei. De aceea, ne concentram mai mult pe calitate in cercetarea noastra, desi suntem de parere ca solutiile noastre se afla, cu putin mai mult efort, in progresie cu volumele comerciale. Procesul de evaluare al unei interogari Google este indicat de Figura 4.
Pentru marcarea unei limite a timpului de raspuns, odata ce un anumit numar de documente care se potrivesc cu interogarea (40.000 de obicei) este gasit, cel care a initiat cautarea poate merge direct la punctul 8 din Figura 4. Aceasta inseamna ca este posibil ca rezultate neconcludente sa fie oferite in schimb. In prezent, investigam alte metode pentru rezolvarea acestei probleme. In trecut, am sortat hit-urile in concordanta cu PageRank, lucru care pare sa fi imbunatatit situatia.

4.5.1 Sistemul de clasificare

Google pastreaza mult mai multe informatii despre documentele web decat motoarele tipice de cautare. Fiecare lista de hit-uri include pozitia, fontul si informatii despre tipul de litera folosit. In plus, luam in calcul hit-urile dupa textul link-ului si PageRank-ul documentului. Combinarea tuturor acestor informatii intr-un singur rezultat este dificila. Am conceput functia de ordonare astfel incat nici un factor particular sa nu aiba o influenta prea mare. Sa luam mai intai cazul cel mai simplu - o interogare cu un singur cuvant.
Pentru afisarea unui document folosind o interogare cu un singur cuvant, Google parcurge toate listele de hit-uri ale documentului pentru cuvantul respectiv. Google considera fiecare hit ca apartinand unuia dintre diversele tipuri (titlu, link, URL, fonturi mari si fonturi mici de text simplu etc.), fiecare dintre acestea avand grade diferite de importanta in functie de tipul din care face parte. Aceste grade de importanta formeaza un vector indexat in functie de tip. Google numara hit-urile fiecarui tip din lista de hit-uri. Apoi fiecare pozitie este reorganizata intr-un clasament in functie de importanta. Gradele de importanta cresc liniar in functie de primele pozitii, dar se reduc repede astfel incat este relevant numai un anume numar de aparitii. Noi preluam produsul scalar al vectorului de ponderi de aparitii impreuna cu vectorul de ponderi de tipuri pentru a calcula un scor IR al documentului. In final, scorul IR este combinat cu PageRank pentru a oferi un rezultat final al documentului.
Pentru o interogare alcatuita din mai multe cuvinte, situatia este si mai complicata. In acest caz, listele multiple de hit-uri trebuie parcurse simultan astfel incat hit-urile care sunt apropiate intr-un document sunt plasate pe pozitii superioare fata de cele care sunt departate unele de altele. Hit-urile din listele multiple sunt potrivite astfel incat hit-urile apropiate sunt puse impreuna. Pentru fiecare set de potriviri de hit-uri, se calculeaza o apropiere. Aceasta apropiere se bazeaza pe cat de departate sunt hit-urile in cadrul documentului (sau link-ului), dar este clasificata in 10 clase cu valori diferite, mergand de la o sintagma apropiata pana la 'nu foarte aproape'. Se fac contorizari nu numai pentru fiecare tip de hit, dar si pentru fiecare tip si apropiere. Fiecare pereche de tip si apropiere are o pondere tip-apropiere. Contorizarile sunt clasificate in functie de ponderile de aparitii si noi preluam produsul scalar pentru ponderile de aparitii si ponderile de tip-apropiere pentru realizarea unui scor IR. Toate aceste numere si matrice pot fi afisate odata cu rezultatele cautarii folosind o metoda speciala de corectare. Toate aceste afisari sunt de foarte mare ajutor in dezvoltarea sistemului de ordonare.

4.5.2 Scurta recapitulare

Functia de ordonare are multi parametri precum ponderile de tip si ponderile tip-apropiere. Stabilirea valorilor exacte pentru acesti parametri tine de domeniul magiei. Pentru a face acest lucru, avem un mecanism de feedback al utilizatorului in cadrul motorului de cautare. Un utilizator increzator poate evalua optional toate rezultatele care ii sunt returnate. Acest feedback este salvat. Apoi, cand modificam functia de ordonare, putem observa impactul acestei schimbari asupra cautarilor anterioare care au fost ordonate. Desi departe de perfectiune, acest lucru ne face sa observam cum o schimbare in functia de ordonare poate afecta rezultatele cautarii.

5. Rezultate si mod de functionare

Cea mai importanta caracteristica a unui motor de cautare este calitatea rezultatelor cautarii. In timp ce o evaluare completa a utilizatorului se afla dincolo de scopul acestei lucrari, experienta noastra personala cu Google a dovedit ca este posibil sa se obtina rezultate mult mai bune pentru majoritatea cautarilor decat ale celor mai importante motoare comerciale de cautare. Ca un exemplu ce ilustreaza utilizarea PageRank, a textului link-ului si a aproximarii, Figura 5 indica rezultatele Google pentru o cautare procesata pe termenul 'bill clinton'. Aceste rezultate evidentiaza cateva dintre trasaturile Google. Rezultatele sunt grupate de server. Acest lucru este de mare ajutor atunci cand examinam seturile de rezultate. O serie de rezultate sunt din domeniul whitehouse.gov, care reprezinta rezultatul asteptat pentru o cautare de acest gen. In mod obisnuit, majoritatea motoarelor de cautare comerciale nu ofera nici un rezultat din whitehouse.gov, cu atat mai putin pe cele corecte. Trebuie observat ca nici un titlu nu este afisat pentru primul rezultat, din cauza ca nu a fost parcurs. In schimb, Google s-a bazat pe textul link-ului pentru a hotari daca acesta era un raspuns potrivit pentru intrebare. In mod asemanator, al cincilea rezultat este o adresa de e-mail, care, bineinteles, nu poate fi parcursa (crawlable) si care este, de asemenea, un rezultat al textului link-ului.
Toate rezultatele sunt pagini cu un inalt nivel calitativ si, la o ultima verificare, nici una dintre ele nu este un link irelevant (broken). Acest lucru se intampla din cauza ca toate au un PageRank ridicat. PageRank-urile sunt marcate prin procentajele de culoare rosie. In concluzie, nu sunt rezultate despre un alt Bill in afara de Clinton sau despre un alt Clinton in afara de Bill si asta pentru ca acordam o importanta majora aproximarii sintagmelor in care apare un cuvant. Bineinteles ca un adevarat test al calitatii pentru un motor de cautare ar trebui sa implice si un studiu complet despre utilizator sau o analiza a rezultatelor pentru care noi nu avem loc in lucrarea de fata. In schimb, invitam cititorii sa incerce ei insisi Google la https://google.stanford.edu.

5.1 Parametri pentru stocare

In afara de calitatea cautarii, Google este proiectat sa masoare capacitatea Web-ului pe masura ce acesta se dezvolta. Un aspect al acestui fenomen il reprezinta modul eficient de stocare. Tabelul nr. 1 contine fragmente din cateva statistici si parametri de stocare ai Google. Datorita comprimarii, marimea totala a bibliotecii este de 53 GB, putin peste o treime din totalul de date pe care le contine. La preturile actuale ale discurilor biblioteca poate fi considerata o sursa ieftina de date. Ceea ce este mai important - totalul datelor folosite de motorul de cautare necesita un spatiu comparabil de stocare, adica in jur de 55 GB. Mai departe, un raspuns poate fi gasit pentru majoritatea interogarilor prin folosirea indexului complementar. Cu metode mai bune de codificare si de comprimare ale Document Index, un motor de cautare de calitate se poate incadra in 7 GB ai unui PC nou.

5.2 Modul de functionare a sistemului

Este important pentru un motor de cautare sa parcurga si sa indexeze eficient. Astfel, informatia poate fi permanent actualizata si modificarile majore aduse sistemului pot fi testate relativ repede. Pentru Google, operatiunile importante sunt Crawling (parcurgerea), Indexing (indexarea) si Sorting (sortarea). Este dificil de masurat cat a durat crawling-ul in total din cauza ca discurile au fost in intregime completate, numele serverelor nu mai sunt functionale sau din cauza oricarei probleme care putea determina oprirea sistemului. In total a durat cam 9 zile sa descarcam cele 26 milioane de pagini (inclusiv erorile). Totusi, din moment ce sistemul rula fluent si mai repede, am descarcat ultimele 11 milioane de pagini in doar 63 de ore, in medie 4 milioane de pagini pe zi sau 48,5 pagini pe secunda. Am rulat indexer si crawler simultan. Indexer a rulat mai repede decat crawler-ele. Aceasta s-a intamplat din cauza ca am petrecut destul timp pentru optimizarea indexer-ului astfel incat sa nu determine intarzierea dezvoltarii sistemului. Aceste optimizari au inclus o serie de updatari ale indexului documentului si plasarea structurilor precare de date pe un disc local. Indexer-ul ruleaza aproximativ 54 de pagini pe secunda. Sorter-ele pot fi rulate complet in paralel, utilizand 4 sisteme, intreg procesul de sortare durand in jur de 24 de ore.

5.3 Procesul de cautare

Imbunatatirea procesului de cautare nu a reprezentat punctul principal de interes al cercetarii noastre pana in acest moment. Versiunea curenta Google raspunde la cele mai multe din interogari intre 1 si 10 secunde. Acest interval este dominat in mare parte de IO-ul discului asupra NFS (din moment ce discurile sunt impartite pe sisteme diferite). Mai departe, Google nu are nici un fel de optimizare cum ar fi cache de cautari, subindici pe termeni comuni si alte optimizari obisnuite. Intentia noastra este de a mari considerabil viteza Google prin distributie si hardware, software si imbunatatiri algoritmice. Scopul nostru este acela de a putea raspunde la mai multe sute de interogari pe secunda. Tabelul nr. 2 contine cateva exemple de intervale de raspuns la interogari din versiunea curenta Google. Acestea sunt reluate pentru a reda performantele de viteza rezultate din cache-ul IO.

6. Concluzii

Google este proiectat sa fie un motor de cautare scalabil. Scopul principal este acela de a oferi rezultate de calitate pe fondul dezvoltarii rapide a World Wide Web. Google foloseste o serie de tehnici pentru ameliorarea calitatii cautarii incluzand page rank, textul link-ului si alte informatii apropiate. Mai departe, Google reprezinta o arhitectura completa pentru adunarea paginilor web, indexarea lor si efectuarea de interogari asupra lor.

6.1 Activitati viitoare

Un motor amplu de cautare este un sistem complex care ramane deschis completarilor. Scopurile noastre imediate sunt acelea de a imbunatati cautarea si de a afisa aproximativ 100 de milioane de pagini web. Cateva imbunatatiri simple aduse eficientei includ cache de interogari, alocare optimizata a discului si subindici. O alta sectiune care necesita o cercetare amanuntita este reprezentata de updatari. Trebuie sa avem algoritmi potriviti pentru a decide ce pagini mai vechi ar trebui reparcurse si ce pagini noi ar trebui parcurse. Munca in vederea atingerii acestui scop a fost facuta in [Cho 98]. O zona promitatoare de cercetare este aceea de a utiliza un cache proxy pentru construirea de baze de date cu scopul cautarii din moment ce acestea sunt influentate de cerere. Planuim sa adaugam trasaturi simple ce sunt suportate de motoarele comerciale de cautare cum ar fi operatorii de tip boolean, negatia si implicatia. Totusi, alte trasaturi cum ar fi feedback-ul relevantei si clustere (Google suporta in mod obisnuit clusterele bazate pe numele de domeniu) de-abia acum incep sa fie explorate. Intentionam de asemenea sa sustinem contextul de utilizator (cum ar fi locatia utilizatorului) si rezumarea rezultatelor. Ne preocupa si extinderea utilizarii structurii de link-uri si a textului link-ului. Experimentele simple indica faptul ca PageRank poate fi personalizat prin amplificarea ponderii homepage-ului unui utilizator sau a bookmark-urilor acestuia. In ceea ce priveste textul link-ului, experimentam utilizarea textului link-urilor invecinate alaturi de textul link-ului in sine. Un motor de cautare pe Web repezinta un mediu bogat pentru initiativele de cercetare.

6.2 Cautare la standarde inalte

Cea mai mare problema cu care se confrunta astazi utilizatorii de motoare de cautare o reprezinta calitatea rezultatelor pe care le primesc. Pe cand rezultatele sunt deseori amuzante si largesc orizontul utilizatorului, ele pot deveni si frustrante si pot consuma timp pretios. De exemplu, primul rezultat pentru o cautare 'Bill Clinton' pe unul dintre cele mai populare motoare de cautare comerciale a fost Bill Clinton Joke of the Day: April 14, 1997. Google este destinat sa ofere rezultate de o calitate superioara astfel incat Web-ul sa continue sa se dezvolte rapid, iar informatia sa poata fi gasita usor. Pentru a putea realiza acest lucru, Google utilizeaza frecvent informatia hipertextuala ce consta din structura de link-uri si din textul link-urilor. Google foloseste de asemenea aproximarea si informatia despre fonturi. In timp ce evaluarea unui motor de cautare este dificila, noi am aflat in mod intuitiv ca Google returneaza rezultate la un inalt nivel calitativ spre deosebire de motoarele comerciale de cautare. Analizarea structurii de link-uri prin PageRank permite Google sa evalueze calitatea paginilor web. Utilizarea textului link-ului ca o descriere a ceea ce indica link-ul contribuie la relevanta si, intr-o anumita masura, la inaltul standard calitativ al rezultatelor. In cele din urma, utilizarea unor informatii asemanatoare ajuta la marirea gradului de relevanta al multor interogari.

6.3 Arhitectura scalabila

In afara de calitatea cautarii, Google este destinat sa masoare. Trebuie sa dea dovada de eficienta atat in spatiu, cat si in timp, iar factorii constanti sunt foarte importanti atunci cand vorbim de Web. Prin implementarea Google, am observat intarzieri in CPU, accesarea memoriei, capacitatea memoriei, cautarile pe disc, continutul discului, capacitatea discului si IO de retea. Google a evoluat pentru a depasi o serie din aceste probleme prin intermediul unor operatiuni variate. Structurile majore de date ale Google utilizeaza in mod eficient spatiul de stocare. Mai departe, operatiunile de parcurgere, indexare si sortare sunt suficient de eficiente pentru a construi un index al unei parti substantiale a Web-ului - 24 de milioane de pagini in mai putin de o saptamana. Intentionam sa devenim capabili de a construi un index de 100 de milioane de pagini in mai putin de o luna.

6.4 Un instrument de cercetare
In afara de a fi un motor de cautare de calitate, Google este si un instrument de cercetare. Datele pe care Google le-a adunat au dus la aparitia multor lucrari prezentate la conferinte si multe altele sunt deja in curs de aparitie. Un studiu recent cum ar fi [Abiteboul 97] a indicat un numar de limitari ale cautarilor despre Web care pot fi raspunse fara ca Web-ul sa fie disponibil pe plan local. Aceasta inseamna ca Google (sau un sistem similar) nu reprezinta numai un instrument valoros de cercetare, dar si unul necesar pentru o serie larga de aplicatii. Speram ca Google va deveni o resursa pentru cautatorii si cercetatorii din lumea intreaga si ca va impulsiona generatia urmatoare de motoare de cautare.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright