Saya seorang pemula dalam jaringan saraf dan saat ini saya sedang mengeksplorasi model word2vec. Namun saya mengalami kesulitan untuk memahami apa sebenarnya fitur matriks.
Saya bisa mengerti bahwa matriks pertama adalah vektor pengodean satu-panas untuk kata tertentu, tetapi apa yang ditandakan oleh matriks kedua? Lebih khusus lagi, apa arti dari masing-masing nilai tersebut (mis. 17, 24, 1 dll) artinya?
machine-learning
neural-network
word2vec
Satrajit Maitra
sumber
sumber
Jawaban:
Ide di balik word2vec adalah untuk mewakili kata-kata dengan vektor bilangan real dimensi d . Oleh karena itu matriks kedua adalah representasi dari kata-kata itu.
Baris ke- i dari matriks ini adalah representasi vektor dari kata ke- i .
Katakanlah pada contoh Anda, Anda memiliki 5 kata: ["Singa", "Kucing", "Anjing", "Kuda", "Tikus"], maka vektor pertama [0,0,0,1,0] berarti Anda sedang mempertimbangkan kata "Kuda" dan representasi "Kuda" adalah [10, 12, 19]. Demikian pula, [17, 24, 1] adalah representasi dari kata "Singa".
Sejauh pengetahuan saya, tidak ada "makna manusiawi" khusus untuk masing-masing angka dalam representasi ini. Satu angka tidak mewakili apakah kata itu kata kerja atau bukan, kata sifat atau tidak ... Hanya bobot yang Anda ubah untuk menyelesaikan masalah pengoptimalan Anda untuk mempelajari representasi kata-kata Anda.
Tutorial ini dapat membantu: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ meskipun saya pikir gambar yang Anda masukkan berasal dari tautan ini.
Anda juga dapat memeriksa ini, yang dapat membantu Anda memulai dengan vektor kata dengan TensorFlow: https://www.tensorflow.org/tutorials/word2vec
sumber
TL; DR :
Matriks pertama mewakili vektor input dalam satu format panas
Matriks kedua mewakili bobot sinaptik dari neuron lapisan input ke neuron lapisan tersembunyi
Versi yang lebih panjang :
Sepertinya Anda belum memahami representasi dengan benar. Matriks itu bukan matriks fitur tetapi matriks berat untuk jaringan saraf. Perhatikan gambar yang diberikan di bawah ini. Terutama perhatikan sudut kiri atas di mana matriks Lapisan Input dikalikan dengan matriks Berat.
Sekarang lihat di kanan atas. InputLayer multiplikasi matriks multiplikasi ini diproduksi dengan Weights Transpose hanyalah cara praktis untuk mewakili jaringan saraf di kanan atas.
Jadi, untuk menjawab pertanyaan Anda, persamaan yang Anda posting hanyalah representasi matematis untuk jaringan saraf yang digunakan dalam algoritma Word2Vec.
Bagian pertama, [0 0 0 1 0 ... 0] mewakili kata input sebagai satu vektor panas dan matriks lainnya mewakili bobot untuk koneksi masing-masing neuron lapisan input ke neuron lapisan tersembunyi.
Saat Word2Vec berlatih, ia mempropagandakan bobot ini dan mengubahnya untuk memberikan representasi kata yang lebih baik sebagai vektor.
Setelah pelatihan selesai, Anda hanya menggunakan matriks berat ini, ambil [0 0 1 0 0 ... 0] untuk mengatakan 'anjing' dan kalikan dengan matriks bobot yang ditingkatkan untuk mendapatkan representasi vektor 'anjing' dalam dimensi = tidak ada neuron lapisan tersembunyi.
Dalam diagram yang telah Anda sajikan, jumlah neuron lapisan tersembunyi adalah 3
Jadi sisi kanan pada dasarnya adalah kata vektor.
Kredit Gambar: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks
sumber