การประมวลผลภาษาธรรมชาติ(หรือเรียกว่า NLP)
ก่อนจะเข้าเนื้อหาส่วนโมเดล Transformer เรามาดูกันในภาพรวมก่อนว่า NLP คืออะไร แล้วทำไมเราต้องศึกษาและเรียนรู้มัน
NLP คืออะไร?
NLP เป็นสาขาหนึ่งของวิชาภาษาศาสตร์และวิชาการเรียนรู้ของเครื่องจักร (หรือเรียกว่า machine learning ย่อว่า ML) ที่พยายามจะเข้าใจทุกอย่างที่เกี่ยวข้องกับภาษาที่มนุษย์ใช้สื่อสารกัน เป้าหมายของ NLP ไม่ได้ต้องการแค่จะเข้าใจความหมายของสิ่งที่สื่อสารออกมาเป็นคำ ๆ ไป แต่ต้องการจะเข้าใจบริบทรอบข้างของคำเหล่านั้นด้วย
งานทางด้าน NLP มีตัวอย่างดังต่อไปนี้:
- แยกหมวดหมู่ของประโยคทั้งประโยค: เข้าใจความรู้สึกผู้เขียนจากข้อความรีวิว, ตรวจสอบว่าอีเมลที่ส่งมาเป็นสแปมหรือไม่, ตรวจสอบว่าประโยคถูกต้องตามหลักไวยากรณ์หรือไม่, หรือเปรียบเทียบความหมายของประโยคสองประโยค
- แยกหมวดหมู่ของคำในประโยค: ระบุว่าคำแต่ละคำเป็นองค์ประกอบใดของประโยค (เช่น ประธาน, กริยา, กรรม), หรือระบุว่าคำนี้เป็นชื่อเฉพาะของอะไร (ชื่อคน, ชื่อสถานที่, ชื่อองค์กร)
- สร้างข้อความ: เดาคำต่อไปที่จะพิมพ์หลังจากเห็นบางส่วนของข้อความ, เติมคำในช่องที่เว้นว่างไว้
- หาคำตอบจากข้อความ: เมื่อส่งคำถามและข้อความยาว ๆ ที่มีคำตอบอยู่ข้างใน ให้หาคำตอบของคำถามนั้นจากข้อความที่ให้มา
- สร้างประโยคใหม่จากข้อความที่ให้: แปลข้อความจากภาษาหนึ่งไปยังอีกภาษาหนึ่ง, สรุปข้อความ
NLP เองนั้นก็ไม่ได้จำกัดอยู่ที่ภาษาเขียนอย่างเดียว แต่ยังสามารถใช้แก้ปัญหาทางด้านภาษาพูด(หรือเรียกว่า speech recognition) และการมองเห็นของคอมพิวเตอร์(หรือเรียกว่า computer vision)ได้ด้วย
ทำไม NLP ถึงท้าทาย?
อย่างที่รู้กันว่าคอมพิวเตอร์ไม่ได้ประมวลผลข้อมูลแบบเดียวกับที่มนุษย์ทำ ตัวอย่างเช่น เมื่อเราอ่านข้อความว่า “หิวจัง” เราก็สามารถเข้าใจความหมายได้ไม่ยาก และในทางเดียวกัน เมื่อเราอ่านสองประโยคนี้ “หิวจัง” และ “เสียใจจัง” เราก็สามารถเข้าใจความเหมือนของมันได้อย่างง่ายดาย แต่สำหรับ ML แล้ว การจะเข้าใจสองประโยคนี้ค่อนข้างยากเลยทีเดียว ข้อความที่ใส่ไปนั้นจะถูกนำไปประมวลผลเพื่อให้คอมพิวเตอร์สามารถเรียนรู้ได้ และเนื่องจากภาษาเองก็เป็นเรื่องซับซ้อน เราจึงต้องคิดอย่างรอบคอบว่าจะนำไปประมวลผลอย่างไร มีงานวิจัยมากมายพยายามแสดงวิธีประมวลผลข้อความเหล่านี้ให้ออกมาในรูปแบบต่าง ๆ ซึ่งในบทต่อ ๆ ไป เราจะมาดูกันว่าตัวอย่างวิธีการประมวลผลข้อความเหล่านี้ทำงานกันอย่างไร