master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje...

41
UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE Prepoznavanje hijerarhijskih relacija u vektorskom prostoru reprezentacija reči Master rad Mentor: Student: Prof. dr Branimir Todorović Nikola Stevanović Niš, Oktobar 2016.

Upload: others

Post on 27-Oct-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

UNIVERZITET U NIŠU

PRIRODNO MATEMATIČKI FAKULTET

DEPARTMAN ZA RAČUNARSKE NAUKE

Prepoznavanje hijerarhijskih relacija

u vektorskom prostoru reprezentacija reči

Master rad

Mentor: Student:

Prof. dr Branimir Todorović Nikola Stevanović

Niš, Oktobar 2016.

Page 2: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

1

Predgovor

Tokom druge godine master akademskih studija, počeo sam da se intenzivnije

interesujem za oblast mašinskog učenja. Tokom učenja same oblasti, moje interesovanje je

sve više raslo. Kasnije sam počeo da analiziram i neke probleme procesiranja govornog

jezika. Ovaj rad je nastao kao plod tog interesovanja.

Zahvaljujem se svom mentoru, prof. dr Branimiru Todoroviću, koji me je uveo u

oblast mašinskog učenja. On je svojim zamimljivim predavanjima doprineo da se dodatno

zainteresujem za ovu oblast. TakoĎe, veliko mu hvala što mi je pored teorijskih lekcija,

objasnio i kako da to znanje primenim u praksi.

TakoĎe se zahvaljujem i prof. dr Marku Miloševiću, dugogodišnjem nastavniku i

profesoru, koji me je uveo u svet softverskog inženjerstva. Kroz mnoge projekte na kojima

mi je bio mentor, naučio sam mnogo praktičnih stvari, koje će mi biti od velikog značaja u

daljoj karijeri.

Velika zahvalnost ide i svim bivšim takmičarima iz matematike i informatike, koji su

me dodatnim nastavama u srednjoj školi uveli u sferu informatike, i u njoj me zadržali. Od

čoveka koji nije znao šta je informatika, postao sam čovek kome je to najinteresantnija oblast.

TakoĎe, veliku zahvalnost dugujem i svim ostalim profesorima sa Prirodno-

matematičkog fakulteta, koji su samnom nesebično delili svoje znanje, i uvek bili tu za sva

moja pitanja. Zahvaljujem se i svojoj porodici i prijateljima, koji su uvek bili uz mene i

pružali mi neizmernu podršku.

Page 3: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

2

Sadržaj

1. Uvod ...................................................................................................................................... 4

2. Korišćeni algoritmi .............................................................................................................. 6

2.1. Stohastički spust gradijentom ......................................................................................... 6

2.2. Klasterizacija metodom k srednjih vrednosti (K-Means) ............................................... 7

2.3. Neuronske mreže ............................................................................................................. 8

2.3.1. Izračunavanje gradijenta kriterijumske funkcije .................................................... 10

2.3.2. Robusni algoritam prostiranja greške unazad (RPROP) ........................................ 12

3. Učenje vektorskih reprezentacija reči ............................................................................. 15

3.1. Model kontinualne grupe reči (eng. Continuous bag of words- CBOW) ..................... 15

3.2. Model preskakanja jedinica (eng. Skip Gram) .............................................................. 18

3.3. Optimizacija .................................................................................................................. 20

3.3.1. Hijerarhijski softmax .............................................................................................. 20

3.3.2. Uzimanje negativnih uzoraka ................................................................................. 22

4. Detekcija hijerarhijskih relacija ....................................................................................... 25

4.1. Analiza problema .......................................................................................................... 25

4.2. Opis algoritma ............................................................................................................... 26

4.2.1. Formulacija problema ............................................................................................. 26

4.2.2. Ugradnja reči u vektorski prostor ........................................................................... 26

4.2.3. Klasterizacija parova .............................................................................................. 27

4.2.4. Učenje projekcija .................................................................................................... 28

4.2.5. Identifikacija relacije hiponimije ............................................................................ 29

5. Implementacija i testiranje ............................................................................................... 31

5.1. WordNet ........................................................................................................................ 31

5.2. Korišćeni alati ............................................................................................................... 32

5.2.1. PyCharm ................................................................................................................. 32

5.2.2. Eclipse .................................................................................................................... 32

5.2.3. NLTK...................................................................................................................... 32

5.3. Testiranje ....................................................................................................................... 33

5.3.1. Korpus .................................................................................................................... 33

5.3.2. Testiranje linearnog modela ................................................................................... 33

5.3.3. Testiranje nelinearnog modela ................................................................................ 33

6. Zaključak ............................................................................................................................ 35

Page 4: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

3

Literatura................................................................................................................................ 36

Biografija ................................................................................................................................ 37

Page 5: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

4

1. Uvod

Procesiranje govornog jezika (eng. natural language processing) je jedna od

najaktuelnijih oblasti veštačke inteligencije. Ona se bavi interakcijom računara i čoveka, a

kao krajnji cilj ima potpuno razumevanje govornog jezika od strane računara. Na putu do

krajnjeg cilja, pojavio se veliki broj manjih problema, koji su se izdvojili, pa sada

predstavljaju posebne oblasti istraživanja. Jedan od njih je i problem pronalaženja relacija

meĎu rečima, a jedna od ključnih relacija je relacija pripadnosti. Dve reči su u takvoj relaciji

ukoliko je moguće staviti reč "je" izmeĎu njih i dobiti tačan iskaz (npr. zelena je boja, slon je

životinja, matematika je nauka). Tada reči obrazuju hiponim-hiperonim par. Hiponim

predstavlja specifikaciju nekog pojma, dok hiperonim predstavlja generalizaciju pojma.

Pojava vektorskih reprezentacija reči, kao što su GloVe i Word2Vec, dovela je do

vidljivih napredaka u raznim oblastima procesiranja govornog jezika. Vektorske

reprezentacije reči su konstruisane na taj način da reči sa sličnim kontekstima imaju slične

reprezentacije (da je rastojanje izmeĎu njihovih reprezentacija što manje). Kontekst reči

predstavljaju reči koje okružuju datu reč.

Osobine koje vektorske reprezentacije reči imaju se konstantno analiziraju. Ljudi su

uočili da ovakve reprezentacije reči dobro opisuju izvesne leksičke osobine. Naime, razlike

vektora različitih imenica u množini i jednini predstavljaju slični vektori. To važi i za odnose

glavni grad-država, muski-ženski naziv za neku profesiju i mnoge druge. Tako je na primer

razlika izmeĎu vektora muškarca i žene, jednaka razlici izmeĎu vektora kralja i kraljice. To

može da se objasni time da se kralj pojavljuje u svim kontekstima vezanim za vladara, kao i u

kontekstima vezanim za muškarca, dok se kraljica nalazi u kontekstima vezanim za vladara i

ženu. Kada se njihovi konteksti oduzmu, ostaje samo razlika u kontekstima izmeĎu muškarca

i žene.

Relacija pripadnosti je jedna od veoma važnih leksičkih relacija. Ipak, to koliko dobro

ovakve vektorske reprezentacije opisuju relacije pripadnosti nije istraženo ni približno u meri

u kojoj je to uraĎeno za neke od relacija koje su opisane iznad. Bilo bi veoma lepo kada bi

informacija o tome da li neki par reči pripada relaciji pripadnosti mogla da se dobije direktno

iz vektorskih reprezentacija reči. To bi uklonilo potrebu za dodatnim resursima u vidu

semantičkih leksikona, koji sa sobom nose odreĎene nedostatke. Naime, svi leksikoni su

veoma precizni, pa se kao takvi često ne generalizuju dobro na ostale pojmove jezika. Za

razliku od njih, provera preko vektorskih reprezentacija reči bi bila manje striktna, ali bi

mogla dosta bolje da se generalizuje na ostatak rečnika. Sa čisto teorijske strane, zanimljivo

je analizirati da li vektorske reprezentacije reči uopšte sadrže dovoljno informacija da

prepoznaju relacije hiperonim-hiponim. To je analizirano u ovom radu, i ispostavilo se da

ovakve reprezentacije sadrže izvesnu količinu informacija o ovim semantičkin odnosima

meĎu rečima.

U ovom radu je implementiran algoritam koji pomoću vektorskih reprezentacija reči

detektuje hiperonim-hiponim parove. Jedna od prednosti vektorskih reprezenacija reči je i ta

što za njihovo treniranje nije potreban nikakav ljudski napor za anotaciju teksta, već se

Page 6: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

5

reprezentacije dobijaju iz velike količine teksta. Sam proces detekcije odvija se u nekoliko

koraka, koji su detaljno objašnjeni u radu.

Sam rad je struktuiran na sledeći način. U drugom poglavlju je dat pregled algoritama

koji su korišćeni u radu. Najpre je objašnjen proces minimizacije funkcije pomoću

stohastičkog gradijentnog spusta. Ovo je jedan od osnovnih algoritama, koji se koristiti u

treniranju velikog broja modela mašinskog učenja. Zatim je opisan proces klasterizacije

podataka pomoću K-Means algoritma. Na kraju poglavlja je opisan rad sa neuronskim

mrežama. Prvo je dat uvodni deo gde je opisano kako neuronske mreže rade, a kasnije je

objašnjen i sam način treniranja. Za treniranje neuronskih mreža je prikazan RPROP

algoritam, koji se pokazao kao izuzetno dobar. Neuronske mreže predstavljaju jedan od

najefikasnijih algoritama mašinskog učenja.

Treće poglavnje daje pregled tehnika za učenje vektorskih reprezentacija reči.

Prikazana su dva modela, Skip Gram i CBOW. Oba po svojoj konstrukciji predstavljaju

neuronske mreže. Delo su T. Mikolova, i važe za jedne od najboljih algoritama za rešavanje

ovog problema. Treniranje ovih modela u svojim osnovnim oblicima je veoma sporo, pa su

na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja.

U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih relacija. On se

sastoji iz više koraka. Na početku se parovi reči koje pripadaju relaciji grupišu u klastere, a

zatim se unutar svakog klastera uči preslikavanje koje hiponim slika u njegov hiperonim. U

radu su data dva tipa ovakvog preslikavanja. Jedan je linearni, a drugi nelinearni. Na kraju je

prikazan način kako se na osnovu ovih preslikavanja odreĎuje da li neki novi par pripada

relaciji.

Peto poglavlje sadrži detalje implementacije, kao i rezultate testiranja. Objašnjena je

struktura WordNet-a, iz koga je kreiran korpus za treniranje. Zatim su prikazani alati koji su

korišćeni u implementaciji. Na kraju poglavlja je deo o testiranju sa rezultatima.

Zaključak sumira dobijene rezultate i predlaže pravce za dalje unapreĎenje algoritma

za detekciju hijerarhijskih relacija.

Page 7: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

6

2. Korišćeni algoritmi

2.1. Stohastički spust gradijentom

Problem minimizacije neke funkcije se često javlja u mašinskom učenju. U ovom

radu je za minimizaciju nekih funkcija korišćen baš stohastički spust gradijentom. Za

razumevanje stohastičkog gradijentnog spusta, najpre je potrebno objasniti klasičan

gradijentni spust.

U mašinskom učenju je funkcija koja se minimizuje najčešće u obliku sume,

Q w =1

n Qi(w)n

i=1 . Parametar 𝑤 je parametar po kome se minimizuje. Svaka od funkcija

Qi predstavlja cenu odstupanja i-tog elementa iz skupa za treniranje.

Kod gradijentnog spusta se kreće od proizvoljne tačke 𝑤0. U svakoj iteraciji se

vrednost parametra menja u pravcu negativnog gradijenta po formuli:

𝑤𝑘 = 𝑤𝑘−1 − 𝜂𝛻𝑄 𝑤𝑘−1 = 𝑤𝑘−1 − 𝜂1

n 𝛻Qi(𝑤𝑘−1)n

i=1 .

To se radi sve dok vrednost gradijenta ne bude jednaka nuli (ili manja od neke unapred zadate

vrednosti blizu nule).

Ovaj algoritam je odličan za treniranje modela kod kojih je obim uzorka relativno

mali. Ukoliko je obim uzorka veliki, algoritam može da bude spor, jer za jednu promenu

parametra 𝑤, on treba da proĎe kroz sve primere. U tom slučaju, stohastički gradijentni spust

brže dolazi do zadate tačnosti. Iako je broj promena parametra za dostizanje zadate tačnosti

veći kod stohastičkog spusta, svaka promena je veoma brza, pa je ukupno vreme kraće. Na

sledećoj slici je crvenom linijom prikazano kako klasičan gradijentni spust konvergira, dok je

ljubičastom prikazana konvergencija stohastičkog gradijentnog spusta.

Stohastički spust za svaku promenu parametra koristi samo jedan primer iz trening

skupa. Algoritam promene je sledeći:

Page 8: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

7

𝑤𝑘 = 𝑤𝑘−1 − 𝜂𝛻𝑄𝑖 𝑤𝑘−1 . Indeks 𝑖 predstavlja redni broj primera u skupu za treniranje. U

svakoj iteraciji se menja primer na osnovu kog se modifikuje vrednost parametra. Najčešći

način implementacije algoritma je da se u nekoliko epoha ponove sledeća dva koraka:

promešati primere u skupu za treniranje,

proći kroz sve primere od početka do kraja skupa za treniranje, i na osnovu svakog

odraditi odgovarajuću modifikaciju parametra.

Mešanje trening skupa pre svake epohe dovodi do brže konvergencije. Što se

parametra 𝜂 tiče, on može da bude konstantan, a može i da se blago smanjuje vremenom.

Početna vrednost parametra se uglavnom dobija eksperimentalnim putem.

2.2. Klasterizacija metodom k srednjih vrednosti (K-Means)

K-Means je algoritam za klasterizaciju podataka. Na ulazu dobija 𝑛 vektora u 𝑚-

dimenzialnom vektorskom prostoru, a na izlazu treba da razvrsta vektore u 𝑘 klastera, tako da

su vektori unutar jednog klastera što sličniji. Informacija o broju klastera (𝑘) se zadaje na

početku. Svaki klaster je odreĎen svojim centrom, a svaki vektor se dodaje onom klasteru čiji

centar je najbliži tom vektoru.

Formalnije, problem može da se definiše na sledeći način. Označimo sa (𝑥1,… , 𝑥𝑛)

sve vektore. Njih treba podeliti u 𝑘 klastera, 𝑆 = 𝑆1,… , 𝑆𝑘 , tako da se minimizuje sledeća

funkcija:

𝑥 − 𝜇𝑖 2

𝑥∈𝑆𝑖

𝑘

𝑖=1

Minimizacija se vrši po particijama 𝑆 skupa vektora. Vektor 𝜇𝑖 predstavlja srednju vrednost

vektora unutar 𝑖-tog klastera.

Page 9: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

8

Algoritam se odvija u nekoliko faza, a to kako radi iz iteracije u iteraciju prikazano je na slici

iznad:

1) Na početku treba inicijalizovati centre svih klastera. To se najčešće radi tako što se od

𝑛 vektora odabere 𝑘, a njihove vrednosti postave za centre klastera.

2) Svaki vektor treba dodati u klaster čiji je centar najbliži tom vektoru.

3) Za svaki klaster treba postaviti za vrednost centra srednju vrednost svih vektora koji

pripadaju klasteru.

4) Ukoliko za neki vektor postoji klaster čiji je centar bliži od centra klastera u kome se

nalazi, vratiti se na korak 2.

Važno je napomenuti da ovaj algoritam nalazi samo lokalni minimum. U zavisnosti

od toga koje tačke izaberemo za polazne centre klastera, možemo doći do različitih lokalnih

minimuma. Zbog toga se u praksi algoritam ponavlja više puta, pa se na kraju uzima ona

podela u kojoj je dostignut najmanji lokalni minimum.

2.3. Neuronske mreže

Neuronske mreže su jedan od algoritama sa najviše varijacija. Trenutno su jedno od

najpopularnijih rešenja za mnoge probleme mašinskog učenja. Sve one u osnovi polaze od

sličnih ideja, a ovde će biti prikazan najosnovniji model neuronskih mreža.

Pre svega treba formulisati problem koji se rešava. Neka je dat korpus 𝐷 =

{(𝑥𝑖 ,𝑦𝑖)}𝑖=1𝑛 . Neuronska mreža je u stanju da nauči nelinearno preslikavanje, koje je u stanju

da prilično dobro preslika ulazne vektore (𝑥𝑖) u izlazne (𝑦𝑖). Najpre će biti prikazan izgled

jednog neurona u mreži, a kasnije i cele mreže.

Neuron na ulazu prima 𝑛-dimenzionalni vektor (u ovom slučaju trodimenzionalni) i

konstantni član, a na izlazu daje vrednost, koja se dobija po sledećoj formuli:

𝑕𝑊,𝑏 𝑥 = 𝑓( 𝑊𝑖𝑥𝑖

𝑛

𝑖=1

+ 𝑏)

Funkcija 𝑓 se naziva aktivacionom funkcijom, i može imati više oblika. Izbor aktivacione

funkcije može u dobroj meri da utiče na to koliko dobro mreža može da nauči podatke iz

Page 10: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

9

korpusa. Težine 𝑊𝑖 se nalaze na granama izmeĎu ulaznih veličina i neurona. One utiču na to

koliko odreĎena ulazna veličina ima uticaj na ulaz aktivacione funkcije. To su veličine koje u

toku treniranja mreže treba naučiti, tako da ona što bolje vrši traženo preslikavanje. Sledi

prikaz najkorišćenijih aktivacionih funkcija:

Linearna - 𝑓 𝑥 = 𝑥

Sigmoidalna - 𝑓 𝑥 =1

1+𝑒−𝑥

Hiperbolički tangens - 𝑓 𝑥 =𝑒𝑥−𝑒−𝑥

𝑒𝑥+𝑒−𝑥

Svaka neuronska mreža se sastoji iz slojeva. Sloj se sastoji iz više neurona, koji

primaju signale iz prethodnog sloja (osim ukoliko se radi o ulaznom sloju), a šalju signale

sledećem sloju (osim ukoliko se radi o izlaznom sloju). Ulazni sloj je sloj u kome mreža

prima podatke. Izlazni sloj je sloj koji predstavlja transformaciju ulaznog sloja pomoću

neuronske mreže. IzmeĎu ulaznog i izlaznog sloja može biti proizvoljan broj slojeva. Svi ti

slojevi zajedno čine tzv. skriveni sloj neuronske mreže.

Označimo sa 𝑛𝑙 broj slojeva u mreži. Neka su slojevi označeni redom sa 𝐿𝑖 , tako da

𝐿1 predstavlja ulazni sloj, a 𝐿𝑛𝑙 izlazni sloj. Neuronska mreža ima parametre 𝑊, 𝑏 =

𝑊(1), 𝑏(1),… ,𝑊(𝑛𝑙−1), 𝑏(𝑛𝑙−1) . Parametar 𝑊(𝑖) predstavlja transformaciju iz izlaza

neurona 𝑖-tog sloja u ulaz neurona (𝑖 + 1)-og sloja. Konktetno, element matrice 𝑊𝑖𝑗(𝑘)

predstavlja težinu grane izmeĎu 𝑗-tog neurona 𝑘-tog sloja i 𝑖-tog neurona (𝑘 + 1)-og sloja.

Vektor 𝑏(𝑖) predstavlja vektor konstanti koje se dodaju (i+1)-om sloju. Neuroni koji uvek

imaju konstantnu vrednost 1 nemaju ulazne grane iz prethodnog sloja. Neka je sa 𝑠𝑙 označen

broj neurona u 𝑙-tom sloju. Sledi slika neuronske mreže sa ulaznim slojem od 3 neurona, dva

skrivena sloja od po 3 i 2 neurona redom, i izlaznim slojem od 2 neurona.

Page 11: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

10

Označimo sa 𝑎𝑖(𝑙)

aktivaciju (izlaznu vrednost) 𝑖-tog neurona 𝑙-tog sloja. Za ulazni sloj

izlazna vrednost je ujedno i ulazna, pa je 𝑎𝑖(1)

= 𝑥𝑖 . Ukoliko su nam poznati parametri 𝑊 i 𝑏

neuronska mreža je potpuno odreĎena, i možemo na osnovu ulaznih veličina da dobijemo

izlazne. Označimo sa 𝑧𝑖(𝑙)

ulaznu vrednost 𝑖-tog neurona 𝑙-tog sloja. Tada je 𝑧𝑖(𝑙)

=

𝑊𝑖𝑗(𝑙−1)

𝑎𝑗(𝑙−1)

+ 𝑏𝑖𝑙−1𝑠𝑙−1

𝑗=1 . Izlazna vrednost se sada dobija kao 𝑎𝑖(𝑙)

= 𝑓(𝑧𝑖(𝑙)

). Sada je jasno

da, na osnovu aktivacija neurona jednog sloja, možemo dobiti aktivacije neurona sledećeg

sloja. Polazeći od ulaznog sloja, na taj način se dobijaju aktivacije svih neurona u mreži.

2.3.1. Izračunavanje gradijenta kriterijumske funkcije

Jedna od najkorišćenijih tehnika za izračunavanje gradijenta kriterijumske funkcije

neuronske mreže je propagiranjem greške unazad. Ona je korišćena u radu, pa će on ovde

biti objašnjena. Pre svega, od podataka koje koristimo za treniranje, imamo korpus od 𝑚

primera, 𝑥(1),𝑦(1) ,… , 𝑥(𝑚),𝑦(𝑚) . Cilj koji treba da postignemo je da neuronska mreža

što bolje radi na primerima za treniranje, ali isto tako i da dobro radi na novim primerima.

Da bismo uopste pričali o tome koliko dobro neuronska mreža radi, prvo moramo da

definišemo kako se računa greška koju treba da minimizujemo. U slučaju problema regresije,

u slučaju da je dat primer (𝑥,𝑦), ona se najčešće računa po sledećoj formuli:

𝐽 𝑊, 𝑏; 𝑥,𝑦 =1

2 𝑕𝑊,𝑏 𝑥 − 𝑦

2

Kako je prikazana greška samo za jedan primer, a broj primera je 𝑚, potrebno je

minimizirati prosečnu grešku (što je ekvivalentno minimiziranju sume grešaka). Da bi se

sprečio problem pretreniranja, dodaje se regularizacioni član. Problem pretreniranja je

problem kada sistem dobro radi na svim primerima na kojima je učio, ali daje loše rezultate

na novim primerima. Sada je moguće napisati kompletan oblik kriterijumske funkcije

(funkcije greške):

Page 12: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

11

𝐽 𝑊, 𝑏 = 1

𝑚 𝐽 𝑊, 𝑏; 𝑥(𝑖),𝑦(𝑖)

𝑚

𝑖=1

+𝜆

2 (𝑊𝑗𝑖

(𝑙))2

𝑠𝑙+1

𝑗=1

𝑠𝑙

𝑖=1

𝑛𝑙−1

𝑙=1

Parametar 𝜆 odreĎuje koliko će biti dozvoljeno mreži da ima slabije rezultate na trening

skupu, radi boljih rezultata na novim primerima. Ovaj parametar ne treba da bude ni

preterano veliki, jer može doći do toga da algoritam radi loše i na trening skupu i na novim

primerima.

Posao koji algoritam za treniranje neuronske mreže treba da obavi je da odredi

parametre 𝑊 i 𝑏, tako da je vrednost kriterijumske funkcije što manja. Ovde ćemo se

fokusirati na metode koji koriste gradijent kriterijumske funkcije. Takav je metod

gradijentnog spusta. Računajući parcijalne izvode funkcije greške po parametrima, dobijamo

sledeće:

𝜕

𝜕𝑊𝑖𝑗(𝑙)𝐽 𝑊, 𝑏 =

1

𝑚

𝜕

𝜕𝑊𝑖𝑗(𝑙)𝐽 𝑊, 𝑏; 𝑥(𝑖),𝑦(𝑖)

𝑚

𝑖=1

+ 𝜆𝑊𝑗𝑖(𝑙)

𝜕

𝜕𝑏𝑖(𝑙)𝐽 𝑊, 𝑏 =

1

𝑚

𝜕

𝜕𝑏𝑖(𝑙)𝐽 𝑊, 𝑏; 𝑥(𝑖),𝑦(𝑖)

𝑚

𝑖=1

Sada će biti objašnjeno kako algoritam propagiranja greške unazad zapravo radi. Neka

je dat primer (𝑥,𝑦). Prva stvar koju treba uraditi je staviti vektor 𝑥 na ulaz neuronske mreže, i

proći kroz celu mrežu računajući ulazne i izlazne vrednosti za svaki neuron. Na taj način

dolazimo i do izlaza koji daje neuronska mreža, 𝑕𝑊 ,𝑏 𝑥 . Sada, za svaki neuron u mreži,

uvodimo novu veličinu 𝛿𝑖(𝑙)

, koja će predstavljati koliko je taj neuron "odgovoran" za grešku

koja se javila na izlazu (grešku izmeĎu tačne vrednosti izlaza, i vrednosti koju je vratila

neuronska mreža). Za neurone na izlaznom sloju, ova veličina može direktno da se izračuna.

Za sve druge slojeve neurona, ova vrednost će se računati pomoću vrednosti neurona iz

narednog sloja. Detaljniji opis samog algoritma, kao i definicija same veličine 𝛿𝑖(𝑙)

, slede u

nastavku:

𝛿𝑖(𝑙)

=𝜕

𝜕𝑧𝑖(𝑙)

1

2 𝑕𝑊,𝑏 𝑥 − 𝑦

2

Algoritam se odvija u sledećim koracima:

Postavlja se vrednost vektora x na ulaz mreže, a zatim se prolazi kroz mrežu uz

aktivaciju svih neurona u njoj. Kroz mrežu se prolazi sloj po sloj.

Za svaki neuron na izlaznom sloju računa se veličina 𝛿 na sledeći način: 𝛿𝑖(𝑛𝑙) =

𝑎𝑖 𝑛𝑙 − 𝑦𝑖 𝑓

′(𝑧𝑖 𝑛𝑙 ). Ukoliko se radi o regresiji, i izlazni sloj neurona bude

linearan, ovaj izraz se svodi na 𝛿𝑖(𝑛𝑙) = 𝑎𝑖

𝑛𝑙 − 𝑦𝑖 .

Page 13: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

12

Za svaki sloj, počevši od sloja 𝑛𝑙 − 1 do drugog sloja, kao i za svaki neuron u

trenutnom sloju izračunati vrednost za 𝛿 na sledeći način:

𝛿𝑖(𝑙)

= 𝑊𝑗𝑖(𝑙)𝛿𝑗

(𝑙+1)𝑠𝑙+1𝑗=1 𝑓 ′(𝑧𝑖

𝑙 ).

Računaju se parcijalni izvodi po svim parametrima koristeći sledeće formule:

𝜕

𝜕𝑊𝑖𝑗(𝑙)𝐽 𝑊, 𝑏; 𝑥, 𝑦 = 𝑎𝑗

(𝑙)𝛿𝑖

(𝑙+1)

𝜕

𝜕𝑏𝑖(𝑙)𝐽 𝑊, 𝑏; 𝑥,𝑦 = 𝛿𝑖

(𝑙+1)

Radi dobrog rada algoritma, potrebno je početne vrednosti parametara inicijalizovati

na slučajne vrednosti blizu nule. Ukoliko bi sve početne vrednosti bile 0, svi neuroni unutar

jednog sloja bi učili istu funkciju ulaza. Zato se radi početna inicijalizacija, da bi se razbila

simetrija.

Funkcija 𝐽 𝑊, 𝑏 ne mora nužno da bude konveksna. To je jedan od potencijalnih

problema prilikom traženja minimuma. Problem je u tome što postoji više lokalnih

minimuma, pa algoritam može da završi u lokalnom minimumu koji nije ujedno i globalni

minimum. Ipak, u praksi ovaj problem nije toliko veliki, a algoritam daje prilično dobre

rezultate.

2.3.2. Robusni algoritam prostiranja greške unazad (RPROP)

RPROP (skraćeno od eng. resilient backpropagation) je jedan od najkorišćenijih

metoda za treniranje neuronske mreže. U pretodnom delu je objašnjeno kako se računaju

parcijalni izvodi kriterijumske funkcije. Ovde će biti objašnjeno kako oni na efikasan način

mogu da se primene prilikom minimizacije te funkcije.

Osnovni problem klasičnog gradijentnog spusta je veličina koraka. Ukoliko je korak

previše mali, potrebno je puno iteracija da bi se mreža istrenirala. Kada je korak previše

veliki, može doći do toga da se kroz iteracije preskače minimum, pa da se do njega nikad i ne

stigne. Zato je osnovna ideja prilikom kreiranja ovog algoritma bila u tome da se na osnovu

izvoda prati u kom smeru treba da se traži minimum, a sama veličina koraka da se analizira

posebno.

Neka je sa 𝑤 označen proizvoljni parametar, koji pripada parametrima čije vrednosti

treba odrediti u cilju minimizacije funkcije. Za svaki takav parametar dodaje se promenljiva

Δ𝑤 , koja odreĎuje veličinu koraka za dati parametar. Ta promenljiva u toku treniranja menja

vrednost, a način na koji menja vrednost je sledeći:

Page 14: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

13

Δ𝑤(𝑡)

=

𝜂+ Δ𝑤

(𝑡−1), 𝑎𝑘𝑜 𝑗𝑒

𝜕𝐸

𝜕𝑤

(𝑡−1)

𝜕𝐸

𝜕𝑤

(𝑡)

> 0

𝜂− Δ𝑤(𝑡−1)

, 𝑎𝑘𝑜 𝑗𝑒 𝜕𝐸

𝜕𝑤

(𝑡−1)

𝜕𝐸

𝜕𝑤

(𝑡)

< 0

Δ𝑤(𝑡−1)

, 𝑢 𝑠𝑢𝑝𝑟𝑜𝑡𝑛𝑜𝑚

U ovom izrazu, 𝐸 predstavlja kriterijumsku funkciju, a parametri 𝜂+ i 𝜂− su takvi da

važi 0 < 𝜂− < 1 < 𝜂+. Ako se malo bolje analizira način promene koraka, on je sasvim

intuitivan. Kada parcijalni izvod po datom parametru promeni znak, to implicira da je

promena bila suviše velika i da je algoritam preskočio lokalni minimum, pa je prirodno

smanjiti veličinu koraka. Ukoliko znak ostane isti, to znači da algoritam ide ka minimumu, pa

se blagim povećanjem koraka samo ubrzava konvergencija.

Kada se u toku iteracije odredi veličina koraka za sve parametre, pristupa se

ažuriranju parametara. Veličina promene svakog parametra odreĎuje se na osnovu znaka

parcijalnog izvoda, kao i na osnovu veličine koraka. To se radi na sledeći način:

Δ𝑤(𝑡) =

−Δ𝑤

(𝑡),𝑎𝑘𝑜 𝑗𝑒

𝜕𝐸

𝜕𝑤

(𝑡)

> 0

+Δ𝑤(𝑡)

,𝑎𝑘𝑜 𝑗𝑒 𝜕𝐸

𝜕𝑤

(𝑡)

< 0

0, 𝑖𝑛𝑎č𝑒

Sada se nova vrednost parametra dobija na sledeći način:

𝑤(𝑡+1) = 𝑤(𝑡) + Δ𝑤(𝑡)

Ipak, postoji jedan specijalan slučaj. Ukoliko parcijalni izvod po datom parametru

promeni znak, to zanči da je korak bio preveliki, pa je minimum preskočen. Zato je promena

vrednosti parametra u ovom slučaju negacija promene vrednosti parametra u prethodnom

koraku. Na taj način se postiže da se vrednost parametra vrati na staro, uz smanjenu veličinu

koraka.

Δ𝑤(𝑡) = −Δ𝑤(𝑡−1), ako je 𝜕𝐸

𝜕𝑤

(𝑡−1) 𝜕𝐸

𝜕𝑤

(𝑡)< 0

U ovom slučaju, kako je vrednost vraćena na staro, u sledećem koraku će parcijalni

izvod ponovo da promeni znak. Da bi se sprečilo duplo smanjivanje vrednosti koraka, u

sledećem koraku neće biti promene vrednosti koraka. U praksi se to postiže postavljanjem

vrednosti 𝜕𝐸

𝜕𝑤

(𝑡−1)= 0 u sledećem koraku (postavljanjem vrednosti

𝜕𝐸

𝜕𝑤

(𝑡)= 0 na kraju

trenutnog koraka).

Na početku samog algoritma se vrednosti veličine koraka svih promenljivih

postavljaju na neku početnu vrednost Δ0. Ova vrednost odreĎuje veličinu prvog koraka, i

trebalo bi da bude u skladu se veličinama vrednosti parametara. Dobra početna vrednost

može biti 0.1. Ipak, izbor ove vrednosti nije od presudnog značaja za brzinu konvergencije,

Page 15: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

14

jer će sam algoritam ubrzo da podesi veličine koraka. TakoĎe, nekad se može zadati

maksimalna i minimalna veličina koraka, a to se radi i zbog problema sa preciznošću realnih

brojeva u računarstvu.

Na rad algoritma utiču i konstante za brzinu promene parametra. Iako one mogu da

imaju bilo koju vrednost iz propisanih opsega, najčešće se uzimaju vrednosti 𝜂− = 0.5 i

𝜂+ = 1.2.

Page 16: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

15

3. Učenje vektorskih reprezentacija reči

U ovom delu će biti predstavljena dva algoritma za treniranje vektorskih

reprezentacija reči. Oba algoritma su delo Tomasa Mikolova. Oni po svojoj strukturi

predstavljaju neuronske mreže, i pogodni su za treniranje na velikom skupu podataka.

Neuronska mreža u CBOW algoritmu na osnovu konteksta reči predviĎa datu reč, dok kod

Skip Gram algoritma ona na osnovu reči predviĎa njen kontekst. U oba slučaja, neuronska

mreža se sastoje iz ulaznog, jednog skrivenog i izlaznog sloja. Za treniranje mreže se koristi

stohastički gradijentni spust. Na kraju će biti reči i o načinu optimizacije samih algoritama.

3.1. Model kontinualne grupe reči (eng. Continuous bag of words-

CBOW)

Kao što je već rečeno, u ovom modelu neuronska mreža na osnovu konteksta reči

predviĎa datu reč. U cilju lakšeg objašnjenja, neka se za početak kontekst reči sastoji od samo

jedne reči. Tada mreža na osnovu reči koja je kontekst date reči, predviĎa samu reč.

Označimo ukupan broj reči u rečniku sa 𝑉. Izlazni i ulazni sloj su dimenzije 𝑉. To znači da se

reči predstavljaju kao vektori koji imaju jednu jedinicu na mestu date reči (sve reči iz rečnika

su sortirane i svaka ima indeks koji odgovara njenoj poziciji), a na svim ostalim mestima

nule. Neka skriveni sloj sadrži 𝑁 neurona. Neuronska mreža je potpuno povezana, što znači

da izmeĎu bilo koja dva neurona na susednim slojevima postoji veza.

Težine veza izmeĎu ulaznog i skrivenog sloja mogu da se predstave matricom

dimenzija 𝑉 × 𝑁. Označimo tu matricu sa 𝑊. Svaki red u ovoj matrici je transponovani

vektor dimenzije 𝑁. Ukoliko se radi o 𝑖-tom redu, on predstavlja reč koja u svojoj 𝑉-

dimenzionalnoj reprezentaciji sadrzi jedinicu na mestu 𝑖, a na svim ostalim mestima nule.

Označimo za reč 𝑤 na ulazu, sa 𝑣𝑤 odgovarajući vektor (koji predstavlja reč 𝑤). Ukoliko je

𝑤 = (𝑥1,… , 𝑥𝑉) reč na ulazu (kontekst reči na izlazu), gde je 𝑥𝑘 = 1 i 𝑥𝑖 = 0, za 𝑖 ≠ 𝑘, a sa

𝑕 označen skriveni sloj u mreži, tada je:

𝑕 = 𝑊𝑇𝑤 = 𝑣𝑤

To znači da skriveni sloj predstavlja odgovarajući red matrice 𝑊, zavisno od ulaznog

vektora. Skriveni sloj sadrži linearne neurone, pa je njegova vrednost ista na ulazu i izlazu.

Označimo matricu koja sadrži težine veza izmeĎu skrivenog sloja i izlaznog sloja sa

𝑊 ′ . To je matrica dimenzije 𝑁 × 𝑉. Neka je 𝑢 = (𝑢1,… , 𝑢𝑉) vektor na ulazu izlaznog sloja

neuronske mreže. Ako sa 𝑤𝑗 označimo reč koja na 𝑗-tom mestu ima jedinucu, onda je 𝑗-ta

kolona matrice 𝑊 ′ još jedno predstavljanje te reči. Označimo ovo predstavljanje sa 𝑣𝑤𝑗

′ . Tada

je:

𝑢𝑗 = 𝑣𝑤𝑗

′ 𝑇𝑕

Page 17: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

16

Sada se u zadnjem sloju koriste softmax neuroni, koji će predstavljati odgovarajuće

verovatnoće:

𝑝 𝑤𝑗 𝑤𝐼 = 𝑦𝑗 =𝑒𝑢𝑗

𝑒𝑢𝑙𝑉𝑙=1

Verovatnoća 𝑝 𝑤𝑗 𝑤𝐼 predstavlja uslovnu verovatnoću da ukoliko je na ulazu reč 𝑤𝐼 (reč iz

konteksta), reč na izlazu bude 𝑤𝑗 . Vektor 𝑦 = (𝑦1,… ,𝑦𝑉) predstavlja izlaz izlaznog sloja

neuronske mreže (koji zavisi od ulazne reči 𝑤𝐼). Izraz za uslovnu verovatnoću može da se

zapiše i samo preko reprezentacija reči na sledeći način:

𝑝 𝑤𝑗 𝑤𝐼 =𝑒𝑣𝑤𝑗′ 𝑇

𝑣𝑤𝐼

𝑒𝑣𝑤𝑙′ 𝑇

𝑣𝑤𝐼𝑉𝑙=1

Grafički prikaz neuronske mreže kod CBOW algoritma sa kontekstom veličine 1 dat je na

slici ispod.

Sada treba objasniti sam način treniranja ovakve mreže. Za primer 𝑤𝐼 ,𝑤𝑂 , gde je 𝑤𝐼

reč iz konteksta reči 𝑤𝑂, treba maksimizovati 𝑝(𝑤𝑂|𝑤𝐼). To je ekvivalentno maksimizovanju

logaritma ove uslovne verovatnoće, pa je cilj maksimizovati:

log 𝑝(𝑤𝑂|𝑤𝐼) = log𝑦𝑗 ∗ = 𝑢𝑗 ∗ − log 𝑒𝑢𝑙

𝑉

𝑙=1

≔ −𝐸

Indeks 𝑗∗ je pozicija jedinice u reči 𝑤𝑂, a sa 𝐸 je označena kriterijumska funkcija koju treba

minimizovati. Kod računanja parcijalnih izvoda po izlaznom sloju, imamo da važi:

𝜕𝐸

𝜕𝑢𝑗= 𝑦𝑗 − 𝑡𝑗 ≔ 𝑒𝑗

Veličina 𝑡𝑗 je definisana tako da je 𝑡𝑗 = 1 ako i samo ako je 𝑗∗ = 𝑗, u suprotnom je 𝑡𝑗 = 0.

Sada je lako naći parcijalne izvode po težinama izmeĎu skrivenog i izlaznog sloja, na sledeći

način:

Page 18: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

17

𝜕𝐸

𝜕𝑤𝑖𝑗′ =

𝜕𝐸

𝜕𝑢𝑗∙𝜕𝑢𝑗

𝜕𝑤𝑖𝑗′ = 𝑒𝑗 ∙ 𝑕𝑖

Propagiranjem greške unazad, dobijaju se i ostali potrebni parcijalni izvodi:

𝜕𝐸

𝜕𝑕𝑖=

𝜕𝐸

𝜕𝑢𝑗∙𝜕𝑢𝑗

𝜕𝑕𝑖= 𝑒𝑗

𝑉

𝑗=1

𝑉

𝑗=1

∙ 𝑤𝑖𝑗′ ≔ 𝐸𝐻𝑖

𝜕𝐸

𝜕𝑤𝑘𝑖=𝜕𝐸

𝜕𝑕𝑖∙𝜕𝑕𝑖𝜕𝑤𝑘𝑖

= 𝐸𝐻𝑖 ∙ 𝑥𝑘

Ključna stvar koju treba ovde primetiti je da parcijalni izvodi 𝜕𝐸

𝜕𝑤 𝑖𝑗 direktno zavise od

𝑥𝑖 . Kako je ulazni vektor 𝑤 = (𝑥1,… , 𝑥𝑉) sačinjen od nula i samo jedne jedinice, to će samo

u jednom redu matrice parcijalnih izvoda biti vrednosti različite od 0. To znači da je izmeĎu

ova dva sloja potrebno odraditi samo 𝑁 promena u jednom koraku tokom treniranja.

Sve do sada što je opisano bilo je za slučaj kada je kontekst veličine jedan. U praksi se

za kontekst obično uzima izvestan broj reči pre i posle date reči. Sam prelaz sa konteksta od

jedne reči na kontekst sačinjen od više reči je veoma jednostavan i intuitivan. Prilikom

računanja skrivenog sloja, računa se srednja vrednost sloja za sve vektore sa ulaza (iz

konteksta date reči).

𝑕 =1

𝐶𝑊𝑇 𝑤1 + ⋯+ 𝑤𝐶 =

1

𝐶 𝑣𝑤1

+ ⋯+ 𝑣𝑤𝐶

Sa 𝐶 je označen ukupan broj reči u kontekstu, a sa 𝑤1,… ,𝑤𝐶 su označene te reči. Simbolima

𝑣𝑤 𝑖 su označeni odgovarajući redovi u matrici težina izmeĎu ulaznog i skrivenog sloja, slično

kao u slučaju konteksta veličine 1. Sledi prikaz CBOW arhitekture sa kontekstom veličine C.

Page 19: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

18

Kriterijumska funkcija je data na sledeći način:

𝐸 = − log 𝑝 𝑤𝑂 𝑤𝐼,1,… ,𝑤𝐼,𝐶 = −𝑢𝑗 ∗ + log 𝑒𝑢𝑙

𝑉

𝑙=1

= −𝑣𝑊𝑂

′ 𝑇∙ 𝑕 + log 𝑒

𝑣𝑊𝑙′ 𝑇

∙𝑕

𝑉

𝑙=1

Ovaj izraz je identičan izrazu funkcije greške kod slučaja sa kontekstom veličine 1, a jedina

razlika je u načinu definisanja vrednosti 𝑕. Učenje matrica težina (reprezentacija reči u 𝑁-

dimenzionalnom prostoru) je analogno slučaju konteksta veličine 1. Jedina razlika je što je

sada potrebno ažurirati 𝐶 redova matrice težina izmeĎu ulaznog i skrivenog sloja.

3.2. Model preskakanja jedinica (eng. Skip Gram)

Ovaj model je suprotan CBOW modelu. Posmatrana reč je sada ulaz mreže, a izlaz

mreže je kontekst date reči. Sa 𝑤𝐼 je kao i u slučaju CBOW algoritma označen vektor na

ulazu (u ovom slučaju to je posmatrani vektor, a ne vektor iz konteksta), a sa 𝑣𝑤𝐼

odgovarajući red iz matrice težina izmeĎu ulaznog i skrivenog sloja. Sada važi:

𝑕 = 𝑊𝑇𝑤𝐼 = 𝑣𝑤𝐼

Na izlaznom sloju, umesto jedne raspodele, biće 𝐶 raspodela, gde je 𝐶 veličina

konteksta. Svaka od njh se računa pomoću iste matrice težina izmeĎu skrivenog i izlaznog

sloja.

𝑝 𝑤𝑐,𝑗 = 𝑤𝑂,𝑐 𝑤𝐼 = 𝑦𝑐 ,𝑗 =𝑒𝑢𝑐 ,𝑗

𝑒𝑢𝑐 ,𝑙𝑉𝑙=1

U prethodnom izrazu, 𝑤𝑐,𝑗 označava 𝑗-tu reč 𝑐-tog dela izlaznog sloja, 𝑤𝑂,𝑐 označava stvarnu

𝑐-tu izlaznu reč iz konteksta, 𝑤𝐼 označava jedinu reč na ulazu, 𝑦𝑐 ,𝑗 predstavlja izlaz 𝑗-tog

neurona 𝑐-tog dela izlaznog sloja, a 𝑢𝑐 ,𝑗 označava ulaz 𝑗-tog neurona 𝑐-tog dela izlaznog

sloja. Kako svi delovi izlaznog sloja imaju istu matricu težina izmeĎu skrivenog i izlaznog

sloja, to je:

𝑢𝑐 ,𝑗 = 𝑢𝑗 = 𝑣𝑤𝑗

′ 𝑇∙ 𝑕

Ovo važi za svako 𝑐.

Što se kriterijumske funkcije tiče, ona ima sledeći oblik:

𝐸 = − log 𝑝(𝑤𝑂,1,… ,𝑤𝑂,𝐶|𝑤𝐼) = − log 𝑒𝑢𝑐 ,𝑗 𝑐

𝑒𝑢𝑐 ,𝑙𝑉𝑙=1

= − 𝑢𝑗𝑐∗ + log 𝑒𝑢𝑐 ,𝑙

𝑉

𝑙=1

𝐶

𝑐=1

𝐶

𝑐=1

𝐶

𝑐=1

Sa 𝑗𝑐∗ je označen indeks u rečniku stvarne 𝑐-te izlazne reči iz konteksta. Ovde je kod drugog

znaka jednakosti iskorišćena pretpostavka o nezavisnosti odgovarajućih slučajnih

poromenljivih.

Page 20: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

19

Kada računamo parcijalne izvode kriterijumske funkcije po ulazu svih delova

izlaznog sloja neurona, dobijamo sledeću jednakotst:

𝜕𝐸

𝜕𝑢𝑐 ,𝑗= 𝑦𝑐 ,𝑗 − 𝑡𝑐 ,𝑗 ≔ 𝑒𝑐 ,𝑗

Radi lakšeg pisanja, uvodimo oznaku 𝐸𝐼 = 𝐸𝐼1,… ,𝐸𝐼𝑉 , koja predstavlja 𝑉-dimenzioni

vektor suma grešaka predikcije po svim rečina iz konteksta.

𝐸𝐼𝑗 = 𝑒𝑐 ,𝑗

𝐶

𝑐=1

Sada je lako naći parcijalne izvode po svim težinama izmeĎu skrivenog i izlaznog sloja.

𝜕𝐸

𝜕𝑤𝑖𝑗′ =

𝜕𝐸

𝜕𝑢𝑐 ,𝑗∙𝜕𝑢𝑐 ,𝑗

𝜕𝑤𝑖𝑗′

𝐶

𝑐=1

= 𝐸𝐼𝑗 ∙ 𝑕𝑖

Što se parcijalnih izvoda po težinama izmeĎu ulaznog i skrivenog sloja tiče, oni se računaju

slično kao i kod CBOW algoritma.

𝜕𝐸

𝜕𝑕𝑖=

𝜕𝐸

𝜕𝑢𝑐 ,𝑗∙𝜕𝑢𝑐 ,𝑗

𝜕𝑕𝑖

𝑉

𝑗=1

= 𝐸𝐼𝑗

𝑉

𝑗=1

𝐶

𝑐=1

∙ 𝑤𝑖𝑗′ ≔ 𝐸𝐻𝑖

𝜕𝐸

𝜕𝑤𝑘𝑖=𝜕𝐸

𝜕𝑕𝑖∙𝜕𝑕𝑖𝜕𝑤𝑘𝑖

= 𝐸𝐻𝑖 ∙ 𝑥𝑘

Page 21: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

20

3.3. Optimizacija

Modeli koji su do sada dati su prikazani u njihovim originalnim formama, bez ikakvih

dodatnih optimizacija. Za svaki od modela, postoje dve vektorske reprezentacije za svaku reč

(ulazni vektor 𝑣𝑤 i izlazni vektor 𝑣𝑤′ ). Učenje ulaznih vektora je jeftina operacija, dok je

operacija učenja izlaznih vektora jako skupa. To je zato što su parcijalni izvodi po težinama

izmeĎu ulaznog i skrivenog sloja jednaki nuli u svim redovima matrice težina, sem jednog.

Zbog toga se najveći deo vremena troši pri učenju matrice težina izmeĎu skrivenog i izlaznog

sloja. Cilj optimizacije je da smanji ovo vreme. Ovde će biti predstavljena dva načina za

optimizaciju, jedan je hijerarhijski softmax, a drugi optimizacija pomoću negativnih uzoraka.

3.3.1. Hijerarhijski softmax

Ovaj metod je baziran na binarnim stablima. Sve reči iz rečnika su listovi stabla.

Ukoliko stablo sadrži 𝑉 reči, broj čvorova u stablu koji nisu listovi je 𝑉 − 1. Za svaki list,

postoji jedinstveni put u stablu koji vodi od korena do njega. Taj put će biti korišćen za

računanje verovatnoće reči koju dati list predstavlja.

Na slici iznad je prikazan model hijerarhijskog softmax-a. Beli čvorovi predstavljaju

reči, a sivi unutrašnje čvorove. Crnom bojom je podebljan put od korena do lista koji sadrži

reč 𝑤2. Funkcija 𝑛(𝑤, 𝑗) kao rezultat vraća 𝑗-ti čvor na putu od korena do lista koji sadrži reč

𝑤. Nadalje će sa 𝐿(𝑤) biti označen broj čvorova na putu od korena do čvora 𝑤. U slučaju sa

slike, važi da je 𝐿 𝑤2 = 4.

U slučaju modela hijerarhijskog softmax-a, ne postoji predstavljanje reči pomoću

matrice težina izmeĎu skrivenog i izlaznog sloja (ne postoji 𝑣𝑤′ ). Izlazni sloj se sastoji od

𝑉 − 1 neurona, i oni predstavljaju unutrašnje čvorove stabla. Verovatnoća da data reč bude

izlazna se računa pomoću ovog sloja, na sledeći način:

𝑝 𝑤 = 𝑤𝑂 = 𝜎 𝑛 𝑤, 𝑗 + 1 = 𝑐𝑕(𝑛(𝑤, 𝑗)) ∙ 𝑣𝑛(𝑤 ,𝑗 )′ 𝑇

𝑕

𝐿 𝑤 −1

𝑗=1

Page 22: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

21

Sa 𝑐𝑕(𝑛) je označeno levo dete čvora n. Umesto izlazne vektorske reprezentacije reči (𝑣𝑤′ ),

sada imamo vektorsku reprezentaciju unutrašnjih čvorova stabla (𝑣𝑛(𝑤 ,𝑗 )′ ). Sa 𝑕 je kao i ranije

označen izlaz skrivenog sloja neurona (koji je ujedno jednak ulazu, jer su neuroni linearni).

Oznaka 𝜎 je standardna oznaka za sigmoidalnu funkciju. Funkcija 𝑥 je specijalna funkcija,

a njena definicija je data ispod.

𝑥 = 1, ako je logička vrednost x tačna

−1, ako je logička vrednost x netačna

Analizirajmo sada formulu za verovatnoću da odreĎena reč bude izlazna. Da bi

izračunali verovatnoću za neku reč, polazimo od vrha, i za svako spuštanje na levo ili desno

dete, postoji verovatnoća tog prelaza. Verovatnoća spuštanja na levo dete čvora 𝑛 data je sa:

𝑝 𝑛, 𝑙𝑒𝑣𝑜 = 𝜎 𝑣𝑛′ 𝑇 ∙ 𝑕

Ona direktno zavisi od skrivenog sloja (koji zavisi od ulazne vektorske reprezentacije reči sa

ulaza) i od vektorske reprezentacije unutrašnjeg čvora na kome se trenutno nalazimo.

Verovatnoća spuštanja na desno dete se direktno dobija od verovatnoće spuštanja na levo

dete:

𝑝 𝑛,𝑑𝑒𝑠𝑛𝑜 = 1 − 𝑝 𝑛, 𝑙𝑒𝑣𝑜 = 𝜎 −𝑣𝑛′ 𝑇 ∙ 𝑕

Prethodni izraz objašnjava novouvedenu funkciju 𝑥 . Kada bi na stablu sa slike računali

verovatnoću da reč 𝑤2 bude izlazna, to bi radili na sledeći način:

𝑝 𝑤2 = 𝑤𝑂 = 𝑝 𝑛 𝑤2, 1 , 𝑙𝑒𝑣𝑜 ∙ 𝑝 𝑛 𝑤2, 2 , 𝑙𝑒𝑣𝑜 ∙ 𝑝 𝑛 𝑤2, 3 ,𝑑𝑒𝑠𝑛𝑜

= 𝜎 𝑣𝑛 𝑤2 ,1 ′ 𝑇

∙ 𝑕 ∙ 𝜎 𝑣𝑛 𝑤2 ,2 ′ 𝑇

∙ 𝑕 ∙ 𝜎 −𝑣𝑛 𝑤2 ,3 ′ 𝑇

∙ 𝑕

Nije teško utvrditi da ovakve verovatnoće za sve reči iz rečnika zadovoljavaju sledeću

jednakost:

𝑝 𝑤𝑖 = 𝑤𝑂

𝑉

𝑖=1

= 1

To, uz činjenicu da su sve ove verovatnoće nenegativne, potvrĎuje da je hijerarhijski softmax

dobro definisana raspodela meĎu rečima.

Sada će biti objašnjeno treniranje modela sa hijerarhijskim softmax-om. Radi

jednostavnosti biće objašnjeno za slučaj konteksta veličine 1. Prelazak na kontekste veće

veličine je jednostavan. Radi kraćeg pisanja, uvode se sledeće oznake:

∙ ≔ 𝑛 𝑤, 𝑗 + 1 = 𝑐𝑕(𝑛(𝑤, 𝑗))

𝑣𝑗′ ≔ 𝑣𝑛 𝑤 ,𝑗

Što se kriterijumske funkcije tiče, ona u ovom slučaju ima sledeći oblik:

Page 23: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

22

𝐸 = − log p 𝑤 = 𝑤𝑂 𝑤𝐼 = − log 𝜎 ∙ 𝑣𝑗′ 𝑇𝑕

𝐿 𝑤 −1

𝑗=1

Parcijalni izvodi funkcije greške po izlaznom sloju se dobijaju na sledeći način:

𝜕𝐸

𝜕𝑢𝑗= 𝜎 ∙ 𝑣𝑗

′ 𝑇𝑕 − 1 ∙ = 𝜎 𝑣𝑗

′ 𝑇𝑕 − 1, 𝑎𝑘𝑜 𝑗𝑒 ∙ = 1

𝜎 𝑣𝑗′ 𝑇𝑕 , 𝑎𝑘𝑜 𝑗𝑒 ∙ = −1

= 𝜎 𝑣𝑗′ 𝑇𝑕 − 𝑡𝑗

Veličina 𝑡𝑗 je definisana na sledeći način:

𝑡𝑗 = 1, 𝑎𝑘𝑜 𝑗𝑒 ∙ = 1 0, 𝑢 𝑠𝑢𝑝𝑟𝑜𝑡𝑛𝑜𝑚

Sada je lako dobiti parcijalne izvode po vektorskim reprezentacijama unutrašnjih čvorova

stabla (ujedno i po elementima matrice težina izmeĎu skrivenog i izlaznog sloja).

𝜕𝐸

𝜕𝑣𝑗′ =

𝜕𝐸

𝜕𝑣𝑗′ 𝑇𝑕

∙𝜕𝑣𝑗

′ 𝑇𝑕

𝜕𝑣𝑗′ = (𝜎 𝑣𝑗

′ 𝑇𝑕 − 𝑡𝑗 ) ∙ 𝑕

Prilikom ažuriranja samih vektora, kod Skip Gram modela je potrebno to uraditi za svaku reč

iz konteksta. Računanje parcijalnih izvoda po skrivenom sloju neurona, dobija se direktno

pomoću prethodnih izraza:

𝜕𝐸

𝜕𝑕=

𝜕𝐸

𝜕𝑣𝑗′ 𝑇𝑕

∙𝜕𝑣𝑗

′ 𝑇𝑕

𝜕𝑕

𝐿 𝑤 −1

𝑗=1

= (𝜎 𝑣𝑗′ 𝑇𝑕 − 𝑡𝑗 ) ∙

𝐿 𝑤 −1

𝑗=1

𝑣𝑗′ ≔ 𝐸𝐻

Parcijalni izvodi po elementima matrice težina izmeĎu skrivenog i izlaznog sloja se dobijaju

kao i u slučaju bez optimizacije.

Na osnovu datih formula, jasno se vidi da je složenost algoritma po jednom primeru i

po jednoj reči iz konteksta smanjena sa 𝑂(𝑉) na 𝑂(log V). Ovo stvara veliko poboljšanje u

brzini treniranja. Što se tiče memorijske složenosti, ona ostaje skoro ista kao i u sličaju bez

optimizacije.

3.3.2. Uzimanje negativnih uzoraka

Sam pristup kod optimizacije pomoću negativnih uzoraka je mnogo direktrniji nego

kod hijerarhijskog softmax-a. Kako je osnovni problem to što postoji veliki broj izlaznih

vektora koje treba ažurirati u svakoj iteraciji, ovde će se ažurirati samo njih nekoliko.

Ideja je da se za datu ulaznu reč. pored izlazne reči, koja je pozitivan primer, doda i

odreĎeni broj izlaznih reči koje će biti negativni primeri. Izbor reči koje će biti negativni

primeri se odvija na slučajan način, jer se smatra da je mala verovatnoća da ulazna reč i tako

izabrana reč čine ulazno-izlazni par (kod CBOW modela par kontekst-reč, a kod Skip Gram

Page 24: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

23

modela par reč-kontekst). Kasnije se od izlaznih vektora samo ažuriraju vektori koji

odgovaraju izlaznoj reči, i slučajno izabranim rečima. Dodavanje negativnih primera i

njihovo uključivanje u kriterijumsku funkciju je neophodno jer bi u suprotnom model mogao

da se istrenira da radi dobro za sve parove reč-kontekst (ili kontekst-reč kod CBOW modela),

ali da i za druge parove predviĎa da obrazuju ovakav par. Takav model ne bi imao smisla, pa

se zato i dodaju negativni primeri.

Sama kriterijumska funkcija koja se koristi u ovom modelu ima sledeći oblik:

𝐸 = − log 𝜎 𝑣𝑤𝑂′ 𝑇

𝑕 − log𝜎 −𝑣𝑤𝑗

′ 𝑇𝑕

𝑤𝑗∈𝑊𝑛𝑒𝑔

Sa 𝑤𝑂 je označena izlazna reč (pozittivan primer), a sa 𝑣𝑤𝑂′ njen izlazni vektor. Vektor 𝑕

predstavlja izlaz skrivenog sloja, i on je 𝑕 =1

𝐶 𝑣𝑤𝑐

𝐶𝑐=1 kod CBOW modela, odnosno

𝑕 = 𝑣𝑤𝐼 u Skip Gram modelu. Skup 𝑊𝑛𝑒𝑔 = 𝑤𝑗 |𝑗 = 1,… ,𝐾 je skup od 𝐾 reči koje su

slučajno izabrane kao negativni primeri.

Da bi dobili jednačine za treniranje modela pomoću negativnih uzoraka, prvo ćemo

naći parcijalne izvode kriterijumske funkcije po ulazu izlaznog sloja neurona.

𝜕𝐸

𝜕𝑣𝑤𝑗′ 𝑇𝑕

= 𝜎 𝑣𝑤𝑗

′ 𝑇𝑕 − 1, 𝑎𝑘𝑜 𝑗𝑒 𝑤𝑗 = 𝑤𝑂

𝜎 𝑣𝑤𝑗

′ 𝑇𝑕 , 𝑎𝑘𝑜 𝑗𝑒 𝑤𝑗 ∈ 𝑊𝑛𝑒𝑔

= 𝜎 𝑣𝑤𝑗

′ 𝑇𝑕 − 𝑡𝑗

Veličina 𝑡𝑗 ima vrednost 1 kada je 𝑤𝑗 pozitivan primer, a 0 ukoliko je negativan. Sada

možemo da izračunamo parcijalne izvode po izlaznim vektorima koje je potrebno ažurirati.

𝜕𝐸

𝜕𝑣𝑤𝑗′

=𝜕𝐸

𝜕𝑣𝑤𝑗′ 𝑇𝑕

∙𝜕𝑣𝑤𝑗

′ 𝑇𝑕

𝜕𝑣𝑤𝑗′

= 𝜎 𝑣𝑤𝑗

′ 𝑇𝑕 − 𝑡𝑗 𝑕

Važno je napomenuti da se ažuriraju samo izlazni vektori reči koje pripadaju skupu 𝑤𝑗 ∈

𝑤𝑂 ∪𝑊𝑛𝑒𝑔 , umesto svih vektora kakav je bio slučaj kod treniranja bez optimizacije. Ova

jednakost može da se primeni i kod CBOW i kod Skip Gram modela, s tim što je kod Skip

Gram modela potrebno izvršiti ažuriranje za svaku reč iz konteksta (kao izlaznu reč,

pozitivan primer) posebno.

Što se tiče računanja parcijalnih izvoda po neuronima iz skrivenog sloja, potrebno je

izvršiti sledeće sumiranje:

𝜕𝐸

𝜕𝑕=

𝜕𝐸

𝜕𝑣𝑤𝑗′ 𝑇𝑕

∙𝜕𝑣𝑤𝑗

′ 𝑇𝑕

𝜕𝑕𝑤𝑗∈ 𝑤𝑂 ∪𝑊𝑛𝑒𝑔

= 𝜎 𝑣𝑤𝑗

′ 𝑇𝑕 − 𝑡𝑗 𝑣𝑤𝑗

′ = 𝐸𝐻

𝑤𝑗∈ 𝑤𝑂 ∪𝑊𝑛𝑒𝑔

Samo ažuriranje ulaznih vektora je isto kao i kod slučaja bez optimizacije. Kod Skip

Gram modela je potrebno da se prvo izračunaju parcijalni izvodi funckije greške po

Page 25: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

24

skrivenom sloju za sve reči iz konteksta, pa da se suma tako dobijenih vektora koristi pri

ažuriranju.

Page 26: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

25

4. Detekcija hijerarhijskih relacija

4.1. Analiza problema

Prepoznavanje relacije hiponimije je jedan od ozbiljnijih zadataka procesiranja

govornog jezika. Kao takav, on je zaintrigirao mnoge naučnike i istraživače da rade na

njemu. U toku rada, došlo je do velikog broja različitih pristupa rešavanju ovog problema.

Jedan način da se ovaj problem reši je da se napravi velika hijerarhija reči. Primer

takve hijerarhije je WordNet. Reči su struktuirane u vidu stabla, gde se ispod svake reči

nalaze hiponimi te reči. Ovakve hijerarhije su poznate po dobroj strukturi, kao i velikoj

preciznosti. Njihov najveći problem je što ne sadrže sve reči, pa za reči koje nisu prisutne nije

moguće dobiti nikakvu informaciju. Osim toga, sam proces kreiranja ovakvih hijerarhija je

veoma naporan i vremenski zahtevan.

Drugi pristup pri rešavanju ovog problema je zasnovan na leksičkim šablonima. Ovaj

metod koristi ručno ili automatski generisane leksičke šablone, kako bi otkrio hiponim-

hiperomin parove u velikim korpusima teksta. Još 90-ih godina su naučnici uočili da dve reči

(ili dva niza reči koji čine celinu) uglavnom imaju odnos hiponim-hiperonim, ukoliko se

nalaze u nekim jezičkim konstrukcijama. Primer takve konstrukcije je "takav X kao Y", gde

su X i Y reči čiji se odnos utvrĎuje. Tako da ukoliko u tekstu stoji "takva boja kao zelena" ili

"takva životinja kao zec", zaključivalo se da je zelena boja, a zec zivotinja. Kasnije su se

pojavili metodi za automatsko otkrivanje ovakvih šablona, koji su testirani na velikim

korpusima teksta. Osnova za to koliko će dobro ovakvi metodi prepoznati relaciju hiponimije,

leži u kvalitetu samih šablona koji se generišu. Šablon treba da bude takav da ukoliko bude

pronaĎen u tekstu, šansa da par reči pripada relaciji bude velika. Sa druge strane, treba da

bude dovoljno šablona kako bi se prepoznao veliki broj parova koji pripadaju relaciji. Ovakav

pristup uglavnom ima problem ili sa odazivom ili sa tačnošću. Ukoliko se koriste samo dobri

šabloni, obično veliki broj hiponim-hiperonim parova ostane neotkriven, pa je odaziv mali.

Ukoliko se koristi veliki broj šablona, obično i veliki broj njih bude manje kvalitetan, pa se

mnogi parovi proglase da su u relaciji, a da to nije slučaj. Tada algoritam da veoma nisku

tačnost.

Postoje i modeli koji se baziraju na ideji da je kontekst hiperonima širi od konteksta

hiponima. Iako je to nekada tačno, postoji veliki broj primera kada to ne važi. Pojam "Novak

Đoković" je hiponim za pojam "Srbin", i svakako bi se u hijerarhiji predstavljenoj u obliku

stabla nalazio dosta niže. MeĎutim, pitanje je koji od ova dva pojma ima širi kontekst.

TakoĎe za mnoge stvari se hiponimi češće koriste u govoru od svojih hiperonima. Tako se

nazivi poznatih životinja mnogo češće javljaju nego nazivi familija kojima one pripadaju. To

sve govori da ovakvi metodi mogu da imaju dosta problema u otkrivanju relacije hiponimije

meĎu rečima.

Metod koji je u ovom radu korišćen se zasniva na vektorskoj ugradnji reči. Pojava

veoma kvalitetnih reprezentacija reči, kao što su Word2Vec i GloVe, predstavlja dobar

preduslov za primenu ovakvog metoda. Ovakve reprezentacije mogu da prepoznaju različite

Page 27: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

26

relacije meću rečima, pa su zbog toga testirane i na problemu prepoznavanja relacije

hiponimije. Ideja je da se reči posmatraju kao vektori brojeva koji dobro opisuju mnoge

osobine reči, pa da se ti vektori naknadno obraĎuju, i na osnovu njih izvode zaključci.

4.2. Opis algoritma

U ovom delu če biti predstavljen algoritam za prepoznacanje relacije hiponimije koji

je korišćen u ovom radu. Algoritam se sastoji od četiri dela, koja možemo redom da

nazovemo ugradnja reči u vektorski prostor, klasterovanje parova, učenje projekcija i

identifikacija relacije hiponimije. Pre toga će biti data sama formulacija problema.

4.2.1. Formulacija problema

Neka je dat korpus 𝐷 = {(𝑥𝑖 ,𝑦𝑖)}𝑖=1𝑛 . Korpus je sačinjen od parova stringova 𝑥𝑖 ,𝑦𝑖 ,

za koje važi da je 𝑦𝑖 hiperonim reči 𝑥𝑖 , odnosno 𝑥𝑖 hiponim reči 𝑦𝑖 . Kako je relacije

hiponimije asimetrična, ukoliko se par 𝑥𝑖 ,𝑦𝑖 pojavi u korpusu, par 𝑦𝑖 , 𝑥𝑖 neće biti u

njemu.

Zadatak algoritma je da za unete reči 𝑥 i 𝑦 odredi da li je 𝑥 hiponim reči 𝑦. Reči 𝑥 i 𝑦

mogu da budu proizvoljne reči jezika, tj. ne moraju obavezno biti reči iz korpusa.

4.2.2. Ugradnja reči u vektorski prostor

Kako je sa rečima kao nizovoma karaktera veoma teško raditi u mašinskom učenju,

njih je neophodno predstaviti na neki drugačiji način. To se najčešće postiže tako što se reči

predstavljaju kao vektori brojeva. MeĎutim, nisu sve reprezentacije reči pogodne. Najlakši

način bi bio da se od rečnika veličine 𝑀 napravi skup vektora tako da se 𝑖-ta reč iz rečnika

predstavi vektorom dužine 𝑀, koji će na svim mestima imati vrednost 0, osim na poziciji 𝑖,

gde će imati vrednost 1. Problem kod ovakvog predstavljanja je taj što se iz ovakve

reprezentacije reči malo toga može zaključiti. Na pitanja da li su dve reči slične, da li

obrazuju neku relacju itd. teško se može dati odgovor. Zato su naučnici osmislili algoritme za

učenje reprezentacija reči koje su daleko efikasnije. Usput, to su i reprezentacije sa manjom

dimenzijom prostora u kome su reči predstavljene, pa je i samo njihovo korišćenje brže. Te

reprezentacije reči pri kreiranju, osim same reči, posmatraju i reči koje se u tekstu nalaze u

okolini te reči. Neki od najpoznatijih takvih algoritama dati su u prethodnom poglavlju.

U ovom radu, vektorske reprezentacije reči su preuzete iz već istreniranih modela. To

su baze parova, gde je prvi član para reč, a drugi vektorska reprezentacija te reči. Za

treniranje ovih parova, autori baza su koristili algoritme koji su opisani u prethodnom

poglavlju.

Page 28: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

27

4.2.3. Klasterizacija parova

Algoritam na ulazu dobija listu parova reči koji pripadaju relaciji hiponimije, a na

osnovu te liste treba da proceni da li je neki novi par reči u toj relaciji. Ideja koja je ovde

korišćena proizilazi od nekih ideja koje je veliki istraživač iz oblasti procesiranja govornog

jezika, Tomas Mikolov, koristio i o kojima je pisao u svojim radovima. Njegov zaključak da

vektorske reprezentacije reči održavaju mnoge semantičke osobine reči, dovodi do

razmišljanja o tome da li one možda održavaju osobinu hiponimije meĎu rečima. Jedan dobro

poznati primer koji je on analizirao je 𝑣 𝑞𝑢𝑒𝑒𝑛 − 𝑣 𝑘𝑖𝑛𝑔 = 𝑣 𝑤𝑜𝑚𝑎𝑛 − 𝑣(𝑚𝑎𝑛), gde je

𝑣(𝑥) vektorska reprezentacija reči 𝑥. Kada se analiziraju ovakvi primeri na parovima reči

koje pripadaju relaciji hiponimije, dobijaju se raznoliki rezultati. Nekoliko primera je dato u

tabeli ispod:

Broj primera Primer

1. 𝑣(𝑠𝑕𝑟𝑖𝑚𝑝) − 𝑣(𝑝𝑟𝑎𝑤𝑛) ≈ 𝑣(𝑓𝑖𝑠𝑕) − 𝑣(𝑔𝑜𝑙𝑑 𝑓𝑖𝑠𝑕)

2. 𝑣(𝑙𝑎𝑏𝑜𝑟𝑒𝑟) − 𝑣(𝑐𝑎𝑟𝑝𝑒𝑛𝑡𝑒𝑟) ≈ 𝑣(𝑎𝑐𝑡𝑜𝑟) − 𝑣(𝑐𝑙𝑜𝑤𝑛)

3. 𝑣(𝑙𝑎𝑏𝑜𝑟𝑒𝑟) − 𝑣(𝑐𝑎𝑟𝑝𝑒𝑛𝑡𝑒𝑟) ≉ 𝑣(𝑓𝑖𝑠𝑕) − 𝑣(𝑔𝑜𝑙𝑑 𝑓𝑖𝑠𝑕)

Prva dva primera pokazuju jasnu vezu izmeĎu dva različita para koji pripadaju relaciji

hiponimije. MeĎutim, ta veza ne važi uvek, što pokazuje treći par. To znači da relacija

hiponimije nije tako jednostavna, i da ne postoji univerzalni vektor koji bi bio razlika izmeĎu

hiperonima i hiponima. Ideja je da se napravi preslikavanje koje će hiponim preslikati u

njegov hiperonim, jer ocigledno da ideja o samom dodavanju konstantnog vektora hiponimu

nije dobra ideja.

Da bi se malo bolje razmatrala situacija sa razlikama vektorskih reprezentacija reči

koje pripadaju relaciji, napravljen je skup svih razlika izmeĎu parova i taj skup analiziran.

Došlo se do zaključka da se razlike grupišu u više celina (klastera). Unutar svakog klastera su

distance izmeĎu vektora razlika dosta manje nego distance izmeĎu vektora razlika iz

različitih klastera. Tako su na primer relacije izmeĎu parova relacije hiponimije koji opisuju

odnose izmeĎu životinja u jednom klasteru, a parovi koji opisuju relacije izmeĎu zanimanja

ljudi u drugom klasteru.

Kako su razlike pogodne za klasterizaciju, sasvim prirodno se nameće rešenje da se

svi parovi podele po klasterima na osnovu svojih razlika, pa da se kasnije unutar svakog

klastera uči preslikavanje koje će hiponim da slika u njegov hiperonim. U ovom radu je za

klasterizaciju korišćen K-Means algoritam. On u sebi sadrži broj klastera kao parametar, a o

samom izboru tog broja, biće nešto više reči u sledećem poglavlju.

U ovom radu, korpus koji je korišćen za treniranje je preuzet iz WordNet-a. Sam

WordNet je u obliku stabla, pa svaka reč ima jedinstven hiperonim. Kada ovo ne bi bio

slučaj, parovi koji sadrže isti hiponim, a različite hiperonime, morali bi da budu u različitim

klasterima. To je zbog činjenice da nije moguće napraviti preslikavanje koje ce jednu reč da

slika u dve različite reči, a da to radi prilično dobro. Kada su takvi parovi u različitim

klasterima, u svakom klasteru će preslikavanje za dati hiponim imati jedinstven hiperonim, pa

je lakše napraviti da ono radi dobro. U slučaju da reči sadrže više hiperonima, najlakši način

Page 29: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

28

da se kreiraju klasteri je da se prvo naĎe najveći broj hiperonima za neku reč, i da se kreira

toliko klastera. Sada redom treba proći kroz sve parove reči, i ubaciti ih u prvi klaster čiji

nijedan par ne sadrži hiponim koji je jednak hiponimu datog para. Na kraju treba odraditi

klasterizaciju u svakom od formiranih klastera, i sve novodobijene klastere posmatrati kao

skup klastera u kojima se nalaze svi parovi reči iz korpusa za treniranje.

4.2.4. Učenje projekcija

Svaki klaster sadrži izvestan broj parova reči, koje obrazuju relaciju hiponimije. Cilj

koji u ovom delu treba postići je kreiranje preslikavanja, koje će dobro preslikavati hiponim u

hiperonim svakog para, ali isto tako da to radi prilično dobro za neke nove parove koji

pripadaju relaciji.

Ovde će biti predstavljena dva modela za kreiranje preslikavanja. Jedan će biti

linearan pomoću matrice preslikavanja, a drugi nelinearan pomoću neuronskih mreža. U

sledećem poglavlju će biti testirani ovi modeli i tu se može videti ko je dao kakve rezultate. U

nastavku će biti prikazan i jedan i drugi model, sa nešto opširnijim objašnjenjem kakve su

strukture i na koji način su istrenirani.

Linearni model

Kod ovog pristupa uvodi se pretpostavka da postoji linearno preslikavanje Φ,

tako da za vektor hiponima 𝑥 i vektor njegovog hiperonima 𝑦 važi Φ𝑥 = 𝑦.

Simbolom Φ je predstavljena matrica projekcije. Kako se za svaki klaster kreira

posebna projekcija, broj ovakvih projekcija biće jednak broju klastera. Neka je sa Φ𝑘

označena projekcija na klasteru 𝐶𝑘 . Matrice Φ𝑘 su kvadratne matrice čije su dimenzije

jednake dimenziji prostora u kome su reči predstavljene. Da bi se ovakva matrica

koristila za procenu vrednosti hiperomina nekih novih reči, potrebno je da se istrenira,

tako da daje dobre rezultate na parovima iz svog klastera. Za treniranje ovih matrica

korišćena je metoda minimizacije sledeće funkcije:

1

𝑁𝑘 Φ𝑘𝑥 − 𝑦 2

(𝑥 ,𝑦)∈𝐶𝑘 .

Minimizacija se vrši po matrici Φ𝑘 , odnosno po svim poljima te matrice.

Simbol 𝑁𝑘 predstavlja broj elemenata u 𝑘-tom klasteru. Za nalaženje minimizacije je

korišćen stohastički gradijentni spust. Razlog zašto je izabran ovaj algoritam leži pre

svega u brzini treniranja i jednostavnosti implementacije. Kada se malo bolje sagleda,

ovaj metod nije ništa drugo nego klasičan problem linearne regresije. Jedina razlika je

u tome što je ovde izlaz višedimenzionalan. Zbog te razlike, umesto vektora

parametara koje treba istrenirati, imamo matricu parametara.

Nelinearni model

Ovaj model pretpostavlja da su veze izmeĎu vektorske reprezentacije

hiponima i vektorske reprezentacije hiperonima nelinearne. Da bi se prepoznale

ovakve veze, koriste se neuronske mreže. O samim neuronskim mrežama, i njihivom

Page 30: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

29

treniranju, bilo je više reči u drugom poglavlju.

Arhitektura neuronske mreže koja je korišćena je sačinjena iz tri sloja. Prvi

sloj je ulazni sloj, a broj neurona u ulaznom sloju jednak je dimenziji vektorskog

prostora u kome su reči predstavljene. Sledeći sloj je skriveni sloj. Dimenzija ovog

sloja može da varira, a nešto više o tome biće u sledećem poglavlju. Ovaj sloj neurona

nije linearan, a aktivaciona funkcija koja je korišćena je hiperbolički tangens. Zadnji

sloj neurona je izlazni sloj, koji je sačinjen od linearnih neurona. Neuronska mreža je

trenirana RPROP (skraćeno od eng. resilient backpropagation) algoritmom. Na slici

iznad je dat grafički prikaz arhitekture mreže.

4.2.5. Identifikacija relacije hiponimije

Nakon što smo podelili parove reči u klastere i kreirali odgovarajuće projekcije u

svakom od klastera, poslednja stvar koju treba da uradimo je da proverimo da li dve reči

obrazuju hiponim-hiperonim par. Ukoliko su date reči 𝑥 i 𝑦, način na koji se proverava da li

je reč 𝑦 hiperonim reči 𝑥 je sledeći:

Najpre treba dobiti vektore 𝑥′ i 𝑦′ , koji predstavljaju vektorske reprezentacije reči 𝑥 i

𝑦 redom.

Neka je 𝑑 razlika vektora 𝑦′ i 𝑥′ (𝑑 = 𝑦′ − 𝑥′ ). Sada treba pronaći, meĎu svim

klasterima, klaster čiji je vektor centara najbliži vektoru 𝑑. Označimo naĎeni klaster

sa 𝐶𝑘 .

Neka je 𝑃𝑘 projekcija koja odgovara klasteru 𝐶𝑘 . Koristeći datu projekciju nad

vektorom 𝑥′ , dobijamo vektor 𝑦′′ .

Vektor 𝑦′′ bi trebalo da bude sličan kao vektor 𝑦′ , ukoliko reči 𝑥 i 𝑦 obrazuju

hiponim-hiperonim par. Zato se provera da li reči pripadaju relaciji, vrši tako što se

proverava da li je 𝑦′′ − 𝑦′ < 𝛿 , gde je 𝛿 neki mali broj veći od nule.

Page 31: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

30

U zadnjem koraku je za procenu sličnosti izmeĎu dva vektora korišćeno Euklidsko

rastojanje. Često se kod problema procesiranja govornog jezika koristi i kosinusna sličnost.

Kada su data dva vektora 𝑥 i 𝑦, ona se dobija na sledeći način:

𝑠𝑖𝑚(𝑥,𝑦) = cos 𝜃 = x, y

x y

Sa x, y je označen skalarni proizvod izmeĎu vektora 𝑥 i 𝑦, a sa 𝜃 ugao izmeĎu ova dva

vektora. Sada se za odreĎivanje da li su dva vektora slična proverava da li im je kosinusna

sličnost (𝑠𝑖𝑚(𝑥,𝑦)) veća od neke unapred zadate granice (granica mora da bude manja od 1).

Vektorske reprezentacije reči koje su korišćene u ovom radu su pre samog korišćenja

prvo normirane. Kada se radi sa normiranim vektorima, sa povećanjem Euklidsnog rastojanja

izmeĎu vektora, smanjuje se kosinusna sličnost. Zbog ove osobine, korišćenje i jednog i

drugog načina provere daje iste rezultate.

Page 32: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

31

5. Implementacija i testiranje

5.1. WordNet

WordNet je velika leksička baza engleskog jezika. Kreirana je 1985. godine na

univerzitetu Prinston, pod direkcijom profesora psihologije, Džordža Milera. Razvoj same

baze je i dalje u toku.

Imenice, glagoli, pridevi i prilozi su u WordNet-u grupisani u skupove reči koje su

sininimi. Sinonimi su reči sa istim značenjem. Primeri takvih reči su "car" i "automobile",

"shut" i "close" itd. Pored toga što sadrži skupove sinonima, on sadrži i semantičke relacije

meĎu njima. Skupovi sinonima se čuvaju u obliku stabla. Svaki čvor stabla predstavlja skup

reči sa istim značenjem. Ako je čvor (skup) 𝐴 otac čvoru (skupu) 𝐵, to znači da je svaka reč

iz skupa 𝐴 hiperonim svake reči iz skupa 𝐵.

Sam cilj pri kreiranju vektorskih reprezentacija reči je da reči sa sličnim značenjem

imaju slične vektorske reprezentacije. Kako mi radimo samo sa vektorskim reprezentacijama

reči, nama su sve reči iz jednog skupa sinonima slične. Zato možemo da posmatramo svaki

skup kao jednu reč. Sledi prikaz hijerarhije iz WordNeta:

Kao što vidimo sa slike, neki elementi WordNeta su fraze sačinjene od više reči, a

neki veoma retke reči. Korpus za treniranje je kreiran na osnovu ove hijerarhije, tako što su

relacije otac-sin u korpusu ubačene kao relacije hiperonim-hiponim. Pri kreiranju samog

korpusa, svi parovi reči (ili fraza) gde se bar jedan član para ne nalazi u skinutim bazama

istreniranih reči su ignorisani.

Što se obima WordNet-a tiče, trenutna verzija baze sadrži 155 287 reči. Te reči su

podeljene na 117 659 skupova reči sa istim značenjem. Kompresovana verzija cele baze

zauzima oko 12 megabajta prostora na računaru.

Page 33: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

32

5.2. Korišćeni alati

5.2.1. PyCharm

PyCharm je razvojno okruženje za kreiranje softvera u programskom jeziku Python.

Razvijeno je od strane češke kompanije JetBrains. Inicijalna verzija okruženja je objavljena

2010. godine, ali je njegov razvoj i dalje u toku. Od oktobra 2013. godine, pored

komercijalne verzije, pojavila se i besplatna verzija aplikacije, koja može da se koristi u

naučne ili bilo koje druge nekomercijalne svrhe.

Python je jedan od najpopularnijih jezika uopšte u računarstvu. Što se tiče rada sa

podacima, on i R su daleko najkorišćeniji jezici. Pored toga, on se koristi i za mnoge druge

oblasti softverske industrije, kao što su kreiranje internet stranica, desktop aplikacija, itd. U

ovom radu je u Python-u pisan kod za čitanje podataka iz WordNet-a, i kreiranje korpusa.

Tom prilikom je korišćena biblioteka NLTK, koja lako može da se doda u PyCharm

okruženje. Nešto više o ovoj biblioteci biće rečeno kasnije.

5.2.2. Eclipse

Eclipse je jedno od najpopulatnijih okruženja za pisanje koda u Java programskom

jeziku. Veoma je fleksibilno, pa se uz instaliranje odgovarajućih dodataka može dobiti

okruženje za razvoj internet stranica, desktop aplikacija, mobilnih aplikacija itd. Kreirano je

davne 2001. godine, ali se na njegovom razvoju i dalje radi.

Kako je Java jedan od omiljenih programskih jezika autora, veći deo koda koji je

korišćen u radu je pisan u njemu. Tačnije, jedini deo koji nije pisan u javi je deo za kreiranje

korpusa. Ceo sistem koji uči kako da prepozna relaciju hiponimije je pisan u Javi.

5.2.3. NLTK

NLTK (skraćeno od engl. Natural Language Toolkit) je vodeća platforma za kreiranje

Python programa za rad sa podacima govornog jezika. Ona omogućava pristup podacima iz

WordNet-a na veoma jednostavan način. Početna verzija platforme je kreirana 2001. godine

na univerzitetu u Pensilvaniji.

U ovom radu ova biblioteka je korišćena za kreiranje korpusa iz WordNet-a. Sledi

pregled najosnovnijih metoda ove biblioteke, koji su korišćeni u radu:

Pre svega, treba učitati WordNet. To se postiže sledećom naredbom: from nltk.corpus import wordnet as wn

Za dobijanje liste svih skupova sinonima, koristi se naredba: wn.all_synsets()

Page 34: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

33

Da se od supa sinonima 𝑠𝑦𝑛𝑠𝑒𝑡, dobije lista skupova sinonima koji su hiponimi datog skupa

sinonima, koristi se naredba: synset.hyponyms()

5.3. Testiranje

5.3.1. Korpus

Za treniranje sistema za detekciju hijerarhijskih relacija je potreban korpus parova

koji pripadaju datoj relaciji, bez obzira da li se radi o linearnom ili nelinearnom modelu.

Parovi koji pripadaju relaciju su dobijeni iz WordNet-a. Kako se neki predstavnici skupa

sinonima ne nalaze u bazi istreniranih reči, parovi koji ih sadrže su zanemareni. Za treniranje

modela je korišćen korpus od 20 110 parova engleskih reči koje pripadaju relaciji.

Ostali deo parova iz WordNet-a je korišćen za korpuse koji služe za validaciju i

testiranje. MeĎutim, ovi korpusi sadrže i negativne primere (primere parova koji ne obrazuju

relaciju). Ovi primeri su dobijeni izborom proizvoljnih parova reči koje nisu u hijerarhijskom

odnosu u WordNet-u. Korpus za validaciju ima 6 350 primera (pozitivnih i negativnih

zajedno), a korpus za testiranje ima 12 700 primera.

Test za validaciju je neophodan radi podešavanja parametara.Tu se pre svega misli na

regularizacionu konstantu, dozvoljeno odstupanje prilikom detekcije, dužinu treniranja, itd.

5.3.2. Testiranje linearnog modela

U ovom delu su prikazani rezultati testiranja linearnog modela u zavisnosti od broja

klastera. Sam model zavisi isključivo od matrica koje transformišu ulazne vektore u njihove

hiperonime. Rezultati koji su dobijeni prilikom testiranja su prikazani u sledećoj tabeli:

Broj klastera Tačnost (%) Odaziv (%) F-Skor (%)

1 65.45 61.80 63.57

3 66.74 62.96 64.79

5 65.67 61.80 63.68

10 64.54 59.65 62.00

20 64.36 59.20 61.67

5.3.3. Testiranje nelinearnog modela

Nelinearni model pored samog broja klastera zavisi i od broja neurona u skrivenom

sloju. Ideja je bila da taj broj ne bude previše veliki da mreža ne bi samo zapamtila podatke iz

skupa za treniranje, nego i naučila nešto iz njih. Još jedan od faktora je i sama brzina

Page 35: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

34

treniranja. Ulazni i izlazni sloj su dimenzije 300, što je ujedno i dimenzija prostora u kome se

vektori reči nalaze. Rezultati testiranja su dati u sledećoj tabeli:

Broj klastera, broj neurona

u skrivenom sloju

Tačnost (%) Odaziv (%) F-Skor (%)

10, 20 57.07 50.91 53.81

50, 20 60.39 53.15 56.54

100, 20 60.50 53.62 56.85

10, 40 58.56 53.47 55.90

50, 40 60.49 55.98 58.15

100, 40 60.93 60.66 60.80

150, 40 61.42 62.30 61.86

200, 40 60.61 61.26 60.93

Algoritam je prilikom podele na veći broj klastera od 150 počeo da daje slabije

rezultate. Najverovatniji razlog tome je ulazak u lokalni minimum prilikom treniranja, ali sam

problem treba dodatno istražiti.

Page 36: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

35

6. Zaključak

U ovom radu je predstavljen i implementiran sistem za detekciju hijerarhijskih

relacija meĎu rečima. Cilj je bio da se testira koliko aktuelni modeli vektorskih reprezentacija

reči mogu da pomognu u rešavanju ovog problema. Implementacija je izvršena u

programskom jeziku Java, bez korišćenja dodatnih biblioteka. Program za izvršenje ne koristi

grafički procesor, a na računaru na kome je testiran, moguće je pokretanje 8 tredova

odjednom.

Za rešavanje ovog problema, predstavljena su dva modela. Oba su bazirana na proceni

vektorske reprezentacije hiperonima za datu reč. Jedan za tu procenu koristi linearnu, a drugi

nelinearnu transformaciju. Prednost ovakvog pristupa je u činjenici da ukoliko bi se ovaj

model usavršio, sistem bi mogao pored provere da li par obrazuje relaciju, da odreĎuje i ko je

direktni hiperonim za datu reč.

Na kraju rada su predstavljeni rezultati testiranja. Linearni model se pokazao kao bolji

u rešavanju ovog problema. Model sa 3 klastera je dostigao F-Skor od 64.79%. Rezultati su

dobri, s obzirom na težinu samog problema. U velikom broju slučajeva ni čovek ne može da

proceni da li su dve reči u relaciji hiponimije ili su sinonimi. TakoĎe je teško proceniti ko je

direktni hiperonim za datu reč, a ko hiperonim na nekom višem nivou.

Za dalje istraživanje se može probati treniranje ovih modela na većim korpusima.

TakoĎe, mogli bi da se probaju i korpusi koji sadrže više hiperonima za datu reč. Na taj način

bi sistem mogao da nauči i neke dublje hijerarhijske relacije meĎu rečima. Što se samih

modela tiče, trebalo bi eksperimentisati i sa samom dimenzijom vektorskog prostora u kome

su reči predstavljene, kao i sa nekim većim neuronskim mrežama.

Page 37: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

36

Literatura

[1] Fu, Ruiji, Jiang Guo, Bing Qin, Wanxiang Che, Haifeng Wang, and Ting Liu.

"Learning Semantic Hierarchies via Word Embeddings." In ACL (1), pp. 1199-1209.

2014.

[2] Nayak, Neha. "Learning Hypernymy over Word Embeddings."

[3] Mikolov, T., Sutskever, I., Chen, K., Corrado, G. S., & Dean, J. (2013). Distributed

representations of words and phrases and their compositionality. In Advances in

neural information processing systems (pp. 3111-3119).

[4] Mikolov, T., Chen, K., Corrado, G., & Dean, J. (2013). Efficient estimation of word

representations in vector space. arXiv preprint arXiv:1301.3781.

[5] Rong, Xin. "word2vec parameter learning explained." arXiv preprint

arXiv:1411.2738 (2014).

[6] Bottou, L. (2012). Stochastic gradient descent tricks. In Neural Networks: Tricks of

the Trade (pp. 421-436). Springer Berlin Heidelberg.

[7] LeCun, Yann A., Léon Bottou, Genevieve B. Orr, and Klaus-Robert Müller.

"Efficient backprop." In Neural networks: Tricks of the trade, pp. 9-48. Springer

Berlin Heidelberg, 2012.

[8] Riedmiller, Martin, and Heinrich Braun. "A direct adaptive method for faster

backpropagation learning: The RPROP algorithm." Neural Networks, 1993., IEEE

International Conference On. IEEE, 1993.

[9] Miller, George A. "WordNet: a lexical database for English." Communications of the

ACM 38.11 (1995): 39-41.

[10] Sang, Erik Tjong Kim. "Extracting hypernym pairs from the web."Proceedings of the

45th Annual Meeting of the ACL on Interactive Poster Poster and Demonstration

Sessions. Association for Computational Linguistics, 2007.

[11] Snow, Rion, Daniel Jurafsky, and Andrew Y. Ng. "Learning syntactic patterns for

automatic hypernym discovery." Advances in Neural Information Processing Systems

17 (2004).

[12] Goldberg, Yoav, and Omer Levy. "word2vec Explained: deriving Mikolov et al.'s

negative-sampling word-embedding method." arXiv preprint arXiv:1402.3722 (2014).

Page 38: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

37

Biografija

Nikola Stevanović je roĎen 17.08.1992. godine u Nišu. Završio je osnovnu školu Ivo

Andrić kao nosilac Vukove diplome i Ďak generacije. Nakon toga je završio Specijalizovano

odeljenje za učenike sa posebnim sposobnostima za matematiku u Gimnaziji Svetozar

Marković u Nišu, takoĎe kao nosilac Vukove diplome.

U 2011. godini je paralelno upisao osnovne studije iz matematike i iz informatike na

Prirodno-matematičkom fakultetu u Nišu. Obe je završio 2014. godine, studije iz matematike

sa prosečnom ocenom 9,92, a studije iz informatike sa prosečnom ocenom 10,00. Iste godine

je upisao master akademske studije na Departmanu za računarske nauke, Prirodno-

matematičkog fakulteta u Nišu, na studijskom programu razvoj softvera. Master akademske

studije je završio 2016. godine sa prosečnom ocenom 10,00.

Tokom osnovnog i srednjeg obrazovanja se veoma uspešno takmičio iz oblasti

matematike, informatike i fizike. Iz tih oblasti je osvojio veliki broj nagrada na takmičenjima

opštinskog, okružnog i republičkog nivoa. MeĎu njima se izdvajaju treća nagrada na

republičnom takmičenju iz matematike, treća nagrada na republičkom takmičenju iz fizike i

dve druge nagrade na republičkim takmičenjima iz informatike. Učestvovao je na dve Srpske

Informatičke Olimpijade, kao i na dva finala Bubble Cup takmičenja. Tokom studija je dve

godine učestvovao na takmičenju ACM Programming Contest.

NagraĎen je od strane Univerziteta u Nišu kao najbolji student koji je završio osnovne

akademske studije Univerziteta u Nišu u školskoj 2013/2014. godini.

Page 39: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

Прилог 5/1

ПРИРОДНO - MАТЕМАТИЧКИ ФАКУЛТЕТ

НИШ

КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА

Редни број, РБР:

Идентификациони број, ИБР:

Тип документације, ТД: монографска

Тип записа, ТЗ: текстуални / графички

Врста рада, ВР: мастер рад

Аутор, АУ: Никола Стевановић

Ментор, МН: Бранимир Тодоровић

Наслов рада, НР: ПРЕПОЗНАВАЊЕ ХИЈЕРАРХИЈСКИХ РЕЛАЦИЈА У

ВЕКТОРСКОМ ПРОСТОРУ РЕПРЕЗЕНТАЦИЈА РЕЧИ

Језик публикације, ЈП: српски

Језик извода, ЈИ: енглески

Земља публиковања, ЗП: Р. Србија

Уже географско подручје, УГП: Р. Србија

Година, ГО: 2016

Издавач, ИЗ: ауторски репринт

Место и адреса, МА: Ниш, Вишеградска 33.

Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога)

38 стр. ; граф. прикази

Научна област, НО: Рачунарске науке

Научна дисциплина, НД: Машинско учење

Предметна одредница/Кључне речи, ПО: Процесиранје говорног језика, Векторска уградња речи

УДК 004.8 004.89

Чува се, ЧУ: библиотека

Важна напомена, ВН:

Извод, ИЗ: Векторска уградња речи је показала добре резултате у детекцији лексичких релација. У овом раду се помоћу векторске уградње речи детектују хијерархијски односи међу речима. Представљена су два метода. Оба деле примере у неколико кластера, а затим у сваком кластеру креирају трансформацију између хипонима и њихових хиперонима. Први метод користи линеарну, а други нелинеарну трансформацију. На крају, алгоритам користи ове трансформације за детекцију нових хипоним-хипероним парова.

Датум прихватања теме, ДП: 27.09.2016.

Датум одбране, ДО:

Чланови комисије, КО: Председник:

Page 40: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

Q4.16.01 - Izdawe 1

Члан:

Члан, ментор:

Образац Q4.09.13 - Издање 1

Page 41: Master rad - pmf.ni.ac.rsunarske... · na kraju ovog poglavlja prikazane tehnike za ubrzavanje samog procesa treniranja. U četvrtom poglavlju je opisan algoritam za detekciju hijerarhijskih

Прилог 5/2

ПРИРОДНО - МАТЕМАТИЧКИ ФАКУЛТЕТ

НИШ

KEY WORDS DOCUMENTATION

Accession number, ANO:

Identification number, INO:

Document type, DT: monograph

Type of record, TR: textual / graphic

Contents code, CC: university degree thesis (master thesis)

Author, AU: Nikola Stevanović

Mentor, MN: Branimir Todorović

Title, TI: HIERARCHICAL RELATION EXTRACTION IN WORD VECTOR SPACE

Language of text, LT: Serbian

Language of abstract, LA: English

Country of publication, CP: Republic of Serbia

Locality of publication, LP: Serbia

Publication year, PY: 2016

Publisher, PB: author’s reprint

Publication place, PP: Niš, Višegradska 33.

Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes)

38 p. ; graphic representations

Scientific field, SF: Computer Science

Scientific discipline, SD: Machine Learning

Subject/Key words, S/KW: Natural Language Processing, Word Embeddings

UC 004.8 004.89

Holding data, HD: library

Note, N:

Abstract, AB: Word embeddings have shown good results in detecting lexical relations. In this thesis, we are using word embeddings to detect hierarchical relations between words. We are presenting two methods. Both of them divide training samples in several clusters, and then create transformation between hyponyms and their hypernyms in every cluster. The first method creates linear transformation, and the second method creates nonlinear transformation. In the end, the algorithm uses these transformations to detect new hyponym-hypernym pairs.

Accepted by the Scientific Board on, ASB: 27.09.2016.

Defended on, DE:

Defended Board, DB: President:

Member:

Member, Mentor:

Образац Q4.09.13 - Издање 1