Word Embedding dengan Word2vec

Word embeddings adalah proses konversi kata yang berupa karakter alphanumeric kedalam bentuk vector. Setiap kata adalah vector yang merepresentasikan sebuah titik pada space dengan dimensi tertentu. Dengan word embedding, kata-kata yang memiliki properti tertentu, misalnya berada pada konteks yang sama, atau memiliki semantic meaning yang sama berada tidak jauh satu sama lain pada space tersebut.

Word2Vec adalah model shallow neural network yang merubah representasi kata yang merupakan kombinasi dari karakter alphanumeric menjadi vector. Representasi vector tersebut memiliki properti relationship terhadap kata-kata yang berkaitan melalui proses training.

Arsitektur neural network yang digunakan pada word2vec adalah neural network dengan sebuah hidden layer yang disebut dengan projection layer dan di-training menggunakan stochastic gradient descent dengan algoritma backpropagation. Projection layer adalah mapping dari kata yang ada pada konteks n-gram ke dalam bentuk continuous vectors. Kata-kata yang muncul bersamaan atau berulang kali pada konteks N-gram memiliki tendensi untuk teraktifasi oleh weight yang sama, sehingga terjadi korelasi antar kata-kata.

Weights menghubungkan input layer dengan hidden layer, dan hidden layer dengan output layer. Weights diantara input layer dan hidden layer direpresentasikan dengan matriks W berukuran V x N, dimana V adalah dimensi dari input layer dan N adalah dimensi dari hidden layer. Sedangkan diantara hidden layer dan output layer, matriks W direpresentasikan dengan matriks berukuran N x V.

Terdapat dua model arsitektur yang dapat digunakan pada word2vec, yaituCBOW dan Skip-Gram . Kedua model tersebut dapat dilihat pada gambar 1 berikut. Gambar 1 Arsitektur word2vec. CBOW (kiri) dan Skip-gram (kanan)

Pada model CBOW, word2vec menggunakan kata-kata yang ada di sebelah kiri dan kanan kata target dan dibatasi dengan window untuk memprediksi kata target tersebut. Sedangkan skip-gram menggunakan sebuah kata untuk memprediksi kata-kata yang ada di sebelah kiri dan kanan kata tersebut yang dibatasi oleh window. Masing-masing kata yang digunakan sebagai input di-encode ke dalam one-hot vector. Perbedaan dari kedua model tersebut adalah model prediksi kata. Pada CBOW, terdapat intermediate layer yang akan melakukan kalkulasi average pada vector kata-kata input karena CBOW menerima sejumlah n kata sebagai input.

Window digunakan sebagai kernel untuk memperoleh input dan target words. Window digeser dari awal sampai akhir susunan kata. Ilustrasi dari window dapat dilihat pada gambar 2 sebagai berikut

Gambar 2 Ilustrasi window pada word2vec.

Pada gambar 2, ukuran dari window adalah 2. Kolom berwarna biru adalah center word, sedangkan kolom berwarna hijau adalah context words. Pada CBOW, center word digunakan sebagai target, dan context words digunakan sebagai input pada setiap iterasi. Sedangkan pada skip gram, center word digunakan sebagai target, dan context words digunakan sebagai target pada setiap iterasi.

 

Abba Suganda Girsang