• Home
  • About
  • Archives
  • Contact
  • Projects
Logo

  • Data Science
  • Machine Learning
  • Research

Cara Kerja Word Embedding Word2Vec | Catatan Penelitian #5

11 November 2020
Rifqi Fauzi Rahmadzani
1 Comment
  • Email
  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn
11 November 2020
1 Comment

Word2vec dikembangkan oleh Thomas Mikolov,  merupakan implementasi jaringan syaraf tiruan yang dapat mengolah kata-kata dari dataset yang sangat besar dengan waktu yang relatif singkat dan nilai akurasi yang lebih baik dibandingkan dengan metode yang pernah ada sebelumnya. Alat ini bekerja dengan cara mengambil korpus teks sebagai input, lalu menghasilkan representasi vektor dari setiap kata yang ada pada korpus teks tersebut sebagai output. Hasil dari file vektor ini dapat digunakan sebagai penelitian pada natural language processing  dan aplikasi machine learning. Selain itu, vektor kata tersebut juga dapat digunakan dalam mengukur jarak kedekatan terhadap vektor kata yang lain [1].

Terdapat dua arsitektur pemodelan Word2vec yang dapat digunakan untuk merepresentasikan vektor kata, arsitektur tersebut yaitu Continuous Bag-of-word (CBOW) dan Skip-gram.

CBOW

CBOW merupakan arsitektur untuk memprediksi current word yang berperan sebagai target dari konteks yang berperan sebagai input terhadap sekitarnya.

Gambar 1. Arsitektur CBOW

Pada Gambar 1 dapat dikatakan bahwa arsitektur CBOW merupakan kebalikan dari arsitektur Skip-gram, dimana CBOW akan mempelajari distribusi probabilitas dari konteks dengan window (jarak antar konteks kata dengan posisi inputan kata) yang sudah ditentukan [2].

Skip-gram

Skip-gram merupakan arsitektur yang menggunakan current word berperan sebagai input untuk memprediksi konteks yang berperan sebagai target terhadap sekitarnya. Skip-gram dapat mempelajari distribusi probabilitas dari kata-kata dalam sebuah konteks dengan windows yang sudah ditentukan [3].

Gambar 2 Arsitektur skip-gram

Pada Gambar 2 adalah ilustrasi dari arsitektur Skip-gram dalam memprediksi kata yang diberikan oleh kata disekitatnya.

Dalam membangun model fitur Word2vec melibatkan tiga proses yang berperan sebagai vocabulary builder, context builder, dan neural network (CBOW and Skip-gram architecture) [4], seperti yang ditunjukkan pada Gambar 3.

Gambar 3 Arsitektur utama word2vec

Vocabulary builder adalah blok bangunan pertama dari model word2vec. Dibutuhkan data teks mentah, sebagian besar dalam bentuk kalimat. Vocabulary builder digunakan untuk membangun kosakata dari korpus teks. Hal ini akan mengumpulkan semua kata-kata unik dari korpus dan membangun kosakata. Hasil dari proses pembangun kosakata adalah kamus kata-kata dengan indeks kata dan nilai kemunculan setiap kata.

Context builder menggunakan output dari vocabulary builder. Context builder adalah proses untuk mengetahui hubungan antara kemunculan satu kata dengan kata-kata lain di sekitarnya dengan menggunakan konsep konteks window atau disebut juga sliding window. Secara umum, ukuran jendela konteks di NLP adalah 5 hingga 8 kata tetangga. Jika kita memilih ukuran konten window adalah 5, maka akan muncul 5 kata di sebelah kiri dan kanan dari kata tengah. Tabel 1 menunjukkan contoh dengan ukuran window = 1. Kata yang digarisbawahi adalah kata tengah. Hasil content builder akan digunakan dalam proses selanjutnya, yaitu bagian jaringan saraf.

Tabel 1 Contoh context window
TeksPasangan kata
Saya suka bahasa Indonesia.(Saya, suka)
Saya suka bahasa Indonesia.(suka, bahasa), (suka, Saya)
Saya suka bahasa Indonesia.(bahasa, Indonesia), (bahasa, suka)
Saya suka bahasa Indonesia.(Indonesia, .), (Indonesia, bahasa)

Neural network (CBOW and Skip-gram architecture) digunakan untuk melakukan pelatihan sehingga setiap kata dapat diwakili oleh vektor. Word2vec menggunakan arsitektur jaringan saraf tiruan yang dibentuk dari arsitektur CBOW dan Skip-gram. Gambar 4 menunjukkan arsitektur jaringan saraf untuk menghasilkan word2vec.

Gambar 4 Struktur input dan output jaringan saraf untuk membuat word2vec

Agar mempermudah memahami arsitektur Word2vec maka akan diilustrasikan sebagaimana berikut, misal kita memiliki sebuah kalimat “Kucing melihat seekor tikus, kucing mengejar tikus, tikus berlari keluar rumah” korpus kosakata dalam kalimat tersebut memiliki delapan kata, selanjutnya disusun berdasarkan urutan abjad, masing-masing kata diberi indeks seperti pada Tabel 2 berikut.

Tabel 2 Indeks korpus word2vec
KosakataIndeks
Berlari1
Keluar2
Kucing3
Melihat4
Mengejar5
Rumah6
Seekor7
Tikus8

Dalam Tabel 2 jaringan syaraf memiliki delapan neuron input dan delapan neuron output. Asumsikan bahwa akan digunakan tiga neuron pada hidden layer. Hal ini akan membentu matriks W1 = 8×3 dan W0 = 3×8. Sebelum memulai pelatihan, matriks ini akan diinisialisasi sebagai nilai acak yang kecil seperti biasa dalam pelatihan jaringan syaraf tiruan. Nilai W1dan W0 dapat diinisialisasikan sebagai berikut:

Misalkan jaringan akan mempelajari hubungan antara kata “keluar” dengan kata “melihat”. Maka jaringan harus menunjukkan probabilitas tinggi terhadap kata “melihat” saat kata “keluar” dimasukkan dalam jaringan. Secara terminologi word embedding, kata “keluar” disebut konteks dan kata “melihat” disebut sebagai sasaran kata. Diasumsikan vektor input pada kata “keluar” akan dikodekan menjadi [01000000], indeks kedua bernilai 1, hal ini karena kata input “keluar” berada pada posisi kedua dalam daftar korpus kata. Sementara kata “melihat” yang menjadi target dikodekan menjadi [00010000]. Dengan input vektor dari kata “keluar”, output pada hidden layer neuron dapat dihitung dengan persamaan 1.

Persamaan 1

Sebagaimana H adalah hidden layer, X adalah neuron input sebelumnya dan W1 adalah bobot, output dari hidden neuron yaitu H yang direpresentasikan dari baris kedua matriks W1. Hal ini karena input yang diberikan ke jaringan dikodekan menggunakan representasi “1-out of-V”. Sehingga hanya satu baris masukkan yang mempunyai nilai satu dan sisanya untuk jalur input diatur ke nol. Dengan demikian fungsi input ke koneksi hidden layer yaitu menyalin vektor input kata ke hidden layer, kemudian untuk outputnya hidden layer diperoleh pada persamaan 2.

Persamaan 2

Setelah itu untuk menghasilkan probabilitas kata, Word2vec menggunakan fungsi Softmax dalam lapisan output, maka probabilitas dari delapan kata dalam korpus dapat dihitung menggunakan persamaan 3.

Persamaan 3

Dengan demikian probabilitas dari delapan kata dalam korpus menghasilkan

Nilai yang dicetak tebal merupakan hasil probabilitas kata “melihat” mengingat vektor sasaran berada pada indeks keempat [00010000] dalam korpus kata. Kesalahan vektor untuk output layer dapat dihitung dalam mengurangkan vektor probabilitas dengan vektor sasaran. Setelah diketahui tingkat kesalahan, bobot pada matriks W1 dan W0 dapat diperbarui menggunakan backpropagation. Setelah ini, pelatihan dapat diteruskan terhadap berbagai pasangangan konteks-target kata dari korpus.

Berikut juga sudah saya sediakan proses perhitungan word2vec dalam file excel.

Referensi

[1] M. . Nabila Nanda Widyastuti, Arif Bijaksana, Ir., M.Tech., Ph.D, Indra Lukmana Sardi, S.T., “Analisis Word2vec untuk Perhitungan Kesamaan Semantik antar Kata,” e-Proceeding Eng., vol. Vol.5, No., no. 3, hal. 7603–7612, 2018.

[2] T. Mikolov, K. Chen, G. Corrado, dan J. Dean, “Efficient Estimation of Word Representations in Vector Space,” arXiv Prepr. arXiv1301.3781, hal. 1–12, 2013.

[3] T. Mikolov, K. Chen, G. Corrado, dan J. Dean, “Distributed Representations of Words and Phrases and their Compositionality,” Neural Inf. Process. Syst., vol. 1, hal. 1–9, 2006.

[4] J. Patihullah dan E. Winarko, “Hate Speech Detection for Indonesia Tweets Using Word Embedding And Gated Recurrent Unit,” IJCCS (Indonesian J. Comput. Cybern. Syst., vol. 13, no. 1, hal. 43, 2019.

  • Email
  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn
Previous

Preprocessing Data Teks Menggunakan Python | Catatan Penelitian #4

Next

Membuat Model Word2Vec Menggunakan Library Python Gensim | Catatan Penelitian #6

The Author

Rifqi Fauzi Rahmadzani

Being someone who is able to contend with my interest and to learn new imaginative, intuitive, and communicative things. The greatest hope of my ability can be beneficial to others.

  • facebook
  • twitter
  • instagram
  • linkedin

1 Comment

  • Aisha K
    8 months ago
    Reply

    Assalamualaikum Wr.Wb, alhamdulillah penjelasan diatas sangat jelas tapi ada beberapa hal yang ingin saya tanyakan.
    -Untuk ukuran window apakah ada dasar penentuannya?
    -Jika setelah perhitungan word2vec ingin dilanjutkan untuk perhitungan cosine similarity, angka mana yang di gunakan?
    -Bobot kan menggunakan angka random ya Kak, oleh karena itu pasti ada langkah pengupdatean bobot. Apakah ada kriteria tertentu sampai update bobot dihentikan?
    Terima kasih sebelumnya🙏

Leave A Comment Cancel reply

author image

The Author

Rifqi Fauzi Rahmadzani

  • facebook
  • twitter
  • instagram

Being someone who is able to contend with my interest and to learn new imaginative, intuitive, and communicative things. The greatest hope of my ability can be beneficial to others.

Logo

© 2021 Rifqifai.com. Developed by Rifqi Fauzi Rahmadzani