Word Embedding
Word embedding adalah representasi kata dalam bentuk vektor berdimensi rendah yang memungkinkan komputer memahami kata-kata berdasarkan konteks dan makna semantik. Alih-alih menyimpan kata-kata sebagai entitas diskrit atau satu hot encoding, word embedding mengonversi kata menjadi vektor angka, di mana kata yang memiliki makna serupa berada dekat satu sama lain dalam ruang vektor.
Mengapa Word Embedding Dibutuhkan?
Pada awalnya, komputer menyimpan kata-kata dalam bentuk one-hot encoding, yang mana setiap kata diwakili oleh vektor yang hanya memiliki satu nilai “1” pada indeks tertentu, sementara sisanya “0”. Ini sangat tidak efisien dan tidak memberi konteks pada hubungan antar kata. Misalnya, dalam one-hot encoding, kata “bank” yang berarti lembaga keuangan dan “bank” yang berarti sisi sungai akan memiliki representasi yang sama.
Algoritma
Beberapa algoritma yang digunakan untuk menghasilkan word embeddings dalam Natural Language Processing (NLP). Berikut adalah beberapa algoritma utama yang paling populer:
1. Word2Vec
adalah salah satu algoritma yang paling banyak digunakan untuk menghasilkan word embeddings. Word2Vec mengonversi kata-kata menjadi vektor berdimensi rendah yang mencerminkan hubungan semantik antar kata.
Ada dua pendekatan utama dalam Word2Vec:
- CBOW (Continuous Bag of Words): Memperkirakan kata target berdasarkan kata-kata di sekitarnya.
- Skip-Gram: Memperkirakan konteks (kata-kata di sekitar) berdasarkan kata target.
Kelebihan
- Menangkap hubungan semantik antar kata.
- Lebih efisien untuk dataset besar.
Kekurangan:
- Tidak mempertimbangkan urutan kata secara eksplisit (meskipun ada beberapa teknik untuk mengatasi ini).
Contoh: “king” — “man” + “woman” = “queen”.
2. GloVe (Global Vectors for Word Representation)
adalah algoritma yang mengonversi kata-kata menjadi vektor berdimensi rendah berdasarkan statistik global dari korpus teks.
GloVe menggunakan matriks ko-occurrence kata-kata dalam korpus, di mana ia memperhitungkan seberapa sering dua kata muncul bersama dalam jendela konteks tertentu.
Kelebihan:
- Menggunakan informasi global yang lebih kaya.
- Tidak memerlukan pemodelan langsung dari urutan kata.
Kekurangan:
- Waktu pelatihan bisa lebih lama dibandingkan Word2Vec.
Penjelasan: GloVe mengoptimalkan cost function yang didasarkan pada logaritma dari probabilitas ko-occurrence kata.
3. FastText
adalah algoritma yang dikembangkan oleh Facebook, dan merupakan perpanjangan dari Word2Vec.
Alih-alih hanya menghasilkan vektor untuk kata penuh, FastText juga menghasilkan vektor untuk sub-kata (misalnya n-gram karakter). Ini memungkinkan FastText untuk menangani kata-kata yang belum pernah ditemukan sebelumnya (out-of-vocabulary).
Kelebihan:
- Dapat menghasilkan representasi yang lebih baik untuk kata-kata yang jarang atau tidak ada dalam korpus pelatihan (out-of-vocabulary).
Kekurangan:
- Proses pelatihan sedikit lebih lambat karena mempertimbangkan sub-kata.
4. ElMO (Embeddings from Language Models)
adalah representasi kata berbasis konteks yang mengandalkan model bahasa bidirectional LSTM. Berbeda dengan model Word2Vec atau GloVe yang menghasilkan representasi kata statis, ELMo menghasilkan representasi dinamis berdasarkan konteks kalimat di mana kata tersebut digunakan.
Kelebihan:
- Dapat menangkap konteks kata dengan lebih baik.
Kekurangan:
- Lebih mahal secara komputasional.
Contoh: ELMo dapat memberikan representasi yang berbeda untuk kata “bank” tergantung pada apakah kata tersebut merujuk pada lembaga keuangan atau tepi sungai.
5. BERT (Bidirectional Encoder Representations from Transformers)
adalah model berbasis transformer yang telah dilatih untuk memahami konteks kedua arah (kiri dan kanan) dari sebuah kata dalam kalimat. Model ini sangat populer untuk berbagai tugas NLP seperti analisis sentimen, klasifikasi teks, dan lain-lain.
Kelebihan:
- Dapat menangkap hubungan konteks yang sangat dalam karena model transformer.
Kekurangan:
- Memerlukan sumber daya komputasi yang besar dan waktu pelatihan yang lebih lama.
Contoh: BERT bisa memberikan representasi yang berbeda untuk kata “mask” tergantung apakah itu berhubungan dengan masker atau topeng.
6. Transformers (GPT-2, GPT-3, etc.)
GPT (Generative Pretrained Transformer) adalah model berbasis transformer yang dilatih dengan tujuan untuk menghasilkan teks. Meskipun tidak secara eksplisit dirancang untuk menghasilkan word embeddings, model seperti GPT-3 telah menunjukkan kinerja luar biasa dalam pemahaman konteks dan menghasilkan representasi kata yang sangat baik.
Kelebihan:
- Dapat menghasilkan representasi konteks yang sangat kuat, bahkan untuk kata-kata yang tidak pernah dilihat sebelumnya.
Kekurangan:
- Sama seperti BERT, model GPT membutuhkan banyak daya komputasi dan pelatihan yang lebih lama.
7. Latent Semantic Analysis (LSA)
adalah teknik statistik yang digunakan untuk mengurangi dimensi data teks dalam rangka menemukan pola hubungan antar kata. LSA menggunakan singular value decomposition (SVD) untuk mengonversi dokumen teks menjadi vektor berdimensi lebih rendah yang lebih efisien.
Kelebihan:
- Sederhana dan efisien untuk memahami hubungan antar dokumen.
Kekurangan:
- Tidak sefleksibel atau sekuat model berbasis neural network seperti Word2Vec atau GloVe.
8. Skip-Gram and CBOW (from Word2Vec)
- Skip-Gram adalah salah satu pendekatan dalam Word2Vec di mana model berusaha untuk memprediksi kata-kata di sekitar kata target.
- CBOW (Continuous Bag of Words) adalah pendekatan lain dalam Word2Vec yang memprediksi kata target berdasarkan kata-kata sekitarnya.
Kelebihan:
- Mempercepat pelatihan dan hasil yang lebih baik untuk dataset besar.
Summary
- Word2Vec: Menangkap hubungan semantik antar kata dengan cara CBOW atau Skip-Gram.
- GloVe: Menggunakan statistik global untuk membangun embeddings.
- FastText: Menangani kata baru dengan menggunakan sub-kata.
- ELMo: Embedding berbasis konteks menggunakan LSTM bidirectional.
- BERT: Pembelajaran berbasis konteks dengan transformer untuk representasi yang sangat kuat.
- GPT: Model berbasis transformer yang mengelola representasi kata dengan sangat baik.
- LSA: Mengurangi dimensi data teks untuk menemukan hubungan antar kata.
Masing-masing algoritma ini memiliki kegunaan dan aplikasi tertentu, tergantung pada kebutuhan proyek atau tugas NLP yang dihadapi.