Sequence Modeling
Recurrent Neural Network (RNN)
Attention Mechanism and Transformer
การประยุกต์ใช้ Sequence Modeling ใน NLP
อธิบายความรู้พื้นฐานเกี่ยวกับ Sequence Modeling
อธิบายหลักการทำงานของ RNN ที่ใช้ใน NLP
เขียนโปรแกรมสร้าง LSTM model ที่ใช้ในการจำแนกประเภท
ตัวอย่างข้อมูลแบบลำดับ (Sequence data)
เปรียบเทียบระหว่าง RNN กับ ANN
ข้อมูลแบบลำดับ (Sequence Data) คือ ข้อมูลที่มีลักษณะเป็นลำดับหรือขึ้นอยู่กับช่วงเวลา โดยลำดับของข้อมูลมีผลต่อการประมวลผล
ข้อความ (Text) → ลำดับของคำมีผลต่อความหมายของประโยค เช่น "ฉันชอบกินข้าว" ≠ "ข้าวกินฉันชอบ"
เสียงพูด (Speech) → ลำดับของคลื่นเสียงที่ประกอบกันเป็นคำพูด
การเคลื่อนไหวของตลาดหุ้น → ราคาที่เปลี่ยนแปลงตามเวลา
ปัญหาของ Traditional ML กับ Sequence Data
Logistic Regression, Decision Tree หรือ SVM ไม่สามารถเข้าใจลำดับของคำได้
Bag-of-Words (BoW) หรือ TF-IDF ทำให้ข้อมูลขาดบริบทของลำดับ
ตัวอย่างปัญหา:
"แมววิ่งไล่หนู" กับ "หนูวิ่งไล่แมว" จะเห็นว่าคำเหมือนกันแต่ลำดับต่างกัน ทำให้ความหมายต่างกัน
Traditional ML แยกความหมายไม่ได้ แต่ Sequence Model เข้าใจลำดับของคำได้
Solution ต้องใช้โมเดลที่สามารถเรียนรู้ข้อมูลแบบลำดับได้ เช่น RNN, LSTM, Transformer
ตัวอย่างการใช้งาน Sequence Modeling ใน NLP
Machine Translation แปลภาษาจากต้นฉบับไปยังเป้าหมาย ต้องรู้ลำดับของคำ เพื่อแปลให้ถูกต้อง
Speech Recognition แปลงเสียงเป็นข้อความ เสียงเป็นสัญญาณต่อเนื่อง (Continuous Sequence)
Chatbot / Text Generation สร้างข้อความอัตโนมัติ ต้องเข้าใจลำดับ ก่อน-หลัง ของคำ
Sentiment Analysis วิเคราะห์ความคิดเห็นของข้อความ ความหมายของคำขึ้นอยู่กับบริบทก่อนหน้า
💡 คำถามชวนคิด: Sequence Data ในชีวิตประจำวันมีอะไรบ้าง?
RNN เป็นโมเดล Neural network ที่ใช้ "ความจำ" (Memory) เพื่อจดจำข้อมูลก่อนหน้า จึงเหมาะสำหรับใช้กับข้อมูล Sequential Data เช่น ข้อความ เสียง วิดีโอ
Neural Network (NN)
จากโครงสร้าง Neural Network ก่อนหน้า จะปรับให้อยู่ในรูป X = {X0, X1, ..., Xn} และ U = {b, W1, W2, ..., Wn} และเปลี่ยน h (hidden node) เป็นรูปสี่เหลี่ยม และหมุนรูปโครงสร้าง 90 องศาให้เป็นแนวตั้งดังรูปขวาสุด ให้เป็นโครงสร้างที่นิยมใช้กันในโมเดล RNN
Recurrent Neural Network (RNN)
จากรูปโครงสร้าง RNN (เปลี่ยน output y เป็น L) เราจะเห็นว่าสิ่งที่เพิ่มเติมขึ้นจาก NN คือ V คือ weight ของ hidden node (ความจำ) จากข้อมูลก่อนหน้า ที่ส่งต่อให้ hidden node ของข้อมูลปัจจุบัน และเมื่อเราคลี่การวนรอบ (Unfold) ออกมาจะได้โครงสร้างที่เชื่อมต่อกันดังรูปด้านขวา
จำนวน W หรือพารามิเตอร์ทั้งหมดที่ต้องคำนวณหาค่าที่เหมาะสม จะคำนวณจากฟังก์ชัน ณ เวลา t ต่อไปนี้
การคำนวน Hidden state → ht = σ (U⋅Xt + V⋅ht−1 +Bt) เมื่อ ht เป็น hidden state ณ เวลา t, U และ V เป็น weight matrix และ Bt คือ bias
การคำนวน Output (L หรือ Y) → Y = fy(W⋅ht+By) เมื่อ fy เป็น activation function และ W เป็น weight matrix และ By คือ bias