Pertanyaan tentang Continuous Bag of Words

11

Saya mengalami kesulitan memahami kalimat ini:

Arsitektur yang diusulkan pertama mirip dengan NNLM feedforward, di mana lapisan tersembunyi non-linear dihapus dan lapisan proyeksi dibagi untuk semua kata (bukan hanya matriks proyeksi); dengan demikian, semua kata diproyeksikan ke posisi yang sama (vektornya dirata-ratakan).

Apa lapisan proyeksi vs matriks proyeksi? Apa artinya mengatakan bahwa semua kata diproyeksikan ke posisi yang sama? Dan mengapa itu berarti bahwa vektor mereka dirata-ratakan?

Kalimat tersebut adalah yang pertama dari bagian 3.1 dari estimasi Efisien representasi kata dalam ruang vektor (Mikolov et al. 2013) .

user70394
sumber

Jawaban:

6

Gambar 1 ada sedikit memperjelas hal-hal. Semua vektor kata dari jendela dengan ukuran tertentu dirangkum, hasilnya dikalikan dengan (ukuran 1 / jendela) dan kemudian dimasukkan ke dalam lapisan output.

Matriks proyeksi berarti seluruh tabel pencarian di mana setiap kata sesuai dengan vektor bernilai riil tunggal. Lapisan proyeksi secara efektif merupakan proses yang mengambil kata (indeks kata) dan mengembalikan vektor yang sesuai. Seseorang dapat menggabungkannya (mendapatkan input ukuran k * n di mana k adalah ukuran jendela dan n adalah panjang vektor) atau seperti dalam model CBOW, jumlahkan semuanya (dapatkan input ukuran n).

masukkan deskripsi gambar di sini

Denis Tarasov
sumber
Pertama, terima kasih atas jawaban Anda. Saya masih sedikit bingung dengan perbedaan antara matriks proyeksi dan lapisan proyeksi. Mereka tampak sama.
user70394
@ user70394 Ya, sebenarnya saya menemukan terminologi yang agak membingungkan. Pada dasarnya setiap lapisan NN adalah fungsi yang memetakan input ke output. Lapisan proyeksi melakukan itu menggunakan bobot dari matriks proyeksi tetapi bukan matriks itu sendiri. Dengan matriks yang sama kita dapat mendefinisikan banyak fungsi yang berbeda. Bahkan, dalam kasus CBOW kita mungkin bisa mengatakan bahwa kita memiliki lapisan proyeksi dengan waktu tunda diikuti oleh lapisan penjumlahan. Dalam model RNNLM "lapisan proyeksi" sebenarnya merupakan bagian dari lapisan tersembunyi berulang yang menggabungkan bobot matriks proyeksi dengan bobot berulang untuk menghitung output.
Denis Tarasov
1

Ketika saya melihat-lihat masalah CBOW dan menemukan ini, berikut adalah jawaban alternatif untuk pertanyaan (pertama) Anda ("Apa itu layer proyeksi vs matriks ?"), Dengan melihat model NNLM (Bengio et al., 2003):

Bengio et al., 2003, Gambar 1: Arsitektur saraf: f (i, w_ {t − 1}, ···, w_ {t − n + 1}) = g (i, C (w_ {t − 1} ), ···, C (w_ {t − n + 1}))) di mana g adalah jaringan saraf dan C (i) adalah vektor fitur kata ke-i.

Jika membandingkan ini dengan model Mikolov (ditunjukkan dalam jawaban alternatif untuk pertanyaan ini), kalimat yang dikutip (dalam pertanyaan) berarti bahwa Mikolov menghapus lapisan (non-linear!) Yang terlihat pada model Bengio yang ditunjukkan di atas. Dan layer tersembunyi pertama (dan hanya) Mikolov, alih-alih memiliki vektor individu untuk setiap kata, hanya menggunakan satu vektor yang meringkas "parameter kata", dan kemudian jumlah tersebut dirata-ratakan. Jadi ini menjelaskan pertanyaan terakhir ("Apa artinya bahwa vektor dirata-ratakan?"). Kata-kata "diproyeksikan ke posisi yang sama" karena bobot yang ditetapkan untuk kata-kata input individual dirangkum dan dirata-rata dalam model Mikolov. Karena itu, lapisan proyeksinyatanhC(wi)kehilangan semua informasi posisi, tidak seperti lapisan tersembunyi pertama Bengio (alias. matriks proyeksi ) - dengan demikian menjawab pertanyaan kedua ("Apa artinya semua kata diproyeksikan ke posisi yang sama?"). Jadi, model Mikolov mempertahankan "parameter kata" (matriks bobot input), menghapus matriks proyeksi dan lapisan , dan mengganti keduanya dengan lapisan proyeksi "sederhana".Ctanh

Untuk menambahkan, dan "hanya untuk catatan": Bagian yang sangat menarik adalah pendekatan Mikolov untuk memecahkan bagian di mana dalam gambar Bengio Anda melihat frasa "sebagian besar perhitungan di sini". Bengio mencoba untuk mengurangi masalah itu dengan melakukan sesuatu yang disebut softmax hirarkis (bukan hanya menggunakan softmax) dalam makalah kemudian (Morin & Bengio 2005). Tetapi Mikolov, dengan strateginya tentang subsampling negatif mengambil langkah ini lebih jauh: Dia tidak menghitung kemungkinan log negatif dari semua kata "salah" (atau kode Huffman, seperti yang disarankan oleh Bengio pada 2005) sama sekali, dan hanya menghitung sangat sampel kecil dari kasus-kasus negatif, yang, dengan perhitungan yang cukup dan distribusi probabilitas yang cerdas, bekerja dengan sangat baik. Dan kontribusi kedua dan bahkan lebih besar, tentu saja,aditif "compositionality" ( "man + raja = wanita +?" dengan Ratu jawaban), yang hanya benar-benar bekerja dengan baik dengan model yang Lewati-Gram, dan dapat kasar dipahami sebagai mengambil Model Bengio ini, menerapkan perubahan Mikolov disarankan (yaitu, frase yang dikutip dalam pertanyaan Anda), dan kemudian membalikkan seluruh proses. Yaitu, menebak kata-kata sekitarnya dari kata-kata keluaran (sekarang digunakan sebagai input), , sebagai gantinya.P(context|wt=i)

fnl
sumber