Apa perbedaan antara RNN pembuatan teks berbasis kata dan berbasis karakter?

15

Saat membaca tentang pembuatan teks dengan Jaringan Syaraf Berulang, saya perhatikan bahwa beberapa contoh diimplementasikan untuk menghasilkan kata demi kata teks dan lainnya karakter demi karakter tanpa benar-benar menyatakan mengapa.

Jadi, apa perbedaan antara model RNN yang memprediksi basis teks per kata dan yang memprediksi basis teks per-char ? Apakah RNN berbasis kata membutuhkan ukuran corpus yang lebih besar? Apakah RNN berbasis char membuat generalisasi lebih baik? Mungkin satu-satunya perbedaan adalah representasi input (pengkodean satu-panas, embeddings kata)? Yang mana yang akan dipilih untuk pembuatan teks?

mineral
sumber

Jawaban:

15

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. .

mineral
sumber
1
Komentar luar biasa. Harus ditambahkan bahwa untuk beberapa masalah satu atau yang lain mungkin lebih masuk akal terlepas dari masalah komputasi. Misalnya, jika tujuan Anda adalah mempelajari vektor kata untuk menemukan hubungan antar kata atau jika Anda ingin menghasilkan teks berdasarkan topik kata, maka Anda harus menggunakan RNN berbasis kata. Dan, sebaliknya, mungkin ada masalah di mana RNN berbasis char adalah cara untuk pergi. Itu juga tergantung pada apa yang coba dilakukan pengguna.
Ricardo Cruz
Saya tidak mengerti komentar terakhir Anda: "Berbasis RNN LM (...) gagal ketika tiba saatnya untuk masuk akal." Saya belum melihat RNN berbasis kata yang masuk akal juga. Mengapa Anda mengisolasi model berbasis char di sini?
Ricardo Cruz
Saya telah memperbarui akhir yang ambigu.
mineral
Jawaban bagus! Memang seseorang dapat dengan mudah menambahkan bahwa itu sangat tergantung pada tugas yang terlibat, ukuran dataset Anda, bahasa dan tingkat pra-pemrosesan yang bersedia Anda lakukan. Misalnya, untuk memproses bahasa morfologi yang lebih kaya dan untuk mengelola kata kosakata (OOV), Anda juga dapat menggunakan model kata dengan lemmatization, penandaan pos, dan menambahkan awalan, sufiks, dll.
Claude COULOMBE
5

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):

Kemajuan tidak dibuat oleh orang yang bangun pagi. Itu dibuat oleh pria malas yang berusaha menemukan cara yang lebih mudah untuk melakukan sesuatu.

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.

Neil
sumber
1

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.

Vivek Khetan
sumber