filtrowanie spamu z użyciem maszyny wektorów wspierających
Transkrypt
filtrowanie spamu z użyciem maszyny wektorów wspierających
FILTROWANIE SPAMU Z UŻYCIEM MASZYNY WEKTORÓW WSPIERAJĄCYCH Plan referatu: 1. Wstęp. 2. Maszyny uczące. 3. Ogólnie o SVM. 4. Online SVM. 5. Mapowanie tekstu na wektory wspierające. 6. Historia. 7. Podsumowanie. 8. Bibliografia. WSTĘP Elektroniczna komunikacja jest zasypywana dziś milionami niechcianej i mogącej zaszkodzić treści zwanej potocznie spamem. Najbardziej znaną formą spamu są niepożądane maile, zaśmiecające nasze wirtualne skrzynki pocztowe. Eskalacja zjawiska jest tak wysoka, że wiele firm, środowisk akademickich i ośrodków badawczych jest wielce zainteresowana walką z tą plagą naszych czasów. Dlatego też istnieje wiele pomysłów jak zapobiegać temu problemowi. Do chwili obecnej badania nad detekcją spamu były skupione na takich technikach jak: niestacjonarność źródeł danych, proste próbkowanie dyskryminujące w danych treningowych, niejednostajność w kosztach dekompozycji, tworzenie czarnych list spamerów, wykrywanie błędów w adresacji źródła wiadomości. Takie i podobne podejścia nie biorą pod uwagę faktu ewolucji spamu w przeciągu dłuższego okresu czasu, z tego względu powinniśmy obrać efektywniejszą strategię sprzężoną z procesem uczenia. Inne, alternatywne podejście to analiza treści wiadomości. Jest to pomysł bardzo atrakcyjny i obiecujący w zwalczaniu spamu, który daje się łatwo generalizować. W tej technice wiadomość tekstowa jest analizowana przy użyciu automatycznych technik uczenia stosowanych do sklasyfikowania treści. Dzięki czemu uzyskujemy informacje czy dana wiadomość jest pożądana. Z kolei w dziedzinie doboru najlepszej techniki automatycznego uczenia badacze są podzieleni na kilka frontów. Wyróżniamy takie mechanizmy jak: model porównawczy; logistyczna regresja; drzewa decyzyjne; naiwny Bayes; sieci Bayes’a; maszyna wektorów wspierających (SVM). Biorąc pod uwagę czas działania i skuteczność metod wiadomo, że mamy dwa przeciwległe bieguny. Z jednej strony model porównawczy jest najszybszy ale najmniej skuteczny przy długoterminowym działaniu, a na drugim końcu mamy skuteczną ale wolną technikę SVM. Czas wytrenowania tego systemu jest niestety kwadratowy względem liczby przykładów treningowych, co czyni go mało praktycznym. Ale badacze zajmujący się ogólnym proble- mem klasyfikacji zaczęli optymalizować tą metodę, co zaowocowało najskuteczniejszymi odmianami, które przynoszą praktyczne korzyści, także w dziedzinie walki ze spamem. plan referatu MASZYNY UCZĄCE Zjawisko uczenia się można w ogólnej postaci sprowadzić do estymacji funkcji na podstawie danych empirycznych. Do rozwiązania tego problemu używano różnych metod indukcyjnych. Inna forma procesu uczenia się jest zawarta w takim sformułowaniu: Przyjmujemy w sposób ciągły dane treningowe (pary ) oraz dane testowe (wektory ) i celem jest określenie przez maszynę uczącą, posiadającą zbiór funkcji: wartości dla danych testowych. Innymi słowy chcemy rozwiązać problem estymacji war- tości dla nieznanej funkcji dla danych argumentów. Maszyna Wektorów wspierających jest jednym z kilku sposobów na rozwiązanie tego problemu. plan referatu OGÓLNIE O SVM Maszyna Wektorów Wspierających ( z ang. Support Vector Machine) to system efektywnego uczenia liniowych klasyfikatorów w wielowymiarowych przestrzeniach atrybutów generowanych przez funkcję jądra ( z ang. kernel function). Inaczej: SVM jest matematycznym modelem samonadzorującego i samouczącego się algorytmu, zdolnym do predykcji. Aby nie przestraszyć czytelnika, sformalizujmy problem, jaki rozwiązuje SVM w najprostszym ujęciu, a potem pokażmy w jaki sposób dochodzi do pożądanych rezultatów. Dane: S – zbiór N punktów Każdy z , dla . należy do jednej z dwóch klas: -1 albo 1. Dla każdego przyporządkowane jest więc , tzw. etykieta. Cele: Wyznaczyć optymalną hiperpłaszczyznę dzielącą S, tak aby punkty jednej klasy były po tej samej stronie wyznaczonej hiperpłaszczyzny. Rozwiązanie: Najprostszym rozwiązaniem tego problemu jest odnalezienie liniowego separatora, o ile S jest liniowo separowalny. Niezbędne definicje: Zbiór S jest liniowo separowany jeśli istnieje hiperpłaszczyzna przesunięcia oraz wektor takie że: , (1) , (2) czyli , dla (3) . Para (w, b) definiuje hiperpłaszczyznę o równaniu: , która oddziela obydwie klasy punktów dla (4) . Pytania: 1. Która hiperpłaszczyzna najlepiej separuje dwie klasy zbiorów i dlaczego? 2. Jak odnaleźć żądaną hiperpłaszczyznę „w” z maksymalnym marginesem dla zbiorów liniowo separowanych? 3. Jaką strategię będzie trzeba przyjąć gdy zbiór S nie będzie liniowo separowany? 4. Jakie do tej pory wymyślono istotne optymalizacje aby SVM mógł rozwiązywać realne problemy? Odp. do 1. Dla algorytmu SVM przyjmuje się, iż hiperpłaszczyzna o największym marginesie najlepiej oddziela dwie klasy zbiorów. Margines jest to odległość hiperpłaszczyzny separującej od wektorów wspierających. Wektory wspierające są to hiperpłaszczyzny oddzielające dwie klasy punktów, wspierające się na obu z nich. Na rysunku widać, iż w dwuwymiarowej przestrzeni wektorami wspierającymi są proste separującą prosta H. Określmy odległość od do , a hiperpłaszczyzną i w kategorii i . Niech: będzie punktem w półpłaszczyźnie punktem w półpłaszczyźnie , najbliższym punktem dla z obszaru dodatnie- go. Niech Skoro i przyjmą postać kanoniczną: o (5) o (6) jest wektorem prostopadłym do obu hiperpłaszczyzn i to: . (7) . (8) Długość marginesu określamy wzorem: Obliczamy: (9) Zatem: (10) Aby uzyskać maksymalny margines chcemy zminimalizować Odp. do 2. Algorytm Optymalnej Hiperpłaszczyzny Aby skonstruować optymalną hiperpłaszczyznę: . (11) separującą zbiór danych treningowych: należy zminimalizować funkcjonał: , (12) tak aby spełniona była nierówność: (13) Oby to osiągnąć używamy standardowej techniki optymalizacji. Konstruujemy Lagrangian: (14) gdzie jest wektorem nieujemnych mnożników Lagrange’a, spełniają- cych nierówność (2). Wiadomo, że rozwiązaniem tego problemu optymalizacyjnego jest punkt siodłowy Lagrangian’u w - wymiarowej przestrzeni, gdzie minimum jest uwzględnione dla parametrów W punkcie siodła parametry i i , a maksimum dla mnożników Lagrange’a . powinny spełniać następujące warunki: (15) (16) Z równości (15) uzyskuje się równość: (17) która wyraża fakt, iż optymalna hiperpłaszczyzna będąca rozwiązaniem naszego problemu może być zapisana jako liniowa kombinacja danych treningowych. Panowie Kühn i Tucker wymyślili warunek konieczny i wystarczający aby dana hiperpłaszczyzna stanowiła optymalne rozwiązanie, a mianowicie hiperpł. separująca musi spełniać warunek: (18) Podstawiając (16) i (17) do (14) oraz biorąc pod uwagę warunek Kühn’a-Tucker’a uzyskujemy: (19) Pozostaje zmaksymalizować ten funkcjonał przy spełnionych warunkach: , (20) oraz: (21) W nawiązaniu do (17) mnożniki Lagrange’a i wektory wspierające tworzą optymalną hiperpłaszczyznę. Dlatego aby ją skonstruować należy rozwiązać prosty problem z programowania kwadratowego: zmaksymalizować formę kwadratową (19) pod warunkami (20) i (21). Trzeba zaznaczyć, iż danymi na wyjściu dla SVM są niewiadome ( – ilość wektorów wspierających) oraz . W notacji wektorowej może być to przedstawione jak poniżej: (22) przy spełnionych warunkach: gdzie natomiast jest - wymiarowym wektorem jednostkowym, a oraz (23) jest macierzą symetryczną o elementach: (24) Odp. do 3. Przypadek kiedy dane nie są liniowo separowalne. Kiedy powyższą procedurę będziemy chcieli zastosować do danych liniowo nieseparowalnych, uznamy za niemożliwe osiągnięcie rozwiązania: Lagrangian będzie mocno rósł. Jak możemy rozszerzyć nasz algorytm na dane nieseparowalne liniowo. Można rozluźnić ograniczenie (13), oczywiście tylko wtedy kiedy to konieczne, tak aby określić dodatkowe parametry dla danych trudno separowanych. Dlatego wprowadzamy luźną zmienną w ograniczeniu (13) otrzymując: , (25) , (26) (27) Dlatego aby pojawił się błąd, odpowiednie musi przekroczyć jedność, więc jest gór- ną granicą liczby błędów treningowych. Stąd naturalnym sposobem by uwzględnić dodatkowe koszty poniesione za błędy jest zmiana funkcji celu na: , gdzie (28) jest parametrem wybranym przez użytkownika. Im większy jest ten parametr tym większe znaczenie przypisuje się współczynnikom błędu. Stoimy w sytuacji gdzie staje się to problemem programowania na zbiorach wypukłych dla dowolnego dodatniego ; dla k = 1 albo k = 2 jest to standardowy problem programowania kwadratowego. Zdefiniujmy problem jaki mamy rozwiązać: Chcemy zmaksymalizować: (29) dla warunków: (30) (31) Rozwiązaniem jest ponownie: (32) gdzie liczbą wektorów wspierających. Dlatego jedyną różnicą w porównaniu z poprzednim problemem (klasyfikacja danych na zbiorze liniowo separowalny) jest taka, iż moją teraz górne ograniczenie w postaci . Nieliniowa Maszyna Wektorów Wspierających Jak powyższe metody mogą zostać uogólnione do przypadku kiedy funkcja decyzyjna nie jest liniową funkcją danych wejściowych? Boser, Guyon i Vapnik (1992) pokazali, iż w tym celu może być użyta stara sztuczka (Aizerman 1964). Po pierwsze zauważono, że dane w problemie liniowej separacji zbioru liniowo separowalnego pojawiają się w formie produktu . Więc najpierw załóżmy, że rzutujemy dane wejściowe do innej (możliwe, iż nawet nieskończenie wymiarowej) przestrzeni Euklidesowej , używając danej funkcji . : (33) Wówczas oczywiście algorytm trenowania SVM zależałby wyłącznie od danych wejściowych poprzez ich produkt w przestrzeni gdyby to była funkcja jądra funkcji i przyjmował następującą postać: taka, iż . Teraz Potrzebowalibyśmy tej do treningu SVM, bez jakiej kol wiek wiedzy o funkcji . Ważnym przykładem fun. jądra jest: – (34) tzw. promieniowa funkcja bazowa. W tym szczególnym przypadku gdy go wymiaru, praca bezpośrednio z jest nieskończone- nie byłaby prostą sprawą. Jednakże kiedy zastąpimy produkt przez w procesie treningu maszyny uczącej, otrzymamy SVM w przestrzeni nieskończonej, w dodatku w czasie w jakim trening byłby prowadzony na danych niezmapowanych. Jedyną różnicą co do poprzednich metod klasyfikacji jest faza testów, w której poprzez SVM obliczamy produkt i , a bardziej precyzyjnie znak fun.: (35) gdzie czenia są wektorami wspierającymi. Podsumowując: Możemy uniknąć bezpośredniego oblii użyć: . (36) Czyli nie mogąc ustalić liniowej separacji w danej przestrzeni, przechodzimy do przestrzeni o większym wymiarze i tam szukamy hiperpłaszczyzny separującej. Przy tym nie musimy okre- ślać operacji przekształcającej cechy z niższego wymiaru w wyższy. Wystarczy znać funkcję jądra. plan referatu ONLINE SVM Uczenie w trybie bieżącym (a ang. on-line learning) jest ważną dziedziną badań nad maszynami uczącymi ze względu na teoretyczny i praktyczny wymiar tego zagadnienia. Proces nauki dokonuje się w kilku próbach. W próbie algorytm ma na wejściu daną i musi ustalić dla niej etykietę. Następnie wyznaczona etykieta jest porównywana z prawdziwą i algorytm płaci karę jeżeli predykcja się nie powiodła. Ostatecznym celem algorytmu jest zminimalizowanie błędów jakie się dokonują podczas jego działania. Aby to osiągnąć algorytm mógłby uaktualniać swój mechanizm przewidywania po każdej próbie, by w kolejnych być już bardziej dokładnym. Częstokroć rozwiązanie przy użyciu klasyfikatora SVM ma niewiele współczynników które odpowiadają (wektorom wspierającym) i (zdefiniowanej funkcji decyzyjnej). Dla- tego zbiór wektorów wspierających dobrze określa charakterystykę całego zbioru treningowego. Proces trenowania SVM jest kosztowny gdyż wymaga rozwiązania problemu kwadratowego (QP), lecz jeżeli ograniczymy nasz SVM do wektorów wspierających (SVs - z ang. support vectors), czas trenowania zostanie znacząco zredukowany przy jednoczesnej małej stracie precyzji. I to jest właśnie główna idea jaka kryje się za algorytmem Online SVM. Wiedza o tym, że niewiele z danych treningowych ostatecznie zostaje wektorami wspierającymi może się przyczynić do znacznego zmniejszenia tych danych przy ponownym treningu. Wszystkie pozostałe wektory nie są brane pod uwagę przy kolejnych treningach. Nazwijmy nasz zbiór wiadomości treningowych dla filtru spamu jako TD. Następnie wybieramy spośród nich wektory wspierające SV1 i klasyfikujemy nową wiadomość x0. Po sprawdzeniu prawdziwej etykiety dla wiadomości x0, jeżeli była ona niepoprawna, musimy przetrenować nasz system dla zbioru SV1 + x0. Teraz ustalamy wektory wspierające ze z SV1 + x0, nazwane SV2. I znów trenujemy i testujemy filtr. Cała inkrementacja kończy się gdy na wejściu nie ma żadnych próbek do zbadania. Online SVM spam filter: 1) Inicjalizacja: Na wejściu SVM daj kilka przykładów ze spamu i dobrych wiadomości. Przetrenuj SVM. 2) Nauka: Zaklasyfikuj . Spytaj o prawdziwą etykietę . Jeżeli predykcja była zła, przetrenuj SVM dla . 3) Koniec: Powtarzaj cały proces aż próbka zostanie przetworzona. plan referatu MAPOWANIE TEKSTU NA WEKTORY WSPIERAJĄCE Parametryzacja tekstu maili na wejściu dla maszyny uczącej może być zrealizowane na wiele sposobów, zwłaszcza gdy tekst zawiera hipertreść z metadanymi tak jak format HTML, czy informacje nagłówkowe wiadomości. Wiele badań wykazało, iż porządek słów w tekstach lub ich formy gramatyczne, mają małe znaczenie dla problemów kategoryzacji. Istotniejszy jest natomiast współczynnik występowania słów w badanych treściach. Skoro jest to podejście proste i wydajne traktujmy dokument tekstowy jako zbiór słów, który może być reprezentowany jako wektor w przestrzeni wielowymiarowej, gdzie każda współrzędna to ilość wystąpień jednego wybranego tematu słowa występującego w treści wiadomości, czyli: (37) jest reprezentantem treści mail’a, gdzie n – jest liczbą wyszczególnionych tematów słów, ułożonych leksykograficznie, s(i) – i-ty tematem słowa, a # - prostą funkcją zliczająca ilość wystąpień danego tematu. Ze względu na możliwość wysokiej wielowymiarowej przestrzeni cech trzeba dla efektywności zastosować różne metody wyboru najbardziej pożądanych treści z jednoczesnym wyłączeniem cech niepożądanych. Pierwszą rzeczą jest redukcja wymiarów poprzez usunięcie słów najczęściej pojawiających się w tekstach („i”, „albo”, „że”) i tych pojawiających się najrzadziej. Następną możliwością jest wybór słów najlepiej opisujących kategorię niepożądanych treści (100-300 słów), czy treści pożądanych. Często aby uprościć późniejsze rachunki można zastosować normę euklidesową dla współrzędnych wektorowych oraz ograniczyć ilość analizowanego tekstu do pewnej liczby pierwszych znaków (np. 3000 znaków). Sposób dający lepsze rezultaty uwzględnia współczynnik występowania tematów słów dla całego zbioru dokumentów na wejściu, a mianowicie. Niech wektor: (38) będzie reprezentował dokument . Wtedy waga jest ustalana poprzez wzór: , (39) gdzie - (z ang. term frequency – człon częstotliwości) – ilość wystąpień tematu słowa w dokumencie ; - (z ang. inverse document frequency- odwrócona częstotliwość dla dokumentów ) – wyrażona jest wzorem: . (40) Tu: - ilość dokumentów; - (z ang. document frequency – częstotliwości w dokumentach) – ilość dokumentów, w których pojawia się słowo o temacie Mówiąc w uproszczeniu wzór (39) mówi, iż dla tematu będzie ważnym współczynni- kiem dla dokumentu d jeżeli występuje w nim często, natomiast jeżeli temat pojawiał w wielu dokumentach, wówczas będzie malał a temat będzie się będzie tracił na zna- czeniu jako dana treningowa. plan referatu HISTORIA Historia wektorów wspierających w pigułce: Wczesne lata sześćdziesiąte – została opracowana metoda “support vectors” w celu konstruowania hiperpłaszczyzn do rozpoznawania obrazu ( Vapnik i Lerner 1963, Vapnik i Czervonenkis 1964) – liniowa SVM. Początek lat 90-siątych XX wieku: uogólnienie metody pozwalającej na konstruowanie nieliniowych funkcji separujących (Boser 1992, Cortes i Vapnik 1995). 1995: dalsze rozszerzenie pozwalające otrzymać estymację funkcji ciągłej na wyjściu – regresja (Vapnik 1995). plan referatu PODSUMOWANIE Ten referat jest zaledwie wierzchołkiem góry lodowej w dziedzinie badań nad maszynami uczącymi z wykorzystaniem wektorów wspierających oraz wykorzystania tego mechanizmu do tworzenia filtrów spamu. Wiele zagadnień i pojęć znacznie poszerzyłoby stronnice tegoż opracowania, jak np. twierdzenia ze statystycznych teorii estymacji funkcji przez maszyny uczące Vapnika i Chervonenkisa (VC-wymiar, pokrycie , entropia), ograniczenia na funkcje jądra, optymalizacje problemu trenowania SVM, rozwiązania problemu QP i ich optymalizacje, wiele heurystyk na przygotowanie danych do treningu, i na koniec dostrajanie parametrów filtrów dla uzyskania najwyższego stopnia efektywności. Natomiast niniejsze opracowanie może być dobrą zachętą do dalszych badań w tej dziedzinie lub testowania wydajnego oprogramowania, w którym zaszyte są kwestie poruszane tutaj, a które jest wolno-dostępne w serwisach internetowych. plan referatu BIBLIOGRAFIA Vapnik V. (1995-2000). “The Nature of Statistical Learning Theory”-2nd ed. New York, NY: Springer-Verlag. Burges Ch. J. C. (1998) Artykuł: “A tutorial on Supprot Vector Machines for Pattern Recognition” Microsoft Research Cortes C.,Vapnik V. (1995) Artykuł: “Support-Vector Networks” AT&T Bell Labs Thorsten Joachims (2005) Artykuł: “A Probabilistic Analysis of the Rocchio Algorithm with TFIDF for Text Categorization” Universität Dortmund Germany Sculley D., Wachman G. M. (2006) Artykuł: “Relaxed Online SVMs for Spam Filtering” Tufts University USA Qiang Wang, Yi Guan, Xiaolong Wang (2006) Artykuł: “SVM-Based Spam Filter with Active and Online Learning” Harbin Institute of Technology China Cybar P., Kluczyński M. (2005) Artykuł: “Support Vector Machines for Text Categorization and Face Detection” Uniwersytet Wrocławski prof. Greg Grudic Wykłady: “Machin Learning” Computer Science Colorado Institute USA prof. Andrew W. Moore (2003) Wykłady: “Support Vectors Machines” Carnegie Mellon University USA plan referatu