Langkah 2.5: Pilih Model

Pada tahap ini, kami telah mengumpulkan set data dan memperoleh insight tentang karakteristik utama data kami. Selanjutnya, berdasarkan metrik yang kita kumpulkan di Langkah 2, kita harus memikirkan model klasifikasi yang harus digunakan. Ini berarti mengajukan pertanyaan seperti, “Bagaimana cara menyajikan data teks ke algoritme yang mengharapkan input numerik?” (ini disebut prapemrosesan dan vektorisasi data), “Jenis model apa yang harus kita gunakan?”, “Parameter konfigurasi apa yang harus kita gunakan untuk model kita?”, dll.

Berkat riset selama puluhan tahun, kami memiliki akses ke sejumlah besar opsi pra-pemrosesan data dan konfigurasi model. Namun, ketersediaan array opsi sangat layak yang dapat dipilih sangat meningkatkan kerumitan dan cakupan masalah tertentu yang ada. Mengingat bahwa opsi terbaik mungkin tidak jelas, solusi naif adalah mencoba setiap opsi yang mungkin secara menyeluruh, memangkas beberapa pilihan melalui intuisi. Namun, biayanya sangat mahal.

Dalam panduan ini, kami berupaya menyederhanakan proses pemilihan model klasifikasi teks secara signifikan. Untuk set data tertentu, tujuan kami adalah menemukan algoritme yang mencapai akurasi maksimum sekaligus meminimalkan waktu komputasi yang diperlukan untuk pelatihan. Kami menjalankan banyak sekali (~450 ribu) eksperimen pada berbagai jenis masalah (terutama analisis sentimen dan masalah klasifikasi topik), menggunakan 12 set data, bergantian untuk setiap set data antara berbagai teknik prapemrosesan data dan arsitektur model yang berbeda. Hal ini membantu kami mengidentifikasi parameter set data yang memengaruhi pilihan optimal.

Algoritme pemilihan model dan diagram alir di bawah adalah ringkasan eksperimen kami. Jangan khawatir jika Anda belum memahami semua istilah yang digunakan di dalamnya; bagian berikut dalam panduan ini akan menjelaskannya secara mendalam.

Algoritme untuk Persiapan Data dan Pembuatan Model

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.

Dalam diagram alir di bawah, kotak kuning menunjukkan proses persiapan data dan model. Kotak abu-abu dan kotak hijau menunjukkan pilihan yang kami pertimbangkan untuk setiap proses. Kotak hijau menunjukkan pilihan yang kami rekomendasikan untuk setiap proses.

Anda dapat menggunakan diagram alir ini sebagai titik awal untuk membuat eksperimen pertama Anda, karena diagram ini akan memberikan akurasi yang baik dengan biaya komputasi yang rendah. Anda kemudian dapat terus meningkatkan model awal hingga iterasi berikutnya.

Diagram alir klasifikasi teks

Gambar 5: Diagram alir klasifikasi teks

Diagram alir ini menjawab dua pertanyaan utama:

  1. Manakah algoritme atau model pembelajaran yang sebaiknya kita gunakan?

  2. Bagaimana cara menyiapkan data untuk mempelajari hubungan antara teks dan label secara efisien?

Jawaban atas pertanyaan kedua bergantung pada jawaban atas pertanyaan pertama; cara kami memproses data terlebih dahulu untuk dimasukkan ke model akan bergantung pada model yang kami pilih. Model dapat diklasifikasikan secara luas menjadi dua kategori: model yang menggunakan informasi pengurutan kata (model urutan), dan model yang hanya melihat teks sebagai "tas" (kumpulan) kata (model n-gram). Jenis model urutan mencakup jaringan neural konvolusional (CNN), jaringan neural berulang (RNN), dan variasinya. Jenis model n-gram meliputi regresi logistik, perseptron multi-lapisan sederhana (MLP, atau jaringan neural yang terhubung sepenuhnya), pohon bertingkat yang digeser dan mendukung mesin vektor.

Dari eksperimen kami, kami telah mengamati bahwa rasio"jumlah sampel" (S) terhadap"jumlah kata per sampel" (W) berkorelasi dengan model yang berperforma baik.

Jika nilai rasio ini kecil (<1500), perseptron kecil berlapis yang mengambil n-gram sebagai input (yang akan kita sebut Opsi A) berperforma lebih baik atau setidaknya dan model urutan. MLP mudah ditentukan dan dipahami, dan memerlukan waktu komputasi yang jauh lebih sedikit daripada model urutan. Jika nilai untuk rasio ini besar (>= 1500), gunakan model urutan (Opsi B). Pada langkah berikut, Anda dapat langsung membuka subbagian yang relevan (berlabel A atau B) untuk jenis model yang Anda pilih berdasarkan rasio sampel/kata per sampel.

Dalam kasus set data ulasan IMDb kami, rasio sampel/kata per sampel adalah ~144. Ini berarti kita akan membuat model MLP.