Locked History Actions

Bayesian filter

  • ĮŽANGA

Masinės nepageidaujamos reklaminės medžiagos siuntimo priemonės pradėtos naudoti žymiai anksčiau nei atsirado bei paplito el. komunikacija. Prekybos agentai, galintys pasiekti daugelį asmenų, esančių tam tikroje vietovėje, įprastu paštu siunčiami lankstinukai, skelbimai ant transporto priemonių, sienų, ir rinkimų reklamos, kita informacija prisidėjo prie „informacinio šiukšlinimo“ (informacinio šlamšto platinimo). Pirmą karta komercinė reklama internete panaudota 1994 m. – imigracinės („žaliųjų kortelių“) populiarinimas Usenet naujienų grupėse. Vėliau panašios reklamos ėmė plisti el. paštu. Daugelyje šalių įvedus įstatymus, ribojančius nepageidautiną reklamą, kovojant prieš tokias reklamas Interneto tiekėjams, e. šlamšto siuntėjai reklamoms persiuntinėti ėmė naudoti Trojos arklius bei virusus. Elektroninis paštas yra puiki priemonė šlamštlaiškiams platinti. Žinučių pristatymas yra pigus, paslauga naudojasi itin daug žmonių, daug e. pašto adresų galima surinkti automatiniais būdais (adresai skelbiami žiniatinklio puslapiuose, susirašinėjimo sąrašų archyvuose, naujienų grupėse ir t. t.), e. pašto sistema yra decentralizuota (dėl to sunkiau iš karto pastebėti naujo tipo spamą statistiniais metodais). Dėl to el. pašto šiukšlinimas ir yra labiausiai paplitęs. E. pašto šiukšlinimui gali būti naudojamos labai skirtingos technologijos: nuo primityvių, kai gavėjų sąrašas tiesiog įrašomas į standartinės el. pašto programos gavėjų lauką iki sudėtingų sistemų, nesankcionuotai panaudojančių nekorektiškai administruojamų el. pašto, adresų nukreipimo (SOCKS), proxy serverius, Trojos arkliais ar sistemų pažeidžiamumui platinamais botais ir pan. E. šlamšto siuntėjui informacijos platinimas praktiškai nieko nekainuoja, tačiau šlamšto gavėjai patiria žalą. Dideli jų srautai ne tik mažina tinklų pralaidumą, bet pašto gavėjui tenka gaišti laiką, rūšiuojant korespondenciją. Nepageidaujamo e. pašto žinutės šiuo metu sudaro didesniąją dalį e. pašto srauto.

  • 2004 m. e. pašto šlamšto srautas vidutiniškai sudarė 74 % viso laiškų srauto, pirmaisiais 2005 m. mėnesiais šis skaičius priartėjo prie 83 % (duomenys gauti išanalizavus daugiau kaip 900 mln. e. pašto laiškų.

Egzistuoja daug būdu kaip svetainės lankytojo, elektroninio pašto savininko neįtraukti į kovą tarp „robotų“ (BOT‘ų) ir sistemos programuotojų:

  • Captcha kodas; Blokavimas pagal žodį ar jo kaukę; Alternatyvus medaus puodynių (angl. honeypot) metodas; Minimalus formos užpildymo laikas; Kodo obfuskacija arba šifravimas; Dinaminis formos kūrimas ir t.t.

Na o šiame darbe aš aprašysiu Bajeso statistikos (teoremos) panaudojimą spam filtruose.

  • BAJESO TEOREMA

Angliškai "Bayesian Inference", statistikos kryptis, pavadinta Tomo Bajeso garbei. Statistiniai metodai pagal tikimybės interpretaciją gali būti skirstomi į dvi rūšis: klasikiniai ir Bajeso. Klasikinė statistika, tai ta, paremta Didžiausio tikėtinumo metodu "maximum likelihood", mokoma visose mokyklose ir universitetuose (Lietuvoje). Bajeso statistika, paremta Bajeso teorema, mokoma jau gerai žinant klasikinę statistiką, universitetuose su stipriomis matematikos ir statistikos katedromis, yra tarsi alternatyva klasikinei statistikai. Bajeso teorema – tikimybių teorijos teorema, kuri nustato įvykio tikimybe, kai stebint žinoma tik dalis informacijos apie įvykius. Kitaip tariant, pagal Tomą Bajesą galima daug tiksliau nustatyti tikimybe, imant iš anksto žinoma informacija ir naujų stebėjimų duomenis. Bajeso teoremos matematinė formuluotė atrodo taip:

Pr⁡(A|B)=(Pr⁡(B|A)Pr⁡(A))/Pr⁡〖(B)〗 ;

  • Pr⁡(A)– apriorinė A hipotezės tikimybė;

Pr⁡(A|B) – A hipotezės tikimybė, atsirandant B įvykiui (aposteriorinė tikimybė); Pr⁡(B|A) – įvykio B atsiradimo tikimybė esant teisingai A hipotezei; Pr⁡〖(B)〗 – įvykio B tikimybė.

  • BAJESO TEOREMOS PRITAIKYMAS KOVAI SU SPAM, BAJESO FILTRAS

Pirmoji žinoma programa filtruojanti e – paštą, naudojant Bajeso teoremą (filtrą), buvo iFile išleista 1996 metais. Programa sulaukė daug kritikos ir netapo populiari, bei naudojama. Nežiūrint į tai 2002 metais Paul Graham ištobulino šį filtravimo būdą iki tokio lygio, kad Bajeso filtras galėjo būti naudojamas kaip vienintelis filtras spam‘o filtravimui. Šiuo metu dauguma pašto klientų naudoja Bajeso filtrus. Pašto serveriuose naudojami filtrai, tokie kaip DSPAM, SpamAssassin, SpamBayes, SpamProbe, Bogofilter. Kaip veikia Bajeso filtras? Filtras nuskaito kiekvieno gautame laiške žodžio „svorį“ (žodžio ilgį, simbolius ir t.t) įrašo jį į duomenų bazę. Egzistuoja ir sudėtingesnės sistemos, kurios žodžius verčia į bendrines žodžių formas, pašalina tarnybinius žodžius, nuskaito visos frazės „svorį“, visa tai yra įrašoma į duomenų bazę. Pakartotinai gavus laišką, spam‘o hipotezės tikimybė tikrinama pagal Bajaso formulę:

P(A_i) – hipotezės tikimybė; N_(〖word〗_i ) – naujo laiško žodžio „svoris“; N_(words total) – žodžių svoris iš duomenų bazės. Žodžio priskyrimas spam‘ui įvyksta jei P(A_i) reikšmė viršija užduotą reikšmę, paprastai tai yra 60-80%. Po žodžio priskyrimo spam‘ui yra atnaujinama žodžių „svorių“ duomenų bazė. Laiško priskyrimas spam,ui, jei laiške yra konkretus žodis (pvz: „Dormeo“) atliekamas pagal šią formulę:

Pr⁡(S|W) – sąlyginė tikimybė, kad laiškas yra spam‘as, su sąlyga, kad laiške yra žodis „Dormeo“; Pr⁡(S) – absoliuti tikimybė, kad laiškas yra spam‘as; Pr⁡(W|S) – sąlyginė tikimybė, kad žodis „Dormeo“ būna tik spam‘uose; Pr⁡(H) – absoliuti tikimybė, kad laiškas ne spam‘as; Pr⁡(W|H) – sąlyginė tikimybė, kad laiškas su žodžiu „Dormeo“ yra ne spam‘as. Pagal paskutinius statistinius duomenis yra nustatyta, kad 80% siunčiamų laiškų yra spam‘as, todėl: Pr⁡(S)= 0,8; Pr⁡(H)= 0,2. Visi kiti kintamieji yra paimami iš duomenų bazės, todėl labai svarbu, kad pirminė žodžių duomenų bazė būtų kuo didesnė, toliau programa pati papildo žodžių duomenų baze – „mokosi“ pati. Taigi, jei rezultatas yra nuo 0 iki 0,8 laiškas yra spam‘as ir duomenys yra įrašomi į duomenų bazę.

  • IŠVADOS

Pasitelkiant Bajaso formulę elektroninio pašto žinučių spam‘o filtrams sukurti naudojami „mokymosi“ procese sudaryti žodynai. Tam paimamas senas rankiniu būdu išrinktų pranešimų archyvas ir perduodamas programai mokytis ir tolimesnei analizei. Programa nustato kiekvieno tipo pranešime pasikartojančius žodžius – kiek kartų kiekvienas žodis pasirodo laiškuose iš nurodytos bylos. Kai žodynai galutinai sudaryti, tikimybė, kad nauja žinutė yra spam‘as, apskaičiuojama pagal Bajesą kiekvienam žodžiui iš laiško. Normalizuojant ir sumuojant žodžių tikimybę gaunama bendra tikimybė, pagal kurią galima priskirti žinutę spam‘ui. Bajeso teoremos taikymas leidžia apsieiti be pašto dėžučių „juodųjų sąrašų“ sudarymo. Bajeso filtrai gali savarankiškai, nedaug nusileisdami žmogaus sugebėjimams, atpažinti „blogą“ žinutę, kurioje reklaminė informacija pateikiama kaip paprastas tekstas ar HTML. Po mokymo ir didelio įdirbio pasiseka atrinkti iki 95 –97 % spam‘o.