![](https://crypto4nerd.com/wp-content/uploads/2023/06/1bjHETYxRSJ-JZbM4xSuj1A-1024x509.png)
Input Encoding
Komputer sangat baik dalam memproses data numerik, oleh karena itu kita harus terlebih dahulu merepresentasikan data yang kita miliki ke dalam numerik agar dapat diproses oleh model. kita dapat melakukannya dengan cara meng-“encode” nya.
Ada banyak cara untuk dapat meng-encode kata-kata dalam vocabulary kita agar dapat direpresentasikan ke dalam angka, seperti:
1-hot encoding dimana setiap kata yang kita miliki akan di konversi menjadi 1-hot vector
Atau juga Binary encoding dimana data kita akan di konversi kedalam bentuk binary
Atau juga Label encoding dimana setiap kata dapat kita konversi kedalam integer seperti ini
Pada artikel kali ini kita akan mengkonversi kata yang kita miliki ke dalam bentuk integer (Label encoding), dalam hal ini kita akan menggunakan salah satu fungsi dalam library tensorflow yaitu fungsi TextVectorization (tf.data.TextVectorization).
Word Embedding
Setelah kita berhasil merubah data-data kita yang awalnya string menjadi vector, sekarang kita sudah bisa memasukan data tersebut ke dalam model neural network, namun hasil encoding tadi masih belum bisa merepresentasikan setiap kata tersebut secara semantik, misalnya kita memiliki encoding untuk setiap kata seperti ini :
Ayam = [43]
Raja = [44]
Ratu = [51]
Dalam hal ini hasil encoding untuk kata Raja lebih dekat dengan kata Ayam dibandingkan dengan kata Ratu, yang pada kenyataan nya seharusnya kata Raja secara semantik akan lebih dekat dengan kata Ratu dibandingkan kata Ayam.
Oleh karena itu kita memerlukan Word embedding untuk dapat merepresentasikan setiap kata yang ada pada vocabulary kita kedalam vector yang lebih memiliki arti secara semantik, bahkan dengan word embedding yang bagus kita dapat melakukan operasi matematika pada sebuah vektor kata untuk mendapatkan vektor kata yang lain, misalnya vektor dari kata “Ratu” jika dikurangi dengan vektor dari kata “Perempuan” dan ditambah vektor kata “Pria” maka akan menghasilkan vektor kata “Raja”.
Saat ini sudah ada banyak pre-trained model word embedding yang populer seperti : Word2Vec, GloVe, ELMO, BERT, dll. namun pada artikel ini kita tidak akan terlalu banyak membahas model-model ini.
Berdasarkan source code resmi nya, pada model GPT-2 dan juga BERT tidak menggunakan pre-trained model pada word embedding nya, melainkan menggunakan word embedding yang akan “belajar” pada setiap iterasi nya. dalam hal ini kita bisa menggunakan salah satu fungsi yang ada pada library Tensorflow yaitu fungsi Layer Embedding (tf.keras.layers.Embedding).