Sisteme de Recomandare Si Filtrare a Informatiei pe Web

Sisteme de recomandare si filtrare a informatiei pe web

Capitolul 1. Introducere

1.1. Introducere

Această teză are drept obiectiv studierea și dezvoltarea sistemelor de recomandare și de filtrare a informației pe web, utilizate pentru rezolvarea problemei supraîncărcării informației pe Internet, abordând probleme legate de modelarea utilizatorului în sistemele de informare inteligente și problema filtrării și partajării informației pe Internet, din perspectiva inteligenței artificiale.

Folosind recentele progrese din domeniul recuperării informațiilor, învățării automate și a sistemelor multiagent, voi prezenta un model de agent personal de informare și două modele de sisteme de recomandare și filtrare a informației pe Internet bazat pe agenți.

În viitor, sistemele soft on-line vor juca rolul furnizorilor de servicii de astăzi (bănci, servicii publice). Utilizatorii acestor sisteme vor fi foarte diverși. Ne îndreptăm către o interacțiune inteligentă om-mașină care să ofere răspunsuri adecvate pentru utilizatori specifici. Modelarea utilizatorilor este o parte a procesului de ajustare a sistemului, pe baza caracteristicilor, nevoilor, preferințelor sau deprinderilor utilizatorilor. Sistemul va deține o „imagine” a utilizatorului, un profil care este necesar în procesul de adaptare. Adaptarea poate fi interpretată în mai multe feluri în acest context. Poate fi văzută fie ca o interfață adaptivă, fie ca filtrare personalizată de informații, fie ca recomandări personalizate, etc. Termenul folosit în ultimul timp este cel de personalizare, care explică scopul acestor sisteme de a trata utilizatorul ca pe o individualitate cu o personalitate unică.

Ca exemplu voi prezenta Personal Information Agent, un agent personal pentru asistarea utilizatorului în procesul de căutare de informații în web. Pentru dezvoltarea acestuia am folosit algoritmi atât din domeniul extragerii informațiilor (IR Information Retrieval) cât și din domeniul filtrării informației (IF Information Filtering) cu scopul de a dezvolta și menține profilul utilizator în funcție de scopurile curente ale acestuia.

Modelul Internet pe care-l voi folosi, poate fi descris ca un spațiu informațional ce include site-uri, căi, obiecte și agenți software ca o componentă „vie” a acestui mediu. Diferite tipuri de agenți, cum ar fi agenții personali, agenți ce furnizează informație, agenți de procesare a informației, coexistă în acest mediu și interacționează prin schimburi de informație și cunoștințe.

Folosind acest cadru, voi descrie conceptele ce stau la baza diferitelor tipuri de sisteme de recomandare bazate pe agenți care se ocupă cu filtrarea informației folosind filtre bazate pe conținut, filtre bazate pe reputație, filtre colaborative și filtre demografice.

Ca exemplu voi prezenta o aplicație pentru managementul bookmark-urilor ce reprezintă un sistem de recomandare, în care se combină analiza conținutului cu formarea de comunități virtuale folosind filtrarea colaborativă automată pentru operațiile de clasificare, difuzare și filtrare a informației relevante pe Internet.

Folosind teoria învățării on-line ca bază formală voi prezenta un algoritm pentru predicția preferințelor utilizatorului.

1.2. Motivație

Odată cu apariția societății informaționale, cunoașterea a fost ridicată de la stadiul individual la cel de comunitate într-un ritm surprinzător. Informația, materia primă a erei digitale, nu a fost niciodată mai ușor de obținut, procesat și difuzat cum este acum prin Internet. Totuși, datorită creșterii explozive a cantității de informație a apărut și o creștere a dificultății de localizare a informației, când avem nevoie și într-un mod care să satisfacă cât mai bine cererile noastre.

Cercetătorii din domeniul Inteligenței Artificiale au promovat ideea de a folosi agenți software inteligenți (entități computaționale ce au obiective proprii și prezintă capacitatea de a raționa despre ei și mediul lor, de a realiza activități în numele utilizatorilor). Cercetătorii sunt preocupați de dezvoltarea agenților software ce au abilități sociale cum ar fi comunicarea, cooperarea și coordonarea în efortul de a rezolva problemele într-o manieră distribuită. Aceste sisteme sunt cunoscute ca sisteme multiagent. Mai mult, împrumutând idei din domeniul roboticii, se impun caracteristici reactive și pro-active în dezvoltarea agenților autonomi ce vor fi folosiți în Internet (un mediu ce se modifică foarte rapid).

Pe de altă parte, ceea ce a constituit un pas înainte în comunicarea interumană folosind calculatorul (cum sunt sistemele multimedia și hypermedia), reprezintă acum într-un fel o barieră pentru dezvoltarea adevăratelor sisteme automate inteligente. Aplicații precum World Wide Web-ul sau poșta electronică au fost dezvoltate cu gândul la abilitățile oamenilor de a comunica și de a analiza informația. Aceste sisteme sunt orientate pe informație și pentru oameni. Complexitatea reală a acestor sisteme depășește puterea de procesare a agenților inteligenți de astăzi. Pentru oameni, navigarea pe Internet și înțelegerea a ceea ce conține, implică un proces de raționare în care principalul mijloc este limbajul natural. Înțelegerea limbajului natural este încă o sarcină dificilă pentru calculatoare.

Tema managementului informației ocupă un loc important în diferite domenii din știința calculatoarelor, de la baze de date, rețele de calculatoare până la inteligența artificială.

Nu a durat mult de la apariția calculatoarelor, până a fost disponibilă o capacitate mare de memorare, ceea ce a dus la un mod eficient de a stoca și obține informație structurată și anume dezvoltarea modelului bazelor de date relaționale. La sfârșitul anilor ’60 a apărut SQL ca un limbaj pentru manipulare și definire de date, pentru a servi ca interfață în obținerea de informații dorite din diferite surse de date. Programele ce folosesc această interfață trebuie să cunoască structura bazei de date și să-și formalizeze cererile pentru a obține informațiile dorite. Mai târziu, în anii ’80 au devenit disponibile baze mari de date nestructurate, cum ar fi MEDLINE (un sistem de documente medicale dezvoltat și menținut de Biblioteca Națională de Medicină a Statelor Unite). Astfel nevoia de interfețe utilizator pentru căutare și obținere a informațiilor a devenit imperativă. A apărut astfel un nou domeniu (Information Retrieval – IR) al obținerii (extragerii) informațiilor. Au apărut conceptele de interogare, document, similaritate și măsuri precum precizia și revocarea. Aceste noțiuni încearcă să capteze conceptul subtil de relevanță ca o mărime a importanței unei informații date pentru utilizator. Totuși utilizatorul trebuie să-și exprime cererile prin interogări – care trebuie să fie reprezentări explicite a ceea ce dorește acesta.

Combinarea datelor structurate și nestructurate, diversitatea formatelor digitale și dezvoltarea rețelelor și comunicațiilor de date prin Internet au dus la o dezvoltare fără precedent a sistemelor hypertext, multimedia și la explozia informațională pe web.

Ca un paradox, un alt efect interesant al acestui progres este cantitatea imensă de informație prezentă on-line, care face aproape imperativă folosirea unei procesări inteligente pentru căutarea, filtrarea și obținerea informației. Câțiva vizionari ca Negroponte au descris asistentul personal ideal sau agentul de interfață, ce poate acționa în numele nostru, cum ar face o secretară.

Cantitatea imensă, natura dinamică (nepersistența) și calitatea diversă a informației disponibile pe on-line au atras mulți cercetători din Inteligența Artificială și au ridicat multe probleme.

1.3. Obiective și planul lucrării

În primul capitol am arătat motivațiile ce au condus la alegerea temei.

Capitolul II (Stadiul cunoașterii) expune stadiul actual al sistemelor de informare inteligente. Se începe cu sistemele clasice de recuperare a informațiilor (până în anii ’90) și se continuă cu sistemele de informare pentru web: motoare de căutare, metamotoare de căutare, servicii de tip director, sisteme de căutare specializate și agenți inteligenți de informare pentru Internet.

Capitolul III (Metode, tehnici și algoritmi de inteligență artificială utilizați în sistemele de informare inteligente) descrie metodele și tehnicile din inteligența artificială utilizate în clasificarea de text: metode probabilistice, metode bazate pe arbori de decizie, reguli de decizie, metode de regresie, metode online, metoda Rocchio, rețele neuronale, k Nearest Neighbors, vectori suport. Au fost înfățișate metodele de indexare și de reducere a dimensiunii utilizate pentru reprezentarea documentelor text, precum și modalitățile de evaluare a clasificatoarelor de text.

Capitolul continuă cu prezentarea celor mai populari algoritmi de filtrare folosiți în sistemele de recomandare moderne. S-a analizat formal problema pe care un algoritm de filtrare trebuie să o rezolve, s-au evidențiat dificultățile care apar și modul în care acestea pot fi rezolvate. S-a început cu descrierea filtrării sociale clasice, apoi s-au trecut în revistă modalitățile de îmbunătățire a algoritmului de bază. În continuare s-au descris metodele de preprocesare, apoi tehnicile de filtrare alternative (învățare automată, metode numerice, metode hibride). S-a continuat cu clasificarea algoritmilor de filtrare existenți după diverse criterii, iar în final au fost prezentate metricile de evaluare pentru măsurarea performanțelor.

Capitolul se încheie cu un subcapitol ce tratează modelarea utilizatorului în sistemele de informare inteligente, pornind de la reprezentarea acestuia ca „nevoie de informație” în sistemele clasice de recuperare a informației și continând cu modelarea utilizatorului în sistemele de informare pentru web. Sunt prezentate diverse modalități de realizare a profilului (introdus manual, din exemple, clusterizarea utilizatorilor, prin urmărirea comportamentului) și un cadru pentru feedback implicit.

Capitolul IV (Contribuții) descrie agenții personali de informare pentru web (clasificare, cerințe și arhitectură). Se prezintă un agent personal pentru web (dezvoltat în limbajul Java), care însoțește utilizatorul întreaga perioadă de consultare a paginilor web. Două procese sunt critice în proiectarea unui sistem de personalizare pentru un singur utilizator: primul este modelarea intereselor utilizatorului în mai multe domenii și al doilea este menținerea la zi a profilului. Se folosește un model vectorial, în care fiecare domeniu de interes este reprezentat printr-un vector de cuvinte cheie. Pentru a capta schimbările de interes, sistemul de personalizare are nevoie de date de instruire (pentru a actualiza periodic profilul), acestea obținându-se prin folosirea unui feedback de relevanță explicit. Sunt expuse algoritmul de construcție al profilului utilizator, algoritmul de actualizare, rezultate experimentale și comparații cu alte sisteme.

În continuare se prezintă un model preliminar multiagent pentru Internet și se face definirea sistemelor de recomandare bazate pe agenți, ca o extensie a sistemelor de recuperare de informație tradiționale. Am identificat diferite tipuri de sisteme de recomandare bazate pe agenți depinzând de modelul de învățare (Single Agent Model și Multiple Agent Model) și tehnologia de filtrare a informației: filtre bazate pe conținut, filtre sociale, filtre bazate pe evenimente, filtre bazate pe reputație.

Se prezintă apoi două prototipuri de sisteme de recomandare, ce folosesc scheme de recomandare sociale combinate cu scheme bazate pe conținut. Acestea sunt exemple bune pentru a ilustra modul de implementare a sistemelor de recomandare bazate pe agenți utilizate în descoperirea și partajarea informației interesante pe web. Au fost expuse detaliile algoritmilor, rezultatele experimentale, și comparații cu alte sisteme.

Teza se încheie cu un capitol de concluzii, resurse bibliografice și anexe.

Capitolul 2. Stadiul cunoașterii

2.1. Sistemele de informare. Introducere

De mii de ani oamenii au realizat importanța arhivării și găsirii informației. Odată cu apariția calculatoarelor a devenit posibilă stocarea unor mari cantități de informație, găsirea informației utile în asemenea colecții devenind astfel o necesitate. Domeniul recuperării informației a apărut în anii 1950 din această necesitate. De-a lungul celor peste 50 de ani domeniul s-a maturizat considerabil.

Practica arhivării informației scrise se regăsește în istorie în urmă cu 5000 de ani (3000 î.Hr.), când sumerienii au creat arhive pentru a păstra tăblițe de lut cu scriere cuneiformă. Chiar și sumerienii au realizat că organizarea și accesul adecvate la arhive erau critice pentru utilizarea eficientă a informației. Au dezvoltat clasificări speciale pentru a identifica fiecare tăbliță și conținutul ei.

Nevoia de a stoca și recupera informația scrisă a devenit din ce în ce mai importantă de-a lungul secolelor, odată cu invenția hârtiei și mai apoi a tiparului. La scurt timp după apariția calculatoarelor, oamenii și-au dat seama că acestea pot fi folosite pentru stocarea și recuperarea automată a unei cantități mari de informație.

În 1945 Vannevar Bush a publicat articolul intitulat „As We May Think” ce a introdus ideea accesului automat la cantități mari de informații stocate. În anii 1950 ideea s-a materializat în descrieri concrete a modului în care arhivele de text pot fi căutate automat. Câteva lucrări au apărut la mijlocul anilor 1950 și au dezvoltat ideea de bază a căutării textului folosind calculatorul. Una din cele mai influente metode a fost descrisă de H.P. Luhn în 1957, prin care a propus utilizarea cuvintelor ca unități de indexare pentru documente și folosirea intersecției cuvintelor ca un criteriu pentru recuperare. Câteva dezvoltări importante au avut loc în anii în anii 1960. Cele mai importante au fost dezvoltarea sistemului SMART de către Gerard Salton și studenții săi, mai întâi la Universitatea Harvard și mai târziu la Universitatea Cornell, și evaluările Cranfield realizate de către Cyril Cleverdon și grupul său la Colegiul de Aeronautică de la Cranfield. În cadrul testele Cranfield s-a dezvoltat o metodologie de evaluare a sistemelor re recuperare a informației care se folosește și astăzi. Sistemul SMART a permis cercetătorilor să experimenteze idei pentru a îmbunătăți calitatea căutării. Un sistem pentru experimentare și o metodologie de evaluare bună au condus la un progres rapid în acest domeniu. Anii 1970 și 1980 au fost martorii unor progrese realizate pe baza descoperirilor din anii 1960. Au fost dezvoltate modele diferite pentru recuperarea documentelor. Aceste modele și tehnici noi s-au demonstrat a fi eficiente pe colecții de text de câteva mii de articole disponibile cercetătorilor la acea vreme. Totuși datorită lipsei colecțiilor mari de text nu se putea ști dacă aceste modele și tehnici se puteau scala pentru corpusuri mari de text. Acest lucru s-a schimbat în 1992, odată cu apariția TREC, o serie conferințe sponsorizate de diverse agenții ale Guvernului SUA, care au drept scop stimularea cercetărilor în recuperarea de informații pe colecții de text foarte mari. Odată cu apariția colecțiilor mari de text la TREC, multe tehnici vechi au fost modificate și au fost dezvoltate multe tehnici noi pentru recuperarea eficientă din colecții mari. TREC a împărțit domeniul recuperării informațiilor în subdomenii importante precum recuperarea limbajului vorbit, recuperarea de text în alte limbi decât engleza, filtrarea informației, interacțiunea utilizatorului cu sistemul de recuperare, etc. Algoritmii dezvoltați în recuperarea de informații au fost primii utilizați în căutarea web, între anii 1996 și 1998. Căutarea web s-a perfecționat în sisteme ce i-au în calcul legăturile disponibile între paginile web ([Singhal, 2001]).

Sistemele de recuperare a informației sunt folosite ca o încercare de rezolvare a problemei exploziei informaționale. Multe biblioteci publice folosesc sisteme de recuperare a informației pentru a oferi acces la cărți, reviste, articole și alte documente. Motoarele de căutare precum Google, Yahoo Search, Live Search sunt printre cele mai sugestive exemple de sisteme de recuperare a informației.

Recuperarea informației este știința căutării informației în documente, căutării documentelor, căutării metadatelor care descriu documentele sau căutarea în baze de date, fie că sunt baze de date relaționale sau hipertext, cum este web-ul.

În continuare voi prezenta pe scurt principalele tipuri de sisteme de informare pentru web, și anume: motoare de căutare, servicii director, metamotoare de căutare, sisteme de căutare specializate, agenți inteligenți Internet, sisteme de recomandare.

Există în general două modele pentru obținerea informațiilor: modelul recuperării (regăsirii, extragerii) informațiilor și modelul împingerii (promovării, răspândirii, diseminării) informației. Motoarele de căutare, serviciile de tip director, metamotoarele de căutare implementează modelul recuperării informațiilor, în care informația este cerută de utilizatori. În modelul diseminării informației, utilizatorul subscrie la canale de informație și o primește la o anumită perioadă de timp. Din păcate acest model prezintă aceleași probleme ca și televiziunea sau radioul – există prea multe opțiuni și alegerea devine foarte dificilă. Fluxurile de informație fac și mai dificilă problema filtrării informației dintr-un anumit canal ce ar putea fi relevantă pentru utilizator.

2.2. Sisteme de informare pentru Web

Căutarea paginilor Web e una din cele mai frecvente operații din Web și una din cele mai frustrante. Aceasta situație a devenit un simbol pentru creșterea rapidă a Web-ului, nestructurarea acestuia și a lipsei de eficiență a tehnicilor de căutare existente ([Hu et al., 2001]). Tehnicile de căutare tradiționale se bazează pe introducerea de către utilizator a unor cuvinte cheie și serviciile de căutare scanează paginile Web pentru a găsi paginile ce conțin acele cuvinte cheie. Aceasta abordare duce la obținerea unui număr foarte mare de rezultate din care doar o mică parte sunt relevante. În plus cele mai relevante documente nu apar în capul listei.

Clasificăm sistemele de căutare în Web în următoarele categorii:

motoare de căutare

servicii tip director

metamotoare de căutare

servicii de căutare specializate

sisteme de recomandare

agenți Internet

2.2.1. Motoare de căutare și servicii tip director

Aceste aplicații folosesc rezultate ale cercetările din domeniul extragerii informației (IR-Information Retrieval – domeniu ce se ocupă cu obținerea de documente din baze de date de tip text) și din știința gestionării bibliotecilor aplicate în contextul Internet-ului și al Web-ului.

Folosind această paradigmă utilizatorul trebuie să specifice informația de care are nevoie în termenii unei interogări care este comparată (de obicei la nivel de cuvânt cheie) cu documentele existente în colecție și se extrag acele documente care satisfac interogarea și de aceea sunt potențial relevante pentru utilizator. Ca o alternativă, în mod asemănător cu abordările din biblioteci, au fost dezvoltate taxonomii pe subiecte (numite și directoare) pentru organizarea informației. Aceste scheme organizatoare permit utilizatorilor să caute manual documentele relevante prin parcurgerea ierarhiei de subiecte. Taxonomia servește ca un ghid pentru a ajuta utilizatorii să găsească documentele folositoare. Deși 85% din utilizatorii Web folosesc motoare de căutare pentru a localiza informația (într-un clasament al celor mai accesate sit-uri web, motoarele de căutare ocupă primele locuri), acestea de obicei nu dau informații actuale utilizatorilor. Studii recente au arătat că accesibilitatea informației pe web prin folosirea motoarelor de căutare este în general scăzută. Aceasta din cauză că premisele inițiale din IR – persistența documentelor nestructurate și existența colecțiilor mari nu mai sunt adevărate în cazul web-ului care este un mediu în continuă schimbare. Acest lucru face dificil de întreținut taxonomii foarte mari cum ar fi YAHOO!.

2.2.1.1. Structura unui motor de căutare

Exista doua abordări ce se aplică serviciilor de căutare Web: motoare de căutare și servicii de tip director. Diferența dintre cele doua abordări constă în modul de creare a listelor – motoarele de căutare creează listele automat în timp ce la serviciile de tip director listele sunt create manual.

Motoarele de căutare tradiționale conțin 3 elemente:

un spider (sau un grup de spideri)

programul de indexare

programul de căutare și gradare

Spider-ul este un program care scanează automat un site Web și colectează documente Web din el. Spider-ii urmăresc link-urile găsite dintr-un site pentru a găsi paginile relevante. Se întorc la site-uri periodic pentru a înregistra schimbările. Pentru creșterea vitezei sunt trimiși mai mulți spideri să traverseze Web-ul în același timp.

Spider-ii văd Web-ul ca un graf ale cărui noduri sunt obiectele localizate de către URL-uri. Aceste obiecte pot fi de tipul: HTTP, FTP, mail-to, news, telnet, etc.

2.2.1.2. Programul de indexare

Indexarea automată este procesul de examinare algoritmică a pieselor de informație pentru a construi o structură de date care poate fi căutată ușor. Filtrarea este unul din cele mai importante preprocese ale indexării. Filtrarea este o transformare a ceea ce s-a obținut în urma procesului de extragere de informații pentru a reduce dimensiunea textului, a standardiza și pentru simplificarea căutării. Motoarele de căutare tradiționale folosesc următoarele informații din fișierele HTML pentru a localiza paginile Web dorite:

conținut – folosind algoritmi de sumarizare

descriere – folosind informația din metatag-uri – tag-ul META

hiperlink-uri

cuvinte cheie

titlul paginii – din tag-ul TITLE

primul paragraf din pagină – tagul P

2.2.1.3. Programul de căutare și calculare a ponderilor

Procesarea interogărilor e activitatea de analiză a cererii (interogării) și căutarea în index pentru a găsi piesele relevante. Un utilizator introduce un cuvânt cheie (sau mai multe) într-un motor de căutare care realizează căutarea cuvântului cheie în paginile indexate. Pentru a determina în ce ordine vor fi prezentate utilizatorului rezultatele se folosește un algoritm de gradare a site-urilor ce conțin cuvintele cheie (de exemplu se poate calcula numărul de apariții ale cuvintelor cheie din pagină). Pentru a salva timp și spațiu motorul de căutare va realiza căutarea doar în metatag-uri (tag-uri HTML ce oferă informații despre conținutul paginii Web și despre cuvintele cheie pe care creatorul paginii le consideră relevante).

Motoarele de căutare operează pe baze de date uriașe în care căutarea se realizează după cuvinte cheie. Nici o baza de date nu acoperă întreg Web-ul. În consecință se oferă multe pagini cu referințe care nu sunt ceea ce așteptăm a fi un răspuns inteligent la cererea noastră; precizia e scăzută.

Folosind roboți Web (crowlers, spiders) motoarele de căutare scanează Web-ul. Pentru fiecare URL, documentul e cerut și stocat local. Aceste pagini sunt indexate prin căutarea în fiecare pagină a cuvintelor cheie (după numărul de apariții a unor cuvinte, fraze). Există și câteva motoare de căutare ce conțin pagini indexate manual (YAHOO!). Motoarele de căutare diferă prin câteva caracteristici si anume:

1. Comportamentul agentului

a) câmpul agentului – motoarele de căutare acoperă diferite părți din Web

b) adâncimea de căutare a agentului – într-un site agentul scanează cu anumite restricții de adâncime

c) frecvența de căutare – pentru a garanta un index actual, index-ul trebuie recompilat frecvent și web-ul trebuie rescanat pentru a nota schimbările

2. Indexare

a) metoda de indexare – care poate fi manuală sau automată. Dacă indexarea este automată ea are următoarele caracteristici:

b) proprietățile indexării – cu cât e mai sofisticată strategia de indexare cu atât e mai bună precizia. Documentele pot fi indexate după frecvența de apariție a cuvintelor sau a frazelor;

c) viteza de indexare – procesul de indexare e mare consumator de timp. De exemplu la AltaVista durează cam 6 săptămâni pana când un URL găsit de un agent e pus in baza de date și devine disponibil pentru căutare

3. Facilități de interogare – aici intră limbajele de interogare ce pot varia de la șiruri, folosirea de operatori logici, până la procesarea limbajului natural.

Unele motoare de căutare – cunoscute sub numele de motoare de căutare hibride, mențin și un serviciu de tip director asociat pentru creșterea eficienței căutării.

În figura de mai jos prezint arhitectura unui motor de căutare în care datele culese din Web sunt indexate și păstrate într-o baza de date ce poate fi accesată prin script-uri CGI.

Fig. 2.1. Arhitectura unui motor de căutare

Serviciile de tip director sunt create de către oameni. Deși motoarele de căutare pot indexa mai bine de un miliard de pagini, serviciile de tip director (cataloagele) rareori includ mai mult de un milion de elemente.

Serviciile de tip director de pe Web, cum ar fi Yahoo, Lycos, Excite sau LookSmart, colectează site-urile cu ajutorul unui spider sau le primesc din partea proprietarilor acestora. Apoi, editorii catalogului le sortează și le ordonează într-o baza de date aranjata pe domenii. Se poate căuta în baza de date utilizând motorul propriu de căutare sau se poate identifica categoria de informații dorite, în care se pot găsi site-urile relevante.

Cataloagele includ de obicei în paginile de legături rezultate ale căutării oferite de unul sau mai multe motoare de căutare. Și reciproca este adevărată, Google oferă rezultate din Open Directory. De exemplu, rezultatele unei căutări cu Yahoo combină pagini din catalogul propriu cu rezultate similare furnizate de motorul de căutare de pe Google, deși se obțin chiar toate rezultatele fabricate de acesta din urma. Lycos mixează rezultatele din propriul catalog cu rezultate ale căutării realizate de Fast. Metamotoarele de căutare, cum ar fi Dogpile sau MetaCrawler, trimit criteriul de căutare către câteva servicii de tip director si câteva motoare de căutare, apoi realizează agregarea rezultatelor primite de la acestea.

Deoarece motoarele de căutare indexează atât de multe pagini, comparativ cu serviciile de tip director, se obțin foarte multe rezultate atunci când se urmărește un criteriu de căutare foarte general (de ex. “java”). O regulă elementară este de a folosi serviciile catalog atunci când se caută informații de nivel general sau când utilizatorul nu e destul de sigur de locul din care ar trebui să înceapă căutarea. Motoarele de căutare se utilizează numai atunci când se caută ceva anume. Daca se folosește un catalog integrat intr-un motor de căutare sau un motor de căutare care conține și un catalog, nu se obțin neapărat cele mai bune rezultate din ambele instrumente, deoarece fiecare instrument poate pune in umbra avantajele celuilalt.

Exemple de motoare de căutare: Ask.com, Google, Live Search, AltaVista, AllTheWeb, Lycos.

Exemple de repertorii de subiecte (servicii de tip director): Best of the Web Directory, JoeAnt, Open Directory Project (cunoscut și ca DMoz sau ODP), Starting Point Directory, World Wide Web Virtual Library (VLIB), Yahoo! Directory.

2.2.2. Metamotoare de căutare

Metamotoarele de căutare încearcă să abordeze lipsurile motoarelor de căutare. Metamotoarele de căutare trimit cererea de căutare la mai multe motoare de căutare și integrează rezultatele primite de la acestea. Colectarea rezultatelor mai multor motoare de căutare poate duce la creșterea preciziei prin integrare. Totuși de multe ori paginile de interes sunt mascate de link-uri irelevante.

Nici unul din motoarele de căutare actuale nu sunt capabile sa acopere tot Web-ul. Metamotoarele de căutare folosesc mai multe motoare de căutare simultan și prezintă rezultatele într-o formă integrată. Permite utilizatorului sa evalueze ce motor de căutare întoarce cele mai bune rezultate. Nu folosesc baze de date proprii.

Structura unui motor de metacăutare:

dispatch: determină căror motoare de căutare le este trimisa cererea

interfața: adaptează formatul întrebării la formatul particular cerut de motorul de căutare

display: realizează integrarea rezultatelor primite de la motoarele selectate pentru a fi afișate

Performanțele unui metamotor de căutare depind de motoarele de căutare utilizate, limbajul de interogare (și traducerea acestuia pentru fiecare motor de căutare), metoda de integrare a rezultatelor. De obicei scorul sc(p) unei pagini p este calculat ca o suma normalizata rangurilor rs(p) acordate de către fiecare motor de căutare s.

Aceasta măsură poate fi modificată luând în calcul de câte ori a fost întoarsă ca rezultat pagina p. Nici un metamotor de căutare nu folosește scorul pe care-l dă motorul de căutare pentru a crește precizia.

În figura de mai jos prezint arhitectura unui metamotor de căutare.

Fig. 3.2. Arhitectura unui metamotor de cautare

Un lucru dificil este proiectarea wrapper-lui (ce extrage link-urile din răspunsurile motoarelor de căutare) deoarece motoarele de căutare își schimbă constant interfața și modul de prezentare a rezultatelor. După primirea rezultatelor urmează procesarea răspunsurilor și construirea răspunsului. Se pierde mult timp în interacțiile HTTP și pentru a se obține un răspuns rapid se face un compromis în sensul că precizia este relativ scăzută.

Exemple de metamotoare de căutare: Myriad Search, Ixquick, Mamma, MetaCrawler, SurfWax, Turbo10, Vivisimo, Clusty.

2.2.3. Sisteme de căutare specializate

Instrumentele de căutare specializate se folosesc pentru a căuta într-o anumită zonă a Web-ului sau pentru a obține acces la date altfel indisponibile. Serviciile de căutare specializate indexează doar paginile Web care se referă la un anumit domeniu, fără a lua în considerare restul lumii. Voi prezenta în continuare câteva instrumente pentru căutări specializate: căutarea unor persoane, căutare multimedia (imagini si sunete), căutarea de știri, căutări în sector public, grupuri de știri și forumuri, căutarea unor motoare de căutare.

2.2.3.1. Căutarea unor persoane

Google afișează numere de telefon și adrese atunci când se cunosc numele, codul poștal și orașul de domiciliu al persoanei căutate.

Whowhere de la Lycos permite găsirea unui număr de telefon, o adresa de e-mail sau o referință Web și uneori chiar și o adresă poștala clasică.

Există și servicii de căutare ce furnizează numere de telefon sau căutări inverse în cărțile de telefon din Statele Unite (www.411locate.com).

Bigfoot (www.bigfoot.com) permite aflarea mai multor informații decât adresa poștală. Prin selectarea numelui străzii, se vizualizează un set de locații vecine.

Switchboard (www.switchboard.com) oferă harta cu poziționarea unei adrese și o listă a restaurantelor și a hotelurilor învecinate.

Alte exemple sunt: Ex.plode.us, InfoSpace, Spock, Yellowpages.com, Zabasearch.com, ZoomInfo.

2.2.3.2. Imagini si sunete

Textul are un rol extrem de important, însă Web-ul este plin de alte tipuri de informații – imagini și muzică. Site-urile următoare permit găsirea unor.

2.2.3.3. Imagini

Altavista, Excite permit găsirea unor imagini destul de rare, cum ar fi o colecție a fotografiilor membrilor Excite sau fotografii furnizate de agențiile de presă Associated Press sau Reuters.

ImageFinder (sunsite.berkeley.edu/imagefinder) este un catalog de 10 baze de date cu imagini, situat la Universitatea California din Berkeley, care include și unele baze de la Smithsonian Institution si NASA.

ADAM (adam.co.uk) – un catalog de 2.500.000 de imagini in baze de date online – conține colecții de imagini din domenii precum artele plastice, design, arhitectura.

2.2.3.4. Video

Lycos permite căutarea de informații mutimedia (multimedia.lycos.com). Pagina video (video.lycos.com) constă într-un catalog de clipuri video in fluxuri create de membrii acestui centru.

Pentru a căuta clipuri video pe Web, se poate folosi pagina video de la AltaVista (www.altavista.com/siles/search/svideo). StreamSearch (www.streamsearch.com/radiohome.asp) permite căutarea pe Web a fluxurilor audio și video care sunt conforme cu criteriile de căutare specificate.

2.2.3.5. Audio

Pentru căutarea fișierelor de tip mp3, se poate folosi cu motorul de căutare audio de la AltaVista (www.altavista.com/sites/ search/saudio). Lycos Music (music.lycos.com/downloads) combină posibilitatea de a descărca fișiere de tip mp3 cu legături către site-urile artiștilor. AudioGalaxy (www.audiogalaxy.coin) conține foarte multe fișiere mp3 (trebuie instalat un utilitar specializat ce realizează legătura cu alți utilizatori de AudioGalaxy). O altă sursă valabilă de fișiere mp3 este Fast.

2.2.3.6. Știri

Cele mai multe motoare de căutare de uz general nu furnizează ultimele știri. Site-urile de căutare specializate în știri sunt mult mai la curent cu acestea, însă nu iau în considerare extrem de multe alte surse sau nu permit și căutări de știri și comentarii din trecut.

Lycos News (www.lycos.com/news) utilizează serviciile agențiilor Reuters și Wired News. Nu conțin știri mai vechi de o saptamana. Paradigm News Search de la Total News (www.totalnews.com) permit căutarea de informații în bazele de date de la BBC News sau Washingtonpost.com. Northern Light (www.northernlight.com/news.html) permite căutarea de știri din mai mult de zece categorii, printre care afaceri, sport și starea vremii. Nu se găsesc informații mai vechi de doua săptămâni.

Moreover (www.moreover.com) oferă o gamă largă de surse de știri, însă referitoare numai la ultimele doua zile. News Is Free (www.newsisfree.com) este un catalog interesant și personalizabil, conținând știri de pe Web, provenite din surse diferite.

News Tracker de pe Excite (nt.excite.com) conține informații cu privire la știrile mai vechi. InfoJump (www.infojump.com) – conține peste 5 milioane de articole, provenite de la 4.000 de publicații online.

2.2.3.7. Căutări în sectorul public

Nici o entitate nu este mai producătoare de informații decât guvernul Statelor Unite. Pentru căutarea în acest domeniu, se pot folosi FirstGov (www.firstgov.com), Usgovsearch (usgovserach.northernlight.com), ca motoare de căutare specializate, la nivelul informațiilor guvernamentale. Daca se caută un document produs de o anumită entitate, se poate folosi FedWorld (www.fed-world.com), un produs al DoCom (Departamentul de Comerț al SUA), care include hotărâri judecătorești, regulamente și diverse formulare. Google este implicat în astfel de servicii, cu o versiune a motorului de căutare care ia in vizor doar site-urile guvernamentale din SUA.

2.2.3.8. Grupuri de știri și forumuri

Unele dintre cele mai pertinente informații de pe Web provin din grupurile de știri Usenet. Cel mai important site pentru examinarea grupurilor de știri este Google Groups (groups.google.com), cunoscut anterior drept Deja.com. Conține o arhiva de câteva mii de mesaje, postate încă din 1995. O listă a comunităților se găsește la Forum One (www.forumone.com).

2.2.3.9. Căutarea unui motor de căutare

Un catalog de motoare de căutare – Search Engine Guide (www.searchengineguide.com) este un serviciu care va permite căutarea motoarele de căutare dedicate unui anumit domeniu. Alte site-uri similare sunt Argus Clearinghouse (www.clearinghouse.com), Beaucoup (www.beaucoup.com) si Search Engine Watch (www.searchengine-watch.com). Search Ability (www.searchability.com) este un catalog imens de motoare de căutare.

Unele informații online nu sunt prezente în rezultatele motoarelor de căutare. Informațiile pot fi stocate sub forma de baze de date, site-ul poate pretinde drepturi speciale de acces sau site-ul poate bloca pur și simplu indexarea de către un motor de căutare. Catalogul Lycos care conține bazele de date interogabile (dir.lycos.com/reference/serachable_databases) permite găsirea unor informații altcumva inaccesibile.

2.2.4. Sisteme de recomandare

Sistemele de recomandare încearcă să prezinte utilizatorului piese de informație (filme, muzică, cărți, știri, pagini web) care l-ar putea interesa, folosind pentru aceasta tehnici de filtrare a informației. În mod uzual un sistem de recomandare compară profilul utilizator cu anumite caracteristici de referință. Aceste caracteristici pot fi extrase din conținutul obiectului (în abordarea bazată pe conținut) sau din mediul social al utilizatorului (abordarea socială). Pentru construcția profilului utilizator se pot folosi date culese în mod explicit sau implicit.

Sistemele de recomandare compară datele colectate cu date similare strânse de la alți utilizatori și creează o listă de obiecte recomandate pentru utilizator.

Sistemele de recomandare sunt o alternativă la sistemele de căutare deoarece ajută utilizatorii să descopere obiecte pe care nu le-ar descoperi singuri.

Exemple de sisteme de recomandare include sisteme comerciale precum Amazon, Barnes and Noble, half.ebay.com, Hollywood Video, iLike (pentru muzică), Last.fm (pentru muzică), LibraryThing (pentru cărți), Musicmatch, TiVo, Thoof, Minekey, StumbleUpon și sisteme necomerciale cum sunt AmphetaRate (pentru articole RSS), Everyone's a Critic (pentru filme), GiveALink.org (pentru situri web), Gnomoradio (pentru muzică), iRATE (pentru muzică), MovieLens (pentru filme), Musicmobs (pentru muzică), Rate Your Music (pentru muzică).

2.2.5. Agenți de informare

Agenții Internet sunt agenții documentariști, destinați să-l ajute pe utilizator să găsească informațiile de care are nevoie în Internet, cu precădere în World Wide Web. Se numesc de obicei WebCrawlers, Spiders sau Robots. Unii dintre agenții din această categorie încearcă să ofere o imagine unitară a Internet-ului ca un întreg, dar actualmente cei mai mulți agenți Internet sunt simpli căutători de informații. Ei colectează informații despre WWW (topologie, număr de noduri, etc.), indexează conținutul unor locații sau doar execută cereri de căutare.

Tehnologia sistemelor multiagent își face intrarea pe Internet. În viitorul nu foarte îndepărtat, programele de tip agenți inteligenți vor constitui modalitatea preponderenta de exploatare a cantității enorme de informație din Internet.

Inteligența artificială distribuită este un subdomeniu al inteligentei artificiale care are ca scop construirea sistemelor de agenți inteligenți ce pot lua decizii pentru a-și realiza scopurile fixate, într-o lume populată de alți agenți inteligenți (artificiali sau umani) care au, la rândul lor, propriile lor scopuri.

Există mai multe motive care justifică distribuirea inteligenței în sistemele artificiale. În anumite aplicații (controlul traficului aerian, rețelele de senzori distribuiți, cooperarea din sistemele de roboți și altele) cunoștințele și activitățile sunt inerent distribuite spațial, deci distribuirea controlului inteligent se impune natural. Un al doilea motiv este extinderea paradigmei cooperării om-mașină printr-o abordare mai naturală bazată pe rezolvarea distribuită a problemelor. În al treilea rând, un sistem poate fi atât de complicat și poate conține atât de multe cunoștințe încât este mai bine să fie împărțit în diverse entități cooperative în scopul de a obține o eficiență crescută: modularitate, flexibilitate și un timp de răspuns mai scurt.

De asemenea, există interesul de a integra sistemele de inteligență artificială deja existente, atât intre ele cât și cu componente de prelucrare clasică. Inteligența artificială distribuită, cu modelul ei central al sistemelor multiagent, poate modela mai fin intuiția noastră despre comportamentul inteligent, executarea acțiunilor și a planurilor atât cooperativ cât și competitiv, conducând astfel la o noua perspectiva asupra reprezentării cunoștințelor și rezolvării problemelor.

Si, în sfârșit, comportamentul uman, pe care cele mai multe sisteme de inteligență artificială încearcă să-l modeleze, este un comportament social. Foarte puține implementări și nu multe abordări teoretice din inteligența artificială au ținut cont și de acest aspect.

2.2.5.1. Agenți și sisteme multiagent

Ce sunt agenții, de ce se numesc ei așa si de ce a fost nevoie de introducerea / folosirea acestui termen? Noțiunea de agent poate avea diverse interpretări în funcție de domeniul particular în care este utilizată. Exista agenți în științele cognitive, economice, sociale, în biologie și, recent, în știința calculatoarelor. Din punct de vedere software, un agent este un program care se comportă analog cu un agent uman, de exemplu un agent al unei agenții de voiaj sau un agent de asigurări. În esență, acest termen se referă la un program care prezintă o metaforă de interfață socială, adică este capabil să comunice în mod inteligent cu alți agenți software sau persoane.

O descriere relevantă a noțiunii de agent poate fi dată prin enumerarea caracteristicilor de bază pe care un agent trebuie să le posede ([Florea, 1995]):

Autonomie: un agent operează fără intervenție umană, are inițiative și exercită control asupra propriilor lui acțiuni. Agentul acceptă cereri de la utilizatori dar este cel care decide cum și unde va satisface aceste cereri. În același timp agentul nu răspunde orbește comenzilor primite ci colaborează cu utilizatorul sau alți agenți pentru satisfacerea cerințelor acestora, putând să propună modificări sau să ceară clarificări suplimentare.

Reactivitate: agenții percep mediul în care evoluează (care poate fi lumea fizica, un utilizator prin intermediul unei interfețe, o colecție de alți agenți sau rețeaua Internet) și răspund în timp util la schimbările sesizate în acest mediu.

Comunicare și abilitate socială: un agent trebuie să fie capabil să se angajeze în comunicări și dialoguri complexe cu alți agenți sau persoane pentru a obține informații sau ajutor în satisfacerea scopurilor.

Pentru anumiți cercetători, în special cei din domeniul inteligenței artificiale, termenul de agent implică și alte caracteristici suplimentare cum ar fi: noțiuni mentale (păreri, dorințe, obligații, opțiuni), raționalitate, adaptabilitate și învățare. Aceste caracteristici nu sunt exhaustive și, de altfel, nu există agenți inteligenți care să le înglobeze pe toate. Deocamdată nu există un consens referitor la importanța relativă a diverselor proprietăți ale agenților, dar cei mai mulți cercetători recunosc că cele amintite ar fi caracteristicile definitorii ale unui program agent față de un program obișnuit.

2.2.5.2. Agenți informaționali

Una dintre modalitățile spectaculoase prin care agenții se impun comunității utilizatorilor de calculatoare este aceea a agenților Internet, agenți informaționali ce oferă servicii Internet inteligente. Tehnologia calculatoarelor a generat o creștere remarcabilă a capacității de a genera, oferi și stoca informație. În același timp însă, instrumentele de localizare, filtrare și analiză a informației existente nu au înregistrat o creștere corespunzătoare. Deși manipularea directă a informației, gen meniuri, butoane și altele, este ușoara pentru operații simple cum ar fi compilarea unui program, editarea de texte sau tipărirea unui fișier, nu același lucru se întâmplă în cazul accesului și căutării în rețele masive de informație. Agenții inteligenți Internet sunt destinați schimbării acestei situații. “Internet Society” estimează că există peste 30 de milioane de utilizatori care accesează zilnic rețeaua Internet. Deși exista unii utilizatori care se amuza să navigheze prin Internet, cei mai mulți ar fi foarte bucuroși dacă ar putea lăsa operații costisitoare ca timp, cum ar fi aceea de a căuta informații despre un subiect particular, pe seama unor agenți competenți.

O definiție pertinentă vine este cea din [Gautheron, 2000]: „un agent inteligent este un software ce permite realizarea de sarcini repetitive și care are ca misiune căutarea informației pe web și în corpusuri de date locale, constituirea de baze de informații, supravegherea și controlul resurselor legate de o cerere, vizualizarea și reperarea datelor”.

Până la încetățenirea numelui „agent informațional”, aceste instrumente au purtat diferite denumiri care reflectau funcțiile și misiunile lor: program computerizat de analiza semantică, de prelucrare a informațiilor textuale, de cartografiere a informațiilor, de text mining, „agenți de căutare”, „agenți autonomi”, „agenți personali”, etc.

Un agent inteligent nu doar colectează informațiile, ci le și evaluează, ierarhizează, clasifică, filtrează etc. Poate chiar să urmeze cursul link-urilor din paginile supravegheate sau din paginile identificate ca pertinente.

În continuare voi descrie o serie de agenți software inteligenți care există sau sunt pe cale de a fi implementați, în scopul de a oferi o idee despre ceea ce vor fi agenții Internet. Descrierea agenților Internet ce urmează va fi făcută în termeni de funcționalitate și nu de arhitectură, dar ei sunt, de cele mai multe ori, modele cognitive de agenți.

2.2.5.3. Agenți ghizi

Agenți ghizi. O prima categorie de agenți este aceea a agenților ghizi (tour guides). Mulți utilizatori sunt dezorientați în momentul în care vor să consulte World Wide Web-ul. Un agent care îi poate ajuta în acest domeniu este un agent ghid, agent capabil să răspundă unei întrebări de tipul “Unde caut în continuare?” sau “Ce mai trebuie să citesc despre un anumit subiect?”. Există deja diverse implementări de astfel de agenți pentru sisteme hipertext de dimensiune redusa și există prototipuri de astfel de sisteme și pentru Web. De exemplu, WebWatcher sfătuiește interactiv utilizatorii Web-ului asupra legăturii următoare pe care trebuie s-o urmeze. În plus, WebWatcher încearcă să învețe prin observarea reacției utilizatorului la sfatul primit, utilizatorul fiind evident liber să nu urmeze sfatul agentului. În consecință, agenții ghizi au ca scop conducerea utilizatorilor prin Web, oferind în același timp o experiență personalizată fiecărui utilizator.

2.2.5.4. Agenți index

Agenți index. O altă categorie de agenți Internet este aceea a agenților index (indexing agents) Aceștia sunt deocamdată cei mai populari agenți din rețea, prin implementări cum ar fi Lycos, WebCrawler și InfoSeek. Agenții index efectuează o căutare masivă și autonomă de informație în Web, putând ajunge să inspecteze până la un milion de documente, și creează un index de cuvinte găsite în titlurile și textul documentelor inspectate. Utilizatorul poate apoi interoga agentul despre documente ce conțin anumite cuvinte cheie. Agenții index pot oferi răspunsuri rapide dar prezintă o serie de limitări. Căutarea unei anumite informații nu este întotdeauna bine deservită de cuvintele cheie. Utilizatorii pot dori criterii mai complicate. În plus, agenții index nu sunt personalizați, ceea ce poate duce la oferirea unor informații nerelevante, și nici selectivi în căutarea efectuată. Revenind la metafora autostrăzii informației, agenții index sunt ca șoferii de taxi care te conduc la destinația dorită dar te depun acolo, fără a se preocupa de ceea ce faci în continuare și nici dacă ai ajuns exact acolo unde doreai de fapt.

2.2.5.5. Softbot

Softbot. Un agent inteligent Internet diferit ca natura de agenții descriși mai sus este agentul Softbot. Numele de Softbot este derivat din “software robot”. În locul unui robot mobil cu brațe și roți, Softbot-ul este un asistent al utilizatorului capabil de a înțelege și executa comenzi și acțiuni complexe. Datorită lui, cea mai mare parte a structurilor din Internet devin transparente pentru utilizator. În contrast cu agenții inteligenți care asistă utilizatorii în găsirea informațiilor relevante, Softbot-ul accepta scopuri de nivel înalt definite de utilizator și sintetizează dinamic secvența de comenzi Internet potrivită pentru satisfacerea acestor scopuri. Apoi Softbot-ul execută această secvență de comenzi, adunând informații pentru decizii ulterioare, recuperând erorile și reîncercând comenzi, dacă aceasta este necesar. Agentul Softbot poate realiza diverse scopuri de nivel înalt în serviciul utilizatorului. El poate monitoriza o serie de evenimente, cum ar fi utilizarea discului, activitatea utilizatorului, buletinele electronice de știri, servere FTP, și comunică utilizatorului ceea ce a găsit printr-un semnal sonor, un mesaj pe ecran sau un mesaj e-mail. Pe lângă filtrarea informației, Softbot-ul poate acționa asupra mediului în care lucrează, de exemplu prin asigurarea compactării permanente a fișierelor dintr-un director, protejarea fișierelor din altul, etc. De asemenea, Softbot-ul poate realiza automat compilarea fișierelor program, conversia documentelor dintr-un format în oricare altul, accesul la baze date de diverse tipuri, prin apelul, în secvență, a diverselor programe adecvate. Fiindu-i dat numele unei persoane, el poate determina adresa electronică a acesteia printr-o combinație de comenzi whois, netfind, staffdir, finger și alte utilitare. Cheia succesului agenților inteligenți este gradul în care agenții sunt capabili să înțeleagă informația pe care o manipulează. Unul din motivele pentru care agentul Softbot este considerat un succes este focalizarea lui asupra unor informații structurate de tipul celor amintite anterior.

Agenții Internet existenți sunt departe de a fi perfecți și de a îndeplini toate cerințele pe care utilizatorii le pretind de la ei. Programele bazate pe agenți informaționali Internet vor evolua spre sisteme multiagent capabile să integreze abilitățile punctuale descrise mai sus într-un singur program, combinându-le și cu alte caracteristici definitorii ale agenților inteligenți și a sistemelor multiagent. Se presupune că viitoarea generație de agenți Internet va fi o combinație de modele cognitive și reactive, cu structuri organizatorice complexe, care vor avea ca scop atât creșterea eficienței accesului utilizatorului la informația din Internet cât și transparența totală a autostrăzii informației. Numai în acest fel se poate garanta accesul nerestrictiv al oricărei categorii de utilizatori, indiferent de calificare și cunoștințe, la enorma resursă informațională ce este și va deveni Internet-ul.

2.2.5.6. Tipologie

Există mai multe tipuri de agenți inteligenți în funcție de domeniul de aplicabilitate sau de utilitățile înglobate. Astfel, există agenți dedicați domeniului economic, dar și agenți nespecializați creați pentru a ajuta utilizatorul să caute pe Internet informații în orice domeniu ([Mandeal, Porumbeanu, 2005]).

2.2.5.6.1. Agenți dedicați comerțului electronic

a) Agenți de negociere. Utilizatorii care vor să vândă sau să cumpere ceva setează un agent cu direcțiile și condițiile proprii pentru a negocia prețul și celelalte elemente ale tranzacției (data livrării, condițiile de vânzare-cumpărare, serviciile de garanție etc.) în locul său. Acești agenți evaluează propunerile, le clasifică după preferințele stabilite de utilizator și le transmit acestuia. Exemple: AuctionBot , Kasbah, etc.

b) Agenți de brokeraj. Utilizați în demersul de cumpărare (numiți și „shopbots”), acești agenți au funcționalități diverse: caută și întocmesc o listă cu produse conform unei cereri, compară prețurile oferite și subliniază oferta cea mai avantajoasă, pot cere utilizatorului să clasifice produsele după preferințe pentru a compara această clasificare cu cele ale altor cumpărători și a evidenția gusturile și tendințele, recomandă utilizatorului produsele cel mai des cumpărate etc. Ei pot parcurge standuri virtuale în căutarea produsului potrivit, pot afișa rezultatele sub forma unui tabel cu ofertele disponibile, pot recomanda un anumit produs și, în final, la cererea utilizatorului pot începe demersurile de cumpărare. Agenții de brokeraj pot fi generaliști: Firefly, Shopping Explorer, RoboShopper, sau pot fi specializați într-un domeniu precis: BargainFinder, în elemente IT, PriceLine, în bilete de avion, camere de hotel, oferte turistice etc.

2.2.5.6.2. Agenți de căutare a informațiilor

a) Agenți de căutare

Sunt instrumente de căutare cu funcționalități multiple, prezentând, astfel, avantaje prin care câștigă din ce în ce mai mulți utilizatori. De exemplu, WEBSEEKER, care este, în același timp, un agent de filtrare și arhivare a rezultatelor și care este cel mai utilizat agent poate căuta informația simultan cu mai multe instrumente (exact după principiul de funcționare al unui metamotor), indexează și afișează rezultatele eliminând dubletele, poate crea rezumate.

b) Agenții sectoriali

Agenții de acest tip pot interoga baze de date care nu sunt, în general, în vizorul motoarelor clasice de căutare; ei sunt, de fapt, niște agenți de căutare specializați, creați pentru a căuta într-un domeniu specific de activitate (de pildă, în critică literară, știință și tehnică etc.). Ei funcționează după același principiu ca și agenții mai sus numiți: trimit cererea utilizatorului către diferite instrumente specializate de căutare și colectează paginile pertinente înlăturând dubletele. Exemple: Citizen 1 HIT, Webseeker.

c) Agenții avansați de căutare

Agenți precum Autonomy, DigOut4u, Umap Web utilizați și pentru servicii de veghe – au funcții avansate de analiză a cererilor sau de prelucrare a rezultatelor: filtrare, arhivare, analiză lingvistică etc. Majoritatea oferă posibilitatea de a face căutări multilingve, în limbaj natural, de a cartografia informațiile primite, de a optimiza căutarea prin intermediul tezaurelor.

Cea mai importantă funcție a acestor agenți este faptul că dă posibilitatea unei interogări în limbaj natural; de aici, eficiența căutării și regăsirii informațiilor.

d) Metamotoarele off-line funcționează astfel: utilizatorul face o interogare cu ajutorul cuvintelor cheie, interogare care este trimisă mai departe instrumentelor de căutare (motoare și servicii tip director) selectate, iar la întoarcerea rezultatelor sunt înlăturate dubletele.

Unul din cele mai des utilizate metamotoare off-line este Copernic. Alte metamotoare off-line sunt Inforia Quest, care permite interogarea a mai mult de 100 de motoare și crearea unui profil personalizat al utilizatorului; Surfbot; Web Ferret, etc.

Capitolul 3. Metode, tehnici și algoritmi de inteligență artificială utilizați în sistemele de informare inteligente

3.1. Clasificarea automată a textului. Utilizarea metodelor din învățarea automată

Clasificarea (categorisirea) automată a textelor în categorii predefinite a cunoscut un interes din ce în ce mai crescut în ultimii 10 ani, datorită numărului de documente disponibile în format digital și a nevoii de a le organiza. În cadrul comunităților de cercetare abordarea dominantă a acestei probleme se bazează pe tehnici de învățare automată (machine learning): un proces inductiv construiește automat un clasificator, prin învățare dintr-o mulțime de documente preclasificate (ce sunt caracteristicile categoriilor, claselor).

Avantajele acestei abordări față de abordarea din ingineria cunoștințelor (abordare ce constă în realizarea manuală a unui clasificator de către experți dintr-un domeniu) sunt eficiența foarte bună, portabilitatea pentru domenii diferite, reducerea folosirii experților.

Se vor prezenta principalele abordări ale clasificării textului ce folosesc paradigmele învățării automate. Se vor prezenta trei probleme și anume:

– reprezentarea documentelor

– construcția clasificatorului

– evaluarea clasificatorului

3.1.1. Introducere

În ultimii 10 ani managementul bazat pe conținut al documentelor (domeniul recuperării informațiilor) a căpătat un rol important în sistemele de informare (sistemele informaționale) datorită creșterii numărului de documente în format digital și a nevoii de a le accesa într-un mod cât mai flexibil.

Clasificarea textului este activitatea de a eticheta texte în limbaj natural cu categorii tematice dintr-o mulțime predefinită. Clasificarea textului datează din 1960, dar abia prin 1990 a devenit un subcâmp important al disciplinei sistemelor de informare, datorită creșterii interesului aplicativ și a apariției de hardware performant. Clasificarea textului este aplicată în multe situații, de la indexarea documentelor ce folosesc un vocabular controlat, până la filtrarea documentelor, generarea automată a metadatelor, stabilirea sensului cuvintelor, popularea cataloagelor ierarhice de resurse web și, în general, în orice aplicație ce necesită organizarea documentelor.

Până la sfârșitul anilor ’80 cea mai populară abordare pentru clasificarea textului, cel puțin în aplicațiile reale, a fost abordarea din domeniul ingineriei cunoștințelor (Knowledge Engineering KE), ce consta în definirea unei mulțimi de reguli ce captează cunoștințele unui expert despre cum se clasifică documentele în anumite categorii. În anii ’90 această abordare nu mai este populară (cel puțin în comunitățile de cercetare), fiind preferată paradigma învățării automate, în care un proces inductiv general construiește în mod automat un clasificator de text prin învățarea caracteristicilor categoriilor de interes dintr-o mulțime de documente preclasificate.

Avantajele acestei abordări sunt acuratețea comparabilă cu cea obținută de experți umani și o economie considerabilă în ceea ce privește mâna de lucru a experților deoarece nu mai este necesară nici o intervenție din partea inginerului de cunoștințe sau a experților din domeniu pentru construcția clasificatorului sau pentru mutarea la o nouă mulțime de categorii.

Clasificarea textului este astăzi o disciplină la granița dintre recuperarea informațiilor (IR) și învățarea automată (ML) și de aceea are în comun o serie de caracteristici cum ar fi extragerea informației din text (Information Extraction) și text mining. Încă se mai dezbate care este granița dintre aceste discipline (și terminologia încă evoluează). Text mining este folosit din ce în ce mai des pentru a desemna toate sarcinile care, prin analiza unor cantități mari de text și detectarea unor șabloane încearcă să extragă informație utilă (sau corectă). Potrivit acestei abordări, clasificarea textului aparține de text mining. Deși există o bogată literatură, aceasta este în mare măsură dispersată. Există o revistă internațională care a acordat un număr special pentru acest subiect [Joachims, Sebastiani, 2001], neexistând în rest o tratare sistematică a subiectului, nu există încă cărți sau reviste dedicate în întregime clasificării textului. În [Manning, Schütze, 1999] există un capitol care se ocupă de acest subiect.

Trebuie notat că sintagma clasificarea automată a textului a fost folosită câteodată în literatură având alte înțelesuri decât cel prezentat aici. Astfel clasificarea automată a textului a fost folosită pentru:

– repartizarea automată a documentelor într-o mulțime predefinită de categorii

– identificarea automată a mulțimii de categorii

– identificarea automată a mulțimii de categorii și gruparea documentelor în ele, operație ce se numește clusterizarea textului

– orice activitate de plasare a unor porțiuni de text în grupuri (activitate ce conține atât clasificare de text cât și clusterizare de text)

În continuare se va prezenta definirea formală a clasificării de text, apoi se vor trece în revistă domeniile de aplicație ale clasificării de text. În continuare se descriu abordările pentru clasificare din învățarea automată. Clasificarea textului se prezintă pornind de la indexarea textului (transformarea documentelor text într-o formă ce poate fi interpretată de un algoritm de construcție a clasificatorului și eventual de clasificatorul construit). În continuare se prezintă construcția inductivă a unui clasificator de text dintr-o mulțime de instruire ce conține documente preclasificate. În final se prezintă modalitățile de evaluare ale clasificatoarelor de text și se prezintă câteva concluzii.

3.1.2. Clasificarea textului

Clasificarea textului este operația prin care se atribuie o valoare booleană fiecărei perechi , în care D reprezintă domeniul documentelor iar este o mulțime de categorii predefinite. O valoare adevărat atribuită unei perechi indică decizia de a clasifica documentul în categoria .

Formal, clasificarea textului constă în a aproxima o funcție țintă necunoscută (funcție ce descrie cum trebuie clasificate documentele) printr-o altă funcție numită clasificator (se mai numește regulă, ipoteză sau model) astfel încât și să „coincidă cât mai mult posibil”. Definirea precisă și măsurarea eficienței va fi prezentată puțin mai târziu.

Se fac următoarele presupuneri:

– categoriile sunt doar etichete (nume) simbolice și nu sunt disponibile cunoștințe suplimentare (de natură procedurală sau declarativă) despre semnificația lor. Aceasta înseamnă că textul ce formează eticheta (de exemplu eticheta Sport într-o operație de clasificare a știrilor) nu poate fi folosit în procesul de construcție a clasificatorului.

– nu sunt disponibile cunoștințe exogene (informații din surse externe oferite pentru clasificare). Din acest motiv clasificarea trebuie realizată doar pe baza cunoștințelor endogene (cunoștințele extrase din documente). În particular aceasta înseamnă că metadatele cum ar fi data publicării, tipul documentului, sursa documentului, etc. nu sunt disponibile.

Folosirea doar a cunoștințelor endogene înseamnă că clasificarea unui document se face doar pe baza semanticii acestuia. Deoarece semantica unui document este o noțiune subiectivă rezultă că și apartenența unui document la o categorie nu poate fi decisă în mod determinist (la fel cum nu poate fi decisă determinist relevanța unui document pentru o nevoie de informație în recuperarea de informații). Acest lucru se poate exemplifica prin fenomenul de inconsistență a inter-indexării în care atunci când doi experți umani decid dacă să clasifice un document în categoria ei pot să nu fie de acord, lucru care se întâmplă cu o frecvență destul de mare.

3.1.2.1. Clasificare simplă și clasificare multiplă

Operației de clasificare de text i se pot impune mai multe restricții, depinzând de aplicație. De exemplu putem avea nevoie ca, pentru un număr întreg k, exact k (sau , sau ) elemente din C să fie atribuite fiecărui element . Cazul în care exact o categorie trebuie atribuită fiecărui document se numește de obicei clasificare simplă sau categorii care nu se suprapun. Cazul în care orice număr de categorii de la 0 la |C| pot fi atribuite aceluiași document se numește clasificare multiplă sau categorii care se suprapun. Un caz special de clasificare simplă în clasificarea de text este clasificarea de text binară, în care fiecare document trebuie atribuit fie categoriei , fie categorie complementare .

Din punct de vedere teoretic, cazul binar (și cazul clasificări simple) este mai general decât cazul clasificării multiple, deoarece un algoritm pentru clasificare binară poate fi folosit și pentru clasificare multiplă. Este nevoie doar de transformarea problemei clasificării multiple (în categoriile ) în |C| probleme independente de clasificare binară (în categoriile , cu ). Totuși acest lucru necesită ca clasele să fie independente stocastic unele de altele (și de obicei se presupune că este adevărat). De exemplu pentru orice , valoarea funcției nu depinde de valoarea funcției și viceversa. Reciproca nu este valabilă: un algoritm pentru clasificare multiplă nu poate fi utilizat pentru clasificare binară sau pentru clasificare simplă. De fapt pentru un document de clasificat: clasificatorul poate atribui categorii pentru și nu este foarte evident cum se poate alege cea mai potrivită categorie dintre cele k; clasificatorul poate să nu atribui nici o categorie documentului și nu e foarte evident cum se poate alege cea mai „puțin neadecvată” categorie din C.

În continuare se va prezenta cazul clasificării binare. Motive pentru alegerea cazului binar sunt variate:

– cazul binar este important deoarece aplicații importante de clasificare de text (inclusiv filtrarea) conțin probleme de clasificare binară (de exemplu trebuie să decidă dacă un document este despre Sport sau nu). În clasificarea de text, majoritatea problemelor de clasificare binară prezintă categorii populate inegal (de exemplu mult mai puține documente sunt despre Sport decât cele care nu sunt despre Sport) și categorii caracterizate inegal (poate fi caracterizat mai bine ce este despre Sport decât ceea ce nu este despre Sport);

– rezolvarea cazului binar înseamnă de multe ori rezolvarea cazului clasificării multiple (care este o caracteristică a unor aplicații importante de clasificare de text cum ar fi indexarea automată pentru sisteme booleene);

– majoritatea lucrărilor de clasificare de text sunt exprimate în termenii clasificării binare;

– majoritatea tehnicilor pentru clasificare binară sunt cazuri particulare ale tehnicilor existente pentru clasificare simplă și sunt mai simplu de prezentat.

În continuare se va considera clasificarea în ca conținând |C| probleme independente de clasificare a documentelor din D într-o categorie dată , cu . Un clasificator pentru este o funcție ce aproximează o funcție țintă necunoscută .

3.1.2.2. Clasificare pivotată după categorie și clasificare pivotată după document

Există două modalități diferite de a utiliza un clasificator de text. Având dat un document se poate dori să se găsească toate categoriile în care poate fi clasificat (clasificare pivotată după document – CPD); o altă variantă, având dată o categorie , se poate dori să se găsească toate documentele ce pot fi clasificate în ea (clasificare pivotată după categorie – CPC). Distincția este mai mult pragmatică decât conceptuală, dar este importantă deoarece mulțimile C și D e posibil să nu fie disponibile în întregime de la început.

Clasificarea pivotată după document este potrivită când documentele devin disponibile la momente diferite în timp (de exemplu în filtrarea poștei electronice). Clasificarea pivotată după categorie este potrivită: când o nouă categorie poate fi adăugată la o mulțime existentă după ce un număr de documente au fost deja clasificate în C și când documentele trebuie examinate pentru clasificare în categoria . Clasificarea pivotată după document este mai utilizată decât clasificarea pivotată după categorie deoarece prima situație este mai des întâlnită în practică decât prima.

Deși există unele tehnici ce se aplică doar unui tip de clasificări (de exemplu metoda valorii de prag proporționale se aplică doar clasificării pivotate după categorie).

3.1.2.3. Clasificare tare (hard) și clasificare ierarhizată

Operația de clasificare de text necesită o decizie T sau F pentru fiecare pereche . Se pot însă aplica și alte constrângeri.

De exemplu, pentru un document dat un sistem poate pur și simplu să ordoneze categoriile din în funcție de potrivirea cu documentul , fără să ia decizii „puternice” despre nici una din ele. O astfel de listă ordonată poate fi de mare ajutor unui expert uman responsabil cu luarea unei decizii finale de clasificare, deoarece se poate limita la categoriile din capul listei și nu mai trebuie să examineze întreaga mulțime de categorii. În mod similar, având dată o categorie , un sistem poate ordona documentele din D în funcție de potrivirea cu categoria ; pentru clasificarea în categoria un expert uman ar trebui să examineze doar documentele din capul listei și nu toată mulțimea de documente. Aceste două modalități de clasificare sunt numite clasificare ierarhizată după categorie și clasificare ierarhizată după document și, în mod evident, sunt corespondentele clasificării pivotate după categorie și a clasificării pivotate după document.

În continuare, dacă nu este specificat altfel, se va prezenta clasificarea tare. Totuși, mulți algoritmi ce vor fi prezentați se încadrează în mod natural și în clasificarea ierarhizată.

3.1.3. Aplicații ale clasificării de text

Trebuie făcută observația că granița dintre diferitele clase de aplicații prezentate în continuare este vagă și câteodată artificială, unele dintre aplicații putând fi considerate cazuri particulare ale altora. Alte aplicații ce nu vor fost prezentate se referă la clasificarea vorbirii prin combinarea recunoașterii vorbirii cu clasificarea de text, clasificarea documentelor multimedia prin analiza titlurilor și a metadatelor asociate, identificarea autorilor pentru texte literare al căror autor este necunoscut sau controversat, identificarea limbii pentru text a căror limbă este necunoscută, identificarea automată a genului literar a unor texte, notarea (evaluarea) automată a unor lucrări.

3.1.3.1. Indexarea automată pentru sistemele booleene de recuperare a informației

Primele cercetări în domeniu se referă la indexarea automată a documentelor pentru sistemele de recuperare de informații ce se bazează pe un vocabular controlat (cele mai importante exemple de astfel de sisteme sunt sistemele booleene). Într-un sistem boolean fiecărui document îi sunt atribuite unul sau mai multe cuvinte cheie sau fraze cheie ce descriu conținutul acestuia. Cuvintele cheie și frazele cheie aparțin unei mulțimi finite numită vocabular controlat, de obicei conținând un lexicon ierarhizat tematic (de exemplu lexiconul NASA sau lexiconul MESH pentru medicină). De obicei alegerea acestor cuvinte cheie este făcută de oameni, fiind deci o activitate costisitoare.

Dacă intrările vocabularului controlat sunt văzute drept categorii, indexarea de text este un exemplu de clasificare de text. Clasificarea de text pivotată după document este cea mai bună alegere în acest caz, documentele noi fiind clasificate pe măsură ce sunt disponibile.

Indexarea automată cu vocabular controlat este apropiată de problema generării automate a metadatelor. În bibliotecile digitale interesează marcarea documentelor cu metadate ce descriu documentele sub diferite aspecte (de exemplu data creării documentului, tipul sau formatul documentului, disponibilitatea, etc.). Unele din aceste metadate sunt tematice, rolul lor fiind acela de a descrie semantica documentului prin folosirea de coduri bibliografice, cuvinte cheie și fraze cheie. Generarea acestor metadate poate fi văzută ca o problemă de indexare a documentelor folosind un vocabular controlat și, de aceea, se poate rezolva folosind tehnici de clasificare de text.

3.1.3.2. Organizarea documentelor

Indexarea folosind un vocabular controlat este un caz particular a problemei generale a organizării documentelor. În general multe alte probleme ce se referă la organizarea și clasificarea documentelor (fie pentru organizare personală, fie pentru organizarea unei colecții de documente ale unei companii) pot fi rezolvate folosind tehnici de clasificare de text. De exemplu în redacția unui ziar anunțurile și reclamele trebuie, înainte de publicare, clasificate în categorii ca Vânzări, Angajări, Matrimoniale, etc. Acest ziar ar putea beneficia de existența unui sistem automat care să aleagă cea mai potrivită categorie pentru un anunț dat. Alte aplicații posibile ar putea fi organizarea brevetelor de invenție în categorii pentru a face căutarea mai ușoară clasificarea automată a articolelor din anumite ziare ziar în secțiunile corespunzătoare (de exemplu Politică, Economie, Cultură, Sport) sau gruparea automată pe sesiuni a articolelor ce vor fi prezentate la o conferință.

3.1.3.3. Filtrarea textului

Filtrarea textului este activitatea de clasificare a unui flux de documente expediat în mod asincron de un producător de informație către un consumator de informație. Un exemplu tipic este acela în care producătorul de informație este o agenție de știri iar consumatorul este un ziar. În acest caz sistemul de filtrare ar trebui să blocheze livrarea către consumator a documentelor care e probabil să nu-l intereseze pe acesta (de exemplu să blocheze toate știrile care nu sunt despre sport în cazul unui ziar de sport). Filtrarea poate fi văzută ca o clasificare de text simplă a documentelor în două categorii disjuncte, relevant și irelevant. În plus, un sistem de filtrare poate clasifica documentele considerate relevante în categorii tematice. De exemplu, un sistem de filtrare a poștei electronice poate fi instruit să respingă mesajele nedorite (de tip „spam”), și mai departe să clasifice mesajele rămase în categorii de interes pentru utilizator.

Un sistem de filtrare poate fi instalat la producătorul de informație, caz în care trebuie să dirijeze documentele doar utilizatorului interesat, sau la consumatorul de informație, caz în care trebuie să blocheze livrarea considerate neinteresante pentru utilizator. În primul caz sistemul construiește și menține un profil pentru fiecare consumator, în timp ce în ultimul caz e necesar un singur profil. Acest ultim caz va fi prezentat în continuare.

Inițial, profilul poate fi specificat de utilizator, din această cauză semănând cu specificarea unei interogări din recuperarea de informații, apoi profilul este actualizat de către sistem prin folosirea informației de feedback oferite (fie în mod implicit, fie în mod explicit) de către utilizator în legătură cu relevanța sau irelevanța mesajelor livrate. Această operație se mai numește și filtrare adaptivă. În cazul în care nu este disponibil profilul specificat de utilizator, filtrarea se mai numește și rutare (routing) sau filtrare pe loturi, aceasta depinzând de faptul dacă documentele trebuie aranjate în ordine descrescătoare a relevanței estimate sau doar acceptate/respinse. Cazul filtrării pe loturi coincide astfel cu clasificarea de text simplă, în care .

În teoria informației filtrarea documentelor a fost abordată încă din anii ’60, când au fost realizate sisteme pentru cazul mai multor consumatori, și a fost numită diseminarea selectivă a informației. Explozia accesului la informația digitală a făcut să crească și importanța unor astfel de sisteme, care sunt folosite acum pentru a crea ziare web personalizate, pentru a bloca mesajele e-mail nedorite, pentru a selecta știrile Usenet, etc.

3.1.3.4. Stabilirea sensului cuvintelor (eliminarea ambiguității)

Stabilirea sensului cuvintelor este activitatea prin care se încearcă să se stabilească, având un cuvânt ambiguu (polisemantic sau omonim) într-un text dat, sensul acelui cuvânt (de exemplu cuvântul bancă poate apare într-un text cu sensul de instituție financiară și în alt text cu sensul de pupitru sau de scaun). Stabilirea sensului cuvintelor are o mare importanță în multe aplicații cum ar fi prelucrarea limbajului natural sau indexarea documentelor după sensurile cuvintelor și nu după cuvinte. Stabilirea sensului cuvintelor poate fi văzută ca o operație din clasificarea de text, dacă vedem contextul cuvintelor ca documente și sensurile cuvintelor drept categorii. Se încadrează în cadrul clasificării de text simple, de obicei alegându-se clasificarea de text pivotată după document.

Stabilirea sensului cuvintelor este un exemplu de rezolvare a ambiguității limbajului natural, una dintre cele mai importante probleme ale lingvisticii computaționale. Alte probleme ce pot fi abordate folosind tehnici de clasificare de text sunt corecția erorilor dependentă de context, etichetarea cuvintelor cu părțile de vorbire aferente, selecția cuvintelor în traducere , etc.

3.1.3.5. Clasificarea ierarhică a paginilor web

Clasificarea de text prezintă interes datorită posibilității de a fi utilizată în aplicații ce clasifică automat pagini sau situri web în cataloage ierarhice găzduite de portaluri populare din Internet. Când documentele web sunt clasificate în acest mod, în loc să se transmită o cerere unui motor general de căutare în web, utilizatorul poate mai întâi naviga în ierarhia de categorii și apoi să restricționeze căutarea doar la categoria de interes.

Clasificarea automată a paginilor web are avantaje evidente deoarece clasificarea manuală a unei submulțimi foarte mari din web nu este fezabilă. Spre deosebire de aplicațiile prezentate mai sus, în acest caz fiecare categorie trebuie populată cu o mulțime de documente. Trebuie folosită clasificarea pivotată după categorie pentru a permite adăugarea unor noi categorii sau ștergerea unor categorii mai vechi, care nu mai sunt de actualitate.

Clasificarea automată a paginilor web prezintă următoarele două particularități:

a) natura hipertextuală a documentelor: legăturile sunt o sursă importantă de informații, putând fi văzute ca specificând relevanța dintre pagina în care există legătura și pagina la care se referă.

b) structura ierarhică a mulțimii de categorii: aceasta poate fi folosită de exemplu prin decompoziția problemei de clasificare într-un număr mic de probleme de clasificare, fiecare corespunzând unei ramuri de decizie ce aparține unui nod intern.

3.1.4. Învățarea automată în clasificarea de text

În anii ’80 cea mai populară abordare (cel puțin din punct de vedere operațional) pentru crearea de clasificatoare de documente consta în construcția manuală, folosind tehnici din ingineria cunoștințelor (knowledge engineering), a unui sistem expert capabil să ia decizii de clasificare de text. Un astfel de sistem expert era format dintr-o mulțime de reguli logice, definite manual, câte o regulă pentru fiecare categorie, de tipul:

if <formulă FND> then <categorie>

O formulă FND (FND – formă normală disjunctivă) este o disjuncție de clauze conjunctive; documentul este clasificat în <categorie> dacă satisface formula, de exemplu dacă satisface cel puțin una din clauze. Un exemplu de astfel de sistem este sistemul CONSTRUE construit de cercetătorii de la Carnegie Group pentru agenția de știri Reuters. Un exemplu de regulă este ilustrat puțin mai jos.

if ((wheat & farm) or

(wheat & commodity) or

(bushel & export) or

(wheat & tonnes) or

(wheat & winter & ¬ soft)) then WHEAT else ¬ WHEAT

Figura 3.1.1. Clasificator bazat pe reguli pentru categoria WHEAT; cuvintele cheie sunt indicate italic, categoriile sunt indicate folosind litere mari ([Apté et al., 1994])

Principalul neajuns al acestei abordări este reprezentat de problema „gâtuirii” în achiziția de cunoștințe. Regulile trebuie definite manual de către inginerul de cunoștințe, cu ajutorul expertului din domeniu (în acest caz un expert în clasificarea documentelor în anumite categorii). Dacă mulțimea de categorii este modificată, atunci inginerul de cunoștințe și expertul în domeniu trebuie să intervină din nou iar dacă clasificatorul este refolosit într-un alt domeniu atunci un expert din noul domeniu trebuie și inginerul de cunoștințe vor crea regulile de la început.

Pe de altă parte, s-a sugerat că această abordare dă și cele mai bune rezultate. Sistemul CONSTRUE a fost testat pe o submulțime din colecția de test Reuters. Rezultatele obținute au depășit rezultatele celor mai bune clasificatoare ce folosesc cele mai moderne tehnici de învățare automată. Dar nici un alt clasificator nu a fost testat pe aceeași colecție de test și de aceea rezultatele obținute de CONSTRUE nu ne permit să spunem că se vor obține aceleași rezultate bune și în general.

De la începutul anilor ’90, clasificarea de text folosind tehnici de învățare automată ([Mitchell, 1996]) a câștigat în popularitate și a devenit abordarea dominantă, cel puțin în comunitățile de cercetare. În această abordare, un proces inductiv general (numit learner) construiește automat un clasificator pentru o categorie prin observarea caracteristicilor unei mulțimi de documente clasificate manual în categoriile și de către un expert din domeniu. Din aceste caracteristici, procesul inductiv culege caracteristicile pe care un document nou, nevăzut, ar trebui să le aibă pentru a fi clasificat în clasa . În terminologia învățării automate, problema de clasificare este o activitate a învățării supervizate, deoarece procesul de învățare este supervizat de cunoștințele categoriilor și de instanțele de instruire ce aparțin acestora. (în cadrul managementului documentelor pe baza conținutului acestora se folosește și învățarea nesupervizată în clusterizarea documentelor)

Avantajele abordării învățării automate în comparație cu ingineria cunoștințelor sunt evidente. Efortul nu se mai concentrează pe construcția unui clasificator ci pe realizarea unui constructor automat de clasificatoare (learner). Learner-ul este de obicei disponibil și mai este necesar construcția automată, inductivă, a clasificatorului folosind mulțimea de documente clasificate manual. Același lucru se întâmplă și dacă clasificatorul există și se actualizează mulțimea de categorii, sau dacă clasificatorul este refolosit într-un domeniu complet diferit.

În abordarea învățării automate documentele preclasificate manual reprezintă resursa cea mai importantă. În cazul cel mai favorabil acestea sunt disponibile; aceasta se întâmplă în organizațiile în care a existat o activitate de clasificare manuală și se dorește automatizarea procesului. Cazul cel mai puțin favorabil este cazul în care nu există documente clasificate manual; acest lucru se întâmplă în organizațiile care doresc să utilizeze o activitate de clasificare și optează direct pentru un model automat. Abordarea învățării automate este mai convenabilă decât abordarea din ingineria cunoștințelor și în acest caz. Este mai ușor de clasificat manual o mulțime de documente decât de a construi o mulțime de reguli, deoarece e mai ușor de caracterizat un concept prin extensiune/instanțiere (de exemplu prin selecția unei instanțe din el) decât prin intensiune (de exemplu de a descrie un concept prin cuvinte sau de a descrie o procedură pentru recunoașterea instanțelor lui).

Clasificatoarele construite pe baza tehnicilor de învățare automată ating astăzi nivele impresionante de eficiență și fac clasificarea automată o alternativă viabilă pentru clasificarea manuală.

3.1.4.1. Mulțime de test, mulțime de instruire și mulțime de validare

Abordarea învățării automate se bazează pe existența unui corpus inițial de documente preclasificate într-o mulțime de categorii cu care va opera sistemul. Aceasta înseamnă că valorile funcției totale sunt cunoscute pentru fiecare pereche . Un document se numește exemplu pozitiv pentru dacă și se numește exemplu negativ pentru dacă .

Atât în faza de cercetare cât și în faza operațională, după ce a fost construit clasificatorul , se evaluează eficiența. În acest caz, înainte de construcția clasificatorului, corpusul inițial este împărțit în două mulțimi, nu neapărat egale:

– o mulțime de instruire (și validare) . Clasificatorul pentru categoriile este construit inductiv prin observarea caracteristicilor acestor documente;

– o mulțime de test . Această mulțime va fi folosită pentru testarea eficienței clasificatoarelor. Fiecare document din Te va fi dat ca intrare clasificatoarelor iar deciziile clasificatorului sunt comparate cu deciziile expertului . O măsură a eficienței clasificării se va baza pe cât de des valorile coincid cu .

Documentele din Te nu pot participa în nici un fel la construcția clasificatoarelor; dacă această condiție nu este îndeplinită, rezultatele experimentale obținute vor fi nerealist de bune și evaluarea nu are un caracter științific [Mitchell, 1996]. În faza operațională, după ce a fost făcută evaluarea, se poate dori reinstruirea clasificatorului pe întreg corpusul inițial pentru a se mări eficiența. În acest caz rezultatele evaluărilor anterioare sunt o estimare pesimistă a performanței reale deoarece clasificatorul final a fost instruit pe mai multe date.

Această abordare se numește instruire și testare. O metodă alternativă este abordarea inter-validării în k straturi (k-fold cross-validation) [Mitchell, 1996], în care k clasificatoare diferite sunt construite prin partiționarea corpusului inițial în k mulțimi disjuncte și apoi se aplică iterativ abordarea instruire și testare pe fiecare pereche . Eficiența finală este obținută prin calcularea, mai întâi, eficiențelor individuale pentru cele k clasificatoare și apoi se face o medie a rezultatelor.

În ambele abordări (instruire și testare și inter-validare în k straturi) se obișnuiește, pentru a optimiza clasificatorul, ca parametrii interni ai acestuia să fie reglați prin testarea pentru ce valori ale parametrilor interni se obține cea mai bună eficiență. Pentru a face posibilă această optimizare, în abordarea instruire și testare mulțimea este împărțită într-o mulțime de instruire , din care este construit inductiv clasificatorul, și o mulțime de validare , pe care se realizează teste repetate cu clasificatorul pentru optimizarea parametrilor acestuia. O variantă asemănătoare poate fi utilizată și pentru varianta inter-validării în k straturi.

Se observă că din același motiv pentru care nu se testează un clasificator pe documente pe care a fost instruit, nu vom putea testa nici pe documentele pe care a fost optimizat; mulțimea de test și mulțimea de validare trebuie păstrate separat.

Având un corpus , se poate defini generalitatea a categoriei ca procentul documentelor ce aparțin lui :

(3.1.1)

Generalitatea mulțimii de instruire , generalitatea mulțimii de validare și generalitatea mulțimii de test pentru pot fi definite în același mod.

3.1.4.2. Tehnici de regăsire a informației și clasificarea de text

Clasificarea de text se bazează pe tehnici simple din domeniul regăsirii informațiilor. Motivul este acela că clasificarea de text este o operație de management de documente bazat pe conținut și de aceea are în comun multe caracteristici cu alte operații din regăsirea informațiilor, cum ar fi căutarea de text.

Tehnicile de regăsire a informațiilor sunt folosite în trei faze din ciclul de viață al unui clasificator de text:

1) indexarea (cum se realizează în domeniul regăsirii informației) este întotdeauna realizată pentru documentele din corpusul inițial și pentru cele ce urmează a fi clasificate în faza operațională;

2) tehnici din regăsirea informației (potrivirea document-cerere, reformularea interogării, etc.) sunt de obicei folosite în construirea inductivă a clasificatorului;

3) evaluarea eficienței (după cum se folosește în domeniul regăsirii informației) clasificatoarelor.

Diversele abordări ale clasificării de text diferă în principal în modul în care rezolvă faza a 2-a, deși în unele cazuri se folosesc abordări nestandard și pentru fazele 1 și 3. Indexarea, inducția și evaluarea vor fi prezentate în continuare.

3.1.5. Indexarea documentelor și reducerea dimensiunii

3.1.5.1. Indexarea documentelor

Textele nu pot fi interpretate direct de către un clasificator sau de către algoritmul de construcție al clasificatorului. Din această cauză, o procedură de indexare, ce realizează reprezentarea textul într-o formă compactă, trebuie să fie aplicată uniform documentelor de instruire, validare și test.

3.1.5.1.1. Frecvența termenilor

Frecvența termenilor este măsura cea mai simplă pentru a stabili ponderea fiecărui cuvânt din text. Prin această metodă, fiecare cuvânt se presupune că are o importanță proporțională cu numărul său de apariții din text. Ponderea unui cuvânt t în textul d este:

în care este frecvența cuvântului t în textul d.

Se cunoaște că frecvența termenului îmbunătățește revocarea în procesul de recuperare a informației dar nu îmbunătățește întotdeauna și precizia. Există cuvinte comune ce apar frecvent în multe texte (aceste cuvinte nu au putere discriminantă) și pentru a rezolva această problemă, cuvintele cu frecvență mare de apariție sunt de obicei eliminate din setul de cuvinte. Principala preocupare în aceasta metodă, este găsirea pragului optimal.

3.1.5.1.2. Frecvența document inversă

În timp ce frecvența termenilor se preocupă de apariția cuvintelor într-un text, frecvența document inversă se preocupă de apariția cuvintelor într-o colecție de texte. Înțelesul intuitiv al frecvenței document inverse, constă în faptul că acele cuvinte care apar rar într-o colecție de texte sunt valoroase. Importanța fiecărui cuvânt se presupune a fi invers proporțională cu numărul de texte ce conțin cuvântul respectiv.

,

în care reprezintă factorul IDF pentru cuvântul t, N este numărul total de texte din colecție iar este numărul de texte ce conțin cuvântul t.

Deoarece IDF reprezintă specificitatea cuvântului, este de așteptat să se îmbunătățească precizia. Salton a propus combinația dintre frecvența termenului și frecvența document inversă (IDF) pentru a pondera cuvintele și a arătat că produsul lor dă o bună performanță. Ponderea combinată a cuvântului t într-un text d este dată de formula:

.

Factorii și contribuie la îmbunătățirea revocării (recall) și preciziei.

Alegerea unei reprezentări pentru text depinde de ceea ce înțelege cineva prin unitate de text cu sens (problema semanticilor lexicale) și prin reguli ale limbajului natural pentru combinarea acestor unități (problema semanticilor compoziționale). În mod similar cu ceea ce se întâmplă în domeniul recuperării informațiilor, în clasificarea de text această ultimă problemă este de obicei neglijată și textul este de obicei reprezentat ca un vector cu ponderi , unde este o mulțime de termeni (denumiți uneori și caracteristici) ce apar măcar o dată în cel puțin un document din Tr, și , reprezintă cât de mult contribuie termenul la semantica documentului .

Diversele abordări pentru indexare diferă prin:

1) diferite moduri de a înțelege noțiunea de termen;

2) diferite moduri de a calcula ponderile termenilor.

O alegere tipică pentru punctul 1) este de a identifica fiecare termen cu un cuvânt. Această abordare se numește de obicei mulțime de cuvinte (set of words, bag of words), depinzând de modalitatea în care sunt folosite ponderile (binare sau nu).

Într-un număr de experimente, [Apté et al., 1994] s-a demonstrat că reprezentările mai sofisticate nu duc la o îmbunătățire semnificativă a eficienței, confirmându-se astfel rezultate similare din domeniul recuperării informațiilor [Salton, Buckley, 1988].

În particular unii autori au utilizat fraze în loc de cuvinte individuale, drept termeni de indexare [Schütze et al., 1995], dar rezultatele experimentale nu au fost încurajatoare, indiferent dacă noțiunea de frază este motivată:

– sintactic – prin frază se înțelege ceea ce se înțelege și în gramatică;

– statistic – fraza nu este gramaticală dar este compusă dintr-o mulțime (secvență) de cuvinte a căror tipare de apariție în colecție sunt semnificative din punct de vedere statistic.

Pentru punctul 2) ponderile de obicei variază între 0 și 1. Un caz special îl reprezintă ponderile binare (1 denotă prezența și 0 indică absența termenului în document); ponderile binare sau nebinare sunt folosite în funcție de algoritmul de învățare folosit. În cazul indexării non binare, pentru determinarea ponderii a termenilor din documentul , poate fi folosită orice tehnică din domeniul recuperării informațiilor de indexare pentru reprezentarea documentului ca un vector cu ponderi ale termenilor. De cele mai multe ori se folosește funcția de ponderare standard tf idf [Salton, Buckley, 1988], definită astfel:

(3.1.2.)

în care reprezintă numărul de apariții a termenului în documentul , iar reprezintă frecvența document a termenului (numărul de documente din Tr în care apare termenul ). Această funcție încapsulează intuițiile:

– cu cât apare mai des un termen într-un document cu atât este mai reprezentativ pentru el;

– cu cât un termen apare în mai multe documente cu atât scade puterea discriminantă a acestuia.

Trebuie subliniat că această formulă (ca majoritatea formulelor folosite în indexare) ponderează importanța unui termen într-un document în termenii numărului de apariții a acestuia și, de aceea, nu are importanță ordinea de apariție a termenilor sau funcția sintactică pe care o îndeplinesc. Cu alte cuvinte semantica unui document este redusă la semanticile lexicale colective ale termenilor ce apar în el și sunt ignorate semanticile compoziționale.

Pentru ca ponderile să aparțină să aparțină intervalului și pentru ca documentele să fie reprezentate prin vectori de lungime egală, ponderile rezultate de la tfidf sunt de obicei normalizate prin normalizare cosinus:

(3.1.3.)

Deși varianta normalizată a algoritmului tfidf este cea mai populară, au fost folosite și alte funcții de indexare, incluzând tehnici de indexare probabilistice sau tehnici pentru indexarea documentelor structurate ([Larkey, Croft, 1996]). Funcții diferite de tfidf sunt necesare în special când Tr nu este disponibilă în totalitate de la început și nu poate fi calculat, ca în filtrarea adaptivă; în acest caz se folosesc de obicei aproximări ale tfidf ([Dagan et al., 1997]).

Înainte de indexare, de cele mai multe ori se realizează eliminarea cuvintelor funcționale (articole, prepoziții, conjuncții).

Utilitatea operației de păstrare a rădăcinii cuvintelor (stemming), cu scopul grupării cuvintelor ce au rădăcină comună, pentru clasificarea de text este controversată. Tendința recentă este de adoptare a acestei tehnici deoarece reduce atât dimensiunea spațiului de termeni cât și dependența stocastică dintre termeni.

În funcție de aplicație, se indexează tot textul documentului sau numai părți din document. De obicei se indexează tot textul documentului dar există și excepții: când este disponibil titlul unui document, se poate acorda o importanță mai mare cuvintelor din titlu ([Apté, 1994], [Cohen, Singer, 1999]). Când documentele nu sunt structurate, identificarea părților relevante din document nu este foarte simplă.

3.1.5.2. Reducerea dimensiunii

Spre deosebire de recuperarea de text (text retrieval), în clasificarea de text dimensiunea foarte mare a spațiului de termeni (faptul că mulțimea de termeni care apar cel puțin o dată în corpusul este foarte mare) poate fi problematică. De fapt, în timp ce algoritmii folosiți în recuperarea de text (potrivirea cosinus) pot funcționa pentru valori foarte mari ale lui , nu același lucru se întâmplă cu mulți algoritmi de învățare folosiți pentru inducția clasificatorului. Datorită acestui lucru înainte de inducția clasificatorului, trebuie aplicată reducerea dimensionalității, a cărui efect este de a reduce dimensiunea spațiului vectorial de la la ; mulțimea se numește mulțime de termeni redusă.

Reducerea dimensionalității este benefică deoarece tinde să reducă problema suprareglării (overfitting) prin care un clasificator este reglat și pe caracteristicile contingente ale datelor de instruire, nu doar pe caracteristicile constitutive ale categoriilor. Aceste clasificatoare suprareglate sunt foarte bune pentru reclasificarea datelor pe care au fost instruite dar funcționează foarte slab pe date noi. Experimentele au arătat că pentru a se evita suprareglarea este necesar un număr de exemple de instruire proporțional cu numărul de termeni folosiți (pentru clasificarea de text e necesar un număr de 50-100 de exemple de instruire pentru fiecare termen). Aceasta înseamnă că chiar dacă se realizează reducerea dimensionalității, suprareglarea poate fi evitată dacă se utilizează un număr mic de exemple de instruire. Totuși în eliminarea termenilor există riscul de a elimina informații potențial utile pentru semnificația documentului. Pentru a obține eficiența optimă, procesul de reducerea a dimensionalității trebuie realizat cu grijă. Au fost propuse diferite metode pentru reducerea dimensionalității, fie din teoria informației, fie din algebra liniară.

Există două modalități de a vedea reducerea dimensionalității, depinzând de faptul dacă această operație este realizată local (pentru fiecare categorie individuală) sau global:

– reducerea locală a dimensiunii: pentru fiecare categorie o mulțime de termeni , cu , este aleasă pentru clasificare în ( [Lewis, Ringuette, 1994], [Wiener et al., 1995]). Aceasta înseamnă că se folosesc submulțimi diferite de vectori pentru categorii diferite. Valorile uzuale pentru sunt ;

– reducerea globală a dimensiunii: o mulțime de termeni, cu , este aleasă pentru clasificarea în toate categoriile ([Yang, 1999], [Yang, Pedersen, 1997]).

Această distincție nu are efect în alegerea tehnicii de reducere a dimensiunii, deoarece majoritatea acestor tehnici pot fi folosite atât pentru reducerea locală cât și pentru reducerea globală a dimensiunii (excepția – există și tehnici supervizate de reducere a dimensiunii ce vor fi prezentate mai târziu). În continuare se face presupunerea că se folosește abordarea globală, deși totul se poate aplica și abordării locale.

O altă modalitate de a vedea reducerea dimensionalității se poate face după natura termenilor rezultați:

– reducerea dimensiunii prin selecția termenilor: este o submulțime a lui ;

– reducerea dimensiunii prin extragerea termenilor: termenii din nu sunt de același tip cu termenii din (de exemplu dacă în erau cuvinte, este posibil să nu conțină cuvinte).

Spre deosebire de distincția anterioară, aceste două căi de a realiza reducerea dimensionalității sunt realizate prin tehnici diferite ce vor fi prezentate separat în continuare.

3.1.5.3. Reducerea dimensionalității prin selecția termenilor

Având dat , tehnicile pentru selecția termenilor (numite și reducerea spațiului termenilor) încearcă să selecteze, din mulțimea originală mulțimea de termeni, care utilizată pentru indexarea documentului duce la obținerea celei mai bune eficiențe. Yang și Pedersen ([Yang, Pedersen, 1997]) au arătat că selecția termenilor poate conduce chiar la o creștere moderată () a eficienței, depinzând de clasificator, de agresivitatea reducerii () și de tehnica folosită de reducere a spațiului termenilor.

Moulinier ([Moulinier et al., 1996]) a folosit o abordare numită selecția termenilor wrapper, tehnică în care este identificată prin intermediul aceleași metode de învățare care va fi folosită pentru construcția clasificatorului. Pornind de la mulțimea inițială de termeni, o nouă mulțime este generată prin adăugarea sau eliminarea unui termen. Când o nouă mulțime de termeni este generată, un clasificator bazat pe ea este construit și apoi testat pe mulțimea de validare. Mulțimea de termeni pentru care se obține cea mai bună eficiență este selectată. Această abordare are avantajul de a fi reglată la algoritmul de învățare care este folosit; mai mult, dacă se realizează o reducere locală a dimensiunii, pot fi alese numere diferite de termeni pentru categorii diferite, depinzând de faptul dacă o categorie este sau nu separabilă de altele. Totuși folosirea unor dimensiuni diferite ale spațiului pentru diferite mulțimi de termeni este costisitoare pentru aplicațiile standard de clasificare de text.

O alternativă cu un cost computațional mai scăzut este filtrarea, păstrarea unui număr de termeni ce primesc un scor mare de la o funcție ce măsoară „importanța” termenului pentru operația de clasificare de text. Se va prezenta această soluție în continuare.

3.1.5.3.1. Frecvența document

O funcție simplă și eficientă pentru reducerea spațiului de termeni este frecvența document a termenului (de exemplu doar termenii care apar în într-un număr mare de documente vor fi reținuți. Într-o serie de experimente Yang și Pedersen ([Yang, Pedersen, 1997]) au arătat că folosind este posibil să se reducă dimensiunea cu u factor de 10 fără pierdere în eficiență (o reducere cu un factor 100 se face cu o pierdere mică).

Aceasta pare să indice faptul că termenii ce apar cel mai frecvent în colecție sunt cei mai valoroși pentru clasificarea de text. Acest lucru pare să contrazică o „lege” din domeniul recuperării informațiilor care spune că termenii ce au valoarea frecvenței document de la mică spre medie sunt cei mai informativi [Salton, Buckley, 1988]. Dar aceste două rezultate nu se contrazic deoarece este cunoscut faptul că marea majoritate a cuvintelor ce apar într-un corpus au frecvență document foarte mică; aceasta înseamnă că prin reducerea mulțimii de termeni cu un factor de 10 folosind frecvența document, vor fi eliminați doar termenii cu frecvența document mare în timp ce cuvintele cu frecvență document mică și medie sunt păstrate.

Trebuie precizat că mulți autori folosesc o formă mai empirică a frecvenței document pentru reducerea spațiului termenilor și anume elimină toți termenii ce apar în cel mult x documente de instruire (valori populare pentru x sunt de la 1 la 3), ca singură formă de reducere a dimensionalității sau înainte de a aplica o formă mai sofisticată ([Dumais et al. 1998], [Wiener et al., 1995]). O variantă a acestei metode este reprezentată prin eliminarea tuturor termenilor care apar de cel mult x ori în mulțimea de instruire ([Dagan et al. 1997], [Joachims, 1998]), cu valori populare pentru x între 1 și 5 ([Apté et al. 1994]).

3.1.5.3.2. Alte funcții de selecție a termenilor din teoria informației

Alte funcții mai sofisticate din teoria informației au fost folosite în literatură, printre care:

– factorul de asociere DIA;

– chi-square ([Yang, Pedersen 1997]);

– coeficientul NGL;

– câștigul de informație, care mai este cunoscut și sub numele de informația mutuală așteptată ( [Moulinier, Ganascia 1996], [Yang, Liu, 1999]);

– informația mutuală ([Dumais et al., 1998], [Larkey, Croft, 1996], [Lewis, Ringuette 1994]);

– rata impară (odds ratio);

– scor de relevanță ([Wiener et al., 1995]);

– coeficientul GSS.

Definițiile matematice ale acestor măsuri sunt prezentate în tabelul 3.1.1.

Funcția

Notată prin

Forma matematică

frecvența document

factorul de asociere DIA

câștigul de informație

informația mutuală

chi-square

coeficientul NGL

scor de relevanță

rata impară

coeficientul GSS

Tabel 3.1.1. Principalele funcții utilizate pentru reducerea spațiului termenilor.

Probabilitățile sunt interpretate pe un spațiu de evenimente al documentelor ( denotă probabilitatea ca, pentru un document aleator x, termenul nu apare în x și x aparține categoriei ) și sunt estimate prin numărarea aparițiilor în mulțimea de instruire. Toate funcțiile sunt specificate „local” unei categorii specifice ; pentru a obține valoarea termenului în sens „global”, independent de categorie se calculează:

– fie suma ,

– fie media ponderată ,

– fie maximul ,

pentru valorile specifice categorie .

Aceste funcții încearcă să capteze intuiția că cei mai buni termeni pentru sunt cei distribuiți cât mai diferit în mulțimile de exemple pozitive și negative pentru . Totuși, interpretările acestui principiu variază pentru fiecare funcție. De exemplu în științele experimentale este folosit pentru a măsura cum diferă rezultatele unei observații de rezultatele așteptate în conformitate cu o ipoteză inițială (valori mai mici indică dependență scăzută). În reducerea dimensionalității se măsoară cât de independente sunt și . Termenii cu valoarea cea mai scăzută pentru sunt cei mai independenți de ; deoarece interesează doar termenii care sunt dependenți , se vor selecta doar termenii pentru care are valori mari.

În timp ce fiecare funcție pentru reducerea spațiului termenilor are rațiunea ei, valoarea acesteia este dată de eficiență. Diverse comparații de funcții pentru reducerea spațiului termenilor au fost realizate în lucrarea [Yang, Pedersen, 1997], majoritatea funcțiilor din tabelul de mai sus obținând rezultate mai bune decât frecvența document. De exemplu Yang și Pedersen ([Yang, Pedersen, 1997]) au arătat că (folosind diferite clasificatoare și diferite corpusuri inițiale) tehnici sofisticate ca sau pot reduce dimensionalitatea spațiului de termeni cu un factor de 100 fără pierderi (sau chiar cu o mică îmbunătățire) a eficienței. Experimentele au arătat că

în care „>” înseamnă „se comportă mai bine”. Totuși trebuie subliniat că acestea sunt doar observații și că afirmații generale ale utilității acestor funcții pot fi făcute doar ca rezultat al unor experimente comparate, realizate în condiții controlate și într-o varietate de situații diferite (clasificatore diferite, corpusuri inițiale diferite, etc.).

3.1.5.4. Reducerea dimensionalității prin extragerea termenilor

Având dat , extragerea termenilor încearcă să genereze, de la mulțimea inițială T, o mulțime de termeni sintetici ce maximizează eficiența. Rațiunea ce a stat la baza utilizării termenilor sintetici este aceea că, datorită problemelor polisemiei, omonimiei și sinonimiei, este posibil ca termenii originali să nu reprezinte dimensiuni optimale pentru reprezentarea conținutului documentului. Metodele pentru extragerea termenilor încearcă să rezolve aceste probleme prin crearea unor termeni artificiali ce nu suferă de aceste probleme. Orice metodă de extragere de termeni conține:

– o metodă pentru extragerea noilor termeni din cei vechi;

– o metodă pentru convertirea reprezentărilor documentului original în noi reprezentări bazate pe dimensiuni noi, sintetice.

În clasificarea de text au fost experimentate două metode: clusterizarea termenilor și indexarea semantică târzie (LSI Latent Semantic Indexing).

3.1.5.4.1. Clusterizarea termenilor

Clusterizarea termenilor încearcă să grupeze cuvinte cu un grad mare de apropiere semantică (semantic relatedness), astfel ca grupurile (sau centroidele acestora, sau un elelement reprezentativ) să poată fi folosite în locul termenilor ca dimensiuni ale spoațiului vectorial. Clusterizarea termenilor este diferită de selecția termenilor deoarece clusterizarea se ocupă de termeni sinonimi (sau aproape sinonimi) cu alți termeni, în timp ce selecția termenilor se ocupă de termenii neinformativi.

3.1.5.4.2. Indexarea semantică latentă (târzie) (LSI Latent Semantic Indexing)

Indexarea semantică latentă este o tehnică de reducere a dimensiunii dezvoltată în domeniul recuperării informației, care încearcă să rezolve problemele ce derivă din utilizarea sinonimelor (și aproape sinonime) și a cuvintelor polisemantice, ca dimensiuni ale spațiului vectorial pentru reprezentarea documentelor. Această tehnică reduce dimensiunea vectorilor document, noile dimensiuni fiind obținute prin combinații ale dimensiunilor originale, prin observarea tiparelor de co-apariție. În practică LSI indică dependența dintre termenii originali dintr-un corpus și folosește aceste dependențe pentru noile dimensiuni independente. Funcția care transformă vectorii originali în noii vectori se obține prin aplicarea descompunerii după valorile singulare a matricei formate din vectorii document originali. În clasificarea de text această tehnică se aplică prin obținerea funcției de transformare din mulțimea vectorilor documentelor de instruire și apoi se aplică la fel pentru mulțimile de test și de instruire.

O caracteristică a LSI este faptul că noile dimensiuni obținute nu sunt interpretabile intuitiv, ca în cazul selecției termenilor sau a clusterizării termenilor. Totuși acestea ajută la descoperirea structurii semantice latente a vocabularului folosit în corpus. De exemplu Schütze [1995] prezintă un exemplu despre clasificarea în categoria „schimbări democratice în USA cu impact economic” a unui document ce a fost o instanță de test pozitivă pentru această categorie și care conținea printre altele o propoziție relevantă: „Națiunea a crescu la 249,6 milioane în 1980 pe măsură ce tot mai mulți americani au părăsit zonele agricole și industriale din mijloc pentru zonele din sud și vest”. Decizia clasificatorului a fost incorectă când s-a realizat reducerea locală a dimensiunii folosind selecția termenilor și reținerea primilor 200 de termeni, dar a fost corectă când aceeași operație a fost realizată folosind LSI. Aceasta exemplifică foarte bine cum funcționează LSI: propoziția de mai sus nici unul din cei 200 de termeni selectați de ca fiind relevați pentru categorie, dar cuvintele conținute în el au concurat pentru a produce unul sau mai mulți termeni LSI de ordin înalt, care generează spațiul documentului pentru categorie. Schütze [1995] subliniază că dacă există un număr mare de termeni care contribuie fiecare cu o cantitate mică de informație critică, atunci realizarea combinației este o problemă majoră pentru un clasificator bazat pe termeni. Un neajuns al LSI este că dacă un termen original este bun pentru a discrimina o categorie, acea putere de discriminare se poate pierde în noul spațiu vectorial.

Wiener ([Wiener et al., 1995]) folosește LSI în două moduri alternative:

– pentru reducerea locală a dimensiunii, astfel creând câteva reprezentări specifice categoriei;

– pentru reducerea globală a dimensiunii, astfel creând o singură reprezentare LSI pentru întreaga mulțime de categorii.

Experimentele au arătat că prima abordare se comportă mai bine decât a doua și ambele se comportă mai bine decât reducerea spațiului termenilor bazat pe scor de relevanță.

Schütze [1995] a comparat experimental extragerea termenilor (folosind LSI) cu reducerea spațiului termenilor folosind , utilizând 3 tehnici diferite de învățare a clasificatorului (analiză discriminantă liniară, regresie logistică și rețele neuronale). Experimentele au arătat că LSI este mai eficient decât pentru primele două tehnici de învățare, în timp ce ambele metode au evoluat la fel pentru clasificatorul bazat pe rețele neuronale.

3.1.6. Construcția inductivă a clasificatoarelor de text

Construcția inductivă a clasificatoarelor de text a fost abordată într-o varietate de moduri. Vor fi prezentate în continuare metodele cele mai populare pentru construcția clasificatoarelor, folosite în clasificarea de text, și se va puncta existența unor abordări alternative.

Prezentarea se începe cu forma generală a clasificatorului de text. Există două modalități alternative de a vedea clasificarea:

– clasificare tare (hard classification) (complet automată);

– clasificare ierarhizată, ordonată (ranking classification) (semiautomată).

Construcția inductivă a unui clasificator ierarhizat pentru categoria constă în definirea unei funcții care, pentru un document dat , întoarce o valoare de stare de clasificare (categorization status value) pentru acesta, de exemplu un număr între 0 și 1, care reprezintă evidența faptului că . Documentele sunt apoi ordonate în conformitate cu valoarea lor . Această metodă funcționează pentru clasificarea de text ierarhizată după document. În cazul clasificării de text ierarhizată după categorie, pentru un document dat , se calculează scorurile pentru diferite categorii din și apoi se ordonează categoriile în funcție de scor.

Funcția are diferite semnificații în conformitate cu metoda de învățare folosită: de exemplu, în abordarea bayeseană este definit în termeni de probabilitate iar în abordarea Rocchio este o măsură a apropierii vectorilor în spațiul -dimensional.

Construcția unui clasificator hard se poate face în două moduri. Primul mod constă în definiția unei funcții . Al doilea mod constă în definiția unei funcții , analog cu cea folosită în clasificarea ierarhizată, urmată de definirea unei valori de prag (threshold) , astfel încât este interpretată ca T în timp ce este interpretată ca F.

Definiția valorilor de prag va fi prezentată în continuare. Secțiunile următoare vor fi concentrate pe definiția funcției , prezentând un număr de abordări ce au fost utilizate în literatura clasificării de text. În general se face presupunerea că avem clasificare tare (hard); va fi evident din context cum și când aceste abordări pot fi adaptate pentru clasificare ierarhizată.

Prezentarea algoritmilor va fi în mare parte calitativă și mai puțin cantitativă, se va pune accentul pe metodele de învățare ale clasificatorului decât pe eficiența clasificatoarelor construite cu aceste metode. Eficiența clasificatoarelor va fi prezentată într-o secțiune separată.

3.1.6.1. Determinarea valorilor de prag

Există diverse metode pentru determinarea valorii de prag, , depinzând și de restricțiile impuse de aplicație. Cea mai importantă distincție este dacă valoarea de prag este obținută analitic sau experimental.

Prima metodă este posibilă doar în prezența unui rezultat teoretic care indică modul de calcul al valorii de prag care maximizează valoarea așteptată a funcției de eficiență. Acesta este cazul clasificatoarelor ce au la ieșire probabilitatea estimată a apartenenței la și a cărei eficiență este calculată folosind măsuri din teoria deciziilor, cum ar fi utilitatea (se mai numește și determinarea valorii de prag probabilistice).

Când nu există un astfel de rezultat teoretic se aplică ultima metodă (obținerea experimentală), care constă în testarea unor valori diferite pentru pe o mulțime de validare și alegerea valorii care maximizează eficiența. Această metodă se numește determinarea valorii de prag CVS (CSV thresholding) ([Cohen, Singer, 1999], [Wiener et al., 1995]). Se aleg valori diferite pentru categorii diferite .

O altă metodă experimentală este determinarea valorii de prag proporționale ([Lewis, Ringuette, 1994]). Această metodă constă în alegerea valorii pentru care este cea mai aproape de . și încapsulează principiul că același procent de documente din mulțimile de instruire și test trebuie clasificate în . Din motive evidente, această metodă nu se poat aplica clasificării de text pivotată după document.

Câteodată, depinzând de aplicație, se aplică o metodă numită determinarea valorii de prag fixă sau determinarea valorii de prag „k-per-doc” („k-per-doc” thresholding). În această metodă, un număr fix k de categorii, același pentru toate documentele , trebuie atribuite pentru fiecare document. Această metodă este de obicei folosită pentru indexarea automată a documentelor. Totuși aceasta nu este o abordare pentru determinarea valorii de prag în sensul definit mai sus, deoarece se poate întâmpla ca să fie clasificat în , să nu fie clasificat în iar . Este clar că această metodă se folosește pentru clasificare pivotată după document. Totuși ea suferă de faptul că k este egal pentru toate documentele (nu se poate altfel) și nu permite o reglare fină.

Yang [1999] a găsit că determinarea metoda valorii de prag CVS este superioară metodei determinării valorii de prag proporționale și a găsit că metodă determinării valorii de prag fixă este inferioară celorlalte două metode.

În general, alegerea politicii de calcul a valorii de prag poate fi influențată de aplicație: în folosirea unui clasificator de text pentru indexarea documentelor într-un sistem boolean, se poate alege o politică de calcul a valori de prag fixă în timp ce metodele pentru calcularea valorii de prag proporționale sau CSV pot fi alese pentru clasificarea paginilor web în cataloage ierarhice.

3.1.6.2. Clasificatoare probabilistice

Din punct de vedere al teoriei probabilităților putem calcula probabilitatea ca un text d să fie clasificat într-o categorie :

,

în care t este termenul care acoperă toate elementele vectorului și a textului d. Dacă presupunem o independență condiționată ([Tokunaga, Iwayama, 1994]) între și d, având t dat, () obținem ecuația :

Folosind teorema lui Bayes, obținem ecuația:

este probabilitatea ca un cuvânt selectat aleatoriu din categoria să fie cuvântul t.

este probabilitatea ca un cuvânt selectat aleator din documentul d să fie cuvântul t.

, sunt probabilitățile precedente ale cuvintelor și categoriilor

Aceste probabilități sunt estimate folosind un set de date de instruire.

Un text d va fi clasificat în categoria care are cea mai mare probabilitate .

Clasificatoarele probabilistice ([Lewis, 1998]) văd în termeni de , ce reprezintă probabilitatea ca un document reprezentat prin vectorul de termeni (binari sau ponderi) aparține clasei și calculează această probabilitate prin aplicarea teoremei lui Bayes:

(3.1.3)

În formula de mai sus spațiul de evenimente este spațiul documentelor: este probabilitatea ca un document ales aleator are vectorul ca reprezentare și este probabilitatea ca un document ales aleator să aparțină clasei .

Estimarea din formula de mai sus este problematică deoarece numărul de vectori posibili este prea mare. Pentru a elimina această problemă se obișnuiește să se facă presupunerea că oricare două coordonate ale vectorului document sunt (când sunt văzute ca variabile aleatoare) independente statistic. Această presupunere a independenței se exprimă prin ecuația:

(3.1.4)

Clasificatoarele probabilistice care folosesc ipoteza de independență se numesc clasificatoare Naïve Bayes și apar în majoritatea abordărilor probabilistice din literatura clasificării de text. Caracterul „naiv” al clasificatorului este datorat faptului că de obicei această ipoteză nu este verificată în practică.

Una din cele mai cunoscute abordări Naïve Bayes este clasificatorul independenței binare care a rezultat din utilizarea unor vectori binari pentru reprezentarea documentelor. În acest caz, dacă folosim notația pentru , factorii din ecuația (3.1.4) pot fi scriși ca:

3.1.5.

Se poate observa mai departe că în clasificarea de text, spațiul documentelor este partiționat în două categorii, și complementara sa , astfel încât Dacă înlocuim ecuațiile 3.1.5. și 3.1.4. în 3.1.3 și aplicăm logaritmul obținem:

(3.1.6.)

(3.1.7.)

în care s-a folosit notația pentru .

Din ecuațiile 3.1.6. și 3.1.7. se obține:

(3.1.7.)

Trebuie subliniat că este o funcție monotonă și crescătoare de și poate fi utilizată direct ca .

Se observă că și sunt constante constante pentru toate documentele și se pot renunța la ele.

Definirea unui clasificator pentru categoria necesită estimarea unui număr de parametri folosind datele de instruire. În general clasificarea unui document dat nu necesită calcularea de factori după cum ar cere prezența termenului ; de fapt, toți factorii pentru care pot fi excluși și este valabil pentru foarte mulți dintre ei deoarece vectorii document sunt de obicei foarte rari.

Metoda prezentată este doar una din multiplele variante ale abordării Naïve Bayes, partea comună a lor fiind ecuația (3.1.4.)

3.1.6.3. Clasificatoare bazate pe arbori de decizie

Metodele probabilistice sunt cantitative (numerice) și au fost criticate deoarece, deși sunt eficiente, nu sunt ușor de interpretat de către oameni. O clasă de algoritmi ce nu suferă de această problemă sunt algoritmii simbolici (nenumerici) printre care regulile de decizie și arborii de decizie sunt cele mai importante exemple.

Un clasificator de text bazat pe arbori de decizie este un arbore în care nodurile interne sunt etichetate cu termeni, ramurile ce pleacă din ele sunt etichetate cu teste privind valorile ponderii pe care termenul le are în documentul de test și frunzele sunt etichetate cu categorii. Un astfel de clasificator clasifică un document de test testând recursiv ponderile pe care termenii ce etichetează nodurile interne le au în vectorul , până când un nod terminal (nod frunză) este atins; eticheta acestui nod este atribuită documentului . Majoritatea acestor clasificatoare folosesc reprezentări binare ale documentului, rezultând astfel arbori binari. Un exemplu de arbore binar este dat în figura de mai jos.

Există o serie de pachete standard pentru învățarea arborilor de decizie (majoritatea aplicațiilor din clasificarea de text bazate pe arbori de decizie folosesc aceste pachete).Printre cele mai populare sunt ID3, C4.5 ([Cohen, Singer, 1999], [Joachims, 1998]) și C5.

O metodă posibilă pentru a învăța un arbore de decizie pentru categoria constă într-o strategie de tip „divide et impera”:

– testarea dacă toate exemplele de instruire au aceeași etichetă ( sau )

– dacă nu au aceeași etichetă, se selectează un termen , se partiționează Tr în clase de documente ce au aceeași valoare pentru și plasarea fiecărei clase într-un subarbore separat.

Figura 3.1.2. Arbore de decizie. Muchiile sunt etichetate cu termeni iar frunzele sunt etichetate cu categorii (sublinierea denotă negarea)

Procesul este repetat recursiv pe subarbori până când fiecare frunză a arborelui astfel generat conține exemplele de instruire atribuite aceleași categorii , care apoi este selectată ca etichetă pentru nodul frunză. Pasul cheie este alegerea termenului pe care să se realizeze partiția, o alegere care este în general făcută în conformitate cu criteriul câștigului de informație sau a entropiei. Totuși un astfel de arbore poate fi expus fenomenului de suprareglare, deoarece unele ramuri pot fi prea specifice la datele de instruire. Majoritatea metodelor de învățare a arborilor de decizie includ o metodă pentru creșterea arborelui și una pentru reducerea acestuia (prin eliminarea unor ramuri). Există multe variații pe această schemă de bază ([Mitchell, 1996]).

Clasificatoarele de text ce folosesc arbori de decizie au fost folosite fie pentru clasificare ([Lewis, Ringuette 1994]) sau ca membre în comitete de clasificatoare ([Weiss et al. 1999]).

3.1.6.4. Clasificatoare bazate pe reguli de decizie

Un clasificator pentru categoria , construit de o metodă de învățare inductivă a regulilor, conține o regulă FND (formă normală disjunctivă) (un exemplu de regulă este dat în figura 3.1.1, premisa regulii fiind în forma normală disjunctivă). Literalii din premisă (cuvinte și cuvinte negate) denotă prezența (cuvântul care nu este negat) sau absența (cuvântul negat) cuvântului în documentul de test , în timp ce consecventul denotă decizia de a clasifica în . Regulile de decizie sunt similare cu arborii de decizie prin faptul că pot încapsula orice funcție booleană. Totuși, un avantaj al metodelor de învățare a regulilor de decizie este acela că au tendința să genereze clasificatoare mai compacte decât metodele bazate pe arbori de decizie.

Metodele pentru învățarea regulilor de decizie încearcă să selecteze din toate regulile acoperitoare posibile (reguli ce clasifică corect toate exemplele de instruire) „cele mai bune reguli” în conformitate cu un criteriu de minim. În timp ce arborii de decizie sunt construiți folosind o strategie top-down (divide et impera), regulile de decizie sunt de obicei construite într-o manieră bottom-up. La început, fiecare exemplu de instruire este văzut ca o clauză , în care sunt termeni conținuți în și este egală cu sau , în funcție de faptul că este exemplu pozitiv sau negativ pentru . Mulțimea de clauze este deja un clasificator bazat pe reguli de decizie pentru , dar este evident că prezintă suprareglare. Algoritmul de învățare conține apoi un proces de generalizare în care regula este simplificată printr-o serie de modificări (eliminând premise din clauze sau unind clauze) ce încearcă să maximizeze funcția de compactitate și, în același timp, să nu afecteze proprietatea de „acoperire” a clasificatorului. La sfârșitul acestui proces se aplică o fază de reducere similară celei aplicată arborilor de decizie în care se realizează un compromis între abilitatea de a clasifica corect toate exemplele de instruire și generalitatea.

Algoritmii de învățare pentru reguli de decizie variază mult în funcție de metodele, euristicile și criteriile folosite pentru generalizare și reducere. Printre algoritmii de învățare pentru reguli de decizie ce au fost folosite în aplicații din domeniul clasificării de text se numără CHARADE ([Moulinier, Ganascia 1996]), [Cohen, Singer, 1999]), SCAR [Moulinier et al. 1996], and SWAP-1 [Apté, 1994].

Metodele de mai sus folosesc reguli din logica propozițiilor. Au fost realizate și cercetări privind folosirea regulilor din logica predicatelor de ordinul I, ce se obțin prin folosirea metodelor de programare logică inductivă dar s-a obținut că puterea mai mare de reprezentare a logicii predicatelor de ordinul I nu aduce decât beneficii foarte mici.

3.1.6.5. Metode de regresie

Regresia înseamnă aproximarea unei funcții cu valori reale (în loc de valori binare ca în cazul clasificării) printr-o funcție ce acoperă datele de instruire ([Mitchell, 1996]). În continuare se va descrie un asemenea model, numit ajustare liniară prin metoda celor mai mici pătrate LLSF (Linear Least Squares Fit), aplicat în clasificarea de text de către Yang și Chute([Yang, Chute, 1994]). În LLSF, fiecare document are doi vectori asociați, un vector de intrare cu termeni ponderați și un vector de ieșire cu ponderi ce reprezintă categoriile (ponderile vectorului de ieșire sunt binare pentru documentele de instruire și valori CSV nebinare pentru documentele de test). Clasificarea poate fi văzută astfel ca operația de determinare a unui vector de ieșire pentru documentele de test , având dat vectorul de intrare ; construirea unui clasificator se reduce la calcularea unei matrice de dimensiuni astfel încât .

LLSF calculează matricea din datele de instruire prin calcularea ajustării liniare prin metoda celor mai mici pătrate ce minimizează eroarea pe mulțimea de instruire în conformitate cu formula:

,

în care este M pentru care x este minim, reprezintă norma Frobenius a unei matrice de dimensiuni , I este matricea de dimensiuni a cărei coloane sunt vectori de intrare pentru documentele de instruire și O este matricea de dimensiuni a cărei coloane sunt vectori de ieșire pentru documentele de instruire. Matricea este de obicei calculată prin descompunerea după valorile singulare pe mulțimea de instruire, și un element generic reprezintă gradul de asociere dintre categoria și termenul . Experimental ([Yang, Chute, 1994], [Yang, Liu, 1999]) s-a arătat că LLSF este unul dintre cele mai eficiente clasificatoare de text existente. Un dezavantaj este acela că timpul de calcul al matricei este mult mai mare decât în cazul altor algoritmi.

3.1.6.6. Metode on-line

Un clasificator liniar pentru categoria este un vector ce aparține aceluiași spațiu |T|-dimensional în care sunt reprezentate documentele iar corespunde produsului vectorial dintre și , . Trebuie menționat că atunci când atât ponderile clasificatorului cât și ponderile document sunt normalizate folosind metoda cosinus, atunci produsul vectorial al celor doi vectori corespunde similarității cosinus:

care reprezintă cosinusul unghiului ce separă cei doi vectori. Aceasta este măsura de similaritate dintre interogare și document calculată de către motoarele de recuperare a informației iar, odată ce clasificatorul este construit, clasificarea poate fi realizată doar prin apelarea unui asemenea motor. Practic, toate motoarele de căutare realizează un produs vectorial și pot fi adaptate pentru a realiza clasificare de text cu un clasificator liniar.

Metodele pentru învățarea clasificatoarelor liniare pot fi împărțite în două mari clase: metode batch și metode on-line.

Metodele batch (lot de date) construiesc un clasificator prin analizarea în întregime a mulțimii de instruire. În literatura de clasificare de text, un exemplu de metodă batch este analiza discriminantă liniară, un model a dependenței stocastice dintre termeni ce se bazează pe matrice de covarianță ale diferitelor categorii ([Schütze et al., 1995]). Totuși cel mai important exemplu al unei metode batch este dat de metoda lui Rocchio; deoarece este foarte importantă în clasificarea de text, această metodă va fi prezentată separat în următoarea secțiune. În continuare vor fi prezentate clasificatoarele on-line.

Metodele on-line (sau incrementale) construiesc un clasificator imediat după examinarea primului document de instruire și îl rafinează incremental pe măsură ce examinează documente noi. Acesta poate fi un avantaj în aplicațiile în care nu este disponibilă în întregime de la început sau în cazul în care „semnificația” categorie se poate schimba în timp, ca în filtrarea adaptivă. Aceasta se poate utiliza în aplicații (clasificare semiautomată, filtrare adaptivă) în care ne putem aștepta ca utilizatorii clasificatorului să ofere feedback asupra modului în care documentele de test au fost clasificate și, în acest caz, poate continua etapa de antrenare și în timpul fazei de operare a clasificatorului prin exploatarea feedback-ului de la utilizator.

O metodă simplă on-line este algoritmul perceptronului, aplicat pentru prima dată în clasificarea de text în [Schütze et al., 1995], [Wiener et al., 1995] și apoi în [Dagan et al., 1997]. În acest algoritm, clasificatorul pentru este mai întâi inițializat prin setarea tuturor ponderilor la aceeași valoare pozitivă. Când un exemplu de instruire (reprezentat prin vectorul de ponderi binare) este examinat, clasificatorul construit până acum îl va clasifica. Dacă rezultatul clasificării este corect, nu se execută nimic, iar dacă rezultatul este greșit, ponderile clasificatorului sunt modificate astfel: dacă a fost un exemplu pozitiv pentru , atunci ponderile ale „termenilor activi” (termenii pentru care ) sunt „promovate” prin modificarea acestora cu o valoare fixă . Trebuie notat că în momentul în care clasificatorul a atins un nivel rezonabil de eficiență, faptul că o pondere este foarte scăzută înseamnă că a contribuit negativ la procesul de clasificare de până acum și poate fi eliminat din reprezentare. Putem vedea algoritmul perceptronului (ca și celelalte metode de învățare incrementală) ca permițând un fel de reducere din mers a spațiului [Dagan et al., 1997]. Clasificatorul perceptron a arătat o îmbunătățire considerabilă în toate experimentele citate.

Perceptronul este un algoritm cu actualizare aditivă a ponderilor. O variantă cu actualizare multiplicativă este POSITIVE WINNOW ([Dagan et al., 1997]), care diferă de perceptron deoarece două constante diferite și sunt folosite pentru amplificarea și micșorarea ponderilor; actualizarea ponderilor este realizată prin multiplicare (în loc de adunare) cu și . BALANCED WINNOW ([Dagan et al., 1997]) este o variantă a lui POSITIVE WINNOW în care clasificatorul conține două ponderi și pentru fiecare termen . Ponderea finală , folosită în calculul produsului vectorial, este diferența . Urmărind clasificările greșite a unei instanțe pozitive, termenii activi au ponderea mărită și ponderea micșorată iar în cazul unei instanțe negative ponderea este micșorată iar ponderea este mărită (pentru restul măririle și micșorările sunt la fel ca la POSITIVE WINNOW). BALANCED WINNOW permite ponderi negative în timp ce în cazul perceptronului și POSITIVE WINNOW ponderile sunt întotdeauna pozitive. În experimentele realizate de Dagan ([Dagan et al., 1997]), POSITIVE WINNOW a arătat o eficiență mai bună decât perceptronul dar a fost depășit de către BALANCED WINNOW.

Alte metode on-line pentru construcția clasificatoarelor de text sunt WIDROW-HOFF, un algoritm îmbunătățit al acestuia EXPONENTIATED GRADIENT (ambele aplicate pentru prima dată în clasificarea de text în [Lewis et al., 1996]) și SLEEPING EXPERTS ([Cohen, Singer, 1999]), o versiune a BALANCED WINNOW. În timp ce primul este un algoritm de actualizare aditivă a ponderilor, al doilea și al treilea sunt algoritmi de actualizare multiplicativă a ponderilor. Diferențele principale față de algoritmii descriși anterior sunt următoarele:

– actualizează clasificatorul nu doar după clasificarea greșită a unui exemplu de instruire ci și după clasificarea corectă;

– actualizează ponderile tuturor termenilor, nu doar a termenilor activi.

Clasificatoarele liniare se pot folosi atât în clasificarea de text pivotată pe categorie cât și în cea pivotată pe document. În primul caz (al clasificării de text pivotate pe categorie), clasificatorul este folosit, într-un motor de căutare standard, ca potrivirea unei interogări pe o mulțime de documente de test, iar în cazul clasificării de text pivotate pe document, vectorul ce reprezintă documentul de test este folosit ca potrivirea unei interogări pe mulțimea de clasificatoare .

3.1.6.6.1. Modelul vectorial

Pentru a folosi o metodă de ponderare a cuvintelor, este necesar ca textele să fie reprezentate prin vectori de cuvinte sub forma:

în care elementul corespunde ponderii cuvântului i. Având reprezentarea vectorială a textelor ca în ecuația de mai sus, o măsură de similaritate dintre două texte poate fi obținută printr-o comparație inteligentă a elementelor vectorilor. Există mai multe modalități de a măsura similaritatea dintre doi vectori. Una dintre ele este funcția Jaccard, care este produsul normalizat a doi vectori ca în ecuația de mai jos:

,

în care reprezintă elementul de indice k din vectorul . Cu cât este mai mare cu atât cele două texte sunt mai similare.

3.1.6.7. Metoda Rocchio

Unele clasificatoare liniare conțin un profil (un document caracteristic, reprezentativ) al categoriei. Acest lucru are avantaje evidente în termeni de interpretabilitate deoarece un asemenea profil este mai ușor de înțeles de oameni decât, de exemplu, un clasificator ce folosește rețele neuronale. Învățarea unui clasificator liniar este de obicei precedată de reducerea locală a spațiului de termeni. Un profil al clasei este o listă ponderată de termeni a căror prezență sau absență este folositoare pentru a discrimina .

Metoda Rocchio este folosită pentru a induce clasificatoare liniare bazate pe profil. Se bazează pe o adaptare pentru clasificarea de text a cunoscute formule a lui Rocchio pentru feedback-ul de relevanță în modelul bazat pe spațiul vectorial și este probabil singura metodă din clasificarea de text ce își are rădăcinile în domeniul recuperării informației și nu în învățarea automată. Această metodă, adaptată pentru clasificarea de text a fost folosită de mulți autori, fie ca obiect de cercetare ([Joachims 1997]), sau ca clasificator de bază ([Cohen, Singer, 1999], [Joachims, 1998] [Schütze et al., 1995]), sau ca membru într-un comitet de clasificatoare ([Larkey, Croft, 1996]).

Metoda lui Rocchio construiește un clasificator pentru categoria după formula:

în care este ponderea termenului în documentul , și .

În această formulă, și sunt parametri de control ce permit stabilirea importanței relative a exemplelor negative și pozitive. De exemplu, dacă este 1 și este 0 ([Dumais et al., 1998], [Joachims, 1998], [Schütze et al., 1995]) profilul clasei este centroidul exemplelor de instruire pozitive. Un clasificator construit folosind metoda lui Rocchio recompensează apropierea unui document de test de centroidul exemplelor de instruire pozitive și distanța față de centroidul exemplelor de instruire negative. Rolul exemplelor negative este micșorat prin atribuirea de valori mari pentru și de valori mici pentru (în lucrările [Cohen, Singer, 1999], [Joachims 1997] se folosesc valorile și ).

Această metodă este simplu de implementat și este destul de eficientă, deoarece învățarea unui clasificator se realizează prin medierea ponderilor. În termeni de eficiență, un neajuns este faptul că documentele într-o categorie tind să apară în clustere disjuncte (de exemplu o mulțime de articole dintr-un ziar etichetate ca aparținând categorie Sport și care tratează boxul sau fotbalul), clasificatorul putând să clasifice greșit multe din documente deoarece centroidul acestor documente se poate afla în afara tuturor clusterelor.

Mai general, un clasificator construit folosind metoda Rocchio, ca toate clasificatoarele liniare, are dezavantajul că împarte liniar spațiul de documente. Această situație este ilustrată grafic în figura 3.1.3.a) în care documentele sunt clasificate în dacă și numai dacă se găsesc în cerc. Trebuie făcută observația că chiar și majoritatea exemplelor de instruire nu vor fi clasificate corect de către clasificator.

(a) (b)

Figura 3.1.3. O comparație între comportamentul clasificatoarelor de text pentru: a) clasificator Rocchio și b) clasificator k-NN. Cruciulițele și cercurile denotă exemplele de instruire pozitive și negative. Cercurile mari semnifică aria de influență a clasificatorului. Trebuie subliniat că pentru a simplifica grafica, similaritățile document sunt văzute aici în termeni de distanță euclidiană și nu, după cum se folosește mai des, în termeni de produs vectorial sau cosinus.

3.1.6.8. Rețele neuronale

Un clasificator de text ce folosește o rețea neuronală este o rețea de elemente în care elementele de intrare reprezintă termeni, elementele de ieșire reprezintă categoriile de interes iar ponderile reprezintă relațiile de dependență. Pentru a clasifica un document de test , ponderile termenilor sunt încărcate în elementele de intrare; activarea acestor elemente este propagată înainte prin rețea și valoarea elementelor de ieșire determină deciziile de clasificare. O metodă reprezentativă de antrenare a rețelelor neuronale este backpropagation în care ponderile termenilor unui document de instruire sunt încărcate în elementele de intrare și dacă apare o clasificare greșită eroarea este propagată înapoi pentru a schimba parametrii rețelei și a elimina sau a minimiza eroarea.

Cel mai simplu clasificator bazat pe rețele neuronale este perceptronul, care este un clasificator liniar și a fost prezentat într-o secțiune anterioară. Alte tipuri de clasificatoare bazate pe rețele neuronale liniare ce implementează o formă de regresie logistică au fost propuse și testate de Schütze ([Schütze et al., 1995]) și Wiener ([Wiener et al., 1995]) și au prezentat o eficiență bună.

O rețea neuronală neliniară este o rețea cu unul sau mai multe straturi de elemente, care în clasificarea de text reprezintă de obicei interacțiunile de ordin superior dintre termeni, pe care rețeaua este capabilă să le învețe. În experimentele comparative realizate, rețelele neliniare nu au arătat nici o îmbunătățire ([Schütze et al., 1995]) sau îmbunătățiri foarte mici ([Wiener et al., 1995]) față de cele liniare.

3.1.6.9. Clasificatoare bazate pe exemple

Clasificatoarele bazate pe exemple nu construiesc o reprezentare declarativă a categoriei dar se bazează pe etichetele de categorie atașate documentelor de instruire similare cu documentele de test. Aceste metode au fost metode de învățare leneșe (lazy learners) deoarece amână decizia despre cum să facă generalizarea după datele de instruire, până când se întâlnește o nouă instanță de interogare ([Mitchell, 1996]).

Prezentarea clasificatoarelor bazate pe exemple se va face folosind algoritmului k-NN (k nearest neighbours – cei mai apropiați k vecini). Pentru a decide dacă , k-NN verifică dacă k documente de instruire, cele mai similare cu , sunt de asemenea în ; dacă răspunsul est pozitiv pentru o proporție suficient de mare de documente, se ia decizia pozitivă (), în caz contrar, se ia decizia negativă ().

Clasificarea documentului folosind k-NN se reduce la a calcula:

(3.1.9)

în care este mulțimea ce conține k documente care maximizează și

Metodele de stabilire a valorilor de prag (tresholding) din secțiunea 3.1.6.1 pot fi folosite pentru a converti valorile reale ale funcției în valori binare ce reprezintă deciziile de clasificare.

În ecuația (3.1.9) reprezintă un tip de măsură sau similaritate semantică (semantic relatedness) dintre documentul de test și un document de instruire ; orice funcție de potrivire, fie probabilistică ([Larkey, Croft 1996]) fie bazată pe vectori, dintr-un sistem ierarhic de recuperare a informației poate fi folosită în acest scop. Construcția unui clasificator k-NN implică determinarea (experimentală, pe o mulțime de validare) a unei valori de prag k ce indică câte documente de instruire (poziționate primele – top-ranked) trebuie considerate pentru calculul . Larkey ([Larkey, Croft 1996]) a ales , Yang ([Yang, 1999]) a găsit că duce la o eficiență foarte bună. Totuși, diferite experimente au arătat că crescând valoarea lui k nu se micșorează semnificativ performanța.

Trebuie subliniat faptul că k-NN, spre deosebire de clasificatoarele liniare, nu împarte liniar spațiul documentelor și, de aceea, nu suferă de problema discutată în subcapitolul 3.1.6.7. Acest lucru este prezentat în figura 3.1.3 b) în care se observă caracterul „local” al k-NN față de varianta Rocchio.

Această metodă se aplică natural clasificării de text pivotate după document, deoarece ordonarea documentelor de instruire după similaritatea cu documentul de test poate fi făcută o singură dată pentru toate categoriile. Pentru clasificarea de text pivotată după categorie trebuie păstrate rangurile (pozițiile) pentru fiecare document, ceea ce este destul de dificil; de aceea clasificarea pivotată după document este singura modalitate rezonabilă de a utiliza k-NN.

Într-un număr de experimente diferite s-a arătat că k-NN poate fi destul de eficient. Totuși neajunsul major este ineficiența datorată timpului de clasificare: în timp ce în cazul clasificatorului liniar trebuie calculat doar un produs vectorial pentru a clasifica documentele de test, k-NN necesită ca întreaga mulțime de instruire să fie ordonată în funcție de similaritatea cu documentul de test, ceea ce este foarte costisitor (din punctul de vedere al timpului de calcul). Acesta este un neajuns al metodelor de învățare „leneșe”, deoarece nu au o fază de instruire și de aceea amână toate calculele pentru faza de clasificare.

3.1.6.10. Construcția clasificatoarelor folosind algoritmi cu vectori suport (SVM)

Metoda algoritmilor cu vectori suport a fost introdusă în clasificarea de text de Joachims ([Joachims, 1998]) și folosită în [Dumais et al. 1998], [Yang, Liu, 1999]. În termeni geometrici poate fi văzută ca o încercare de a găsi, printre toate suprafețele din spațiul -dimensional ce separă exemplele pozitive de cele negative (suprafețe de decizie), suprafața ce separă exemplele pozitive de cele negative prin marginea cea mai extinsă posibil, astfel încât proprietatea de separație să fie invariantă în funcție de translația maximă posibilă a lui .

Această idee se înțelege cel mai bine în cazul în care exemplele pozitive și negative sunt separabile liniar, caz în care suprafețele de decizie sunt ()-hiperplane. În spațiul bidimensional (figura 3.1.4.) diferite linii pot fi alese ca suprafețe de decizie. Metoda SVM alege elementul din mijloc din cea mai mare mulțime de linii paralele, de exemplu din mulțimea în care maximul distanței dintre două elemente din această mulțime este cel mai mare. Trebuie specificat că „cea mai bună” suprafață de decizie este determinată doar de o mulțime mică de exemple de instruire, numită mulțime de vectori suport.

Metoda descrisă este aplicabilă cazului în care exemplele pozitive și negative nu sunt separabile liniar. Yang ([Yang, 1999]) a comparat experimental cazul liniar (se face presupunerea: categoriile sunt separabile liniar) cu cazul neliniar pe un benchmark standard și a obținut rezultate cu puțin mai în primul caz.

După cum argumentează Joachims ([Joachims, 1998]), SVM oferă două avantaje importante pentru clasificarea de text:

– selecția termenilor nu este de obicei necesară deoarece SVM tinde să fie destul de robustă pentru suprareglare (overfitting) și se poate scala la dimensiuni mari;

– nu este necesar efort uman sau computațional pentru ajustarea parametrilor pe mulțimea de validare deoarece există o alegere implicită, motivată teoretic pentru valorile parametrilor, care s-a demonstrat că oferă cea mai bună eficiență.

Figura 3.1.4. Învățarea clasificatoarelor bazate pe vector suport. Cruciulițele și cercurile denotă exemple pozitive și negative de instruire. Liniile reprezintă suprafețele de decizie. Suprafața de decizie este, între cele arătate, cea mai bună posibilă deoarece este elementul din mijloc al mulțimii de suprafețe de decizie paralele. Minimul distanței față de orice exemplu de instruire este maxim. Pătratele indică vectorii suport.

Dumais ([Dumais, 1998]) a aplicat un nou algoritm pentru instruirea SVM ce aduce o viteză considerabilă pentru instruire comparabilă cu learnerele rapide computațional (cum ar fi Rocchio).

3.1.6.11. Comitete de clasificatoare

Comitetele de clasificatoare (sau ansamblurile) se bazează pe ideea că, având de realizat o operație (un task) ce necesită cunoștințe expert pentru a fi realizată, k experți pot fi mai buni decât unul singur dacă judecățile individuale sunt combinate corespunzător. În clasificarea de text ideea este de a aplica k clasificatoare diferite aceluiași task care realizează decizia dacă și apoi de a combina corespunzător ieșirile. Un comitet de clasificatoare este caracterizat de:

– alegerea celor k clasificatoare;

– alegerea funcției de combinare.

Cât privește alegerea celor k clasificatoare, se cunoaște din literatura învățării automate că, pentru a garanta o bună eficiență, clasificatoarele ce formează comitetul trebuie să fie cât mai independente. Clasificatoarele pot să difere prin metoda de indexare utilizată, prin metoda inductivă sau prin ambele. În clasificarea de text a fost cercetată mai mult ultima abordare.

Cât privește problema alegerii funcției de combinare, au fost testate mai multe tipuri de reguli. Cea mai simplă este regula votului majoritar (majority voting), în care ieșirile binare ale celor k clasificatoare sunt puse împreună și decizia de clasificare care întrunește majoritatea de voturi este aleasă. Această metodă este bună pentru cazul în care comitetul include clasificatoare caracterizate de o funcție de decizie binară . O altă regulă este combinarea liniară ponderată (weighted linear combination WLC), în care o sumă ponderată a ieșirilor produse de cele k clasificatoare conduce la valoarea finală a . Ponderile reflectă eficiența relativă așteptată a clasificatoarelor și sunt de obicei optimizate pe mulțimea de test ([Larkey, Croft, 1996]). O altă politică este selecția dinamică a clasificatorului (dynamic clasifier selection DCS), în care din comitetul este selectat clasificatorul cel mai similar cu documentul , cel mai eficient pe l exemple de validare și judecata lui este adoptată de comitet. O politică diferită, intermediară între WLC și DCS este combinarea adaptivă a clasificatorului în care judecățile tuturor clasificatoarelor din comitet sunt însumate dar contribuția individuală este ponderată de eficiența pe cele l exemple de validare cele mai similare cu .

Comitetele de clasificatoare au produs rezultate diferite până în clasificarea de text. Larkey și Croft ([Larkey, Croft, 1996]) au utilizat combinații de Rocchio, Naïve Bayes și k-NN, toate împreună sau combinații de două câte două, folosind regula WLC. În experimentele lor, combinația oricăror două clasificatoare a depăși cel mai bun clasificator individual (k-NN), iar combinația de trei clasificatoare a fost mai bună decât toate combinațiile de câte două clasificatoare. Aceste rezultate par să indice faptul că comitetele de clasificatoare pot profita de avantajele complementare ale membrilor individuali. Totuși dimensiunea mică a mulțimii de test utilizate (187 de documente) indică faptul că mai e nevoie de alte experimente pentru a se putea trage o concluzie.

3.1.6.11.1. Amplificarea (Boosting)

Metoda amplificării ocupă un loc special în literatura comitetelor de clasificare deoarece ce formează comitetul sunt obținute prin aceeași metodă de învățare (numită learner slab – weak learner). Ideea amplificării este aceea că k clasificatoare nu trebuie instruite în mod independent și paralel (ca în cazul comitetelor de clasificatoare descrise mai sus) ci secvențial. În acest mod, în antrenarea clasificatorului , se poate lua în calcul cum se comportă clasificatoarele pe exemplele de instruire și cum se pot obține rezultate bune pe exemplele pe care le-au clasificat greșit.

Pentru clasificatorul (care învață) fiecărei perechi îi este acordată o „pondere de importanță” (în care are aceeași valoare pentru toate perechile ) care reprezintă cât de greu a fost clasificatoarelor să ia decizia corectă pentru perechea . Aceste ponderi sunt exploatate în algoritmul de învățare pentru clasificatorul , care va fi special reglat pentru a rezolva corect perechile cu pondere mare. Clasificatorul este aplicat apoi documentelor de instruire și ca rezultat ponderile sunt actualizate în ; în operația de actualizare, perechile clasificate corect de către vor avea ponderile scăzute iar perechile clasificate greșit de către vor avea ponderile mărite. După ce au fost construite toate cele k clasificatoare, se aplică o regulă de combinație liniară ponderată pentru a obține comitetul final.

O abordare similară amplificării este folosită de Weiss ([Weiss et al., 1999]) care a experimentat cu comitete de clasificatoare bazate pe arbori de decizie, fiecare având o medie de 16 frunze și combinate utilizând drept regulă de combinare regula votului majoritar; în mod similar amplificării este folosit un mecanism pentru evidențierea documentelor ce au fost clasificate greșit de către arborii de decizie anteriori.

3.1.6.12. Alte metode

Deși în secțiunile anterioare s-a încercat trecerea în revistă a abordărilor de învățare propuse în literatura clasificării de text, aceasta nu este exhaustivă. Câteva abordări de învățare nu aparțin nici unei clase de algoritmi sau au rămas încercări oarecum izolate. Printre acestea, cele mai notabile sunt cele bazate pe rețele de inferență bayeseană ([Dumais et al. 1998]), algoritmi genetici.

3.1.7. Evaluarea clasificatoarelor de text

Ca și pentru sistemele de căutare de text, evaluarea clasificatoarelor de documente este condusă de obicei mai mult experimental decât analitic. Motivul este că, pentru a evalua analitic un sistem (demonstrând că este corect și complet) este nevoie de o specificare formală a problemei pe care sistemul încearcă să o rezolve (ținând cont cu ce corectitudine și completitudine sunt definite). Noțiunea centrală în clasificarea de text (apartenența unui document la o categorie) este neformalizabilă datorită caracterului său subiectiv.

Evaluarea experimentală a unui clasificator de obicei măsoară eficacitatea (effectiveness) , abilitatea de a lua deciziile de clasificare corecte (și nu eficiența – efficiency).

3.1.7.1. Măsuri ale eficacității clasificării de text

3.1.7.1.1. Precizia și reamintirea (recall)

Eficacitatea clasificării este de obicei măsurată în termenii noțiunilor din domeniul recuperării clasice a informațiilor (IR) și anume precizie () și reamintire (), adaptate pentru cazul clasificării de text. Precizia este definită ca probabilitatea condițională , probabilitatea ca, dacă un document aleator este clasificat în , această decizie este corectă. În mod analog, reamintirea este definită ca , probabilitatea ca, dacă un document trebuie clasificat în , această decizie este luată. Aceste valori relative la categorie pot fi mediate pentru a obține și , valori globale pentru întreaga mulțime de categorii. Împrumutând terminologia din logică, poate fi văzut „gradul de soliditate” al clasificatorului în timp ce poate fi văzut ca „gradul de completitudine” . Cum sunt definite aici, și trebuie înțelese drept probabilități subiective ce măsoară așteptarea utilizatorului ca sistemul să se comporte corect când clasifică documente nevăzute în . Aceste probabilități pot fi estimate în tabelul de contingență pentru categoria pe o mulțime de test dată (tabelul 3.1.2).

Categoria

judecățile expertului

YES

NO

judecata clasificatorului

YES

NO

Tabelul 3.1.2. Tabelul de contingență pentru categoria .

(fals pozitive pentru , se mai numesc și erori de execuție) este numărul de documente de test ce au fost clasificate greșit în ; (adevărat negative pentru ), (adevărat pozitive pentru ), (fals negative pentru , sau erori de omisiune) sunt definite în același mod. Estimarea (indicată de semnul ) preciziei și a reamintirii poate fi obținută astfel:

Pentru a obține estimările pentru și pot fi folosite două metode:

– micromediere: și sunt obținute prin însumarea tuturor deciziilor individuale:

indică micromediere. Tabelul global de contingență (tabelul 3.1.3) este obținut prin însumarea tabelelor de contingență specifice categoriilor.

Mulțimea de categorii

judecățile expertului

YES

NO

judecata clasificatorului

YES

NO

Tabelul 3.1.3. Tabelul global de contingență

– macromediere: precizia și reamintirea sunt mai întâi evaluate local pentru fiecare categorie și apoi global prin medierea rezultatelor pentru diferite categorii.

În formulele de mai sus „M” indică macromedierea.

Aceste două metode pot da rezultate diferite, mai ales dacă diferite categorii au generalități diferite. De exemplu, abilitatea unui clasificator de a se comporta bine și pe categoriile cu generalitate redusă (categoriile cu puține instanțe de instruire pozitive) va fi accentuată de macromediere și mult mai puțin de micromediere. Alegerea uneia sau a alteia depinde de cerințele aplicației. În continuare vom se va folosi micromedierea, cu observația că tot ce va fi prezentat poate fi adaptat și pentru micromediere.

3.1.7.1.2. Alte măsuri ale eficacității

Măsuri alternative pentru și , folosite frecvent în literatura învățării automate, cum ar fi acuratețea (estimată ca ) și eroarea (estimată ca ), nu sunt foarte folosite în clasificarea de text. Motivul este, după cum arată Yang ([Yang, 1999]), în clasificarea de text valoarea mare a numitorului face mai puțin sensibilă la variațiile numărului de decizii corecte () decât și .

3.1.7.1.3. Măsuri alternative pentru eficacitate

În general, criterii diferite de eficacitate sunt rareori folosite în evaluarea clasificatorului. De exemplu randamentul (efficiency), deși foarte important pentru scopurile aplicative, este rareori folosit ca singură măsură datorită volatilității parametrilor pe care se bazează evaluarea. Totuși randamentul poate fi folositor în alegerea unui clasificator dintre clasificatoarele cu eficacități similare. O evaluare interesantă a fost realizată de Dumais ([Dumais et al., 1998]) care a comparat 5 metode de învățare diferite și 3 măsuri diferite: eficacitatea, randamentul de instruire (timpul mediu care îi trebuie să construiască un clasificator pentru categoria din setul de instruire Tr) și randamentul de clasificare (eficiența de clasificare) (timpul mediu pentru a clasifica un document nou în categoria ).

O alternativă importantă a eficacității este utilitatea, o clasă de măsuri din teoria deciziei, care extinde eficacitatea cu criterii economice cum ar fi câștig sau pierdere. Utilitatea se bazează pe o matrice de utilitatea (ca cea din tabelul 3.1.4) în care valorile numerice , , și reprezintă câștigul adus de adevărat pozitive, fals pozitive, fals negative și adevărat negative; ambele și sunt mai mari decât și . Eficacitatea „standard” este un caz special al utilității, în care . Cazurile mai puțin banale sunt acelea în care și . Acesta este cazul filtrării mesajelor nedorite (spam-ului) nereușita respingerii unui mesaj de tip spam (FP) este o greșeală mai mică decât eliminarea unui mesaj corect (FN).

Dacă clasificatorul are ca ieșire estimările de probabilitate ale apartenenței documentului la categoria , atunci teoria deciziei oferă metode analitice pentru determinarea valorii de prag și se evită necesitatea de a determina experimental (cum s-a prezentat în secțiunea 3.2.6.1). Valoarea așteptată a utilității este maximizată când:

,

care, în cazul eficacității „standard” este egală cu .

Mulțimea de categorii

judecățile expertului

YES

NO

judecata clasificatorului

YES

NO

Tabelul 3.1.4. Matricea de utilitate

Folosirea utilității în clasificarea de text este discutată în detaliu în [Cohen, Singer, 1999]. Utilitatea a devenit populară în cadrul comunității filtrării de text (în cadrul conferinței TREC pentru filtrare). Valorile matricei de utilitate sunt dependente de aplicație. Aceasta înseamnă că, dacă utilitatea este folosită în loc de eficacitatea „pură”, apare un element suplimentar de dificultate în comparația sistemelor de clasificare, deoarece pentru a fi comparabile experimental două clasificatoare este necesar ca matricele de utilitate să fie aceleași.

Alte măsuri de eficacitate, diferite de cele prezentate până acum, au fost folosite ocazional în literatură; dintre aceste măsuri amintim: scor adiacent, corelația Pearson moment-produs, reamintire la n, primul candidat, primele n ([Larkey, Croft, 1996]). Nu vor fi prezentate în detaliu. Totuși, utilizarea lor arată că deși comunitatea ce se ocupă de clasificarea de text face eforturi mari pentru a standardiza protocoalele de experimentare, ne aflăm încă departe de o acceptare universală a problemelor de evaluare și, ca o consecință, departe de înțelegerea precisă a meritelor diferitelor metode.

3.1.7.1.4. Măsuri ale eficacității combinate

Nici precizia, nici reamintirea nu au sens izolat una de alta. De fapt, clasificatorul , pentru care pentru toate și (acceptorul banal) are . Când funcția are valori în intervalul , este nevoie să se pună fiecare valoare de prag la 0 pentru a se obține acceptorul banal. În acest caz ar fi foarte mic (mai precis egal cu generalitatea medie a mulțimii de test ). Invers, este cunoscut din practica recuperării informațiilor că valori mari pentru pot fi obținute doar la valori mici ale lui .

Precizia

Reamintire

precizia C

reamintire C

Rejectorul banal TP=FP=0

nedefinit

Acceptorul banal FN=TN=0

nedefinit

Colecția banală „YES” FP=TN=0

nedefinit

Colecția banală „NO” TP=FN=0

nedefinit

Tabelul 3.1.5. Cazurile banale în clasificarea de text

În practică, prin reglarea valorilor de prag , o funcție este reglată să fie mai liberală (îmbunătățind în detrimentul lui ) sau mai conservatoare (îmbunătățind în detrimentul lui ). Un clasificator trebuie evaluat folosind o măsură care combină și . Diferite măsuri au fost propuse, printre care cele mai frecvent folosite sunt:

1. precizia medie în 11 puncte: valoarea de prag este reglată în mod repetat astfel ca să ia valorile 0.0, 0.1,…, 0.9, 1.0; este calculat pentru aceste 11 valori diferite ale lui și apoi se calculează media pentru cele 11 valori rezultate. Este analog cu metodologia de evaluare standard pentru sistemele de recuperare a informației ordonate și poate fi folosit:

a) cu categorii în locul interogărilor din IR. Este cel mai frecvent utilizat pentru clasificarea ce ordonează documentele ([Schütze et al., 1995], [Yang, 1999], [Yang, Pedersen, 1997]);

b) cu documente de test în locul interogărilor IR și categorii în loc de documente. Este cel mai frecvent folosit pentru clasificatoarele ce ordonează pe categorii ([Larkey, Croft, 1996], [Wiener et al., 1995]). În acest caz, dacă se folosește macromedierea aceasta trebuie redefinită pe document în loc de categorie.

Această măsură nu are sens pentru funcția cu valori binare, deoarece în acest caz nu poate fi modificat după cum vrem.

2. punctul critic de rentabilitate: valoarea la care este egal cu ([Apté et al., 1994], [Cohen, Singer, 1999], [Dagan et al., 1997], [Joachims, 1998] [Lewis, Ringuette, 1994], [Moulinier, Ganascia, 1996], [Yang, 1999]). Aceasta se obține printr-un proces analog cu cel utilizat pentru precizia medie în 11 puncte: o reprezentare a lui ca funcție de este calculată variind valoarea de prag ; punctul critic este valoarea (sau ) pentru care graficul funcției intersectează linia . Ideea se bazează pe faptul că prin scăderea lui de la 1 la 0, crește monoton de la 0 la 1 și de obicei descrește monoton de la o valoare apropiată de 1 la . Dacă pentru nici o valoare a lui , și nu sunt egale, se alege pentru valoarea pentru care și sunt cele mai apropiate și se calculează punctul critic interpolat ca media valorilor și .

3. funcția ([van Rijsbergen, 1979]), pentru ([Cohen, Singer, 1999], [Moulinier et al., 1996], în care:

poate fi văzut ca un grad de importanță relativ atribuit pentru și . Dacă atunci coincide cu iar dacă atunci coincide cu . Cum se arată în [Moulinier et al., 1996], [ Yang, 1999], punctul critic al clasificatorului este întotdeauna mai mic sau egal cu valoarea .

Odată ce a fost aleasă o măsură de eficacitate, clasificatorul poate fi reglat (valorile de prag și alți parametri) astfel încât eficacitatea rezultată să fie cea mai bună pentru clasificatorul ales. Reglarea parametrului p (fie valoare de prag sau alt parametru) se face de obicei experimental. Aceasta înseamnă să se realizeze experimente repetate pe mulțimea de validare cu valori fixate pentru ceilalți parametri (fie la o valoare implicită pentru parametrii ce urmează să fie reglați, fie la o valoare aleasă pentru parametrii ce au fost deja reglați) și cu diferite valori pentru parametrul p. Valoarea pentru care s-a obținut cea mai bună eficacitate este aleasă pentru p.

3.1.7.2. Benchmark-uri pentru clasificarea de text

Colecții benchmark standard ce pot fi folosite pentru clasificarea de text sunt disponibile în mod public pentru scopuri experimentale. Cea mai folosită este colecția Reuters care conține o mulțime de știri clasificate pe categorii (pentru domeniul economic). Această colecție este cea mai folosită în clasificarea de text pentru experimente. Din păcate acest lucru nu conduce întotdeauna la rezultate ce pot fi comparate în sensul că multe din aceste experimente au fost realizate în condiții puțin diferite.

În general diferite mulțimi de experimente pot fi folosite pentru a realiza o comparație între clasificatoare numai dacă experimentele au fost realizate:

1) pe exact aceeași colecție (aceleași documente și aceleași categorii);

2) utilizând aceeași împărțire între mulțimea de test și cea de instruire;

3) folosind aceeași măsură de evaluare, iar când această măsură depinde de parametri (de exemplu matricea de utilitate aleasă), să fie utilizate aceleași valori ale parametrilor.

Din păcate multe experimente, atât pe colecția Reuters cât și pe alte colecții nu au fost realizate respectând aceste condiții. Testând 3 clasificatoare diferite pe 5 versiuni ale colecției Reuters, Yang ([Yang, 1999]) a arătat că lipsa îndeplinirii acestor condiții poate face foarte grea realizarea comparației între rezultatele experimentale.

În tabelul 3.1.6. se prezintă rezultatele exprimate pe versiuni diferite ale benchmark-ului Reuters:

Au fost prezentate doar experimentele ce au folosit pentru evaluare punctul critic de rentabilitate sau deoarece alte măsuri de eficacitate, mai puțin utilizate, nu se pot compara cu acestea.

Trebuie subliniat că doar rezultatele obținute pe aceeași versiune pot fi comparate direct.

 REUTERS

numărul de documente

21.450

numărul de documente de instruire

14.704

numărul de documente de test

6.746

numărul de categorii

135

Sistem

Tip

Rezultate prezentate în

WORD

(fără învățare)

[Yang, 1999]

0,310

PropBayes

BIM

probabilistic probabilistic

[Dumais et al., 1998]

[Joachims, 1998]

0,815

0,720

probabilistic

[Yang, Liu, 1999]

0,795

C4.5

arbori de decizie

[Dumais et al., 1998]

0.864

arbori de decizie

[Joachims, 1998]

0.794

IND

arbori de decizie

[Lewis, Ringuette, 1994]

0.670

SWAP-1

reguli de decizie

[Apté et al., 1994]

0.805

SLEEPING EXPERTS

reguli de decizie

[Cohen, Singer, 1999]

0.827

CHARADE

reguli de decizie

[Moulinier, Ganascia, 1996]

0.738

LLSF

regresie

[Yang, 1999]

0.855

LLSF

regresie

[Yang, Liu, 1999]

0.849

BALANCED

WINNOW

on-line liniar

[Dagan et al., 1997]

0.833 (M)

ROCCHIO

batch liniar

[Cohen, Singer, 1999]

0.776

ROCCHIO

batch liniar

[Joachims, 1998]

0.799

NNET

rețele neuronale rețele neuronale

[Yang, Liu 1999]

[Wiener et al., 1995]

0.820

0.838

k-NN

bazat pe exemple

[Joachims, 1998]

 0.823

k-NN

bazat pe exemple

[Yang, 1999]

0.852

k-NN

bazat pe exemple

[Yang, Liu, 1999]

0.856

SVMLIGHT

SVM

[Joachims, 1998]

0.864

SVMLIGHT

SVM

[Yang, Liu, 1999]

0.859

AdaBoost.MH

comitet

comitet

[Schapire, Singer, 2000]

[Weiss et al., 1999]

0.878

rețea bayeseană

[Dumais et al., 1998]

0.850

Tabel 3.1.6. Rezultate comparative pentru diferite clasificatoare obținute pe versiuni diferite ale benchmark-ului Reuters. Unde nu este specificat s-a folosit punctul critic micromediat. În paranteze „M” indică micromediere. Valorile scrise îngroșat indică valoarea cea mai bună din colecția respectivă.

Alte colecții de test utilizate frecvent sunt:

– OHSUMED, folosită în lucrările [Joachims, 1998], [Yang, Pedersen, 1997]. Documentele sunt titluri de articole sau titluri și rezumate ale unor articole din reviste medicale (OHSUMED este de fapt o submulțime a colecției de documente medicale Medline); categoriile sunt termeni din tezaurul MESH. Colecția OHSUMED poate fi descărcată gratuit pentru a fi folosită în experimente de la adresa ftp://medir.ohsu.edu/pub/ohsumed.

– colecția 20 NEWSGROUP – documentele sunt mesaje publicate pe grupurile de știri Usenet iar categoriile sunt chiar numele grupurilor.

– colecția AP folosită în [Cohen, Singer, 1999].

Nu vor fi prezentate experimentele realizate pe aceste colecții deoarece nu sunt mulți autori care au folosit aceste colecții în aceleași condiții experimentale și astfel comparațiile sunt foarte dificil de realizat. Colecția Reuters-21578 poate fi descărcată gratuit pentru a fi folosită în experimente de la adresa http://www.research.att.com/~lewis/reuters21578.html și este considerată acum varianta standard a colecției Reuters.

3.1.7.3. Determinarea celui mai bun clasificator

Rezultatele experimentale (tabelul 3.1.6) ne permit să încercăm să facem câteva considerații despre performanța metodelor de clasificare de text prezentate. Trebuie avut în vedere că comparațiile sunt corecte doar dacă experimentele au fost realizate de către același autor în condiții controlate. Aceste comparații sunt problematice când implică experimente realizate de autori diferiți. În acest caz, diferiți factori ce nu aparțin algoritmului de învățare pot influența rezultatele. Acești factori pot include alegeri diferite în etapa de preprocesare, indexare, reducerea dimensiunii, valorile parametrilor clasificatorului, etc., dar și utilizarea de practici de cercetare diferite (de exemplu reglarea parametrilor pe mulțimea de test în loc de folosirea unei mulțimi de validare separate).

Două metode diferite pot fi aplicate pentru a compara clasificatoarele ([Yang, 1999]):

– compararea directă: clasificatoarele și pot fi comparate când au fost testate pe aceeași colecție , de obicei de același cercetător și în aceleași condiții. Aceasta este cea mai sigură metodă.

– compararea indirectă: clasificatoarele și pot fi comparate când:

1) au fost testate pe colecțiile și de către cercetători diferiți și posibil în condiții diferite;

2) unul sau mai multe clasificatoare de bază au fost testate pe ambele colecții și printr-o metodă de comparare directă.

Testul 2) dă o indicație despre dificultatea colecțiilor și ; folosind aceasta și rezultatele de la testul 1) putem obține o indicație despre eficacitatea relativă a clasificatoarelor și . Din motivele prezentate mai sus această metodă este mai puțin sigură.

Un număr de concluzii interesante pot fi extrase din tabelul 3.1.6 folosind cele două metode. Cu privire la performanța relativă a clasificatoarelor, ținând cont de observațiile făcute mai sus, se pot încerca câteva concluzii:

– comitetele de clasificatoare (ce folosesc amplificarea), mașinile de vectori suport (SVM), metodele bazate pe exemple și metodele de regresie conduc la cea mai bună performanță. Nu există suficiente dovezi pentru a opta pentru una din aceste metode; considerații privind eficiența și alte probleme dependente de aplicație pot juca un rol important în alegerea uneia dintre ele;

– clasificatoarele liniare de tip batch (Rocchio) și clasificatoarele probabilistice Naïve Bayes se pare că sunt printre cele mai slabe clasificatoare bazate pe învățare.

– datele din tabelul 3.1.6 nu sunt suficiente pentru a trage concluzii despre arborii de decizie. Totuși lucrarea lui Dumais ([Dumais et al., 1998]), în care un clasificator bazat pe arbori de decizie s-a comportat aproape la fel de bine ca sistemul cel mai bun (bazat un clasificator SVM), va reînnoi interesul pentru arbori de decizie.

– cea mai mică performanță este cea a sistemului WORD, un clasificator implementat de Yang ([Yang, 1999]) care nu include nici o componentă de învățare.

Este important de avut în vedere că afirmațiile de mai sus despre eficiența comparată a metodelor de clasificare de text nu sunt absolute. Unul din motive este acela că un context aplicativ particular poate prezenta caracteristici foarte diferite de cele găsite în colecția Reuters și diferite clasificatoare pot răspunde diferit acestor caracteristici. Un studiu experimental făcut de Joachims ([Joachims, 1998]) ce a folosit SVM, k-NN, arbori de decizie, Rocchio și Naïve Bayes a arătat că toate aceste clasificatoare prezintă eficiență similară pe categorii cu mai mult de 300 de exemple pozitive pentru fiecare categorie. Faptul că acest experiment a inclus metode care conform tabelului 3.1.6 s-au plasat foarte bine (SVM, k-NN) și foarte slab (Rocchio și Naïve Bayes) demonstrează că colecții diferite de Reuters pot invalid concluziile prezentate mai sus.

3.1.8. Concluzii

Clasificarea automată de text este în momentul de față o arie de cercetare majoră în sistemele de informare datorită următorilor factori:

– domeniile de aplicație sunt numeroase și importante, și datorită proliferării documentelor în format digital este de așteptat să crească dramatic atât în număr cât și ca importanță;

– este indispensabilă în numeroase aplicații în care numărul mare de documente ce trebuie clasificate și timpul scurt de răspuns fac ca alternativa manuală să nu fie viabilă;

– poate îmbunătăți productivitatea clasificărilor realizate de oameni în aplicații în care nici o decizie de clasificare finală nu poate să fie luată fără judecata umană prin oferirea de unelte care să sugereze rapid decizii posibile;

– a atins nivele de eficiență comparabile cu cele ale experților. Eficiența clasificării manuale oricum nu este 100% și, mai important, este puțin probabil să se îmbunătățească substanțial. În schimb, nivelele de eficiență ale clasificării de text sunt în creștere într-un ritm constant și chiar dacă nu vor atinge 100%, nivelul la care vor ajunge va fi probabil mai mare decât nivelele de eficiență ale clasificării de text manuale.

Unul din motivele pentru care de la începutul anilor ’90 eficiența clasificării de text s-a îmbunătățit dramatic a fost apariția în clasificarea de text a metodelor de învățare automată care sunt susținute de fundamente teoretice solide. Exemple sunt actualizarea multiplicativă a ponderilor (WINNOW, WIDROW-HOFF, etc.), selecția adaptivă (amplificarea – boosting) și mașini de vectori suport în comparație cu metode nesofisticate, mai slabe (cum ar fi Rocchio). În clasificarea de text cercetătorii din învățarea automată au găsit un domeniu de aplicație interesant deoarece sunt disponibile colecții de date ce conțin sute de mii de documente și caracterizate prin zeci de mii de termeni. Aceasta înseamnă că clasificarea de text poate fi folosită ca un mediu de test (bemchmark) pentru a verifica dacă o anumită tehnică de învățare este scalabilă la dimensiuni mari. Aceasta înseamnă că comunitatea de cercetare din învățarea automată se va implica și mai mult în clasificarea de text.

Succesul clasificării automate a textului va încuraja extinderea metodelor și tehnicilor în domenii de aplicație conexe. Tehnici tipice de clasificare automată a textului au fost folosite cu succes în clasificarea documentelor ce se regăsesc în medii diferite:

– text cu foarte mult zgomot rezultat în urma operației de recunoaștere optică a caracterelor (OCR).

– transcrierea convorbirilor.

Cercetarea actuală în clasificarea automată a documentelor în categorii tematice se concentrează pe text. Motivul este acela că extragerea conținutului semantic real al mediilor netextuale prin indexare automată este încă o problemă deschisă. În timp ce există sisteme care încearcă să detecteze conținutul (de exemplu în imagini folosind recunoașterea formelor, distribuțiile de culoare și textură), problema generală a semanticii imaginilor nu este încă rezolvată. Motivul principal este acela că limbajul natural, limbajul mediului text, admite mult mai puține variații decât „limbajul” folosit în alte medii. De exemplu, în timp ce conceptul de casă poate fi obținut cu un număr relativ redus de expresii din limbajul natural (de exemplu în limba engleză: house, houses, home, housing, inhabiting), poate fi obținut prin mult mai multe imagini: imaginile tuturor caselor diferite care există, a tuturor culorilor și formelor posibile văzute din toate perspectivele posibile , de la toate distanțele, etc. Dacă se rezolvă problema indexării multimedia într-o manieră satisfăcătoare, metodologia generală care se aplică pentru clasificarea automată a textului se poate aplica de asemenea și pentru clasificarea automată a conținutului multimedia.

3.2. Analiza algoritmilor pentru sistemele de recomandare

3.2.1. Introducere

Sistemele de recomandare folosesc o bază de date cu informații despre preferințele și evaluările mai multor utilizatorului asupra unor obiecte pentru a realiza predicții despre obiecte noi pe care un utilizator le-ar putea plăcea.

O metodă de a identifica obiecte potențial interesante, folosește datele din preferințele unui set de utilizatori. În mod normal, aceste sisteme nu folosesc nici o informație cu privire la conținutul actual al obiectelor (de exemplu: cuvinte cheie, autor, descriere), ci se bazează pe evaluările și modul de folosire ale altor utilizatori. Este numită filtrare colaborativă sau sistem de recomandare. Aceste sisteme sunt construite pe ideea că o modalitate bună de a găsi conținut interesant, este aceea de a găsi oameni care au interese similare și apoi de a recomanda acele titluri persoanelor cu interese comune. Din acest motiv se remarcă o creștere a interesului comercial în tehnologia filtrării colaborative.

Sistemele de recomandare au fost introduse ca o tehnică inteligentă, care folosește calculatorul, pentru a încerca să se rezolve problema exploziei informaționale și de produse. Aceste sisteme pot fi folosite pentru a oferi servicii personalizate în comerț electronic, și de care pot beneficia atât cumpărătorul cât și vânzătorul. Sistemul de recomandare oferă cumpărătorului sugestii despre obiecte pe care se presupune că le va plăcea. În același timp, afacerea va beneficia prin creșterea vânzărilor care în mod normal apare atunci când cumpărătorului i se prezintă mai multe obiecte de care ar fi interesat.

Cele două entități de bază, care apar în orice sistem de recomandare, sunt utilizatorul (en. user, în comerț electronic numit și cumpărător) și obiectul (en. item, în comerț electronic numit și produs). Un utilizator este o persoană care folosește sistemul de recomandare, oferă sistemului opinia sa despre diverse obiecte și primește recomandări despre noi obiecte de la sistem.

Intrarea unui sistem de recomandare depinde de tipul algoritmului de filtrare folosit. Vor fi prezentați diferiți algoritmi de filtrare. La modul general, intrarea unui sistem de recomandare aparține uneia din categoriile:

1. voturi (en. ratings) (evaluare, estimare, apreciere, prețuire) – care exprimă opinia utilizatorilor despre obiecte. Voturile sunt de obicei oferite de utilizatori și folosesc o scara numerică specificată (de exemplu se atribuie 1 pentru „rău”, până la 5 pentru „excelent”). O schemă comună de votare este schema de votare binară, care primește doar voturi de 0 sau 1. Voturile pot fi culese (extrase, preluate) și implicit ținând cont de istoricul produselor cumpărate, de logurile (înregistrările, jurnalele) web, parcurgerea hiperlinkurilor (adreselor web, adreselor Internet), obiceiurile de navigare sau alte tipuri de informații despre tiparele de acces ale utilizatorilor;

2. date demografice – se referă la informații precum vârsta, sexul, educația utilizatorului. Acest tip de date este de obicei dificil de captat (obținut). Este colectat explicit de la utilizator;

3. date de conținut – se bazează pe analiza textuală a documentelor și se află în legătură cu obiectele votate (evaluate, apreciate) de către utilizator. Caracteristicile extrase de această analiză sunt folosite ca intrări ale algoritmilor de filtrare pentru a infera un profil al utilizatorului.

Scopul sistemelor de recomandare este de a genera sugestii despre obiecte noi sau de a prezice utilitatea unui obiect specific pentru un utilizator particular. În ambele cazuri, procesul este bazat pe intrarea oferită, care are legătură cu preferințele acelui utilizator.

Fie , unde m este numărul de utilizatori și , unde n este numărul de obiecte. Fiecare utilizator unde are o listă de obiecte pentru care și-a exprimat opinia. Este important de notat că , e posibil ca să fie mulțimea vidă, însemnând că utilizatorilor nu li se cere să-și ofere preferințele pentru toate obiectele.

Numărul de obiecte din este ; cu .

Opiniile utilizatorilor sunt în general date sub forma unui număr real într-un anumit interval numit scor sau vot. Se folosește simbolul pentru lipsa votului. Votul utilizatorului pentru obiectul , este notat . Toate aceste voturi sunt colectate într-o matrice de dimensiune , numită matrice utilizator – obiect și notată cu .

Algoritmii de filtrare folosesc diferite tehnici, fie pe rânduri care corespund voturilor unui singur utilizator pentru diferite obiecte, sau pe coloane, care corespund voturilor diverșilor utilizatori pentru același obiect.

Vom nota cu utilizatorul activ, , cu submulțimea de obiecte pentru care utilizatorul activ nu și-a exprimat opinia și pentru care sistemul de recomandare trebuie să genereze sugestii.

Ieșirea unui sistem de recomandare poate să fie o predicție sau o recomandare.

O predicție este exprimată ca o valoare numerică , care reprezintă opinia anticipată (predicția opiniei, votului, evaluării) a utilizatorului activ pentru obiectul . Această valoare prezisă ar trebui în mod necesar să fie în aceeași scară numerică (de exemplu 1 pentru „rău” și 5 pentru „excelent”) ca intrarea care se referă la opinia oferită inițial de utilizatorul . Acest tip de sisteme de recomandare se numește scor individual.

O recomandare este exprimată ca o listă de obiecte, , pe care utilizatorul activ e de așteptat să le placă. Abordarea uzuală necesită ca această listă să includă numai obiecte pe care utilizatorul activ nu le-a cumpărat, văzut sau votat. Acest tip de sisteme de recomandare e cunoscută sub numele Recomandarea primelor (en. Top N Recommendation) sau scor gradat.

3.2.2. Provocări și probleme

În această secțiune se vor prezenta problemele fundamentale ale sistemelor de recomandare. Este important ca orice nou algoritm de filtrare să propună soluții pentru următoarele probleme:

– calitatea recomandărilor – încrederea este aici cuvântul cheie. Clienții au nevoie de recomandări în care să aibă încredere Pentru a obține aceasta, un sistem de recomandare trebuie să minimizeze numărul de erori fals pozitive, de exemplu produsele care sunt recomandate (pozitive), deși cumpărătorului nu îi plac. Asemenea erori duc la cumpărători nemulțumiți ([Sarwar et al., 2000]);

– raritate (sparsity) – este o problemă obișnuită ca în magazinele online chiar și cei mai activi cumpărători să cumpere sau să evalueze un număr foarte mic de produse (în comparație cu numărul total de produse din acel magazin). Acest lucru conduce la matrice utilizator-obiect rare, la inabilitatea de a localiza cu succes vecini și, în final, la generarea unor recomandări slabe. Tehnici de reducere a rarității în matricele utilizator-obiect au fost propuse în [Claypool et al., 1999], [Sarwar, 2001];

– scalabilitate – sistemele de recomandare necesită efectuarea unui număr mare de calcule, care crește atât cu numărul de cumpărători cât și cu numărul de produse. Un algoritm care este eficient pentru date limitate se poate dovedi că generează recomandări slabe odată cu creșterea cantității de date. Algoritmii, e de dorit, să fie scalabili ([Sarwar, 2001]);

– pierderea tranzitivității vecinilor; presupunem că utilizatorii și sunt foarte corelați și utilizatorul e strâns corelat cu utilizatorul . În acest caz există posibilitatea ca și să fie corelați prin corelația comună cu utilizatorul . Totuși o asemenea relație tranzitivă nu este captată de sistemele de filtrare socială (en. collaborative filtering systems), (o astfel de relație este captată doar dacă utilizatorii și au cumpărat sau votat mai multe obiecte comune). Este important de implementat metode care captează asemenea relații ([Billsus, Pazzani, 1998]);

– sinonimia – sistemele de recomandare nu sunt de obicei capabile să descopere asocieri (legături) latente între produsele care au nume diferite dar se pot referi la obiecte similare. O metodă trebuie implementată pentru testarea existenței unor asemenea legături (asocieri) latente (târzii) și utilizarea acestora pentru generarea unor recomandări mai bune ([Sarwar et al., 2000]);

– problema primului care votează; un obiect nu poate fi recomandat decât dacă un utilizator l-a votat mai înainte. Această problemă se aplică atât obiectelor noi, cât și celor mai puțin cunoscute. Se mai numește și problema pornirii la rece ([Melville et al., 2001]);

– problema utilizatorului deosebit – este cunoscută sub numele de problema oii gri. Se referă la persoane cu opinii care sunt „neobișnuite”, însemnând că nu sunt de acord în mod constant cu nici un grup. Aceste persoane nu vor beneficia de pe urma sistemului de recomandare (vor primi adesea recomandări slabe) ([Claypool et al., 1999]).

3.2.3. Sisteme de recomandare care folosesc metode bazate pe memorie

Sarcina principală in filtrarea colaborativă este aceea de a realiza o predicție a utilității unor obiecte pentru un utilizator particular (considerat utilizatorul activ) pe baza voturilor unui eșantion de utilizatori dintr-o bază de date.

Voi prezenta două clase generale de algoritmi pentru filtrare colaborativă:

1. Algoritmi bazați pe memorie – sunt algoritmi ce operează peste întreaga bază de date a utilizatorilor cu scopul de a realiza predicții

2. Filtrare colaborativă bazată pe model – folosește baza de date cu utilizatori pentru a estima sau învăța un model, ce va fi folosit pentru realizarea predicțiilor.

În continuare va fi descris procesul de recomandare pentru sisteme care utilizează algoritmi bazați pe memorie, ceea ce înseamnă că operează pe întreaga matrice utilizator – obiect pentru a face predicții. Majoritatea acestor sisteme aparțin sistemelor de filtrare socială și în principal se ocupă cu calculul similarității utilizator – utilizator, ceea ce înseamnă că utilizează vecinătăți ale utilizatorilor construite sub forma unor grupuri de utilizatori similari. Cu alte cuvinte, se ocupă de rândurile matricei utilizator – obiect pentru a genera rezultatele. Pașii principali ai acestui proces sunt: reprezentarea, formarea vecinătăților și generarea recomandării.

3.2.3.1. Reprezentarea

În reprezentarea originală, datele de intrare sunt definite ca o colecție de voturi (valori) numerice ale utilizatori pentru obiecte, care se găsesc în matricea utilizator – obiect, , de dimensiune . Această matrice este de obicei rară, incluzând multe valori „lipsă vot”, ceea ce face dificil pentru algoritmii de filtrare să genereze rezultate satisfăcătoare. Au fost propuse tehnici de reducere a rarității matricei utilizator – obiect inițiale, pentru a îmbunătăți rezultatele procesului de recomandare.

3.2.3.1.1. Tehnici de reducere a rarității în procesul de recomandare

3.2.3.1.1.1. Votul implicit

Sistemele de filtrare colaborativă se deosebesc între ele de obicei prin folosirea voturilor implicite sau explicite. Votarea explicită se referă la un utilizator ce își exprimă preferința pentru un titlu (folosind de obicei o scară numerică). De exemplu sistemul GroupLens folosește o scară de la 1 („rău”) la 5 („bun”) pentru a da posibilitatea utilizatorilor de a evalua articole Netnews (utilizatorii evaluează explicit fiecare articol după cel citesc).

Votul implicit se referă la interpretarea comportamentului utilizatorului sau a selecțiilor pentru a atribui un vot sau preferințe. Voturile implicite se pot baza pe datele ce sunt vizualizate și pe istoricul acțiunilor. Indiferent de tipul de vot algoritmii de filtrare colaborativă trebuie să rezolve problema datelor care lipsesc. În mod normal, nu avem un set complet de voturi pentru toate titlurile.

Cea mai simplă tehnică folosită pentru a reduce raritatea matricei utilizator – obiect constă în inserarea unui vot implicit pentru obiecte „folositoare” pentru care nu există voturi. Autorii acestei metode ([Breese et al., 1998]) nu au specificat unde trebuie inserat votul implicit. În majoritatea cazurilor, valoarea votului implicit, , este aleasă ca neutră sau negativă (preferință negativă) pentru obiectele neobservate. Costul aplicării metodei votului implicit este scăzut.

3.2.3.1.1.2. Preprocesare folosind medii

Există o extensie a metodei votului implicit. Ideea este de a parcurge matricea utilizator – obiect și de a înlocui valorile care lipsesc prin folosirea unor metode nesociale care oferă un vot simplu.

Schema mediei utilizator constă în calcularea, pentru fiecare utilizator, a votului utilizator mediu, , care se exprimă prin media elementelor de pe rândul corespunzător din matricea . Media este folosită pentru a înlocui orice valoare care lipsește. Această abordare se bazează pe ideea că votul unui utilizator pentru un obiect nou poate fi prezis dacă ținem cont de voturile din trecut ale utilizatorului. Formalizat:

În schema mediei obiect se folosește media obiectului, , a fiecărui obiect , ca valoare pentru elementele din matrice care lipsesc. Se calculează media pe coloană a fiecărei coloane din matricea utilizator – obiect și se completează toate elementele pe aceeași coloană care nu au nici o valoare (), folosind media.

În schema mediei obiect se presupune că votul mediu pentru un obiect poate prezice opinia utilizatorilor pentru același obiect.

Aplicarea uneia dintre scheme pentru fiecare valoare „vot lipsă” din matricea utilizator – obiect va conduce la o nouă matrice care nu este rară. Pe de altă parte, tehnici scalabile sau metode statistice ca LSI/SVD sunt mai greu de aplicat pe matrice dense.

În schema compusă informațiile despre utilizatori și obiecte contribuie la rezultatul final. Ideea este de a folosi media utilizator pe obiectul ca o predicție de bază și apoi să se aplice o corecție (se adună un termen de corecție) ținând cont cum a fost votat obiectul specific de alți utilizatori. Corecție este necesară dacă luăm în considerare modul în care diferiți utilizatori își exprimă preferințele (un utilizator poate vota pe o scară de la 1 la 3, oferind 3 pentru obiecte pe care le place în timp ce altul poate da voturi pe o scară de la 3 la 5). Schema funcționează astfel: când e localizată o intrare pentru care lipsește opinia utilizatorului pentru obiectul , se calculează mai întâi media utilizator , calculată ca media rândului din matricea utilizator – obiect. Apoi se caută pe coloană voturi care corespund obiectului . Presupunem că o mulțime de utilizatori au dat un vot pentru obiectul , putem calcula un termen corector pentru fiecare utilizator și anume . După ce toate corecțiile pentru toți utilizatorii din sunt calculate, votul compus poate fi calculat astfel:

O altă modalitate de utilizare a schemei compuse este folosirea unei transpoziții: mai întâi se calculează media obiect (media pe coloană care corespunde obiectului ) și apoi se calculează termenii de corecție prin parcurgerea celor obiecte, care au fost votate de utilizatorul . Valoarea calculată pentru a înlocui valoarea lipsă este:

,

unde este numărul de obiecte votate de utilizatorul și termenii de corecție sunt calculați pentru toate obiectele din ca . Experimental s-a arătat că schema compusă de votare (evaluare) dă cele mai bune rezultate (acuratețea predicției). Dezavantajul ei este că necesită un număr foarte mare de calcule pentru a obține toate valorile care lipsesc în matricea originală utilizator – obiect .

3.2.3.1.1.3. Folosirea agenților de filtrare (filterbots)

Agenții de filtrare ([Sarwar et al., 1998]) sunt agenți de votare automați care evaluează obiectele noi și introduc voturile în matricea utilizator – obiect. Sistemele de recomandare ar trebui să vadă sistemele de filtrare ca utilizatori obișnuiți cu o singură diferență față de utilizatorii umani: agenții de filtrare sunt foarte prolifici, generând predicții numeroase dar în același timp sunt și foarte generoși și nu cer niciodată predicții pentru ei.

Încorporarea agenților de filtrare e simplă, procedura fiind următoare:

– mai întâi acceptă obiecte noi pe măsură ce sunt introduse în matricea utilizator – obiect sau cer obiecte deja existente

– aplică obiectului algoritmii de votare. Algoritmii de votare sunt în legătură cu cantitatea de „inteligență” pe care o încorporează.

– după generarea votului pentru obiect, îl inserează în matricea utilizator – obiect .

Agenții de filtrare sunt importanți în reducerea rarității și în problema pornirii la rece. Voturile generate de agenții de filtrare fac matricea utilizator – obiect mai densă.

În același timp, prin realizarea predicțiilor pentru obiecte noi pe măsură ce apar, fac mai ușoară și mai rapidă recomandarea acestora către utilizatorii umani. Astfel toate obiectele noi ar trebui să fie votate de un număr adecvat de utilizatori înainte de a fi recomandate altor utilizatori.

Prin integrarea agenților de filtrare în sistemele de recomandare, se așteaptă să se îmbunătățească utilitatea sistemului pentru utilizatorii care sunt de acord cu agenții de filtrare. În același timp, utilizatorii care nu împărtășesc preferințe similare cu agenții de filtrare nu vor fi afectați în nici un fel.

Un aspect interesant al agenților de filtrare este în legătură cu cantitatea de inteligență care este încorporată în ei. Cel mai simplu tip de agenți de filtrare, numit agenți de gen (Genrebots), atribuie votul cel mai mare posibil unui obiect care se încadrează în genul agentului de filtrare, în timp ce votul pentru alte obiecte care nu se încadrează în gen este foarte mic. De exemplu dacă sistemul de recomandare este folosit pentru filme, un agent de filtrare pentru comedie va vota „Le gendarme a Saint Tropez” cu 5 (pe o scară de la 1 la 5) și „Cetățeanul Kane” cu 3. Din această cauză trebuie să existe agenți de filtrare pentru fiecare gen.

Un agent de filtrare care include mai multă inteligență poate genera predicțiile pe baza tehnicilor din recuperarea informațiilor (information retrieval) și a filtrării informațiilor information filtering) și mai specific aplicând un algoritm TF-IDF ([Salton, Buckley, 1988]) modificat pe caracteristicile de conținut ale fiecărui obiect. Un asemenea agent de filtrare inteligent, numit agent de filtrare pe conținut (content filterbot), poate utiliza cuvintele care descriu domeniul pentru a obține recomandări personalizate.

Pentru a produce rezultate mai bune, agenții de filtrare pot fi combinați:

– prin medierea voturilor mai multor agenți de filtrare diferiți;

– prin aplicarea regresiei pentru a crea combinația cea mai bună (best fit combination) pentru fiecare utilizator. Pentru a obține acest lucru trebuie folosite voturile cunoscute ale utilizatorilor ca o variabilă dependentă, în timp ce predicțiile generate de agenții de filtrare (pe care dorim să le combinăm) sunt variabile independente. Ponderile rezultate trebuie folosite pentru a genera predicții pentru obiecte noi prin crearea de combinații liniare ale recomandările agenților de filtrare.

– prin inserarea voturilor de la diferiți agenți de filtrare în sistemul de recomandare și prezentarea rezultatului sistemului de recomandare ca o predicție finală.

În toate cazurile de mai sus, după combinarea rezultatelor agentului de filtrare într-o singură recomandare, acea recomandare trebuie introdusă în matricea utilizator-obiect pentru a ajuta procesul de recomandare.

O idee interesantă ([Sarwar, 2001]) este de a folosi o comunitate de agenți de filtrare care este generată de selecția naturală astfel încât agenții ineficienți (agenții a căror prezență nu îmbunătățește calitatea recomandărilor comparată cu sistemul fără ei) sunt eliminați pe măsură ce timpul trece și înlocuiți cu variante ale agenților eficienți.

3.2.3.1.1.4. Tehnici de reducere a dimensionalității

O mulțime de date rare poate deveni mai densă dacă se aplică datelor tehnici de reducere a dimensionalității precum descompunerea după valorile singulare (SVD). O astfel de reducere poate rezolva problema sinonimiei, descrisă mai sus, poate capta relațiile latente (târzii) dintre utilizatori ([Berry et al., 1995]). După generarea unei matrice de dimensiune redusă, trebuie folosită o măsură pentru similaritate (similitudine) vectorială pentru a calcula distanța dintre utilizatori și de a forma vecinătăți ([Sarwar et al., 2000]).

Vecinătatea în spațiul redus, după aplicarea SVD, este creată prin aplicarea următorilor pași:

1. preprocesarea matricei inițiale utilizator-obiect de dimensiune pentru a elimina toate valorile care lipsesc și de a obține o matrice normalizată .

2. calcularea SVD a matricei și obținerea matricelor , și de dimensiuni , și . Relația dintre ele se exprimă astfel: . Matricele și sunt ortogonale și acoperă spațiul coloană și spațiul rând a matricei inițiale . Matricea este matrice diagonală, numită și matrice singulară.

3. realizarea pasului de reducere a dimensionalității prin păstrarea numai a elemente de pe diagonală din matricea pentru a obține matricea , de dimensiune . În mod similar se obțin și , de dimensiuni și .

4. se calculează și apoi se calculează două produse: și care reprezintă pseudo-utilizatori și pseudo-obiecte în spațiul caracteristicilor de dimensiune .

5. se continuă cu formarea vecinătăților (pasul 2 în procesul de recomandare). În acest caz, metodele SVD/LSI au fost folosite pentru a reduce dimensiunea matricei inițiale utilizator-obiect, similaritatea dintre perechile de utilizatori trebuie calculate prin produsul dintre rândurile care corespund acestor utilizatori în noua matrice de pseudo-utilizatori .

O problemă importantă la aplicarea metodelor SVD/LSI pentru reducerea dimensiunii matricei inițiale utilizator-obiect este modalitatea de determinare a valorii lui , care reprezintă reducerea dimensiunii. Valoarea lui este critică pentru eficiența reprezentării în spațiul redus dimensional. Valoarea lui trebuie să fie suficient de mare pentru a capta toate relațiile latente în matricea și în același timp trebuie să fie suficient de mare pentru a evita erorile de over-fitting.

De obicei valoarea lui se evaluează experimental, fiind diferită pentru seturi de date diferite.

3.2.3.2. Formarea vecinătăților

În cel mai important pas al procesului de recomandare, se calculează similaritatea dintre utilizatori în matricea utilizator-obiect. Utilizatori similari cu utilizatorul activ, , vor forma o vecinătate (bazată pe proximitate, distanță). Vecinătatea utilizatorului activ trebuie folosită în următoarea etapă a procesului de recomandare pentru a estima preferințele posibile.

Formarea vecinătăților este implementată în doi pași:

– inițial, similaritatea dintre toți utilizatorii din matricea este calculată cu ajutorul unor metrici de proximitate (distanță);

– apoi, are loc generarea vecinătății pentru utilizatorul activ, în care similaritățile utilizatorilor sunt procesate pentru a selecta acei utilizatori care vor forma vecinătatea utilizatorului activ.

În continuare se vor prezenta mai detaliat cei doi pași.

3.2.3.2.1. Similaritatea utilizatorilor

Presupunând existența unei matrice utilizator-obiect , similaritatea dintre doi utilizatori din această matrice, și , poate fi calculată utilizând fie similaritatea de corelație Pearson, fie similaritatea cosinus/vector, care sunt cele mai importante metrici de proximitate întâlnite în literatura sistemelor de recomandare.

3.2.3.2.1.1. Similaritatea de corelație Pearson

Formularea generală a filtrării colaborative statistice a apărut în contextul proiectului GroupLens ([Resnick, 1994]). A fost definit coeficientul de corelație Pearson, ca bază pentru ponderi. Pentru a găsi proximitatea dintre utilizatorii și se poate folosi metrica de corelație Pearson.

Este important de observat că sumele după sunt calculate pentru obiecte pentru care ambii utilizatori și și-au exprimat opinia. Este evident că , unde reprezintă numărul total de obiecte din matricea .

3.2.3.2.1.2. Similaritatea vector/cosinus

În domeniul recuperării informației, similaritatea dintre două documente este de obicei măsurată tratând fiecare document ca un vector al frecvenței cuvintelor și calculând cosinusului unghiului format de cei doi vectori cu frecvențe (Salton). Se poate adopta acest formalism pentru filtrarea colaborativă, unde utilizatorul joacă rolul documentelor, obiectele joacă rolul cuvintelor și votul joacă rolul frecvențelor de apariție a cuvintelor.

În spațiul n-dimensional al obiectelor (sau k-dimensional în cazul utilizării tehnicilor de reducere a dimensionalității SVD/LSI) putem vedea utilizatorii ca vectori de caracteristici. Un vector utilizator e compus din caracteristici, câte una pentru fiecare obiect. Valorile folosite pentru a umple elementele sunt fie votul, , pe care utilizatorul l-a dat obiectului sau 0 dacă votul nu există.

În acest moment se poate calcula proximitatea dintre doi utilizatori și prin calcularea similarității dintre vectori, prin calcularea cosinusul unghiului format de cei doi vectori.

în care termenii cu radical de la numitor servesc pentru a normaliza voturile, astfel încât utilizatorii care votează mai multe titluri să nu fie a priori mai similari decât alți utilizatori. Sunt posibile si alte scheme de normalizare.

Ca și în cazul similarității de corelație Pearson, sumele după j sunt calculate l obiecte pentru care ambii utilizatori și și-au exprimat opiniile, , unde n este numărul total de obiecte din matricea utilizator-obiect R.

Experimental ([Breese et al., 1998]) s-a arătat că utilizarea măsurii (metricii) de similaritate de corelație Pearson pentru a estima proximitatea dintre utilizatori duce la rezultate mai bune decât similaritatea vector/cosinus.

O matrice de similaritate S, de dimensiune , poate fi acum generată, și va include toate valorile de similaritate dintre toți utilizatorii. Elementul de pe rândul i și coloana k conține similaritatea dintre utilizatorii și . Mai departe rândul i din matricea de similaritate va reprezenta similaritatea dintre utilizatorul și toți ceilalți utilizatori. Este evident că elementele de pe diagonală vor fi egale cu 0 pentru ca utilizatorul să nu fie selectat ca vecin al lui însuși.

3.2.3.2.1.3. Votare implicită

Votarea implicită este o extensie al algoritmului de corelație descris mai sus. A apărut din observația că atunci când sunt puține voturi, pentru utilizatorul activ sau utilizatorul pasiv, algoritmul de corelație nu va funcționa bine deoarece folosește doar voturile din intersecția obiectelor pentru care au votat ambii utilizatori (). este un set de obiecte pentru care a votat utilizatorul activ a iar este un set de obiecte pentru care utilizatorul j a votat. Dacă presupunem valori implicite ale votului pentru obiecte pentru care nu avem voturi explicite, atunci se poate realiza potrivirea folosind reuniunea obiectelor votate (), în care valoarea implicită a votului este folosită în formula pentru calcularea ponderilor obiectelor neobservate.

Mai mult, putem presupune aceeași valoare implicită d a votului pentru un număr k de obiecte pe care nici un utilizator nu le-a votat. Și aceasta, pentru că, presupunem că există un număr de obiecte pe care utilizatorul nu le-a votat dar pe care le-ar vota. În majoritatea cazurilor, valoarea d va reflecta o preferință neutră sau negativă pentru obiecte neobservate.

în care reprezintă acum reuniunea obiectelor pentru care utilizatorul activ sau cel pasiv au votat, iar .

În aplicațiile reale, cu votare implicită, un vot pentru un obiect observat indică o preferință pozitivă (de exemplu, vizitarea paginii Web ia valoarea 1). În acest caz, votul implicit poate lua valoarea asociată cu „pagina nu a fost vizitată”, adică valoare 0. Votarea implicită joacă rolul de extindere a setului de date pentru fiecare utilizator cu valori reale pentru datele care lipsesc.

3.2.3.2.1.4. Frecvența utilizator inversă

În aplicațiile care folosesc similaritatea vectorilor din domeniul recuperării informațiilor, frecvențele cuvintelor sunt de obicei modificate de frecvența document inversă. Ideea este de a reduce ponderile pentru cuvintele ce apar în mod frecvent, modelând intuiția că ele sunt mai puțin semnificative în identificarea temei (subiectului) documentului, în timp ce cuvintele care apar cu o frecvență mai mică, sunt mai importante pentru descrierea subiectului. Putem aplica o transformare similară cu voturile din baza de date pentru filtrare colaborativă, pe care o denumim frecvența utilizator inversă. Ideea este că obiecte care sunt plăcute de mulți utilizatori nu sunt folositoare în captarea similarității.

Se definește , în care este numărul de utilizatori ce au votat pentru obiectul j, iar n este numărul total de utilizatori din baza de date. Facem observația că dacă toți utilizatorii votează pentru obiectul j atunci .

Pentru a aplica frecvența utilizator inversă, folosind algoritmul de similaritate al vectorilor, folosim votul transformat din ecuația (3). Votul transformat este votul original multiplicat cu factorul . În cazul corelației, modificăm ecuația (2) astfel încât să fie tratată ca o frecvență și unui obiect cu mai mare îi este atribuită o pondere mai mare în calculul corelației. Ponderea corelației relevantă calculată cu frecvența inversă este:

3.2.3.2.2. Generarea vecinătăților

În acest punct al procesului de recomandare este necesar să se facă distincția unui singur utilizator, numit utilizator activ, pentru care se dorește să se genereze predicții. Pentru utilizatorul activ se generează vecinătatea lui de utilizatori. Generarea vecinătăților, care se bazează pe matricea de similaritate S se poate implementa prin mai multe metode:

3.2.3.2.2.1. Schema bazată pe centru

Această schemă creează o vecinătate de dimensiune l pentru utilizatorul activ prin selectarea din matricea S (și mai precis de pe linia care corespunde utilizatorului activ) a acelor utilizatori care au cele mai mari l valori de similaritate cu utilizatorul activ.

3.2.3.2.2.2. Schema vecinătății agregate

Această schemă creează o vecinătate de utilizatori, dar nu prin identificarea utilizatorilor care sunt apropiați de utilizatorul activ, ci prin găsirea utilizatorilor care sunt apropiați de centroidul vecinătății curente.

Schema vecinătății agregate formează o vecinătate de dimensiune l prin alegerea utilizatorului care este cel mai apropiat de utilizatorul activ . Cei doi utilizatori vor forma o vecinătate și selectarea următorului vecin se va baza pe această vecinătate. Procedura de selecție a celorlalți vecini continuă în felul următor: presupunând că, la un anumit moment, vecinătatea curentă, N, conține h utilizatori, unde în mod evident , schema vecinătății agregate va calcula centroidul a vecinătății curente:

În mod evident, centroidul este calculat din h utilizatori incluși în vecinătatea curentă N și este un vector (asemănător cu vectorii care reprezintă utilizatorii). Un nou utilizator, , care nu aparține vecinătății curente, , va fi selectat ca următor vecin dacă este cel mai apropiat de centroidul . În acest caz, vecinătatea va include acum utilizatori și centroidul trebuie recalculat pentru aceștia. Procesul continuă până când dimensiunea vecinătății devine l sau .

Ca o concluzie, schema vecinătății agregate permite tuturor utilizatorilor să afecteze formarea vecinătății, pe măsură ce sunt selectați și adăugați. Această schemă s-a dovedit a fi foarte eficientă în cazurile matricelor foarte rare.

3.2.3.3. Generarea recomandărilor și a predicțiilor

Pasul final în procesul de recomandare este de a produce fie o predicție, care va fi o valoare numerică reprezentând opinia prezisă a utilizatorului activ, fie o recomandare care este exprimată ca o listă care conține primele N obiecte pe care utilizatorul le va aprecia mai mult. În ambele cazuri, rezultatul final se bazează pe vecinătăți de utilizatori.

3.2.3.3.1. Generarea predicției

În general, sarcina filtrării sociale este de a realiza predicții despre voturile unui utilizator particular (pe care îl voi numi utilizator activ) dintr-o bază de date cu voturi ale utilizatorilor, dintr-un eșantion de alți utilizatori.

În algoritmii de filtrare socială bazați pe memorie, realizăm predicția voturilor utilizatorului activ (indice a) pe baza informațiilor parțiale cu privire la utilizatorul activ și un set de ponderi calculate din baza de date cu utilizatori.

Predicția este o valoare numerică, , care reprezintă opinia prezisă a utilizatorului activ despre obiectul . Este o condiție necesară ca obiectul să nu aparțină mulțimii de obiecte pentru care utilizatorul activ și-a exprimat opinia (să nu fi fost votat). Predicția generată de sistemul de recomandare trebuie să fie în aceeași scară numerică, ca toate celelalte voturi din matricea utilizator-obiect inițială, R.

Generarea predicției necesită ca o vecinătate de utilizatori, notată cu N, de dimensiune l, să fi fost deja formată pentru utilizatorul activ, . Scorul de predicție, , pe obiectul , pentru utilizatorul se calculează astfel:

în care reprezintă similaritatea (cum este exprimată în matricea de similaritate S, ) dintre utilizatorul activ și toți utilizatorii, , cu , care aparțin vecinătății utilizatorului activ. Din cei l utilizatori, care formează vecinătatea utilizatorului activ, vor fi incluși în sumă doar cei care au votat pentru obiectul .

O altă formulă pentru scorul de predicție este:

,

în care k reprezintă un factor de normalizare pentru ca suma valorilor absolute ale ponderilor să fie 1.

O extensie, care se numește amplificarea cazurilor ([Breese et al., 1998]), poate fi aplicată, ca o transformare a similarităților utilizate în formula predicției filtrării sociale.

Această transformare amplifică similaritățile care sunt apropiate de 1 și scade importanța similarităților cu valori mici. O valoare tipică pentru este 2,5.

3.2.3.3.2. Generarea recomandării primelor-N

Recomandarea este o listă de N obiecte pe care utilizatorul activ, , le va plăcea cel mai mult. Obiectele care apar în listă nu trebuie să fi fost votate de utilizatorul activ.

3.2.3.3.2.1. Recomandarea celui mai frecvent obiect

În această schemă de recomandare se parcurge vecinătatea N, a utilizatorului activ, și se calculează frecvența obiectelor pe care fiecare vecin al său le-a cumpărat sau le-a votat. După ce au fost luați în calcul toți vecinii și au fost calculate toate frecvențele, sistemul va exclude obiectele care au fost votate de către utilizatorul activ, va sorta obiectele în funcție de frecvență și va da cele mai frecvente N obiecte, ca o recomandare pentru utilizatorul activ. Recomandarea obiectului celui mai frecvent e utilizată, în mod uzual, în combinație cu schema de votare binară.

3.2.3.3.2.2. Recomandare bazată pe reguli de asociere

Presupunem că există n obiecte, , în matricea inițială utilizator-obiect, R.

O tranzacție este definită ca o mulțime de obiecte care sunt votate sau cumpărate împreună. O regulă de asociere între două mulțimi de obiecte, și , astfel încât și , afirmă că dacă obiectele din mulțimea sunt prezente în tranzacția T, atunci e mare probabilitatea ca obiectele din mulțimea să fie de asemenea prezente în T. O regulă de asociere de această formă se notează . Calitatea regulii de asociere se evaluează de obicei prin calcularea suportului și a încrederii.

Suportul, s, al unei reguli măsoară frecvența de apariție a tiparului regulii . Regulile cu suport mare sunt importante, deoarece descriu o populație suficient de mare de obiecte.

Încrederea, c, a unei reguli, este o măsură a tăriei implicației . Regulile cu încredere mare sunt importante, deoarece predicția lor asupra rezultatului este, în mod normal, suficient de precisă.

După ce au fost definite regulile de asociere, se va prezenta în continuare modul în care pot fi folosite acestea pentru a genera recomandări primele-N. Pentru fiecare utilizator, din cei l utilizatori care aparțin vecinătății utilizatorului activ, se creează o tranzacție care conține toate obiectele ce au fost cumpărate sau votate în trecut. Având aceste tranzacții ca intrare, se poate folosi un algoritm de descoperire a regulilor de asociere pentru a găsi toate regulile care satisfac anumite constrângeri pentru suport și încredere. Pentru a localiza primele N obiecte recomandate pentru utilizatorul activ , se procedează în felul următor:

Mai întâi se disting regulile pe care le suportă. Prin suportul utilizator pentru o regulă, se indică faptul că utilizatorul activ a votat (sau cumpărat) toate obiectele din partea stângă a regulii. Se poate acum colecta mulțimea de obiecte unice care sunt prezise de regulile selectate și în același timp nu au fost cumpărate de utilizatorul activ. Se pot sorta aceste obiecte pe baza încrederii regulilor care au fost utilizate pentru a le prezice. Obiectele prezise de regulile cu încredere mai mare sunt poziționate primele. Pentru obiectele care apar în mai multe reguli, se selectează și se utilizează regula cu cea mai mare încredere. În final se selectează primele N cele mai bine poziționate obiecte ca mulțime de recomandare ([Sarwar et al., 2000]).

3.2.4. Metode alternative

3.2.4.1. Filtrare socială bazată pe obiect

O abordare diferită, apărută recent ([Sarwar et al., 2001], [Karypis, 2001]), este aceea care se bazează pe relațiile dintre obiecte și nu pe relațiile (legăturile) dintre utilizatori, ca în filtrarea socială clasică. În algoritmul filtrării sociale bazate pe obiecte se pornește de la analiza mulțimii de obiecte, , pe care utilizatorul activ, , le-a votat, se calculează cât de similare sunt cu obiectul țintă și apoi se selectează primele k cele mai similare obiecte , pe baza similarităților care le corespund . Predicțiile pot fi calculate prin folosirea mediei ponderate a voturilor utilizatorului activ pentru obiecte similare.

Primul pas în această nouă abordare este reprezentarea. Scopul (la fel ca în algoritmul de filtrare socială clasică) este de a reprezenta datele într-o manieră organizată. Pentru aceasta este nevoie de matricea utilizator-obiect R, , în care elementul conține votul utilizatorului (rândul i din matricea R) pentru obiectul (coloana j din matricea R), sau mai simplu, valoarea 1 dacă utilizatorul a cumpărat obiectul și 0 dacă nu a cumpărat.

La următorul pas se calculează similaritatea obiect. Ideea, în această etapă, este de a izola utilizatorii care au votat două obiecte și , apoi de a aplica o tehnică de calcul a similarității pentru a determina similaritatea. Au fost propuse mai multe tehnici pentru a calcula similaritatea. La fel ca în cazul filtrării sociale, se pot aplica similaritatea corelației Pearson sau similaritatea cosinus/vector.

În cazul similarității de corelație Pearson, diferența este că nu se folosesc voturile pe care doi utilizatori le-au oferit pentru un obiect comun, ci voturile pe care două obiecte, și (a căror similaritate vrem să o calculăm), le-au primit de la același utilizator, . Cum este de așteptat, calculul se face pentru l utilizatori, , care și-au exprimat opiniile pentru ambele obiecte:

Similaritatea cosinus/vector a obiectelor și se exprimă:

,

unde și sunt voturile pe care obiectele și le-au primit de la utilizatorul . În mod evident, sumele după i sunt calculate numai pentru l utilizatori, unde , care și-au exprimat opiniile pentru ambele obiecte.

3.2.4.1.1. Similaritatea cosinus ajustată

Similaritatea cosinus ajustată e o altă modalitate de a calcula similaritatea dintre obiecte. Este folosită în mod specific pentru filtrarea socială bazată pe obiect și încearcă să compenseze diferențele din scara de votare pentru diferiți utilizatori.

Similaritatea cosinus ajustată pentru obiectele și este dată de:

,

în care și sunt voturile pe care și le-au primit de la utilizatorul , iar este media voturilor utilizatorului .

În cazul în care utilizatorii nu oferă voturi explicite pentru obiecte, se poate face distincția între utilizatorii care au cumpărat un obiect (vot 1) și cei care nu au cumpărat (vot 0), ceea ce conduce la o schemă de vot binară. Similaritatea dintre perechile de obiecte și poate fi bazată pe probabilitatea condiționată a cumpărării obiectului știind că obiectul a fost cumpărat.

Similaritatea bazată pe probabilitatea condiționată a obiectelor și , , este exprimată ca numărul de utilizatori care au cumpărat ambele obiecte și împărțit la numărul total de utilizatori care au cumpărat .

Aici, reprezintă numărul de utilizatori care au cumpărat obiectele din mulțimea X, de aceea se referă la numărul de utilizatori care au cumpărat ambele obiecte și . De obicei ceea ce conduce la o relație asimetrică (și ca rezultat similaritatea bazată pe probabilitate condiționată trebuie folosită cu grijă). Câteva sugestii despre cum poate fi îmbunătățită calitatea similarității bazate pe probabilitatea condiționată, privind obiectele care sunt cumpărate frecvent și utilizatorii care tind să evalueze puține obiecte, fiind astfel indicatori mai buni, se găsesc în lucrarea ([Karypis, 2001]).

După ce s-au calculat similaritatea dintre toate obiectele din matricea inițială R, pasul final al procedurii de filtrare socială este de a izola l obiecte , cu , care prezintă cea mai mare similaritate cu obiectul , pentru care dorim o predicție. Se formează apoi vecinătatea de obiecte, N, și apoi se continuă cu generarea predicției. Modalitatea uzuală este de a folosi sumă ponderată. Metoda generează o predicție pentru obiectul pentru utilizatorul activ, , prin calcularea sumei voturilor date de utilizatorul activ obiectelor care aparțin obiectului . Aceste voturi sunt ponderate de similaritățile corespunzătoare, , dintre obiectul și obiectul , cu , luat din vecinătatea N:

.

3.2.4.2. Sisteme de recomandare care folosesc metode hibride

Metodele hibride combină tehnici de filtrare socială cu algoritmi de filtrare după conținut. Aceste metode sunt utilizate pentru a folosi avantajele ambelor abordări și în același timp de a reduce dezavantajele.

3.2.4.2.1. Filtrare socială amplificată de conținut (Content-Boosted Collaborative Filtering)

Ideea folosită în filtrarea socială și după conținut ([Melville et al., 2001]) este de a folosi un predictor bazat pe conținut pentru a îmbunătăți datele utilizator existente, exprimate prin matricea utilizator-obiect R, și apoi de a oferi sugestii personalizate prin folosirea filtrării sociale. Predictorul bazat pe conținut e aplicat pe fiecare rând din matricea inițială utilizator-obiect, care corespunde fiecărui utilizator și generează o pseudo-matrice utilizator-obiect PR. La sfârșit, fiecare rând, i, care aparține pseudo-matricei PR conține voturile oferite de utilizatorul , atunci când sunt disponibile, și voturile prezise de predictorul bazat pe conținut, în caz contrar:

în care, reprezintă votul utilizatorului pentru obiectul iar reprezintă votul generat de predictorul bazat pe conținut.

Pseudo-matricea utilizator-obiect, PR, este o matrice densă plină. Se poate folosi filtrarea socială folosind matricea PR (în loc de R) Similaritatea dintre utilizatorul activ și , se poate calcula ca în filtrarea socială clasică, diferența fiind că se folosesc valorile din matricea PR în loc de cele matricea R.

3.2.4.2.2. Combinarea filtrelor sociale cu cele bazate pe conținut

Această abordare combină metode de filtrare diferite aplicând pe câte o componentă fiecare metodă și apoi realizând predicția pe media ponderată a predicțiilor generate de componente ([Claypool et al., 1999]). În versiunea cea mai simplă metoda include două componente: o componentă generează predicția folosind filtrarea bazată pe conținut, iar a doua componentă folosește algoritmul clasic de filtrare socială. La început, când numărul de voturi este limitat și de aceea nu se pot forma vecinătăți adecvate de utilizatori similari, componenta bazată pe conținut are pondere mai mare. Cu cât crește numărul de utilizatori și sunt colectate mai multe opinii ale utilizatorilor, crește ponderea filtrării sociale, îmbunătățind acuratețea totală (globală) a predicției. Trebuie precizat că această abordare nu este o abordare strict hibridă, în sensul în care ambele componente – socială și bazată pe conținut – sunt separate, fără să se influențeze una pe alta. Acest lucru permite ca sistemul să beneficieze de avantajele îmbunătățirii fiecărei componente, deoarece nu există interdependențe. Mai mult, această abordare este mai ușor extensibilă, se pot adăuga metode de filtrare suplimentare, permițând fiecărei metode să fie adăugată ca o componentă separată care contribuie la media ponderată cu o anume pondere.

Presupunând că sistemul conține doar un filtru social și un filtru bazat pe conținut, se va discuta în continuare modalitatea de combinare a predicțiilor celor două filtre.

S-a arătat în literatura extragerii și recuperării informației că o combinație liniară a scorurilor dată de agenți diferiți de extragere de informații poate îmbunătăți performanța sistemelor individuale pe documente noi. Se poate folosi aceeași idee înlocuind agenții de extragere de informații cu componente de filtrare și documentele cu obiectele pentru care dorim să generăm predicții.

Pe baza acestor ipoteze, se poate combina predicția filtrării sociale (generată de prima componentă din sistem) cu predicția bazată pe conținut (generată de a doua componentă din sistem) folosind o medie ponderată. Partea interesantă în acest proces este găsirea ponderilor care se reflectă în calitatea predicției finale.

Pentru a obține aceasta, se folosește următoarea procedură:

– se pornește cu o pondere egală pentru ambele componente;

– pe măsură ce utilizatorul oferă voturi pentru diferite obiecte, se colectează predicțiile generate de ambele metode pe aceste obiecte și se calculează eroarea medie absolută (va fi prezentată în secțiunea metrici de evaluare) a acelor predicții în comparație cu voturile reale date de utilizator;

– se ajustează separat ponderea fiecărei componente, modificând contribuția fiecărei componente, astfel încât să se minimizeze eroarea din trecut;

– la început erorile se modifică rapid dar pe măsură ce numărul de voturi și predicții crește, ponderile se modifică din ce în ce mai rar.

3.2.4.3. Filtrarea socială ca o problemă de clasificare în învățarea automată

Billsus și Pazzani ([Billsus, Pazzani, 1998]) au propus o soluție în care filtrarea socială e văzută ca o problemă de clasificare. Pe baza unei mulțimi de voturi ale utilizatorilor pentru obiecte, se încearcă să se inducă un model pentru fiecare utilizator care ar permite clasificarea obiectelor nevăzute în două sau mai multe clase, fiecare corespunzând diverselor puncte din scara de gradare. Pentru o problemă binară (scară de gradare binară), mulțimea de clase, C, va include două instanțe de clase și .

Scopul inițial al acestei abordări este de a transforma mulțimea de voturi pentru obiecte, corespunzând matricei inițiale utilizator-obiect R, într-un format în care orice algoritm de învățare supervizată poate fi aplicat pentru a induce o funcție de forma . Utilitatea acestei funcții este reprezentată de faptul că poate clasifica orice obiect nou, nevăzut (din mulțimea U) într-o clasă adecvată C.

Pentru a obține o astfel de transformare, care ar modifica mulțimea de date adecvată folosirii unui algoritm de învățare supervizată, trebuie parcurși următorii pași în perioada de instruire:

– pornind de la matricea originală utilizator-categorie R se asociază câte un clasificator pentru fiecare utilizator , unde . Dacă utilizatorul a votat obiectul cu , atunci se poate defini un exemplu de instruire astfel:

În mod evident, valorile folosite pentru caracteristici, , cu și , sunt voturile pentru care toți utilizatorii, cu excepția lui le-au dat obiectului , în timp ce , votul utilizatorului pentru obiectul este folosit ca etichetă pentru exemplul de instruire.

– deoarece utilizatorilor nu li se cere să-și exprime opinia despre toate obiectele, în consecință multe din valorile caracteristicilor vor lipsi. Dacă algoritmul de învățare nu poate gestiona lipsa caracteristicilor, trebuie aplicată un tip de transformare: fiecare utilizator, pentru care reprezentarea anterioară în exemplul de antrenare a fost doar votul pentru obiect, va fi reprezentat de maxim r caracteristici booleene, r fiind numărul de puncte folosit în scara de gradare. Caracteristicile booleene rezultate, care compun fiecare utilizator , cu , și sunt de forma „votul utilizatorului a fost ”, unde . Dacă notăm caracteristica „Votul utilizatorului a fost ” prin forma mai compactă „”, atunci noul exemplu de instruire extins, , reprezentând faptul că utilizatorul a votat obiectul cu , este:

Primele r caracteristici corespund utilizatorului care votează obiectul cu , următoarele r caracteristici corespund utilizatorului care votează obiectul cu , și așa mai departe. Se pot atribui valori caracteristice booleene pentru toate aceste caracteristici noi. În mod evident, caracteristica „votul utilizatorului a fost ” ia valoarea booleană 1 dacă utilizatorul a votat obiectul cu și valoarea booleană 0 în celelalte cazuri. Din r caracteristici pentru fiecare utilizator, doar una va avea valoarea 1, în timp ce celelalte vor avea valoarea 0 (deoarece există un singur vot pentru fiecare obiect). La sfârșitul acestei proceduri vor rezulta exemple de instruire de această formă pentru utilizatorul , câte una pentru fiecare obiect pe care l-a votat. Aceste exemple de instruire pot fi acum colectate într-o singură matrice de instruire, , care poate fi utilizată în următoarele etape ale algoritmului. Trebuie notat că este necesar să se genereze matrice distincte de instruire pentru fiecare utilizator, cu , pentru care dorim să generăm predicții personale.

– această reprezentare va duce cu siguranță la un număr foarte mare de caracteristici. De aceea trebuie aplicați câțiva pași de preprocesare înainte de a da matricea ca intrare a unui algoritm de învățare supervizată. Este necesar să se elimine toate caracteristicile care nu sunt necesare, se calculează apoi SVD-ul matricei rezultate (descompunerea în valori singulare) și se selectează numărul de dimensiuni k care se păstrează, rezultând o matrice de dimensiune , , și matricele și .

Odată cu terminarea acestor transformări se încheie etapa de instruire a modelelor. Aceste modele vor permite clasificarea obiectelor noi, nevăzute, pentru utilizatorii , cu . Este important de precizat că trebuie antrenate modele diferite pentru diferiți utilizatori.

În continuare se poate trece la etapa de predicție, în care se va alege un utilizator, numit utilizator activ, , și se generează o predicție a votului pe care ar fi dat-o unui obiect specific . Această predicție poate fi obținută dacă obiectul, pentru care dorim o predicție, poate fi reprezentat sub forma exemplelor de instruire extinse, care au fost folosite pentru a antrena algoritmul de învățare automată. Singura diferență în reprezentarea folosită în etapa de predicție va fi că eticheta clasei va lipsi, deoarece este exact ceea ce dorim să prezicem și anume clasa căreia obiectul îi aparține, ceea ce reprezintă de fapt votul pe care l-ar da utilizatorul activ . De aceea reprezentarea obiectului , ca un exemplu folosit într-un algoritm de învățare automată pentru a genera predicția clasei, este următoarea:

Înainte de a oferi algoritmului de învățare supervizată, exemplul , care reprezintă obiectul , trebuie scalat în spațiul k-dimensional:

După cum se observă, vectorii singulari din matricea și valorile singulare din matricea , ambele generate în etapa de antrenare pentru utilizatorul activ , sunt din spațiul k-dimensional.

Vectorul rezultat poate fi utilizat ca intrare pentru algoritmul de învățare automată. Ieșirea algoritmului va reprezenta predicția finală a votului pe care utilizatorul activ l-ar da obiectului .

3.2.4.4. Folosirea SVD/LSI pentru generarea predicției

În secțiunea precedentă s-a prezentat modul în care poate fi folosită o tehnică de reducere a dimensionalității (de exemplu SDV/LSI) pentru a face mai densă matricea originală utilizator-obiect R. Au fost aplicate tehnici de reducere a dimensionalității doar în etapa de reprezentare (apoi s-a continuat cu tehnici de filtrare convenționale în etapele de formare a vecinătăților și de generare a predicției). Totuși este posibil să se extindă aplicarea SVD/LSI și în procesul de recomandare ([Sarwar, 2001]). Se va prezenta în continuare modalitatea prin care pot fi folosite tehnicile SVD/LSI în sistemul de recomandare, ce va duce în final la generarea predicției utilizatorului activ pentru obiectul .

Pașii care trebuie aplicați sunt următorii:

1. Pașii de la 1 la 4 rămân la fel ca la tehnicile de reducere a dimensionalității, descriși în secțiunea de preprocesare de la filtrarea socială clasică. După aplicarea acestor pași, vor rezulta produse de matrice și care reprezintă m pseudo-utilizatori și n pseudo-obiecte în spațiul de caracteristici de dimensiune k.

2. Se calculează similaritatea dintre utilizatorul activ și obiectul prin calcularea produsului dintre rândul a din matricea și coloana j din matricea . Produsul scalar (interior) poate fi calculat cu ajutorul metricei de similaritate vector/cosinus.

3. În pasul final se generează predicția care corespunde votului așteptat al utilizatorului activ pentru obiectul prin însumarea mediei pe rând cu similaritatea calculată anterior. Formal predicția se exprimă astfel:

După cum se poate vedea, prima diferență când se utilizează SVD/LSI pentru a genera predicții se află la pasul 2. Acolo se calculează similaritatea dintre utilizatorul activ și obiectul . Aceasta este în contradicție cu calculul similarității în cazul algoritmului de filtrare socială care implică doar utilizatori. A doua diferență se găsește la pasul 3 când este generată predicția finală despre votul utilizatorului activ (în acest caz nu este o medie ponderată ca în cazul algoritmului clasic de filtrare socială).

3.2.4.5. Metode bazate pe model

Dacă vedem sistemele de recomandare printr-o perspectivă probabilistică, atunci filtrarea socială poate fi văzută ca un simplu calcul a valorii așteptate a votului unui utilizator pentru un obiect, având datele colectate despre acel utilizator.

Pentru utilizatorul activ se dorește să se prezică voturile pentru obiectele , cu pentru care nu și-a exprimat opinia. Presupunem că voturile urmăresc o scară numerică de la 1-rău până la r-excelent. Vom avea:

în care expresia probabilității reprezintă probabilitatea ca utilizatorul activ să dea valoarea particulară ri pentru obiectul , având valorile votului pentru alte obiecte, notate , unde .

Se vor prezenta în continuare modele alternative probabilistice pentru filtrarea socială.

3.2.4.5.1. Diagnosticarea personalității

A fost propusă în [Pennock et al., 2000]. Fiecărui utilizator , cu care și-a exprimat opinia despre obiecte, cu , i se atribuie un tip de personalitate care poate fi descris ca un vector de forma:

unde , cu , corespund voturilor adevărate ale utilizatorului pe obiecte pentru care și-a exprimat opinia. Se poate observa distincția dintre voturile adevărate și voturile raportate. Voturile adevărate încapsulează opinia utilizatorilor despre obiecte și nu sunt accesibile direct de către sistemul de recomandare. Pe de altă parte voturile raportate sunt acelea pe care utilizatorii le oferă sistemului de recomandare. Se poate presupune că voturile pe care utilizatorii le raportează sistemului de recomandare includ zgomot gausian, ceea ce înseamnă că același utilizator poate raporta diferite voturi în ocazii diferite, depinzând de context. Statistic se poate firma că votul raportat al utilizatorului pentru obiectul urmărește o distribuție normală și independentă de medie , unde este votul adevărat al utilizatorului pentru obiectul .

în care este un parametru liber, x este valoarea votului pe care utilizatorul a raportat-o sistemului de recomandare, y este valoarea adevărată a votului pe care utilizatorul ar fi raportat-o dacă nu ar exista zgomot.

Având tipul de personalitate al utilizatorului, voturile lui se presupun a fi independente.

Presupunem mai departe că distribuția tipurilor de personalitate în matricea utilizator-obiect R este reprezentativă pentru distribuția personalităților în populația țintă de utilizatori. Pe baza acestei presupuneri, putem trage concluzia că probabilitatea anterioară (prior probability) , cu care utilizatorul activ votează obiectele în concordanță cu vectorul de voturi v , e dată de frecvența cu care ceilalți utilizatori votează în concordanță cu v. Dacă se definește ca o variabilă aleatoare care poate lua una din m valori posibile, , fiecare cu probabilitatea 1/m, atunci:

Fiecare din cele m valori posibile, , corespunde vectorului de votare raportat pentru utilizatorul , unde și .

Prin combinarea celor două ecuații anterioare se poate aplica legea lui Bayes și se poate calcula probabilitatea ca utilizatorul activ să fie de același tip de personalitate cu orice al utilizator , având voturile raportate (ce includ și zgomotul gausian):

După calcularea acestei valori pentru fiecare utilizator , putem calcula distribuția de probabilitate pentru voturile utilizatorului pentru obiectele nevăzute . Această distribuție de probabilitate corespunde predicției care e generată de sistemul de recomandare și reprezintă votul așteptat al utilizatorului activ pentru obiectul :

Diagnosticarea personalității poate fi gândită ca o metodă de clusterizare cu exact un utilizator pe cluster, deoarece fiecare utilizator este reprezentat de un singur tip de personalitate și se încearcă să se realizeze o legătură între utilizatorul activ și clusterele cu tipurile de personalitate.

Această abordare poate fi văzută ca o rețea bayesiană naivă, cu structura unui model de diagnoză clasic: observăm voturile și calculăm probabilitatea ca fiecare tip de personalitate să fie cauza acelor voturi. Voturile pot fi privite ca „simptome” în timp ce tipurile de personalitate pot vi văzute ca „boli” care duc la acele simptome în modelul de diagnoză.

3.2.4.5.2 Modele cluster

Un posibil model probabilistic pentru filtrare colaborativă poate fi un clasificator bayesean. Ideea este că există grupuri sau tipuri de utilizatori ce au preferințe și gusturi comune. Preferințele privind diferitele obiecte (exprimate ca voturi) sunt independente.

Termenul din stânga reprezintă probabilitatea de captare a specificului (a ceaa ce este caracteristic) unei clase particulare și a unui set complet de valori de vot.

Parametrii modelului, probabilitățile de apartenență la o clasă și probabilitățile condiționale ale voturilor dintr-o clasă dată sunt estimate dintr-un set de valori de instruire ale voturilor utilizatorilor.

3.2.4.5.3. Modelul bazat pe rețele bayesiene

Această abordare [Breese et al., 1998] se bazează pe utilizarea unei rețele bayesiene pentru fiecare utilizator pentru care se dorește să se genereze o predicție. La început se construiește rețea bayesiană cu noduri separate care reprezintă obiecte diferite din matricea utilizator-obiect R. Starea fiecărui nod se referă la valorile posibile ale votului pentru obiectul la care se referă. Trebuie introdusă o stare suplimentară care corespunde cazurilor în care utilizatorul, căruia îi aparține rețeaua bayesiană, nu și-a exprimat opinia (votul) despre anumite obiecte.

Se poate selecta un utilizator activ și folosind la intrare voturile pe care le-a oferit pentru toate obiectele, se aplică un algoritm de învățare a modelului rețelei bayesiene, pe rețeaua bayesiană care îi corespunde. Algoritmul de învățare va căuta diverse structuri de modele în termenii dependenței fiecărui obiect. În rețeaua care va fi selectată, fiecare obiect va avea o mulțime de obiecte părinte, care sunt cei mai buni predictori pentru valorile de vot ale obiectului. Fiecare tabel cu probabilități condiționate atașat nodurilor va fi reprezentat de un arbore de decizie care încapsulează probabilitățile condiționate pentru acel nod.

Exemplu:

Figura 3.2.1. Un arbore de decizie pentru cazul în care o persoană a vizionat „Melrose Place” cu părinți „Friends” și „Beverly Hills 90210”. În partea de jos a arborelui sunt probabilitățile de a fi fost vizionat sau nu „Melrose Place” condiționat de vizionarea unui serial părinte.

3.2.5. Clasificarea algoritmilor pentru sistemele de recomandare

În această secțiune se vor prezenta algoritmi de filtrare în diverse categorii pe baza unor criterii diverse.

3.2.5.1. Algoritmi bazați pe memorie și algoritmi bazați pe model

Algoritmii de filtrare socială bazați pe model folosesc de obicei probabilistică, procesul de recomandare este un calcul al valorii așteptate a votului când se cunosc valorile voturilor din trecut pentru alte obiecte. Rezultatul se obține prin dezvoltarea unui model al voturilor utilizator (numit de obicei profilul utilizatorului). Dezvoltarea unui asemenea model se bazează în principal pe matricea utilizator-obiect R, dar după care modelul este antrenat, matricea R nu mai este necesară pentru generarea recomandării. Avantajul acestei abordări este faptul că datorită modelului utilizator compact se elimină nevoia unei matrice utilizator-obiect foarte mari pentru a face recomandări. Acest lucru conduce la sisteme cu cerințe de memorare scăzute și generare rapidă de recomandări. Totuși etapa de construcție a modelului, care este echivalentă cu formarea vecinătăților în algoritmii de filtrare socială simpli, este executată offline deoarece modelul utilizator este greu de construit și menținut. În consecință, modelul este recalculat doar când un număr suficient de schimbări au apărut în matricea utilizator-obiect (de exemplu odată pe săptămână).

Algoritmii de filtrare socială bazați pe model includ:

– filtrarea socială văzută ca o problemă de clasificare din învățarea automată [Billsus, Pazzani, 1998];

– diagnoza personalității [Pennock et al., 2000];

– modelul rețelei bayesiene [Breese et al., 1998];

Pe de altă parte algoritmii de filtrare bazați pe memorie generează predicțiile pe baza matricei originale utilizator-obiect R (sau pe baza matricei reduse prin metode SVD/LSI), care este menținută în memorie în timpul execuției procedurii. Rezultă cerințe de memorie mai mari și recomandări nu foarte rapide. Dar predicțiile sunt întotdeauna în conformitate cu cele mai curente voturi ale utilizatorilor. Nu este nevoie de o menținere offline.

Algoritmii de filtrare bazați pe memorie includ:

– algoritmul simplu de filtrare socială [Sarwar et al., 2000];

– filtrare socială bazată pe obiect [Sarwar et al., 2001];

– algoritmi care folosesc SVD/LSI pentru generarea predicției [Sarwar, 2001];

3.2.5.2. Algoritmi bazați pe corelație și algoritmi bazați pe învățare automată

Billsus și Pazzani au încercat ([Billsus, Pazzani, 1998]) să transforme formularea problemei de recomandare, cum e văzută de algoritmul de filtrare socială clasic, într-o problemă de învățare automată, unde pot fi aplicați algoritmi de învățare supervizați. Autorii au pornit de la presupunerea că în timp ce abordările bazate pe corelație par să funcționeze bine în domeniul specific, ele rezolvă problema recomandării într-un mod neconvențional care nu e sprijinit de o teorie solidă. Billsus și Pazzani privesc filtrarea socială ca o problemă de clasificare și folosind rețele neuronale, printre alte soluții alternative, induc un model de utilizator care e capabil să clasifice obiectele nevăzute în clase care corespund punctelor de pe scara de gradare.

Folosirea metodelor de învățare automată în filtrarea socială este limitată în ciuda faptului că pot avea ca rezultat algoritmi bine fondați teoretic și rezultatele acestora pot fi mai bune decât rezultatele abordărilor convenționale bazate pe corelație. Dintre algoritmii de filtrare prezentați, doar cel care folosește modelul rețelei bayesiene ([Breese et al., 1998]) își bazează rezultatele pe tehnici din învățare automată (mai precis folosește paradigmele rețelelor bayesiene și a arborilor de decizie).

3.2.5.3. Algoritmi hibrizi și algoritmi simpli

Algoritmii hibrizi sunt cei care folosesc idei din paradigme de filtrare diferite pentru a îmbunătăți rezultatele obținute de fiecare paradigmă împrumutată separat.

Filtrarea socială sprijinită de conținut (Content Boosted Collaborative Filtering) folosește o tehnică bazată pe conținut pentru a completa valorile lipsă ale voturilor din matricea inițială R. Folosește apoi filtrarea socială clasică pentru a obține predicția finală.

Combinarea ponderată a filtrării sociale cu filtrarea bazată pe conținut (Weighted Combination of Content-based and Collaborative Filtering) definește două componente de filtrare distincte. Prima componentă implementează filtrarea socială în timp ce a doua componentă implementează filtrarea bazată pe conținut. Predicția finală a votului este calculată ca o medie ponderată a celor două componente, în care ponderile aplicate sunt alese după cât de aproape este predicția fiecărei componente față de valoarea reală.

Filtrarea socială ca problemă de învățare automată folosește un algoritm de învățare supervizată pe date formulate și a căror dimensiune a fost redusă prin aplicarea LSI/SVD.

3.2.5.4. Algoritmi numerici și algoritmi nenumerici

Această clasificare evidențiază acei algoritmi de filtrare, care folosesc o metodă numerică pentru a genera predicțiile. Importanța folosirii unei metode numerice constă în faptul că se bazează pe un fundament matematic și nu e o metodă ad-hoc. Acești algoritmi sunt:

– filtrare socială ca problemă de clasificare din învățare automată și filtrare socială folosind LSI/SVD (LSI/SVD se folosește pentru a reduce dimensiunea reprezentării originale)

– diagnoza personalității, în care teoria probabilităților și legea lui Bayes sunt folosite pentru a calcula distribuțiile de probabilitate.

3.2.6. Metrici de evaluare

Au fost propuse și mai multe măsuri pentru a evalua performanțele diferiților algoritmi de filtrare folosiți în sistemele de recomandare. Sistemele care generează predicții trebuie considerate separat de sistemele ale căror ieșire este o recomandare de tip primele-N (top-N) și de aceea trebuie folosite scheme de evaluare distincte pentru fiecare caz. Discuția despre metrici de evaluare va fi împărțită în două categorii. Mai întâi vor fi prezentate metrici care se referă la cât de bună sau de rea este ieșirea. Apoi vor prezentate metrici care evaluează performanțele sistemului de recomandare în termeni de timp și spațiu necesare.

3.2.6.1. Metrici care evaluează calitatea predicției

O predicție este o valoare numerică care corespunde (conform sistemelor de recomandare) votului al utilizatorului activ . De obicei se evaluează sistemul de recomandare care generează predicții după două mărimi: acuratețe și acoperire.

3.2.6.1.1. Acuratețe

Există două abordări generale, una bazată pe acuratețe statistică și cealaltă bazată pe acuratețea suportului deciziei:

3.2.6.1.1.1. Metrici de acuratețe statistică

Metricile de acuratețe statistică măsoară cât de aproape este valoarea generată de sistemul de recomandare, (reprezintă valoarea așteptată a votului utilizatorului pentru obiectul ) de valoarea actuală dată de același utilizator pentru același obiect. Cea mai utilizată metrică de acuratețe statistică este eroarea medie absolută. (MAE – Mean Absolute Error).

Eroarea medie absolută măsoară deviația predicției generate de sistemul de recomandare față de valoarea adevărată a votului, specificată de utilizator. MAE este măsurată doar pentru acele obiecte, pentru care utilizatorul și-a exprimat opinia. Numărul de obiecte este , cu deoarece utilizatorii nu sunt obligați să-și exprime preferințele pentru toate cele n obiecte disponibile. Predicțiile generate pentru aceste obiecte sunt , cu , în timp ce voturile actuale oferite de utilizator sunt notate cu , cu . Eroarea medie absolută pentru utilizatorul este calculată prin însumarea erorilor absolute a celor perechi vot actual – predicție și apoi calcularea medie. Formal se exprimă astfel:

Eroarea medie absolută totală poate fi calculată ca media erorilor absolute medii pentru toți utilizatorii, , cu , iar m este numărul total de utilizatori disponibili:

Eroarea medie absolută mică corespunde sistemelor de recomandare care prezic cu acuratețe mai bună voturile utilizatorilor.

3.2.6.1.1.2. Metrici de acuratețe a suportului deciziei

Aceste metrici evaluează cât de eficient este algoritmul de filtrare (folosit în sistemul de recomandare) la a ajuta utilizatorul în a distinge obiectele de calitate ridicată de restul obiectelor. Aceste metrici se bazează pe ipoteza că se folosește o schemă de vot binară. În cazul în care se folosește o altă schemă numerică de vot, trebuie realizată o conversie la scara de vot binară. Metricele de acuratețe a suportului deciziei trebuie folosite în cazurile în care nu suntem interesați de valoarea exactă a votului pentru un obiect specific, ci vrem să aflăm dacă utilizatorul îl va plăcea sau nu. Cea mai folosită metrică de acuratețe a suportului deciziei este sensibilitatea ROC.

Sensibilitatea ROC – care corespunde ariei de sub curba de operare a receptorului, numită și curba ROC, – este o măsură a puterii de diagnosticare a algoritmului de filtrare. O curbă ROC trasează sensibilitatea și specificitatea testului de filtrare în funcție de o variabilă separată X. Mai precis, trasează sensibilitatea specificitatea-1 (1-specificity) și se obține o mulțime de puncte prin modificarea pragului de scor de recomandare peste care un obiect specific va fi acceptat ca obiect bun. Pragul scorului de recomandare este reprezentat de x. Curba ROC se trasează între 0 și 1.

Sensibilitatea se referă la probabilitatea unui obiect bun, selectat în mod aleatoriu, de a fi votat ca bun și ca rezultat să fie acceptat de algoritmul de filtrare.

Specificitatea se referă la probabilitatea ca un obiect rău, selectat aleatoriu, să fie votat ca rău și ca rezultat să fie respins de algoritmul de filtrare.

Este important de precizat că există un compromis între sensibilitate și specificitate. Orice creștere a sensibilității va duce la o descreștere a specificității.

Aria de sub curba ROC (ce corespunde sensibilității ROC) crește pe măsură ce filtrul este capabil să detecteze mai multe obiecte bune și în același timp să respingă mai multe obiecte rele. O arie de 1 reprezintă un algoritm de filtrare perfect, în timp ce o arie de 0,5 reprezintă un filtru aleatoriu, care votează un obiect ca bun sau rău aleatoriu.

În mod evident, pentru a folosi sensibilitatea ROC ca o metrică care distinge obiecte bune de obiecte rele, trebuie să utilizăm o schemă de votare binară, care deja împarte obiectele în două categorii sau să transformăm schema de vot utilizată într-o schemă binară. Apoi metrica sensibilității ROC poate fi utilizată ca un indicator a cât de eficient este sistemul de recomandare în a sugera utilizatorului obiecte bune și de a descrie corect obiectele votate slab ca obiecte rele.

3.2.6.1.2. Acoperirea

Acoperirea este o măsură a procentului de obiecte pentru care algoritmul de filtrare poate oferi predicții. Nu sunt rare cazurile în care sistemul de recomandare nu este capabil să genereze predicții pentru anumite obiecte, deoarece datele sunt rare în matricea utilizator-obiect R sau datorită altor restricții, care sunt fixate în timpul rulării sistemului de recomandare. Aceste cazuri vor duce la valori de acoperire mici. O valoare de acoperire mică indică faptul că sistemul de recomandare nu va fi capabil să asiste utilizatorul cu multe obiecte pe care nu le-a votat, și pentru acest motiv utilizatorul va fi forțat să depindă de alte criterii pentru a le evalua. O acoperire mare indică faptul că sistemul de recomandare va fi capabil să ofere ajutor adecvat în selectarea obiectelor pe care utilizatorul le va plăcea.

Presupunem că este numărul de obiecte pentru care utilizatorul a oferit votul, și este numărul de obiecte pentru care sistemul de recomandare a fost capabil să genereze o predicție; . Acoperirea poate fi exprimată formal astfel:

Acoperirea totală este calculată ca acea parte de obiecte, pentru care a fost generată o predicție împărțit la numărul total de obiecte pe care toți utilizatorii disponibili le-au votat în matricea inițială utilizator-obiect R.

3.2.6.2. Metrici pentru evaluarea calității recomandărilor primele-N

În recomandarea primele-N, sistemul oferă la ieșire o listă de N obiecte pe care utilizatorul se presupune că le va găsi interesante. Obiectivul în evaluarea acestor sisteme este de a determina valoarea listei, acest lucru însemnând că se vrea să se afle dacă utilizatorul este interesat în votarea sau cumpărarea unora sau tuturor obiectelor incluse în lista primelor-N. În acest scop se introduc câteva metrici de evaluare, una dintre ele bazată pe reamintire-precizie iar alta bazată pe utilitatea așteptată.

3.2.6.2.1. Măsuri bazate pe reamintire-precizie

O practică foarte utilizată pentru evaluarea recomandării primelor-N este de a folosi două metrici aplicate intens în domeniul recuperării informațiilor (Information Retrieval): reamintire și precizie.

Pentru sistemele care generează recomandări de tipul primele-N este nevoie să se modifice definițiile reamintirii și preciziei (față de cele utilizate în IR). În sistemele de recomandare, țelul este de a obține un număr N de obiecte relevante pentru a fi sugerate ca recomandare. Pentru a calcula reamintirea și precizia datele trebuie împărțite în două mulțimi disjuncte: mulțimea de instruire și mulțimea de test. Algoritmul de filtrare folosit de sistem funcționează doar pe mulțimea de instruire și se generează o listă ordonată de obiecte recomandate, pe care o vom numi mulțimea primelor-N. Obiectivul este de a parcurge toată mulțimea de test, reprezentând partea din mulțimea de date inițială care nu a fost folosită de sistemul de recomandare, și de a potrivi obiectele din mulțimea de test cu obiectele incluse în mulțimea primelor-N. Obiectele care apar în ambele mulțimi vor deveni membri într-o mulțime specială numită mulțime țintă (dacă folosim terminologia din IR). Se definesc în continuare reamintirea și precizia pentru sistemele de recomandare primele-N:

– reamintire – poate fi definită ca raportul dintre cardinalul mulțimii țintă și numărul de elemente al mulțimii de test:

– precizia, când ne referim la sisteme de recomandare poate fi definită ca raportul dintre numărul de elemente al mulțimii țintă și numărul de elemente al mulțimii primelor-N:

Aceste două măsuri sunt conflictuale. Dacă creștem numărul N rezultă o creștere a reamintirii în timp ce precizia scade. Dar, deoarece ambele măsuri sunt importante în evaluarea calității sistemelor care generează recomandări de tip primele-N, le putem combina într-o singură metrică, metrica F1. Metrica F1 este foarte folosită și atribuie ponderi gale reamintirii și preciziei.

F1 trebuie calculată pentru fiecare utilizator, și apoi media pentru toți utilizatorii va reprezenta scorul de listei de recomandare de tip primele-N ([Sarwar et al., 2000], [Sarwar, 2001]).

3.2.6.2.2. Măsuri care se referă la utilitatea așteptată

Se dorește să se estimeze utilitatea așteptată pentru o listă ordonată, particulară, pentru un utilizator. Pentru a obține aceasta, presupunem că utilitatea totală așteptată este produsul dintre probabilitatea de a vedea un obiect recomandat, obiect care este inclus în lista primelor-N, și utilitatea acelui obiect.

Utilitatea unui obiect este definită ca diferența dintre votul actual pentru acel obiect al utilizatorului , notat cu și votul implicit sau neutru în domeniu, notat cu d.

Despre probabilitatea obiectului de a fi selectat facem presupunerea că, pentru fiecare obiect succesiv din listă , cu , pornind din capul listei, probabilitatea de a fi văzut de utilizator este din ce în ce mai mică. Combinând cele două ipoteze, utilitatea așteptată a unei liste ordonate de obiecte, pentru utilizatorul , pentru N obiecte incluse în lista de recomandare a primelor-N este:

Obiectele sunt listate în ordine descrescătoare. Coeficientul reprezintă coeficientul de a fi văzut, și este definit ca rangul obiectelor din listă pentru care există 50% șanse ca utilizatorul să-l vadă (poate lua valori între 1-capul listei și N-coada listei). O valoare uzuală este .

Scorul final al listei primelor N recomandări este calculat pentru mulțimea tuturor celor m utilizatori din matricea utilizator-obiect R:

reprezintă utilitatea maximă atinsă pentru utilizatorul în cazul în care toate obiectele văzute ar fi fost poziționate în capul listei ordonate ([Breese et al., 1998]).

3.2.6.3. Metrici pentru evaluarea performanței

Mai sus au fost prezentate câteva metrici de calitate care măsoară acuratețea, utilitatea și acoperirea unui sistem de recomandare. În continuare vor fi prezentate metrici de performanță care se referă la necesarul de timp și de capacitate de stocare ale unui sistem de recomandare.

3.2.6.3.1. Timpul de răspuns

Timpul de răspuns reprezintă o metrică foarte folosită, care este utilizată pentru diverse scopuri și în diferite domenii. În cazul sistemelor de recomandare, definește timpul scurs între momentul când utilizatorul a lansat o cerere și momentul în care sistemul a răspuns la cerere.

Utilizatorul poate cere fie o predicție, fie o recomandare de tipul primele-N, de la sistem la momentul . Sistemul de recomandare va accepta cererea, va procesa intrarea, va termina de procesat cererea și va oferi răspunsul la momentul , . Timpul de răspuns se definește ca diferența dintre cele două momente de timp:

3.2.6.3.2. Cerințele de stocare

O altă modalitate de a evalua un algoritm de filtrare se bazează pe cerințele de stocare. Sistemele de recomandare moderne pot oferi servicii unui număr foarte mare de utilizatori, de ordinul milioanelor. Cerințele de stocare sunt analizate după două criterii:

– necesarul de memorie internă

– necesarul de memorie externă

3.2.6.3.3. Complexitatea de calcul

Majoritatea algoritmilor de filtrare parcurg două etape:

– construcția modelului (este executat off-line)

– etapa de execuție (on-line)

Preprocesarea, reprezentarea, calcularea similarității și generarea vecinătăților sunt etape care apar în majoritatea algoritmilor de filtrare și pot fi văzute ca făcând parte din etapa off-line. Predicție și generarea recomandării primelor-N aparțin etapei on-line.

Etapa de construcție a modelului este executată în timpul procesului de recomandare când apar voturile utilizatorului, făcând necesară modificarea matricei utilizator-obiect, procedură numită actualizare (updating). Este evident că dacă procedura de actualizare este întârziată, toate predicțiile nu vor reflecta ultimele relații utilizator-obiect și pot fi incorecte.

Este vital pentru performanța algoritmilor să evaluăm complexitatea de calcul a etapei offline. Pot exista algoritmi foarte buni, dar care necesită calcule complexe și fac etapa offline prea scumpă și consumatoare de timp. Pot exista și algoritmi bazați pe metode ad-hoc, care pot genera predicții și care consumă mai puțin timp și oferă răspunsuri rapide.

3.2.7. Concluzii

În acest capitol s-a încercat prezentarea celor mai populari algoritmi de filtrare folosiți în sistemele de recomandare moderne. S-a analizat formal problema pe care un algoritm de filtrare trebuie să o rezolve, s-au prezentat probleme care apar și modul în care pot fi ele rezolvate. S-a început cu prezentarea filtrării sociale clasice (Collaborative Filtering – CF), apoi s-au trecut în revistă modalitățile de îmbunătățire a algoritmului de bază. În continuare s-au prezentat metodele de preprocesare, apoi tehnicile de filtrare alternative (învățare automată, metode numerice, metode hibride). S-a continuat cu clasificarea algoritmilor de filtrare existenți după diverse criterii iar în final au fost prezentate metricile de evaluare pentru măsurarea performanțelor.

3.3. Algoritmi on-line pentru învățare automată

Algoritmii on-line se ocupă de problema luării deciziilor în prezent pe baza cunoștințelor despre trecut.

3.3.1. Realizarea predicției pe baza sfatului unui expert

Problema este simplă, intuitivă. Algoritmul de învățare ([Blum, 1996]) este compus din trei etape:

1. algoritmul primește predicțiile de la expert

2. realizează predicția proprie

3. preia răspunsul corect

Cele trei etape alcătuiesc o încercare (o rulare). Presupun că predicția aparține mulțimii .

3.3.1.1. Algoritmul majorității ponderate (Weight Majority Algorithm)

Algoritmul menține o listă de ponderi pentru fiecare expert și realizează predicția pe baza votului majorității ponderate a opiniilor experților.

Algoritmul (versiunea simplă)

1. se inițializează ponderile ale tuturor experților cu 1;

2. Având un set de predicții de la experți se calculează rezultatul, care este predicția cu ponderea totală cea mai mare. Se obține 1 dacă și 0 în caz contrar.

3. Când răspunsul corect l este primit, se penalizează fiecare expert care a greșit prin multiplicarea ponderii sale cu . De aceea, dacă atunci nu se modifică.

4. Mergi la pasul 2.

Teoremă: Numărul de greșeli M făcute de algoritmul WM descris mai sus nu e mai mare decât , unde m este numărul de greșeli făcute de cel mai bun expert până acum.

3.3.1.2. Algoritmul majorității ponderate (versiunea aleatoare)

Se poate obține o limită mai bună decât cea descrisă în metoda de mai sus prin modificarea algoritmului pe două căi: o cale este ca în loc să realizăm predicția cu cea mai mare pondere totală, vom considera ponderile ca probabilități și prezicem fiecare rezultat cu o probabilitate proporțională cu ponderea. O altă schimbare ar fi să se înlocuiască factorul cu , este o valoare ce va fi determinată mai târziu.

Intuitiv avantajul abordării aleatoare este că atenuează cazul cel mai defavorabil. Cazul cel mai defavorabil era când puțin mai mult de jumătate din ponderea totală au prezis incorect ducând la o greșeală (a algoritmului) și să reducă ponderea totală cu . Acum este aproximativ 50% șansa ca algoritmul să prezică corect și probabilitatea algoritmului să facă o greșeală este legată de factorul cu care ponderea este redusă.

Un alt avantaj al abordării aleatoare este că poate fi văzută ca selectare a unui expert cu o probabilitate proporțională cu ponderea lui. De aceea algoritmul poate fi aplicat în mod natural când predicțiile reprezintă strategii sau alt tip de lucruri ce nu pot fi combinate. Mai mult dacă „experții” sunt programe ce rulează sau funcții ce sunt evaluate atunci această abordare mărește viteza de predicție deoarece un singur expert trebuie examinat pentru a produce predicția algoritmului (deși toți experții trebuie examinați pentru a realiza o modificare a ponderilor)

Algoritmul (versiune aleatoare)

1. se inițializează ponderile ale tuturor experților cu 1

2. Având un set de predicții de la experți, rezultatul este cu probabilitatea unde .

3. Când răspunsul corect l este primit se penalizează fiecare expert care a greșit prin multiplicarea ponderii sale cu .

4. Mergi la pasul 2.

Teoremă: Într-o secvență de încercări, numărul așteptat de greșeli făcut de algoritmul RWM satisface relația:

în care m este numărul de greșeli făcute de cel mai bun expert până acum.

De exemplu, pentru obținem iar pentru obținem . Prin ajustarea dinamică a parametrului se poate obține:

Corolar: În orice secvență de încercări, numărul așteptat de greșeli făcut de algoritmul modificat RWM satisface relația:

în care m este numărul de greșeli făcute de cel mai bun expert până acum.

3.3.2. Învățare on-line din exemple

În subcapitolul precedent am considerat problema „învățării din sfatul unui expert”. În acest subcapitol mă voi ocupa de un scenariu mai general al învățării on-line din exemple. În acest cadru există un spațiu al exemplelor X, în mod tipic . Învățarea continuă ca o secvență de încercări. În fiecare încercare, un exemplu este prezentat algoritmului de învățare. Algoritmul prezice 1 sau 0 (dacă exemplul este pozitiv sau negativ) și în final algoritmului îi este prezentat rezultatul corect . Algoritmul este penalizat pentru fiecare greșeală făcută (de exemplu când predicția diferă de l). Scopul este de a face cât mai puține greșeli (acest tip de învățare se mai numește și Mistake Bound Learning Model).

Pentru a descrie aceste modele e nevoie de noțiunea de clasă concept. Clasa concept C este o mulțime de funcții booleene peste domeniul X (fiecare funcție booleană este numită concept) împreună cu reprezentarea asociată acestor funcții. De exemplu clasa de disjuncții peste este clasa tuturor funcțiilor ce pot fi descrise ca o disjuncție cu variabilele . În cele ce urmează voi considera n lungimea descrierii exemplelor, lungimea descrierii unui concept .

3.3.2.1. Algoritmi simpli pentru învățare on-line

Ca un exemplu de învățare a unei clase în modelul Mistake Bound considerăm un algoritm simplu pentru învățarea disjuncțiilor monotone.

Ipoteza de la care se pornește este . De fiecare dată când se face o greșeală pe un exemplu negativ x, scoatem din h toate variabilele setate pe 1 de x. Scoatem doar variabilele pentru care avem garanția că nu sunt în funcția țintă, deci niciodată nu facem o greșeală pentru un exemplu pozitiv. Deoarece fiecare eroare elimină cel puțin o variabilă din h, acest algoritm face cel mult n greșeli.

O clasă concept mai puternică este clasa listelor de decizie. O listă de decizie este o funcție de forma „daca atunci , altfel dacă atunci , altfel dacă atunci , …, atunci ”, unde fiecare . De exemplu o listă de decizie posibilă este regula: „dacă atunci pozitiv, altfel dacă atunci negativ, altfel pozitiv”.

Următorul algoritm învață liste de decizie făcând cel mult greșeli dacă funcția are r variabile relevante (de aceea are lungimea ). Ipoteza folosită de algoritm va fi o ușoară generalizare a listelor de decizie în care permitem câtorva reguli „dacă – atunci” să coexiste pe același nivel. În cazul în care mai multe condiții „dacă” de pe același nivel sunt satisfăcute, alegem arbitrar una din ele.

1. Inițializăm h cu o listă ce conține un singur nivel, nivel ce conține toate reguli „dacă – atunci” posibile. (aceasta include și cele 2 reguli de terminare posibile)

2. Având un exemplu x, ne uităm la primul nivel din h ce conține o regulă a cărei condiție „dacă” este satisfăcută de x. Folosim acea regulă pentru predicție (dacă există mai multe posibilități se alege în mod aleator una din ele).

3. Dacă predicția este greșită ne mutăm la regula ce a fost folosită în jos la următorul nivel.

4. Mergi la pasul 2.

Algoritmul are proprietatea că cel puțin o regulă „dacă – atunci” se mută un nivel mai jos la fiecare greșeală. Mai mult prima regulă în conceptul țintă c nu va fi niciodată mutată și inductiv regula numărul i a lui c nu se va muta mai jos de nivelul i din h. De aceea prima regulă „dacă – atunci” va cădea cel mult L nivele unde L este lungimea lui c și de aceea algoritmul face cel mult greșeli.

3.3.2.2. Algoritmul Winnow

A fost proiectat pentru învățare cu puține erori când numărul de variabile relevante r e mult mai mare decât numărul total de variabile n. În particular, dacă datele sunt consistente cu o disjuncție de r din n variabile atunci algoritmul va face cel mult greșeli.

Ca și în cazul algoritmului majorității ponderate algoritmul Winnow menține un set de ponderi, câte una pentru fiecare variabilă.

Algoritmul Winnow (varianta simplă)

1. se inițializează ponderile ale variabilelor cu 1

2. Având exemplul , rezultatul va fi 1 dacă , în caz contrar rezultatul fiind 0.

3. Dacă algoritmul face o greșeală:

a) Dacă algoritmul prezice negativ pe un exemplu pozitiv atunci pentru fiecare egal cu 1, dublăm valoarea

b) Dacă algoritmul a prezis o valoare pozitivă pe un exemplu negativ atunci pentru fiecare egal cu 1, se micșorează valoarea la jumătate.

4. Mergi la pasul 2.

Teoremă: Algoritmul Winnow învață o clasă de disjuncții în modelul Mistake Bound făcând cel mult greșeli când conceptul țintă este o disjuncție de r variabile.

Teoremă: Pentru fiecare secvență de exemple și orice disjuncție, numărul de greșeli făcute de algoritmul Winnow este , unde r este numărul de variabile relevante pentru c. Deoarece aceasta înseamnă că algoritmul Winnow este competitiv în funcție de cea mai bună disjuncție de r variabile.

Teoremă: Având r, se poate adapta un algoritm Winnow randomizat astfel încât pentru orice secvență de exemple și orice disjuncție c de r variabile, numărul de greșeli așteptat să fie când .

Acest tip de teoremă poate fi văzut ca un rezultat al generalizării scenariului „învățării de la experți”. Considerăm un exemplu cu n „specialiști”. La fiecare încercare, fiecare specialist poate alege să facă o predicție sau poate să absenteze (spre deosebire de scenariul experților în care fiecare expert trebuie să facă o predicție la fiecare încercare). De aceea ne putem gândi la specialiști ca făcând o predicție doar când situația corespunde „specializării” lor.

3.4. Modelarea utilizatorului în sistemele de informare inteligente

3.4.1. Introducere. Necesitatea procesării inteligente a informației pentru modelarea utilizatorului

În viitor, sistemele soft on-line vor juca rolul furnizorilor de servicii de astăzi (bănci, servicii publice, etc.). Utilizatorii acestor sisteme vor fi foarte diverși. Ne îndreptăm către o interacțiune om-mașină inteligentă care să ofere răspunsuri adecvate pentru utilizatori specifici. Modelarea utilizatorilor este parte a procesului de ajustare a sistemului pe baza caracteristicilor, nevoilor, preferințelor sau deprinderilor utilizatorilor. Sistemul deține o „imagine” a utilizatorului, un profil care este necesar în procesul de adaptare. Adaptarea poate fi interpretată în mai multe feluri în acest context. Poate fi văzută ca o interfață adaptivă, ca filtrare personalizată de informații, ca recomandări personalizate, etc. Termenul folosit în ultimul timp este cel de personalizare și explică scopul acestor sisteme de a trata utilizatorul ca pe o individualitate cu o personalitate unică.

Eficiența în domeniul recuperării informațiilor este strâns legată de informația relevantă. Termenul „relevant” se referă la informația ce are legătură cu problemele utilizatorului implicând stările afective și cognitive ale acestuia. De aceea, „relevanța” este noțiunea de bază în extragerea de informații (cu toate că este ambiguă ca toate noțiunile umane, la fel ca noțiunea de „incertitudine” din sistemele expert sau noțiunea de „proximitate” folosită în sistemele de clasificare și indexare).

Modelarea utilizatorului în extragerea de informații trebuie înțeleasă în termenii de relevanță și în cea a procesului de îmbunătățire a relevanței.

Tratarea feedback-ului de relevanță se face modelând utilizatorii prin intermediul textelor ce sunt evaluate ca relevante (sau irelevante), pentru a obține (sau a respinge) texte similare sau clustere de texte.

În etapa de extindere a interogării, interogarea inițială este folosită ca bază pentru modelarea utilizatorului. Cuvinte și conectori logici sunt adăugați, modificați, eliminați, schimbați prin tehnici automate sau semiautomate.

Un profil exprimă interesele utilizatorului și reprezintă un model al utilizatorului. Profilele sunt dinamice, adică se pot modifica.

3.4.2. Modelarea utilizatorului în domeniul extragerii de informații

Ipoteza de la care se pornește este că există o persoană cu o problemă, un obiectiv. Pentru a rezolva situația, persoana recurge la o sursă externă de informație. Printr-un mediator persoana interacționează cu sursele de informații pentru a rezolva situația problematică.

Componentele unui sistem de extragere de informații sunt:

– utilizatorul

– sursele de informații ce conțin obiecte de informare, selectate, organizate și reprezentate corespunzător

– mediatorul care ajută interacțiunea dintre utilizator și sursa de informații.

Scopul acestor sisteme este de a ajuta utilizatorul în rezolvarea problemelor, în găsirea informațiilor relevante ([Belkin,1997]). Există două tipuri de sisteme de extragere de informații:

– sisteme retrospective (sau ad-hoc) pentru nevoi de informare pe termen scurt și în care episodul de căutare se execută o singură dată

– sisteme de filtrare a informațiilor ce modelează nevoia de informare pe termen lung

Problemele care apar în extragerea de informații sunt:

– utilizatorul nu poate specifica necesitatea de informație

– obiectivele, experiența, cunoștințele utilizatorului afectează în mod semnificativ, interacțiunea cu informația (evaluarea informației, înțelegerea informației)

– utilitatea informației se modifică în timp și ca rezultat al interacțiunii dintre utilizator și informație

Implicațiile acestor probleme sunt următoarele:

– extragerea de informații trebuie tratată ca un dialog

– caracteristicile relevante ale actorilor din sistem (utilizatorul, mediatorul, sursa de informație) se modifică și evoluează (reprezentările statice nefiind adecvate pentru extragerea de informații)

Reprezentările nevoii de informație vor fi dinamice și aproximative. Pe lângă specificarea interogării trebuie luați în calcul și alți factori (scopul, situația). Extragerea de informații trebuie să reprezinte atât caracteristicile pe termen lung cât și cele pe termen scurt ale actorilor din sistem (aceasta implică două tipuri de reprezentări).

Există câteva caracteristici ale implicațiilor de mai sus: fiecare actor trebuie să dețină modele ale celorlalți actori din sistem pentru ca acesta să funcționeze; aceste modelele trebuie să fie dinamice și să conțină o varietate de caracteristici ale actorilor. Criteriul de evaluare al sistemului de extragere de informații este atingerea scopului utilizatorului.

Câteva încercări de rezolvare a acestor probleme în domeniul extragerii informațiilor:

– se proiectează sisteme în care ceilalți actori construiesc modele ale utilizatorului

– se folosesc mediatori umani

– se proiectează sursa de informare conform cu modelele pe termen lung ale utilizatorilor

– cerând utilizatorilor să construiască modele ale nevoii de informație potrivit cu anumite reguli (specificarea interogărilor)

– proiectând sisteme în care utilizatorul poate să modifice în mod explicit modelele pe care ceilalți actori le dețin (reformularea interogărilor)

– folosind feedback de relevanță (informațiile de la utilizatori sunt folosite pentru a modifica interogarea)

– folosind informațiile de la utilizatori pentru a construi modele ale caracteristicilor utilizatorilor (scopuri)

– folosirea informațiilor importante din comportamentul utilizatorului pentru a modifica modelul acestuia

– ajutând utilizatorul să interacționeze cu sursele de informații (fără modelare) – navigare, extragere de informații fără interogare

În evaluarea performanțelor unui sistem de extragere de informații se urmărește dacă scopul (ajutarea utilizatorului în găsirea informației utile) a fost atins. Util, a fost înțeles ca relevant, criteriul fiind întotdeauna informația relevantă iar măsurile folosite sunt reprezentate de precizie (proporția de documente obținute care sunt relevante) și revocare (proporția de documente relevante care au fost extrase).

Câteva încercări prin care extragerea de informații a încercat să-și atingă scopul:

– reprezentarea textului într-o formă convenabilă pentru o căutare rapidă

– reprezentarea necesităților de informații (interogărilor)

– compararea interogărilor și a reprezentărilor documentelor

– modificarea reprezentărilor ca rezultat a procesului de comparație

În acest domeniu al extragerii de informații s-a înțeles prin intermediul conceptului de relevanță că reprezentarea necesității de informație este doar o parte din modelul utilizatorului.

3.4.2.1. Scurt istoric al modelului utilizator

Când operația de extragere de informații era realizată manual de către un mediator uman (de exemplu un bibliotecar) se construiau modele complexe ale necesității de informație a utilizatorului și a scopului acestuia care se foloseau pentru a oferi informații sau sfaturi. Chiar când extragerea de informații a devenit automatizată, mediatorul a fost păstrat ca un intermediar pentru căutare. Deoarece aceste sisteme erau din ce în ce mai complexe, s-a considerat că rolul intermediarului era de a reprezenta nevoia de informație într-o formă adecvată. Utilizatorii trebuiau să construiască reprezentări ale nevoilor de informare pe termen lung, care sunt comparate periodic cu noi obiecte de informație. Profilele erau modificate la început doar de utilizatori pe baza evaluării rezultatelor obținute în etapa de căutare. Mai târziu aceste profile au fost modificate automat pe baza evaluărilor făcute de utilizator despre relevanța rezultatelor. Acest proces s-a numit inițial SDI (Semantic Dissemination of Information) și este echivalent cu multe idei din domeniul filtrării informației. Modelul utilizatorului (modelul nevoii de informație a utilizatorului) este construit gradual, modificându-se după fiecare comparație.

Extragerea de informație retrospectivă (sau ad-hoc) diferă de filtrarea informației prin faptul că:

– se ocupă de un singur episod de căutare a informației, o singură interogare este comparată cu colecția statică de documente

– încearcă să ajute utilizatorul să găsească informația ce are legătură cu o problema specifică, actuală, și reprezintă nevoia de informație curentă (nu cea pe termen lung)

3.4.2.2. Modelarea utilizatorului ca „nevoie de informație”

Există două soluții pentru modelarea dinamică a utilizatorului în extragerea de informație ad-hoc:

– extragere de informații interactivă în care utilizatorul reformulează interogarea în funcție de rezultatele sistemului

– feedback de relevanță (în care sistemul reformulează interogarea în funcție de răspunsul utilizatorului la rezultatul primit)

Feedback-ul de relevanță (Relevance Feedback) a fost propus prima dată de Rocchio în 1966. Se încearcă să se genereze o interogare „ideală” care poate fi gândită ca un model „perfect” al nevoii de informație. Aceasta depinde de evaluarea pe care o face utilizatorul despre relevanța documentelor obținute. În feedback-ul de relevanță se recalculează ponderile termenilor în funcție de apariția lor în documentele relevante sau irelevante și se adaugă noi termeni la interogare (termeni care sunt importanți în documentele relevante). Poate fi utilizat cu succes la modelarea nevoii de informație atât pe termen scurt cât și pe termen lung.

Ideea de modelare a utilizatorului fără reprezentarea nevoii de informație este folosită în extragerea de informație fără interogare (Querryless IR. A fost gândită ca un mijloc pentru a evita specificarea nevoii de informație și pentru a lua în calcul evoluția utilizatorului (modificarea problemei informaționale).

3.4.3. Modelarea utilizatorului pentru filtrarea informației

Sistemele de filtrare a informației, sunt proiectate pentru a examina un flux de articole generat dinamic și de a afișa numai pe acelea care sunt relevante pentru interesul utilizatorului. Sistemele de extragere a informației, spre deosebire de filtrarea informației, sunt proiectate pentru a răspunde odată la fiecare interogare, pe baza unui conținut dintr-un set de documente statice.

Distincția dintre filtrarea informației și extragerea de informație o reprezintă durata pentru care este necesară modelarea nevoii de informație a utilizatorului, acesta având mai multe interese, durata de viață a unui interes particular putând varia foarte mult. Chiar și atunci când interesele sunt persistente, ele tot se pot modifica în timp. Mai mult aceste schimbări pot interveni abrupt sau lent. Complexitatea este dată și de faptul că intensitatea unui interes poate varia în timp, într-un mod ce este dificil de prezis.

Deoarece sistemul de filtrare trebuie să opereze într-o perioadă mare de timp, abilitatea de a observa, modela și de a se adapta la această variație și interacțiune a intereselor, este foarte folositoare.

Extinderea interogării permisă de sistemul de extragere de informație identifică explicit interesele de informație ale utilizatorului.

Au fost propuse mai multe abordări pentru modelarea interesului utilizatorului. Astfel Jennings și Higuchi ([Jennings, Higuchi, 1992]) au dezvoltat un model bazat pe învățare supervizată pentru a acoperi un spațiu de căutare foarte mare. Fischer și Stevens ([Fischer, Stevens, 1991]) au propus tehnici bazate pe reguli pentru a dezvolta agenți de căutare booleană. Maes ([Maes, 1994]) a folosit un algoritm genetic pentru a dezvolta agenți de căutare booleană și a combina avantajele celor două metode.

În toate aceste cazuri, modelul utilizatorului este folosit pentru a identifica, interesele pe termen lung ale utilizatorilor.

3.4.3.1. Filtrarea informației folosind modelul utilizatorului

Un sistem de filtrare este localizat între o sursă de documente (informații) și un utilizator și este capabil să identifice documentele potențial relevante pentru nevoia de informație a utilizatorului. Un aspect esențial al sistemului de filtrare ([Asnicar, Di Fant, Tasso, 1997]) este capacitatea sa de a reprezenta preferințele informaționale ale utilizatorului.

Există două probleme:

– mecanismele de învățare, reprezentare și modificare a preferințelor utilizatorului

– algoritmii de procesare pentru extragerea de informații din documente și algoritmii de potrivire (matching algorithms)

Modelul utilizatorului cuprinde:

– informații de interes

– informații neinteresante – rețea semantică de ponderi cu noduri (cuvinte cheie, concepte) din document; arcele leagă cuvintele ce apar unele după altele în document; fiecare nod are o pondere asociată care este pozitivă pentru documentele relevante. Fiecare arc are o pondere care este frecvența de apariție a doi termeni.

Pentru reprezentarea documentelor ca un vector de cuvinte având ponderile asociate se fac următoarele operații:

– ștergerea cuvintelor de stop

– păstrarea rădăcinii cuvântului și ponderea asociată

– compresia (identificarea celor mai potriviți termeni pentru a reprezenta conținutul)

Operația de clasificare a documentelor este un proces ce are ca intrări reprezentarea internă a documentelor și modelul utilizatorului iar la ieșire produce clasificarea documentelor în funcție de relevanța potențială pentru utilizator.

Algoritmii cuprind două faze:

– comparația modelului intern al documentului cu modelul utilizatorului

– clasificarea documentelor pe baza rezultatelor obținute în prima fază

Comparația produce două valori numerice: similaritatea dintre documente și modelul utilizatorului pe de o parte și comparația dintre modelul utilizatorului și modelul preferințelor negative ale utilizatorului pe de altă parte.

Modulul de feedback primește la intrare evaluarea făcută de utilizator și reprezentarea internă a documentelor iar la ieșire are ca rezultat modificarea modelului utilizatorului (prin modificarea ponderilor asociate).

3.4.4. Modelarea utilizatorului pentru extragerea de informații din web

Modelul tipic al unui utilizator ce extrage informația din web este derivat din modelul folosit în domeniul extragerii informațiilor în care utilizatorul este identificat cu interogarea. Astfel, orice utilizator ce creează aceeași interogare, obține același răspuns din baza de date. Acest model a fost fundamental pentru domeniul extragerii informațiilor. În particular, modelele din extragerea informațiilor sunt bazate pe similaritatea dintre cererea de informație și obiectele din spațiul informațional. Multe dintre sistemele de extragere de informații din web, sunt bazate pe modelul vectorial, în care o interogare și un document web sunt reprezentate printr-un vector într-un spațiu multidimensional și apoi sunt comparate.

Acest model pentru utilizator are câteva limitări severe dar datorită simplicității sale și succesului de care s-a bucurat, a rezistat în timp. Unul dintre motive a fost mecanismul folosit pentru evaluarea sistemului de extragere de informații. Evaluarea este realizată folosind colecția de documente de test și un set de interogări cu ajutorul căruia se măsoară abilitatea sistemului de a plasa în răspuns documentele considerate relevante înaintea celor irelevante. Măsurile de evaluare sunt revocarea și precizia.

O îmbunătățire la acest model a fost adusă prin folosirea feedback-ului de relevanță (ce nu a fost implementat în motoarele de căutare web). Astfel, după o interogare, utilizatorul specifică dacă documentele prezentate sunt relevante sau nu. Aceasta permite păstrarea unui istoric al documentelor, informația fiind în general folosită pentru a modifica interogarea.

Există câteva componente de urmărit pentru a eficientiza extragerea și a satisface nevoile utilizatorului.

Un prim pas este recunoașterea faptului că un răspuns sub forma unei liste de documente nu este întotdeauna ceea ce dorim. O metodă pentru a descoperi aceste aspecte poate fi dezvoltarea de clustere de informație, astfel încât utilizatorul să poată construi propria hartă a spațiului informațional. Se poate ca utilizatorul să nu caute răspunsuri la întrebări specifice, ci doar puncte de plecare în explorarea spațiului informațional (este important de modelat natura răspunsului dorit de utilizator).

A doua componentă a extragerii o reprezintă admiterea că s-ar putea să nu existe un singur document care să conțină informația dorită. Părți din mai multe documente trebuie combinate pentru a forma un document virtual, creat special pentru a satisface o nevoie particulară a utilizatorului la un moment dat. Aici trebuie folosită potrivirea pe părți din document și luarea în calcul a structurii documentelor.

A treia componentă o reprezintă recunoașterea faptului că modelul utilizatorului se schimbă pe măsura ce procesul de extragere are loc. Acest lucru apare tot timpul într-un dialog. Pe măsură ce se ating anumite puncte din dialog, anumite informații nu mai sunt relevante, alte informații devenind importante.

Totuși dacă abordăm problema pragmatic, modelele utilizator foarte sofisticate nu vor fi implementate prea curând într-un mediu ca web-ul (datorită costurilor implicate). Este nevoie de o analiză atentă a câtorva elemente cheie a modelului utilizator. Câteva elemente sunt clare și anume: identificarea utilizatorului pentru a folosi istoricul acțiunilor acestuia, identificarea tipului de răspuns și identificarea limbii.

3.4.5. Utilizarea trăsăturilor (caracteristicile) utilizatorului pentru realizarea profilului în sistemele de informare

Până în 1996 au fost folosite în scopul modelării utilizatorului, cunoștințele și preferințele acestuia. La toate acestea se pot adăuga interesele utilizatorului și caracteristicile lui individuale.

Încercările de modelare a intereselor utilizatorului nu sunt noi. Sistemul web de extragere a informațiilor încearcă să modeleze interesele pe termen lung ale utilizatorului și să le folosească în paralel cu interesele pe termen scurt pentru a îmbunătăți filtrarea informației și recomandările. Aceste sisteme includ și sistemele adaptive pentru managementul bookmarkurilor (info-chioșcuri, enciclopedii, ghid virtual pentru muzee). În aceste sisteme, interesele utilizatorului servesc ca bază pentru recomandarea legăturilor relevante.

Caracteristicile (trăsăturile) individuale sunt acele caracteristici ce definesc un utilizator ca o individualitate și se obțin nu prin chestionare simple ci prin teste psihologice create special pentru acest lucru (de exemplu, factorii de personalitate – extrovertit, introvertit- factorii cognitivi și stilurile de învățare). Aceste caracteristici, de obicei, nu se schimbă sau se modifică într-o perioadă de timp foarte îndelungată.

Sistemele de informare on-line nu mai formează un grup omogen de sisteme și ca urmare acestea trebuie împărțite în subgrupuri. Împreună cu sistemele „clasice” de informare on-line, acest grup include sisteme specializate cum ar fi: enciclopedii electronice, info-chioșcuri, muzee virtuale, sisteme de comerț electronic sau sisteme de suport a deciziilor.

Specializarea acestor sisteme a dus la o creștere a performanței. Aceste sisteme pot lua în calcul un tip specific de activitate a utilizatorului, într-un domeniu particular de aplicație, oferind o adaptabilitate mai bună.

Enciclopediile electronice și chioșcurile de informare, rămân foarte apropiate de definiția sistemelor de informare on-line clasice; totuși ele conțin îmbunătățiri specifice ce nu sunt posibile în sistemele clasice. De exemplu, o enciclopedie poate urmări cunoștințele utilizatorului despre diferite obiecte consultate în enciclopedie și poate oferi comparații adaptive (Milosavljevic 1997) sau poate urmări navigarea utilizatorului pentru a deduce interesul acestuia, oferind liste cu articole relevante (Hirashima 1998).

Ceea ce este caracteristic muzeelor virtuale este acea abilitate de a oferi o experiență personalizată într-un spațiu virtual, de a ghida utilizatorul în vizitarea unui muzeu virtual, având comentarii adaptate la context (poziția utilizatorului în muzeu, gradul de interes arătat față de diferite obiecte, etc.).

În sisteme de comerț electronic interesează ca navigarea să fie cât mai redusă pentru ca utilizatorul să găsească un produs cât mai repede. Sistemele de suport a performanței reprezintă o combinație de sisteme expert cu sisteme de informare.

3.4.6. Modelarea utilizatorului folosind feedback implicit

Modelarea utilizatorului poate fi folosită în sistemele de filtrare și extragere a informației pentru a îmbunătăți reprezentarea necesităților de informație ale utilizatorilor. Modelele utilizatorilor pot fi construite manual sau învățate automat pe baza unui feedback de la utilizator despre relevanța documentelor pe care le-a examinat. Observând comportamentul utilizatorului ([Kim, Oard, 1998]) este posibilă identificarea unui feedback implicit, fără a necesita o evaluare explicită. Studii făcute pe grupuri de discuții (știri USENET) au arătat că timpul de citire este o sursă foarte bună pentru feedback-ul implicit. Alte cercetări ([Konstan, 1997]) au demonstrat că feedback-ul explicit (oferit de utilizator) este foarte util dar obținerea lui poate fi problematică și aceasta deoarece procesul este mare consumator de timp. Feedback-ul implicit se pare că este o soluție mai atractivă.

3.4.6.1. Un cadru pentru feedback implicit

Feedback-ul implicit poate avea doar o relație indirectă cu evaluarea utilizatorului despre utilitatea unui document. Întrucât poate fi colectat de peste tot (deci în cantități mari) impactul potențial al feedback-ului implicit poate fi mai mare decât al celui explicit. De exemplu, InfoScope este un sistem pentru filtrarea grupurilor de discuție Internet (USENET) ce folosește atât feedback implicit cât și explicit. Sursele de feedback implicit în acest caz urmăresc dacă mesajele au fost citite sau ignorate sau dacă acestea au fost salvate sau șterse (Stevens, 1993).

Morita și Shinoda ([Morita, Shinoda, 1994]) au propus tehnici bazate pe observarea timpului de citire. Din rezultatele experimentate, a rezultat că dacă tratăm ca relevant un document pe care un utilizator l-a citit mai mult de 20 de secunde, acest lucru produce o îmbunătățire mai bună a preciziei și revocării decât în cazul evaluării explicite a documentelor de către utilizator.

Tabelul de mai jos, prezintă un cadru pentru feedback implicit dezvoltat de Oard și Kim în 1998.

Categorie

Comportament observabil

Examinare

Timpul de examinare

Editarea documentului

Păstrare

Salvarea unui document

Salvarea unei referințe

Tipărire

Ștergere

Citare

Copy-Paste

Adnotare

Evaluare explicită

Tabel 3.4.1 – Un cadru pentru feedback implicit

Kim și Oard ([Kim et al., 2000]) au demonstrat că:

– în medie, utilizatorii petrec mai mult timp citind articole relevante decât citind articole irelevante

– în medie utilizatorul petrece mai mult timp citind rezumate ale articolelor relevante decât rezumate ale articolelor irelevante

– combinarea timpului de citire cu observarea comportamentului de tipărire duce la rezultate mai bune în activitatea de predicție a relevanței documentelor, decât timpul de citire luat singur.

3.4.7. Folosirea unui model utilizator semantic pentru a filtra web-ul proactiv

Sistemele de informare sunt folosite pentru a satisface o necesitate informațională. Mai întâi, utilizatorul trebuie să-și traducă necesitatea de informare într-o interogare pe care sistemul o înțelege. În al doilea rând, sistemul trebuie să potrivească interogarea utilizatorului cu reprezentările documentelor. Un sistem de filtrare se ocupă de necesitățile de informare ale utilizatorului care sunt relativ stabile în timp. Aceste necesități sunt reprezentate printr-un profil utilizator. Un profil este folosit pentru a filtra o arhivă cu reprezentări ale documentelor ce se schimba rapid. În final, un filtru proactiv, caută în mod continuu în arhiva ce se modifică foarte repede, documente ce se potrivesc cu profilul utilizatorului. În continuare voi folosi termenul de descoperire a informației pentru a denumi următoarele domenii: filtrarea informațiilor și extragerea de informații.

Se încearcă să se îmbunătățească calitatea documentelor obținute folosind un sistem de informare prin folosirea unui set de descriptori (nu numai cuvinte cheie) atât pentru documente cât și pentru profile de utilizatori.

Apar următoarele probleme ([Simons, 1997]):

– Cum se pot potrivi profilele documentului cu profilele utilizatorului (tehnici de potrivire ce induc o ordine în documentelor obținute calculând relevanța acestora)

– Cum se pot obține caracterizări mai bune de documente (se folosesc tehnici de analiză pentru a obține caracterizări prin substantive)

– Cum se poate îmbunătăți interfața pentru a ajuta utilizatorul în formularea unei interogări și pentru a prezenta cât mai sugestiv informația obținută)

– Cum se poate reprezenta nevoia de informație a utilizatorului (prin menținerea și estimarea nevoii de informare a utilizatorului pentru a-l ajuta sa găsească informații relevante).

În dezvoltarea unui model al nevoii de informare a utilizatorului, trebuie să se țină cont de următoarele probleme:

– tipul de suport pe care trebuie să-l ofere modelul

În general modelul trebuie să ofere:

– suport pentru un filtru suplimentar (dacă interogarea duce la un număr mare de documente, modelul poate filtra documentele care satisfac interogarea dar nu nevoia de informare – de exemplu, dacă documentele sunt prea lungi sau prea tehnice).

– expansiune semantică – extinderea reprezentării semantice a interogării prin adăugarea unor concepte înrudite. De exemplu, o interogare despre „trenuri” poate fi extinsă să conțină conceptul de „transport public” sau „transport de persoane” (o rafinare a interogării). Expansiunea semantică poate îmbunătăți o interogare în trei moduri:

– mărirea preciziei prin conjuncție (termenii pentru extindere pot fi adăugați interogării inițiale pentru a îmbunătăți precizia)

– mărirea zonei de acțiune a nevoii de informare prin disjuncție (dacă folosind interogarea originală nu se obțin suficiente documente, interogarea după extindere putând oferi documente relevante noi)

– oferirea altor informații asemănătoare utilizatorului (sistemul poate extinde automat căutarea. De exemplu, poate extrage un document despre trenuri magnetice dacă un utilizator se arată interesat de trenuri de mare viteză.)

– Ce aspecte ale necesității informaționale trebuie reprezentate?

Trebuie făcută o distincție între subiectele (domeniile) de interes și factorii de situație. Primul termen se referă la concepte care fac parte din nevoia de informare. Ultimul termen, oferă un context pentru o nevoie de informare specifică, spre exemplu tipul de cunoștințe cerut sau nivelul de cunoștințe al utilizatorului.

– Cum se pot infera perspectivele unei nevoi de informare?

Anticiparea nevoii de informare se poate realiza în mai multe feluri și anume:

– Interacțiunea cu utilizatorii

– Estimarea evaluării documentelor consultate (poate fi realizată explicit printr-o opțiune din interfața sistemului sau implicit prin observarea comportamentului utilizatorului față de document. Timpul de citire și numărul de link-uri parcurse în document, pot fi considerate factori impliciți pentru evaluarea documentelor).

– Observarea comportamentului de navigare al utilizatorului. Observând link-urile pe care le-a selectat, sistemul poate obține strategiile de navigare (informația poate fi folosită pentru a adapta prezentarea documentelor obținute).

3.4.8. Un exemplu de modelarea a utilizatorului

Voi propune un sistem multiagent ce utilizează metode din inteligența artificială pentru a genera și menține profilele utilizatorilor. Agentul observă interacțiunile utilizatorului (actuale și anterioare) cu sistemul, și modifică profilul utilizator pentru a răspunde intereselor acestuia. Va oferi filtrare personalizată și descoperirea de informații în web cu scopul de a asista utilizatorul în găsirea informațiilor interesante.

Pentru a fi eficient, sistemul trebuie să învețe interesele și obiceiurile utilizatorilor (și să construiască un profil al utilizatorului), fără instruire explicită din partea utilizatorului, să mențină și să modifice profilul prin adaptare la schimbările de interese ale utilizatorilor și, în același timp, să caute documente ce pot fi relevante pentru utilizator.

Un utilizator obișnuit, poate avea mai multe interese (unele din ele se pot suprapune). Categoriile de interes în profilele utilizatorilor trebuie să fie rafinate. Chestionarele sunt consumatoare de timp (câteodată, utilizatorul nu reușește să identifice corect categoria de interes) iar profilul este foarte greu de întreținut. De aceea este necesară folosirea tehnicilor de învățare automată pentru generarea și menținerea profilelor utilizate în aplicațiile de filtrare a informației.

3.4.8.1. Descrierea sistemului și realizarea profilului

Sistemul încearcă să rezolve problema generării corecte și pe cea a menținerii profilelor utilizator personalizate. Scopul agentului este acela de a descoperi informația, ce poate interesa pe utilizator, din diferite surse și de a o prezenta acestuia.

Există două tipuri de agenți în sistem:

– agenții de filtrare

– agenții de descoperire

Agenții de filtrare sunt responsabili cu profilul utilizatorului si cu urmărirea și adaptarea la interesul acestuia.

Agenții de descoperire se ocupă de manipularea surselor de informare, de adaptarea la aceste surse și de găsirea și extragerea de informații actuale (de care utilizatorul este interesat). Când este instruit, agentul de descoperire este capabil să specifice ce motoare de căutare sunt bune pentru a determina informația pentru fiecare tip de document. Agenții de descoperire se comportă ca modele ale motoarelor de căutare. Agenții de filtrare generează și mențin profilul utilizatorului, iar agenții de descoperire fac același lucru cu motoarele de căutare. Cele două categorii de agenți, cooperează și acționează ca o legătură între utilizator și informație.

Agenții trebuie să se adapteze rapid la noile situații (urmărirea unui interes nou sau adaptarea la schimbările din domeniu).

Achiziția profilului se face prin:

– crearea directă a unui nou profil (utilizatorul nu este implicat). Sunt examinate sit-urile favorite (se începe cu examinarea bookmark-urilor). Pe baza acestora se dezvoltă un profil pe care agenții de filtrare îl vor folosi pentru a căuta informații similare.

– observarea interacțiunii cu browser-ul (observarea modificării bookmark-urilor, analiza istoricului de navigare ce conține URL-uri și datele când acestea au fost accesate).

Sistemul nu recomandă sit-uri pe care utilizatorul le-a vizitat deja (decât dacă acestea s-au modificat de la ultima vizită – de aceea pentru fiecare pagină web se calculează un cod CRC).

Pentru generarea inițială a profilului, utilizatorul evaluează sugestiile sistemului (cât și paginile proprii pe care le vizitează). Surse pentru feedback indirect (implicit):

– timpul petrecut de utilizator pe un site

– mărimea conținutului sit-ului

– timpul de ocupare al procesorului

– timpul în care fereastra browser-ului a fost activă

Ideea principală este aceea că dacă unui utilizator nu-i place un site, atunci acesta nu va petrece mult timp pe el.

3.4.9. Învățarea profilului utilizatorilor

Majoritatea sistemelor Internet actuale necesită un model al preferințelor utilizatorului. Aceste preferințe sunt reprezentate ca profile ale utilizatorilor, în mod normal sub forma unei liste de tip atribut-valoare și/sau reguli. Din punctul de vedere al sistemului este de dorit să se știe cât mai mult despre utilizator direct de la acesta, astfel încât să poată oferi rezultate utile încă de la prima utilizare a agenților.

De cele mai multe ori, utilizatorul nu este dispus să petreacă mult timp pentru realizarea specificației profilului utilizator. Mai mult decât atât, interesul utilizatorului se poate schimba în timp, făcând profilul mai greu de întreținut. Ca o consecință, metodele folosite pentru inițializarea și întreținerea profilului utilizator, reprezintă un aspect dificil al proiectării și dezvoltării de sisteme inteligente pentru Internet. Nivelul de automatizare și achiziție a profilelor utilizator pot varia de la introducerea manuală și proceduri semiautomate până la recunoașterea automată a profilului de către agenți.

3.4.9.1. Profil introdus manual de către utilizator

Fig. Profil introdus manual

Majoritatea agenților de filtrare a informației disponibili (de exemplu agenții pentru filtrare e-mail, sistemele de recomandare) folosesc o interfață prin care sistemul cere utilizatorului să introducă preferințele, dorințele, intențiile sub forma unor perechi atribut-valoare sau reguli. Deși procesul poate furniza rezultate precise dacă este realizat corespunzător, totuși poate fi consumator de timp și sensibil la erori de intrare.

De asemenea, cere ca utilizatorul să aibă o bună înțelegere a cunoștințelor de domeniu și a acțiunilor realizate de agenți. Menținerea profilului se dovedește a fi dificilă când apare o modificare a intereselor utilizatorului.

Pe de altă parte ideea de învățare din exemple și clusterizarea există în literatura Inteligenței Artificiale de mai mult timp. Acestea sunt folosite în metodele pe care le voi prezenta în continuare.

3.4.9.2. Învățare din exemple date

Fig. Învățarea profilelor din exemple

Utilizatorul este rugat să dea exemple de informații relevante sau să răspundă la întrebări specifice. După ce utilizatorul a dat răspunsurile dorite, agentul procesează informația folosind o scară de ponderare internă și produce informații pentru crearea profilului utilizator ce este consistent cu exemplele / întrebările prevăzute. Acest model prezintă avantajul de a fi simplu de utilizat și dezavantajul ca exemplele selectate să nu fie reprezentative iar rezultatele să fie mai puțin precise. În mod normal, procesul de învățare este mare consumator de timp.

3.4.9.3. Clusterizarea profilului/utilizatorului (stereotipia)

Fig. Clusterizarea utilizatorilor

În acest model se face o presupunere conform căreia caracteristicile utilizatorului permit (printr-un proces de decizie asemănător arborilor de decizie) alocarea utilizatorului într-un cluster (stereotip). Un profil individual pentru fiecare stereotip de utilizator este creat pe baza statisticilor acumulate, a caracteristicilor dintr-o clasă și salvat într-o bază de date. Când un utilizator nou este încadrat într-un stereotip, îi este dat profilul acelui stereotip. Este un model ce necesită o interacțiune redusă cu utilizatorul dar acuratețea depinde de numărul de stereotipuri precum și de selecția caracteristicilor personale.

3.4.9.4. Învățare prin urmărirea comportamentului utilizatorului

Crearea automată a profilului utilizatorului de către agent se realizează în două faze (după cum se observă în figurile de mai jos):

observarea comportamentului utilizatorului

potrivirea cu nevoile utilizatorului.

Faza de observare se sfârșește când agentul consideră că a obținut destulă informație pentru a trage concluzii cu privire la modelul comportamental general.

În faza a II-a aceste profile sunt folosite pentru a sincroniza necesitățile informaționale ale utilizatorului cu acțiunile agentului. Deoarece utilizatorul nu trebuie să introducă nimic, acest model prezintă avantajul de a fi simplu de utilizat. Are și un alt avantaj al determinării schimbării preferințelor utilizatorului și a adaptării la aceste schimbări. Totuși agentul nu poate fi folosit imediat ci are nevoie de o perioada lungă de antrenare.

FAZA I – Observare

FAZA II – Potrivirea (sincronizarea)

Fig. Monitorizarea utilizatorului

Capitolul 4. Contribuții la dezvoltarea sistemelor de recomandare si filtrare pentru web

4.1. Agenți personali de informare pentru web

Agenții personali de informare pot fi folosiți pentru a ajuta utilizatorul să găsească informația ce corespunde intereselor sale. Agentul intervine între utilizator și web, învață un model al cererilor utilizatorului ce urmează a fi folosit în modificarea cererilor și/sau în filtrarea rezultatelor.

Agenții de informare pentru web sunt similari cu sistemele de filtrare a textelor. Ambele tipuri de sisteme examinează un flux de documente. Adesea, agenții generează ei înșiși acest flux prin căutarea în web și extragerea link-urilor dintr-o pagină în timpul navigării. Ambele tipuri de sisteme mențin profile ale utilizatorilor și iau decizii despre documentele din flux (dacă să le recomande sau nu utilizatorilor pe baza similarității cu profilul utilizator).

4.1.1. Clasificarea sistemelor de informare pentru web

O posibilă clasificare a sistemelor de informare pentru web (sistemele de informare trebuie să ajute utilizatorul să localizeze, să obțină și să gestioneze documentele web) se poate face pe 5 nivele în funcție de gradul de inteligență al acestora:

– nivel 0; în această categorie se încadrează browser-ele web (Netscape Navigator, Mozilla, Internet Explorer, Opera, etc.) care extrag documentele pentru utilizator la cererea acestuia. Utilizatorul trebuie să specifice adresa unde este localizat documentul și cum trebuie extras (specifică URL-ul documentului).

– nivel 1; sisteme ce oferă facilități de căutare (inițializată de către utilizator) pentru găsirea paginilor web relevante, cum ar fi de exemplu motoarele de căutare (AltaVista, Google, Teoma, Inktomi, Fast, etc.). Utilizatorul trebuie să construiască o interogare prin specificarea de cuvinte cheie și conectori.

– nivel 2; sistemele ce creează și mențin profile ale utilizatorilor, dețin o componentă activă pentru notificarea utilizatorilor în momentul în care au fost găsite informații relevante.

– nivel 3; sistemele în care o componentă a profilelor utilizatorilor folosește metode de învațare automată. Un profil utilizator trebuie să conțină subiecte de interes și modele (tipare) de navigare web. Exemple de asemenea agenți sunt DiffAgent și Letizia.

– nivel 4; sistemele ce au atât capacitatea de a învăța comportamentul utilizatorului cât și pe cel al surselor de informații

4.1.2. Cerințe pentru dezvoltarea unui sistem de informare:

1) sistemul trebuie să fie capabil să descopere subiectele de interes ale utilizatorului în mod automat. Sistemul trebuie să învețe schimbările de interes ale utilizatorului în timp. Cunoștințele despre interesul utilizatorului sunt folosite când sistemul navighează pe Internet în numele utilizatorului pentru a descoperi informații relevante .

2) sistemul trebuie să învețe tiparele de acces ale utilizatorilor și tiparele de modificare a surselor de informație. Trebuie sa învețe când documentele sunt modificate la sursă și să extragă ultima versiune, înainte ca utilizatorul să o ceară.

3) sistemul trebuie să folosească eficient resursele. Trebuie să evite căutările exhaustive care generează un trafic excesiv în rețea.

4) sistemul trebuie sa fie compatibil cu majoritatea browserelor web.

5) sistemul trebuie sa mențină o baza de date și un index al documentelor extrase.

4.1.3. Arhitectura unui sistem de informare generic pentru web:

– Browser Web – utilizatorul folosește un browser pentru a naviga. Când dorește să folosească sistemul, setează browser-ul să se conecteze la un server proxy. În timpul unei sesiuni, toate cererile HTTP trec prin proxy. Sistemul permite menținerea unui istoric al navigării.

– Serverul proxy – utilizatorul comunică cu sistemul printr-un server proxy. Când utilizatorul emite o cerere HTTP, cererea este trimisă la serverul proxy care aduce documentul web dorit în numele utilizatorului. Proxy-ul cunoaște fiecare document cerut de utilizator. Acest lucru permite realizarea unui catalog de acces.

– Agentul de învățare – descoperă tiparul de acces al utilizatorului precum și subiectele de interes prin analiza cataloagelor de acces create de serverul proxy. Acesta generează un profil al utilizatorului, care ar trebui să conțină două tipuri de informații:

a. subiectele de interes (sub forma unor cuvinte cheie ce au asociate ponderi)

b. tipare de acces în funcție de timp (unele documente sunt cerute în mod regulat – de exemplu ziarele). Această informație este folosită pentru monitorizarea surselor de informare.

– Motorul de căutare – folosește un motor propriu sau alte motoare de căutare existente pentru a identifica noi surse de informații (folosind profilul utilizatorului)

– Agentul de monitorizare – monitorizează anumite pagini web care sunt interesante

– Agentul ce realizează recomandări – evaluează fiecare document nou. Compune o listă cu documente noi și învață din evaluările utilizatorului pentru a îmbunătăți recomandările viitoare.

4.2. Un agent personal de informare pentru web – Personal Information Agent

4.2.1. Introducere

Internetul și implicit Web–ul prezintă o dezvoltare foarte rapidă. În momentul de față găsirea unor informații de interes în Web este un proces ce consumă foarte mult timp (statisticile arată că 80% din timpul petrecut pe web este alocat interogării diverselor motoare de căutare și analizării rezultatelor obținute de la acestea). În această lucrare voi prezenta Personal Information Agent, un agent ce a fost conceput pentru a-i ajuta pe utilizatori să navigheze și să caute eficient informații în Web. Personal Information Agent aduce câteva lucruri noi în extragerea de informații din documentele Web. În primul rând folosește vectori TF-IDF multipli pentru a urmări interesul utilizatorului în domenii diferite. Personal Information Agent învață automat aceste domenii de interes. În al doilea rând, agentul folosește modelul perechilor de termeni pentru a extrage automat cuvinte cheie și a le folosi la rafinarea căutării documentelor. În al treilea rând, în timpul căutării, utilizatorul poate furniza mai multe pagini drept model pentru ghidarea operațiilor de calculare a similarității și relevanței documentelor. Folosind aceste tehnici, Personal Information Agent oferă o navigare eficientă, îmbunătățește căutarea documentelor și realizează o compilație cu știri pe care le trimite prin e-mail utilizatorilor. Agentul monitorizează câteva sit-uri cu știri și extrage informații din acestea pentru realizarea compilației.

Web-ul este plin de informații și resurse. Utilizatorii dispun de cel puțin trei căi pentru a identifica informațiile de care au nevoie:

1 – navigare Web (parcurgerea legăturilor ce par interesante);

2 – interogarea unui motor de căutare;

3 – alegerea unei categorii sau domeniu dintr-un serviciu de tip catalog (director) cum ar fi Yahoo ! sau Lycos.

Problema care se pune este că oamenii petrec prea mult timp căutând informațiile de care au nevoie și este posibil să nu găsească ceea ce îi interesează. Este dificil de găsit informația dorită, deoarece utilizatorul nu-și poate exprima cu acuratețe ceea ce dorește (de multe ori caută puncte de plecare) iar motorul de căutare nu-și adaptează strategia de căutare în funcție de fiecare utilizator. Complexitatea problemei este mărită de faptul că informația conține „zgomot” (de exemplu foarte multe pagini sunt irelevante pentru interesul utilizatorului). Agenții software inteligenți sunt dezvoltați pentru a rezolva aceste probleme (agenții inteligenți sunt programe care acționează în numele utilizatorilor umani).

Personal Information Agent este un agent personal ce acompaniază utilizatorul când navighează sau caută în web și îi oferă un ajutor inteligent.

Pentru claritate voi prezenta facilitățile agentului în două categorii:

– învățarea intereselor utilizatorului gradual (cu o actualizare continuă) și realizarea unei compilații cu documente (ziar personalizat) ce satisfac interesul utilizatorului

– ajutarea utilizatorului în rafinarea interogărilor, prin aceasta urmărindu-se mărirea numărului de documente relevante.

În subcapitolul următor este prezentată arhitectura sistemului, în subcapitolul 3 – reprezentarea profilului utilizator și algoritmul de învățare, în subcapitolul 4 voi prezenta modelul perechilor de termeni, în subcapitolul 5 prezint facilitățile agentului iar în ultimul subcapitol se face o trecere în revistă a altor agenți personali de informare.

4.2.2. Arhitectura sistemului

Personal Information Agent este compus dintr-un server proxy ce monitorizează acțiunile utilizatorului pentru a oferi informații pentru învățarea și rafinarea interogărilor și un aplet pentru configurarea agentului și interacțiunea cu utilizatorul.

Fig. 4.2.1. Arhitectura sistemului

Proxy-ul este un server proxy HTTP ce se găsește între browser-ul web și WWW. Toate tranzacțiile HTTP trec prin agent și acesta poate monitoriza activitățile de navigare și căutare ale utilizatorului și învăța din acestea.

Controler-ul este interfața dintre utilizator și serverul proxy. Prin el utilizatorul își poate exprima interesele când navighează și poate efectua feedback de relevanță când caută. Mai mult, prin controler, utilizatorul primește ajutor inteligent de la agent.

4.2.3. Învățarea profilului utilizator

4.2.3.1. Realizarea profilului și algoritmul de învățare

Există mai multe abordări ce pot fi utilizate pentru a învăța un profil al utilizatorului, printre care se numără: clasificator bayesean, k-NN (k-Neareast Neighbour), arbori de decizie, TF-IDF, rețele neuronale. Pentru a fi eficientă, o metodă trebuie să țină seama de particularitățile sarcinii și ale utilizatorului.

Partea de filtrare pentru agent constă în a analiza dacă un articol oarecare este relevant sau irelevant pentru utilizator. Această analiză se face bazându-se pe un profil al utilizatorului și într-un mediu în care probabilitatea de a descoperi un document relevant este mult mai mică decât probabilitatea de a descoperi un document irelevant. Într-un asemenea mediu ar fi atât frustrant, cât și consumator de timp ca utilizatorul să interacționeze cu un agent care pornește fără nici o cunoștință despre acesta, dar trebuie să obțină un set de exemple pozitive și negative din interacțiunea cu utilizatorul. Când un utilizator navighează, el nu dorește să evalueze toate paginile ce ar putea conține informații interesante.

Pentru a simplifica procesul de evaluare făcut de utilizator, agentul colectează doar exemplele care sunt interesante pentru acesta (doar exemplele pozitive de instruire). Acest tip de interacțiune prezintă probleme potențiale, deoarece documentele pe care utilizatorul le etichetează drept relevante pot să aparțină unor domenii distincte (de exemplu pescuit, calculatoare, fotbal). Aceste subclase corespund intereselor diferite pe care le poate avea utilizatorul. Există două metode pentru a rezolva problema intereselor multiple ale utilizatorului. Prima este aceea de a menține un singur profil al utilizatorului în care cuvintele cheie pot proveni din domenii diverse, dar sunt ponderate. Această metodă are dezavantajul că, ponderând vectori din documente diferite, pot scădea foarte mult ponderile cuvintelor ce sunt importante pentru câteva din categoriile de interes. A doua metodă constă în a cere utilizatorului să exprime explicit categoriile de interes. Personal Information Agent nu cere utilizatorului să specifice categoria în care se găsește documentul de interes, ci învață automat categoriile.

Spre deosebire de alte sisteme care învață un profil al utilizatorului și îl folosesc static pentru a determina documente relevante, Personal Information Agent învață profilul utilizatorului pas cu pas și în mod continuu. Când îi este prezentat un nou exemplu pozitiv, sistemul modifică profilul. Pentru a economisi spațiu pe disc, sistemul nu păstrează nici un document ce a fost dat ca exemplu pozitiv. El păstrează doar profilul învățat din acele exemple pozitive. În acest fel sistemul se adaptează la interesele recente (interese ce evoluează) ale utilizatorului.

Personal Information Agent utilizează algoritmul TF-IDF (Term Frequency – Inverse Document Frequency), cu reprezentare prin vectori multipli. Ideea de bază a algoritmului este de a reprezenta fiecare document sub forma unui vector astfel încât documente cu conținut similar să aibă vectori similari. Fiecare dimensiune a spațiului vectorial reprezintă un cuvânt și ponderea lui aferentă. Valorile elementelor vectorului, pentru un document, sunt calculate ca o combinație a frecvenței statistice a termenului, TF(w,d) (numărul de apariții a cuvântului w în documentul d) și frecvența documentului, DF(w) (numărul de documente în care cuvântul w apare cel puțin o dată). Din frecvența document se poate calcula inversa frecvenței document astfel:

în care este numărul total de documente. Valoarea a unui element din vector este calculată ca produsul:

4.2.3.1.1. Algoritmul de învățare

Voi prezenta în continuare algoritmul pentru învățare ce folosește mai mulți vectori TF-IDF:

Presupunem că utilizatorul are cel mult N domenii de interes (N = 10). Presupunem că profilul inițial este V, |V| = 0. Numărul predefinit de vectori TF-IDF din profil este N iar numărul de elemente din vector este M. Pentru fiecare exemplu pozitiv (un document HTML pe care utilizatorul îl consideră relevant) se execută:

1. preprocesare: analiza paginii HTML, ștergerea cuvintelor de oprire (cuvintele neinformative cum ar fi prepozițiile, conjuncțiile, etc.), transformăm cuvintele aflate la plural și păstrăm forma de singular, modificarea verbelor – păstrarea formei la infinitiv; extragerea cuvintelor din tagurile <TITLE>, <H1>, <H2>, <H3>, pentru că ele vor avea o pondere mai mare.

2. Construirea vectorului TF-IDF pentru document, pe care îl voi numi Vi

3. Dacă |V| < N (|V| este numărul de vectori din profilul V) atunci

4. Altfel, se calculează cosinusul similarității dintre fiecare 2 vectori TF-IDF incluzând și vectorul din profilul V (și vectorul noului document Vi). Presupunem că profilul V este:

{V1, V2,… Vn} (n = N).

5. Combinăm cei 2 vectori Vl și Vm cu similaritatea cea mai mare:

6. Se sortează ponderile în noul vector Vk în ordine descrescătoare și se păstrează primele M elemente.

Acest algoritm funcționează când utilizatorul marchează un document ca relevant. Astfel profilul utilizatorului este modificat pas cu pas și în mod continuu.

4.2.3.1.2. Actualizarea profilului prin clusterizarea incrementală

Utilizatorii nu trebuie să definească și să mențină modele ale subiectelor de interes. Când se efectuează feedback-ul de relevanță (atunci când utilizatorul indică interes pentru un document) agentul trebuie să determine în care pseudo-categorie a profilului trebuie să-l includă.

Algoritmul menține un număr fix, k, de clustere (subiecte, categorii). La început pentru primele k documente oferite ca feedback se creează câte un cluster. După ce au fost formate k clustere, fiecare nou document este tratat ca al k+1-lea cluster și algoritmul continuă prin fuzionarea (combinarea) celor mai apropiați 2 clusteri, cu scopul de a menține numărul de custere egal cu k. De aceea, un document nou poate fi plasat într-un cluster care există sau poate forma propriul lui cluster, forțând clusterii existenți (mai similari) să fuzioneze.

Pseudocodul pentru acest algoritm este prezentat mai jos.

ActualizareProfil(doc)

cluster [k+1] = clusternou (doc);

(i, j) = cei mai apropiați doi clusteri, cu i < j;

cluster_nou= Combină_Cluster (cluster i, cluster j);

șterge(cluster i);

șterge(cluster j);

inserează(cluster_nou).

4.2.3.2. Realizarea unei compilații de știri

Voi folosi abordarea învățării profilului utilizator în două moduri pentru a realiza o compilație de știri.

Primul mod este de a urmări automat o listă de adrese URL pe care utilizatorul dorește să le monitorizeze. Un exemplu de asemenea URL poate fi adresa unui site ce conține știri. Personal Information Agent realizează următoarele operații:

1. analizează pagina HTML

2. extrage link-urile pentru fiecare titlu de știre

3. extrage paginile cu fiecare știre

4. construiește vectorul TF-IDF pentru fiecare pagină (folosind drept euristici suplimentare faptul că termenii din tag-urile de titlu și header-ele dau ponderi suplimentare)

5. calculează similaritatea cu profilul curent. Dacă gradul de similaritate este mai mare decât un anumit prag atunci pagina este recomandată utilizatorului. Se sortează toate paginile recomandate în ordine descrescătoare a similarității pentru a realiza un ziar personalizat.

Toate operațiile vor fi efectuate la o anumită oră (ce va fi stabilită de către utilizator – implicit noaptea când traficul pe rețea este mai scăzut). Dimineața utilizatorul va putea să citească ziarul personalizat realizat de agent.

Dacă utilizatorul nu specifică nici o adresă URL care dorește să fie sursă de informare, Personal Information Agent construiește interogări folosind cuvinte cheie din profilul curent ce au ponderea cea mai mare și trimite cererile la câteva motoare de căutare (Google, Yahoo, Altavista, Lycos, Fast, Teoma). Dacă rezultatul e necesar imediat, rezultatele întoarse de la motoarele de căutare sunt folosite direct ca pagini web recomandate. Altfel sistemul aduce paginile ce corespund fiecărui URL din rezultate. Calculează apoi gradul de similaritate a profilului curent cu fiecare din aceste pagini web și recomandă paginile ce au gradul de similaritate mai mare decât un anumit prag, prezentând rezultatele în ordinea descrescătoare a relevanței.

4.2.3.3. Rezultate experimentale

Sistemul va monitoriza mai multe sit-uri de știri ce conțin articole despre tehnologii de ultimă oră. Sistemul va păstra compilațiile din mai multe zile și le va evalua dacă știrile conținute sunt relevante. Sistemul va monitoriza și adrese date de utilizator.

În acest sens, pot fi făcute câteva observații deoarece există câțiva factori care cred că micșorează acuratețea sistemului. Mai întâi e dificil de determinat ce link-uri reprezintă titluri de știri și care dintre ele sunt irelevante (cum ar fi reclamele). În acest etapă de dezvoltare a agentului, toate link-urile din pagină sunt folosite pentru a calcula similaritatea, nu doar acele link-uri care reprezintă titluri de știri. În doilea rând, când se calculează vectorii TF-IDF, textul reclamelor (materialele irelevante de pe lângă știri) afectează acuratețea algoritmului TF-IDF.

4.2.4. Rafinarea căutării prin adăugarea unor noi termeni și feedback de relevanță

4.2.4.1. Modelul perechilor de termeni pentru a extrage termeni relevanți

Cuvintele cheie singulare sunt de obicei ambigue sau prea generale. Mai mult, ele pot să apară în foarte multe documente ceea ce face ca rezultatele unei căutări să fie foarte numeroase (mii de link-uri), mare parte dintre ele fiind irelevante față de ceea ce a dorit utilizatorul. Modificând interogarea prin adăugarea de noi cuvinte cheie se poate rafina căutarea și furniza o îmbunătățire considerabilă a rezultatelor obținute. Cuvintele ce sunt folosite pentru rafinare trebuie să aibă înțelesuri care să elimine (să micșoreze) ambiguitatea interogării.

Există 3 căi de a extinde o interogare:

– extindere manuală

– extindere semi-automată

– extindere automată

Indiferent ce metodă ar fi folosită, punctul cheie rămâne acela de a obține cuvintele cele mai bune pentru a rafina interogarea. În extinderea manuală, deși utilizatorul știe sensul intenționat al cuvântului cheie care îl folosește s-ar putea să nu fie capabil să ofere cele mai bune cuvinte cheie pentru rafinare. Cele mai bune cuvinte cheie de rafinare sunt acelea care apar cel mai frecvent asociate cu un cuvânt sau mai multe, în sensul intenționat (de utilizator), într-un număr mare de documente. Cu alte cuvinte una dintre caracteristicile cuvintelor „bune” pentru rafinare este aceea de a fi specifice unui domeniu. În acest subcapitol voi prezenta o metodă de a găsi automat cuvinte corespunzătoare, pentru a restrânge și rafina căutarea și a obține documente relevante.

Voi folosi modelul perechilor de termeni. Dacă un cuvânt S este corelat semnificativ cu un alt cuvânt T, atunci perechea (S,T) se consideră o pereche de termeni, unde S este activatorul iar T este cuvântul activat. Când S apare în document, el activează T, modificând probabilitatea estimată. De aceea, când apare cuvântul S într-un anumit punct în document, ne așteptăm cu o anumită probabilitate să apară și cuvântul T undeva după S. Informația mutuală MI (mutual information), (ce ia în considerare ordinea cuvintelor) reprezintă o măsură a corelației și este utilizată pentru a extrage perechi de declanșare din culegeri de texte foarte mari. Formula informației mutuale este următoarea:

4.2.4.2. Algoritmul de extindere a interogării

Metoda perechilor de termeni poate oferi multe cuvinte candidate pentru rafinare. Întrebarea care se pune este câte cuvinte și care dintre ele trebuie folosite în orice situație. Pentru o căutare cu un singur cuvânt, primele cuvinte din perechea de termeni sunt folosite pentru a extinde căutarea. Pentru o căutare cu mai mult de două cuvinte cheie, alegerea devine complicată.

Am folosit următorul algoritm pentru extinderea interogării bazat pe perechi de termeni.

Presupunem că sunt cuvinte cheie iar numărul dorit de cuvinte de rafinare este N. Inițializăm , iar S este mulțimea vidă.

1. , unde este mulțimea de termeni de activare pentru .

sunt sortate în ordinea descrescătoare a informației mutuale.

, unde este mulțimea de termeni de activare pentru termenul

, unde este mulțimea de termeni de activare pentru termenul

2. , unde e una din combinările de n seturi luate câte m. Cuvintele din S sunt sortate în ordinea descrescătoare a informației mutuale.

3. Daca atunci primele N cuvinte din S sunt cuvinte de rafinare – STOP

4. Altfel, , mergi la pasul 2

Această metodă îmbunătățește rata de revocare a unei căutări. De exemplu dacă un sistem folosește algoritmul TF-IDF pentru a extrage cuvintele necesare în procesul de indexare a unui document, unele cuvinte pot fi ignorate datorită ponderii scăzute. Totuși câteva cuvinte ce apar în pot fi selectate pentru a ajuta la eliminarea documentelor în care apar cuvintele ignorate ceea ce îmbunătățește rata de revocare.

Această metodă oferă informație neambiguă pentru cuvinte cheie ambigue.

4.2.4.3. Feedback de relevanță

Una din cele mai importante modalități prin care tehnologia extragerii informației susține rafinarea căutărilor este feedback-ul de relevanță. Feedback-ul de relevanță este un proces prin care utilizatorii identifică documente relevante dintr-o listă de documente obținute și sistemul creează apoi o nouă interogare bazată pe documentele relevante date drept model. Ideea este că, dacă interogarea nou formată este bazată pe documente ce sunt similare cu documentele relevante dorite, atunci și rezultatele obținute vor fi documente similare cu documentele relevante dorite, date drept model. Problema centrală a feedback-ului de relevanță constă în selectarea cuvintelor, frazelor din documentele relevante și calcularea ponderilor pentru aceste caracteristici în contextul unei noi interogări.

Contextul cuvintelor cheie din paginile web relevante va fi folosit pentru a rafina căutarea, deoarece am considerat că dacă un utilizator dă o pagină drept relevantă pentru ceea ce caută, contextul cuvintelor cheie este mai informativ decât conținutul paginii.

Având o pagină relevantă, sistemul caută atât cuvinte cheie (presupunem că este unul din cuvintele cheie) cât și contextul cuvintelor cheie (presupunem că contextul unui cuvânt cheie este ). Pentru fiecare cuvânt cheie sistemul extrage grupuri de 5 cuvinte înainte de și grupuri de 5 cuvinte după , până când toate cuvintele din interogare sunt procesate.

Aceste grupuri de cuvinte sunt folosite apoi în etapa de ștergere a cuvintelor de stop și de calculare a frecvenței de apariție. După terminarea acestei etape se folosesc cuvintele cheie cu frecvența de apariție cea mai mare.

4.2.5. Descrierea agentului

4.2.5.1. Personal Information Agent – prezentare generală

Personal Information Agent este un agent personal pentru navigare și căutare în web. Însoțește utilizatorul când navighează pe Internet și oferă informații pe care le extrage folosind profilul utilizator (realizat în timpul navigării și folosirii agentului).

Serviciile oferite de agent sunt următoarele:

– îmbunătățește căutarea prin folosirea mai multor motoare pentru căutare, prin extinderea și rafinarea interogării și prin feedback de relevanță. Agentul trimite cererea la mai multe motoare de căutare, extrage link-urile din paginile cu rezultate și le reordonează;

– asistă utilizatorul în procesul de navigare. Agentul învață interesele curente ale utilizatorului; recomandă noi URL-uri în funcție de profilul curent și de resursele selectate (atât sit-urile cu știri cât și URL-urile date de utilizator pentru a fi monitorizate); monitorizează bookmark-urile din browser-ul folosit (Internet Explorer, Netscape Navigator și Opera); caută alte pagini asemănătoare cu pagina curentă (prin extragerea cuvintelor relevante din pagină și crearea unei interogări ce este trimisă motoarelor de căutare); permite trimiterea prin e-mail a conținutului paginii curente sau numai a adresei acesteia;

– navigare off-line. Agentul permite salvarea paginii curente (sau până la un anumit nivel de adâncime specificat de utilizator).

Agentul se compune din două părți și anume un proxy și un controler (care este un aplet Java). Deoarece agentul este dezvoltat în limbajul de programare Java pentru execuția programului este necesară prezența mașinii virtuale Java (minim JRE 1.2) în sistemul de calcul al utilizatorului.

Fig. 4.2.2. Interfața grafică a proxy-ului

Fig. 4.2.3. Aplet-ul PIA în pagina java.sun.com

Browser-ul pentru Internet ce va fi folosit (Internet Explorer, Netscape Navigator, Mozilla, Opera) trebuie configurat să folosească ca proxy: localhost și portul 30000 (adresa portului poate fi modificată ulterior de către utilizator).

Pentru executarea programului se folosește comanda: java PIA din directorul în care este instalat.

Când se navighează pe Internet, la sfârșitul fiecărei pagini va apare aplet-ul ce conține două butoane: Controller și Relevant. Se mai afișează URL-ul complet al paginii curente precum și ora și data curentă.

Fig. 4.2.4. PIA Controler (aplet Java ce apare în fiecare pagină)

Prin apăsarea butonului Relevant se indică agentului că pagina curentă este relevantă pentru interesele curente ale utilizatorului. Conținutul paginii va fi folosit pentru modificarea profilului (folosind algoritmul prezentat mai sus pentru feedback de relevanță).

La apăsarea butonului Controller se va afișa o fereastră ce conține comenzile posibile pentru pagina curentă.

Fig. 4.2.5. Aplet-ul ce conține comenzile posibile pentru pagina curentă

Comenzile agentului sunt următoarele:

Alias – permite specificarea unui alias pentru URL-ul curent. Acest nume poate fi folosit în browser-ul web în locul URL-ului.

Fig. 4.2.6. Listarea alias-urilor create de utilizator

Dictionary – permite căutarea explicației unui cuvânt în câteva dicționare on-line (Merriam-Webster, Babylon pentru limba engleză și dicționarele AllNet și Kappa pentru limba română).

Fig. 4.2.6. Căutarea explicației cuvântului „point” folosind dicționarul Babylon

Fig. 4.2.7. Pagina ce conține explicația pentru cuvântul „point” din dicționarul Webster

Download – permite salvarea paginilor pentru navigare off-line. Se pot face setări pentru nivelul până la care se salvează pornind din pagina curentă, dacă se salvează pagini din alte sit-uri sau numai din sit-ul curent, tipul de conținut ce va fi salvat (text, imagini, audio, video).

More – permite căutarea paginilor asemănătoare cu pagina curentă (prin crearea unei interogări ce conține cuvintele relevante din pagină și trimiterea acesteia la motoarele de căutare)

Profile – permite afișarea profilului curent (sunt afișate cuvintele cheie și ponderea calculată folosind algoritmul TF-IDF prezentat mai sus)

Fig. 4.2.8. Profilul utilizator creat la identificarea ca relevantă a paginii java.sun.com

Întreg profilul utilizator creat la vizitarea paginii http://java.sun.com este prezentat mai jos:

# Oct 13 16:12:12 EEST 2007

download=4

network=3

sdk=2

official=2

participate=2

certification=3

4press=2

javaone=5

technology=15

platform=2

live=2

sun=10

tip=2

wireless=2

service=2

program=2

industry=2

ejb=2

read=2

hot=2

oct=3

includ=2

upgrade=2

java=38

apis=2

start=2

professional=2

advanc=2

conference=4

application=6

edition=2

article=3

center=3

microsystem=2

register=2

sample=2

online=3

trademark=3

source=6

faq=2

end=2

tutorial=3

resource=4

community=7

se=5

september=2

tech=2

sery=2

developer=9

technical=2

access=2

enterprise=4

forum=3

october=2

new=9

license=3

ee=3

newsletter=2

code=2

CurrentProfile=java+technology+sun+developer+new+community+source+application+se+javaone+download+conference+resource+enterprise+oct+center+online+forum+ee+network+certification+article+trademark+tutorial+license+sdk+participate+press+live+tip+service+industry+read+upgrade+apis+professional+edition+register+end+tech+access+code+official+platform+wireless+program+ejb+hot+includ+start+advanc+microsystem+sample+faq+september+sery+technical+october+newsletter

CurrentWeight=0.167+0.066+0.044+0.039+0.039+0.030+0.026+0.026+0.022+0.022+0.017+0.017+0.017+0.017+0.013+0.013+0.013+0.013+0.013+0.013+0.013+0.013+0.013+0.013+0.013+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008+0.008

Search – permite trimiterea unei interogări către motoarele de căutare selectate și prezintă opțiuni pentru rafinare (extrăgând termeni din profilul curent cum am arătat în algoritmul pentru rafinarea și extinderea interogării)

Send – permite trimiterea prin e-mail a conținutului paginii curente sau doar a adresei acesteia.

Fig. 4.2.9. Trimiterea prin e-mail a URL-ului paginii curente

Translate – permite traducerea automată a paginii folosind sisteme de traducere on-line (sunt configurate două sisteme Google Language Tools și AltaVista BabelFish Translation Service)

4.2.6. Scurtă prezentare a altor agenți de informare

WebWatcher este un agent ghid pentru Web. Învață din experiența mai multor utilizatori pentru a îmbunătăți capacitatea de recomandare. Letizia poate recomanda pagini asemănătoare prin realizarea unor căutări anticipate. Syskil & Webert este un agent software ce învață să evalueze pagini din web și decide ce pagini l-ar putea interesa pe utilizator. Lira lucrează off-line și oferă un set de pagini ce se potrivesc cu interesul utilizatorului. Daily Briefing permite folosirea agenților inteligenți autonomi pentru a realiza căutare de știri și a realiza un ziar personalizat. WBI este un agent personal care a fost conceput pentru a personaliza navigarea pe web. Metabot este o aplicație client-server dezvoltată în Java pentru a realiza căutări în web folosind mai multe motoare de căutare. CoolURL este un sistem multiagent folosit pentru a recomanda pagini web într-o comunitate de utilizatori. Beehive este un sistem distribuit pentru partajarea și filtrarea informației. Firefly folosește agenți inteligenți ce automatizează procesul de extragere de informații din web bazându-se pe cunoștințele despre utilizatori și interesele acestora (folosește filtrarea socială). WebWire folosește tehnologia rețelelor neuronale și filtrarea colaborativă adaptivă pentru a filtra informația relevantă pentru utilizator.

4.2.7. Concluzii

Personal Information Agent este un agent personal ce rulează pe mașina utilizatorului. Însoțește utilizatorul de la o pagină web la alta pentru a oferi asistență. Poate învăța profilul utilizatorului, poate realiza o compilație de știri și ajută utilizatorul să îmbunătățească căutarea prin extinderea interogărilor și feedback de relevanță. Oferă ajutor utilizatorului și prin alte căi și anume prin folosirea alias-urilor pentru anumite pagini web, aducerea pe mașina locală a paginilor web ce sunt considerate relevante pentru utilizator, prin monitorizarea bookmark-urilor și prin monitorizarea anumitor pagini web specificate de utilizator.

În momentul de față pentru a reprezenta profilul utilizatorului utilizez doar cuvinte. Pentru viitor doresc să folosesc și fraze pentru reprezentarea profilului utilizatorului și să dezvolt euristici pentru eliminarea reclamelor.

Personal Information Agent generează o listă cu pagini interesante pe baza unor vectori multipli TF-IDF, fiecare reprezentând un subiect de interes.

PIA a fost dezvoltat pentru a determina relevanța unui document web și a sugera noi informații.

Majoritatea sistemelor de personalizare au nevoie de date de instruire, pentru a construi și menține profilele utilizatorilor. Sistemele de personalizare pot fi împărțite în două categorii: sisteme cu filtrarea colaborativă și sisteme ce se preocupă de un singur utilizator.

Două procese sunt critice în proiectarea unui sistem de personalizare pentru un singur utilizator: unul este modelarea intereselor utilizatorului în mai multe domenii și altul este menținerea la zi a profilelor. În general, interesele utilizatorului aparțin mai multor domenii (de exemplu, utilizatorul poate fi interesat de baschet, filme și jocuri pe calculator). Pentru a urmări interesele utilizatorului, sistemul de personalizare trebuie să identifice și să păstreze cât mai multe domenii de interes ale utilizatorului. PIA folosește un model al vectorial în care fiecare domeniu de interes al utilizatorului este reprezentat printr-un vector de cuvinte cheie.

Pentru a capta schimbările de interes ale utilizatorului, sistemul de personalizare are nevoie de date de instruire pentru a modifica periodic profilele utilizatorului. PIA folosește în mod explicit feedback de relevanță pentru a obține date de instruire. Este folosită doar informația pozitivă (documentele pe care utilizatorul le consideră relevante) și aceasta deoarece numărul de documente irelevante este mult mai mare decât numărul de documente relevante. PIA modifică ponderile cuvintelor (ponderi ce se păstrează în vectori de cuvinte cheie) când interesul utilizatorului se schimbă.

În concluzie în primul subcapitol s-au prezentat agenții personali de informare pentru web (clasificare, cerințe și arhitectură) iar în subcapitolul 2 am descris un agent personal pentru web (Personal Information Agent) dezvoltat în limbajul de programare Java, care folosește pentru crearea profilului utilizator un set de vectori TF-IDF, modelează interesele curente ale utilizatorului și folosește drept feedback de relevanță specificarea explicită a utilizatorului iar pentru rafinarea interogării este utilizat modelul perechilor de termeni cu scopul de a extrage cuvinte relevante.

Pe viitor îmi propun să implementez un cadru pentru feedback implicit (prin monitorizarea acțiunilor utilizatorului față de pagina curentă, prin contorizarea timpului petrecut în fiecare pagină).

4.3. Sisteme de recomandare și filtrare a informației bazate pe agenți pentru Internet

Sistemele de recomandare sunt sistemele în care utilizatorii partajează preferințele și obțin recomandări pentru obiecte nevăzute, într-o manieră oportună. Aceste sisteme trebuie să modeleze interacțiunile utilizatorului, pentru a capta ideea de preferință, de aceea modelul individual al utilizatorului devine necesar. Sisteme de recomandare bazate pe agenți sunt o extensie naturală a conceptului de sistem de recomandare la care se aplică paradigma agenților. În sistemele de recomandare bazate pe agenți, preferințele pot fi exprimate prin valorile asignate oamenilor/agenților, locurilor, studiilor și relațiilor. De exemplu în filtrarea colaborativă se folosesc evaluări implicite sau explicite ale obiectelor pentru a calcula similaritatea dintre utilizatori, care este folosită împreună cu evaluările pentru a face predicții asupra preferinței unor obiecte nevăzute. Pe de altă parte, filtrarea bazată pe conținut dă valori unor caracteristici de conținut cum ar fi informația demografică și/sau caracteristici de domeniu ale obiectelor pentru a crea profilele utilizator care apoi vor fi folosite pentru evaluarea preferințelor în cazul unor obiecte nevăzute. Motoarele de căutare bazate pe cuvinte cheie pot fi văzute ca un caz special de sistem de recomandare în care utilizatorul specifică profilul curent (prin folosirea cuvintelor cheie).

Alte abordări includ monitorizarea utilizatorului și identificarea unor anumite situații, evenimente sau modele de utilizare ce pot fi folosite mai târziu pentru a deduce preferințele bazându-se pe euristici sau pe reguli. În sfârșit s-a încercat îmbunătățirea predicției preferințelor prin utilizarea unor informații despre relațiile dintre oameni, dintre obiecte și dintre obiecte și oameni.

Acestea au fost încercări de a automatiza unul din cele mai naturale procese de filtrare a informației din perspectiva umană: selectarea informațiilor atât pe baza experienței proprii, cât și pe baza experienței și a cunoașterii altor oameni. Din punct de vedere al inteligenței artificiale este de mare interes dezvoltarea unor algoritmi ce învață despre utilizator.

Sistemele de recomandare bazate pe agenți pot fi clasificate după modelul de învățare astfel:

SaM ( Single Agent Model)

MaM (Multi Agent Model)

iar după tehnologia de filtrare:

filtre bazate pe conținut (Content-based filters CF)

filtre sociale (Social-based filters SF)

filtre bazate pe evenimente (Event-based Filters EF)

filtre bazate pe reputație (Reputation-based filters RF)

Fig. 4.3.1. Modele pentru sisteme de recomandare

După cum se vede din figura de mai sus, câteva tehnici de filtrare a informației nu pot fi aplicate decât sistemelor multiagent.

În continuare voi prezenta tehnicile folosite pentru dezvoltarea de filtre bazate pe conținut, filtre sociale, filtre bazate pe evenimente, filtre bazate pe reputație și filtre hibride.

4.3.1. Filtre bazate pe conținut

Majoritatea sistemelor ce suportă achiziția și menținerea profilelor utilizatorului folosesc filtre bazate pe conținut.

În aceste sisteme este obișnuit ca atât resursele (de exemplu paginile Web) cât și profilele utilizatorilor să fie reprezentate folosind același model (ex: modelul vectorial al cuvintelor cheie).

Fig. 4.3.2. Filtrare bazată pe conținut

După ce profilul a fost obținut acesta este comparat cu instanțele fiind filtrat. În mod normal, aceasta necesită folosirea unei măsuri de similaritate pentru evaluarea relevanței (de exemplu similaritate TF-IDF) după cum se vede în figura de mai sus.

4.3.2. Filtre colaborative

Fig. 4.3.3. Filtrare colaborativă

Filtrele colaborative nu dețin profilul utilizatorului în sensul în care acesta a fost descris mai sus (listă de elemente de tip <atribut, valoare>). Aceste sisteme partajează impresiile utilizatorilor asupra obiectelor, exprimate printr-o schemă de evaluare (notare, gradare, clasare) pentru a realiza predicții asupra evaluării altor elemente (nevăzute încă de utilizator), prezentându-le utilizatorului pe acelea care probabil că o să îi placă. Această predicție este bazată pe evaluarea (gradarea) anterioară, și pe evaluările altor utilizatori ai sistemului (similari în gândire) asupra acelorași elemente. În acest caz, profilul utilizatorului poate fi gândit ca un set de evaluări care este captat de către agent, de la utilizator.

Acest proces se numește filtrare colaborativă sau filtrare socială și poate avea diverse nivele de automatizare de la introducerea explicită a evaluărilor până la observarea comportamentului utilizatorului.

Două motive pentru adoptarea filtrării colaborative pot fi:

de obicei avem tendința de a asculta opinia (părerea) persoanelor în care avem încredere sau care „gândesc ca noi”.

lucruri similare celor care ne plac (sau nu ne plac) deja sunt mai ușor de plăcut (sau de respins).

În literatură algoritmii pentru implementarea funcției predictiv-colaborative sunt numiți algoritmi pentru filtrare colaborativă automată (Automated Collaborative Filtering – ACF). Cel mai folosit este algoritmul Pearson-r Correlative Algorithm. Dar și alți algoritmi de învățare au fost implementați și evaluați cum ar fi rețelele neuronale și rețelele bayesene. De asemenea au fost utilizate metode de învățare on-line și învățare inductivă.

O interesantă analiză a câtorva algoritmi a fost făcută de Breese în lucrarea „Empirical Analysis of Predictive Algorithms for Collaborative Filtering” în care clasificarea algoritmilor pentru filtrare colaborativă este următoarea:

Algoritmi bazați pe memorie:

Correlation (Pearson-r)

Vector Similarity (Term Frequency – Inverse Document Frequency – TF-IDF)

Algoritmi bazați pe model:

modele de clusterizare (clasificator bayesean)

model bazat pe rețele bayesene

Algoritmi pentru învățare on-line:

învățarea relațiilor binare

ponderare prin votarea majorității (Weighted Majority Voting)

4.3.3. Filtre bazate pe evenimente

Urmărirea obiceiurilor utilizatorilor în timpul navigării pe Web a devenit de interes pentru portalurile Web și siturile de comerț electronic care folosesc termenul marketing unu la unu pentru tehnologii care, pornind de la strategii de marketing tradiționale, pot oferi informații despre utilizatori și consumatori. Când această informație este folosită pentru a personaliza și recomanda informație se numește filtrare bazată pe evenimente.

Se pot folosi observații de la un singur utilizator sau de la milioane de oameni zilnic, acesta în funcție de modelul agentului / modelul utilizatorului folosit pentru învățare (SaM, MaM).

Un exemplu de agent ce folosește un filtru bazat pe evenimente este Letizia. Henry Lieberman, prin Letizia, a fost unul din primii cercetători ce a modelat comportamentul utilizatorului în procesul de navigare pe web și l-a folosit pentru a face recomandări.

Procesul de browsing al utilizatorului constă în a examina documentul HTML curent din browserul Web, și a lua deciziei dacă să urmeze vreo legătură din pagină sau să se întoarcă la un document anterior (existent în istoric – lista cu documente și locații vizitate) sau la un document din lista cu documente favorite, fie de a adăuga documentul curent în lista cu documente favorite. Diferite evenimente au diferite ponderi însă toate contribuie în procesul de decizie.

Observarea comportamentului utilizatorului în momentul în care navighează, poate spune multe sistemului despre interesul utilizatorului. Fiecare euristică este slabă de una singură, dar fiecare poate contribui la un raționament despre valoarea documentului.

De exemplu CiteSeer folosește ca măsură a interesului utilizatorului pentru pagina respectivă evenimentul salvării în bookmark. Alte sisteme, cum ar fi WebWatcher, folosesc modalitatea de parcurgere a link-urilor ca o măsură pentru interesul utilizatorului.

Alte măsuri ale filtrării bazate pe evenimente pot fi folosite pentru a crea legături între documente. De exemplu cât de des un document este accesat în combinație cu alt document în cadrul aceleași sesiuni. După Etzioni aceasta poate fi estimată prin analiza fișierelor log ale serverului de proxy (de exemplu se poate calcula P(D1|D2) – probabilitatea ca documentul D2 să fie salvat dacă documentul D1 a fost salvat).

Pe de altă parte o căutare bazată pe interogare este un eveniment ce poate ajuta la crearea unei legături între un set de interogări (cuvinte cheie ce reprezintă interesul utilizatorului) și utilizator. Istoricul interogărilor trimise la un motor de căutare de către utilizator reprezintă fără îndoială o informație foarte utilă pentru modelarea intereselor utilizatorului.

Interesant este de aflat cât de des este accesată o pagină sau o combinație de pagini. De asemenea, de mare interes este informația provenită din căutările bazate pe interogare (datele din interogările adresate unui motor de căutare).

Leiberman în articolul „Lets Browse: A Collaborative Browsing Agent” a propus navigarea web colaborativă. Câteva sisteme comerciale, cum ar fi Alexa, SideTalk și Yep, folosesc filtrarea bazată pe evenimente pentru căutare și navigare web colaborativă.

Criteriile bazate pe evenimente cele mai folosite pentru măsurarea calității bazate pe evenimente a paginilor Web sunt:

– cât de des este adăugat un site la lista de documente preferate

– cât de repede se încarcă site-ul

– cât timp petrec utilizatorii pe site

– cât de des este modificat site-ul

– câți utilizatori vizitează site-ul într-o oră

– câți utilizatori vizitează revin în orele de vârf

– cât de des motoarele de căutare conduc la site

– cât de des utilizatorul revine la site.

Este important de menționat faptul că timpul este cel mai important factor în cadrul filtrării bazate pe evenimente. Punctul cheie al acestei filtrări este adaptabilitatea în timp la necesitățile și interesele utilizatorilor pentru a da recomandări semnificative.

4.3.4. Filtre bazate pe reputație

Când există, sau poate fi inferată, o topologie între obiectele din spațiul țintă, aceasta poate fi folosită pentru a întări relațiile semantice dintre diferite componente cu scopul de a realiza predicția intereselor utilizatorului.

Un exemplu de filtru bazat pe reputație este CiteSeer care folosește indexarea citărilor pentru a îmbunătăți difuzarea și extragerea literaturii științifice în biblioteci digitale mari (cum este web-ul). Citările științifice sunt de fapt o topologie peste spațiul literaturii științifice care subsumează conceptul de reputație (mult mai des se fac referiri la cele mai cunoscute lucrări).

Într-un mod similar, Referal Web încearcă să găsească puncte de apropiere între cercetători, analizând paginile personale (și referirile din acestea). Diferența semnificativă față de indexarea citărilor este că se încearcă construirea unei topologii ce creează legături între oameni (de exemplu rețele sociale) și nu între lucrări științifice.

O altă topologie care a fost utilizată pentru filtrare bazată pe reputație este analiza structurii legăturilor (linkurilor) din Web.

De exemplu Google, Clever de la IBM, Web Archeology de la Compact-Digital, modelează Web-ul ca un graf și prin folosirea unor măsuri și euristici simple, se încearcă stabilirea unor subgrafuri de reputație a site-urilor pentru gradarea sit-urilor în căutările după cuvinte cheie.

Brin, fondatorul Google explică cum poate fi calculată reputația unei pagini Web: „Este o ecuație care spune că o pagină Web este importantă dacă pagini importante au legături către ea. Dacă X scrie un articol despre o companie și creează un link către sit-ul companiei de pe pagina proprie, atunci pagina companiei devine mai importantă prin această asociere.”

Măsuri cum ar fi numărul de pagini care conțin link-uri spre o pagină sau numărul de hiperlink-uri conținute de o pagină au condus la algoritmi precum HITS, cu ajutorul cărora se calculează huburile (Hubs) și autoritățile (Authorities). O pagină reprezentativă (o autoritate) conține foarte multe informații despre un anumit subiect. O pagină hub este una care conține un număr foarte mare de link-uri spre pagini ce conțin informații despre un anumit subiect. Huburile și autoritățile sunt două tipuri distincte de pagini ce manifestă o anumită simbioză: o pagină hub bună conține referințe spre mai multe autorități bune, în timp ce spre o autoritate bună se indică din mai multe pagini hub bune.

Un lucru important îl constituie diferența dintre popularitate și reputație. Popularitate este rezultatul filtrării bazate pe evenimente sau a filtrarii colaborative în timp ce reputația este produsul topologiei existente ce are o semnificație semantică.

4.3.5. Filtre hibride

Există în literatura sisteme ce folosesc combinații a mai multor abordări prezentate mai sus. Astfel FAB, CORBAWeb și LifeStyles folosesc combinații de filtre colaborative și filtre bazate pe conținut.

Google folosește filtre bazate pe reputație, filtre bazate pe evenimente pentru calcularea unor gradări implicite în filtrarea colaborativă și filtre bazate pe conținut.

Motorul de căutare Direct Hit folosește o combinație de filtre bazate pe evenimente (prin monitorizarea numărului de accesări a unei pagini în căutările bazate pe cuvinte cheie) pentru a determina popularitatea unei pagini folosită ca o măsura pentru a grada paginile web.

4.3.6. Concluzii

În acest subcapitol am prezentat conceptul de sistem de recomandare bazat pe agenți care extinde conceptul de motor de căutare și aplică diferite tehnici pentru învățarea profilului utilizatorului. Am definit diferite tipuri de sisteme de recomandare în funcție de modelul agentului / utilizatorului și de tehnicile fundamentale de filtrare a informației pe care le folosește.

4.4. Sistem de recomandare pentru pagini web (SR1)

O modalitate foarte populară de a reține informații relevante din Internet, este reprezentată de folosirea bookmark-urilor sau a agendelor ce conțin adrese favorite. Aceste funcții au fost încorporate în browser-ele web și în clienții de e-mail, cu scopul de a crea și a menține o „memorie permanentă” a sit-urilor web (adresele URL) și a adreselor de e-mail ce au o relevanță potențială pentru utilizator și urmează a fi folosite. Aceste sisteme, prezintă următoarele dezavantaje:

– lipsa unei portabilități imediate

– lipsa vizibilității din locații diferite

– menținerea lor este dificilă

În particular, bookmark-urile au fost văzute ca o sursă valoroasă de informații despre preferințele și interesele utilizatorului ([Keller et al., 1997]).

Este rezonabil să presupunem că dacă cineva adaugă o adresă URL în lista cu bookmark-uri, o face pentru că are un anumit interes în informația conținută de sit, sau cel puțin un interes în tipul de informații sau servicii oferite de acesta.

4.4.1. Introducere la sistemul de recomandare pentru pagini web (SR1)

Fără îndoială, în următoarea generație de sisteme de informare inteligente, agenții de informare cooperativi vor juca un rol fundamental în căutarea și găsirea de informații relevante în numele utilizatorilor, în medii complexe și deschise precum este și Internetul. Dat fiind că relevanța poate fi definită pentru un utilizator particular și în contextul unui domeniu (sau subiect) particular, dezvoltarea sistemelor de clasificare inteligente bazate pe conținut și personalizate, devine din ce în ce mai interesantă, mai atractivă. Pe de altă parte, învățarea profilelor ce reprezintă interesele utilizatorilor într-un domeniu particular, mai târziu folosită pentru filtrarea bazată pe conținut, s-a dovedit a fi o sarcină dificilă și aceasta în special deoarece, în funcție de utilizator, atributele relevante pentru fiecare clasă se modifică în timp.

Documentele, ca și profilele utilizatorilor, sunt în general reprezentate ca vectori de cuvinte cheie, cu scopul de a le compara și învăța. Datorită imensei varietăți de cuvinte folosite în limbajul natural, ne găsim într-un spațiu cu o dimensiune foarte mare ( caracteristici). Pe de altă parte, pentru un utilizator particular, este rezonabil să presupunem că procesarea unei mulțimi de documente relevante clasificate corect și documente irelevante dintr-un anumit domeniu de interes, poate duce la identificarea și izolarea unei mulțimi de cuvinte relevante pentru un domeniu. Mai târziu, aceste cuvinte (caracteristici) pot fi folosite pentru a face deosebirea între documentele ce aparțin unei anumite categorii. Astfel, aceste mulțimi specifice (utilizator-domeniu) de caracteristici relevante, (care le voi denumi în continuare prototipuri), pot fi folosite pentru a învăța să clasificăm documente. Merită a fi menționat faptul că aceste prototipuri se pot schimba în timp, deoarece utilizatorul dezvoltă o privire particulară pentru fiecare clasă. Această problemă a învățării personalizate, a clasificării de text, este de fapt similară cu aceea a învățării on-line din exemple când numărul de atribute relevante este mult mai mic decât numărul total de atribute și funcția concept se modifică în timp ([Blum, 1996]).

Pe de altă parte, sistemele multiagent cooperative, dețin informație socială implicită care poate fi potențial folosită pentru a îmbunătăți procesul de obținere a informației relevante, precum și rafinarea cunoașterii particulare a fiecărui agent. Folosind acest lucru, un număr de sisteme de filtrare a informației au fost implementate, pentru a recomanda utilizatorului ceea ce este probabil interesant pentru el. Aceasta se realizează pe baza evaluărilor (ratings), pe care alți utilizatori înrudiți (similari), le-au făcut pentru același obiect. De obicei, aceeași idee a fost dezvoltată pentru domenii specifice, cum ar fi „muzică” sau „filme”, ca în Firefly și Movie Critic. Un inconvenient al acestor sisteme este că unele ignoră orice informație ce poate fi extrasă din conținut. Acest lucru este convenabil pentru domenii ce sunt greu de analizat în termeni de conținut (cum ar fi amuzament, distracție), dar cu siguranță nu este potrivită pentru medii textuale cum ar fi web-ul. Aceste sisteme cer de la utilizator, o intervenție directă pentru clasificarea și/sau evaluarea informațiilor.

În acest capitol voi descrie un sistem multiagent ce are ca scop să combine avantajele filtrării bazate pe conținut cu cea colaborativă. În acest sistem, agentul personal ajută utilizatorul să clasifice informația specifică unui domeniu găsită pe web și recomandă URL-uri altor utilizatori cu interese similare. Aceasta, în cele din urmă va aduce beneficii pentru utilizatori deoarece acestora le sunt recomandate documente ce au fost evaluate în special dacă fac o muncă colaborativă de informare (de exemplu cum ar fi cercetarea științifică). Acești agenți învață atât din resurse locale cât și partajate. Strategia include un proces de feedback „clasificare-recomandare” în care agentul sugerează clasificarea unui document salvat iar evaluările documentelor sunt extrase din acțiunile utilizatorului (acceptarea, respingerea unei recomandări sau modificarea sugestiei agentului). Astfel, cu cât clasifică mai bine, cu atât recomandă mai bine. În același mod, cu cât folosesc sistemul cât mai mulți utilizatori (colectând informații sau primind recomandări de la alți utilizatori), cu atât este mai mare șansa de modificare a prototipului utilizatorului pentru fiecare domeniu de studiu, dând agentului posibilitatea de a fi cât mai precis în următorul pas de clasificare.

Voi folosi un algoritm de clasificare a textului similar cu algoritmul lui Rocchio adaptat pentru clasificarea textului ([Salton, Buckley, 1990]). Diferența majoră este că datorită naturii active a sistemului, termenii de indexare sunt specifici domeniului și pot fi adăugați sau modificați în prototip. Sistemul utilizează un tip special de feedback de relevanță de fiecare dată când un document este adăugat în baza de date (în loc să învețe din mulțimi de instruire cu un număr fix de cuvinte cheie). Acest lucru este posibil deoarece utilizatorul evaluează implicit documentele dacă sunt interesante sau nu, după cum se va arăta în descrierea sistemului. Voi folosi un algoritm de clasificare combinat cu câștigul așteptat de informație (Information Gain) pentru a face selecția caracteristicilor relevante cu scopul de a crea un prototip pozitiv de termeni de indexare pentru fiecare clasă. Ca termeni de indexare voi folosi fraze, cuvinte și rădăcini de cuvinte.

Acești termeni pot fi creați fie manual, fie extrași din documentele salvate de utilizator. Pentru filtrarea colaborativă, voi folosi o combinație de clusterizare a documentelor cu algoritmul Pearson-r. Matricea utilizator-categorie, necesară pentru calcularea corelației dintre doi utilizatori este construită automat prin contorizarea pentru un utilizator a numărului de clasificări corecte a unui document într-o anumita clasă. Voi folosi și un factor de încredere al utilizatorului care servește ca feedback pentru procesul de recomandare.

4.4.2. Descrierea sistemului

Acest sistem este dezvoltat cu scopul de a asista utilizatorul în procesul de clasificare a documentelor (bookmark-urilor) obținute din web și de a le recomanda automat altor utilizatori ai sistemului ce au interese similare.

Fig. 4.4.1. Arhitectura sistemului

Sistemul conține o bază de date cu bookmark-uri, particularizată pentru fiecare utilizator și un agent software care monitorizează acțiunile utilizatorului. Când utilizatorul înregistrează o pagină ca fiind interesantă (relevantă), agentul lui sugerează o clasificare într-o categorie predefinită, pe baza conținutului documentului și pe baza profilelor utilizator. Apoi utilizatorul are posibilitatea să reconfirme sugestia sau să modifice clasificarea în altă categorie pe care o considera potrivită pentru document.

Fig. 4.4.2. Clasificarea bookmark-urilor

În paralel, agentul verifică dacă există bookmark-uri noi și le recomandă pe acestea altor utilizatori, care la rândul lor pot să le accepte sau să le refuze în momentul când se vor conecta la sistem (și vor primi recomandările).

Fig. 4.4.3. Recomandarea bookmark-urilor

În timpul procesului de înregistrare, utilizatorului i se cere să selecteze ariile de interes. Această informație este folosită pentru a construi un profil inițial al utilizatorului pentru fiecare clasă. Agentul, modifică profilul utilizatorului pentru o clasă specifică, de fiecare dată când un număr k de documente au fost corect clasificate în ea. În acest fel, sistemul de recomandare folosește doar profile actuale pentru clasificare, profile ce reflectă interesele curente ale utilizatorului. În timpul acestui proces, agentul învață cum să folosească clasificarea și recomandarea. Schema funcțională a sistemului este prezentată în figura următoare.

Fig. 4.4.4. Schema funcțională a sistemului de recomandare.

4.4.3. Procesul de clasificare

În ceea ce privește clasificarea, aceasta este o combinație de două probleme: clasificarea textului și feedback de relevanță pentru extragere. Clasificarea textului, poate fi definită ca procesul de încadrare al documentelor (ce conțin text) în categorii predefinite. Pe de altă parte feedback-ul de relevanță este folosit în sistemele de extragere. Aceste sisteme încep cu o interogare inițială, în mod normal dată de utilizator, pentru a construi un clasificator folosit pentru evaluarea documentelor (poate face distincția între documentele relevante și cele irelevante). Utilizatorul are apoi posibilitatea să marcheze o parte din documentele relevante, care ulterior vor fi folosite împreună cu interogarea inițială, de o procedură de învățare supervizată, pentru a produce un nou clasificator (care de obicei îmbunătățește eficiența extragerii).

Fig. 4.4.5. Clasificarea textului pe baza conținutului

Clasificarea textului și extragerea au fost tratate în literatură oarecum separat. Unii autori sunt de părere că în general clasificarea este mai potrivită pentru evaluare decât pentru extragere deoarece, evită problema definirii relevanței documentelor (care diferă de la un utilizator la altul). Filtrarea informației este conceptul potrivit pentru sistemele de recomandare în sensul că prezintă atât proprietăți de clasificare cât și de extragere.

4.4.4. Modalitatea de construcție a prototipurilor

În acest sistem de recomandare, un document ce aparține unui utilizator este reprezentat ca o listă de termeni ce rezultă din eliminarea cuvintelor de stop (din limba engleză) din documentul original, care este adus din web (cunoscându-se URL-ul acestuia). Aceste documente, fie sunt incluse explicit în lista de bookmark-uri, fie sunt acceptate de utilizator în cazul recomandării. Dacă o recomandare este respinsă, câteodată documentul este salvat de agent ca exemplu negativ.

Deoarece încerc să construiesc un sistem de clasificare a documentelor (un sistem care învață), este de interes să fie păstrate exemplele pozitive și negative dintre documentele ce au fost deja clasificate. În acest sistem de recomandare, exemplele pozitive pentru un utilizator specific și pentru o clasă sunt acele documente înregistrate explicit sau acceptate de utilizatorul și clasificate în clasa . Acceptarea unui bookmark recomandat este doar un caz special de înregistrare a acestuia. Pe de altă parte, exemplele negative sunt fie bookmark-uri șterse, fie clasificate greșit, fie recomandările refuzate, care sunt clasificate în clasa . În cazul unei recomandări refuzate, documentul este clasificat doar de agent (utilizatorul nu va mai reconfirma clasificarea pentru bookmark-ul refuzat). Vor fi păstrate doar bookmark-urile ce se încadrează într-o clasă în care utilizatorul are cel puțin un bookmark clasificat corect (o clasă în care utilizatorul a arătat interes).

Fig. 4.4.6. Clasificatoare care învață din text

Voi folosi următoarele notații:

– mulțimea documentelor clasificate ca exemple pozitive pentru utilizatorul și clasa .

– mulțimea documentelor clasificate ca exemple negative pentru utilizatorul și clasa .

Pentru un utilizator dat, doresc să construiesc un clasificator Q pentru fiecare categorie, ca o listă de termeni. Scopul este acela de a aplica măsura similarității din ecuația de mai jos (care este folosită în domeniul extragerii de informații) pentru a evalua un document în funcție de o interogare dată. Clasificatorul cel mai similar cu documentul, va indica clasa candidată.

Pentru ponderea termenilor, voi folosi algoritmul TF-IDF (frecvența termenilor – frecvența document inversă), deoarece este o schemă de ponderare îndelung testată în domeniul extragerii de informații. Ponderea se calculează ca produsul dintre frecvența termenilor din documentul d, notată cu , și , care reprezintă frecvența document inversă (Inverse Document Frequency – IDF). N este numărul total de documente din colecție si este numărul total de apariții a termenului în colecție. Pentru fiecare utilizator voi păstra colecții separate.

Problema constă în învățarea unor clasificatoare care să reflecte interesele utilizatorului în termeni de feedback de relevanță și selecția caracteristicilor.

4.4.5. Feedback de relevanță

Având termeni unici in Q, numit pas al prototipului, se observă că Q și D pot fi reprezentate ca vectori numerici, ce conțin ponderile asociate acestor termeni în Q și D, notate cu și . Produsul lor este de fapt măsura similarității. De asemenea Q și D se pot exprima prin vectori numerici ce conțin frecvența termenilor fiecărui element din P în ele:

și

Se poate descrie matematic procesul de feedback de relevanță:

, , dacă și , dacă

Apoi se recalculează pe baza valorilor lui .

O alta abordare este algoritmul lui Rocchio ([Salton, Buckley, 1990]):

, în care (valori uzuale și )

Problema acestor algoritmi și motivul pentru care ar trebuie să nu-i folosesc pentru sistemul de recomandare este că nu iau în calcul posibilitatea că dimensiunea vectorilor Q și D se poate modifica în timp. Cu alte cuvinte termenii unici din P pot fi șterși sau adăugați pentru a reflecta interesele curente ale utilizatorului (selecția caracteristicilor).

4.4.5.1. Algoritmul pentru construcția lui pas cu pas

Se va prezenta în continuare algoritmul pentru construcția lui pas cu pas, cu scopul de a reflecta interesele curente ale utilizatorului. Voi începe cu câteva definiții necesare:

Definiție: Se numește prototip pozitiv pentru clasa , utilizatorul la momentul t:

, un set de termeni de indexare unici, aleși să fie relevanți pentru clasa până la momentul t.

Definiție: Se numește prototip negativ pentru clasa , utilizatorul la momentul t:

, ca o submulțime din prototipul pozitiv corespunzător, în care fiecare element poate fi găsit măcar o singură dată în setul de documente clasificate ca exemple negative pentru clasa .

Algoritmul de construcție al vectorului pentru prototipul pozitiv este următorul:

în care n este numărul de documente folosit ca bază pentru selecția caracteristicilor.

Acest algoritm se aplică în același mod pentru prototipul negativ.

Algoritmul de construcție al vectorului pentru prototipul negativ este următorul:

Am redefinit măsura similarității dintre clasa și documentul D astfel:

Exprimată în cuvinte această ecuație, se referă la faptul că, pentru un utilizator dat , similaritatea dintre clasa și documentul D la momentul de timp t este egală cu similaritatea dintre D și clasificatorul ce corespunde prototipului pozitiv, din care se scade similaritatea dintre D și clasificatorul ce corespunde prototipului negativ. Intuitiv acesta spune că un document este similar cu o clasă dacă este similar cu clasa prototipului pozitiv și nu este similar cu clasa prototipului negativ. Este important de spus că prototipul pozitiv inițial pentru fiecare clasă este o listă de cuvinte cheie selectate din domeniul ce a fost integrat în sistem pentru a oferi cel puțin o clasificare inițială. În final se va folosi o euristică pentru evaluare. Această euristică spune că este mai probabil ca un document să fie clasificat într-o clasă în care utilizatorul a arătat interes mai înainte. Pentru acest lucru se va alege clasa cu cel mai mare scor.

4.4.6. Selecția caracteristicilor

Metodele de selecție automată a caracteristicilor includ eliminarea termenilor neinformativi în funcție de statisticile corpusurilor (colecții mari de texte). În studiile comparate despre selecția caracteristicilor pentru categorisirea textului, câștigul de informație (information gain – IG) s-a dovedit a fi unul din cele mai eficiente criterii pentru acest proces. Câștigul de informație este aplicat în domeniul învățării automate ca un criteriu al alegerii bune a termenilor. Voi folosi câștigul de informație pentru a selecta termeni informativi din culegerea de texte.

Entropia este o măsură care caracterizează puritatea/impuritatea unei colecții arbitrare de exemple ([Mitchell, 1996]). Fiind dat un set S, conținând doar exemple pozitive si negative a unui concept dorit, entropia setului S este:

unde – proporția exemplelor negative din S și – proporția exemplelor pozitive din S.

Câștigul de informație este reducerea așteptată a entropiei, cauzată de partiționarea exemplelor după un atribut. Mai precis, câștigul de informației IG(S,A) a unui atribut A, pentru colecția de exemple S este definit ca:

Voi redefini câștigul de informație așteptat pe care prezența (sau absența) termenului o dă în clasificarea mulțimii de pagini (S), pentru o clasa și un utilizator particular .

în care

În ecuația de mai sus este probabilitatea ca să fie prezent într-o pagină, este o mulțime de pagini ce conțin cel puțin o apariție a lui iar sunt paginile ce aparțin clasei c.

Folosind această abordare, în sistemele de recomandare agentul găsește primii k cei mai informativi termeni din mulțimea S a ultimelor n documente clasificate (Syskill și Webert au propus și .

Din cei 128 termeni selectați, 28 vor fi ficși și vor constitui nucleul de cuvinte cheie (sau o ontologie de bază pentru un subiect), fiind dată pentru acea categorie ca un clasificator inițial.

Pentru celelalte cuvinte voi folosi următoarea schemă cu scopul de a adăuga și/sau înlocui cuvinte în prototipul pozitiv.

1. Folosirea unui algoritm de extragerea rădăcinii cuvintelor (algoritmul lui Porter 1980) pentru a crea lista cu termeni.

2. Înlocuirea doar a termenilor ce se găsesc în prototip dar nu se găsesc în lista termenilor celor mai informativi.

3. Se modifică ponderile termenilor înlocuiți sau adăugați în funcție de cele n documente procesate de agent pentru acest scop (după cum s-a arătat în algoritmul pentru construcția clasificatorului).

Procesul de calcul al câștigului de informație (IG) este un proces consumator de timp, dar în sistemul de recomandare acesta ar putea fi îmbunătățit prin alegerea lui unu n mic și modificând doar ponderile termenilor selectați în funcție de aceste documente.

4.4.7. Procesul de recomandare

Agentul construiește două matrice cu scopul de a învăța să recomande un document salvat de utilizator. Acestea sunt: matricea utilizator-categorie și factorul de încredere al utilizatorului, în care m este numărul de utilizatori și n este numărul de categorii. Matricea utilizator-categorie este construită automat, numărând pentru un utilizator, de câte ori un document a fost clasificat corect într-o anumită clasă. În timpul înregistrării în sistemul de recomandare, această matrice este inițializată cu una din clasele față de care utilizatorul s-a arătat interesat.

Fig. 4.4.7. Procesul de recomandare

(Pentru selectarea utilizatorilor care vor primi recomandări trebuie calculată corelația dintre utilizatorul n și utilizatorii de la 1 la k. Astfel pentru fiecare categorie se calculează numărul de documente clasificate corect. Folosind aceste valori se poate calcula corelația dintre utilizatori.)

Ideea de la care s-a pornit a fost ca matricea utilizator-categorie să fie folosită pentru calcularea corelației dintre utilizatorul și ceilalți utilizatori folosind algoritmul Pearson-r (ecuația de mai jos). Apoi, se recomandă bookmark-urile nou clasificate, acelor utilizatori al căror factor de corelație este mare.

,

în care

O problemă a abordării anterioare constă în faptul că această corelație este calculată ca o medie a corelației dintre doi utilizatori, fără a ține cont de relațiile dintre subiecte. De aceea, dacă agentul decide să recomande un bookmark clasificat într-o clasă x dar utilizatorul este strâns corelat cu alt utilizator (pe baza valorilor din matrice în funcție de alte clase), atunci bookmark-ul va fi recomand acelui utilizator. Se poate presupune că aceste clase nu sunt corelate cu clasa ce conține bookmark-ul, lucru care nu este de dorit, deoarece ar trebui ca agentul să recomande bookmark-uri utilizatorilor care sunt interesați de subiectele de care aceste bookmark-uri aparțin.

Pentru aceasta se mărește ponderea pe care o are corelația dintre utilizatorii claselor corelate cu clasa bookmark-ului ce urmează a fi recomandat. Din acest motiv, voi folosi conceptul de similaritate dintre două clase pentru un utilizator , la momentul t:

,

în care este numărul de termeni comuni iar este numărul de termeni din A.

Având clasa a bookmark-ului, clasa vectorului de similaritate al claselor, este definit prin:

, în care n este numărul de clase.

Mai departe, multiplicăm acest vector cu matricea utilizator-categorie și se obține o matrice utilizator-categorie ponderată.

Folosind această nouă matrice utilizator-categorie ca, în tabelul de mai jos, dar cu valori modificate (ponderate), voi calcula ponderea dintre subiectul utilizator (care recomandă) și alți utilizatori (candidați să primească recomandarea) ca pe o corelație dintre ei, multiplicată cu factorul de încredere dintre aceștia.

Tabel. 4.4.8. Matrice utilizator – categorie

În ecuația de mai sus, factorul de încredere al utilizatorului în utilizatorul , este o funcție cu valori intre 0,1 și 1. Se obține 1 pentru toți utilizatorii noi și se crește sau se scade cu 0,01 de fiecare dată când un bookmark recomandat de utilizatorul este acceptat sau respins de utilizatorul .

Trebuie făcută observația că:

Aceasta înseamnă că încrederea nu este bidirecțională, diferă la fiecare pereche de utilizatori.

Pentru a decide cui se face recomandarea, folosesc un prag de 0,5 ca pondere minimă. Recomandarea se face la un număr limitat de utilizatori pentru a menține o proporție rezonabilă de utilizatori candidați în a primi recomandări, în funcție de numărul de utilizatori înregistrați în sistem (și aceasta deoarece numărul de utilizatori poate fi foarte mare).

Agentul trebuie să verifice dacă documentul ce urmează a fi recomandat, nu este deja înregistrat în baza de date, pentru a evita recomandarea de mai multe ori a aceluiași document.

4.4.8. Implementare și rezultate experimentale

Sistemul a fost implementat ca o aplicație web și folosește sistemul de gestiune de baze de date MySQL. Interfața a fost dezvoltată folosind tehnologiile JSP și Servlet iar agenții informaționali în Java.

Fig. Modelul entitate-relație pentru sistemul de recomandare

Pentru evaluare a fost realizat un experiment cu 5 utilizatori. Au fost rugați să interacționeze cu sistemul timp de o săptămână și să înregistreze pagini ce conțin informații relevante pentru cercetările lor curente. S-a executat o actualizare a prototipului utilizator la fiecare 3 bookmarkuri clasificate într-o clasă.

4.4.8.1. Clasificarea bookmarkurilor

Un număr de 72 de bookmarkuri au fost înregistrate și clasificate de agenți/utilizatori în 9 clase diferite. Rezultatul clasificării este dat în tabelul de mai jos.

ID-ul utilizator

Corect

Incorect

Total

Acuratețe (%)

Nr. de actualizări

1

12

6

18

67.0

4

2

7

10

17

41.2

2

3

3

7

10

30.0

1

4

3

0

3

100.0

0

5

2

6

8

25.0

0

Tabel 4.4.9. Acuratețea clasificării

Un prim aspect care trebuie notat este acela că rezultatele sunt foarte diferite pentru fiecare utilizator. Utilizarea sistemului variază foarte mult. În experiment doar doi utilizatori (2 și 3) și-au actualizat de mai mult de două ori profilurile, ei având și cel mai mare număr de bookmarkuri înregistrate. Vom studia mai departe cele două cazuri.

Pentru ID-ul 1, a fost obținută o precizie medie de 67% în timp ce profilul a fost actualizat de 4 ori. Înainte de prima actualizare a fost înregistrată o rată a erorii de 80%. După aceea tiparul ratei erorii a fost 0%, 50%, 0%, 0% pentru fiecare actualizare. În timpul tranziției de la 0% la 50% utilizatorul/agentul a clasificat câteva bookmarkuri primite în alte categorii decât cele cu care prototipul a fost actualizat, mărind rata erorii. Următoarele dăți bookmarkurile au fost clasificate în principal în două clase diferite care au primit actualizări.

Pe de altă parte ID-ul 2 prezintă o acuratețe medie de 41,2%. Totuși, acest utilizator a avut o rată de eroare mare, de 85,7% înainte de prima actualizare, a scăzut la 50% la prima actualizare și la 42,8% la a doua actualizare.

Pentru ID-ul 3 se poate observa că rata de eroare a scăzut de la 40% la 33% după ce a fost realizată doar o singură actualizare. Pentru cazul în care nu a fost nimic de actualizat s-a obținut o acuratețe mare.

4.4.8.2. Recomandarea bookmarkurilor

După cum se poate vedea în tabelul de mai jos, rata de acceptare globală a fost destul de ridicată pentru majoritatea utilizatorilor. Comparând aceste rezultate cu cele obținute în clasificarea bokmarkurilor, este ușor de observat că, în general, rata de acceptare a fost mică pentru acei utilizatoricare nu au primit nici o actualizare.

ID-ul utilizator

Acceptate

Respinse

Total

Acuratețe (%)

1

13

2

15

86.7

2

7

3

10

70.0

3

9

1

10

90.0

4

6

0

6

100.0

5

0

1

1

0.0

Tabel 4.4.10. Rata de acceptare a recomandărilor

Din cele 72 de bookmarkuri înregistrate doar 42 erau unice, ceea ce înseamnă că 30 dintre ele (41,7% din toate bookmarkurile) au venit ca recomandări. Aceasta indică faptul că s-a utilizat partajarea inteligentă a informației și filtrarea socială.

În final, pentru o evaluare generală trebuie subliniat că pentru acest sistem nu au existat date de instruire altele decât bookmarkurile. Învățarea a fost realizată online și incremental, pe măsură ce s-a interacționat cu sistemul. De aceea acest sistem nu poate fi comparat cu sisteme ce folosesc algoritmi tradiționali (off-line) pentru clasificarea de text. În ciuda acestui lucru, acest algoritm de clasificare s-a comportat satisfăcător, până la măsura în care în majoritatea cazurilor utilizatorul nu a avut nevoie să rectifice sugestia agentului. Procentul relativ mare de recomandări acceptate a arătat nu doar că este fezabil de a sprijini filtrarea socială cu filtrarea bazată pe conținut dar și faptul că odată cu creșterea numărului de date relevante ca produs al recomandării este de așteptat să se îmbunătățească și acuratețea clasificării.

4.4.9. Lucrări similare

Există câteva proiecte de cercetare similare care au drept scop filtrarea și recomandarea paginilor web interesante către utilizatori. Unele proiecte folosesc tehnici de filtrare socială iar altele folosesc tehnici de filtrare bazate pe conținut.

Printre cele care folosesc filtrare bazată pe conținut se poate menționa Syskill & Webert ([Pazzani et al., 1996]), un sistem ce construiește profilul utilizator folosind câștigul de informație așteptat și compară eficiența câtorva algoritmi de învățare automată folosiți pentru clasificarea unei pagini ca interesantă sau nu. O diferență față de acest sistem este aceea că în Syskill & Webert, domeniile mulțimilor de pagini web folosite pentru instruirea și testarea sistemului sunt stabilite înainte. Cu alte cuvinte acest sistem doar recomandă utilizatorului pagini dintr-o anumită clasă extrase dintr-un director de subiecte stabilit dinainte sau o listă de pagini ce rezultă la o interogare trimisă unui motor de căutare (cum ar fi Lycos). Nu realizează clasificarea de text a unui document nou – sau cel puțin nu între domenii; nu oferă nici o informație despre faptul dacă domeniul însuși este sau nu interesant pentru utilizator. O altă diferență este aceea că profilul utilizator este construit la început și nu este actualizat automat după aceea. Învățarea este realizată offline, cu ajutorul unei mulțimi de instruire alcătuită din pagini care au fost evaluate anterior. Un alt sistem similar este WebWatcher, care recomandă hiperlinkuri în cadrul unei pagini web, folosind similaritatea document TF-IDF, care este folosită și în sistemul nostru. Un alt sistem este WebTagger Bookmark Service, un proiect NASA ce folosește filtrarea bazată pe conținut pentru organizarea și partajarea URL-urilor, dar nu implementează algoritmi pentru recomandare.

Sistemele de filtrare socială sunt mai rare și în momentul de față sunt folosite în sisteme comerciale ce realizează recomandări în domeniul divertismentului, cum ar fi Movie Critic și Firefly. Alte sisteme clasice sunt Ringo, un sistem de recomandare de muzică, Grouplens, un sistem personalizat de selecție a știrilor Netnews. Ambele sisteme folosesc coeficienți de corelație Pearson-r pentru a determina similaritatea dintre utilizatori, neținând cont de conținutul informației care se recomandă. În orice caz utilizatorul este rugat să evalueze conținutul, folosind o scară de valori predefinite pentru a calcula acestă corelație. Siteseer, un sistem similar cu sistemul nostru în sensul că recomandă URL-uri extrase din bookmarkurile utilizatorilor folosește o altă abordare, pur socială, prin calcularea gradului de similaritate pe baza numărului de intersecții de linkuri din cadrul directoarelor utilizatorilor. Are un dezavantaj, acela că necesită o structură arborescentă (cel puțin două directoare) și nu oferă nici un rezultat dacă intersecția cu alți utilizatori este vidă.

Există și sisteme care combină cele două abordări: în domeniul recomandării de persoane în loc de a recomanda documente, putem menționa Yenta și Referral Web. Aceste sisteme realizează o analiză textuală bazată pe cuvinte cheie a documentelor publice și private pentru a rafina algoritmii de recomandare care inițial sunt bazați pe tehnici sociale. Sistemul nostru diferă de aceste sisteme prin câteva aspecte, având ca obiectiv să filtreze documente și să efectueze o învățare online a profilelor utilizator. Aceste profiluri sunt mai departe folosite nu doar pentru a calcula similaritatea dintre utilizatori ci și dintre domeniile de interes ale utilizatorilor.

4.4.10. Discuție

Învățarea automată pentru clasificarea de text oferă o mulțime de îmbunătățiri față re recuperarea de text clasică. Creșterea exponențială a calculatoarelor și a rețelelor a condus la dezvoltarea unor noi aplicații ale clasificării și recuperării de text, concomitent cu o cerere a creșterii eficienței. Învățarea online (activă) și offline (pasivă) ar trebui combinate pentru a obține rezultate mai bune în înțelegerea semanticii complexe a limbajului natural.

Pe de altă parte, agenții software promit să fie soluția pentru gestionarea, filtrarea și partajarea informației, în numele utilizatorilor, în medii deschise cum este Internetul. Învățarea în structurile sociale, cum sistemele multiagent, oferă oportunitatea de a folosi cunoștințele comune pentru rezolvarea cooperativă a problemei, ignorată câtva timp de inteligența artificială clasică.

Combinarea tehnicilor din ambele arii nu ne oferă doar provocări interesante ci introduce și noi probleme. De exemplu, cum se poate evalua un sistem ca al nostru. Sunt aplicabile metodele tradiționale de evaluare din extragerea de text (precizia și reamintirea) aplicabile sistemelor personalizate și sociale de recuperare a informațiilor? Cum se realizează învățarea când funcția concept se schimbă în timp? Dacă un agent nu poate clasifica un document, poate ruga un alt agent să execute acest lucru? Acestea sunt câteva întrebări la care trebuie dat răspuns.

Există multe tipuri de aplicații în care se pot aplica tehnicile introduse în acest capitol. În afară de acest sistem realizat pentru recuperarea socială a informației, ne putem gândi la o aplicație pentru recenzia socială a articolelor. În revistele și conferințele științifice, a existat întotdeauna problema de a decide care experți în diferite subdomenii ale unui domeniu general urmează să facă recenzia unei lucrări, pe baza conținutului acesteia. Pe de altă parte, lucrările aparțin câteodată mai multor subdomenii. Având lucrări clasificate semiautomat și trimise (ca recomandare) experților care, desigur, pot accepta sau respinge o lucrare pentru recenzie, este scopul unei astfel de aplicații. De notat faptul că experții ar trebui doar să se înregistreze în sistem.

În ultimul rând trebuie să subliniem că descoperirile recente în cadrul teoriei COLT (Computational Learning Theory), în cadrul modelului Mistake Bound, pot reprezenta cheia pentru rezolvarea problemelor grele, precum învățarea funcțiilor țintă, ce se schimbă în timp și selecția caracteristicilor relevante. Acesta este cazul problemei învățării profilurilor utilizator. Unele cercetări recente în învățarea activă (online) și algoritmi de actualizare multiplicativi, oferă un suport teoretic unor lucruri ce până acum au fost observații empirice.

4.4.11. Sistem de recomandare pentru pagini web (SR2)

Sistemul de recomandare 2 este un sistem centralizat de management al bookmarkurilor și extinde sistemul anterior de recomandare.

Fig 4.4.11. Serverul de bookmarkuri SR2

4.4.11.1. Inovații

În plus față de funcționalitățile moștenite de la sistemul de recomandare anterior, SR2 oferă:

categorii definite de utilizator și de către sistem

recomandări îmbunătățite

linkuri private și publice

căutare în spațiul de linkuri publice și private

notificări pe email

formarea de comunități

partajarea automată a informației

4.4.11.2. Procesul de recomandare

În comparație cu sistemul anterior, SR2 nu restricționează categoriile de bookmarkuri, permițând utilizatorului să creeze propriile categorii după dorință. Din această cauză, matricea utilizator-categorie, pentru filtrarea socială, nu poate fi creată foarte ușor. Am dorit să limităm procesul consumator de timp, în care agentul descarcă și învață un profil din textul fiecărui link al unui utilizator.

Din aceste motive folosim informații suplimentare despre linkuri, stocate în baza de date. Această informației incluzând textul URL-ului, numele URL-ului, descrierea și denumirea categoriei, o folosim pentru a defini o măsură de similaritate combinată, bazată pe pseudoconținut și pe filtrare socială.

În particular, similaritatea dintre doi utilizatori este definită ca coeficientul Dice calculat peste mulțimile de URL-uri unice a fiecărui utilizator.

După ce a fost realizată o listă de recomandări, utilizatorul primește o notificare cu primele trei URL-uri. În continuare, utilizatorul se poate duce la secțiunea linkuri recomandate și poate importa linkurile care îl interesează, șterge linkurile neinteresante din lista de recomandare; ponderile de încredere sunt actualizate în mod corespunzător. De notat faptul că nu sunt necesare evaluări ale URL-urilor.

4.4.12. Rezumat

Contribuțiile acestui subcapitol:

– am propus o combinație de filtrare bazată pe conținut cu filtrarea socială ca bază pentru recuperarea socială a informației, folosind sistemul multiagent. Pentru acest scop, sistemul SR1 a fost explicat în detaliu.

– a fost propus algoritm pentru învățarea activă a profilului utilizator și clasificarea de text.

– a fost propus un nou algoritm pentru filtrarea socială a informației în care nu doar corelația dintre utilizatori este luată în considerare ci și similaritatea dintre clase.

Au fost prezentate și unele rezultate experimentale care sprijină această abordare.

Ca un experiment care este încă în desfășurare am creat SR2, care este un sistem de recomandare pentru web ce servește unei audiențe mai mari decât SR1. Culegem, date din SR2 pentru a-l compara cu alte sisteme similare, îmbunătăți eficiența și procesele de interacțiune și recomandare.

4.5. Concluzii

În concluzie în primul subcapitol s-au prezentat agenții personali de informare pentru web (clasificare, cerințe și arhitectură) iar în subcapitolul 2 am descris un agent personal pentru web (Personal Information Agent) dezvoltat în limbajul de programare Java, care folosește pentru crearea profilului utilizator un set de vectori TF-IDF, modelează interesele curente ale utilizatorului și folosește drept feedback de relevanță specificarea explicită a utilizatorului iar pentru rafinarea interogării este utilizat modelul perechilor de termeni cu scopul de a extrage cuvinte relevante.

Subcapitolul 3 prezintă sistemelor de recomandare și filtrare a informației pentru Internet bazate pe următoarele tehnici de filtrare a informației: filtre colaborative, filtre bazate pe evenimente, filtre bazate pe reputație și filtre hibride.

În subcapitolul 4 am prezentat structura a două sisteme de recomandare pentru documente web (bookmark-urilor). Sistemele folosesc o combinație de două filtre, un filtru bazat pe conținut și un filtru social.

Bibliografie

[Apté et al., 1994] Apté, C., Damerau, F. J., and Weiss, S. M. 1994. Automated learning of decision rules for text categorization. ACM Transactions on Information Systems, 1994.

[Asnicar, Di Fant, Tasso, 1997] Fabio A. Asnicar, Massimo Di Fant, Carlo Tasso, User Model-Based Information Filtering, Proceedings of the 5th Congress of the Italian Association for Artificial Intelligence on Advances in Artificial Intelligence, 1997

[Belkin, 1997] Nicholas J. Belkin, User Modeling in Information Retrieval, Sixth International Conference on User Modelling (UM97), Chia Laguna, Sardinia, Italy, 1997.

[Berry et al., 1995] Michael W. Berry, Susan T. Dumais, and Gavin W. O’Brien, Using linear algebra for intelligent information retrieval, SIAM Review, vol. 37, 1995.

[Billsus, Pazzani, 1998] Daniel Billsus and Michael J. Pazzani, Learning Collaborative filters in 15th International Conference on Machine Learning, Madison, WI, 1998.

[Blum, 1996] Blum, A., On-line Algorithms in Machine Learning, Dagstuhl workshop on On-Line algorithms, 1996.

[Breese et al., 1998] John S. Breese, David Heckerman, and Carl Kadie, Empirical analysis of predictive algorithms for collaborative filtering in Fourteenth Conference on Uncertainty in Artificial Intelligence, Madison, WI, 1998.

[Claypool et al., 1999] Mark Claypool, Anuja Gokhale, Tim Miranda, Pavel Murnikov,Dmitry Netes, and Matthew Sartin, Combining content-based and collaborative filters in an online newspaper, in ACM SIGIR Workshop on Recommender Systems-Implementation and Evaluation, Berkeley, CA, 1999.

[Cohen, Singer, 1999] Cohen, W. W. and Singer, Y., Context-sensitive learning methods for text categorization. ACM Transactions on Information Systems, 1999.

[Dagan et al., 1997] Dagan, I., Karov, Y., and Roth, D. 1997. Mistake-driven learning in text categorization. In Proceedings of EMNLP-97, 2nd Conference on Empirical Methods in Natural Language Processing, 1997.

[Dumais et al., 1998] Dumais, S. T., Platt, J., Heckerman, D., and Sahami, M., Inductive learning algorithms and representations for text categorization. In Proceedings of CIKM-98, 7th ACM International Conference on Information and Knowledge Management, 1998.

[Fischer, Stevens, 1991] Fischer Gerhard, Stevens Curt, Information Access in Complex, Poorly Structured Information Spaces, Human Factors in Computing Systems, CHI'91 Conference Proceedings, 1991.

[Florea, 1995] Adina Florea, Agenti inteligenti Internet, revista Byte Romania, număr noiembrie, 1995

[Gautheron, 2000] Gautheron, Isabelle. Usages innovants d'Internet et outils intelligents, Bulletin de bibliotheques de France, nr. 1, 2000.

[Hu et al., 2001] Wen-Chen Hu, Yining Chen, Mark S. Schmalz, Gerhard X. Ritter, An Overview of World Wide Web Search Technologies, in the proceedings of 5 th World Multi-conference on System, Cybernetics and Informatics, SCI2001, Orlando, Florida, 2001.

[Jennings, Higuchi, 1992] Andrew Jennings, Hideyuki Higuchi, A Personal News Service based on a User Model Neural Network, IEICE Transactions on Information and Systems, 1992.

[Joachims, 1998] Thorsten Joachims, A probabilistic analysis of the Rocchio algorithm with TFIDF for text categorization, Proceedings of ICML-97, 14th International Conference on Machine Learning, Morgan Kaufmann Publishers, San Francisco, USA, 1998.

[Joachims, Sebastiani, 2001] Joachims, T. and Sebastiani, F. 2001. Guest editors' introduction to the special issue on automated text categorization. Journal of Intelligent Information Systems

[Karypis, 2001] George Karypis, Evaluation of item-based top-n recommendation algorithms, in CIKM 2001, 2001.

[Keller et al., 1997] Richard M. Keller, Shawn R. Wolfe, James R. Chen, Joshua L. Rabinowitz și Nathalie Mathe, A Bookmarking Service for Organizing and Sharing URLs, Proceedings of the 6th Intl. WWW Conference, Santa Clara, 1997.

[Kim et al., 2000] Jinmook Kim, Douglas W. Oard, and Kathleen Romanik, User Modeling for Information Access Based on Implicit Feedback, Intelligent User Interfaces, 2000.

[Kim, Oard, 1998] Oard, D.W., and Kim, J. Implicit Feedback for Recommender System, AAAI Workshop on Recommender Systems, Madison, 1998.

[Konstan, 1997] Konstan, J. A., Miller, B. N., Maltz, D., Herlocker, J. L., Gordon, L. R., and Riedl, J., GroupLens: Applying collaborative filtering to Usenet News. Communication of the ACM 40, 1997.

[Larkey, Croft, 1996] Larkey, L. S. and Croft, W. B., Combining classiers in text categorization. In Proceedings of SIGIR-96, 19th ACM International Conference on Research and Development in Information Retrieval, 1996.

[Lewis, Ringuette, 1994] Lewis, D. D. and Ringuette, M., A comparison of two learning algorithms for text categorization. In Proceedings of SDAIR-94, 3rd Annual Symposium on Document Analysis and Information Retrieval, 1994.

[Maes, 1994] P.Maes, Agents that reduce work and information overload, Communications of the ACM 37, 1994.

[Mandeal, Porumbeanu, 2005] Mandeal R. și O.L. Porumbeanu, Produse și servicii de informare avansată, Editura Universitatii din Bucuresti, ISBN: 973-737-098-8, București, 2005.

[Manning, Schütze, 1999] Manning, C. and Schütze, H., Foundations of Statistical Natural Language Processing. The MIT Press, Cambridge, US, 1999.

[Melville et al., 2001] Prem Melville, Raymond J. Mooney, and Ramadass Nagarajan, “Content-boosted collaborative filtering,” in ACM SIGIR Workshop on Recommender Systems, New Orleans, LA, 2001.

[Mitchell, 1996] Mitchell, T. M., Machine learning. McGraw Hill, New York, US, 1996.

[Morita, Shinoda, 1994] Morita, M. and Shinoda, Y., Information filtering based on user behaviour analysis and best match text retrieval, Proceedings of the 17th ACM Annual International Conference on Research and Development in Information Retrieval (SIGIR'94), Dublin, Ireland, 1994.

[Moulinier et al., 1996] Moulinier, I., Raškinis, G., and Ganascia, J.-G. 1996. Text categorization: a symbolic approach. In Proceedings of SDAIR-96, 5th Annual Symposium on Document Analysis and Information Retrieval (Las Vegas, US, 1996)

[Pazzani et al., 1996] Pazzani, M., Muramatsu J., Billsus, D., Syskill & Webert: Identifying interesting web sites. Proceedings of the National Conference on Artificial Intelligence, 1996.

[Pennock et al., 2000] David M. Pennock, Eric Horvitz, Steve Lawrence and C. Lee Giles, Collaborative Filtering by Personality Diagnosis: A Hybrid Memory- and Model-Based Approach, In Proceedings of the Sixteenth Conference on Uncertainty in Artificial Intelligence (UAI-2000), 2000.

[Porter, 1980] Porter, M.F., An Algorithm For Suffix Stripping, Program 14 (3), 1980.

[Resnick, 1994] Paul Resnick, Neophytos Iacovou, Mitesh Sushak, Peter Bergstrom, and John Riedl, Grouplens: An open architecture for collaborative filtering of netnews, in ACM 1994 Conference on Computer Supported Cooperative Work, New York, NY, 1994.

[Salton, Buckley, 1988] Salton, G. and Buckley, C. 1988. Term-weighting approaches in automatic text retrieval. Information Processing and Management, 1988.

[Salton, Buckley, 1990] Gerard Salton, Chris Buckley, Improving Retrieval Performance by Relevance Feedback, Journal of the American Society for Information Science, 1990.

[Sarwar et al., 1998] Bardul M. Sarwar, Joseph A. Konstan, Al Borchers, Jon Herlocker, Brad Miller, and John T. Riedl, Using filtering agents to improve prediction quality in the grouplens research collaborative filtering system, in Conference on Computer Supported Cooperative Work, 1998.

[Sarwar et al., 2000] Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, Analysis of Recommendation Algorithms for E-Commerce in Proceedings of the 2nd ACM conference on Electronic, Minneapolis, Minnesota, United States, 2000.

[Sarwar et al., 2001] B. M. Sarwar, G. Karypis, J. A. Konstan, and J. Riedl, Item-based collaborative filtering recommendation algorithms in Proc. of the 10th International World Wide Web Conference (WWW10), Hong Kong, May 2001.

[Sarwar, 2001] Bardul M. Sarwar, Sparsity, Scalability, and Distribution in Recommender Systems, Ph.D. thesis proposal, University of Minnesota, 2001.

[Schein, 2002] Andrew I. Schein, Alexandrin Popescul, Lyle H. Ungar, and David M. Pennock, Methods and metrics for cold-start recommendations, in ACM SIGIR-2002, Tampere, Finland, 2002.

[Schütze et al., 1995] Schütze, H., Hull, D. A., and Pedersen, J. O., A comparison of classifiers and document representations for the routing problem. In Proceedings of SIGIR-95, 18th ACM International Conference on Research and Development in Information Retrieval, 1995.

[Simons, 1997] Joep Simons, Using a Semantic User Model to Filter the World Wide Web Proactively, Nijmegen Institute of Cognition and Information, University of Nijmegen, The Netherlands, 1997.

[Singhal, 2001] Amit Singhal, Modern Information Retrieval: A Brief Overview, IEEE Bulletin, 2001.

[van Rijsbergen, 1979] C. J. van Rijsbergen, Information Retrieval, Butterworths, London, 1979.

[Tokunaga, Iwayama, 1994] Tokunaga, T., Iwayama M., Text categorization based on weighted inverse document frequency” Technical Report 94-TR0001, Department of Computer Science, Tokyo Institute of Technology, 1994.

[Vozalis and Margaritis, 2003] E. Vozalis and K. G. Margaritis, Analysis of Recommender Systems' Algorithms presented at the Sixth Hellenic-European Conference on Computer Mathematics and its Applications (HERCMA), 2003.

[Weiss et al., 1999] Weiss, S. M., Apté C., Damerau, F. J., Johnson, D. E., Oles, F. J., Goetz, T., and Hampp, T., Maximizing text-mining performance. IEEE Intelligent Systems 14,1999.

[Wiener et al., 1995] Wiener, E. D., Pedersen, J. O., and Weigend, A. S., A neural network approach to topic spotting. In Proceedings of SDAIR-95, 4th Annual Symposium on Document Analysis and Information Retrieval, 1995.

[Yang, 1999] Yang, Y.. An evaluation of statistical approaches to text categorization. Information Retrieval, 1999.

[Yang, Chute, 1994] Yang, Y. and Chute, C. G.. An example-based mapping method for text categorization and retrieval. ACM Transactions on Information Systems, 1994.

[Yang, Liu, 1999] Yang, Y. and Liu, X., A re-examination of text categorization methods. In Proceedings of SIGIR-99, 22nd ACM International Conference on Research and Development in Information Retrieval, 1999.

[Yang, Pedersen, 1997] Yang, Y. and Pedersen, J. O. A comparative study on feature selection in text categorization. In Proceedings of ICML-97, 14th International Conference on Machine Learning, 1997.

Bibliografie

[Apté et al., 1994] Apté, C., Damerau, F. J., and Weiss, S. M. 1994. Automated learning of decision rules for text categorization. ACM Transactions on Information Systems, 1994.

[Asnicar, Di Fant, Tasso, 1997] Fabio A. Asnicar, Massimo Di Fant, Carlo Tasso, User Model-Based Information Filtering, Proceedings of the 5th Congress of the Italian Association for Artificial Intelligence on Advances in Artificial Intelligence, 1997

[Belkin, 1997] Nicholas J. Belkin, User Modeling in Information Retrieval, Sixth International Conference on User Modelling (UM97), Chia Laguna, Sardinia, Italy, 1997.

[Berry et al., 1995] Michael W. Berry, Susan T. Dumais, and Gavin W. O’Brien, Using linear algebra for intelligent information retrieval, SIAM Review, vol. 37, 1995.

[Billsus, Pazzani, 1998] Daniel Billsus and Michael J. Pazzani, Learning Collaborative filters in 15th International Conference on Machine Learning, Madison, WI, 1998.

[Blum, 1996] Blum, A., On-line Algorithms in Machine Learning, Dagstuhl workshop on On-Line algorithms, 1996.

[Breese et al., 1998] John S. Breese, David Heckerman, and Carl Kadie, Empirical analysis of predictive algorithms for collaborative filtering in Fourteenth Conference on Uncertainty in Artificial Intelligence, Madison, WI, 1998.

[Claypool et al., 1999] Mark Claypool, Anuja Gokhale, Tim Miranda, Pavel Murnikov,Dmitry Netes, and Matthew Sartin, Combining content-based and collaborative filters in an online newspaper, in ACM SIGIR Workshop on Recommender Systems-Implementation and Evaluation, Berkeley, CA, 1999.

[Cohen, Singer, 1999] Cohen, W. W. and Singer, Y., Context-sensitive learning methods for text categorization. ACM Transactions on Information Systems, 1999.

[Dagan et al., 1997] Dagan, I., Karov, Y., and Roth, D. 1997. Mistake-driven learning in text categorization. In Proceedings of EMNLP-97, 2nd Conference on Empirical Methods in Natural Language Processing, 1997.

[Dumais et al., 1998] Dumais, S. T., Platt, J., Heckerman, D., and Sahami, M., Inductive learning algorithms and representations for text categorization. In Proceedings of CIKM-98, 7th ACM International Conference on Information and Knowledge Management, 1998.

[Fischer, Stevens, 1991] Fischer Gerhard, Stevens Curt, Information Access in Complex, Poorly Structured Information Spaces, Human Factors in Computing Systems, CHI'91 Conference Proceedings, 1991.

[Florea, 1995] Adina Florea, Agenti inteligenti Internet, revista Byte Romania, număr noiembrie, 1995

[Gautheron, 2000] Gautheron, Isabelle. Usages innovants d'Internet et outils intelligents, Bulletin de bibliotheques de France, nr. 1, 2000.

[Hu et al., 2001] Wen-Chen Hu, Yining Chen, Mark S. Schmalz, Gerhard X. Ritter, An Overview of World Wide Web Search Technologies, in the proceedings of 5 th World Multi-conference on System, Cybernetics and Informatics, SCI2001, Orlando, Florida, 2001.

[Jennings, Higuchi, 1992] Andrew Jennings, Hideyuki Higuchi, A Personal News Service based on a User Model Neural Network, IEICE Transactions on Information and Systems, 1992.

[Joachims, 1998] Thorsten Joachims, A probabilistic analysis of the Rocchio algorithm with TFIDF for text categorization, Proceedings of ICML-97, 14th International Conference on Machine Learning, Morgan Kaufmann Publishers, San Francisco, USA, 1998.

[Joachims, Sebastiani, 2001] Joachims, T. and Sebastiani, F. 2001. Guest editors' introduction to the special issue on automated text categorization. Journal of Intelligent Information Systems

[Karypis, 2001] George Karypis, Evaluation of item-based top-n recommendation algorithms, in CIKM 2001, 2001.

[Keller et al., 1997] Richard M. Keller, Shawn R. Wolfe, James R. Chen, Joshua L. Rabinowitz și Nathalie Mathe, A Bookmarking Service for Organizing and Sharing URLs, Proceedings of the 6th Intl. WWW Conference, Santa Clara, 1997.

[Kim et al., 2000] Jinmook Kim, Douglas W. Oard, and Kathleen Romanik, User Modeling for Information Access Based on Implicit Feedback, Intelligent User Interfaces, 2000.

[Kim, Oard, 1998] Oard, D.W., and Kim, J. Implicit Feedback for Recommender System, AAAI Workshop on Recommender Systems, Madison, 1998.

[Konstan, 1997] Konstan, J. A., Miller, B. N., Maltz, D., Herlocker, J. L., Gordon, L. R., and Riedl, J., GroupLens: Applying collaborative filtering to Usenet News. Communication of the ACM 40, 1997.

[Larkey, Croft, 1996] Larkey, L. S. and Croft, W. B., Combining classiers in text categorization. In Proceedings of SIGIR-96, 19th ACM International Conference on Research and Development in Information Retrieval, 1996.

[Lewis, Ringuette, 1994] Lewis, D. D. and Ringuette, M., A comparison of two learning algorithms for text categorization. In Proceedings of SDAIR-94, 3rd Annual Symposium on Document Analysis and Information Retrieval, 1994.

[Maes, 1994] P.Maes, Agents that reduce work and information overload, Communications of the ACM 37, 1994.

[Mandeal, Porumbeanu, 2005] Mandeal R. și O.L. Porumbeanu, Produse și servicii de informare avansată, Editura Universitatii din Bucuresti, ISBN: 973-737-098-8, București, 2005.

[Manning, Schütze, 1999] Manning, C. and Schütze, H., Foundations of Statistical Natural Language Processing. The MIT Press, Cambridge, US, 1999.

[Melville et al., 2001] Prem Melville, Raymond J. Mooney, and Ramadass Nagarajan, “Content-boosted collaborative filtering,” in ACM SIGIR Workshop on Recommender Systems, New Orleans, LA, 2001.

[Mitchell, 1996] Mitchell, T. M., Machine learning. McGraw Hill, New York, US, 1996.

[Morita, Shinoda, 1994] Morita, M. and Shinoda, Y., Information filtering based on user behaviour analysis and best match text retrieval, Proceedings of the 17th ACM Annual International Conference on Research and Development in Information Retrieval (SIGIR'94), Dublin, Ireland, 1994.

[Moulinier et al., 1996] Moulinier, I., Raškinis, G., and Ganascia, J.-G. 1996. Text categorization: a symbolic approach. In Proceedings of SDAIR-96, 5th Annual Symposium on Document Analysis and Information Retrieval (Las Vegas, US, 1996)

[Pazzani et al., 1996] Pazzani, M., Muramatsu J., Billsus, D., Syskill & Webert: Identifying interesting web sites. Proceedings of the National Conference on Artificial Intelligence, 1996.

[Pennock et al., 2000] David M. Pennock, Eric Horvitz, Steve Lawrence and C. Lee Giles, Collaborative Filtering by Personality Diagnosis: A Hybrid Memory- and Model-Based Approach, In Proceedings of the Sixteenth Conference on Uncertainty in Artificial Intelligence (UAI-2000), 2000.

[Porter, 1980] Porter, M.F., An Algorithm For Suffix Stripping, Program 14 (3), 1980.

[Resnick, 1994] Paul Resnick, Neophytos Iacovou, Mitesh Sushak, Peter Bergstrom, and John Riedl, Grouplens: An open architecture for collaborative filtering of netnews, in ACM 1994 Conference on Computer Supported Cooperative Work, New York, NY, 1994.

[Salton, Buckley, 1988] Salton, G. and Buckley, C. 1988. Term-weighting approaches in automatic text retrieval. Information Processing and Management, 1988.

[Salton, Buckley, 1990] Gerard Salton, Chris Buckley, Improving Retrieval Performance by Relevance Feedback, Journal of the American Society for Information Science, 1990.

[Sarwar et al., 1998] Bardul M. Sarwar, Joseph A. Konstan, Al Borchers, Jon Herlocker, Brad Miller, and John T. Riedl, Using filtering agents to improve prediction quality in the grouplens research collaborative filtering system, in Conference on Computer Supported Cooperative Work, 1998.

[Sarwar et al., 2000] Badrul Sarwar, George Karypis, Joseph Konstan, and John Riedl, Analysis of Recommendation Algorithms for E-Commerce in Proceedings of the 2nd ACM conference on Electronic, Minneapolis, Minnesota, United States, 2000.

[Sarwar et al., 2001] B. M. Sarwar, G. Karypis, J. A. Konstan, and J. Riedl, Item-based collaborative filtering recommendation algorithms in Proc. of the 10th International World Wide Web Conference (WWW10), Hong Kong, May 2001.

[Sarwar, 2001] Bardul M. Sarwar, Sparsity, Scalability, and Distribution in Recommender Systems, Ph.D. thesis proposal, University of Minnesota, 2001.

[Schein, 2002] Andrew I. Schein, Alexandrin Popescul, Lyle H. Ungar, and David M. Pennock, Methods and metrics for cold-start recommendations, in ACM SIGIR-2002, Tampere, Finland, 2002.

[Schütze et al., 1995] Schütze, H., Hull, D. A., and Pedersen, J. O., A comparison of classifiers and document representations for the routing problem. In Proceedings of SIGIR-95, 18th ACM International Conference on Research and Development in Information Retrieval, 1995.

[Simons, 1997] Joep Simons, Using a Semantic User Model to Filter the World Wide Web Proactively, Nijmegen Institute of Cognition and Information, University of Nijmegen, The Netherlands, 1997.

[Singhal, 2001] Amit Singhal, Modern Information Retrieval: A Brief Overview, IEEE Bulletin, 2001.

[van Rijsbergen, 1979] C. J. van Rijsbergen, Information Retrieval, Butterworths, London, 1979.

[Tokunaga, Iwayama, 1994] Tokunaga, T., Iwayama M., Text categorization based on weighted inverse document frequency” Technical Report 94-TR0001, Department of Computer Science, Tokyo Institute of Technology, 1994.

[Vozalis and Margaritis, 2003] E. Vozalis and K. G. Margaritis, Analysis of Recommender Systems' Algorithms presented at the Sixth Hellenic-European Conference on Computer Mathematics and its Applications (HERCMA), 2003.

[Weiss et al., 1999] Weiss, S. M., Apté C., Damerau, F. J., Johnson, D. E., Oles, F. J., Goetz, T., and Hampp, T., Maximizing text-mining performance. IEEE Intelligent Systems 14,1999.

[Wiener et al., 1995] Wiener, E. D., Pedersen, J. O., and Weigend, A. S., A neural network approach to topic spotting. In Proceedings of SDAIR-95, 4th Annual Symposium on Document Analysis and Information Retrieval, 1995.

[Yang, 1999] Yang, Y.. An evaluation of statistical approaches to text categorization. Information Retrieval, 1999.

[Yang, Chute, 1994] Yang, Y. and Chute, C. G.. An example-based mapping method for text categorization and retrieval. ACM Transactions on Information Systems, 1994.

[Yang, Liu, 1999] Yang, Y. and Liu, X., A re-examination of text categorization methods. In Proceedings of SIGIR-99, 22nd ACM International Conference on Research and Development in Information Retrieval, 1999.

[Yang, Pedersen, 1997] Yang, Y. and Pedersen, J. O. A comparative study on feature selection in text categorization. In Proceedings of ICML-97, 14th International Conference on Machine Learning, 1997.

Similar Posts