Principalul model de business aflat in spatele cautarilor web este bazat pe pubicitatea textuala, in care anunturi relevante contextual sunt plasate langa rezultatele cautarii. Se pune problema alegerii acestor anunturi astfel incat sa fie atat relevante pentru interogari, cat si profitabile pentru motorul de cautare.
Principala descoperire este ca doar optimizarea relevantei nu este suficienta pentru potrivirea anunturilor. In faza de procesare offline se pot obtine imbunatatiri substantiale in ceea ce priveste veniturile asteptate din publicitate fara a sacrifica relevanta anunturilor.
In contrast cu alte studii despre substitutia interogarilor, s-au obtinut atat optimizarea relevantei anunturilor, cat si a veniturilor colectate de motorul de cautare. Abordarea propusa combina elementele potrivirii generalizate cu eficienta computationala a potrivirii exacte.
Publicitatea online a devenit principalul motor financiar al internetului de azi. Anunturile sunt in forma textuala si sunt selectate pentru a fi relevante din punct de vedere contextual cu continutul web. Exista doua tipuri principale de publicitate textuala: cautarile sponsorizate, in care anunturi platite apar langa rezultatele cautarii, si potrivirea continutului, unde anunturile sunt afisate pe site-uri web third-party.
De obicei, un anunt contine un titlu de 3-5 cuvinte, o scurta descriere, in jur de 20 de cuvinte si un landing URL catre care sunt directionati utilizatorii care dau click pe anunt. Fiecare anunt este asociat cu cel putin o fraza de oferta, de 2-3 cuvinte. Agentii de publicitate platesc motorul de cautare de fiecare data cand un utilizator da click pe anuntul lor.
Telul substitutiei unei interogari este de a gasi o interogare care produce la cautare rezultate mai bune decat interogarea initiala.
Abordarea propusa este un hibrid intre potrivirea exacta si cea generalizata. In faza offline se analizeaza un set mare se interogari destul de frecvente si se genereaza o functie care sa inlocuiasca interogarile introduse cu una sau mai multe alternative. Apoi, in faza online, se foloseste potrivirea exacta pentru a se gasi anunturi care sa se potriveasca cu interogarea substitut. Primul pas al algoritmului folosit este gasirea unui set de substitutii posibile. Generarea substitutilor candidati se face prin extinderea interogarii folosind un motor de cautare. Se aleg anunturile top 100 folosindu-se similaritatea, ponderea cuvintelor, dar si alte masuri de similaritate candidate.
Cel mai usor mod de a clasifica o substitutie candidat este folosirea scorului de similaritate, dar o astfel de metoda ar ignora complet informatiile despre oferta asociate fiecarui candidat, informatii esentiale pentru optimizarea veniturilor. Pentru a descrie potrivirea dintre o interogare si o substitutie candidat se folosesc trei proprietati: substitutiile trebuie sa fie cat de cat similare cu interogarea originala, substitutia care va fi aleasa trebuie sa fie reprezentantul mai multor candidate, si o substitutie buna trebuie sa produca anunturi profitabile
Functia de clasificare foloseste argumente relevante si poate clasifca substitutiile numai in functie de relevanta fata de interogarea originala. Se propune clasificarea substitutiilor candidat atat pe baza scorului de relevanta a interogarii, cat si in functie de a doua valoare a ofertei dintre toate anunturile care oferteaza substitutia candidat. Aceasta metoda este considerata a fi optimizata pentru venituri

Modern Web Development


V-ati intrebat vreodata care sunt lucrurile necesare pentru a "face" un site?

Ei bine, "a face" un site necesita o multime de cunostinte solide in domeniu, precum cele din poza alaturata.

Recomandarea tag-urilor Flickr

Adnotarea pozelor de catre utilizator reflecta perspectiva personala si contextul important pentru proprietarul pozei si audienta ei. S-a dorit obtinerea unor recomandari eficiente si relevante pentru o varietate mare de poze.
Flick a efectuat o caracterizare a comportamentului in ceea ce priveste punerea de tag-uri pozelor, pe baza careia a construit un sistem de recomandare si evaluare a tag-urilor.
Flickr este un servicu on-line de photo-sharing care contine sute de milioane de poze care sunt uploadate, organizate si adnotate de peste 8,5 milioane de utilizatori inregistrati.
Pentru inceput a trebuit sa se afle cum pun oamenii tag-uri, la ce pun tag-uri si de ce. Privind distributia poza-tag s-a observat ca majjoritatea pozelor sunt adnotate cu doar cateva tag-uri.
Oamenii pun tag-uri cel mai frecvent despre locatii (28%), artefacte sau obiecte (16%), oameni sau grupuri (13%), actiuni sau evenimente (9%), si timp (7%).
Co-aparitia tag-urilor este cheia abordarii metodei de recomandare a tag-urilor si functioneaza bine numai daca se bazeaza pe o cantitate mare de date ajutatoare. Cea mai buna metoda a fost normalizarea numaratorii co-aparitiei cu frecventa generala a tag-urilor. Exista doua metode diferite de normalizare: simetrica si asimetrica.
Tag-urile au fost clasificate in trei categorii: definite de utilizator (U), care cuprinde tag-urile pe care un utilizator le pune unei poze, tag-uri candidate (C), care cuprinde o lista cu primele m tag-uri cu cele mai multe co-aparitii, si tag-urile recomandate (R), care cuprinde o lista cu primele n dintre cele mai relevante tag-uri produse de sistemul de recomandare.
Pentru un set dat de tag-uri candidate este nevoie de un pas de agregare a tag-urilor pentru a produce lista finala de tag-uri recomandate, atunci cand exista mai mult de un tag definit de utilizator. Au fost definite doua strategii de agregare. Prima strategie este bazata pe votare si nu tine cont de valorile de co-aparitie ale tag-urilor candidate. A doua strategie este bazata pe insumare si se foloseste valorile de co-aparitie pentru a produce clasificarea finala.
Mai departe, se foloseste o procedura de reclasificare care promoveaza tag-urile candidate care au anumite proprietati. Exista mai multe aspecte dupa care se face promovarea. Promovarea stabilitatii: considera ca tag-urile definite de utilizator care au frecventa foarte mica de aparitie sunt mai putin de incredere decat decat cele cu frecventa mai mare si vor fi promovate acele tag-uri pentru care statisticile sunt mai stabile. Promovarea descrierii: tag-urile cu frecventa de aparitie foarte mare au probabilitate mare de a fi prea generale pentru poze individuale. Promovarea rangului: Valorile co-aparitiei tag-urilor produc estimari bune in ceea ce priveste relevanta unui tag candidat pentru un tag definit de utilizator.

Evaluarea query-urilor

Million Query Track si alte analize ulterioare au aratat ca putem evalua sistemele de retrieval cu o mare reducere a efortului, scazand la cateva sute de interogari, cu doar cateva zeci de evaluari pentru fiecare.

Vom descrie evaluarea unui corpus de 25 de milioane de documente si 10 000 de interogari, Million Query Track. Folosind doua metode recente pentru selectarea documentelor si evaluarea multimilor mici s-au obtinut rezultate asemanatoare unei evaluari folosind 149 de interogari evaluate mai in profunzime, cu 62% din efortul de evaluare, dar de 11 ori mai multe interogari.

Million Query Track, folosit la TREC 2007, foloseste doi algoritmi pentru selectia documentelor pentru a obtine o evaluare relevanta asupra a mai mult de 1800 de interogari. Algoritmul Minimal Test Collection (MTC) deduce rangul sistemelor prin identificarea diferentelor dintre ele fara a tine cont de valorile masuratorilor. StatAP este o metoda de esantionare care produce estimari impartiale si da varianta minima ale preciziei medii. Ambele metode au scopul de a evalua sistemele in funcitie de precizia medie (AP), care este masura oficiala de evaluare a TREC.

MTC este on algoritm greedy on-line pentru selectarea documentelor ce urmeaza a fi evaluate. Dandu-se o anumita masura de evaluare si orice relevanta existenta de evaluare MTC cantareste documentele dupa cat de informative sunt , determinand daca exista vreo diferenta intre masuratorile a doua sisteme. Documentul cel mai important este prezentat unui evaluator. Evaluarea se foloseste pentru a updata importanta unui document.

In termeni statistici, precizia medie poate fi comparata cu o populatie: elementele sunt documentele relevante din multimea de documente si valoarea fiecarui element este precizia documentului. Exista doua posibilitati pentru a varia implementarea: alegand o anume strategie de esantionare sau alegand un estimator specific. StatAP contine urmatoarele optiuni: esantionare stratificata (documentele sunt intai ordonate inainte de distributie si apoi esantionate in doua etape), estimator generalizat al ratei si intervale de incredere.

Telul final al evaluarii este de a clasifica sistemele de retrieval in functie de performanta generala. Au fost efectuate doua studii, unul bazat pe avaliza variantei (ANOVA) si teoria generalizarii, si altul bazat pe un studiu empiric al stabilitatii rangului dedus pe un subset de interogari. Dandu-se seturi diferite de topic-uri variatia care apare in scorurile MAP se poate descompune in trei componente: variatii datorate diferentelor de performanta dintre sisteme (variatii de sistem), variatii datorate dificultatii relative a unui set de topic-uri (variatii de topic) si variatii datorate faptului ca diferitele sisteme considera diferite seturi de topic-uri ca fiind grele sau usoare (variatii de interactiune sistem-topic).

Reutilizabilitatea este exprimata in functie de nivelul de incredere. Metodele descrise anterior privesc diferit notiunea de incredere. MTC calculeaza increderea ca fiind probabilitatea ca MAP sa fie pozitiv sau negativ. StatMAP calculeaza un interval de incredere pentru fiecare AP al fiecarei interogari si apoi un interval de incredere pentru valoarea MAP a unui esantion de interogari.

Deoarece am terminat de lucrat la tema 3, pot da cateva sfaturi celor care acum sunt la inceput cu lucrul la aceasta. In primul rand, cum o sa arate pagina html ce reprezinta tema? O alegere potrivita ar fi dupa mine folosirea a 2 input-uri de tip text, 2 label-uri si un buton. Unul din textfield-uri va fi folosit pentru introducerea cuvintelor de cautat, celalalt pentru introducerea paginii in care se vrea facuta cautarea. Cea mai simpla metoda de a adauga in pagina curenta continutul paginii in care se va cauta este folosirea unui element al carui camp "innerHTML" va fi setat ca fiind raspunsul cererii http pentru pagina. Bineinteles, va fi facut un request http care va returna pagina al carei nume a fost introdus in textfield-ul de input. Acest lucru se va face folosind Ajax. Pe net exista o multime de exemple care folosesc Ajax pentru obtinerea unor pagini, deci nu va fi prea greu de gasit (exista si in laborator detalii despre obiectele care pot fi folosite pentru cereri http folosind Ajax). Dupa ce am obtinut raspunsul cererii, acesta poate fi modificat. Eu am adaugat continutul nou la pagina in elementul "div" de care am vorbit mai sus, apoi am folosit expresii regulate pentru cautarea in body-ul paginii a aparitiilor unui cuvant. Poate fi folosita metoda "replace" din clasa String din JavaScript pentru inlocuirea cuvintelor gasite de expresia regulata folosind tag-ul "span" si CSS (declaram un stil specific cu care vrem sa marcam cuvintele gasite, apoi folosim acel stil in tag-ul span imprejmuind cuvantul cautat). Pentru a marca un text din html-ul dorit, vom face urmatorul lucru:
- definim un stil pentru marcarea cuvintelor folosind tag-ul "style"
- introducem in jurul cuvantului dorit a fi marcat tag-ul "span" cu referire la stilul definit anterior
Acum cuvantul este marcat cu stilul respectiv. Pentru gasirea cuvintelor se pot folosi expresii regulate (obiecte de tipul RegExp). O prezentare a expresiilor regulate veti gasi pe http://www.javascriptkit.com/jsref/regexp.shtml. Trebuie sa fiti insa atenti pentru a nu marca texte aflate in tag-uri. Asta se poate face revenind dupa marcare si cautand cuvintele marcate anterior, dar care nu ar fi trebuit sa fie marcate ( de exemplu o expresie care se afla intre "<" si ">" si este inconjurata de tag-uri "span". Din aceasta expresie trebuie eliminate tag-urile pt "span" si lasat tot cuvantul, deoarece nu ar trebui sa se afle intr-un tag html.Nu stiu daca am fost destul de clar, am incercat sa prezint pe scurt modul in care am gandit eu implementarea temei 3, imi puteti pune intrebari daca exista neclaritati sau daca vreti sa comentez mai amanuntit o anumita parte a implementarii.

CTTE ( Concurrent Task Tree Environment ) reprezinta un tool folosit la crearea de modele arhitecturale pe baza interactiunii user-ului cu interfata web.
Dupa crearea modelul arhitectural se poate testa acel model, dandu-se astfel developer-ilor posibilitatea de a scoate in evidenta eventualele neconcordante intre specificatii si ceea ce s-a realizat la proiectul in sine.
Un exemplu de asemenea fisiere create cu CTTE se poate downloada folosind link-ul alaturat. ( download exemple ctte ).

Web crawling

Pentru cei care nu stiu ce face un crawler web voi spune in cateva cuvinte ca poate prelucra documente de tipul XML pe care le parseaza, pe baza unui URL indicat, mai exact putem cu ajutorul lui sa extragem si sa prelucram anumite informatii.

Ce trebuie sau ar trebui sa faca un crawler web?

In primul rand, trebuie sa respecte politica fiecarui site web si, bineinteles, sa foloseasca doar paginile unde este permis acest lucru. Un webmaster poate specifica ce portiuni din site pot fi accesate de crawler, iar crawler-ul trebuie sa respecte aceste indicatii. Chiar daca aceste specificatii nu exista, este bine sa nu fie accesat foarte des acelasi site de catre crawler, exceptie facand site-urile de stiri unde continutul se schimba foarte des.

Este foarte important ca un crawler web sa fie imun la paginile cu "capcane", inclusiv cele generate dinamic, si la paginile spam.

Un crawler bun este capabil sa ruleze pe mai multe masini distribuite si sa fie scalabil. De asemenea, va permite folosirea completa a resurselor.

Pentru a avea o eficienta cat mai buna, crawler-ul va folosi mai intai paginile de calitate mai buna si va face continuu refresh, in cazul in care apar copii mai noi ale acestora.

Nu ar fi rau nici sa fie extensibil si sa se poata adapta la formate de date si protocoale diferite.

Care sunt pasii pe care ii urmeaza un crawler web?

Initial, ia URL-ul si documentul care se gaseste la URL-ul respectiv. Urmeaza parsarea documentului/documentelor. Apoi se verifica daca a fost deja vazut continutul URL-ului respectiv. In caz contrar, este adaugat la index. Pentru fiecare URL extras se verifica daca trece anumite teste de filtrare si daca nu cumva exista un duplicat al acestuia.

In final, daca doriti sa vedeti implementarea unui crawler care analizeaza relatiile sociale dintr-o comunitate web va invitam pe site-ul nostru.

Postări mai vechi