Krok 2.5. Wybierz model

W tym momencie zgromadziliśmy zbiór danych i przeanalizowaliśmy najważniejsze cechy naszych danych. Na podstawie danych zebranych w kroku 2 powinniśmy zastanowić się, który model klasyfikacji zastosować. Oznacza to, że na przykład pojawiają się pytania takie jak „Jak prezentujemy dane tekstowe w algorytmie, który oczekuje danych liczbowych?”.

Dzięki wieloletnim badaniom mamy dostęp do szerokiej gamy opcji konfiguracji wstępnego przetwarzania danych i modeli. Szeroki wybór rozwiązań, które można wybrać, znacznie zwiększa złożoność i zakres konkretnego problemu. Biorąc pod uwagę, że najlepsze opcje mogą nie być oczywiste, naiwne byłoby wypróbować wszystkie możliwe opcje i jednocześnie skrócić niektóre możliwości przez intuicję. Byłoby to jednak bardzo drogie.

W tym przewodniku bardzo ułatwiamy wybór modelu klasyfikacji tekstu. Naszym celem jest znalezienie algorytmu, który pozwoli osiągnąć możliwie największą dokładność oraz minimalizować czas obliczeń potrzebny do trenowania. Przeprowadziliśmy wiele eksperymentów (ok. 450 tys.) w różnych rodzajach zadań (zwłaszcza w przypadku analizy nastawienia i problemów ze klasyfikacją tematów), korzystając z 12 zbiorów danych, w których wprowadzono różne techniki wstępnego przetwarzania danych i różnych architektur modeli. Pomogło nam to zidentyfikować parametry zbioru danych, które wpływają na optymalne wybory.

Algorytm wyboru modelu i schemat blokowy poniżej to podsumowanie naszego eksperymentu. Nie martw się, jeśli nie znasz jeszcze wszystkich użytych w nim haseł. Znajdziesz je w kolejnych sekcjach tego przewodnika.

Algorytm przygotowywania i modelowania danych

1. Calculate the number of samples/number of words per sample ratio.
2. If this ratio is less than 1500, tokenize the text as n-grams and use a
simple multi-layer perceptron (MLP) model to classify them (left branch in the
flowchart below):
  a. Split the samples into word n-grams; convert the n-grams into vectors.
  b. Score the importance of the vectors and then select the top 20K using the scores.
  c. Build an MLP model.
3. If the ratio is greater than 1500, tokenize the text as sequences and use a
   sepCNN model to classify them (right branch in the flowchart below):
  a. Split the samples into words; select the top 20K words based on their frequency.
  b. Convert the samples into word sequence vectors.
  c. If the original number of samples/number of words per sample ratio is less
     than 15K, using a fine-tuned pre-trained embedding with the sepCNN
     model will likely provide the best results.
4. Measure the model performance with different hyperparameter values to find
   the best model configuration for the dataset.

Schemat blokowy poniżej przedstawia żółte pola wskazujące dane i procesy przygotowywania modeli. Szare i zielone pola wskazują opcje, które braliśmy pod uwagę w przypadku każdego procesu. Zielone pola wskazują naszą zalecaną opcję w przypadku każdego procesu.

Ten schemat blokowy może Ci posłużyć za punkt wyjścia do stworzenia pierwszego eksperymentu, ponieważ zapewni on dokładność przy niskich kosztach mocy obliczeniowej. Możesz następnie ulepszać początkowy model w kolejnych iteracjach.

Schemat blokowy klasyfikacji tekstu

Ilustracja 5. Schemat blokowy tekstu

Schemat blokowy odpowiada na 2 kluczowe pytania:

  1. Jakiego algorytmu lub modelu nauczania należy użyć?

  2. Jak mamy przygotować dane, by skutecznie poznać zależności między tekstem a etykietą?

Odpowiedź na drugie pytanie zależy od odpowiedzi na pierwsze pytanie. Sposób przetwarzania danych do modelu zależy od wybranego przez nas modelu. Modele można dzielić na 2 kategorie: te, które korzystają z informacji o kolejności słów (modele sekwencji), oraz te, które po prostu wyświetlają tekst jako „torby” (zbiory) słów (modele gramatyczne). Typy modeli sekwencji obejmują splotowe sieci neuronowe (CNN), powtarzające się sieci neuronowe (RNN) i ich odmiany. Typy modeli n-gramów obejmują regresję logistyczną, proste wielowarstwowe perceptery (MLP i w pełni połączone sieci neuronowe), wzmocnienie gradientowe i maszyny wektorowe.

Z naszych eksperymentów wynika, że stosunek „liczby próbek” (S) do „liczby słów na próbkę” (W) jest powiązany z tym, który model uzyskuje dobre wyniki.

Gdy wartość tego współczynnika jest mała (< 1500), małe wielowarstwowe percepole, które jako dane wejściowe mają n-gramy (które nazywamy opcją A), mają większą skuteczność lub najmniejsze modele sekwencji. Obiekty LP są łatwe do zdefiniowania i zrozumienia, a ich obliczenie zajmuje znacznie mniej czasu niż modele sekwencyjne. Gdy wartość tego współczynnika jest duża (>= 1500), użyj modelu sekwencji (Opcja B). W kolejnych krokach możesz przejść do odpowiednich podsekcji (oznaczonych jako A lub B) dla wybranego typu modelu na podstawie współczynnika próbek/słów na próbkę.

W przypadku naszego zbioru danych z opiniami IMDb współczynnik próbek/słów na próbkę wynosi około 144. Oznacza to, że utworzymy model MLP.