Fitur vektor kata di word2vec

9

Saya mencoba melakukan analisis sentimen. Untuk mengkonversi kata ke vektor kata saya menggunakan model word2vec. Misalkan saya memiliki semua kalimat dalam daftar bernama 'kalimat' dan saya meneruskan kalimat ini ke word2vec sebagai berikut:

model = word2vec.Word2Vec(sentences, workers=4 , min_count=40, size=300,   window=5, sample=1e-3)

Karena saya noob untuk kata vektor saya punya dua keraguan.
1- Mengatur jumlah fitur ke 300 mendefinisikan fitur dari vektor kata. Tapi apa yang menandakan fitur-fitur ini? Jika setiap kata dalam model ini diwakili oleh array numpy 1x300, lalu apa arti 300 fitur ini untuk kata itu?

2- Apa yang dilakukan pengambilan sampel seperti diwakili oleh parameter 'sampel' dalam model di atas secara aktual?

Terima kasih sebelumnya.

enterML
sumber

Jawaban:

10

1- Jumlah fitur: Dalam hal model jaringan saraf, ini mewakili jumlah neuron pada lapisan proyeksi (tersembunyi). Karena lapisan proyeksi dibangun di atas hipotesis distribusi, vektor numerik untuk setiap kata menandakan hubungannya dengan kata-kata konteksnya.

Fitur-fitur ini dipelajari oleh jaringan saraf karena ini adalah metode yang tidak diawasi. Setiap vektor memiliki beberapa set karakteristik semantik. Sebagai contoh, mari kita ambil contoh klasik, V(King) -V(man) + V(Women) ~ V(Queen)dan setiap kata diwakili oleh vektor 300-d. V(King)akan memiliki karakteristik semantik Kerajaan, kerajaan, kejantanan, manusia dalam vektor dalam urutan tertentu. V(man)akan memiliki maskulinitas, manusia, bekerja dalam urutan tertentu. Jadi ketika V(King)-V(Man)dilakukan, maskulinitas, karakteristik manusia akan dibatalkan dan ketika ditambahkan dengan V(Women)yang memiliki feminitas, karakteristik manusia akan ditambahkan sehingga menghasilkan vektor yang mirip denganV(Queen). Yang menarik adalah, karakteristik ini dikodekan dalam vektor dalam urutan tertentu sehingga perhitungan numerik seperti penjumlahan, pengurangan bekerja dengan sempurna. Hal ini disebabkan sifat metode belajar tanpa pengawasan dalam jaringan saraf.

2- Ada dua algoritma aproksimasi. Hierarchical softmaxdan negative sampling. Ketika parameter sampel diberikan, dibutuhkan pengambilan sampel negatif. Dalam hal softmax hirarkis, untuk setiap vektor kata, kata konteksnya diberi output positif dan semua kata lain dalam kosakata diberi output negatif. Masalah kompleksitas waktu diselesaikan dengan pengambilan sampel negatif. Seperti dalam pengambilan sampel negatif, daripada seluruh kosakata, hanya bagian sampel dari kosakata yang diberikan output negatif dan vektor dilatih yang jauh lebih cepat daripada metode sebelumnya.

yazhi
sumber
Interpretasi fitur word2vec ini menyesatkan. Tidak ada dimensi maskulinitas ruang, atau elemen royalti dalam vektor. Jika itu masalahnya, maka ruang vektor 300 dimensi hanya bisa mewakili 300 dikotomi semantik independen.
Dan Hicks
@DanHicks: Saya tidak pernah menyebut setiap fitur sebagai dimensi ruang. Saya hanya mengatakan bahwa fitur semantik tersebut dikodekan dalam vektor dalam urutan tertentu, sehingga operasi matematika dimungkinkan.
yazhi
"Fitur" biasanya mengacu pada variabel yang digunakan untuk mewakili kasus - dalam hal ini, elemen vektor kata / dimensi ruang vektor. Pertanyaan @ Nain jelas menggunakan "fitur" dengan cara ini. "Fitur semantik" yang Anda bicarakan adalah cara terbaik untuk berbicara tentang bagaimana word2vec menangani analogi. Mereka sama sekali tidak fitur vektor kata.
Dan Hicks
1
Anda benar .. Saya telah mengedit "fitur semantik" menjadi "karakteristik semantik", dan "fitur" dalam jawabannya hanya mewakili dimensi vektor.
yazhi
0
  1. Menurut hipotesis distribusi, dimensi individu dalam vektor kata tidak menandakan banyak tentang kata di dunia nyata. Anda perlu khawatir tentang dimensi individu. Jika pertanyaan Anda adalah bagaimana saya harus memilih jumlah dimesion, itu murni berdasarkan percobaan untuk data Anda dan dapat meningkat dari 100 menjadi 1000. Untuk banyak percobaan di mana pelatihan dilakukan pada teks wiki 300 dimensi sebagian besar memberikan yang terbaik hasil.
  2. Parameter sampel adalah parameter yang digunakan untuk memangkas kata yang memiliki frekuensi tinggi. Misalnya "the" "is" "was", stopwords ini tidak dianggap di jendela saat memprediksi kata dalam dan nilai default berfungsi dengan baik untuk mengidentifikasi kata-kata berhenti ini yang frekuensinya lebih tinggi.
Trideep Rath
sumber