Apa itu model skip-gram?
Skip-gram adalah arsitektur Word2Vec yang memprediksi kata-kata di sekitar dari satu kata pusat. Setiap pasangan (pusat, konteks) di dalam sliding window adalah satu contoh training, dan model menyesuaikan vector kata pusat sampai tetangga aslinya mendapat skor tinggi. Dalam praktiknya, skip-gram dilatih dengan negative sampling, pengganti murah untuk softmax penuh.
Skip-gram dengan negative sampling (SGNS) adalah susunan Word2Vec yang paling banyak dipakai dan menghasilkan vector yang kuat untuk kata langka. Resep yang sama berlaku untuk urutan token apa pun: DeepWalk dan node2vec menerapkannya pada random walk di graf, dan recommender system menerapkannya pada urutan produk atau lagu untuk mempelajari item embedding. Trik training-nya, yaitu negative sampling dan subsampling kata yang sering muncul, muncul lagi di metode contrastive learning yang lebih baru.
Ide utama
- Skip-gram memprediksi setiap kata konteks secara terpisah dari kata pusat.
- Setiap kata punya input vector dan output vector; input vector yang disimpan sebagai embedding.
- Softmax penuh butuh satu dot product per kata kosakata untuk setiap pasangan training.
- Negative sampling mengubah setiap prediksi menjadi k + 1 keputusan logistik biner.
- Subsampling membuang kata yang sering muncul dengan probabilitas 1 − √(t / f(w)).
- Skip-gram lebih lambat daripada CBOW, tetapi mempelajari vector yang lebih baik untuk kata langka.
Pertanyaan umum
Kenapa disebut skip-gram?
Namanya berasal dari skip-gram dalam pemodelan bahasa, yaitu n-gram yang boleh punya celah, sehingga "the mat" dihitung sebagai pasangan dalam "the cat sat on the mat" walaupun ada kata di antaranya. Memasangkan kata pusat dengan setiap kata di window-nya, dekat atau jauh, adalah ide yang sama.
Apa arti SGNS?
SGNS adalah singkatan dari skip-gram with negative sampling, kombinasi yang dipakai secara bawaan oleh sebagian besar implementasi Word2Vec ketika skip-gram dipilih. Istilah ini umum di makalah riset yang membandingkan Word2Vec dengan metode berbasis hitungan.
Apakah skip-gram bisa mempelajari vector untuk frasa?
Bisa. Makalah kedua tahun 2013 lebih dulu mencari pasangan kata yang muncul bersama jauh lebih sering daripada peluang acaknya, seperti "New York" atau "Air Canada", lalu menggabungkannya menjadi satu token. Skip-gram kemudian mempelajari satu vector per frasa, yang membantu ketika makna frasa lebih dari sekadar gabungan bagian-bagiannya.
Apakah skip-gram dipakai di luar teks?
Ya. Data apa pun yang berbentuk urutan item diskret bisa dipakai. DeepWalk dan node2vec membuat random walk pada graf dan melatih skip-gram di atasnya untuk membuat embedding node, sedangkan sistem rekomendasi musik dan e-commerce melatihnya pada sesi mendengarkan atau menjelajah untuk membuat embedding lagu dan produk.
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
- Embedding · Mengubah kata dan kategori menjadi vector
- Softmax, Logit, dan Temperature · Mengubah skor mentah menjadi probabilitas
- Probabilitas dan Distribusi · Lemparan koin, kurva lonceng, dan matematika ketidakpastian
- Learning Rate Scheduling · Step decay, cosine annealing, warmup, dan cyclical LR
Referensi
- Mikolov et al. (2013), "Distributed Representations of Words and Phrases and their Compositionality", NeurIPS
- Mikolov et al. (2013), "Efficient Estimation of Word Representations in Vector Space"
- Goldberg & Levy (2014), "word2vec Explained: Deriving Mikolov et al.'s Negative-Sampling Word-Embedding Method"
- Rong (2014), "word2vec Parameter Learning Explained"
Terakhir diperbarui