NLP SBert (Bert) untuk perbandingan jawaban STS

Aug 20 2020

Saya telah meneliti cara yang baik untuk mengotomatiskan evaluasi jawaban singkat. Intinya seorang guru memberikan tes dengan beberapa pertanyaan seperti:

Pertanyaan: mengapa columbus berlayar ke barat untuk menemukan asia?

Jawaban: agar dia bisa menemukan jalur perdagangan baru ke Asia melalui lautan. Tiga tujuan orang Spanyol di Amerika adalah keinginan untuk mencapai kekayaan dalam jumlah besar, untuk membuat klaim atas tanah sebanyak mungkin, dan untuk menjajah sebanyak mungkin.

Dengan itu kami memiliki jawaban yang benar dan ingin membandingkannya dengan jawaban siswa dan menghasilkan skor berdasarkan kesamaan. Saya tahu ini bukan pengganti yang dapat diandalkan untuk penilaian manusia, tetapi demi contoh.

Saya telah menemukan makalah dan basis kode ini: https://arxiv.org/pdf/1908.10084.pdf

https://github.com/UKPLab/sentence-transformers

Sepertinya metode yang ideal untuk memecahkan masalah ini, tetapi sebagian besar contoh didasarkan pada penilaian / peringkat pencarian semantik. Saya mempertanyakan apakah saya berada di jalan yang benar, mengingat saya hanya membandingkan dua jawaban dan bukan sekelompok. Adakah yang memiliki lebih banyak pengalaman, mungkin dapat memberikan beberapa panduan?

Jawaban

3 20roso Aug 20 2020 at 23:14

Saya telah menggunakan Siamese Bert dan saya dapat mengatakan itu melakukan pekerjaan yang cukup baik. Namun, masalahnya adalah bahwa data yang telah disetel dengan baik di atas Bert mungkin belum tentu, sepenuhnya mewakili jarak semantik yang sama dengan jawaban antara jawaban benar dan jawaban siswa. Misalnya, jika ada pertanyaan tentang teknik, di mana sedikit perubahan kata dapat berarti hal yang sama sekali berbeda; SBert masih akan menganggapnya sangat mirip karena terkait dengan topik tersebut. Kecuali jika disetel dengan baik.

Selain itu, Anda tidak akan dapat menafsirkan kesamaan tersebut. Jika seorang siswa bertanya kepada Anda mengapa jawaban teman saya lebih baik, Anda tidak akan dapat menjelaskan.

Pendapat saya: Saya yakin Anda dapat menggunakan alat ini sebagai cara untuk mengurangi jawaban yang sama sekali tidak koheren, tetapi pada titik tertentu, evaluasi manusia akan diperlukan. Dan mungkin menggunakan metrik yang dapat ditafsirkan seperti ROUGE atau BLEU. Saya juga menyadari, bahwa topik ini cukup trendi di NLP, saya tidak akan terkejut jika ada atau akan ada alat yang baik untuk itu, tetapi saya tidak menyadarinya saat ini.

1 20roso Aug 21 2020 at 02:30

@bbuilder Bagus ditemukan! Yang pertama menurut saya seperti kemajuan jarak Word Mower dengan menggunakan kesamaan antara setiap kata. Saya yakin mungkin masih kekurangan adaptasi domain. Sedangkan tautan kedua yang Anda berikan melakukan pra-pelatihan untuk alasan khusus itu. Secara keseluruhan, metode apa pun yang Anda gunakan, saya yakin Anda perlu memilih beberapa kalimat pencocokan keras yang representatif dan melihat bagaimana kinerjanya, setelah pra-pelatihan pada korpora Anda. Jika Anda ingin memastikan. Untuk inspirasi, Anda dapat melihat di sini tentang tugas kesamaan semantik antar kalimat.

Valentas Aug 20 2020 at 20:27

Saya mencoba GPT-2 dengan prompt Anda tetapi saya tidak terlalu berhasil:

RahulRamachandran Feb 08 2021 at 16:32

Juga saya pikir itu tidak akan mempertimbangkan negasi juga. Pertama, Anda ingin memperbaiki ambang untuk jawaban yang benar atau sebagian benar dan salah. Tetapi ini adalah tugas yang sulit karena tidak mempertimbangkan pernyataan negasi dengan baik. untuk contoh: Jika Anda memberikan dua pernyataan seperti Tony stark adalah iron man dan Tony stark bukan iron man yang merupakan pernyataan kontradiktif murni, kesamaan kosinus akan mengatakan pernyataan ini agak mirip (bahkan dengan STS robera besar, model patokan) yang menunjukkan ini tidak dapat digunakan untuk penilaian jawaban. Saya tidak tahu apakah ada cara lain untuk mengatasi ini, tetapi ini dari pengalaman saya.