Data publikacji w serwisie:

W jaki sposób sztuczna inteligencja uczy się klasyfikować teksty?

Na czym polega automatyczna klasyfikacja tekstów?

Automatyczna klasyfikacja tekstów polega na przydzielaniu ich do określonych kategorii przez system komputerowy. W przypadku niektórych zastosowań system sam decyduje, w jaki sposób określić kategorie (czy inaczej: klasy) tekstów. Jeśli na przykład człowiek chce pogrupować najnowsze newsy, a nie jest pewien, jakich tematów będą one dotyczyć, może zlecić systemowi sztucznej inteligencji ich podział na określoną liczbę (np. 10) klas. System grupuje wtedy newsy w taki sposób, aby w każdej z kategorii znalazły się te z nich, które posługują się podobnym słownictwem.

Według scenariusza alternatywnego to człowiek podejmuje decyzję, w jaki sposób zdefiniować klasy, w oparciu o które nastąpi grupowanie. Na przykład w przypadku zadania polegającego na klasyfikacji maili (patrz również: /blog/nlp-co-to-jest-i-do-czego-sie-przydaje) zlecamy sztucznej inteligencji, aby dla każdej kolejnej wiadomości mailowej dokonała jej klasyfikacji w oparciu o kryterium przydatności na potrzeby adresata, bądź to przydzielając ją do kategorii SPAM, bądź też przekazując ją do jego skrzynki odbiorczej (klasa NIE-SPAM).

Podobnie też w przypadku analizy wydźwięku (patrz: /blog/nlp-co-to-jest-i-do-czego-sie-przydaje) klasyfikator ma zadecydować, do której z trzech kategorii – określonych z góry według kryterium nastawienia autora tekstu do opisywanej rzeczywistości – a mianowicie: negatywna, pozytywna lub neutralna, kwalifikuje się dana recenzja.

Podstawowym sposobem podziału tekstów na zdefiniowane z góry przez człowieka kategorie jest tzw. metoda Bayesa. To właśnie tę metodę klasyfikacji omówię w niniejszym wpisie na blogu.

Uczenie nadzorowane

Metoda Bayesa należy do metod uczenia nadzorowanego. Określenie to oznacza, że system sztucznej inteligencji uczy się wykonywać pewne zadanie poprzez analizę danych, dla których zadanie to zostało już wcześniej wykonane. W przypadku rozpoznawania spamu system uczy się swojej pracy z wykorzystaniem maili, które zostały już wcześniej odpowiednio zaklasyfikowane przez człowieka.

Jak przygotować dane na potrzeby uczenia nadzorowanego

Przygotowanie danych na potrzeby uczenia maszynowego jest zadaniem dość pracochłonnym, a do tego niezbyt ciekawym intelektualnie. Wymaga wielokrotnego powtarzania bardzo podobnych czynności, których jakość wykonania trudno rzetelnie zweryfikować.

Mechaniczny Turek

Skuteczny sposób na przezwyciężenie tego typu niedogodności wymyślono w firmie Amazon, wprowadzając model pracy zwany Mechanicznym Turkiem (ang. Amazon Mechanical Turk). Stosowany jest on na potrzeby zadań wymagających ludzkiej inteligencji, lecz niekoniecznie specjalizacji w jakiejkolwiek dziedzinie. Zgodnie z nim zadania przekazywane są odpowiednio licznej grupie pracowników (zwanych – zgodnie “z najlepszymi zasadami politycznej poprawności” – Mechanicznymi Turkami) w tak małych porcjach, aby każdy z zatrudnionych mógł zrealizować swoje obowiązki o dowolnej dogodnej dla siebie porze dnia, z zachowaniem możliwości przerwania wykonywanego zadania, ilekroć będzie to konieczne  (np. podczas wysiadania z autobusu lub tramwaju). Co więcej, dokładnie te same porcje zadań przydzielane są różnym wykonawcom, niemającym ze sobą kontaktu, co umożliwia weryfikację zgodności uzyskanych rozwiązań i premiowanie tych spośród nich, które pokrywają się wzajemnie u rozmaitych autorów.

Oznaczanie danych tekstowych

W przypadku zadania polegającego na klasyfikacji maili najmniejszą porcją pracy do wykonania przez Mechanicznego Turka będzie przypisanie pojedynczej wiadomości mailowej do jednej z dwóch klas: SPAM lub NIE-SPAM. Zbiorcze efekty pracy licznej grupy Mechanicznych Turków posłużyć mogą jako obszerny korpus uczący na potrzeby przygotowania systemu sztucznej inteligencji – w analizowanym przypadku: odsiewającego niepożądaną korespondencję elektroniczną.

Do czego przydaje się rachunek prawdopodobieństwa?

Kłopot ze sztuczną inteligencją polega jednak na tym, że nigdy nie możemy jej zawierzyć w stu procentach. W przypadku zadania polegającego na klasyfikacji sztuczna inteligencja stwierdza na przykład jedynie, że dany obiekt prawdopodobnie należy do danej kategorii. Jeżeli użytkownik wymaga więc, aby system wskazał konkretnie pojedynczą klasę, do której dany obiekt należy przydzielić (a tak jest w praktyce najczęściej), system wskazuje tę spośród klas, dla której wyliczone przez niego prawdopodobieństwo przynależności jest najwyższe.

Jak działa klasyfikator Bayesa?

Klasyfikator Bayesa wyznacza dla każdego obiektu prawdopodobieństwo, z jakim obiekt ten przynależy do poszczególnych klas, posługując się w tym celu dwoma czynnikami: prawdopodobieństwem przed faktem (ang. prior probability) oraz prawdopodobieństwem po fakcie (ang. posterior probability).

Prawdopodobieństwo przed faktem

Pierwsza z powyższych dwóch wartości wyznaczana jest przed przystąpieniem do analizy danego obiektu. Na przykład prawdopodobieństwo przed faktem tego, że dany mail jest spamem, wyznaczane jest wyłącznie na podstawie danych informujących o tym, jaka część wiadomości mailowych w zbiorze uczącym zakwalifikowana została do kategorii SPAM. Jeśli na przykład w 100-elementowym zbiorze uczącym 30 maili sklasyfikowanych zostało jako SPAM, prawdopodobieństwo przed faktem, że dany mail jest spamem wynosi 30%.

Prawdopodobieństwo po fakcie

Prawdopodobieństwo po fakcie obliczane jest po dokonaniu analizy danego obiektu. Zidentyfikowane zostają jego cechy charakterystyczne, na podstawie których ustalona zostaje klasa, której cechy te najbliżej odpowiadają.

Powyższy zrzut ekranowy zawiera tematy maili sklasyfikowanych jako SPAM. Załóżmy, że stanowią one zbiór uczący, na podstawie którego system ma zakwalifikować nową wiadomość mailową o następującym nagłówku:

Okazja! Abonament 200 zł miesięcznie. Sprawdź!

Cechą charakterystyczną powyższego maila jest zastosowanie w jego treści wykrzykników. Okazuje się, że jest to właściwość typowa dla wiadomości z kategorii SPAM, gdyż w obrębie 10 elementów zbioru uczącego oznaczonych jako SPAM znak ten pojawił się aż pięciokrotnie.

W praktyce klasyfikator Bayesa stosowany jest w taki sposób, że dla każdej z cech charakterystycznych danego obiektu oblicza się, jak bardzo cecha ta typowa jest dla konkretnej klasy. W przypadku klasyfikacji tekstów dla każdego wyrazu lub znaku interpunkcyjnego danego dokumentu ustala się, z jaką częstością pojawia się on w treści wszystkich dokumentów przypisanych do danej kategorii. Wartości uzyskane dla wszystkich takich cech mnoży się następnie przez siebie, otrzymując w wyniku wartość prawdopodobieństwa po fakcie.

System kwalifikuje obiekt do tej spośród klas, dla której iloczyn obu prawdopodobieństw: prawdopodobieństwa przed faktem oraz prawdopodobieństwa po fakcie jest najwyższy.

Podsumowanie

Proste? Na pewno nie jakoś nadzwyczaj skomplikowane – a przy tym diabelsko skuteczne. Często przyjmuje się, że skuteczność klasyfikatora Bayesa stanowi punkt odniesienia dla innych, bardziej wysublimowanych rozwiązań. Wcale nie tak łatwo jest go pobić!