Bagaimana cara kerja pengambilan sampel negatif di word2vec?

19

Saya telah berusaha keras untuk memahami konsep pengambilan sampel negatif dalam konteks word2vec. Saya tidak dapat mencerna ide pengambilan sampel [negatif]. Misalnya dalam makalah Mikolov, harapan pengambilan sampel negatif dirumuskan sebagai

catatanσ(w,c)+kEcNPD[catatanσ(-w,cN)].

Saya mengerti istilah kiri , tapi aku tidak bisa memahami ide sampel negatif pasangan kata-konteks.catatanσ(w,c)

Upendra Kumar
sumber
4
Sungguh konyol bagaimana tersebar dokumentasi untuk word2vec. Anda akan menemukan derivasi pengambilan sampel negatif di sini: arxiv.org/pdf/1402.3722v1.pdf
Alex R.
Saya membaca penjelasan yang Anda sebutkan dan memahami matematika di baliknya. Tetapi saya tidak dapat mencerna intuisi di balik pengambilan sampel.
Upendra Kumar
Terkait: stackoverflow.com/a/27864657
amoeba mengatakan Reinstate Monica

Jawaban:

27

Masalah

Ada beberapa masalah dengan mempelajari vektor kata menggunakan jaringan saraf "standar". Dengan cara ini, kata vektor dipelajari sementara jaringan belajar untuk memprediksi kata berikutnya yang diberi jendela kata (input dari jaringan).

Memprediksi kata berikutnya seperti memprediksi kelas. Yaitu, jaringan semacam itu hanyalah sebuah "standar" multinomial (multi-class) classifier. Dan jaringan ini harus memiliki neuron keluaran sebanyak kelas yang ada. Ketika kelas adalah kata-kata aktual, jumlah neuron sangat besar .

Jaringan saraf "standar" biasanya dilatih dengan fungsi biaya lintas-entropi yang membutuhkan nilai-nilai neuron keluaran untuk mewakili probabilitas - yang berarti bahwa "skor" keluaran yang dihitung oleh jaringan untuk setiap kelas harus dinormalisasi, dikonversi menjadi probabilitas aktual untuk setiap kelas. Langkah normalisasi ini dicapai melalui fungsi softmax . Softmax sangat mahal bila diterapkan pada lapisan keluaran yang besar.

Solusi (a)

Untuk mengatasi masalah ini, yaitu, perhitungan mahal dari softmax, Word2Vec menggunakan teknik yang disebut estimasi noise-contrast. Teknik ini diperkenalkan oleh [A] (diformulasikan ulang oleh [B]) kemudian digunakan dalam [C], [D], [E] untuk mempelajari embeddings kata dari teks bahasa alami yang tidak diberi label.

Gagasan dasarnya adalah untuk mengubah masalah klasifikasi multinomial (karena masalah memprediksi kata berikutnya ) menjadi masalah klasifikasi biner . Artinya, alih-alih menggunakan softmax untuk memperkirakan distribusi probabilitas sebenarnya dari kata output, regresi logistik biner (klasifikasi biner) digunakan sebagai gantinya.

Untuk setiap sampel pelatihan, classifier yang ditingkatkan (dioptimalkan) diumpankan pasangan yang benar (kata tengah dan kata lain yang muncul dalam konteksnya) dan sejumlah pasangan yang rusak secara acakk (terdiri dari kata tengah dan kata yang dipilih secara acak dari kosa kata). Dengan belajar membedakan pasangan yang sebenarnya dari pasangan yang rusak, classifier pada akhirnya akan belajar kata vektor.

Ini penting: alih-alih memprediksi kata berikutnya (teknik pelatihan "standar"), penggolong yang dioptimalkan hanya memprediksi apakah sepasang kata itu baik atau buruk .

Word2Vec sedikit menyesuaikan proses dan menyebutnya pengambilan sampel negatif . Di Word2Vec, kata-kata untuk sampel negatif (digunakan untuk pasangan yang korup) diambil dari distribusi yang dirancang khusus, yang lebih jarang menggunakan kata-kata yang lebih sering untuk diambil.

Referensi

[A] (2005) - Estimasi kontras: Melatih model log-linear pada data yang tidak berlabel

[B] (2010) - Estimasi kontras-bising: Prinsip estimasi baru untuk model statistik yang tidak dinormalisasi

[C] (2008) - Arsitektur terpadu untuk pemrosesan bahasa alami: Jaringan saraf dalam dengan pembelajaran multitask

[D] (2012) - Algoritma cepat dan sederhana untuk pelatihan model bahasa probabilistik saraf .

[E] (2013) - Mempelajari penanaman kata secara efisien dengan estimasi noise-contrastive .


Jawabannya didasarkan pada beberapa catatan lama saya - Saya harap semuanya benar :)

turdus-merula
sumber
2
Anda menyebutkan "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often",. Saya bertanya-tanya apakah ini benar? Karena beberapa sumber lain mengatakan kata-kata yang lebih sering diambil sebagai sampel negatif. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler 傲 来 国 主
BTW, apa alasan untuk memilih dari kata-kata tinggi atau rendah sebagai sampel negatif? Apakah pengambilan sampel acak dari kata-kata non-konteks tidak cukup baik?
Tyler 傲 来 国 主
@Tyler 傲 来 国 主 Seperti yang saya pahami, kata-kata yang kurang sering lebih informatif karena cenderung spesifik konteks. Kata-kata yang lebih sering cenderung dikaitkan dengan lebih banyak kata-kata lain (ambil contoh ekstrem "the"). Ini membuat kata-kata yang jarang "sulit" untuk mendapatkan yang benar (Anda belajar lebih cepat) dan juga mengurangi kemungkinan memilih kata yang sebenarnya bukan sampel negatif (karena dengan korpora besar, memeriksa ini mahal dan sering ditinggalkan).
drevicko
@drevicko Kata yang lebih jarang lebih informatif, tetapi kata yang lebih jarang menjadi sampel negatif kurang informatif. Menurut teori Informasi, semakin tinggi probabilitasnya, semakin kecil informasi-diri. Kejadian kata-kata yang sering menjadi sampel negatif untuk kata target yang diberikan harus probabilitas yang lebih kecil, yang berarti Informasi kuantitas lebih tinggi.
Tyler 傲 来 国 主