Catatan kecil mengenai Skip-Gram Modelling

Ulasan dari paper “A Closer Look at Skip-gram Modelling” oleh David Guthrie, Ben Allison, Wei Liu, Louise Guthrie, dan Yorick Wilks (2006).
http://homepages.inf.ed.ac.uk/ballison/pdf/lrec_skipgrams.pdf

Language model yang sudah dikenal dan banyak digunakan oleh peneliti adalah n-gram.  N-gram (adjacent n-gram) merupakan kumpulan dari item sejumlah n yang disusun secara berurutan dari text atau speech. Skip-gram bisa digunakan untuk menangani data sparsity yang banyak ditemui sebagai problem besar pada penelitian natural language processing.

Skip-gram merupakan teknik yang digunakan di area speech processing, dimana n-gram yang dibentuk kemudian ditambahkan juga dengan tindakan “skip” pada token-tokennya. Sebagai contohnya, apabila hendak dibentuk trigram dari kalimat “I hit the tennis ball”, maka hasilnya akan menjadi:

  1. I hit the
  2. hit the tennis
  3. the tennis ball

Akan tetapi, ada pendapat yang mengatakan bahwa ada kombinasi 3 kata dari kalimat tersebut yang penting dari kalimat tersebut, contohnya “hit the ball”. Skip-gram memungkinkan bentuk kombinasi tersebut untuk dimodelkan.

Untuk membentuk k-skip-n-grams, ada dua nilai yang harus didefinisikan, yaitu k (jumlah kata yang di-skip) dan n (banyak kata dalam n-gram, e.g. bigram (2-gram), trigram (3-gram), dll.).

Hasil dari 4-skip-n-gram akan mencakup 4 skip, 3 skip, 3 skip, 2 skip, 1 skip, dan 0 skip (n-gram jenis trakhir ini dibentuk dari adjacent words).

Apabila kita memiliki kalimat sebagai berikut:

“Penelitian membutuhkan ketekunan yang tinggi”

Maka, n-gram dan skip-gram yang terbentuk adalah sebagai berikut:

  • Bigram: {penelitian membutuhkan, membutuhkan ketekunan, ketekunan yang, yang tinggi}
  • 2-skip-bi-gram (mencakup 1-skip-bi-gram dan 0-skip-bi-gram):

0-skip-bi-gram: {Penelitian membutuhkan, membutuhkan ketekunan, ketekunan yang, yang tinggi}, 1-skip-bi-gram: {penelitian ketekunan, membutuhkan yang, ketekunan tinggi}, 2-skip-bi-gram: {penelitian yang, membutuhkan tinggi}

Skip yang dilakukan tidak diperbolehkan untuk melewati batas dari satu kalimat.

Jumlah dari skip-gram yang terbentuk dengan diketahui jumlah n pada n-gram yang hendak dibentuk bisa dihitung. Untuk sejumlah n kata pada kalimat, rumus untuk menghitung jumlah trigram dengan jumlah skip k adalah:

(n – (k+2) ) (k+1), untuk n > k+3

Secara lebih rinci, data lengkap mengenai jumlah data hasil pemodelan n-gram dan k-skip-n-gram adalah sebagai berikut:

skip-gram

Training data yang digunakan adalah British National Corpus (BNC) sejumlah 100 juta kata dan English Gigaword sejumlah 1.7 miliar kata digunakan untuk mengujicobakan pemodelan skip-gram pada data testing yang diambil dari Gigaword Corpus (300000 kata), Eight Recent New Documents, dan Google Translation (7 artikel berita di Cina dan diterjemahkan ke dalam Bahasa Inggris).

Dari 2 kali eksperimen yang membandingkan adjacent n-gram dengan k-skip-n-gram, diperoleh hasil bahwa

  1. Banyak bigram yang terobservasi ketika menggunakan skip, dan muncul di data testing
  2. Skip-gram tidak meningkatkan coverage trigram. Hal ini disebabkan karena dokumen yang digunakan bukan korpus pada domain yang sama.

Dari sisi manfaat, skip-gram bisa mendemonstrasikan secara akurat untuk memodelkan context namun tidak condong pada efek dari trigram modelling.

Seringkali memperbesar ukuran korpus bukanlah sebuah pilihan yang baik karena resource yang terbatas. Skip-gram bisa menjadi alternative untuk peningkatan ukuran training data. Skip-gram modelling lebih efektif digunakan untuk meng-cover trigram daripada memperbesar jumlah korpus untuk training.

Kekurangan dari skip-gram modelling adalah peningkatan yang besar pada processing time.

Skip-gram modelling ini dimanfaatkan oleh Google dalam menjalankan program deep learning Word2Vec untuk membentuk word representation dalam bentuk vektor.

One thought on “Catatan kecil mengenai Skip-Gram Modelling

Leave a Reply

Your email address will not be published. Required fields are marked *