Uncategorized

A LEGJOBB spamszűrő

A Yellowcube blogjában olvastam MPP Desktop a legjobb spamszűrő címmel egy PC World tesztről, amelyben 17 különféle spamszűrőt vizsgáltak meg, és a konklúzió: óriási különbségek voltak.

Tegnap (2007.06.14. 17:45:xx CEST) egy kommentben leírtam saját gondolataimat a tesztről és az eredményről. Válasz helyett meglepődve vettem tudomásul ma reggel (2007.06.15. 08:50:xx CEST), hogy eltűnt a hozzászólásom, sőt az egész cikk read-only üzemmódba váltott, amelyhez nem lehet megjegyzéseket fűzni.

A PC World teszt és az eredmény azonban fontosabb annál, hogy egy kattintással el lehessen kenni, ezért igyekszem a saját blogomban felidézni, hogy mit küldtem el a Yellowcube blogjába. Ez annál is egyszerűbb lesz, mert a böngészőm Back gombja segített ebben.

A PC World cikket (2007. júniusi szám, 66-69. oldal) egyébként Tószegi Szabolcs írta, feltételezem, a tesztet is ő végezte. A vizsgálatban számos nagy gyártó terméke is szerepelt. A teszt során 5000 spamet és 1500 jó levelet használtak fel, és ezekből 500-500 levéllel tanították azokat a szűrőket, amelyek erre lehetőséget adnak. Ezután a maradék 4500+1000 levelet kellett a szűrőknek kategorizálni. Tószegi leírja, hogy minden terméket az alapértelmezett beállításokkal használt – bizonyára gondolt az egyszeri felhasználókra is.

Némely nagy gyártók termékei (pl. Norton 360, McAfee Internet Security, Kaspersky Internet Security), elég csúnyán szerepeltek a tesztben, ugyanis a magyar (és jó) levelek jelentős részét (12-30%) spamként értékelték. A tesztben szerepelt pl. a Thunderbird 2.0 is, amely 13%-os fals pozitív (amikor a szűrő jó levelet tévesen spamként osztályoz) hibát vétett, és csak a spamek 90%-t ismerte fel. Az 1. helyen pedig a magyar fejlesztésű MPP Desktop végzett. A Yellowcube blog szerint “Az
MPP a 4.500 levélből mindössze 4-et azonosított tévesen spamként, míg a kéretlen levelek 99,22%-át szűrte ki.”

Az újságcikk meg is jegyzi, hogy a legjobb spamszűrőket az erre szakosodott fejlesztők készítik. Ezt magam is így gondolom, ezért én is végeztem egy gyors tesztet az MPP Desktoppal. Fogtam a legutolsó ~2600 spam levelemet, és átküldtem az MPP Desktop legutolsó verzióján. 2638 közül 2531 darabot ismert fel, ami 2531/2638 = 95.94%. Ez ugyan nem éri el a tesztben szereplő 99.22%-ot, de ahhoz képest nem is rossz, hogy az MPP nem tanítható szűrő.

Ami a PC World tesztelését illeti – ha már tanuló szűrőket is vizsgáltak – van 1-2 apró aggályom. A statisztikai alapú spamszűrők tanításához édeskevés 500-500 levél. Ha valaki komoly tesztet akar végezni, akkor egy hosszabb idő (mondjuk 3-6 hónap) spam ill. ham leveleit kell összegyűjtenie. 1000-2000 levél per ham ill. spam corpus alatt nem igazán / nehezen érik el a statisztikai alapú spamszűrők a 99% feletti eredményt.

Nem derült ki (számomra) a PC World cikkből, hogy honnan vették azt a bizonyos 5000+1500 levelet. Egy korrekt vizsgálat esetében a tanítást követően beérkezett levelekkel történik a vizsgálat. Azaz, ha pl. januártól március végéig tanítottam a szűrőt, akkor az áprilistól beérkezett levelekkel végzem a tesztelést. 2×500 levéllel való tanítás után 5500 levéllel tesztelni, finoman szólva a statisztikai szűrőkkel kapcsolatos ismeretek hiányára utal. Nem is csoda, ha sok fals pozitív hibát vétett a Thunderbird.

Az én MPP tesztemre visszatérve nagyon jól rávilágít a statisztikai és az egyéb típusú szűrők közötti különbségre. Kaptam egy spamet, amelyben valaki betegápolót keres, és ezt nem ismerte fel az MPP Desktop spamként. Ha valaki azzal szórakozik, hogy ezt a bizonyos típusú spamet elküldi 2000 alkalommal, akkor az mind a 2000-szer át fog csúszni az MPP-n, egyszerűen azért, mert a felhasználónak semmi lehetősége nincs a szűrő eredményét befolyásolni (=tanítani). Ezzel szemben egy statisztikai alapú szűrőnek megtanítom, hogy ez a levél spam, és onnantól fogva nem követi el ugyanezt a hibát. Elismerem, hogy az MPP fejlesztők is módosíthatják a programjukat úgy, hogy felismerje a betegápolós spamet, csak éppen sokáig tart, mire elkészül (legalábbis a tanításhoz képest).

Ami a cikkben említett magyar sajátosságokat illeti, szerintem nincs ilyen. Egyszerűen arról van szó, hogy a külföldi gyártók nem (igazán) foglalkoznak a magyar spamekkel, mert az angol, orosz, kínai, koreai, japán, … nyelvű spamhez képest elenyésző a mennyisége, így nem kerül be az adatbázisukba, ezért a magyar spamet sokszor átengedik ezek a termékek. Egy tanuló szűrőnek ez sem gond, képes megtanulni (elvileg) bármilyen nyelvű spamet.

Ezzel szemben a nem tanítható spamszűrők esetében a program fejlesztői döntik el, hogy az én melyik levelem spam ill. jó levél, ezért sose érhetik el azt a pontosságot, amelyre az igazi statisztikai alapú szűrők képesek. Azzal az apró dologgal pedig végképp nem képesek lépést tartani a nem tanítható szűrők, hogy az egyik levél valakinek spam, más valakinek pedig jó levél. Egy testre szabható Bayes-i szűrő esetén ez a világ legtermészetesebb dolga.

Végül, csak az érdekesség kedvéért, hogy mire képes egy igazi statisztikai alapú szűrő: az én rekordom egy jó 15 napos teszt alatt – összesen 1009 (ham+spam) levélből 1 spam csúszott be – 99.9%, ami kb. 40x pontosabb a 95.96%-nál. És ez valóban óriási különbség.

Szerkesztés: az említett 15 napos teszt összesített erdeménye lett 99.9%, ha csak a spam felismerési arányt tekintjük (mert az elért 95.96% is erre vonatkozik), az ~450/451 = 99.77%, amely csak 17.5x jobb. Elnézést a figyelmetlenségért.