การฝังความหมาย เช่น Word2Vec และ GloVe ถือเป็นก้าวแรกในการสร้าง แบบจำลองภาษา - การสร้างโมเดลที่สามารถ เข้าใจ (หรือ แสดงออก) ลักษณะของภาษาได้ในบางรูปแบบ
แนวคิดหลักของการสร้างแบบจำลองภาษาคือการฝึกโมเดลด้วยชุดข้อมูลที่ไม่มีการติดป้ายกำกับในลักษณะการเรียนรู้แบบไม่มีผู้สอน ซึ่งสำคัญมากเพราะเรามีข้อความที่ไม่มีการติดป้ายกำกับจำนวนมหาศาล ในขณะที่ข้อความที่มีการติดป้ายกำกับจะถูกจำกัดด้วยความพยายามที่เราสามารถใช้ในการติดป้ายกำกับได้ โดยทั่วไป เราสามารถสร้างแบบจำลองภาษาที่สามารถ ทำนายคำที่หายไป ในข้อความได้ เพราะการปิดบังคำแบบสุ่มในข้อความและใช้เป็นตัวอย่างการฝึกนั้นทำได้ง่าย
ในตัวอย่างก่อนหน้านี้ เราใช้การฝังความหมายที่ผ่านการฝึกมาแล้ว แต่จะน่าสนใจมากหากเราได้เห็นว่าการฝังความหมายเหล่านี้สามารถฝึกได้อย่างไร มีแนวคิดหลายแบบที่สามารถนำมาใช้ได้:
- การสร้างแบบจำลองภาษาแบบ N-Gram โดยการทำนายโทเค็นโดยดูจากโทเค็น N ตัวก่อนหน้า (N-gram)
-
Continuous Bag-of-Words (CBoW) โดยการทำนายโทเค็นตรงกลาง
$W_0$ ในลำดับโทเค็น$W_{-N}$ , ...,$W_N$ -
Skip-gram โดยการทำนายชุดโทเค็นที่อยู่ใกล้เคียง {$W_{-N},\dots, W_{-1}, W_1,\dots, W_N$} จากโทเค็นตรงกลาง
$W_0$
ภาพจาก งานวิจัยนี้
เรียนรู้เพิ่มเติมในโน้ตบุ๊กต่อไปนี้:
ในบทเรียนก่อนหน้านี้ เราได้เห็นว่าการฝังคำทำงานได้อย่างมหัศจรรย์! ตอนนี้เรารู้แล้วว่าการฝึกการฝังคำไม่ใช่เรื่องซับซ้อนมาก และเราควรสามารถฝึกการฝังคำของเราเองสำหรับข้อความเฉพาะทางได้หากจำเป็น
- บทเรียนอย่างเป็นทางการของ PyTorch เกี่ยวกับการสร้างแบบจำลองภาษา
- บทเรียนอย่างเป็นทางการของ TensorFlow เกี่ยวกับการฝึกโมเดล Word2Vec
- การใช้เฟรมเวิร์ก gensim เพื่อฝึกการฝังคำที่ใช้บ่อยที่สุดในโค้ดเพียงไม่กี่บรรทัด อธิบายไว้ ในเอกสารนี้
ในห้องปฏิบัติการ เราท้าทายให้คุณปรับเปลี่ยนโค้ดจากบทเรียนนี้เพื่อฝึกโมเดล Skip-Gram แทน CBoW อ่านรายละเอียด
