Sunteți pe pagina 1din 92

2011

UNIVERSITATEA BUCUREȘTI FACULTATEA DE


MATEMATICĂ ȘI INFORMATICĂ

MASTERAND : BRATU ANDREI ALEXANDRU

COORDONATOR : LECT. DR. POPESCU MARIUS

LUCRARE DE
DISERTAȚIE

METODE DE TIP KERNEL ÎN


CATEGORIZAREA TEXTELOR
UNIVERSITATEA DIN BUCUREŞTI
FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ

METODE DE TIP KERNEL ÎN


CATEGORIZAREA TEXTELOR

COORDONATOR ŞTIINŢIFIC: MASTERAND:


LECT. DR. POPESCU MARIUS BRATU ANDREI ALEXANDRU

BUCUREŞTI, 2011
CUPRINS

Introducere ............................................................................................................................5
1. Categorizarea Textelor .......................................................................................................6
1.1 Problema Clasificării ..................................................................................................................7
1.2 Categorizarea Textelor ............................................................................................................ 10
1.2.1 Scurt istoric ...................................................................................................................... 11
1.2.2 O definire formală a problemei ......................................................................................... 12
1.2.3 Modelul spațiului vectorial ............................................................................................... 14
2. Support Vector Machines (SVMs) ....................................................................................20
2.1 Hiperplane de seperabilitate liniară ......................................................................................... 22
2.1.1 Algoritmul de învățare al perceptronului lui Rosenblatt .................................................... 23
2.2 Hiperplanul optim de separabilitate ........................................................................................ 26
2.3 Clafisicatorul SVM cu margine inflexibilă (hard-margin) ........................................................... 29
2.3.1 Marginea funcțională și marginea geometrică .................................................................. 30
2.3.2 Problema de optimizare ................................................................................................... 33
2.3.3 Dualitatea Lagrange .......................................................................................................... 34
2.4 Clafisicatorul SVM cu margine flexibilă (soft-margin) ............................................................... 40
2.5 Clasificatorul SVM neliniar (nonlinear SVM) ............................................................................. 44
3. Metode de tip Kernel .......................................................................................................51
3.1 Privire de ansamblu................................................................................................................. 53
3.2 Prezentare generală ................................................................................................................ 55
3.3 Modularitate ........................................................................................................................... 57
3.3.1 Matricea nucleu ............................................................................................................... 58
4|P agi na

3.3.2 Funcții nucleu ................................................................................................................... 60


3.3.3 Algoritmul de optimizare secvențială minimală (SMO) ...................................................... 62
4. Experimente, rezultate și concluzii ..................................................................................67
4.1 Corpusul Reuters-21578 .......................................................................................................... 68
4.2 Biblioteca WEKA ...................................................................................................................... 72
4.2.1 Formatul ARFF .................................................................................................................. 73
4.2.2 Biblioteca LIBSVM............................................................................................................. 76
4.3 Rezultate Experimentale ......................................................................................................... 77
4.4 Concluzii.................................................................................................................................. 86
Bibliografie...........................................................................................................................88

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


Introducere

În ultimii 20 de ani numărul documentelor text în format digital a crescut foarte mult
ca volum. Ca o consecință, organizarea automată și clasificarea(categorizarea) documentelor
prezintă o importanță practică deosebită. Tehnicile de categorizare a textelor sunt folosite
pentru a clasifica articole de știri, pentru a găsi informații de interes pe web și pentru a
înlesni căutările trimiterilor către alte pagini (hyperlinks). Deoarece construcția manuală a
unor astfel de clasificatori este dificilă și consumatoare de timp, se preferă clasificatori ce
învață din exemple de antrenare (clasificare supervizată).
Lucrarea de față își propune să prezinte rezolvarea problemei clasificării textelor cu
ajutorul metodelor de tip kernel. Metodele de tip kernel (kernel methods) reprezintă o clasă
de algoritmi folosiți în analiza și clasificarea informațiilor (pattern analysis). Majoritatea
algoritmilor pun accentul pe rezolvarea unor probleme de optimizare convexă și valori
proprii și sunt eficienți d.p.d.v. computațional și bine documentați d.p.d.v. statistic.
Cel mai cunoscut algoritm dintre aceștia este clasificatorul SVM (support vector
machine). Mașinile cu vectori suport, au fost folosite cu succes în problemele de regăsire a
informației, în particular pentru clasificarea textelor și fac parte din generația de clasificatori
aflați la cel mai înalt grad de dezvoltare în prezent (state-of-the-art). Ei nu sunt în mod
special mai buni decât orice alt tip de clasificatori folosiți în domeniul învățării automate
(machine learning) (exceptând poate cazurile cu puține date de antrenare), dar sunt
clasificatorii cu cel mai înalt grad de dezvoltare atins până în prezent, bucurându-se de un
uriaș interes teoretic și empiric.
1. Categorizarea Textelor

Problema generală a clasificării este o problemă din domeniul învățării automate


(machine learning) și face parte din clasa problemelor de analiză și clasificare a obiectelor
(pattern recognition) [Secțiunea 1.1]. Categorizarea textelor ( clasificarea textelor sau
identificarea subiectului unui text ) ca etichetare a unor texte cu categorii tematice dintr-un
set predefinit reprezintă un exemplu de o astfel de problemă [Secțiunea 1.2].
În ultimii 20 de ani numărul documentelor text în format digital a crescut foarte mult
ca volum. Ca o consecință, organizarea automată și clasificarea documentelor prezintă o
importanță practică deosebită.
Clasificarea documentelor se întâlnește în multe aplicații: filtrarea de email-uri,
routarea email-urilor, filtrarea spam, monitorizarea știrilor, răspândirea selectivă de
informații către consumatori, indexarea automată a articolelor științifice, popularea
automată a cataloagelor ierarhice a resurselor web, identificarea genului literar, al autorului,
examinarea codului ș.a.m.d.
În zilele noastre categorizarea textelor este o disciplină aflată la intersecția dintre
învățarea automată (machine learning) și regăsirea informației (information retrieval) și ca
atare are în comun cu acestea, un număr de caracteristici. De exemplu, modul de
reprezentare al documentelor cu ajutorul modelului spațiului vectorial (vector space model)
[Secțiunea 1.2.3] este împrumutat din domeniul regăsirii informației. Se pune în continuare
problema unde este granița dintre aceste discipline iar terminologia este într-o continuă
evoluție.
1.1 Problema Clasificării

Problema clasificării este o problemă din domeniul învățării automate (machine


learning) și face parte din clasa problemelor de analiză și clasificare a obiectelor (pattern
recognition). În acest context clasificarea definește o procedură algoritmică care atribuie
unui obiect primit ca input, o categorie dintr-un set de categorii date. Un exemplu este
asignarea unui email uneia dintre cele două clase: “spam” și “non-spam” sau stabilirea
diagnosticului unui pacient pe baza caracteristicilor observate ( sex, tensiune arterială,
prezența sau absența anumitor simptome etc. ).
Un algoritm ce implementează o problemă de clasificare poartă denumirea de
clasificator. Termenul de “clasificator” uneori mai face referire si la o funcție matematică,
implementată de un algoritm de clasificare, ce mapează datele de intrare într-o anumită
categorie.
Setul datelor de intrare este alcătuit din instanțe iar categoriile se numesc clase. O
instanță este descrisă printr-un vector de caracteristici (features), reprezentând toate
caracteristicile cunoscute ale instanței. Caracteristicile pot fi de mai multe feluri:

 nominale - aparținând unei categorii (constând dintr-un set de elemente


neordonate: sex “masculin” sau “feminin”, grupa sangvină “A”, “B”, “AB” sau
“O”);
 ordinale - constând dintr-un set de elemente ordonate: “mare”, “mediu”,
“mic”;
 valori întregi: numărul ocurențelor unui cuvânt într-un text;
 valori reale: valoarea tensiunii arteriale.

De cele mai multe ori se întâmplă ca datele ordinale și nominale să fie grupate împreună; la
fel și în cazul valorilor întregi și reale. Mai mult, există algoritmi care funcționează cu date
nominale și necesită discretizarea valorilor întregi sau reale în grupuri (ex: valori<5, valori
între 5 și 10, valori>10).
Clasificarea se referă în mod uzual la o procedură supervizată (o procedură care
clasifică noi instanțe, învățând dintr-un set de antrenare cu instanțe ce au fost corect
8|P agi na

etichetate în prealabil). Procedura corespunzătoare nesupervizată se numește clusterizare


(clustering) și constă în gruparea datelor în clase folosind o măsură de similaritate (ex:
distanța dintre instanțe, reprezentate ca vectori într-un spațiu vectorial multidimensional).
În funcție de numărul de clase disponibile putem vorbi de două tipuri de clasificare:
binară (în 2 clase) și multiclase. Majoritatea metodelor de clasificare au fost dezvoltate
pentru clasificarea binară fapt ce a condus la folosirea unor clasificatori binari combinați
pentru dezvoltarea clasificării multiclase.
Dintre cei mai folosiți algoritmi de clasificare amintim: clasificatori ai entropiei
maxime, Naive Bayes, support vector machines (SMVs), arbori de decizie, perceptroni, rețele
neurale (perceptroni multistrat), kNN. Performanțele acestor clasificatori depind într-o
foarte mare măsură de caracteristicile datelor de clasificat. Nu există un singur clasificator
care să obțină cele mai bune rezultate pentru toate problemele date. Cu toate că au fost
efectuate diverse teste empirice pentru a compara clasificatorii între ei, determinarea unui
clasificator optim, pentru o problemă, rămâne mai mult o artă decât o știință.
Noțiunea de clasificare este foarte generală și are foarte multe aplicații atât în cadrul
domeniului regăsirii informației cât și în afara lui. De exemplu, în domeniul prelucrării
imaginilor un clasificator poate fi folosit pentru a împărți imaginile în 3 clase: portrait,
landscape și nici una dintre cele două. Câteva exemple ale folosirii clasficării în regăsirea
informației sunt prezentate mai jos:

 detectarea codificării caracterelor (encodings) dintr-un document (ASCII,


UNICODE, UTF-8 etc.); segmentarea cuvintelor (în funcție de spațiile blank);
detectarea cuvintelor scrise cu litere mari în interiorul unei proproziții;
detectarea limbii în care a fost scris un document;
 detectarea automată a paginilor spam (care apoi nu sunt incluse în indexul
motorului de căutare);
 detectarea de pagini cu conținut sexual (care sunt apoi incluse la rezultatele
căutarii numai dacă user-ul a debifat opțiunea de SafeSearch);
 detecția sentimentelor (sentiment detection) sau clasificarea unui comentariu
asupra unui film sau produs drept pozitiv sau negativ. Un exemplu în acest
sens îl constituie un client care caută comentariile negative despre o cameră
de luat vederi înainte de a o achiziționa, pentru a se asigura că nu are
caracteristici nedorite sau probleme de calitate;
 sortarea email-urilor personale. Un user poate avea mai multe dosare ca
anunțuri, facturi on-line, discuții cu prietenii și familia etc. și dorește ca fiecare
nou email primit să se clasifice automat și să fie asignat dosarului
corespunzător. Mesajele sunt mult mai ușor de găsit într-un dosar sortat
decât într-un inbox uriaș. Cea mai practică folosire a acestui gen de aplicație
este dosarul spam care stochează toate mesajele suspectate de a fi spam;
 căutare după subiect sau căutarea verticlă. Motoarele de căutare vericală
limitează căutarea unui subiect anume;

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


9|P agi na

 funcția de ordonare din cadrul procedurii standard a regăsirii informației.

Toată lista de exemple prezentată anterior nu face decât să sublinieze importanța


generală a clasificării în domeniul regăsirii informației. Multe sisteme din ziua de astăzi
folosesc diferite componente care implică o clasificare de un anume tip. Problema de
clasificare ce va fi discutată pe tot parcursul acestei lucrări este clasificarea/categorizarea
textelor.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


1.2 Categorizarea Textelor

Categorizarea/clasificarea textelor (CT) reprezintă acțiunea de a asigna documente


întregi, unor categorii predefinite. Acest mecanism poate oferi o viziune conceptuală asupra
colecțiilor de documente și are importante aplicații în lumea reală. De exemplu, știrile sunt
organizate în mod curent după subiect sau după un cod geografic; lucrările academice sunt
adesea clasificate după un domeniu tehnic sau un subdomeniu; rapoartele pacienților din
centrele medicale sunt indexate după diferite aspecte, folosind taxonomii ale diferitelor
categorii de boală, tipuri de proceduri chirurgicale, coduri de asigurări ș.a.m.d. O altă
aplicație foarte răspândită a categorizării textelor este filtrul de spam care împarte email-
urile în două categorii: spam și non-spam.
Clasificarea/Categorizarea documentelor este și o problemă din știința informației
(information science). Cerința este încadrarea unui document în format electronic, ca făcând
parte din una sau mai multe categorii, în funcție de conținutul acestuia. Cerința de clasificare
a documentelor poate fi de două feluri: clasificare supervizată unde există mecanisme
externe ( feedback din partea unei persoane ) ce oferă informații cu privire la clasificarea
corectă a documentelor și clasificare nesupervizată unde clasificarea este făcută în întregime
fără a avea la dispoziție informații din exterior. Mai există de asemenea și o clasificare semi-
supervizată, unde doar o parte din documente sunt etichetate printr-un mecanism extern.
În ultimii 20 de ani numărul documentelor text în format digital a crescut foarte mult
ca volum. Ca o consecință, organizarea automată și clasificarea documentelor prezintă o
importanță practică deosebită. Cercetarea în domeniul clasificării textelor caută să
partiționeze seturi de documente nestructurate în grupuri ce descriu conținutul
documentelor. Există două mari versiuni în clasificarea textelor: clusterizarea și
categorizarea textelor. Prima se concentrează pe identificarea unei structuri ascunse a unui
grup în setul documentelor, iar cea de-a doua (cunoscută si sub denumirea de clasificarea
textelor) poate fi văzută ca un task de structurare a setului de documente conform unei
structuri de grup cunoscute a priori.
Clasificarea documentelor se întâlnește în multe aplicații: filtrarea de email-uri,
routarea email-urilor, filtrarea spam, monitorizarea știrilor, răspândirea selectivă de
informații către consumatori, indexarea automată a articolelor științifice, popularea
11 | P a g i n a

automată a cataloagelor ierarhice a resurselor web, identificarea genului literar, al autorului,


examinarea codului ș.a.m.d. Categorizarea automată a textelor este atractivă deoarece
organizarea manuală a textelor poate deveni foarte scumpă din punct de vedere al
resurselor implicate ( umane si materiale ) sau imposibil de realizat într-un anumit interval
de timp, ținând cont și de numărul mare de documente luat în calcul.

1.2.1 Scurt istoric

În ultimii ani cerințele referitoare la conținutul documentelor au căpătat un statut


privilegiat în cadrul sistemelor de organizare a informației, datorită disponibilității
documentelor în format digital și necesității de a fi accesibile într-un mod cât mai flexibil.
Categorizarea textelor ( clasificarea textelor sau identificarea subiectului unui text ) ca
etichetare a unor texte cu categorii tematice dintr-un set predefinit este un exemplu de o
astfel de cerință. CT este cunoscută încă din anii ’60, dar a devenit un subdomeniu al
sistemelor de organizare a informației abia la începutul anilor ’90. Acest lucru s-a datorat în
special interesului practic și existenței unui hardware mai performant. CT este acum folosită
în diferite contexte începând cu indexarea documentelor bazată pe un vocabular specificat,
filtrarea documentelor, generarea automată de meta-date, dezambiguizarea sensului
cuvintelor, popularea cataloagelor ierarhice de resurse web precum și în aproape orice
aplicație care necesită o organizare a documentelor sau o gestionare selectivă și adaptabilă a
lor.
Până la sfârșitul anilor ’80 cea mai populară abordare a problemei CT, în cadrul
aplicațiilor din lumea reală, era inginerizarea cunoștiințelor (knowledge engineering) ce
consta în definirea manuală a unui set de reguli. Fiecare regulă era alcătuită dintr-o anumită
combinație de cuvinte cheie, combinație ce indica o anumită categorie. Această abordare a
pierdut teren în anii ’90 în favoarea paradigmei învățării automate (machine learning)
conform căreia, un proces inductiv general construiește un clasificator de texte automat,
învățând, dintr-un set de documente preclasificate, caracteristicile categoriilor de interes.
Avantajele acestei abordări sunt:

 acuratețe comparabilă cu cea a experților umani;


 reducerea unui efort considerabil deoarece nu este necesară nici o intervenție, din
partea experților din domeniu, în construcția clasificatorului sau pentru adaptarea lui
la diferite seturi de categorii.

În zilele noastre CT este o disciplină aflată la intersecția dintre învățarea automată


(machine learning) și regăsirea informației (information retrieval) și ca atare are în comun

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


12 | P a g i n a

un număr de caracteristici cu alte probleme ca extragerea informației/cunoștiințelor din


texte (text mining) [Knight 1999; Pazienza 1997]. Se pune în continuare problema unde este
granița dintre aceste discipline iar terminologia este într-o continuă evoluție.
Termenul de categorizare automată a textelor, în afară de sensul său uzual, a mai
fost folosit, de-a lungul timpului, în literatura de specialitate și cu alte sensuri:

 identificarea automată a unui set de caterorii [Borko și Bernick 1963];


 identificarea automată a unui set de categorii și gruparea documentelor pe
aceste categorii ( text clustering ) [Merkl 1998];
 orice activitate de grupare a itemi-lor dintr-un text, problemă ce ține atât de
CT cât și de text clustering [Manning și Schütze 1999].

1.2.2 O definire formală a problemei

Pentru clasificarea textelor(CT) se dau :

 o descriere a unui document, unde reprezintă spațiul documentelor. Acesta


din urmă este de regulă un spațiu multidimensional.
 un set fixat de clase . Clasele se mai numesc categorii sau etichete
și sunt definite de oameni în funcție de cerințele aplicațiilor.
 un set de antrenare cu documente etichetate , unde .

Exemplu: = < Beijing aderă la Organizația Comercială Mondială, China >

pentru documentul format dintr-o singură propoziție Beijing aderă la Organizația Comercială
Mondială și clasa (eticheta) China.
Folosind o metodă sau un algoritm de învățare, dorim să învățăm un clasificator sau o
funcție de clasificare să asocieze documentele unor clase.
(1.1)
Acest tip de învățare poartă denumirea de învățare supervizată deoarece un
supervizor (omul care definește clasele și etichetează documentele de antrenare) acționează
ca un profesor ce dirijează procesul de învățare. Metoda de învățare supervizată se definește
prin și se notează prin . Metoda de învățare primește ca input testul de
antrenare și returnează funcția de clasificare învățață .

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


13 | P a g i n a

Figura 1.1 oferă un exemplu de clasificare a textelor aparținând colecției Reuters-


RCV1. Sunt reprezentate 6 clase (UK, China, … , sport), fiecare dintre ele conținând câte 3
documente de antrenare. Fiecare document în parte este figurat conținând doar anumite
cuvinte reprezentative. Setul de antrenare oferă niște exemple clasice pentru fiecare clasă
în parte astfel încât să putem învăța funcția de clasificare Odată învățață , o putem aplica
setului de test (datelor de test), în particular documentului Beijing aderă la Organizația
Comercială Mondială a cărui clasă este necunoscută.

Fig 1.1 Clasele, setul de antrenare și setul de clasificare pentru categorizarea textelor.

După cum se poate observa din figura de mai sus, funcția de clasificare asignează
noul document clasei = China, asignare care este corectă.
Clasele au uneori structuri interesante, cum este și structura prezentată în exemplu,
de ierarhie, ce oferă un ajutor important în rezolvarea problemei de clasificare. Există câte
două instanțe pentru fiecare dintre cele trei categorii: regiuni, industrie și domenii.
Din definiția (1.1) se poate deduce că un document este membru numai al unei
singure clase. Acest model nu este cel mai fidel cu putință pentru ierarhia din Fig 1.1. De
exemplu, un document despre Olimpiada din 2008 ar trebui să fie membru în două clase: în

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


14 | P a g i n a

clasa China și în clasa sport. Acest tip de clasificare este o problemă any-of. Cazul în care, în
care un document este membru doar al unei clase este o problema de tip one-of (binară).
Din punct de vedere teoretic o clasificare binară este mai generală, deoarece un
algoritm pentru clasificarea binară poate fi folosit și pentru clasificarea any-of; trebuie doar
transformată problema de tip any-of în probleme independente de clasificare binară în
, . Reciproca nu este valabilă: un algoritm ce rezolvă o problemă
any-of nu poate fi folosit pentru o clasificare binară. Lucrarea de față se concentrează pe
rezolvarea problemei de tip binar datorită următoarelor considerente:

 cazul binar este important în sine, deoarece există numeroase aplicații în CT


ce constau în probleme de clasificare binară (ex: să se decidă dacă un
document dj este sau nu despre Jazz). Categoriile celor mai multe astfel de
probleme sunt populate inegal (ex: mult mai puține documente se referă la
jazz față de cele care nu fac referire) și caracterizate inegal (ex: ceea ce face
referire la Jazz poate fi caracterizat mult mai ușor decât ceea ce nu face);
 rezolvarea cazului binar implică rezolvarea cazului în care un document poate
aparține mai multor clase;
 mare parte din literatura CT este construită în jurul cazului problemei binare;
 multe tehnici ale clasificării binare sunt cazuri speciale ale unor tehnici
existente de etichetare cu o singură clasă și sunt mai simplu de ilustrat.
Aceasta înseamnă că vom privi clasificarea cu clasele ca
probleme independente de clasificare a documentelor din într-o
categorie dată ci, unde

Scopul principal al CT este obținerea unei acurateți cât mai mari pentru datele de test
sau datele noi. Este ușor de obținut o acuratețe ridicată pentru datele de antrenare
deoarece putem sa memorăm foarte simplu etichetele. Cu toate acestea acuratețea ridicată
pentru datele de antrenare nu garantează funcționarea corectă a clasificatorului pe datele
noi dintr-o anume aplicație. Când se folosește un set de antrenare pentru a învăța un
clasificator, se face presupunerea că datele de antrenare și datele de test sunt similare sau
fac parte din aceeași distribuție de probabilitate.

1.2.3 Modelul spațiului vectorial

După ce am definit problema categorizării textelor, se pune întrebarea firească a


modului în care reprezentăm un document. Modelul reprezentării documentelor ca vectori
într-un spațiu n-dimensional (vector space model), descris pentru prima oară de Salton

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


15 | P a g i n a

[Salton, Wong și Yanng 1975], vine în ajutor ca răspuns la această întrebare. Soluția este
folosită foarte mult în domeniul regăsirii informației la atribiurea de scoruri, în probleme de
clasificare și clusterizare a documentelor.
Considerăm spațiul documentelor alcătuit din documente, fiecare document
fiind indentificat de unul sau mai mulți termeni ; fiecare termen are o pondere în funcție
de importanța sa. O reprezentare 3-dimensională a problemei este prezentată în Fig 1.2, în
care fiecare document este reprezentat de un număr maxim de 3 termeni.

Fig 1.2 Reprezentarea vectorială a spațiului documentelor.

Modelul 3-dimensional poate fi extins la unul t-dimensional în care sunt prezenți


termeni distincți. În acest caz fiecare document este reprezentat de un vector t-
dimensional:

, unde wij este ponderea termenului j

Cea mai simplă modalitate de asignare de ponderi termenilor este de a număra de


câte ori apare fiecare termen în cadrul unui document. Această schemă de asignare a
ponderilor poartă denumirea de frecvența termenilor (term frequency) și se notează tft,d
unde indicii t și d fac referire la termen respectiv la document. O astfel de vizualizare
cantitativă a documentului poartă denumirea, în literatura de specialitate, de model al
sacului de cuvinte (bag of words), în care ordinea cuvintelor din document este ignorată.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


16 | P a g i n a

O altă modalitate de asignare de ponderi termenilor, s-a născut din dorința de a


atenua relevanța termenilor care apar de foarte multe ori în cadrul unui document. Acest
lucru se poate realiza prin împărțirea ponderilor termenilor la o valoare numită frecvența
documentelor (document frequency), notată dft și reprezentând numărul de documente din
colecție ce conțin termenul t. Tehnica descrisă poartă denumirea de frecvența inversă a
documentelor (inverse document frequency) și se definește în felul următor:

(1.2)
unde N reprezintă numărul de documente din colecție. Idf-ul unui termen rar este mare iar
cel pentru un termen frecvent este mai mic.
Combinând frecvența termenilor și frecvența inversă a documentelor obținem o
măsură a ponderii termenilor ce poartă denumirea de tf-idft,d. Schema tf-idf asignează unui
termen t din documentul d o pondere dată de formula:
(1.3)
Cu alte cuvinte, tf-idft,d asignează unui termen t o pondere în documentul d care este:
1. cea mai mare când t apare de un număr mare de ori în cadrul unui număr mic de
documente;
2. mai scăzută când termenul apare de puține ori într-un document sau apare în multe
documente;
3. cea mai scăzută când termenul apare în aproape toate documentele.

În acest moment putem privi fiecare document ca un vector cu o componentă


corespunzătoare fiecărui termen, împreună cu o pondere pentru fiecare componentă dată
de formula (1.3). Pentru termenii din dicționar care nu apar în document ponderea este 0.
Vom introduce în continuare o măsură de similaritate între documente.
Se notează prin vectorul rezultat din documentul d , cu o componentă pentru
fiecare termen din dicționar, calculată după formula (1.3). Setul de documente dintr-o
colecție poate fi văzut ca un set de vectori într-un spațiu vectorial, în care există câte o axă
pentru fiecare termen în parte. O astfel de reprezentare nu ține seama de ordinea
termenilor din fiecare document. Cu toate acestea pare intuitiv de remarcat că două
documente având reprezentări similare ale sacului de cuvinte sunt similare și în conținut.
Modul standard de cuantificare a similarității între două documente d1 și d2 este prin
calcularea similarității cosinus (cosine similarity) dintre reprezentările vectoriale și
ale lor.

= (1.4)

Unde numărătorul reprezintă produsul scalar al vectorilor și iar numitorul este


produsul distanțelor Euclidiene. Efectul numărătorului în formula (1.4) este de a normaliza

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


17 | P a g i n a

lungimile și la vectorii unitate = respectiv =


. Ecuația (1.4) se poate rescrie ca:

(1.5)
Așadar formula (1.5) poate fi privită ca produsul scalar al versiunilor normalizate de
vectori reprezentând cele două documente. Această măsură este cosinusul unghiului θ
dintre doi vectori, așa cum se poate observa în figura (1.3).

Fig 1.3 Ilustrarea similarității cosinus. Sim(d1,d2) = cos θ.

Este indicată utilizarea ei atunci când se caută documentele dintr-o colecție cele mai
similare cu un document d dat. O astfel de căutare este utilă atunci când un utilizator
identifică un anumit document și dorește să găsească alte documente similare cu acesta.
Această problemă poate fi redusă la căutarea acelui document care maximizează produsul
scalar . Pentru aceasta se calculează produsele scalare dintre și fiecare
dintre vectorii , , ... , , alegându-se în final cea mai mare valoare a
similarității.
Având în vedere cele discutate mai sus, reprezentarea unui document în problema
clasificării textelor folosește modelul spațiului vectorial. Fiecare document este reprezentat
printr-un vector având câte o componentă număr real, de obicei tf-idf, pentru fiecare
termen. Astfel, spațiul documentelor , care este în același timp și domeniul funcției , este
.
Ipoteza ce stă la baza folosirii modelului spațiului vectorial pentru problema de
clasificare a textelor poartă denumirea de ipoteză de contiguitate (contiguity hypothesis).

Definiția 1.1 (Ipoteza de contiguitate)


Documentele care fac parte din aceeași clasă formează o zonă contiguă (de adiacență) iar
zonele diferitelor clase nu se suprapun.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


18 | P a g i n a

Documentele prezentate în Fig 1.1 formează zone contigue ce pot fi observate ca urmare a
folosirii unor tipare în distribuția cuvintelor. Spre exemplu, documentele din clasa China tind
să aibă valori mai mari pentru dimensiuni ca Beijing, chinezesc, și Mao în timp ce
documentele din clasa UK tind să aibă valori mari pentru Londra, britanic și Regină. Regiunile
de contiguitate pot fi observate în figura (1.4), unde sunt trasate și granițele care le separă și
cu ajutorul cărora putem clasifica noi documente.

Fig 1.4 Clasificare în trei clase cu ajutorul modelului spațiului vectorial.

Rezultatul plasării unui set de documente într-o zonă contiguă depinde de alegerile
particulare care sunt luate în seamă atunci când se are în vedere reprezentarea
documentului: tipul ponderilor, eliminarea cuvintelor de legătură. Pentru a exemplifica că
reprezentarea unui document este de o importanță vitală să considerăm cazul în care avem
două clase: texte scrise de un colectiv de autori și texte scrise de o singură persoană. Pentru
clasa textelor scrisă de un singur autor este frecventă folosirea pronumelui personal
persoana I, eu. Această infromație este însă ștearsă din reprezentare atunci când folosim o
listă a cuvintelor de legătură (stop words). Dacă reprezentarea documentelor este
nefavorabilă, ipoteza de contiguitate nu va fi satisfăcută și astfel nu este posibilă clasificarea.
Din aceleași considerente s-a decis folosirea reprezentării tf-idf normalizate după
lungime. Spre exemplu, un termen care apare de 5 ori într-un document trebuie să obțină o
pondere mai mare decât un termen care apare doar o singură dată, dar nu o pondere de 5

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


19 | P a g i n a

ori mai mare. Ca regulă generală, nu trebuie folosite în clasificare valori neponderate sau
nenormalizate.
În loc să identificăm fiecare document ca un vector cu originea în punctul 0 al
sistemului de coordonate, distanța relativă dintre vectori se păstrează atunci când
normalizăm lungimile vectorilor la valoarea 1 și utilizăm proiecția vectorilor pe suprafața
sferei unitate. În acest caz fiecare document poate fi reprezentat ca un punct a cărui poziție
este specificată de zona în care vectorul corespunzător atinge învelișul sferei. Două
documente conținând termeni similari sunt reprezentate prin puncte care sunt foarte
aproape unul de altul în spațiu. În general, distanța dintre două puncte în spațiu este invers
corelată cu similaritatea dintre vectorii corespondenți.
Un număr mare de clasificatori de text pot fi priviți ca un tip de clasificatori liniari –
clasificatori ce clasifică pe baza unei combinații liniare de caracteristici. Acești clasificatori
împart spațiul caracteristicilor în zone separabile de hiperplane de decizie liniare. Mai există
și un al doilea tip de clasificatori, neliniari, care sunt mai complecși dar care nu obțin
întotdeauna rezultate mai bune ca cei liniari. Lucrarea de față se va concentra în capitolele
următoare pe descrierea unui anumit tip de clasificator, SVM (support vector machine), atât
din perspectiva liniară cât și din cea neliniară.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2. Support Vector Machines
(SVMs)

Îmbunătățirea eficacității clasificatorilor a fost o zonă de cercetare intensă în


domeniul machine learning în ultimele două decenii. Această aplecare a condus la crearea
unei noi generații de clasificatori aflați la cel mai înalt grad de dezvoltare (state-of-the-art)
cum ar fi: mașinile cu vectori suport (support vector machines), arbori de decizie (boosted
decision trees), regresia regularizată (regularized logistic regression), rețele neurale (neural
networks) și păduri random (random forests). Multe dintre aceste metode, incluzând și
mașinile cu vectori suport, au fost folosite cu succes în problemele de regăsire a informației,
în particular pentru clasificarea textelor. Un clasificator SVM este un tip de clasificator cu
margine inflexibilă (large margin): o metodă din machine learning ce se bazează pe folosirea
modelului spațiului vectorial în care țelul îl constituie găsirea unei granițe de decizie
(decision boundary) între două clase, care este cât se poate de depărtată de orice punct din
setul de antrenare (exceptând doar punctele distanțate foarte mult de restul datelor
(outliers) și punctele zgomot (noise)). Acest tip de clasificator va fi prezentat pe larg în
secțiunea (2.3). Pe lângă acesta există și un clasificator SVM cu margine flexibilă (soft
margin) care permite creșterea în lățime a graniței decizionale, sacrificând în schimb
clasificarea corectă a punctelor zgomot. Secțiunea (2.4) va analiza în detaliu acest tip de
clasificator. Ultimul, dar nu cel din urmă clasificator discutat, va fi cel neliniar (nonliniar),
folosit în special în cazul în care datele de antrenare nu sunt liniar separabile. El ne va
permite introducerea unor tipuri speciale de funcții numite funcții kernel (kernel functions),
21 | P a g i n a

care vor fi analizate în capitolul următor. Clasificatorul neliniar este prezentat în secțiunea
(2.5).
Metoda vectorilor suport a fost introdusă în categorizarea textelor de Joachims
[1998, 1999] și folosită ulterior de Drucker et al.[1999], Dumais et al.[1998+, Dumais și
Chen[2000], Klinkenberg și Joachims[2000], Taira și Haruno[1999], Yang și Liu[1999] etc. Tot
el [Joachims 1998], a subliniat cele două mari avantaje ale clasificatorilor SVM în
categorizarea textelor:

 de cele mai multe ori selecția termenilor nu este necesară, datorită faptului că acești
clasificatori nu sunt afectați de supra-antenare (overfitting) și scalează până la
dimensiuni foarte mari;
 nu este necesar niciun efort din partea omului sau calculatorului pentru ajustarea
parametrilor unui set de testare deoarece există o alegere implicită a valorilor
parametrilor, motivată teoretic și care conduce la cele mai bune rezultate.

Mașinile cu vectori suport nu sunt în mod special mai buni decât orice alt tip de
metode din machine learning (exceptând poate cazurile cu puține date de antrenare), dar
sunt clasificatorii cu cel mai înalt grad de dezvoltare atins până în prezent, bucurându-se de
un uriaș interes teoretic și empiric.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2.1 Hiperplane de seperabilitate
liniară

În această secțiune vom introduce noțiunea clasificatorilor liniari. Mașinile cu vectori


suport ( support vector machines ) sunt un exemplu de clasificatori liniari binari. Datele
pentru o astfel de problemă constau din obiecte etichetate cu una din cele două etichete
posibile; pentru ușurință să presupunem că etichetele sunt (exemple pozitive) și
(exemple negative). Fie x un vector cu M componente , , fiecare
componentă reprezentând o dimensiune dintr-un spațiu vectorial M–dimensional. Notația xi
va desemna al i-lea vector din setul xi , unde este eticheta asociată lui xi.
Obiectele xi se numesc date de intrare sau exemple și sunt reprezentate ca vectori coloană.
Un concept cheie în definirea unui clasificator liniar este produsul scalar
(dot/inner/scalar product) dintre doi vectori . Un clasificator liniar se
bazează pe o funcție liniară discriminantă de forma următoare:
(2.1)
Funcția discriminantă atribuie un “scor” pentru datele de intrare , și este
folosită pentru a decide cum să clasifice aceste date. Vectorul este cunoscut sub
denumirea de vectorul ponderilor (weight vector) iar scalarul se numește
direcție/deplasare/înclinare (bias). În plan (2D) punctele care satisfac ecuația
corespund unei linii/drepte trasate prin origine; în spațiu (3D) punctele determină un plan iar
într-un spațiu multidimensional aceleași puncte determină un hiperplan. Bias-ul
deplasează hiperplanul în raport cu originea.
Hiperplanul divide spațiul în două jumătăți în funcție de semnul lui , care indică
de ce parte a hiperplanului se găsește un punct (vezi Fig 2.1): dacă , atunci se alege
clasa pozitivă, altfel cea negativă. Granița dintre regiunile clasificate ca pozitive și negative se
numește graniță de decizie (decision boundary) a clasificatorului. Granița de decizie definită
de un hiperplan (cf. Ecuației 2.1) este liniară deoarece este liniară în date de intrare (strict
vorbind, pentru funcția este afină și nu liniară, dar vom ignora această distincție). Un
clasificator cu o frontieră de decizie liniară se numește un clasificator liniar.
23 | P a g i n a

Clasificatorii ce folosesc funcția discriminantă (2.1) și care calculează o combinație


liniară de caracteristici pentru datele de intrare returnând semnul, au fost denumiți, în
literatura de specialitate de la sfârșitul anilor 1950, perceptroni (perceptrons) [Rosenblatt
1958]. Perceptronii au pus bazele modelelor de rețele neuronale (neural networks) din anii
1980 și 1990.

Fig 2.1 Un clasificator liniar ce separă două clase de puncte în plan (2D).

2.1.1 Algoritmul de învățare al perceptronului lui


Rosenblatt

Algorimul de învățare al perceptronului încearcă să găsească un hiperplan de


separare minimizând distanța punctelor greșit clasificate la granița de decizie. Dacă un
răspuns este greșit clasificat, atunci și pentru un
răspuns greșit clasificat cu . Scopul este să minimizăm:

b b) (2.2)
unde indexează setul de puncte greșit clasificate. Valoarea este pozitivă și proporțională
cu distanța punctelor greșit clasificate la granița de decizie Gradientul
(presupunând fixat) este dat de:

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


24 | P a g i n a

(2.3)

(2.4)

Pentru minimizarea acestui criteriu liniar, algoritmul folosește metoda stocastică a


coborârii pe gradient. Aceasta înseamnă că în loc să calculăm suma contribuției la gradient a
fiecărei observații în parte, urmată de un pas în direcția negativă a gradientului, se face un
pas după vizitarea fiecărei observații. Așadar observațiile misclasificate sunt vizitate într-o
anumită ordine și parametrii sunt recalculați după formula:

(2.5)

Am notat cu rata de învățare, care în acest caz poate fi luată 1 fără a pierde din
generalitate. Dacă cele două clase sunt liniar separabile, se poate arăta că algoritmul
converge într-un număr finit de pași și găsește hiperplanul de separație.
Există însă un număr de probleme ale acestui algoritm ce au fost sumarizate de Ripley
[Ripley 1996]:

 atunci când datele sunt separabile, există mai multe soluții, cea găsită fiind
influențață de valorile de început ale algoritmului(Fig 2.2);

Fig 2.2 Există un număr infinit de hiperplane ce separă două clase liniar separabile.

 numărul “finit” de pași poate fi foarte mare. Cu cât este mai mic intervalul cu atât
este mai mare timpul pentru a-l găsi;
 atunci când datele nu sunt separabile, algoritmul nu va converge ci va intra în cicluri.
Acestea pot fi foarte lungi și greu de detectat.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


25 | P a g i n a

A doua problemă poate fi adesea eliminată prin căutarea unui hiperplan, nu în spațiul
original, ci într-un spațiu extins, obținut prin crearea mai multor transformări de funcții
elementare a variabilelor inițiale. O separare perfectă nu poate fi întotdeauna obținută: spre
exemplu, în cazul în care observațiile celor două clase au în comun aceleași date de intrare.
Acest lucru poate fi chiar nedorit, deoarece modelul astfel rezultat va fi supra-antrenat
(overfit) și nu va generaliza suficient de bine.
O soluție elegentă pentru prima problemă este adăugarea unor constrângeri
suplimentare pentru hiperplanul de separație.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2.2 Hiperplanul optim de
separabilitate

Dacă un set de date ca cel din Fig 2.1 este liniar separabil, atunci există o infinitate de
hiperplanuri care clasifică în mod corect toate punctele. Se naște acum întrebarea firească
pe care dintre aceste hiperplanuri să îl alegem, asigurându-ne că nu numai datele de
antrenare, ci și viitoarele exemple, nevăzute de clasificator la antrenare, vor fi etichetate
corect.
Intuitiv, o graniță de separare trasată în mijlocul vidului dintre exemplele celor două
clase pare mai bună decât una care se apropie foarte mult de exemplele uneia dintre cele
două clase. Teoria învățării statistice [Vapnik 1999] sugerează că hiperplanurile de clasificare
vor obține rezultate mai bune atunci când vor separa datele atât corect cât și cu o margine
(margin) întinsă. Aici marginea este definită ca distanța de la cele mai apropiate exemple la
granița de decizie (Fig 2.3).

Fig 2.3 Hiperplanul optim de separabilitate este acela care separă datele cu o margine
maximă.
27 | P a g i n a

Hiperplanul optim de separabilitate (optimal separating hyperplane) [Vapnik și


Chervonenkis 1974; Vapnik 1979] separă cele două clase și maximizează distanța la cele mai
apropiate puncte din fiecare clasă *Vapnik 1996]. În afara faptului că se obține o soluție
unică la problema separării cu ajutorul hiperplanurilor, prin maximizarea marginii dintre cele
două clase pe baza datelor de antrenare se constată o performanță de clasificare sporită în
ceea ce privește datele de test.
Maximizarea marginii pare o alegere corectă deoarece punctele din apropierea
suprafeței de decizie reprezintă decizii de clasificare nesigure: există o probabilitate de 50%
pentru un clasificator să decidă în ambele sensuri. Un clasificator cu o margine întinsă nu ia
decizii de clasificare cu o precizie joasă. Acest fapt conferă clasificării o marjă de siguranță: o
mică eroare în măsurare sau o variație mică a unui document nu vor cauza o clasificare
greșită.
O altă motivație bazată tot pe intuiție este prezentată în figura (2.4). Prin construcția
hiperplanului optim de separabilitate se insistă pe folosirea unei margini întinse în jurul
graniței de decizie. Dacă avem de plasat un separator mai lat între clase, avem mai puține
opțiuni de a-l plasa decât în cazul unui hiperplan de decizie (Fig 2.2). Ca o consecință a
acestui fapt, consumul de memorie a modelului scade și ne așteptăm ca abilitatea lui de a
clasifica corect datele de test să crească.

Fig 2.4 O intuiție pentru clasificarea cu margine întinsă. Folosind acest tip de clasificare se
reduce capacitatea modelului: gama de unghiuri în care poate fi plasată suprafața de decizie
lățită este mai mică decât în cazul unui hiperplan de decizie (Fig 2.2).

Această model de construcție implică specificarea funcției de decizie printr-un subset


de date (de regulă mic) care definesc poziția separatorului. Aceste puncte se numesc vectori

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


28 | P a g i n a

suport (support vectors) (într-un spațiu vectorial un punct poate fi privit ca un vector între
origine și acel punct). În figura (2.3) pot fi observați și acești vectori suport. Alte puncte nu
joacă niciun rol în determinarea suprafeței de decizie alese.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2.3 Clafisicatorul SVM cu margine
inflexibilă (hard-margin)

Se numește clasificator SVM cu margine infelxibilă (hard-margin SVM), clasificatorul


cu marginea maximă, ales dintre toți acei clasificatori ce împart în mod corect datele de
intrare în clasele corespunzătoare.
Din punct de vedere algebric, un hiperplan de decizie poate fi definit printr-un
termen liber (intercept) și un vector normal , care este perpendicular pe hiperplan. În
literatura învățării automate (machine learning) acest vector poartă denumirea de vector al
ponderilor (weight vector). Rolul termenului liber este de a alege un hiperplan
perpendicular pe vectorul normal. Deoarece hiperplanul este perpendicular pe vectorul
normal, rezultă că toate punctele aflate în hiperplan satisfac ecuația - . Presupunând
ca avem un set de date de antrenare xi , în care fiecare membru este o
pereche formată dintr-un punct xi și o etichetă a unei clase corespunzătoare acestuia.
Pentru clasificatorii SVM cele două clase sunt etichetate cu și (în loc de și ) iar
termenul liber este explicit reprezentat ca (nefiind conținut în vectorul ponderilor prin
adăugarea unei caracteristici în plus). Considerând cele definite până acum, forma
clasificatorului liniar este:
(2.6)
Valoarea indică o clasă iar valoarea cealaltă clasă.
30 | P a g i n a

2.3.1 Marginea funcțională și marginea


geometrică

În continuare vom încerca să stabilim intuitiv în ce măsură putem fi siguri de


clasificarea punctelor. Pentru aceasta considerăm exemplul din figura 2.5 în care sunt
figurate exemple clasificate pozitiv(x), exemple clasficate negativ(o) și trei puncte A,B,C. Se
observă că punctul A este foarte depărtat de granița de decizie. Din acest motiv, dacă ni s-ar
cere să clasificăm punctul A, putem afirma cu încredere că . În ceea ce privește
punctul C, aflat foarte aproape de suprafața de decizie, cu toate că se află de partea
exemplelor pozitive și putem afirma că , pare foarte probabil ca o mică schimbare a
ecuației suprafeței de decizie să influențeze schimbarea predicției în . De aceea
suntem mult mai încrezători în predicția făcută pentru punctul A. Punctul B se află plasat
între cele două puncte anterior discutate și putem afirma în linii mari: cu cât un punct este
mai depărtat de hiperplanul de decizie cu atât putem fi mai încrezători în a-l clasifica.
Această intuiție ne duce cu gândul la găsirea unei suprafețe de decizie care ne permite să
clasificăm atât corect cât și cu o încredere mare (la o distanță cât mai departe de granița de
decizie) datele din setul de antrenare.

Fig 2.5 Reprezentarea a trei puncte din setul de antenare (A, B, C).

Pentru a formula riguros cele discutate, trebuie introduse noțiunile de margine


funcțională (functional margin) respectiv margine geometrică (geometric margin).

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


31 | P a g i n a

Fiind dat un exemplu de antrenare xi , se definește marginea funcțională a


exemplului , raportată la hiperplanul :
(2.7)
Dacă , atunci pentru ca marginea funcțională să fie mare (pentru ca predicția
clasificatorului să fie corectă și de încredere), trebuie ca valoarea să fie un număr
mare pozitiv. Reciproc, dacă , atunci pentru o margine funcțională mare, valoarea
trebuie să fie un număr negativ mare. Mai mult, dacă , atunci
predicția pentru exemplul curent este corectă. Așadar o margine funcțională mare asigură o
clasificare corectă și de încredere.
Cu toate acestea, pentru un clasificator liniar ce implementează funcția din ecuația
2.6, există o proprietate a marginii funcționale care nu o recomandă ca fiind o măsură de
încredere. Dacă înlocuim în ecuația (2.6) cu și cu rezultatul lui nu va fi afectat.
Cu toate acestea înlocuirea parametrilor cu conduce la dublarea marginii
funcționale. Se pare că modificând parametrii putem obține o margine funcțională oricât de
mare. Apare acum firească aplicarea unei condiții de normalizare a parametrilor .
Definiția marginii funcționale va trebui să ia în calcul folosirea parametrilor normalizați
.1
Fiind dat setul de antrenare , marginea funcțională se mai poate defini ca fiind cea
mai mică margine funcțională a indivizilor din :
(2.8)
Vom discuta în continuare despre marginea geometrică. Să considerăm pentru
aceasta figura de mai jos.

Fig 2.6 Reprezentarea marginii geometrice.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


32 | P a g i n a

În figură se poate observa granița de decizie dată de împreună cu vectorul .


Se observă că este ortogonal (perpendicular) pe hiperplanul de separație. Se consideră
punctul A, input-ul unui exemplu de antrenare xi etichetat cu . Distanța dintre el și
suprafața de decizie este , reprezentată prin segmentul AB.
Cum se poate calcula această distanță ? Raportul reprezintă un vector unitate
(de lungime 1) având aceeași direcție cu . Deoarece punctul A reprezintă vectorul xi putem
calcula punctul B ca fiind xi . Dar acest punct se găsește pe suprafața de decizie și
toate punctele aflate pe această suprafață satisfac ecuația = 0. Așadar,
T
xi i b=0 (2.9)
Rezolvând ecuația pentru a-l găsi pe avem:
b
i xi (2.10)

Formula (2.10) este o particularizare a cazului pozitiv. În general definim marginea


geometrică a exemplului raportată la hiperplanul :
b
i xi (2.11)

Dacă w , atunci marginea funcțională se confundă cu marginea geometrică.


Marginea geometrică este invariabilă la scalarea parametrilor și ; dacă înlocuim
cu și cu marginea geometrică rămâne neschimbată. Acest lucru se poate dovedi
foarte util, deoarece putem impune constrângeri arbitrare parametrilor w și fără a
modifica rezultatul obținut.
Fiind dat setul de antrenare , marginea geometrică se mai poate defini ca fiind cea
mai mică margine geometrică a indivizilor din :

i i (2.12)
Marginea geometrică a clasificatorului este lățimea maximă a benzii care poate fi
desenată pentru a separa vectorii suport ai celor două clase. Aceasta este de două ori
marginea geometrică definită de ecuația (2.8) sau, altfel spus, lățimea maximă a unuia dintre
separatorii lățiți din figura (2.4).

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


33 | P a g i n a

2.3.2 Problema de optimizare

Din cele discutate în secțiunea anterioară, dezideratul natural este de a găsi o


suprafață de decizie care să maximizeze marginea geometrică deoarece aceasta ne-ar oferi
un set de predicții de încredere pentru datele de test și o la fel de bună potrivire a datelor de
antrenare. Ar rezulta un clasificator ce separă exemplele pozitive de cele negative printr-un
spațiu gol (marginea geometrică). Întrebarea care se pune este cum putem găsi această
margine geometrică maximă? Pentru aceasta putem formula următoarea problemă de
optimizare:

(2.13)

Vrem să maximizăm cu constrângerea ca fiecare exemplu de antrenare să aibe marginea


funcțională cel puțin . Constrângerea w ne asigură că marginea funcțională este egală
cu marginea geometrică fapt ce ne asigură și că toate marginile geometrice sunt cel puțin .
Astfel rezolvând această problemă va rezulta hiperplanul w, b , care are cea mai mare
margine geometrică posibilă ce poate fi calculată din setul de antrenare.
Deoarece constrângerea w nu este o constrângere convexă, problema nu se
poate rezolva cu ajutorul unui program software de optimizare. De aceea vom considera o
variantă modificată a problemei de optimizare:

(2.14)

Acum vom încerca să maximizăm raportul cu constrângerea că toate marginile


w

funcționale să fie cel puțin . Deoarece marginea geometrică se scrie ca am obținut


w
exact ce vroiam. Mai mult am eliminat și constrângerea w . Cu toate acestea funcția
obiectiv nu este convexă.
w
Să ne amintim din secțiunea precedentă că putem scala parametrii și b fără a
schimba rezultatul. Astfel putem introduce constrângerea ca marginea funcțională să fie
egală cu 1: . Multiplicând parametrii și b cu o constantă, marginea funcțională se va
multiplica de asemenea cu acea constantă. Înlocuind această constrângere de scalare în
problema noastră și făcând observația că maximizarea funcției este același lucru cu
w w
minimizarea lui w , rezultă următoarea problemă de optimizare:

(2.15)

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


34 | P a g i n a

Inegalitatea constrângerilor se transformă în egalitate în cazul vectorilor suport. Factorul


rezultă prin adunarea de ambele părți ale suprafeței de decizie a marginii geometrice
.
w w w
Ecuația (2.15) reprezintă o formă a problemei ce poate fi rezolvată eficient. Problema
descrisă este o problemă de optimizare a unei funcții obiectiv convexe cuadrice cu
constrângeri liniare pentru care există numeroși algoritmi matematici de rezolvare. Soluția ei
ne oferă clasificatorul dorit. Ca urmare a interesului pentru rezolvarea acestei probleme au
fost dezvoltate numeroase biblioteci care exploatează structura unei astfel de probleme
pentru un clasificator SVM. Aceste librării sunt folosite pentru crearea modelelor datorită
scalabilității si rapidității cu care operează.
Cu toate că putem considera problema rezolvată în acest moment, vom încerca să
înțelegem cum este construită soluția acestei probleme și vom discuta despre dualitatea
Lagrange. Aceasta ne va conduce la forma duală a problemei de optimizare care joacă un rol
important deoarece ne permite introducerea funcțiilor kernel (kernels) folosite pentru
eficientizare atunci când spațiile dimensionale sunt foarte mari. Forma duală ne va furniza și
un algoritm mai eficient în rezolvarea problemei de optimizare decât cel implementat de
programele software generice.

2.3.3 Dualitatea Lagrange

Se consideră următoarea problemă de optimizare:

Ea poate fi rezolvată cu ajutorul multiplicatorilor Lagrange. Se definește lagrangian-ul ca


fiind:

Termenii se numesc multiplicatori Lagrange. Pentru rezolvarea ecuației pentru și se


egalează cu derivatele parțiale ale lui :

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


35 | P a g i n a

În continuare vom generaliza problema de optimizare pentru a putea să avem și inegalități în


locul egalităților. Se consideră următoarea problemă de optimizare numită primală (primal):

Pentru a o putea rezolva trebuie definit lagrangian-ul generalizat:

Aici, multiplicatorii Lagrange sunt și . Considerăm cantitatea:

Indicele ne spune că este vorba despre problema primală. Se alege un arbitrar. Dacă
încalcă constrângerile de integritate (fie sau pentru un ) atunci
trebuie verificat ca:

Altfel, dacă constrângerile sunt satisfăcute pentru o valoare particulară a lui


. După cum se poate observa ia aceeași valoare ca funcția obiectiv din problema de
optimizare din secțiunea (2.3.2) atunci când valorile lui satisfac constrângerile primalei și
dacă aceste constrângeri sunt încălcate. Astfel, dacă avem problema de minimizare:

putem observa că este aceeași problemă și are aceleași soluții cu problema primală originală.
Prin definiție, valoarea optimă a funcției obiectiv se notează .
Să privim acum o problemă diferită. Se definește:

Indicele ne spune că este vorba despre problema duală. Dacă în cazul definiției lui
optimizarea (maximizarea) se făcea în raport cu și acum minimizarea se face în raport cu
w. Putem acum formula problema de optimizare duală:

Aceasta este la fel cu problema primală prezentată mai sus, exceptând schimbarea ordinii lui
“max” si ”min”. Se definește valoarea optimă a funcției obiectiv a problemei duale
.
Cum sunt relaționate cele două probleme? Se poate arăta ușor că:

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


36 | P a g i n a

În anumite condiții . Caz în care putem rezolva problema duală în locul celei primale.
Să vedem în continuare care sunt aceste condiții.
Presupunem că și sunt convexe iar constrângerile sunt afine. Presupunem de
asemenea condițiile strict fezabile (există anumiți pentru care pentru toți ).
În condițiile în care presupunerile de mai sus sunt îndeplinite trebuie să existe
astfel încât să fie soluția problemei primale, soluțiile problemei duale și
. Mai mult, satisfac condițiile Karush-Kuhn-Tucker
(KKT):

Având în vedere cele discutate mai sus, putem trece la rezolvarea problemei de
optimizare definită de ecuația (2.15):

Constrângerile se pot rescrie în felul următor:

Există câte o astfel de constrângere pentru fiecare exemplu din setul de antrenare. Trebuie
remarcat din condiția de complementaritate duală a KKT (
că doar pentru exemplele de antrenare care au
marginea funcțională egală cu 1 (cele pentru care ecuația este satisfăcută). Se
consideră figura de mai jos în care este marcat hiperplanul maxim de separație cu o linie
dreaptă.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


37 | P a g i n a

Fig 2.7 Hiperplanul maxim de separație împreună cu vectorii suport.

Punctele care au cea mai mică margine sunt exact punctele aflate cel mai aproape de
suprafața de decizie; în figură sunt prezentate trei puncte (unul negativ și două pozitive) care
se găsesc pe liniile punctate paralele cu hiperplanul. Astfel, numai trei -uri, cele
corespunzătoare acestor trei exemple de antrenare, vor fi diferite de zero în soluția optimă a
problemei de optimizare. Aceste trei puncte se numesc vectori suport (support vectors).
Mergând mai departe, pe măsură ce dezvoltăm problema duală, vom încerca să
construim algoritmul bazându-ne pe produsul scalar xi xj al punctelor din spațiul
caracteristicilor de intrare. Pe baza acestui produs scalar vom putea aplica, mai târziu,
artificiul kernel (kernel trick).
Construim acum lagrangian-ul pentru problema noastră de optimizare:

b T
xi b (2.16)
i
De observat că avem numai multiplicatori Lagrange , nu și deoarece constrângerile sunt
inegalități.
Pentru a găsi forma duală a problemei , trebuie mai întâi să minimizăm w b
prin prisma lui w și b (cu fixat), lucrul pe care îl vom face egalând cu zero derivatele lui în
raport cu w și b:

(2.17)

(2.18)

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


38 | P a g i n a

Scoțând w din ecuația (2.17) (w = yi xi ) și introducându-l în ecuația lagrangian-ului


(2.16), obținem cu ajutorul simplificărilor:

Din ecuația (2.18) ultimul termen este egal cu 0, deci:

Ținând seama de constrângerea din ecuația (2.18) și de constrângerea cu care am


început rezolvarea problemei primale, putem scrie în cele ce urmează forma duală a
problemei de optimizare:

T
i xi b
Se poate observa că într-adevăr, condițiile necesare pentru ca sunt
satisfăcute la fel și condițiile KKT. Astfel putem rezolva problema duală în locul celei primale.
Problema duală este o problemă de maximizare în care parametrii sunt . În momentul în
care am rezolvat această problemă (am aflat parametrii ), putem merge înapoi în ecuația
(2.17) și calcula vectorul optim al ponderilor ca o funcție de parametrii . Aflând și
considerând condiția de complementaritate duală a KKT, putem calcula imediat valoarea
optimă pentru termenul liber :
T (2.19)
b i xi xi
Să mai considerăm încă odată ecuația (2.17), care ne dă valoarea optimă a lui în
funcție de valoarea optimă a lui . Să presupunem că am ajustat parametrii modelului unui
set de antrenare și acum dorim să facem o predicție pentru un nou punct . Pentru aceasta
va trebui să calculăm valoarea , prezicerea fiind dacă și numai dacă valoarea
este pozitivă. Dar folosind ecuația (2.17) această valoare se poate rescrie:

(2.20)

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


39 | P a g i n a

Astfel, odată calculați parametrii , pentru a face o predicție, trebuie calculată o cantitate
ce depinde numai de produsul scalar dintre și punctele din setul de antrenare. Mai mult,
am văzut mai devreme că parametrii sunt toți egali cu zero cu excepția celor pentru
vectorii suport. De aceea mulți termeni ai sumei vor fi zero și vor trebui calculate numai
produsele scalare dintre și vectorii suport. Ținând cont de ecuația (2.20) și întorcându-ne la
definiția (2.6), putem face o predicție folosind următoarea funcție de clasificare:

(2.21)

Pentru a recapitula: am pornit cu un set de date de antrenare care definesc în mod


unic cel mai bun hiperplan de separație. Acest set a servit ca date de intrare pentru o
procedură de optimizare cuadrică pentru a găsi hiperplanul căutat. Dându-se un nou punct
pentru a fi clasificat, funcția de clasificare , dată fie prin ecuația (2.6) sau (2.21),
calculează proiecția punctului pe normala hiperplanului. Semnul funcției determină clasa în
care este asignat punctul. Dacă punctul se află suficient de aproape de suprafața de decizie
atunci clasificatorul poate da un răspuns de genul “nu știu” în loc să clasifice punctul într-una
din cele două clase.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2.4 Clafisicatorul SVM cu margine
flexibilă (soft-margin)

În cazul problemelor de categorizare a textelor pentru care dimensiunea spațiului


este foarte mare, există situații în care datele sunt linear separabile. De cele mai multe ori
însă, ele nu sunt și chiar dacă ar fi, este de preferat o soluție care separă mai bine
majoritatea datelor, neținând seama de câteva documente neadecvate (noise documents).
Dacă setul de antrenare nu este liniar separabil, abordarea clasică este de a
permite suprafeței de decizie să facă câteva greșeli (anumite puncte – puncte zgomot (noise)
- se găsesc în interiorul sau de partea greșită a marginii). Pentru fiecare exemplu greșit
clasificat, va fi plătit un preț în funcție de cât de departe este exemplul de îndeplinirea
constrângerilor ecuației (2.13). Pentru a implementa acest deziderat vom introduce noțiunea
de variabile fixate greșit (slack variables) . O valoare nenulă a lui ,
permite exemplului xi să nu îndeplinească constrîngerea impusă de marginea de separație
pentru un cost proporțional cu valoarea lui (vezi figura 2.8).

Fig 2.8 Clasificarea cu margine întinsă folosind variabile slack.


41 | P a g i n a

Există două moduri în care putem modifica constrângerile din ecuația (2.13):
(2.22)
Sau
(2.23)
ă. Cele două alegeri conduc la soluții diferite. Prima alegere
pare cea naturală, deoarece măsoară suprapunerea în distanța reală până la margine; a doua
alegere măsoară suprapunerea în distanța relativă și care se modifică odată cu lățimea
marginii geometrice . Este aleasă cea de-a doua variantă deoarece este o problemă de
optimizare convexă.
Ideea care stă la baza formulării este următoarea: valoarea din constrângerea
y i wT x i b reprezintă o cantitate proporțională cu predicția f(xi ) = wT xi b
care se găsește pe partea greșită a marginii geometrice. Astfel, prin mărginirea sumei
, am mărginit cantitatea totală proporțională cu care predicțiile se găsesc de partea
greșită a marginii. O clasificare greșită apare atunci când . Astfel mărginind cu
o valoare K, mărginim de fapt numărul total de clasificări greșite în antrenare cu valoarea K.
Aplicând cele discutate în secțiunea (2.3.2), putem înlocui și putem formula
w
problema de optimizare convexă pentru clasificatorul cu margine flexibilă (soft-margin):

(2.24)

unde parametrul „costurilor” este constanta din ; pentru cazul liniar


separabil .
Problema de optimizare devine acum un compromis între cât de mult putem întinde
marginea geometrică și cât de multe puncte sunt clasificate greșit pentru a permite această
margine. Clasificatorul SVM cu margine flexibilă (soft-margin) minimizează numărul de
puncte care sunt clasificate greșit în defavoarea lățimii marginii geometrice. Parametrul C
este un parametru de regularizare (regularization term), prin care putem controla supra-
antrenarea (overfitting): când C devine mare este de preferat reducerea marginii geometrice
iar pentru un C destul de mic este ușor să considerăm câteva puncte, cu ajutorul variabilelor
slack, având astfel un separator întins ce modelează majoritatea datelor.
Construim acum lagrangian-ul pentru problema noastră de optimizare:

b
(2.25)
T
i xi b

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


42 | P a g i n a

pe care îl vom minimiza în raport cu w b ( și fixați). Egalând cu zero derivatele lui în


raport cu w, b și , vom ajunge să formulăm problema duală:

(2.26)

(2.27)

(2.28)

cu constrângerile de pozitivitate . Înlocuind ecuațiile (2.26) - (2.28) în formula


(2.25), lagrangian-ul pentru funcția obiectiv a problemei Wolfe duale:

b (2.29)

Putem observa că în problema duală nu apar nici variabilele slack , nici multiplicatorii
Lagrange. Singura valoare rămasă este constanta ce mărginește valoarea multiplicatorilor
Lagrange pentru punctele ce sunt vectori suport. Maximizăm w b cu
constrângerile și yi = 0. În plus față de condițiile (2.26) – (2.28) condițiile
KKT mai includ:
T (2.30)
i xi b
(2.31)
T
i xi b (2.32)
Ecuațiile (2.26) – (2.32) caracterizează în mod unic soluția problemei primale și duale. După
determinarea parametrilor , din ecuația (2.26) se obține soluția optimă a vectorului
ponderilor :

(2.33)

Parametrii nenuli transformă inegalitatea (2.32) într-o egalitate pentru a putea satisface
ecuația (2.30). Ei se numesc vectori suport (support vectors) din moment ce este format
din termenii nenuli ai sumei. Dintre aceste puncte suport, unele se vor afla la limita marginii
de decizie ( ) și vor fi caracterizate prin dacă ținem seama de ecuațiile
(2.31) și (2.28); celelalte ( ) au (rezultă din (2.31) și (2.28)). Din ecuația (2.30)
putem observa că oricare dintre aceste puncte marginale ( ) pot fi folosite
pentru a calcula valoarea lui :

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


43 | P a g i n a

T (2.34)
i xi
Pentru stabilitate numerică insă, se folosește o mediere a tuturor soluțiilor. În mod normal,
vectorii suport reprezintă o proporție foarte mică din datele de antrenare. Cu toate acestea
dacă problema nu este separabilă sau separabilă printr-o margine foarte mică, atunci fiecare
punct greșit clasificat sau aflat în interiorul suprafeței de decizie va avea un parametru
nenul. În cazul în care acest set de puncte se mărește, va trebui să luăm în calcul mărirea
timpului de testare pentru cazul separabilității neliniare, caz ce va fi discutat în secțiunea
următoare.
După ce am calculat și b funcția de decizie a clasificatorului SVM cu margini
flexibile (soft-margin), înlocuiește aceste valori în ecuația (2.6):
T (2.35)

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


2.5 Clasificatorul SVM neliniar
(nonlinear SVM)

Din ce am văzut până acum, cazul seturilor de date liniar separabile este rezolvat cu o
acuratețe foarte mare (cu câteva mici excepții în ceea ce privește punctele zgomot). Ce
trebuie făcut însă în cazul în care nu se poate efectua o clasificare liniară a datelor (datele nu
sunt liniar separabile)? Să privim pentru aceasta cazul 1-dimensional din figura (2.9).

Fig 2.9 Proiecția unor date, care nu sunt liniar separabile, într-un spațiu dimensional superior
care le poate face liniar separabile.
45 | P a g i n a

Se poate observa că setul de date, cel mai de sus din figură, este clasificat cu ajutorul
unui clasificator liniar, în schimb setul din mijloc nu este. Pentru aceasta trebuie să poată fi
ales un interval. O soluție pentru a rezolva această problemă este să reprezentăm setul de
date într-un spațiu dimensional superior în care putem folosi un clasificator liniar. Spre
exemplificare, partea de jos a figurii ne prezintă un clasificator liniar ce poate clasifica cu
ușurință datele, dacă folosim o funcție cuadrică pentru reprezentarea datelor în spațiul 2-
dimensional. Ideea generală este de a reprezenta spațiul de caracteristici original într-un
spațiu de caracteristici superior ca dimensiune, unde setul de antrenare este liniar separabil.
Această transformare dorim să se efectueze într-un mod care va păstra măsurile de
relaționare relevante dintre date, pentru ca performanțele clasificatorului rezultat să fie la
fel de bune.
Clasificatorii SVM, împreună cu un alt tip de clasificatori liniari, oferă o modalitate
ușoară și eficientă de a realiza reprezentarea într-un spațiu superior dimensional, numită
artificiul nucleu (kernel trick)[Aizerman et al. 1964]. Nu este în esență nici un artificiu ci doar
o valorificare a observațiilor matematice făcute în paragraful anterior. Clasificatorul SVM
liniar se bazează pe produsul scalar dintre doi vectori. Fie xi xj xj și ecuația (2.21) a
clasificatorului se rescrie în felul următor:

(2.36)

Fiecare punct este reprezentat într-un spațiu superior ca dimensiune cu ajutorul unei
transformări . Astfel, produsul scalar devine xi xj . Dacă se constată că
acest produs scalar (care este un număr real) poate fi calculat simplu și eficient cu ajutorul
datelor inițiale, atunci nu va mai fi necesară transformarea . De aceea, putem
calcula valoarea xi xj xi xj și apoi o putem folosi în ecuația (2.36). Pentru a se
ajunge la forma ecuației (2.36), singurul lucru care trebuie modificat în cazul clasificatorilor
SVM prezentați în ultimele două subcapitole, este înlocuirea lui cu . Această abordare,
de a crea un clasificator neliniar aplicând artificiul nucleu în construcția hiperplanului cu
margine maximală, a fost sugerată de Boser, Guyon și Vapnik în 1992. Calculele ce vor urma,
vor face o referire directă la subcapitolul clasificatorului SVM cu margine inflexibilă
[Secțiunea 2.3], scoțând în evidență modificările aferente ale ecuațiilor.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


46 | P a g i n a

T
i xi b

T
b i xi xi

O funcție nucleu (kernel function) este o funcție a cărei valoare poate înlocui
valoarea unui produs scalar dintr-un spațiu dimensional superior. În continuare, se pune
întrebarea ce funcții pot fi funcții nucleu valide? Funcțiile nucleu sunt definite mai precis ca
kernel-uri Mercer (Mercer’s kernel), deoarece trebuie să îndeplinească condiția lui Mercer:
pentru orice funcție pentru care este finită, avem:

(2.37)

O funcție nucleu trebuie să fie continuă, simetrică și să aibe o matrice Gram (semi)pozitiv
definită. În aceste condiții, există o reprezentare kernel într-un spațiu Hilbert (un spațiu
vectorial închis la produsul scalar), astfel încât produsul scalar din acest spațiu are aceeași
valoare ca funcția . Dacă o funcție nucleu nu satisface condiția lui Mercer, atunci problema
cuadrică de optimizare nu are soluții. Cele două familii de funcții nucleu prezentate în
continuare sunt folosite în proporție de 90% în literatura de specialitate. Ele reprezintă
funcții nucleu valide (îndeplinesc condițiile mai sus amintite).
Prima dintre cele două familii sunt nucleele polinomiale (polynomial kernels). Ele au
următoarea formă:
(2.38)
Pentru avem cazul nucleului liniar care corespunde produsului scalar clasic (constanta
modifică doar originea). Cazul este nucleul cuadric care este foarte folosit. Exemplul
prezentat în continuare va ilustra acest caz.

Exemplul 2.1 - Nucleul cuadric 2-dimensional


Pentru vectorii 2-dimensionali și se definește
. Dorim să arătăm că acestă funcție este o funcție nucleu (
pentru un ). Considerăm . Atunci:

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


47 | P a g i n a

Un nucleu polinomial ne permite modelarea unor legături între caracteristici (până la


ordinul polinomului). Acest lucru este foarte util când dorim să modelăm aparițiile unor
perechi de cuvinte, care oferă informații relevante despre clasificarea textului. În cazul unei
perechi formate din două cuvinte vom folosi un nucleu cuadric iar pentru o alăturare de trei
cuvinte, un nucleu cubic.
A doua familie de funcții nucleu sunt funcțiile cu valori reale a căror valoare depinde
numai de distanța de la origine sau de la un anumit punct numit centru (radial basis
functions - RBF). Cea mai cunoscută formă a unei funcții rbf este distribuția gausiană:

(2.39)
O funcție rbf este echivalentă cu transformarea datelor într-un spațiu Hilbert infinit
dimensional și de aceea nu se poate reprezenta print-un exemplu concret ca în cazul
nucleului cuadric. Acest tip de funcții ne permit să avem caracteristici care scot în evidență
cercuri (hipersfere), cu toate că granițele de decizie devin din ce în ce mai complexe pe
măsură ce adăugam mai multe caracteristici (vezi figura 2.10).

Fig 2.10 Folosirea unui nucleu gaussian pentru determinarea graniței de decizie și a
vectorilor suport.

În afara acestor două familii de funcții, au fost depuse eforturi pentru găsirea altor

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


48 | P a g i n a

tipuri de nuclee, dintre care amintim unul foarte interesant pentru aplicațiile text, numit
nucleu lanț (string kernel). Nucleele string permit lucrul cu secvențe de caractere din
interiorul unui termen/cuvânt.
Pentru a defini un astfel de nucleu avem nevoie de următoarele două definiții:

Definiția 2.2 ( șiruri și subșiruri de caractere)


Un alfabet este o mulțime finită , cu simboluri. Un șir de caractere (string)

este o secvență finită de simboluri din , inclusiv secvența vidă notată cu ; singura secvență
de lungime . Se notează cu , mulțimea tuturor șirurilor de caractere de lungime și prin
mulțimea tuturor șirurilor de caractere

Notația este folosită pentru a reprezenta funcția ce returnează dacă șirurile de


caractere și sunt identice și alftel. Pentru șirurile de caractere și , se notează prin
lungimea șirului și prin șirul obținut prin concatenarea lor. Șirul este un subșir
(substring) al lui dacă există șirurile și (inclusiv vide) astfel încât:

Dacă , spunem că t este un prefix al lui , iar dacă , se numește sufix. Pentru
indicii , șirul este subșirul al lui . Subșirurile de lungime se
mai numesc și -grame (k-grams).

Definiția 2.3 (subsecvențe)


Spunem că este o subsecvență (subsequence) a șirului dacă există indicii ,
, astfel încât pentru . Se folosește notația
prescurtată , unde este o subsecvență a lui caracterizată prin pozițiile . Se
notează prin , numărul de indici ai secvenței, în timp ce este lungimea
subsecvenței în și are valoarea . Prin notația , se întelege că indicii fac
referire la mulțimi de indici strict ordonate:

Exemplul 2.4
Spre exemplu, cuvintele din această propoziție sunt toate șiruri ale alfabetului
. Considerăm șirul de caractere . Avem, ,
este un prefix al lui , este un sufix al lui și împreună cu
sunt toate trei subșiruri ale lui . Șirul este o subsecvență de lungime 4
și a cărei lungime în este este .

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


49 | P a g i n a

În general, nucleele lanț pot fi definite în mod explicit printr-o transformare explicită
din spațiul tuturor secvențelor finite peste un alfabet , într-un spațiu vectorial .
Coordonatele lui sunt indexate după o mulțime de șiruri de caractere peste alfabetul .
În unele cazuri, va fi mulțimea de șiruri de caractere de lungime ceea ce va conduce la
un spațiu de dimensiune iar în altele spațiul vectorial va fi infinit indexat de . Funcția
de transformare este notată cu :

Pentru fiecare spațiu asociat, există mai multe transformări care pot fi alese. O
posibilitate pentru alegerea valorii lui este să numărăm de câte ori apare ca un șir
(continuu) de caractere în sau de câte ori apare ca o subsecvență (necontinuă).
Cea mai firească metodă de a compara două șiruri de caractere este de a număra
câte subșiruri de lungime au în comun. Se definește spectrul (spectrum) de ordin al unei
secvențe prin histograma frecvențelor tuturor șirurilor (continue) de caractere de lungime
. Informații importante referitoare la similaritatea a două șiruri de caractere, pot fi obținute
prin compararea spectrului de ordin , în cazul în care vecinătatea caracterelor joacă un rol
cheie. Un nucleu poate fi definit ca fiind produsul scalar dintre două spectruri de ordin .

Definiția 2.5 (nucleul spectrului de ordin )


Spațiul vectorial asociat unui nucleu spectral de ordin este indexat de iar funcția
de transformare este dată de:

Nucleul asociat este definit în felul următor:

Exemplul 2.6 (nucleul spectral de ordin 2)


Fiind date șirurile de caractere “bar”, “bat”, “car” și “cat”, spectrul lor de ordin 2 asociat
este:

cu toate celelalte dimensiuni indexate după alte șiruri de lungime doi, având valoarea ,
astfel încât matricea nucleu rezultată are următoarea formă:

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


50 | P a g i n a

Pentru calcularea acestui nucleu există numeroase formule de recurență cu diferite


costuri ale complexității ce variază între și .
Se introduce un nucleu auxiliar cunoscut sub denumirea de nucleu sufix de ordin k (k-
suffix kernel):

Evaluarea lui necesită comparații a.î. nucleul spectral de ordin poate fi


evaluat folosind următoarea ecuație:

în operații.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


3. Metode de tip Kernel

Metodele de tip kernel (kernel methods) reprezintă o clasă de algoritmi folosiți în


analiza și clasificarea informațiilor (pattern analysis), dintre care cel mai cunoscut este
clasificatorul SVM (support vector machine). Problema cu care se ocupă analiza și
clasificarea informațiilor este de a găsi și de a studia tipuri generale de relații (grupuri,
ierarhii, componente principale, corelații, clasificări), în tipuri generale de date (secvențe,
documente text, seturi de puncte, vectori, imagini etc.) [Secțiunea 3.1].
Metodele de tip kernel abordează această problemă prin translatarea datelor într-un
spațiu ascociat superior ca dimensiune, în care fiecare coordonată corespunde unei
caracteristici a datelor, prin transformarea datelor într-un set de puncte dintr-un spațiu
Euclidian. În acest spațiu, o multitudine de metode pot fi folosite pentru a găsi relații în date.
Deoarece translatarea poate fi generală (nu neapărat liniară), relațiile găsite în această
manieră sunt la rândul lor foarte generale. Abordarea poartă denumirea de artificiul nucleu
(kernel trick).
Numele acestor algoritmi provine de la folosirea funcțiilor nucleu (kernel functions)
[Secțiunea 3.3.2], care le permit acestora să opereze în spații asociate fără a calcula explicit
coordonatele datelor din acele spații. Este nevoie doar de simpla calculare a produselor
scalare dintre imaginile perechilor de date în spațiile menționate. Această operație este
deseori mai puțin costisitoare d.p.d.v computațional decât calculul explicit al coordonatelor.
Funcțiile nucleu au fost introduse pentru atât pentru cazurile secvențelor de date, graficelor,
textelor, imaginilor, cât și pentru cel al reprezentării vectoriale.
Printre algoritmii capabili să beneficieze de avantajul kernel-urilor se numără mașinile
cu vectori support (SVM), procesele Gaussiene, analiza discriminantă liniară a lui Fischer
52 | P a g i n a

(LDA), analiza în componente principale (PCA), analiza canonică de corelare, regresia Ridge și
multe altele. Algoritmul de optimizare secvențială minimală este descris în secțiunea (3.3.3).
Datorită culturii particulare a comunității științifice care a început să dezvolte această
abordare începând de la jumătatea anilor 1990, mulți algoritmi kernel pun accentul pe
rezolvarea unor probleme de optimizare convexă și valori proprii. Algoritmii sunt eficienți
d.p.d.v. computațional și bine documentați d.p.d.v. statistic.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


3.1 Privire de ansamblu

Analiza și clasificarea informațiilor (pattern analysis) se ocupă cu detectarea


automată a caracteristicilor datelor și joacă un rol central în multe probleme moderne din
domeniile inteligenței artificiale și informaticii. Prin caracteristici (patterns) înțelegem orice
relație, regularitate sau structură inerente unei surse de date. Prin detectarea
caracteristicilor importante din datele disponibile, este posibil ca un sistem să facă predicții
despre noile date ce provin de la aceeași sursă. Din acest punct de vedere putem spune că
sistemul a căpătat o putere de generalizare, fiind capabil să învețe ceva despre sursa care a
generat datele. Există numeroase probleme importante care nu pot fi rezolvate decât
aplicând această metodă. Problemele de bioinformatică, de clasificare a textelor (text
categorization), analiza imaginilor și regăsirea informațiilor eb (web retrieval) sunt numai
câteva exemple de astfel de probleme. În ultimii ani analiza și clasificarea informațiilor a
devenit o abordare standard în ingineria software (software engeneering), fiind prezentă în
multe aplicații comerciale.
Abordările inițiale au fost eficiente în găsirea relațiilor liniare dar nu au pus accentul
și pe fundamentarea descoperirii caracteristicilor neliniare (nonlinear patterns). Acest fapt a
fost privit în anii ’60 ca un țel major de cercetare. Revoluția “neliniară” din domeniul analizei
și clasificării informațiilor s-a produs la mijlocul anilor ’80 odată cu introducerea simultană a
rețelelor de propagare inversă (backpropagation networks) și a arborilor de decizie (decision
trees) [Breiman et al. 1984, Quinlan 1993, Hertz et al. 1991+. Cu toate că se bazau pe niște
euristici simple neavând o fundație teoretică solidă, aceste abordări au fost primele care au
făcut un pas către o detectare eficientă și sigură a caracteristicilor neliniare. Ele au permis
totodată și dezvoltarea unor întregi domenii de studiu cum ar fi extragerea datelor (data
mining) și bioinformatica. Introducerea la mijlocul anilor ’90 a metodelor kernel de învățare
(kernel methods) [Vapnik et al. 1964, Boser et al. 1992, Cristianini et al. 2000, Schölkopf et
al. 2002] a permis cercetătorilor să se ocupe de studiul relațiilor neliniare, cu același grad de
înțelegere și siguranță cu care au fost studiate de-a lungul timpului metodele liniare. Din
toate punctele de vedere (computațional, statistic și conceptual) algoritmii neliniari de
analiză și clasificare a informațiilor dezvoltați în acest al treilea val sunt la fel de eficienți si de
bine fundamentați ca și cei liniari. Problemele minimului local și analizei statistice
54 | P a g i n a

incomplete, specifice rețelelor neurale și arborilor de decizie au fost depășite printr-o


manieră suficient de flexibilă care a fost aplicată cu succes unei game variate de aplicații.
Ideea de bază de la care se pleacă în construcția metodelor kernel este dată de
observația care spune că relațiile dintre date pot fi translatate. Prin aceasta se înțelege că
schimbând reprezentarea datelor, vechile relații pot fi rescrise în unele noi. Cel mai
convingător exemplu a modului în care reprezentarea datelor poate face distincție între
caracteristicile ce pot fi învățate și cele care nu pot fi, ne este oferit de criptografie. Ea
încearcă să găsească reprezentări ale datelor care par întâmplătoare, în cazul în care
reprezentarea corectă, dată prin cheie, nu este cunoscută. Din acest punct de vedere,
cerința analizei și clasificării informațiilor este opusă. Ea încearcă să găsească reprezentări în
care caracteristicile din date sunt suficient de explicite pentru a putea fi descoperite
automat.
Alegerea particulară pe care o vom face este folosirea caracteristicilor care sunt
determinate de funcții liniare într-un spațiu al caracteristicilor ales convenabil. Translatarea
implică astfel selectarea unui spațiu al caracteristicilor pentru funcțiile liniare. Folosirea
funcțiilor liniare are și avantajul că putem specifica amănunțit, într-un mod indirect dar
foarte natural, spațiul caracteristicilor prin intermediul unei așa-numite funcție nucleu
(kernel function). Așa cum vom putea vedea în continuare, metoda kernel ne permite să
lucrăm în mod direct cu obiecte cum ar fi biosecvențe, imagini, date text. Ea ne oferă și
posibilitatea de a lucra în spații a căror dimensiune este mai mare decât cea polinomială,
costul computațional rămânând tot polinomial. Aceasta ne asigură că folosirea funcțiilor
liniare nu afectează flexibilitatea problemei.
Dezideratul care se urmărește este construcția unor algoritmi de analiză și clasificare
a informațiilor pentru caracteristici specificate de funcții liniare într-un spațiu al
caracteristicilor definit printr-o funcție nucleu. Astfel, analiza și clasificarea informațiilor
poate fi privită ca un proces având doi pași. Inițial reprezentarea datelor dintr-o aplicație
oarecare este modificată astfel încât relațiile dintre date să poată fi descrise cu ajutorul
funcțiilor liniare. Apoi, datelor transformate, li se poate aplica un algoritm liniar de analiză și
clasificare a datelor. Clasa astfel rezultată de algoritmi de analiză și clasificare a informațiilor
poartă denumirea de metode kernel (kernel methods).

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


3.2 Prezentare generală

Metoda kernel pornește de la observația că recodificarea datelor înlesnește


modalitatea de identificare a relațiilor. Această abordare a analizei și clasificării informațiilor
scufundă (embed) într-o primă etapă datele într-un spațiu ales convenabil, după care
folosește algorimi bazați pe algebra liniară, geometrie și statistică pentru a descoperi relații
între datele scufundate.
Orice soluție a metodei kernel se compune din două părți: un modul care realizează
scufundarea în spațiul asociat și un algoritm de învățare menit să descopere relații liniare în
acel spațiu. Există două argumente importante care explică de ce această abordare va oferi
rezultatele dorite. În primul rând, detectarea relațiilor liniare a fost cercetată de câteva
decenii în statistică și învățare automată (machine learning), algoritmii dezvoltați fiind
eficienți și bine înțeleși. În al doilea rând, există o „scurtătură” prin care se pot reprezenta
eficient relațiile liniare în spații superior dimensionale. Această “scurtătură” este ceea ce am
descris ca fiind funcția nucleu (kernel function).
Strategia de scufundare a datelor într-un spațiu în care putem privi caracteristicile ca
fiind relații liniare, se face într-o manieră modulară. Există două componente distincte care
vor rezolva cei doi pași. Componenta inițială de transformare este definită în mod implicit de
funcția nucleu. Această componentă depinde de tipul specific al datelor și cunoștiințele
domeniului referitoare la relațiile ce sunt așteptate să se ivească din sursa respectivă de
date. Componenta algoritmului de analiză și clasificare a informațiilor este robustă și are un
caracter general. În plus prezintă și o analiză statistică a stabilității. Algoritmul mai este și
eficient, în sensul că necesită o cantitate de resurse computaționale care este polinomială în
mărimea și numărul datelor de intrare chiar și atunci când dimensiunea spațiului în care sunt
scufundate datele crește exponențial.
Această strategie sugerează o abordare de tip inginerie software (software
engeneering) pentru sistemele de învățare, bazată pe împărțirea cerințelor în componente
mai mici și reutilizarea modulelor cheie.
În cele ce urmează, vor fi subliniate patru aspecte cheie ale acestei abordări
împreună cu ilustrarea lor în figura 3.1:
56 | P a g i n a

 datele sunt scufundate într-un spațiu vectorial numit spațiul caracteristicilor (feature
space);
 sunt căutate relații liniare printre imaginile datelor din spațiul caracteristicilor;
 algoritmii sunt implementați de o asemenea manieră încât coordonatele punctelor
scufundate nu sunt necesare, ci doar produselor scalare dintre ele;
 perechile produselor scalare pot fi calculate eficient direct din datele originale, cu
ajutorul unei funcții nucleu.

Fig 3.1 Funcția scufundă datele într-un spațiu asociat unde relațiile neliniare apar ca fiind
liniare. Funcția nucleu calculează produsele scalare în spațiul asociat direct din datele de
intrare.

Cu toate că a fost impusă restricția de a folosi algoritmi ce optimizează funcții liniare,


observațiile de mai sus permit dezvoltarea unor metode fundamentate de descoperire a
relațiilor neliniare din date prin folosirea scufundărilor.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


3.3 Modularitate

Prezentarea algoritmilor SVM din capitolul 2 a condus către construcția unei


proceduri algoritmice special adaptate pentru a folosi numai produsele scalare dintre datele
de intrare. Această metodă poate fi combinată cu o funcție nucleu care calculează produsul
scalar al imaginilor dintre două perechi de date de intrare scufundate într-un spațiu asociat,
făcând astfel posibilă implementarea algoritmilor într-un spațiu cu mai multe dimensiuni.
Modularitatea metodei kernel se caracterizează prin posibilitatea de a reutiliza
algoritmul de învățare. Același algoritm poate fi folosit cu diferite funcții nucleu fiind astfel
aplicabil indiferent de domeniul din care provin datele. Componenta kernel ține cont de date
dar poate fi combinată cu diferiți algoritmi pentru a rezolva o gamă variată de cerințe. Toate
acestea conduc către o abordare naturală și elegantă în proiectarea sistemelor de învățare:
modulele se îmbină între ele pentru a crea sisteme de învățare complexe. Figura 3.2 prezintă
etapele necesare pentru implementarea analizei și clasificării informațiilor bazată pe funcții
nucleu.

Fig 3.2 Etapele necesare aplicării metodei kernel.

Datele sunt procesate folosind o funcție nucleu (kernel function) pentru a obține matricea
nucleu (kernel matrix). Aceasta este la rândul ei prelucrată de un algoritm de analiză și
clasificare a informațiilor pentru a se obține o funcție de clasificare (pattern function).
Funcția astfel rezultată va fi folosită pentru a analiza exemple noi de date.
58 | P a g i n a

Din punct de vedere computațional metoda kernel are două proprietăți importante.
În primul rând ea permite accesul în spații vectoriale de dimensiuni foarte mari cu un cost
computațional scăzut atât din punct de vedere al spațiului cât și al timpului și în al doilea
rând, în ciuda complexității funcțiilor de caracteristici rezultate, majoritatea algoritmilor
rezolvă probleme de optimizare convexă care nu suferă de minim local.
Subcapitolul va analiza în detaliu cele 3 componente modulare ale metodei kernel:
matricea nucleu, funcțiile nucleu și algoritmul de optimizare secvențială minimă (SMO) ce
oferă o metodă eficientă de rezolvare a problemei duale prezentate în capitolul anterior.

3.3.1 Matricea nucleu

Dându-se un set de vectori , matricea Gram (gram matrix) este o


matrice de dimensiuni ale cărei valori sunt . Dacă este folosită o funcție
nucleu pentru a evalua produsele scalare într-un spațiu asociat unei funcții de translație ,
matricea Gram asociată are următoarele intrări:

xi x xi x
În acest caz matricea poartă și denumirea de matrice nucleu (kernel matrix). Notația
standard pentru afișarea matricelor nucleu este următoarea:

unde simbolul K din colțul stânga sus indică faptul că tabelul reprezeintă o matrice nucleu.
Această matrice este simetrică și are transpusa egală cu ea însăși. În plus, ea conține toate
informațiile necesare pentru a calcula distanța dintre perechile aparținând setului de date.
Există însă și informații care se pierd comparativ cu setul inițial de vectori. De exemplu,
matricea nu conține informația legată de orientarea setului de date inițial în raport cu
originea. Mai important este că această reprezentare nu conține nicio informație referitoare
la alinierea punctelor în raport cu axele de coordonate. Aceasta se datorează faptului că
orice rotație a sistemului de coordonate nu schimbă matricea produselor scalare, deoarece
ea este invariantă la astfel de transformări.
Dacă privim în urmă la secțiunea (2.5) din capitolul precedent și observăm ecuația
(2.36) putem constata că singurele informații primite de clasificatorul SVM ca date de intrare

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


59 | P a g i n a

sunt matricea Gram sau matricea nucleu și valorile de ieșire asociate. Cu alte cuvinte, toate
informațiile pe care le poate extrage un algoritm de analiză și clasificare a informațiilor
despre datele de antrenare și spațiul asociat în care acestea vor fi scufundate, sunt conținute
de matricea nucleu și de informațiile de etichetare asociate.
În acest sens matricea nucleu este privită ca punctul de gâtuire a informației
(information bottleneck) ce are sarcina de a transmite suficiente informații algoritmului
pentru ca acesta să își poată îndeplini sarcinile. Acest mod de a privi matricea, face din ea
tipul de date central pentru algoritmii ce se folosesc de metoda kernel. Cu alte cuvinte,
matricea nucleu acționează ca o interfață între datele de intrare și modulele de învățare.

Observația 3.1
În cazul implementării trebuie luată o măsură de precauție referitoare la constrîngerile de
memorie. Astfel, pentru seturi mari de date, întreaga matrice nucleu nu va putea fi reținută
în memorie. În acest caz funcția nucleu va trebui recalculată pe măsură ce sunt adăugate noi
intrări.

Observația 3.2
În cazul învățării supervizate ce rezolvă problema de clasificare binară cu etichetele
, este folosită matricea numită Hesian (Hessian).

Definiția 3.3 (matrici semipozitiv definite)


O matrice simetrică este semipozitiv definită dacă toate valorile ei proprii sunt mai mari sau
egale cu zero.

Propoziția 3.4
Matricele Gram și matricele nucleu sunt semipozitiv definite.

Propoziția 3.5
O matrice este semipozitiv definită dacă și numai dacă pentru o matrice B cu
valori reale.

Aplicând proprietățile recent enunțate, putem rescrie problema de optimizare a


clasificatorului neliniar, folosind matricea nucleu (Hesian-ul):

unde și sunt vectorii linie, respectiv coloană corespunzători parametrilor problemei.


Un aspect important al verificării validității funcțiilor nucleu cu ajutorul proprietății de
semipozitiv definire este că această condiție este valabilă pentru o funcție definită pentru
orice tip de date de intrare. Astfel, nu este necesar ca la intrare să avem vectori cu valori

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


60 | P a g i n a

reale, caracterizarea aplicându-se indiferent de tipul datelor, fie ele vectori cu componente
reale, structuri discrete, imagini, serii temporale ș.a.m.d. Folosind proprietatea matricei
nucleu de a fi semipozitiv definită, funcția nucleu calculează produsele scalare proiectând
perechi de puncte de intrare într-un spațiu asociat. Figura 3.3 ilustreză acest lucru printr-o
scufundare, transformând obiectele în vectori cu ajutorul funcției .

Fig 3.3 Folosirea funcțiilor nucleu permite aplicarea algoritmilor și pe alte tipuri de date
decât cele vectoriale.

3.3.2 Funcții nucleu

Așa cum am putut vedea până în acest moment, folosirea funcțiilor nucleu constituie
o abordare remarcabilă în identificarea relațiilor neliniare, prin aplicarea unor algoritmi
liniari binecunoscuți într-un spațiu vectorial adecvat. Această abordare separă construcția
algoritmului de specificarea spațiului determinat de funcția nucleu. Indiferent de algoritmul
de analiză și clasificare a informațiilor folosit, proprietățiile teoretice ale unei funcții nucleu
rămân aceleași.
O primă modalitate de a verifica că o funcție oarecare este și o funcție nucleu, o
constituie construirea spațiului asociat. Inițial se aplică transformarea după care se

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


61 | P a g i n a

calculează produsul scalar dintre două imagini. Această tehnică a fost folosită în această
lucrare atunci când s-a demonstrat că nucleul polinomial 2-dimensional este kernel.
Cea de-a doua modalitate se bazează pe definiția matricelor semipozitiv definite. Așa
cum se poate observa mai sus, matricea nucleu formată prin evaluarea unei funcții nucleu
pentru fiecare pereche formată din datele de intrare, este semipozitiv definită. Aceasta
constituie baza pentru următoarea definiție.

Definiția 3.6 (funcții semipozitiv definite)


O funcție satisface proprietatea de semipozitiv definire, dacă este o funcție
simetrică pentru care matricele formate prin restricționarea la orice submulțime a spațiului
sunt semipozitiv definite.

Definiția nu impune mulțimii să fie neapărat un spațiu vectorial.

Teorema 3.7 (de caracterizare a funcțiilor nucleu)


O funcție , care este continuă sau are un domeniu finit, poate fi divizată în:

transformarea într-un spațiu Hilbert aplicată ambelor argumente, urmată de calcularea


produsului scalar în , dacă și numai dacă funcția satisface proprietatea de semipozitiv
definire.

Spațiul asociat unei funcții nucleu ce satisface proprietatea de semipozitiv definire poartă
denumirea de spațiu Hilbert reprodus de funcția nucleu (reproducing kernel Hilbert space -
RKHS).

Caracterizările făcute anterior atât funcțiilor cît și matricelor nucleu, nu sunt utile
doar pentru a decide dacă un candidat poate reprezenta un nucleu valid. Una din pricipalele
consecințe este că pot fi folosite pentru a argumenta o serie de reguli ce permit manipularea
și combinarea unor nucleu-uri simple cu scopul de a obține altele mai complexe și mai
folositoare. Cu alte cuvinte, aceste operații aplicate pe unul sau multe nuclee, păstrează
proprietatea de semipozitiv definire a acestora. Astfel, funcțiile și matricele nucleu sunt
închise la astfel de operații. Atîta timp cît este garantat că rezultatul unei operații oarecare
este o matrice simetrică și semipozitiv definită, datele pot fi scufundate într-un spațiu
asociat, chiar dacă spațiul Hilbert reprodus de funcția nucleu este transformat prin aplicarea
respectivei operații.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


62 | P a g i n a

3.3.3 Algoritmul de optimizare secvențială


minimală (SMO)

Algoritmul de oprimizare secvențială minimală (sequencial minimal optimization -


SMO)[Platt 1998] oferă o modalitate eficientă de rezolvare a următoarei problemei duale:

(3.1)

(3.2)

(3.3)

Putem privi această problemă d.p.d.v matematic ca fiind o problemă de optimizare


cuadrică (quadratic optimization problem) a unei funcții cuadrice cu constrângeri liniare.
Pentru rezolvarea ei există numeroase librării de programare cuadrică (quadratic
programming - QP) în care sunt implementați diverși algoritmi. Forma cuadrică a problemei
implică construcția unei matrice care are un număr de elemente egal cu numărul de exemple
de antrenare ridicat la pătrat. Din această cauza ea nu poate încăpea în memorie în cazul în
care avem de-a face cu mai mult de 4000 de exemple de antrenare.
Primul care a încercat să rezolve această problemă a fost Vapnik [Vapnik 1979] prin
metoda numită tăierea în bucăți (chunking). Algoritmul se bazează pe faptul că valoarea
formei cuadrice rămâne neschimbată atunci când sunt eliminate liniile si coloanele matricei
care corespund multiplicatorilor Lagrange egali cu zero. Astfel, problema QP poate fi divizată
într-o serie de subprobleme mai mici, a căror ultim țel este de a identifica toți multiplicatorii
Lagrange diferiți de zero. Cu toate că această tehnică reduce semnificativ dimensiunea
matricei la o valoare egală cu numărul de multiplicatori Langrage diferiți de zero ridicat la
pătrat, matricea rezultată tot nu poate încăpea în memorie.
În 1997, Osuna [Osuna et al. 1997] demonstrează o teoremă care facilitează
construcția unui set nou de algoritmi QP pentru clasificatorii SVM. Teorema afirmă că
problemele QP mari pot fi divizate într-o serie de subprobleme QP mai mici. Fiecare pas va
reduce funcția obiectiv globală și va avea un punct ce verifică toate constrângerile, atâta
timp cât cel puțin un exemplu ce nu satisface condițiile KKT este adăugat din subproblema
anterioară. Astfel, o secvență de subprobleme QP care adaugă întotdeauna câte un violator
al condițiilor, converge garantat.
Osuna et al. sugerează folosirea unei dimensiuni constante a matricei pentru fiecare
subproblemă QP, fapt ce implică adăugarea și ștergerea aceluiași număr de exemple la
fiecare pas. Algoritmul descris în lucrarea lui Osuna [Osuna et al. 1997] folosește adăugarea
și ștergerea a câte unui singur exemplu la fiecare pas. Acest lucru este în mod evident

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


63 | P a g i n a

ineficient, de aceea cercetătorii folosesc în practică adăugarea și ștergerea mai multor


exemple la fiecare pas, în conformitate cu anumite euristici nepublicate.
Algoritmul SMO descompune problema generală QP în subprobleme, folosind
teorema lui Osuna [Osuna et al. 1997] pentru a asigura convergența. El nu necesita spațiu
suplimentar pentru memorarea unei matrice și nici nu folosește pași de optimizare numerică
QP.
Spre deosebire de metodele anterioare, algoritmul SMO rezolvă la fiecare pas, cea
mai mică problemă de optimizare posibilă. Aceasta implică doi multiplicatori Lagrange,
deoarece multiplicatorii Lagrange trebuie să satisfacă constrângerea liniară de egalitate. La
fiecare pas algoritmul SMO alege doi multiplicatori Lagrange, calculează valoarea lor optimă
și înlocuiește valorile vechi cu cele nou calculate în clasificatorul SVM.
Avantajul algoritmului SMO constă în faptul că rezolvarea subproblemei pentru doi
multiplicatori Lagrange poate fi făcută în mod analitic. Astfel, optimizarea numerică QP este
evitată. Cu toate că în cadrul acestui algoritm sunt rezolvate mai multe subprobleme de
optimizare, problemă QP generală este rezolvată rapid deoarece fiecare subproblemă este
rezolvată într-un timp foarte scurt. Un alt avantaj al algoritmului SMO este că nu necesită
spațiu de memorare a matricei. Astfel, problemele cu multe exemple de antrenare pot fi
rezolvate de un calculator personal ce nu necesită o memorie suplimentară. Deoarece, în
cadrul SMO nu sunt folosiți algoritmi care se bazează pe construcția matricei, problemele de
precizie numerică sunt de asemenea excluse.
Algoritmul SMO are două componente: o metodă analitică de rezolvare pentru cei
doi multiplicatori Lagrange și o euristică de alegere a respectivilor multiplicatori. În
continuare este prezentată descrierea algoritmului:

Repetă până converge


{
1. Se alege perechea pentru actualizare (folosind o euristică ce
încearcă să aleagă aceste două valori astfel încât să fie făcut progresul
cel mai mare în direcția maximului global);
2. Se reoptimizează în raport cu , ținând ceilalți
fixați.
}
Pentru a verifica convergența algoritmului, trebuie verificat dacă sunt îndeplinite
condițiile KKT în marja unui parametru de toleranță luând valori între 0.01 și 0.001. Motivul
principal pentru care algoritmul SMO este unul eficient se datorează faptului că actualizarea
parametrilor se face foarte rapid.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


64 | P a g i n a

Metoda analitică de rezolvare pentru cei doi multiplicatori Lagrange

Presupunem inițial fixați și dorim reoptimizarea lui în


raport cu și satisfăcând concomitent și condițiile inițiale. Din ecuația (3.3) rezultă:

Deoarece partea dreaptă a egalității este fixată (deoarece am fixat ), o putem


înlocui printr-o constantă :
(3.4)
Putem figura constrângerile și ca mai jos:

Fig 3.4
Din constrângerile (3.2), rezultă că și trebuie să se găsească în pătratul
prezentat în figură. În plus, mai este figurată și dreapta pe care și
trebuie să se găsească de asemenea. Se observă în plus că , în caz contrar cele
două condiții descrise mai sus nu pot fi îndeplinite simultan. Pentru exemplul curent ,
dar această valoare depinde de forma pe care dreapta o poate lua. În
general va exista o limită inferioară și una superioară , între care va putea lua valori
astfel încât și să se găsească în interiorul pătratului .
Folosind ecuația (3.4), se poate scrie ca o funcție de :

Astfel funcția obiectiv poate fi rescrisă:

Tratând parametrii ca pe niște constante, se poate observa că acestă funcție este


o funcție cuadrică în . Ea poate fi exprimată în forma pentru anumite

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


65 | P a g i n a

valori ale lui și . Maximizarea funcției cuadrice se poate face ignorând constrângerile
(3.2) (sau echivalent, constrângerea ) și apoi egalând derivatele funcției cu zero.
Valoarea apărută în urma rezolvării acestor ecuații va fi notată cu . Această
valoare poate fi acum mărginită în intervalul după cum urmează:

Valoarea optimă a lui poate fi aflată acum înlocuind în ecuația (3.4).

Euristici pentru alegerea celor doi multiplicatori Lagrange

Așa cum am putut vedea din teorema lui Osuna, dacă la fiecare pas unul din cei doi
multiplicatori Lagrange, aleși să fie modificați de algoritmul SMO, nu satisface condițiile KKT,
convergența algoritmului este garantată. Pentru a accelera această convergență, algoritmul
SMO folosește două euristici de alegere pentru cei doi multiplicatori Lagrange: o euristică
pentru primul multiplicator Lagrange și alta pentru cel de-al doilea.
Prima abordare se concentrează pe găsirea exemplelor care cel mai probabil nu
satisfac condițiile KKT (multiplicatorii Lagrange care nu sunt sau ). Un astfel de exemplu
găsit este eligibil pentru optimizare. Pe măsură ce algoritmul SMO progresează, exemplele
aflate la limită (cu multiplicatorii Lagrange sau ) vor rămâne cel mai probabil la limită, pe
când celelalte exemple se vor muta pe măsură ce alte exemple sunt optimizate. Algoritmul
SMO se va concentra pe subsetul exemplelor care nu satisfac condițiile KKT până când acesta
va deveni consistent; apoi algoritmul va scana tot setul de date pentru a vedea care dintre
exemplele aflate la margine nu mai satisfac condițiile KKT, fapt datorat optimizărilor
efectuate. Odată ce primul multiplicator Lagrange a fost selectat, algoritmul SMO alege cel
de-al doilea multiplicator Lagrange astfel încât să maximizeze progresul optimizării comune.
În anumite circumstanțe, alegerea celui de-al doilea multiplicator Lagrange nu poate
realiza un progres pentru procesul de optimizare. În acest caz, algoritmul SMO folosește o
ierarhie de euristici pentru alegerea celui de-al doilea multiplicator, până când îi găsește
perechea cu care poate realiza un progres. Ierarhia constă din următoarii pași: se încearcă
mai întâi prima abordare descrisă anterior și în cazul în care nu se poate constata un progres,
algoritmul SMO caută prin exemplele care nu satisfac condițiile KKT, încercând să găsească
un al doilea multiplicator Lagrange cu ajutorul căruia se poate realiza un progres. Dacă nu
este identificat niciun astfel de exemplu, algoritmul SMO începe să caute un exemplu care
realizează un progres, în tot setul de antrenare. Ambele căutări descrise, pornesc de la poziții
aleatoare pentru a nu conduce algoritmul SMO către exemplele de la începutul setului de
antrenare. În cazuri limită când nici un astfel de exemplu nu poate fi găsit, algoritmul SMO
alege alt exemplu în locul primului multiplicator Lagrange ales.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


66 | P a g i n a

Algoritmul SMO a fost testat atât pe aplicații din lumea reală cât și pe probleme
generate artificial. Printre avantajele care au fost constatate se numără: performanța
algoritmului SMO pentru clasificatorii SVM liniari, performanța algoritmului SMO pentru
clasificatori SVM atât liniari cât și neliniari, în cazul când datele de intrare sunt puține,
performanța algoritmului SMO datorată scalabilității sale pentru problemele mari.
Experimental s-a constat că timpul de antrenare pentru algoritmul SMO variază între ~N și
~N2.2. Datorită ușurintei utilizării și scalabilității setului de antrenare, algoritmul SMO
reprezintă algoritmul standard de învățare al clasificatorului SVM. Algoritmului i-au fost
aduse de-a lungul timpului importante modificări și îmbunătățiri, dezvoltându-se chiar și alți
algoritmi bazați pe structura sa, dintre care cele mai recent folosite în bibliotecile open-
source fiind cele dezvoltate de Fan et al. 2005 și Glasmachers et al. 2006.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


4. Experimente, rezultate și
concluzii

În acest capitol voi descrie experimentele efectuate de mine în vederea obținerii unor
rezultate în ceea ce privește clasificatorul SVM. Secțiunea 4.1 oferă o viziune de ansamblu
asupra colecției de date Reuters-21578, folosită în experimente. Aceste documente au fost
prelucrate astfel încât să imi permită utilizarea bibliotecii WEKA [secțiunea 4.2], un
instrument foarte folosit în domeniul învățării automate. Formatul nativ pentru această
librărie (ARFF) este descris în secțiunea 4.2.1. În afară de algoritmul standard SMO pentru
vectori suport, biblioteca WEKA are implementată o facilitate ce îi permite să lucreze și cu
alte biblioteci. O astfel de bibliotecă binecunoscută în studiul vectorilor suport este LIBSVM
[secțiunea 4.2.2]. În continuare se trece la prezentarea rezultatelor obținute pentru cele trei
tipuri de nuclee (liniar, polinomial și gaussian), nu înainte de a se face o descriere
amănunțită a operațiilor de selectare și de prelucrare a datelor [Secțiunea 4.3]. Concluziile și
observațiile experimentelor sunt prezentate în secțiunea 4.4.
4.1 Corpusul Reuters-21578

Colecția de documente Reuters-21578 a reprezentat de-a lungul timpului principalul


criteriu de referință în evaluarea clasificării documentelor. Această colecție conține 21578
articole de știri, colectate și categorizate de firmele Carnegie Group, Inc. și Reuters, Ltd. în
vederea construirii sistemului de clasificare a textelor CONSTRUE.
Aceste documente sunt de fapt articole de știri emise de agenția Reuters în anul
1987. Tot în același an, ele au fost colectate și categorizate. Din 1990 ele au fost disponibile
laboratorului de regăsire a informației din cadrul departamentului de infromatică de la
Universitatea Massachusetts, pentru cercetare. În următorii trei ani datele au fost
reformatate și au fost create fișierele corespunzătoare. Prima versiune disponibilă pentru
publicul larg a fost lansată în 1993, sub denumirea “Reuters-22173”. Oportunitatea de a face
colecția Reuters-22173 comparabilă pentru rezultatele diverselor studii de specialitate, a
condus la o reorganizare a corpusului. În plus au fost observate 595 de documente duplicat
care au fost eliminate, ajungându-se astfel la forma finală a corpusului, “Reuters-21578”.
Persoana care a participat de la bun început în aceast proces a fost David D. Lewis.
Corpusul este compus din 22 de fișiere în format SGM, primele 21 (reut2-000.sgm
până la reut2-020.sgm) conținând câte 1000 de documente, în timp ce ultimul (reut2-
021.sgm) conține 578 de documente. Formatul SGM folosește <etichete> (tags) pentru a
face distincție între documente și între secțiuni din cadrul unui document. Fiecare articol
începe cu următoarea etichetă:

unde poate lua valorile , valorile


, valorile , iar
semnificația lor este următoarea:
 – indică dacă documentul are sau nu asignate una sau mai multe categorii
în corpusul Reuters-22173;
 - marchează dacă documentul a fost folosit pe post de document de
antrenare, de test, sau nu a fost folosit deloc în experimentele efectuate de Lewis în
1991, 1992 și 1994;
69 | P a g i n a

 - marchează dacă documentul a fost folosit pe post de document de


antrenare sau de testare în experimentele efectuate de Hayes et al. în 1989 și 1990;
 - numărul de identificare al articolului în colecția Reuters-22173;
 – numărul de identificare al articolului în colecția Reuters-21578.

Dintre etichetele interne ale unui document merită menționate și .


Eticheta are o subetichetă în interiorul căreia se găsește textul
propriu-zis al documentului. În figura 4.1 este prezentat un astfel de document al colecției cu
etichetele asociate.

Fig 4.1 Un model de document din colecția Reuters-21578.

Cele 21578 de documente aparțin unui număr de 135 categorii valide, iar un
document poate aparține niciuneia sau mai multor astfel de categorii. Cel mai frecvent se
întâlnesc documente ce sunt atribuite unei singure clase.
Pentru testarea unei metode de categorizare a textelor, este important ca
dezvoltarea sistemului să nu fie pe nedrept influențată de cunoștiințele despre natura
datelor pe care se testează, altfel performanțele obținute vor fi mai mari decât în realitate. O
modalitate de a depăși acest inconvenient este prin împărțirea setului de date în două
subseturi: un set de antrenare (training set) și un set de test (test set).
Eficacitatea rezultatelor poate fi comparată doar pentru studiile care folosesc
aceleași set de antrenare și același set de test (sau care folosesc validarea în cruce (cross-
validation)). O problemă a colecției Reuters-22173, cauzată de ambiguitatea formatării și

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


70 | P a g i n a

adnotării corpusului, a fost că a condus la folosirea unor seturi de antrenare și testare


diferite, în lucrările de cercetare. Problema a survenit când cercetătorii au încercat să dea la
o parte documentele care nu aveau asignată nicio categorie, deoarece existau mai multe
definiții ale acestui concept. Pentru a elimina aceste ambiguități din colecția Reuters-21578,
se specifică în mod explicit care sunt documentele care pot fi folosite pe post de documente
de antrenare, respectiv de testare. Acest lucru este realizat prin valorile date etichetelor
,< și . Cele mai cunoscute 3 astfel de împărțiri
(splits) sunt prezentate în cele ce urmează:

1. Împărțirea sugerată de Lewis (“ModLewis”)


13.625 documente în setul de antrenare:

6.188 documente în setul de test:

1.765 documente nefolosite:

2. Împărțirea sugerată de Apte (“ModApte”)


9.603 documente în setul de antrenare:

3.299 documente în setul de test:


8.676 documente nefolosite:

3. Împărțirea sugerată de Hayes (“ModHayes”)


20.856 documente în setul de antrenare:
722 documente în setul de test:
0 documente nefolosite

CATEGORIE Documente Documente


(CLASĂ) de antrenare de test
earn 2877 1087
aquisition 1650 700
money-fx 538 179
grain 433 149
crude 389 189
trade 369 119
interest 347 131
ship 197 89
wheat 212 71
corn 182 56
Tabelul 4.2 Primele zece cele mai mari clase din colecția Reuters-21578 în ceea ce privește
numărul documentelor de antrenare și de test.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


71 | P a g i n a

În lucrările recente [Joachims 1998; Dumais et al. 1998; Shapire et al. 1998; Weiss et
al. 1999], a fost folosit în mod invariabil subsetul de date ModApte care include numai
documente vizualizate și evaluate de o persoană care le-a indexat. Repartizarea
documentelor pe clase este neuniformă, de aceea unele lucrări evaluează sistemele de
clasificare din perspectiva primelor zece categorii în ordinea descrescătoare a numărului de
documente. Aceste categorii pot fi vizualizate în tabelul 4.2.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


4.2 Biblioteca WEKA

WEKA (“Waikato Environment for Knowledge Analysis”) reprezintă un cadru de lucru


pentru aplicarea diferitelor operații din domeniul învățării automate (machine learning).
Este o bibliotecă software scrisă în limbajul de programare Java și distribuită sub licența
GNU General Public License.
WEKA conține implementările unor algoritmi de clasificare, clusterizare și extragere
de reguli de asociere (association rule mining), împreună cu interfețe grafice pentru
utilizatori și utilitare pentru vizualizare, în explorarea datelor și evaluarea algoritmilor. WEKA
lucrează cu date formatate în mod diferit: pe lângă formatul nativ ARFF sunt acceptate și alte
formate (CSV, fișiere ASCII MATLAB). O prezentare generală a sistemului a fost realizată de
Hall et al. 2009; surse mai cuprinzătoare de informații sunt cartea scrisă de Witten și Frank în
2005 și manualele utilizatorului incluse în distribuția software2. Sursele online, printre care
se numără pagina Wiki WEKA 3 și API-urile asigură o acoperire completă. Lista de email-uri
wekalist este un forum de discuții cu peste 3000 de membrii înregistrați.
Proiectul a debutat în 1993 la Universitatea Waikato, fiindu-i acordat o subvenție din
partea Fundației neo-zeelandeze pentru Cercetare, Știință și Tehnologie. Prin el s-a dorit
crearea unei comunități de cercetare, domeniul învățării automate fiind ales datorită
potențialului său de aplicabilitate în agricultură, principala industrie din Noua Zeelandă. Deși
inițial a fost dezvoltat în limbajul C, în 1997 biblioteca a fost rescrisă de la zero în Java
datorită simplificărilor aduse de limbaj în special în analiza erorilor (debugging). Versiunea
scrisă în Java s-a numit inițial JAWS (“Java Weka system”), dar în martie 1999 a fost adoptat
termenul de WEKA.
Numărul de email-uri din lista wekalist, numărul de descărcări (donwloads) și
numărul de lucrări academice care citează WEKA, demonstrează că sofware-ul a devenit
foarte popular. Este folosit în cadrul domeniilor învățării automate și extragerii informației
din texte (text mining) atât ca un instrument de învățare și aplicare a algoritmilor specifici,
cât și ca o unealtă de cercetare pentru dezvoltarea și compararea rezultatelor obținute pe
baza unor tehnici noi. Unul din principalele motive pentru succesul de care se bucură WEKA

2
Dispobibilă la adresa http://www.cs.waikato.ac.nz/ml/weka
3
Disponibilă la adresa http://weka.wikispaces.com/
73 | P a g i n a

este că biblioteca este distribuită gratis (open-source project). Alte motive ar mai fi:
portabilitatea folosirii pe diferite mașini de lucru datorat implementării mașinii virtuale Java
(JVM), interfața grafică pentru utilizatori în special secțiunea “Explorer” ce a permis acestora
să pună în practică mult mai ușor algorimii de învățare automată, extensibilitatea ce permite
crearea de noi algoritmi și compararea lor cu cei existenți, documentația dezvoltată online
ca parte a WEKA Wiki în combinație cu informațiile din lista de email-uri wekalist a condus la
crearea unei adevărate comunități de dezvoltatori WEKA.

4.2.1 Formatul ARFF

Un fișier în format ARFF (“Attribute-Relation File Format”) este un fișier text ASCII
care descrie o listă de instanțe (instances) ce au în comun un set de atribute (attributes).
Fișierele ARFF au două secțiuni distincte: informațiile din zona de declarări (header)
sunt urmate de secțiunea propriu-zisă de date (data).

Zona de declarări
Această zonă conține numele relației (relation), o listă de atribute (coloanele datelor)
împreună cu tipurile lor.

Declararea relației(@relation)
Numele relației este declarat pe prima linie a fișierului ARFF:

unde este un șir de caractere ce trebuie inclus între


apostraofe atunci când conține spații.

Declararea atributelor(@attribute)
Declararea atributelor se face prin înșiruirea secvențelor @attribute. Fiecare atribut
din setul de date are propria declarare @attribute, ce definește în mod unic numele
atributului și tipul de date asociat. Ordinea în care atributele sunt declarate
corespunde cu poziția de pe coloană din secțiunea de date a fișierului. Spre exemplu,
dacă un atribut este declarat al 3-lea, atunci WEKA se așteaptă ca valorile atributului
să se găsească pe a 3-a coloană delimitată de virgule (,). Formatul instrucțiunii
@attribute este următorul:

unde trebuie să înceapă cu o literă și trebuie de asemenea


inclus între apostraofe atunci când conține spații.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


74 | P a g i n a

Tipul poate fi doar unul dintre cele 4 tipuri suportate de WEKA:


 numeric (numeric)
 întreg (integer) care este tratat ca și numeric
 real (real) care este tratat ca și numeric
 nominal (nominal)
 șir de caractere (string)
 dată calendaristică (date)

Atributele numerice - pot fi numere întregi sau reale.


Atributele nominale - sunt specificate prin definirea unei liste cu valorile posibile:

Atributele șiruri de caractere – se pot memora cu ajutorul lor propoziții și fraze.


Atributele date calendaristice – se declară în felul următor:

unde este numele atributului și este un parametru


opțional care specifică modul de parsare și de afișare a datei calendaristice. Formatul
standard este .

Zona de date
Această zonă conține o linie prin care se specifică că urmează să fie declarate date împreună
cu instanțele afișate pe mai multe linii.

Declararea datelor(@data)
Declararea datelor se face cu ajutorul sintagmei .

Declararea instanțelor
Fiecare instanță este scrisă pe o singură linie până la întâlnirea unui simbol ce
marchează sfârșitul liniei curente (carriage return). Simbolul (%) introduce un
comentariu care se întinde până la sfârșitul liniei curente. Valorile atributelor fiecărei
instanțe sunt despărțite prin virgulă (,). Ele apar în ordinea în care au fost declarate în
zona declarărilor (valoarea corespunzătoare celui de-al -ulea atribut se va găsi pe a
-a poziție a instanței). Valorile lipsă sunt reprezentate printr-un semn de întrebare
(?). Valorile șirurilor de caractere și atributelor nominale fac distincție între literele
mici și mari, iar în cazul în care sunt despărțite prin spații trebuie incluse între
apostroafe(‘’). Datele calendaristice trebuie transcrise în secțiunea de date în același
format specificat la declararea atributului corespunzător. De asemenea, ele trebuie
puse între ghilimele(“”).

În figura 4.3 putem observa cum arată un document transcris în formatul ARFF,
evidențiind toate caracteristicile descrise mai sus.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


75 | P a g i n a

Fig 4.3 Un document din setul de date standard IRIS, transpus în formatul ARFF.

Fișiere ARFF cu date împrăștiate (sparse)


Fișierele ARFF cu date împrăștiate sunt foarte asemănătoare cu fișierele ARFF, cu singura
deosebire că valorile 0 nu sunt explicit reprezentate. Ele au în comun aceeași zonă de
declarări dar diferă în zona de declarare a datelor. Spre exemplu, în loc de a reprezenta
fiecare valoare în ordine:

sunt descrise în mod explicit doar valorile diferite de zero prin numărul atributului și
valoarea lui:

Fiecare instanță este reprezentată între acolade (,-), iar formatul fiecăreia este:
unde este indexul atributului începând cu 0.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


76 | P a g i n a

De menționat că valorile omise de reprezentarea datelor împrăștiate sunt 0 și nu


valori lipsă. Dacă o valoare este necunoscută ea se reprezintă printr-un semn de întrebare
(?).

4.2.2 Biblioteca LIBSVM

LIBSVM [Chang and Lin 2001+ este o bibliotecă pentru mașinile cu vectori suport
(SVM) a cărei dezvoltare a început în anul 2000 cu ajutorul a două grant-uri oferite de
Consiliul Național Taiwanez de Știință. În prezent a ajuns să fie una dintre cele mai folosite
biblioteci de acest gen. LIBSVM este un software integrat pentru probleme cu vectori suport
de clasificare (C-SVC, nu-SVC), regresie (epsilon-SVR, nu-SVR) și estimare de distribuții (one-
class SVM). Suportă de asemenea și clasificarea multiclase. Mai multe detalii pentru
instrucțiuni de folosire a bibliotecii se pot găsi în fișierul README inclus în pachet,
consultând cele mai frecvente întrebări4 și studiind ghidul practic scris de Hsu el al. (2003).
Toate tipurile de algoritmi descriși reprezintă probleme de minimizare cuadrică.
Pentru a rezolva optim problema de minimizare biblioteca LIBSVM, folosește o
descompunere a matricei nucleu similară ca idee cu a algoritmului SMO dar având și unele
diferențe. Această metodă a fost propusă de Fan et al. (2005). Pentru o mai rapidă
funcționare se folosesc metode de eliminare a unor elemente (shrinking), rezultând o
problemă de optimizare mai mică. De asemenea, timpul de calcul al metodei de
descompunere este redus prin memorarea (caching) celor mai recent folosite elemente din
matricea nucleu. În ceea ce privește complexitatea computațională a algoritmilor nu s-a
ajuns încă la un rezultat teoretic, dar din punct de vedere experimental, este cunoscut că
numărul de iterații este mai mare decât un timp liniar în raport cu numărul exemplelor de
antrenare.
WEKA și LIBSVM sunt două utilitare software folosite pentru construcția
clasificatorilor SVM. Fiecare dintre cele două are avantajele și dezavantajele sale. WEKA are
o interfață grafică ce oferă multe statistici interesante (matricea de confuzie, precizie,
măsura F, scoruri ROC), în timp ce LIBSVM rulează mult mai repede decât algoritmul SMO
din WEKA. WEKA LIBSVM (WLSVM) [EL-Manzalawy and Honavar 2005] combină
funcționalitățile celor două utilitare. WLSVM poate fi privit ca o implementare a bibliotecii
LIBSVM ce rulează în mediul WEKA.

4
http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


4.3 Rezultate Experimentale

În cele ce urmează voi descrie rezultatele exprimentelor pe care le-am efectuat prin
aplicarea clasificatorului SVM pe setul de date Reuters-21578. Așa cum am menționat în
urmă cu două secțiuni, acest set de date a fost ales deoarece a reprezintat de-a lungul
timpului principalul criteriu de referință în clasificarea documentelor. Pentru a putea
compara rezultatele obținute cu cele ale altor studii, am folosit submulțimea de documente
ModApte și m-am concentrat doar asupra primelor zece categorii în ordinea descrescătoare
a numărului de documente. Acestea sunt: earn, acquisition (acq), money-fx, grain, curde,
trade, interest, ship, wheat și corn. În ceea ce privește algoritmii pentru rezolvarea
problemei de clasificare binară, am folosit algoritmul standard SMO al bibliotecii WEKA și un
algoritm mai recent implementat în biblioteca LibSVM. Funcțiile nucleu folosite în
experimente au fost nucleul liniar, polinomial de diverse grade și cel gaussian (rbf).
Implementarea am realizat-o în limbajul de programare Java folosind ultimele versiuni ale
bibliotecilor: WEKA 3.6.4 și LibSVM 3.0. Am comparat rezultatele obținute pentru diferite
valori ale parametrilor de antrenare (parametrul de regularizare C, gradul polinoamelor și
parametrul gamma ).

Prelucrarea datelor
Pentru a putea folosi facilitățile bibliotecii WEKA a trebuit ca mai întâi să transform
datele colecției Reuters-21578 din formatul SGM original în formatul ARFF. Pentru o mai
mare ușurință în prelucrarea lor, am folosit același set de date dar în format XML5 pe care l-
am parsat cu ajutorul bibliotecii SAX (Simple API for XML) 6.
În urma operației de selectare a documentelor corespunzătoare submulțimii
ModApte, au rezultat un număr de 9108 documente pentru cele zece categorii considerate,
dintre care 6574 documente de antrenare și 2534 documente de testare. Numărul de
documente pentru fiecare clasă în parte poate fi vizualizat în tabelul 4.4 de mai jos. Se poate
observa că valorile din tabelele 4.2 și 4.4 nu coincid, deoarece am eliminat din calcul acele

5
Disponibil la adresa http://modnlp.berlios.de/reuters21578.html
6
Disponibil la adresa http://www.saxproject.org/
78 | P a g i n a

documente care nu conțineau informație în tag-ul . De asemenea, documentele


care erau etichetate ca aparținând mai multor clase le-am distribuit fiecărei categorii în

Categorie Documente Documente


(clasă) de antrenare de test
acquisition 1488 643
corn 159 48
crude 349 161
earn 2709 1044
grain 394 134
interest 289 100
money-fx 460 141
ship 191 85
trade 337 112
wheat 198 66
TOTAL (9108) 6574 2534
Tabelul 4.4 Numărul de documente de antrenare și de test.

parte. Un număr de două documente erau etichetate de două ori cu aceeași etichetă,
problemă rezolvată prin ștergerea unei etichete din cele două (documentul cu
conține eticheta de două ori și documentul cu
conține eticheta de două ori). Toate aceste documente pot fi folosite pe post de
exemple pozitive (documente etichetate cu eticheta clasei ) pentru fiecare clasă în parte.
Pentru a obține documente etichetate negativ ( ), am selectat acele documente cu
atributul dar cărora nu li s-a specificat nicio etichetă în tag-ul
. Am obținut un număr de 1975 documente etichetate negativ. Acestă observație
a fost sugerată de Lewis7, cu mențiunea că orice document dintre acestea poate fi folosit
drept exemplu negativ pentru oricare din cele 135 de categorii disponibile în colecția
Reuters-21578. Urmând indicațiile studiilor de specialitate, am păstrat același raport între
numărul exemplelor etichetate negativ și numărul celor etichetate pozitiv, pentru fiecare
categorie, între documentele de antrenare și cele de testare. Însumând numărul
documentelor cu exemple negative cu numărul de documente obținute anterior, am ajuns la
un număr total de 11083 documente distincte folosite în experimente. Tabelul 4.5 prezintă o
statistică a numărului de documente.
Pentru fiecare clasă în parte a fost generat câte un fișier ARFF de antrenare, respectiv
de testare. Fiecare fișier conține două atribute: un atribut de tip șir de caractere (string)
corespunzător textului dintr-un document și un atribut nominal cu valorile ce
specifică dacă documentul curent este un exemplu pozitiv ( ) sau negativ ( ). Instanțele
conțin documentele alese pentru clasa respectivă, împreună cu o instanță globală, prezentă
în toate documentele, ce este alcatuită din toate cuvintele distincte ce compun vocabularul
celor 11083 de documente. Această instanță este etichetată drept un exemplu negativ, iar

7
Din README.TXT http://www.daviddlewis.com/resources/testcollections/reuters21578/readme.txt

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


79 | P a g i n a

prezența ei este necesară pentru uniformizarea numărului de atribute prezent în fiecare


fișier ARFF, în cazul folosirii modelului de tip “sac de cuvinte” (bag-of-words). Un astfel de
fișier ARFF are următoarea structură și poate fi folosit atunci când se dorește testarea
nucleului de tip lanț (string):

Documente de Documente de
CATEGORIE antrenare test
(CLASĂ) + - + -
acquisition 1488 1975 643 854
corn 159 1975 48 597
crude 349 1975 161 912
earn 2709 1975 1044 762
grain 394 1975 134 672
interest 289 1975 100 684
money-fx 460 1975 141 606
ship 191 1975 85 879
trade 337 1975 112 657
wheat 198 1975 66 659
TOTAL (36140) 6574 19750 2534 7282
Tabelul 4.5 Statistică privind numărul de exemple pozitive și negative pentru documentele
de antrenare și cele de test.

Fișierele ARFF create până în acest moment nu pot fi folosite în cazul celorlalte tipuri
de nuclee în afara celui lanț, pentru simplul motiv că nu conțin nicio informație referitoare la
frecvențele cuvintelor. Pentru rezolvarea acestui impediment, am aplicat filtrul
StringToWordVector disponibil în WEKA care transformă fișierul curent într-un fișier ARFF ce
are ca atribute cuvintele distincte din text, iar ca instanțe numărul de ocurențe ale fiecărui
termen în documentul curent, folosind reprezentarea tf-idf. În plus, atributul care specifică
dacă documentul este un exemplu pozitiv sau negativ, se păstrează. Datorită faptului că
documentele selectate pentru o categorie anume nu conțin toate cuvintele din vocabular, se
folosește reprezentarea pentru un fișier ARFF cu date împrăștiate (sparse).

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


80 | P a g i n a

Filtrul StringToWordVector conține o serie de opțiuni care pot fi folosite pentru a mai
reduce numărul mare de atribute. Dintre ele am folosit: lowerCaseTokens (transformarea
literelor mari în litere mici), SnowballStemmer (elimină afixele din forma unui cuvânt, lăsând
numai rădăcina) ce implementează algorimul descris de Porter (1980), useStoplist = true
(eliminarea cuvintelor cel mai frecvent folosite în limba engleză8), outputWordCounts = true
(scrie în fișier numărul de apariții ale fiecărui atribut), IDFTransform = true (folosește
reprezentarea tf-idf), AlphabeticTokenizer (excluderea cuvintelor ce nu sunt alcătuite numai
din litere). În urma aplicării filtrului au rezultat un număr de 21641 de atribute. Valorile
atributelor au fost normalizate în intervalul [0,1] prin aplicarea filtrului Normalize.
Fișierele ARFF rezultate în urma tuturor acestor operații pot fi acum folosite ca date
de intrare pentru algoritmii bibliotecii WEKA.

Rezultate
Rezultatele ce urmează să fie prezentate, evidențiază avantajele folosirii fiecăruia
dintre cele trei tipuri de nuclee: liniar, polinomial și gaussian(rbf). Pentru fiecare dintre
acestea, am folosit diferiți parametrii de antrenare (parametrul de regularizare C, gradul
polinomului E și parametrul gamma ) în vederea obținerii celor mai bune rezultate posibile.
Selectarea parametrilor a fost făcută pe baza consultării în prealabil a unor lucrări și metode
descrise pentru obținerea lor [Caruana and Niculescu-Mizil 2006; Hsu el al. 2003]. Nucleele
au fost comparate folosind cei doi algoritmi menționați: Weka SMO și LIBVSM. Ca metrici de
evaluare a corectitudinii algoritmilor de clasificare, am folosit precision(P) și recall(R),
deoarece sunt cele mai folosite. În termenii unei probleme de clasificare cele două noțiuni se
definesc după cum urmează:

unde numărul valorilor pozitive adevărate reprezintă numărul de elemente corect etichetate
cu eticheta clasei pozitive (true positive - tp) și numărul total de elemente etichetate cu
clasa pozitivă reprezintă suma dintre și numărul elementelor incorect etichetate cu clasa
pozitivă (false positive - fp).

unde numărul total de elemente care aparțin de drept clasei pozitive reprezintă suma dintre
și numărul elementelor care ar fi trebuit etichetate cu clasa pozitivă dar care nu au fost
(false negative - fn).

8
Lista cuvintelor disponibilă la adresa http://www.ranks.nl/resources/stopwords.html

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


81 | P a g i n a

Măsura denumită tradițional măsura F (F-measure) sau scorul F echilibrat (balanced


F-score), este definită ca media armonică a lui și :

Măsura mai este notată cu F1 și a fost calculată pentru prima oară de van Rijsbergen (1979).
În continuare voi prezenta tabelele cu rezultatele obținute.

WEKA SMO C = 10-2 C = 10-1 C = 100 = 1 C = 101


LINIAR KERNEL P R F1 P R F1 P R F1 P R F1
acquisition .978 .827 .896 .982 .946 .964 .998 .942 .97 .998 .93 .963
corn 1 .083 .154 .976 .854 .911 1 .958 .979 1 .958 .979
crude .978 .28 .435 .98 .894 .935 .987 .944 .965 .987 .944 .965
earn .984 .99 .987 .994 .994 .994 1 .992 .996 1 .992 .996
grain .958 .172 .291 .992 .918 .953 1 .963 .981 1 .978 .989
interest 1 .11 .198 .968 .73 .839 1 .82 .901 1 .79 .883
money-fx 1 .305 .467 1 .816 .898 1 .865 .928 1 .865 .928
ship .875 .082 .151 .984 .729 .838 .984 .718 .83 .984 .718 .83
trade 1 .33 .479 1 .875 .933 .991 .938 .963 .99 .929 .959
wheat 1 .091 .167 1 .909 .952 1 .939 .969 1 .955 .977

Tabelul 4.6 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul liniar, variind
parametrul de regularizare C între 10-2 și 101. Subliniate sunt valorile maxime ale măsurii F1
cu o precizie de 3 zecimale.

LIBSVM C = 10-2 C = 10-1 C = 100 = 1 C = 101


LINIAR KERNEL P R F1 P R F1 P R F1 P R F1
acquisition .978 .827 .896 .982 .946 .964 .998 .942 .97 .998 .93 .963
corn 1 .083 .154 .976 .854 .911 1 .958 .979 1 .958 .979
crude .978 .28 .435 .98 .894 .935 .987 .944 .965 .987 .944 .965
earn .984 .99 .987 .994 .994 .994 1 .992 .996 1 .992 .996
grain .958 .172 .291 .992 .918 .953 1 .963 .981 1 .978 .989
interest 1 .11 .198 .968 .73 .839 1 .82 .901 1 .79 .883
money-fx 1 .305 .467 1 .816 .898 1 .865 .928 1 .865 .928
ship .875 .082 .151 .984 .729 .838 .984 .718 .83 .984 .718 .83
trade 1 .33 .479 1 .875 .933 .991 .938 .963 .99 .929 .959
wheat 1 .091 .167 1 .909 .952 1 .939 .969 1 .955 .977

Tabelul 4.6 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul liniar, variind
parametrul de regularizare C între 10-2 și 101. Subliniate sunt valorile maxime ale măsurii F1
cu o precizie de 3 zecimale.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


82 | P a g i n a

WEKA SMO C = 10-3 & E = 2 C = 10-2 & E = 2 C = 10-1 & E = 2 C = 100=1 & E = 2 C=101 & E = 2
POLY KERNEL P R F1 P R F1 P R F1 P R F1 P R F1
acquisition .579 .999 .729 .711 .998 .83 .998 .802 .89 .998 .933 .965 .998 .942 .97
corn .667 .042 .078 .857 .125 .218 .962 .521 .676 .969 .646 .775 .97 .667 .79
crude .8 .025 .048 .973 .224 .364 .987 .472 .639 .988 .516 .678 .988 .516 .678
earn .604 .999 .753 .945 .995 .969 1 .988 .994 1 .986 .993 1 .986 .993
grain .75 .022 .043 .963 .194 .323 .989 .642 .778 1 .799 .888 .991 .806 .889
interest .857 .06 .112 .958 .23 .371 1 .5 .667 1 .64 .78 1 .63 .773
money-fx .947 .128 .225 .981 .376 .544 1 .66 .795 1 .745 .854 1 .766 .867
ship .923 .141 .245 .952 .235 .377 .952 .235 .377 .952 .235 .377
trade .75 .027 .052 .977 .384 .551 .985 .589 .737 .953 .723 .822 .953 .732 .828
wheat .875 .106 .189 .976 .606 .748 1 .773 .872 1 .773 .872
C = 10-3 & E = 3 C = 10-2 & E = 3 C = 10-1 & E = 3 C = 100=1 & E = 3 C=101 & E = 3
P R F1 P R P R F1 P R P R F1 P R
acquisition .909 .016 .031 .968 .047 .089 .965 .984 .975 .994 .252 .402 .994 .263 .416
corn .667 .042 .078 .889 .167 .281 .923 .25 .393 .933 .292 .444 .941 .333 .492
crude .833 .031 .06 .952 .124 .22 .975 .242 .388 .975 .242 .388 .975 .242 .388
earn .664 .999 .798 .914 .997 .954 .996 .99 .993 1 .986 .993 1 .983 .991
grain .833 .037 .071 .955 .157 .269 .977 .321 .483 .984 .463 .629 .97 .485 .647
interest .857 .06 .112 .96 .24 .384 1 .4 .571 .978 .44 .607 1 .48 .649
money-fx .955 .149 .258 .974 .27 .422 .97 .454 .618 1 .539 .7 1 .518 .682
ship .667 .024 .045 .75 .035 .067 .833 .059 .11 .833 .059 .11 .833 .059 .11
trade .833 .045 .085 .95 .17 .288 .971 .304 .463 .913 .375 .532 1 .241 .388
wheat .5 .015 .029 .9 .136 .237 .952 .303 .46 .971 .515 .673 .946 .53 .68
C = 10-3 & E = 4 C = 10-2 & E = 4 C = 10-1 & E = 4 C = 100=1 & E = 4 C=101 & E = 4
P R F1 P R P R F1 P R P R F1 P R
acquisition .833 .008 .015 .96 .037 .072 .947 .056 .106 .951 .061 .114 .959 .073 .136
corn .75 .063 .115 .889 .167 .281 .9 .181 .31 .9 .181 .31 .909 .208 .339
crude .8 .025 .048 .917 .068 .127 .95 .118 .21 .95 .118 .21 .95 .118 .21
earn .752 .999 .858 .935 .999 .966 .99 .995 .993 .999 .994 .997 1 .993 .997
grain .875 .052 .099 .938 .112 .2 .97 .239 .383 .976 .306 .466 .957 .336 .497
interest .875 .07 .13 .944 .17 .288 .964 .27 .422 .973 .36 .526 .976 .41 .577
money-fx .929 .092 .168 .97 .227 .368 .955 .298 .454 1 .383 .554 1 .397 .569
ship .5 .012 .023 .5 .012 .023 .667 .024 .045 .667 .024 .045 .667 .024 .045
trade .8 .036 .068 .909 .089 .163 .944 .152 .262 .952 .179 .301 .952 .179 .301
wheat .667 .03 .058 .875 .106 .189 .938 .227 .366 .957 .333 .494 .92 .348 .505

Tabelul 4.7 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul polinomial,
variind parametrul de regularizare C între 10-3 și 101 și gradul polinomului E luând valorile
2,3,4. Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


83 | P a g i n a

LIBSVM C = 10-3 & E = 2 C = 10-2 & E = 2 C = 10-1 & E = 2 C = 100=1 & E = 2 C=101 & E = 2
POLY KERNEL P R F1 P R P R F1 P R P R F1 P R
acquisition .969 .048 .092 .989 .939 .963 .998 .936 .966 .998 .93 .963 .998 .93 .963
corn .667 .042 .078 .955 .438 .6 .974 .771 .86 1 .833 .909 1 .833 .909
crude .917 .068 .127 .988 .503 .667 .992 .745 .851 .992 .739 .847 .992 .739 .847
earn .757 .997 .861 .998 .991 .995 1 .991 .996 1 .99 .995 1 .99 .995
grain .8 .03 .058 .988 .597 .744 1 .873 .932 1 .873 .932 1 .873 .932
interest .889 .08 .147 1 .42 .592 1 .74 .851 1 .73 .844 1 .7 .824
money-fx .96 .17 .289 1 .553 .712 1 .837 .911 1 .844 .915 1 .844 .915
ship .667 .024 .045 .955 .247 .393 .978 .518 .677 .978 .518 .677 .978 .518 .677
trade .909 .089 .163 .985 .571 .723 .99 .857 .919 .99 .857 .919 .99 .866 .924
wheat .5 .015 .029 .96 .364 .527 1 .924 .961 1 .924 .961 1 .924 .961
C = 10-3 & E = 3 C = 10-2 & E = 3 C = 10-1 & E = 3 C = 100=1 & E = 3 C=101 & E = 3
P R F1 P R P R F1 P R P R F1 P R
acquisition .993 .213 .351 .998 .858 .923 .998 .883 .937 .998 .872 .931 .998 .872 .931
corn .833 .104 .185 .955 .438 .6 .968 .625 .759 .968 .625 .759 .968 .625 .759
crude .95 .118 .21 .985 .41 .579 .987 .472 .639 .987 .472 .639 .987 .472 .639
earn .955 .992 .973 1 .986 .993 1 .986 .993 1 .985 .992 1 .985 .992
grain .917 .082 .151 .988 .612 .756 .991 .799 .884 .991 .813 .893 .991 .813 .893
interest .941 .16 .274 1 .46 .63 1 .71 .83 1 .68 .81 1 .68 .81
money-fx .974 .262 .413 1 .617 .763 1 .766 .867 1 .766 .867 1 .773 .872
ship .8 .047 .089 .929 .153 .263 .933 .165 .28 .933 .165 .28 .933 .165 .28
trade .964 .241 .386 .984 .563 .716 .988 .714 .829 .988 .714 .829 .988 .714 .829
wheat .857 .091 .164 .973 .545 .699 1 .788 .881 1 .864 .927 1 .864 .927
C = 10-3 & E = 4 C = 10-2 & E = 4 C = 10-1 & E = 4 C = 100=1 & E = 4 C=101 & E = 4
P R F1 P R P R F1 P R P R F1 P R
acquisition .994 .247 .396 .997 .516 .68 .998 .639 .779 .998 .669 .801 .998 .669 .801
corn .875 .146 .25 .938 .313 .469 .95 .396 .559 .955 .438 .6 .955 .438 .6
crude .947 .112 .2 .978 .273 .427 .979 .286 .442 .979 .286 .442 .979 .286 .442
earn .984 .989 .986 1 .982 .991 1 .982 .991 1 .983 .991 1 .982 .991
grain .955 .157 .269 .985 .478 .643 .989 .679 .805 .989 .672 .8 .989 .672 .8
interest .955 .21 .344 1 .46 .63 .983 .59 .737 .982 .55 .705 .982 .55 .705
money-fx .977 .305 .465 1 .539 .7 1 .624 .769 1 .645 .784 1 .645 .784
ship .75 .035 .067 .833 .059 .11 .833 .059 .11 .833 .059 .11 .833 .059 .11
trade .944 .152 .262 .975 .348 .513 .98 .429 .596 .98 .429 .596 .98 .429 .596
wheat .889 .121 .213 .968 .455 .619 1 .697 .821 1 .697 .821 1 .697 .821

Tabelul 4.7 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul polinomial,
variind parametrul de regularizare C între 10-3 și 101 și gradul polinomului E luând valorile
2,3,4. Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


WEKA SMO C = 1 & = 10-4 C = 1 & = 10-3 C = 1 & = 10-2 C = 1 & = 10-1 C=1& =1
RBF KERNEL P R F1 P R F1 P R F1 P R F1 P R F1
acquisition .5 .002 .003 .946 .953 .95 .987 .955 .971 1 .031 .06
corn 1 .208 .345 1 .479 .648
crude .988 .491 .656 1 .478 .647
earn .578 1 .733 .669 .996 .8 .989 .989 .989 .999 .979 .989 1 .761 .865
grain 1 .44 .611 1 .694 .819 1 .052 .099
interest .95 .19 .317 1 .39 .561 1 .12 .214
money-fx .983 .411 .58 1 .475 .644 1 .092 .169
ship 1 .224 .365 1 .188 .317 1 .012 .023
trade 1 .509 .675 1 .446 .617
wheat 1 .273 .429 1 .652 .789 1 .061 .114
-4 -3 -2 -1
C=10 & = 10 C=10 & = 10 C = 10 & = 10 C = 10 & = 10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition 1 .002 .003 .953 .946 .949 .985 .95 .968 .998 .953 .975 1 .056 .106
corn 1 .354 .523 1 .854 .921 1 .521 .685
crude .989 .54 .699 1 .932 .965 1 .602 .752
earn .67 .998 .802 .989 .99 .989 .998 .993 .996 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .72 .837 1 .48 .649 1 .14 .246
money-fx .985 .468 .635 1 .851 .92 1 .539 .7 1 .099 .181
ship .962 .294 .45 .984 .729 .838 1 .282 .44 1 .012 .023
trade 1 .545 .705 1 .893 .943 1 .563 .72
wheat 1 .318 .483 1 .924 .961 1 .758 .862 1 .061 .114
2 -4 2 -3 2 -2 2 -1 2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .984 .947 .965 .998 .944 .97 .998 .95 .974 1 .056 .106
corn 1 .354 .523 1 .896 .945 1 .896 .945 1 .521 .685
crude 1 .547 .707 .993 .938 .965 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .99 .995 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .978 .989 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .77 .87 1 .76 .864 1 .48 .649 1 .14 .246
money-fx .986 .482 .648 1 .865 .928 1 .851 .92 1 .553 .712 1 .099 .181
ship 1 .294 .455 .984 .729 .838 .984 .718 .83 1 .282 .44 1 .012 .023
trade 1 .554 .713 1 .911 .953 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .924 .961 1 .939 .969 1 .758 .862 1 .061 .114
3 -5 3 -4 3 -3 3 -2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10-1
3

P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .985 .947 .966 .998 .935 .965 .998 .939 .968 .998 .95 .974
corn 1 .354 .523 1 .896 .945 1 .938 .968 1 .896 .945 1 .521 .685
crude .989 .54 .699 .987 .938 .962 .993 .944 .968 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .992 .996 1 .99 .995 1 .981 .99
grain .985 .5 .663 1 .933 .965 1 .978 .989 1 .978 .989 1 .754 .86
interest .955 .21 .344 1 .78 .876 1 .8 .889 1 .7 .824 1 .48 .649
money-fx .986 .482 .648 1 .872 .932 1 .858 .924 1 .837 .911 1 .553 .712
ship .962 .294 .45 .984 .729 .838 .984 .718 .83 .984 .718 .83 1 .282 .44
trade 1 .554 .713 1 .92 .958 .99 .92 .954 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .939 .969 1 .939 .969 1 .939 .969 1 .758 .862

Tabelul 4.8 a) Rezultate obținute aplicând algoritmul SMO pentru nucleul gaussian (rbf),
variind parametrul de regularizare C între 100 și 103 și parametrul gamma între 10-5 și 100.
Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
LIBSVM C = 1 & = 10-4 C = 1 & = 10-3 C = 1 & = 10-2 C = 1 & = 10-1 C=1& =1
RBF KERNEL P R F1 P R F1 P R F1 P R F1 P R F1
acquisition .5 .002 .003 .946 .953 .95 .987 .955 .971 1 .031 .06
corn 1 .208 .345 1 .479 .648
crude .988 .491 .656 1 .478 .647
earn .578 1 .733 .669 .996 .8 .989 .989 .989 .999 .979 .989 1 .761 .865
grain 1 .44 .611 1 .694 .819 1 .052 .099
interest .95 .19 .317 1 .39 .561 1 .12 .214
money-fx .983 .411 .58 1 .475 .644 1 .092 .169
ship 1 .224 .365 1 .188 .317 1 .012 .023
trade 1 .509 .675 1 .446 .617
wheat 1 .273 .429 1 .652 .789 1 .061 .114
-4 -3 -2 -1
C=10 & = 10 C=10 & = 10 C = 10 & = 10 C = 10 & = 10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition 1 .002 .003 .953 .946 .949 .985 .95 .968 .998 .953 .975 1 .056 .106
corn 1 .354 .523 1 .854 .921 1 .521 .685
crude .989 .54 .699 1 .932 .965 1 .602 .752
earn .67 .998 .802 .989 .99 .989 .998 .993 .996 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .72 .837 1 .48 .649 1 .14 .246
money-fx .985 .468 .635 1 .851 .92 1 .539 .7 1 .099 .181
ship .962 .294 .45 .984 .729 .838 1 .282 .44 1 .012 .023
trade 1 .545 .705 1 .893 .943 1 .563 .72
wheat 1 .318 .483 1 .924 .961 1 .758 .862 1 .061 .114
2 -4 2 -3 2 -2 2 -1 2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =1
P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .984 .947 .965 .998 .944 .97 .998 .95 .974 1 .056 .106
corn 1 .354 .523 1 .896 .945 1 .896 .945 1 .521 .685
crude 1 .547 .707 .993 .938 .965 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .99 .995 1 .981 .99 1 .784 .879
grain 1 .5 .667 1 .933 .965 1 .978 .989 1 .754 .86 1 .09 .164
interest .955 .21 .344 1 .77 .87 1 .76 .864 1 .48 .649 1 .14 .246
money-fx .986 .482 .648 1 .865 .928 1 .851 .92 1 .553 .712 1 .099 .181
ship 1 .294 .455 .984 .729 .838 .984 .718 .83 1 .282 .44 1 .012 .023
trade 1 .554 .713 1 .911 .953 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .924 .961 1 .939 .969 1 .758 .862 1 .061 .114
3 -5 3 -4 3 -3 3 -2
C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10 C=10 & =10-1
3

P R F1 P R P R F1 P R P R F1 P R
acquisition .954 .946 .95 .985 .947 .966 .998 .935 .965 .998 .939 .968 .998 .95 .974
corn 1 .354 .523 1 .896 .945 1 .938 .968 1 .896 .945 1 .521 .685
crude .989 .54 .699 .987 .938 .962 .993 .944 .968 1 .944 .971 1 .596 .747
earn .989 .99 .989 .998 .993 .996 1 .992 .996 1 .99 .995 1 .981 .99
grain .985 .5 .663 1 .933 .965 1 .978 .989 1 .978 .989 1 .754 .86
interest .955 .21 .344 1 .78 .876 1 .8 .889 1 .7 .824 1 .48 .649
money-fx .986 .482 .648 1 .872 .932 1 .858 .924 1 .837 .911 1 .553 .712
ship .962 .294 .45 .984 .729 .838 .984 .718 .83 .984 .718 .83 1 .282 .44
trade 1 .554 .713 1 .92 .958 .99 .92 .954 .99 .902 .944 1 .554 .713
wheat 1 .318 .483 1 .939 .969 1 .939 .969 1 .939 .969 1 .758 .862

Tabelul 4.8 b) Rezultate obținute aplicând algoritmul LIBSVM pentru nucleul gaussian (rbf),
variind parametrul de regularizare C între 100 și 103 și parametrul gamma între 10-5 și 100.
Subliniate sunt valorile maxime ale măsurii F1 cu o precizie de 3 zecimale.
4.4 Concluzii

Prima concluzie care poată fi trasă în legătură cu experimentele efectuate este


eficacitatea algoritmului LIBSVM în comparație cu algoritmul SMO atât din punct de vedere
al rezultatelor cât mai ales a timpului mult mai rapid de execuție. Cu toate că cei doi
algoritmi au furnizat aceleași rezultate pentru nucleu liniar și pentru cel gaussian (rbf), nu
pot spune același lucru din punct de vedere al timpului necesar pentru obținerea
rezultatelor. Dacă în cazul aplicării nucleului liniar timpii de execuție au fost oarecum
asemănători, pentru calcularea nucleelor neliniare (polinomial și gaussian) algoritmul SMO a
necesitat un timp de execuție care a fost mai mare chiar cu de 10x timpul necesar pentru
calcularea aceluiași nucleu cu algoritmul LIBSVM.

NUCLEU LINIAR POLINOMIAL GAUSSIAN (RBF)


-4
PARAMETRII GRAD = 2 GRAD = 3 GRAD = 4 =10 =10-3 =10-2 =10-1
ALGORITM SMO SVM SMO SVM SMO SVM SMO SVM SMO SVM SMO SVM SMO SVM SMO SVM

acquisition .97 .97 .97 .966 .975 .937 .136 .801 .966 .966 .965 .965 .97 .97 .975 .975
corn .979 .979 .79 .909 .492 .759 .339 .6 .945 .945 .968 .968 .945 .945 .685 .685
crude .965 .965 .678 .851 .388 .639 .21 .442 .962 .962 .968 .968 .971 .971 .752 .752
earn .996 .996 .994 .996 .993 .993 .997 .991 .996 .996 .996 .996 .996 .996 .99 .99
grain .989 .989 .889 .932 .647 .893 .497 .805 .965 .965 .989 .989 .989 .989 .86 .86
interest .901 .901 .78 .851 .649 .83 .577 .737 .876 .876 .889 .889 .864 .864 .649 .649
money-fx .928 .928 .867 .915 .7 .872 .569 .784 .932 .932 .928 .928 .92 .92 .712 .712
ship .838 .838 .377 .677 .11 .28 .045 .11 .838 .838 .838 .838 .838 .838 .44 .44
trade .963 .963 .828 .924 .532 .829 .301 .596 .958 .958 .954 .954 .944 .944 .72 .72
wheat .977 .977 .872 .961 .68 .927 .505 .821 .969 .969 .969 .969 .969 .969 .862 .862

Tabelul 4.9 Analiză comparativă a celor mai bune rezultate obținute prin aplicarea
algoritmului SMO și algoritmului LIBSVM (prescurtat SVM în tabel). Valorile subliniate
sugerează că respectivul algoritm a obținut o valoare mai mare a măsurii F1. Pentru cazul de
egalitate nicio valoare nu este subliniată.
87 | P a g i n a

Din punct de vedere al comparării rezultatelor obținute între nucleul liniar și cele
neliniare (polinomial și gaussian), se poate observa că nucleul liniar și cel gaussian (rbf) sunt
asemănătoare cu foarte mici diferențe în favoarea unuia sau altuia. Rezultatele obținute
aplicând nucleul polinomial încep să descrească în performanțe invers proporțional cu
creșterea gradului polinomului. Cele mai bune performanțe pentru acest nucleu s-au obținut
prin aplicarea algoritmului LIBSVM (vezi tabelul 4.9).
Ceea ce am obținut nu a fost decât o confirmare a faptului subliniat de Hsu el al.
(2003) , că atunci când numărul de instanțe folosite în procesul de învățare este mai mic
decât cel al atributelor, se recomandă folosirea nucleului liniar pentru obținerea celor mai
bune rezultate.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


Bibliografie

AIZERMAN, M.A., BRAVERMAN E.M. and ROZONOÉR L.I. (1964). Theoretical foundations of
the potential function method in pattern recognition learning. Automation and Remote
Control 25:821–837.

ANDREW, Y.NG. (2010). Lecture notes. Part V – Support Vector Machines. Stanford
University. PDF available at http://www.stanford.edu/class/cs229/notes/cs229-
notes3.pdf

BEN-HUR, A., ONG, C.S., SONNENBURG, S., SCHÖLKOPF, B. and RÄTSCH, G. (2008). Support
Vector Machines and Kernels for Computational Biology. PLoS Comput Biol 4(10):
e1000173. doi:10.1371/journal.pcbi.1000173

BORKO, H. and BERNICK, M. (1963). Automatic document classification. J. Assoc. Comput.


Mach. 10, 2, 151–161.

BOSER, B.E., GUYON, I.M. and VAPNIK, V.N. (1992). A training algorithm for optimal margin
classifiers. In D. Haussler, editor, Proceedings of the 5th Annual ACM Workshop on
Computational Learning Theory (COLT) ACM Press, pp. 144–152.

BOUCKAERT, R. R., FRANK, E., HALL, M. A., HOLMES, G., PFAHRINGER, B., REUTEMANN, P.,
WITTEN, I. H. (2010). WEKA−Experiences ith a Java Open-Source Project. Journal of
Machine Learning Research 11 , 2533-2541.
89 | P a g i n a

BREIMAN, L., FRIEDMAN, J., OLSHEN, R. and STONE, C. (1984). Classification and Regression
Trees. Wadsworth International.

CARUANA, R. and NICULESCU-MIZIL, A. (2006). An empirical comparison of supervised


learning algorithms. In Proc. ICML

CHANG, C.-C. and LIN, C.-J. (2001). LIBSVM : a library for support vector machines. Software
available at http://www.csie.ntu.edu.tw/~cjlin/libsvm

CRISTIANINI, N. and SHAWNE-TAYLOR, J. (2000). An Introduction to Support Vector


Machines. Cambridge: Cambridge University Press.

CRISTIANINI, N. and SHAWNE-TAYLOR, J. (2004). Kernel Methods for Pattern Analysis.


Cambridge University Press.

DRUCKER, H., VAPNIK, V., and WU, D. (1999). Automatic text categorization and its
applications to text retrieval. IEEE Trans. Neural Netw. 10, 5, 1048–1054.

DUMAIS, S. T. AND CHEN,H. (2000). Hierarchical classification of Web content. In


Proceedings of SIGIR-00, 23rd ACM International Conference on Research and
Development in Information Retrieval (Athens, Greece, 2000), 256–263.

DUMAIS, S. T., PLATT, J., HECKERMAN, D., and SAHAMI, M. (1998). Inductive learning
algorithms and representations for text categorization. In Proceedings of CIKM-98, 7th
ACM InternationalConference on Information and Knowledge Management (Bethesda,
MD, 1998), 148–155.

EL-MANZALAWY, Y. and HONAVAR, V. (2005). WLSVM: Integrating LibSVM into Weka


Environment. Software available at http://www.cs.iastate.edu/~yasser/wlsvm

FAN, R.-E., CHEN, P.-H. and LIN, C.-J. (2005). Working set selection using second order
information for training SVM. Journal of Machine Learning Research 6, 1889-1918.

GLASMACHERS, T. and IGEL, C. (2006). Maximum-gain working set selection for SVMs.
Journal of Machine Learning Research, 7:1437–1466.

HALL, M., FRANK, E., HOLMES, G., PFAHRINGER, B., REUTEMANN, P., WITTEN, I. H.
(2009).The WEKA Data Mining Software: An Update; SIGKDD Explorations, Volume 11,
Issue 1.

HASTIE, T., TIBSHIRANI, R. and FRIEDMAN, J. (2001). The Elements of Statistical


Learning, Data Mining, Inference, and Prediction, Springer.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


90 | P a g i n a

HAYES, P.J., ANDERSON, P.M., NIRENBURG, I.B., and SCHMANDT, L.M. (1989). A Shell for
Content-Based Text Categorization. IEEE Conference on Artificial Intelligence Applications.

HAYES, P.J. and WEINSTEIN, S.P. (1990). A System for Content-Based Indexing of a Database
of News Stories. Second Annual Conference on Innovative Applications of Artificial
Intelligence.

HERTZ, J., KROGH, A. and PALMER, R.G. (1991). Introduction to the Theory of Neural
Computation. Addison-Wesley.

HSU , C.-W., CHANG, C.-C. and LIN, C.-J. (2003). A practical guide to support vector
classification. Technical report, Department of Computer Science, National Taiwan
University, http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf.

JOACHIMS, T. (1998). Text categorization with support vector machines: Learning with many
relevant features. In Proceedings of ECML-98, 10th European Conference on Machine
Learning (Chemnitz, Germany, 1998), 137–142.

JOACHIMS, T. (1999). Transductive inference for text classification using support vector
machines. In Proceedings of ICML-99, 16th International Conferenceon Machine Learning
(Bled, Slovenia, 1999), 200–209.

KLINKENBERG, R. and JOACHIMS, T. (2000). Detecting concept drift with support vector
machines. In Proceedings of ICML-00, 17th InternationalConference on Machine Learning
(Stanford, CA), 487–494.

KNIGHT, K. (1999). Mining online text. Commun. ACM 42, 11, 58–61.

KRISHNAKUMAR, A. (2006). Building a kNN classifier for the Reuters-21578 collection.


University of California, Santa Cruz.

LEWIS, D.D. (1991). Representation and Learning in Information Retrieval. Technical Report
91--93.

LEWIS, D.D. (1992). An Evaluation of Phrasal and Clustered Representations on a Text


Categorization Task. In Fifteenth Annual International ACM SIGIR Conference on Research
and Development in Information Retrieval, 37-50.

LEWIS, D.D., and RINGUETTE, M. (1994). A Comparison of Two Learning Algorithms for Text
Categorization. In Symposium on Document Analysis and Information Retrieval (Univ. of
Nevada, Las Vegas), 81-93.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


91 | P a g i n a

MANNING, C.D., RAGHAVAN, P. and SCHÜTZE, H. (2008). Introduction to Information


Retrieval, Cambridge University Press.

MANNING, C.D. and SCHÜTZE, H. (1999). Foundations of Statistical Natural Language


Processing. MIT Press, Cambridge, MA.

MERKL, D. (1998). Text classification with selforganizing maps: Some lessons learned.
Neurocomputing 21, 1/3, 61–77.

OSUNA, E., FREUND, R., GIROSI, F. (1997). Improved Training Algorithm for Support Vector
Machines, Proc. IEEE NNSP ’97.

PAZIENZA, M. T. (1997). Information Extraction. Lecture Notes in Computer Science, Vol.


1299. Springer, Heidelberg, Germany.

PLATT, J. C. (1998). Sequential minimal optimization: A fast algorithm for training support
vector machines, in B. Scholkopf, C. Burges, and A. Smola, editors, Advances in Kernel
Methods - Support Vector Learning. MIT Press

PORTER, M.F. (1980). An algorithm for suffix stripping, Program, 14(3) pp 130−137.

QUINLAN, J.R. (1993). C4.5: Programs for Machine Learning. Morgan Kauffmann.

RIPLEY, B. D. (1996). Pattern Recognition and Neural Networks, Cambridge University Press.

ROSENBLATT, F. (1958). The perceptron: a probabilistic model for information storage and
organization in the brain, Psychological Review 65: 386-408.

SALTON, G., WONG, A. and YANG C. S. (1975). A Vector Space Model for Automatic
Indexing. Communications of the ACM, vol. 18, nr. 11, pages 613–620.

SCHÖLKOPF, B. and SMOLA, A. (2002). Learning with Kernels. MIT Press.

SEBASTIANI, F. (2002). Machine learning in automated text categorization. ACM Computing


Surveys, 34(1):1–47.

SHAPIRE, R., and SINGER, Y. (1998). Boostexter: A system for mulit-label text categorization.

TAIRA, H. and HARUNO, M. (1999). Feature selection in SVM text categorization. In


Proceedings of AAAI-99, 16th Conference of the American Association for Artificial
Intelligence (Orlando, FL, 1999), 480–486.

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor


92 | P a g i n a

VAN RIJBERGEN, C.V. (1979). Information Retrieval. London; Boston. Butterworth, 2nd
Edition.

VAPNIK, V.N. (1979). Estimation of dependencies based on empirical data (in Russian),
Nauka, Moscow.

VAPNIK, V.N. (1996). The Nature of Statistical Learning Theory, Springer, New York.

VAPNIK, V.N. (1999) The Nature of Statistical Learning Theory. Springer, 2nd edition.

VAPNIK, V. and CHERVONENKIS, A.J. (1964). A note on one class of perceptrons. Automation
and Remote Control, 25.

VAPNIK, V.N. and CHERVONENKIS, A.J. (1974). Theory of Pattern Recognition (in Russian),
Nauka, Moscow.

WEISS, S. M., APTE, C., DAMERAU, F. J., JOHNSON, D. E., OLES, F. J., GOETZ, T., and HAMPP,
T. (1999). Maximizing text-mining performance. IEEE Intelligent Systems 14, 4, 63–69.

WITTEN, I.H. and FRANK, E. (2005). DataMining: PracticalMachine Learning Tools and
Techniques. Morgan Kaufmann, 2nd edition.

YANG, Y. and LIU, X. (1999). A re-examination of text categorization methods. In Proceedings


of SIGIR-99, 22nd ACM International Conference on Research and Development in
Information Retrieval (Berkeley, CA, 1999), 42–49.

Resurse adiționalei

i
http://en.wikipedia.org/wiki/Classification_(machine_learning)
http://www.scholarpedia.org/article/Text_categorization
http://en.wikipedia.org/wiki/Document_classification
http://www.ercim.eu/publication/Ercim_News/enw62/novovicova.html
http://en.wikipedia.org/wiki/Kernel_methods
http://www.daviddlewis.com/resources/testcollections/reuters21578/readme.txt
http://weka.wikispaces.com/ARFF+(book+version)

Bratu Andrei Alexandru - Metode de tip kernel în categorizarea textelor

S-ar putea să vă placă și