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

Podobne dokumenty