Apa fungsi kerugian yang harus saya gunakan untuk mencetak model RNN seq2seq?

10

Saya sedang mengerjakan makalah Cho 2014 yang memperkenalkan arsitektur encoder-decoder untuk pemodelan seq2seq.

Dalam makalah, mereka tampaknya menggunakan probabilitas input yang diberikan output (atau kemungkinan negatif-log) sebagai fungsi kerugian untuk input panjang dan output panjang :xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

Namun, saya pikir saya melihat beberapa masalah dengan menggunakan ini sebagai fungsi kerugian:

  1. Tampaknya menganggap guru memaksa selama pelatihan (yaitu, alih-alih menggunakan dugaan decoder untuk posisi sebagai input untuk iterasi berikutnya, ia menggunakan token yang dikenal.
  2. Itu tidak akan menghukum urutan panjang. Karena probabilitasnya adalah dari hingga dari output, jika decoder menghasilkan urutan yang lebih lama, semua setelah pertama tidak akan menjadi faktor kerugian.1NN
  3. Jika model memprediksi token awal String, fungsi kerugian masih membutuhkan langkah-langkah - yang berarti kita menghasilkan output berdasarkan "bermacam-macam" model yang tidak terlatih. Tampaknya ceroboh.N

Apakah ada masalah ini yang valid? Jika demikian, apakah ada kemajuan dalam fungsi kerugian yang lebih lanjut?

pengguna3243135
sumber

Jawaban:

0

Tampaknya menganggap guru memaksa selama pelatihan (yaitu, alih-alih menggunakan dugaan decoder untuk posisi sebagai input untuk iterasi berikutnya, ia menggunakan token yang dikenal.

Istilah "guru yang memaksa" sedikit mengganggu saya, karena agak ketinggalan idenya: Tidak ada yang salah atau aneh dengan memberi makan token berikutnya yang dikenal dengan model RNN - ini benar-benar satu-satunya cara untuk menghitung . Jika Anda mendefinisikan distribusi atas urutan secara autoregresif sebagai seperti yang biasa dilakukan, di mana setiap istilah kondisional dimodelkan dengan RNN, maka "gaya guru" adalah yang benar prosedur yang memaksimalkan kemungkinan log dengan benar. (Saya menghilangkan penulisan urutan pengkondisian atas karena tidak mengubah apa pun.)logP(y1,,yN)P(y)=iP(yi|y<i)x

Mengingat keberadaan MLE dan kurangnya alternatif yang baik, saya tidak menganggap asumsi "guru memaksa" tidak dapat diterima.

Meskipun demikian ada masalah yang diakui dengan itu - yaitu, model memberikan kemungkinan tinggi untuk semua titik data, tetapi sampel dari model tidak selalu kemungkinan dalam distribusi data yang sebenarnya (yang menghasilkan sampel "kualitas rendah"). Anda mungkin tertarik pada "Profesor Paksa" (Lamb et al.) Yang memitigasi hal ini melalui prosedur pelatihan permusuhan tanpa melepaskan MLE.

Itu tidak akan menghukum urutan panjang. Karena probabilitasnya adalah dari 1 hingga N dari output, jika decoder menghasilkan urutan yang lebih lama, semua setelah N pertama tidak akan menjadi faktor kerugian.

dan

Jika model memprediksi token awal String, fungsi kerugian masih membutuhkan langkah-langkah N - yang berarti kita menghasilkan output berdasarkan "bermacam-macam" model yang tidak terlatih. Tampaknya ceroboh.

Tak satu pun dari ini adalah masalah yang terjadi saat pelatihan. Alih-alih memikirkan model urutan autoregresif sebagai prosedur untuk menghasilkan prediksi, anggap itu sebagai cara untuk menghitung seberapa mungkin urutan yang diberikan. Model tidak pernah memprediksi apa pun - Anda dapat mengambil sampel urutan atau token dari distribusi, atau Anda dapat menanyakan apa token berikutnya yang paling mungkin - tetapi ini sangat berbeda dari prediksi (dan Anda tidak mengambil sampel selama pelatihan antara).

Jika demikian, apakah ada kemajuan dalam fungsi kerugian yang lebih lanjut?

Mungkin ada tujuan yang dirancang khusus berdasarkan kasus per kasus untuk tugas pemodelan yang berbeda. Namun saya akan mengatakan MLE masih dominan - model GPT2 baru-baru ini yang mencapai kinerja canggih pada spektrum luas pemodelan bahasa alami dan tugas pemahaman dilatih dengan itu.

shimao
sumber