Inilah yang saya pelajari baru-baru ini.
Jelas, ketika berbicara tentang RNN pembuatan teks kita berbicara tentang model bahasa RNN. Ketika bertanya tentang kata / berbasis-char RNNs generasi teks, kita bertanya tentang kata / berbasis-char model bahasa RNN (LM).
LM berbasis kata menampilkan akurasi lebih tinggi dan biaya komputasi lebih rendah daripada LM berbasis char.
Penurunan kinerja ini tidak mungkin karena kesulitan untuk model tingkat karakter untuk menangkap memori jangka pendek yang lebih lama, karena juga jaringan berulang Memori Jangka Pendek (LSTM) yang lebih lama bekerja lebih baik dengan input berbasis kata.
Ini karena RNN LM berbasis char membutuhkan lapisan tersembunyi yang jauh lebih besar untuk berhasil memodelkan dependensi jangka panjang yang berarti biaya komputasi lebih tinggi.
Karena itu, kita dapat mengatakan itu
salah satu perbedaan mendasar antara model level kata dan level karakter adalah dalam jumlah parameter yang harus diakses RNN selama pelatihan dan tes. Semakin kecil adalah lapisan input dan output RNN, semakin besar kebutuhan untuk lapisan tersembunyi yang terhubung sepenuhnya, yang membuat pelatihan model mahal.
Namun, bahasa berbasis RNN LM yang lebih baik memodelkan bahasa dengan morfologi yang kaya seperti Selesai, Turki, Rusia dll. Menggunakan berbasis kata RNN LM kata untuk memodelkan bahasa semacam itu sulit jika memungkinkan sama sekali dan tidak disarankan.
Analisis di atas masuk akal terutama ketika Anda melihat teks output, yang dihasilkan oleh RNNs berbasis char:
Para investor yang terkejut tidak akan mengumpulkan uang. Saya bukan perusahaan dengan waktu semua ada yang menarik dengan cepat, tidak harus turun dari programmer yang sama.
Sementara LM Maximum Likelihood berbasis char sederhana dengan jendela 13-karakter memberikan ini:
Dan ketika dia membuat banyak batu bata padat. Dia menumpuknya di tumpukan dan menginjak kakinya. Dokter mendiagnosis dia dengan kelelawar. Gadis dan pacarnya mengajaknya kencan.
Tentu saja saya memilih contohnya (sebenarnya sebagian besar contoh LM ML terlihat lebih baik daripada teks yang dihasilkan RNN yang pernah saya baca sejauh ini) dan ML LM mungil ini dilatih dengan corpus yang lebih sederhana tetapi Anda mendapatkan ide: probabilitas kondisional langsung menghasilkan lebih baik teks daripada RNN berbasis char jauh lebih kompleks .
RNN LM berbasis Char dapat meniru urutan tata bahasa yang benar untuk berbagai bahasa, membutuhkan lapisan tersembunyi yang lebih besar dan komputasi lebih mahal sementara RNN LM berbasis kata melatih lebih cepat dan menghasilkan teks yang lebih koheren, namun bahkan teks yang dihasilkan ini masih jauh dari masuk akal. .
Ada tulisan bagus tentang pemodelan Bahasa satu miliar kata . Berikut beberapa kutipannya:
Model tingkat kata memiliki keunggulan penting dibandingkan model tingkat karakter.
Ambil urutan berikut sebagai contoh (kutipan dari Robert A. Heinlein):
Setelah tokenization, model level kata mungkin melihat urutan ini berisi 22 token. Di sisi lain, level karakter akan melihat urutan ini berisi 102 token. Urutan yang lebih lama ini membuat tugas model karakter lebih sulit daripada model kata, karena harus memperhitungkan ketergantungan akun antara lebih banyak token selama lebih banyak langkah waktu. Masalah lain dengan model bahasa karakter adalah mereka perlu belajar mengeja selain sintaksis, semantik, dll. Bagaimanapun, model bahasa kata biasanya akan memiliki kesalahan yang lebih rendah daripada model karakter
Keuntungan utama karakter daripada model bahasa kata adalah bahwa mereka memiliki kosakata yang sangat kecil. Misalnya, dataset GBW akan berisi sekitar 800 karakter dibandingkan dengan 800.000 kata (setelah pemangkasan token frekuensi rendah). Dalam praktiknya ini berarti bahwa model karakter akan membutuhkan lebih sedikit memori dan memiliki inferensi lebih cepat daripada rekan kata mereka. Keuntungan lain adalah mereka tidak memerlukan tokenization sebagai langkah preprocessing.
sumber
Menurut pendapat saya, RNN berbasis karakter juga akan berkinerja lebih baik tetapi mereka membutuhkan lebih banyak data daripada model berbasis kata dan model berbasis karakter perlu melatih untuk periode waktu yang lebih lama. Saya akan mengatakan itu lebih merupakan trial and error serta trade-off antara data dan daya komputasi yang tersedia.
sumber