Apa itu embedding dalam machine learning?
Embedding adalah vector berisi angka hasil belajar yang mewakili satu item diskret, seperti kata, produk, atau pengguna, sehingga item yang mirip mendapat vector yang mirip. Alih-alih kode one-hot yang sparse dengan satu slot per item, setiap item mendapat dense vector pendek, biasanya dengan beberapa ratus dimensi. Jarak dan arah antar-vector ini membawa makna yang dipelajari model dari data.
Embedding adalah input layer di hampir semua model bahasa: setiap token diubah menjadi vector lewat lookup sebelum proses lainnya berjalan. Embedding juga menggerakkan semantic search dan retrieval-augmented generation, sistem rekomendasi yang mencocokkan pengguna dengan produk, serta pencarian gambar yang membandingkan foto dengan teks. Word2vec (2013) membuat word embedding banyak dipakai, dan ide yang sama kini berlaku untuk kalimat, gambar, kode, dan graph node.
Ide utama
- Embedding memetakan setiap item diskret, seperti kata, ke dense vector pendek berisi angka hasil belajar.
- Vector one-hot bersifat sparse dan memperlakukan setiap pasang kata sebagai sama-sama tidak berhubungan.
- Embedding layer adalah matriks weight, dan mengambil satu barisnya sama dengan mengalikan dengan vector one-hot.
- Kata yang dipakai dalam konteks yang mirip mendapat vector yang mirip, jadi cosine similarity mengikuti keterkaitan makna.
- Arah di dalam ruang ini bisa menyimpan hubungan, seperti pada king − man + woman ≈ queen.
- Ide yang sama bisa membuat embedding untuk produk, pengguna, graph node, kalimat, dan gambar.
Pertanyaan umum
Apa bedanya embedding word2vec dan Transformer?
Word2vec memberi setiap kata satu vector tetap, jadi "bank" punya embedding yang sama di "river bank" dan "bank account". Transformer mulai dari token embedding yang tetap, lalu mencampurkan kata-kata di sekitarnya, sehingga vector output-nya kontekstual. Model seperti BERT memberi setiap kemunculan kata vector-nya sendiri.
Berapa dimensi yang sebaiknya dimiliki embedding?
Word vector klasik memakai 100 sampai 300 dimensi. Model bahasa memakai 768 sampai beberapa ribu, dan model sentence embedding umumnya menghasilkan 384 sampai 3.072. Dimensi yang lebih banyak bisa menyimpan perbedaan yang lebih halus, tetapi memakan memori dan butuh lebih banyak data agar training-nya bagus.
Sebaiknya embedding dilatih dari nol atau memakai yang pretrained?
Kalau datanya sedikit, memulai dari vector pretrained seperti GloVe atau model bahasa pretrained biasanya lebih baik. Embedding itu kemudian bisa di-freeze atau di-fine-tune bersama bagian network lainnya. Melatih dari nol masuk akal untuk item yang tidak punya vector pretrained, seperti ID produk di sistem rekomendasi.
Apa itu embedding model?
Embedding model adalah network yang dilatih untuk mengubah seluruh input, seperti kalimat atau gambar, menjadi satu vector untuk dibandingkan. Vector ini disimpan di vector database untuk semantic search dan retrieval-augmented generation. Model ini biasanya dilatih dengan contrastive learning, yang mendekatkan pasangan yang cocok dan menjauhkan pasangan yang tidak berhubungan.
Penjelasan terkait
- Word2Vec & Word Embedding · Mempelajari representasi dense vector, dengan kata yang mirip saling berdekatan di dalam ruang
- CBOW (Continuous Bag of Words) · Memprediksi kata pusat dari konteksnya: arsitektur perata-rataan di balik Word2Vec
- Skip-gram · Memprediksi kata konteks dari kata pusat: arsitektur Word2Vec yang dilatih dengan negative sampling
- Norm dan Metrik Jarak · L1, L2, cosine similarity: cara mengukur kedekatan di ruang vector
- Retrieval-Augmented Generation · Mendasarkan output model bahasa pada dokumen yang diambil untuk mengurangi halusinasi
- Tokenization & BPE · Cara teks menjadi angka, dari karakter sampai subword token lewat byte-pair encoding
Referensi
- Mikolov et al. (2013), "Efficient Estimation of Word Representations in Vector Space"
- Mikolov et al. (2013), "Distributed Representations of Words and Phrases and their Compositionality"
- Pennington, Socher & Manning (2014), "GloVe: Global Vectors for Word Representation", EMNLP
- Grover & Leskovec (2016), "node2vec: Scalable Feature Learning for Networks"
- Bolukbasi et al. (2016), "Man is to Computer Programmer as Woman is to Homemaker? Debiasing Word Embeddings"
Terakhir diperbarui