NLP SBert (Bert) สำหรับการเปรียบเทียบคำตอบ STS
ฉันได้หาวิธีที่ดีในการประเมินคำตอบสั้น ๆ โดยอัตโนมัติ โดยพื้นฐานแล้วครูจะทดสอบด้วยคำถามบางข้อเช่น:
คำถาม: เหตุใดโคลัมบัสจึงแล่นไปทางตะวันตกเพื่อค้นหาเอเชีย
คำตอบ: เพื่อที่เขาจะได้พบเส้นทางการค้าใหม่ไปยังเอเชียผ่านมหาสมุทร เป้าหมายสามประการของชาวสเปนในทวีปอเมริกาคือความปรารถนาที่จะได้รับความร่ำรวยจำนวนมากเพื่อสร้างการอ้างสิทธิ์ในดินแดนให้มากที่สุดเท่าที่จะทำได้และตั้งรกรากให้ได้มากที่สุด
ด้วยเหตุนี้เราจึงมีคำตอบที่ถูกต้องและต้องการเปรียบเทียบกับคำตอบของนักเรียนและให้คะแนนตามความคล้ายคลึงกัน ฉันรู้ว่านี่ไม่ใช่สิ่งทดแทนที่น่าเชื่อถือสำหรับการให้คะแนนของมนุษย์ แต่เพื่อประโยชน์ของตัวอย่าง
ฉันเจอกระดาษและโค้ดเบสนี้: https://arxiv.org/pdf/1908.10084.pdf
https://github.com/UKPLab/sentence-transformers
ดูเหมือนว่าจะเป็นวิธีที่ดีที่สุดในการแก้ปัญหานี้ แต่ตัวอย่างส่วนใหญ่จะขึ้นอยู่กับการให้คะแนน / การจัดอันดับของการค้นหาเชิงความหมาย ฉันตั้งคำถามว่าฉันมาถูกทางหรือไม่เพราะฉันแค่เปรียบเทียบคำตอบสองคำไม่ใช่กลุ่ม ใครมีประสบการณ์มากกว่านี้ช่วยให้คำแนะนำได้บ้าง
คำตอบ
ฉันใช้ Siamese Bert และสามารถพูดได้ว่ามันทำได้ดีทีเดียว อย่างไรก็ตามปัญหาคือข้อมูลที่ได้รับการปรับแต่งอย่างละเอียดบนยอดของเบิร์ตอาจไม่จำเป็นโดยสิ้นเชิงแสดงถึงระยะห่างทางความหมายเดียวกันกับคำตอบระหว่างจริงและของนักเรียน ตัวอย่างเช่นหากมีคำถามเกี่ยวกับวิศวกรรมการเปลี่ยนคำเพียงเล็กน้อยอาจหมายถึงสิ่งที่แตกต่างไปจากเดิมโดยสิ้นเชิง SBert ยังคงพบว่าพวกเขาค่อนข้างคล้ายกันสาเหตุที่เกี่ยวข้องกับหัวข้อนี้ เว้นแต่จะได้รับการปรับแต่งอย่างละเอียด
ยิ่งไปกว่านั้นคุณจะไม่สามารถตีความความคล้ายคลึงกันได้ นักเรียนควรถามคุณว่าทำไมคำตอบของเพื่อนดีกว่าคุณจะไม่สามารถอธิบายได้
ความคิดเห็นของฉัน: ฉันเชื่อว่าคุณสามารถใช้เครื่องมือนี้เพื่อลดคำตอบที่ไม่ต่อเนื่องกันได้โดยสิ้นเชิง แต่ในบางจุดจำเป็นต้องมีการประเมินโดยมนุษย์ และอาจใช้เมตริกที่ตีความได้เช่น ROUGE หรือ BLEU ฉันรู้เช่นกันว่าหัวข้อนี้ค่อนข้างอินเทรนด์ใน NLP ฉันจะไม่แปลกใจเลยว่าจะมีหรือจะเป็นเครื่องมือที่ดีสำหรับสิ่งนั้น แต่ตอนนี้ฉันยังไม่รู้
@b_the_builder พบดี! อย่างแรกดูเหมือนว่าฉันจะชอบความก้าวหน้าของระยะทางของ Word Mowerโดยใช้ความคล้ายคลึงกันระหว่างแต่ละคำ ฉันเชื่อว่าอาจยังขาดการปรับโดเมน ในขณะที่ลิงก์ที่สองที่คุณให้ไว้เป็นการฝึกอบรมล่วงหน้าด้วยเหตุผลเฉพาะนั้น สรุปแล้วไม่ว่าคุณจะใช้วิธีใดฉันเชื่อว่าคุณจะต้องเลือกประโยคจับคู่แบบยากที่เป็นตัวแทนและดูว่าพวกเขาทำงานอย่างไรหลังจากการฝึกอบรมล่วงหน้าในองค์กรของคุณ ถ้าอยากได้ชัวร์. สำหรับแรงบันดาลใจคุณสามารถดูที่นี่เกี่ยวกับงานความคล้ายคลึงทางความหมายระหว่างประโยค
ฉันลองใช้ GPT-2 ด้วยข้อความแจ้งของคุณ แต่ไม่ประสบความสำเร็จอย่างมาก:

ฉันคิดว่ามันจะไม่พิจารณาการปฏิเสธเช่นกัน ขั้นแรกคุณต้องแก้ไขเกณฑ์สำหรับคำตอบที่ถูกต้องหรือบางส่วนที่ถูกต้องและผิด แต่มันเป็นงานที่ยากเพราะไม่ได้พิจารณาคำปฏิเสธให้ดี ตัวอย่างเช่น: หากคุณให้คำแถลงสองประโยคเช่น Tony stark เป็นคนเหล็กและ Tony stark ไม่ใช่คนเหล็กซึ่งเป็นคำพูดที่ขัดแย้งกันอย่างหมดจดความคล้ายคลึงกันของโคไซน์จะบอกว่าข้อความเหล่านี้ค่อนข้างคล้ายกัน (แม้จะมี STS robera ขนาดใหญ่ซึ่งเป็นแบบจำลองมาตรฐาน) ซึ่งแสดงให้เห็น ไม่สามารถใช้เป็นคะแนนคำตอบได้ ฉันไม่รู้ว่ามีวิธีอื่นในการจัดการกับปัญหานี้หรือไม่ แต่นี่มาจากประสบการณ์ของฉัน