Eksponentna rast korporativnih podatkov zahteva učinkovito upravljanje in analizo. Programska oprema kot storitev (angl. Software as a Service, v nadaljevanju SaaS) igra ključno vlogo v sodobnem poslovanju. Vendar pa natančno razpoznavanje uporabe SaaS v obsežnih tokovih podatkov ostaja izziv. Ta diplomska naloga raziskuje učinkovitost različnih pristopov strojnega učenja za razvoj binarnega klasifikatorja, ki lahko razlikuje med SaaS in ne-SaaS prometom zgolj na podlagi besedilnih podatkovnih nizov.
Povečanje obsega velikih podatkov znotraj organizacij prinaša tako priložnosti kot izzive. Medtem ko lahko iz teh podatkov pridobimo dragocene vpoglede, so za luščenje smiselnih informacij potrebni robustni postopki. SaaS storitve so zaradi svoje inherentne skalabilnosti in enostavne uporabe postale prednostna izbira za mnoge poslovne funkcije.
Naloga predlaga nov pristop k razpoznavanju SaaS storitev iz tekstovnih podatkovnih nizov z uporabo postopkov strojnega učenja. V nalogi raziščemo učinkovitost več dobro uveljavljenih algoritmov, vključno z postopkom naivnega Bayesa, metodo podpornih vektorjev in najsodobnejšimi transformerji, kot so RoBERTa, XLM-RoBERTa in nedavno predstavljeni GPT-4. Ti modeli so usposobljeni na skrbno pripravljenem naboru podatkov, ki vsebuje označene besedilne nize, ki predstavljajo SaaS in ne-SaaS promet.
Najprej smo pregledali obstoječo literaturo in preverili, ali že obstajajo podobne rešitve za podan problem. Med iskanjem sorodnih projektov in rešitev, ki na nek način vsebujejo razvrščanje, oziroma razlikovanje med SaaS in ne-SaaS storitve, smo hitro ugotovili unikatnost našega problema. Medtem ko obstaja veliko študij in orodij za razpoznavanje in priporočanje oblačnih storitev na podlagi potreb strank, se te rešitve večinoma osredotočajo na usmerjanje podjetij pri izbiri ustreznih SaaS storitev iz široke ponudbe na trgu. Vendar pa ne obravnavajo specifičnega izziva, s katerim se ukvarjamo mi – razlikovanje med SaaS in ne-SaaS prometom v podatkovnih tokovih za storitve, ki so že v uporabi znotraj organizacije. Razvoj takšne rešitve bo omogočilo boljše upravljanje podatkov, optimizirano licenciranje in izboljšane varnostne ukrepe. Na ta način bomo organizacijam omogočili boljše razumevanje njihove trenutne SaaS infrastrukture in uporabe, kar bo vodilo do učinkovitejših poslovnih odločitev in konkurenčne prednosti.
V diplomski nalogi opišemo uporabljeno metodologijo ter mere uspešnosti, ki jih uporabljamo za iskanje najučinkovitejšega pristopa za našo klasifikacijo. Predstavljamo sestavljen nabor podatkov, vključno z njegovo kompleksnostjo in težavami, s katerimi se soočamo. V naboru podatkov, ki vsebuje veliko šuma in včasih nerazumljivih delov, posebej poudarjamo potrebo po predobdelavi oziroma čiščenju besedilnih nizov, kar vključuje odstranjevanje ločil, nealfanumeričnih simbolov in vzorcev, ki ne prinašajo prave vrednosti za naše raziskovanje. Prav tako izpostavljamo pomen vektorizacije, s katero besedilne nize pretvorimo v obliko, ki jo računalnik lahko razume in obdeluje. Vektorizacija omogoča, da besedila predstavimo kot številčne vrednosti, kar je ključno za uporabo metod strojnega učenja pri klasifikaciji podatkov.
Predstavjamo več metod, ki so široko uporabljene za klasifikacijo besedil. Te vključujejo preproste matematične in statistične modele kot tudi bolj kompleksne modele, imenovane Veliki Jezikovni Modeli, ki temeljijo na arhitekturi modela transformerja, ki omogoča učinkovito obdelavo in razumevanje naravnega jezika. Naš cilj je testirati te metode, in ugotoviti, kateri pristop je najbolj primeren za natančno razpoznavanje SaaS v podatkovnih tokovih. S tem celovitim pristopom želimo zagotoviti, da bo naš razvrščevalnik čim bolj robusten in zanesljiv.
Prvi korak po predobdelavi in vektorizaciji je razdelitev nabora podatkov na učni in testni del v razmerju 80/20. Učni nabor, ki predstavlja 80% podatkov, je uporabljen za treniranje modelov strojnega učenja, medtem ko je testni nabor, ki predstavlja preostalih 20%, uporabljen za ocenjevanje njihove učinkovitosti. Uporabili smo tudi metodo navzkrižne validacije (angl. cross validation), kjer bomo nabor podatkov razdelili na več podnaborov, v našem primeru 10. Model bomo trenirali večkrat, vsakič z drugačnim podnaborom kot testnim delom, kar bo omogočilo robustnejšo oceno učinkovitosti modela in zmanjšalo možnost prekomernega prileganja (angl. overfitting). Namesto navzkrižne validacije, pri Velikih Jezikovnih Modelih uporabljamo epohe, pri čemer vsaka epoha uporabi premešano različico nabora podatkov. To pomeni, da je med vsako epoho model treniran na celotnem učnem naboru podatkov, vendar z različnim vrstnim redom paketov (angl. batches). Ta pristop nam omogoča oceno učinkovitosti modela na različnih delih podatkov in zmanjšuje tveganje, da bi se model prilegal le določenemu podnaboru. Rezultati med različnimi epohami nam omogočajo spremljanje napredka modela in prilagajanje hiperparametrov za izboljšanje njegove uspešnosti. Poleg tega še vedno uporabljamo metodo validacije, da ocenimo končno učinkovitost modela na testnem naboru podatkov.
Prav tako analiziramo verjetnosti za vsak klasificiran vzorec, da bi ugotovili, kje določen model naleti na težave pri klasifikaciji.
Za ocenjevanje uspešnosti modelov uporabljamo različne kazalnike uspešnosti, kot so natančnost (angl. accuracy), konfuzijske matrike (angl. confusion matrices), Matthewsov korelacijski koeficient (MCC) in površina pod krivuljo ROC (ROC AUC). Kazalniki uspešnosti nam omogočajo celovit vpogled v delovanje modelov in primerjavo njihovih rezultatov. S primerjavo teh metrik bomo lahko določili, kateri model je najbolj primeren za natančno klasifikacijo SaaS in ne-SaaS podatkovnih nizov.
Skozi testiranje in ovrednotenje želimo ugotoviti optimalen pristop za klasifikacijo SaaS storitev. Naše preliminarne raziskave kažejo obetavne rezultate, saj nekateri modeli izjemno dobro razlikujejo med SaaS in ne-SaaS podatkovnimi nizi. Ta raziskava ima potencial znatno izboljšati vidnost uporabe SaaS v organizacijah, kar vodi do boljšega upravljanja podatkov, optimiziranih licenčnih praks in izboljšanih varnostnih ukrepov.
S uspešnim razvojem robustnega in učinkovitega binarnega klasifikatorja bo ta naloga prispevala k napredku razpoznavanja SaaS storitev in hkrati zmanjšala odvisnost od človeškega posredovanja, ki je bilo doslej potrebno. Pridobljeni vpogledi bodo organizacijam omogočili, da v celoti izkoristijo svoj SaaS ekosistem, kar bo posledično vodilo k boljšemu odločanju in konkurenčni prednosti.
|