Bisakah BERT digunakan untuk tugas penghasil kalimat?

12

Saya seorang pelajar baru di NLP. Saya tertarik pada tugas menghasilkan kalimat. Sejauh yang saya ketahui, salah satu metode canggih adalah CharRNN , yang menggunakan RNN untuk menghasilkan urutan kata-kata.

Namun, BERT telah keluar beberapa minggu yang lalu dan sangat kuat. Karena itu, saya bertanya-tanya apakah tugas ini juga dapat dilakukan dengan bantuan BERT? Saya seorang pelajar baru di bidang ini, dan terima kasih atas sarannya!

ch271828n
sumber
1
Bisakah OpenAI GPT digunakan untuk ini? Saya percaya OpenAI GPT memiliki arsitektur yang berbeda dan digunakan untuk pembuatan teks
Sandeep Bhutani
Saya percaya CharRNN jelas bukan SOTA, karena panjang konteks yang terbatas, dari bekerja pada skala karakter. Sebagai gantinya, ada pekerjaan pada subwords, dan byte-pair encodings
information_interchange

Jawaban:

21

Untuk pemula, TIDAK.

Pembuatan kalimat membutuhkan pengambilan sampel dari model bahasa, yang memberikan distribusi probabilitas kata berikutnya yang diberikan konteks sebelumnya. Tetapi BERT tidak dapat melakukan ini karena sifatnya dua arah.


Untuk peneliti tingkat lanjut, YES.

Anda bisa mulai dengan kalimat dari semua token [MASK], dan menghasilkan kata-kata satu per satu dalam urutan acak (bukan dekomposisi rantai kiri-ke-kanan yang umum). Padahal kualitas pembuatan teks sulit dikendalikan.

Berikut ini laporan teknis BERT yang Mulut, dan Harus Bicara: BERT sebagai Model Bahasa Bidang Acak Markov , errata dan kode sumbernya .


Singkatnya:

  • Jika Anda ingin melakukan penelitian di bidang decoding dengan BERT, ada ruang besar untuk dijelajahi
  • Jika Anda ingin menghasilkan teks berkualitas tinggi, secara pribadi saya sarankan Anda untuk memeriksa GPT-2 .
soloice
sumber
3

percobaan ini oleh Stephen Mayhew menunjukkan bahwa BERT buruk pada pembuatan teks berurutan:

http://mayhewsw.github.io/2019/01/16/can-bert-generate-text/

although he had already eaten a large meal, he was still very hungry

Seperti sebelumnya, saya menutupi "lapar" untuk melihat apa yang akan diprediksi BERT. Jika itu dapat memprediksi dengan benar tanpa konteks yang benar, kita mungkin dalam kondisi yang baik untuk generasi.

Ini gagal. BERT memperkirakan "banyak" sebagai kata terakhir. Mungkin ini karena BERT menganggap tidak adanya titik berarti kalimat itu harus dilanjutkan. Mungkin itu hanya digunakan untuk menyelesaikan kalimat sehingga menjadi bingung. Saya tidak yakin.

Orang mungkin berpendapat bahwa kita harus terus memprediksi setelah "banyak". Mungkin itu akan menghasilkan sesuatu yang bermakna. Untuk itu saya akan mengatakan: pertama, ini dimaksudkan sebagai hadiah mati, dan manusia mana pun akan memprediksi "lapar". Kedua, saya mencobanya, dan terus memprediksi hal-hal bodoh. Setelah "banyak", token berikutnya adalah ",".

Jadi, setidaknya menggunakan metode sepele ini, BERT tidak dapat menghasilkan teks.

stuart
sumber
2

Tidak. Pembuatan kalimat berhubungan langsung dengan pemodelan bahasa (diberikan kata-kata sebelumnya dalam kalimat, apa kata berikutnya). Karena dua arah BERT, BERT tidak dapat digunakan sebagai model bahasa. Jika itu tidak dapat digunakan sebagai model bahasa, saya tidak melihat bagaimana Anda dapat menghasilkan kalimat menggunakan BERT.

Astariul
sumber
1
Jawaban saya tidak lagi benar. Anda mungkin ingin menerima jawaban
@soloice
1

Apa opsi alternatif yang ada untuk ini?

Tidak. Pembuatan kalimat berhubungan langsung dengan pemodelan bahasa (diberikan kata-kata sebelumnya dalam kalimat, apa kata berikutnya). Karena dua arah BERT, BERT tidak dapat digunakan sebagai model bahasa. Jika itu tidak dapat digunakan sebagai model bahasa, saya tidak melihat bagaimana Anda dapat menghasilkan kalimat menggunakan BERT.

Shamit Bagchi
sumber