Saya mencoba menanamkan sekitar 60 juta frasa ke dalam ruang vektor , lalu menghitung persamaan cosinus di antara mereka. Saya telah menggunakan sklearn's CountVectorizer
dengan fungsi tokenizer yang dibuat khusus yang menghasilkan unigrams dan bigrams. Ternyata untuk mendapatkan representasi yang bermakna, saya harus mengizinkan sejumlah besar kolom, linier dalam jumlah baris. Ini mengarah ke matriks yang sangat jarang dan membunuh kinerja. Tidak akan terlalu buruk jika hanya ada sekitar 10.000 kolom, yang menurut saya cukup masuk akal untuk kata embeddings.
Saya berpikir untuk mencoba menggunakan Google word2vec
karena saya cukup yakin ini menghasilkan embeddings yang jauh lebih rendah dan lebih padat. Tapi sebelum itu, apakah ada hiasan lain yang mungkin perlu dilihat pada awalnya? Persyaratan utama adalah dapat mengukur sekitar 60 juta frase (baris).
Saya cukup baru di bidang embeddings kata sehingga saran akan membantu.
Saya juga harus menambahkan bahwa saya sudah menggunakan dekomposisi nilai singular untuk meningkatkan kinerja.
Jawaban:
Ada beberapa pekerjaan baru-baru ini pada dimensi word2vec (skip gram) yang secara dinamis menggunakan mesin Boltzmann. Lihatlah makalah ini:
"Embeddings kata dimensi tak terbatas" -Nalsnick, Ravi
Ide dasarnya adalah membiarkan set pelatihan Anda menentukan dimensi model word2vec Anda, yang dihukum dengan istilah regularisasi yang terkait dengan ukuran dimensi.
Makalah di atas melakukan ini untuk kata-kata, dan saya ingin tahu untuk melihat seberapa baik ini bekerja dengan frasa.
sumber