Attention หลายหัว: ถามหลายคำถามพร้อมกัน
บทที่ 2 แอบบอกว่า "มี attention หลายชุดทำงานพร้อมกัน" มาดูกันว่าหมายถึงอะไร
กลไกความสนใจ (attention)วิธีที่แต่ละคำเลือกว่าจะ "ฟัง" คำอื่นในประโยคมากน้อยแค่ไหน โดยใช้ softmax แบ่งน้ำหนักให้รวมได้ 100%ดูคำศัพท์ทั้งหมด หนึ่งชุดถามได้แบบเดียว เช่น "ใครคือตัวที่หิว" แต่ภาษาต้องถามหลายเรื่องพร้อมกัน เช่น คำก่อนหน้าคืออะไร ใครเป็นคนทำ และอะไรถูกกระทำ
ทางออกคือ attention หลายหัว (multi-head attention)การรัน attention หลายชุดขนานกัน แต่ละหัวย่อเวกเตอร์เป็น q, k, v ขนาดเล็กด้วยตารางของตัวเองจึงสนใจเรื่องต่างกัน แล้วรวมผลของทุกหัวกลับเป็นเวกเตอร์เดียวดูคำศัพท์ทั้งหมด แต่ละหัวใช้ตารางตัวเลขชุดของตัวเอง ( ซึ่งเป็นพารามิเตอร์ที่เรียนรู้มา) ย่อเวกเตอร์เต็มเส้นเป็น คิวรี-คีย์-แวลู (query, key, value)สามบทบาทใน attention คำถาม (query) ไปเทียบกับป้ายชื่อ (key) ของทุกคำ แล้วผสมข้อมูล (value) ตามน้ำหนักที่ได้ดูคำศัพท์ทั้งหมด ขนาดเล็ก แล้วทำ attention แยกกัน
ตัวอย่างที่เปิดเผยไว้: GPT-2 รุ่นเล็ก (2019) มี d = 768 มิติ (dimension)จำนวนตัวเลขในเวกเตอร์ บทเรียนนี้ใช้ 2 มิติให้วาดได้ โมเดลจริงใช้หลายร้อยถึงหลายพันมิติดูคำศัพท์ทั้งหมด และ 12 หัว q, k, v ของแต่ละหัวจึงยาว มิติ
เสร็จแล้วต่อผลทุกหัวเข้าด้วยกัน () แล้วผสมด้วยตาราง ได้เวกเตอร์ยาว 768 เท่าเดิม
ลองดูสองหัว (ใส่ causal mask แล้ว) หัวที่ 1 ดูคำก่อนหน้า: "หิว" ฟัง "มัน" 75.0% ส่วนหัวที่ 2 หาว่าใครหิว: "หิว" ฟัง "แมว" 60.0%
งานวิจัยเจอหัวแบบ "ดูคำก่อนหน้า" (previous-token head) ในโมเดลจริง แต่หัวจำนวนมากตีความยาก
แบ่งหัวแล้วพารามิเตอร์ไม่เพิ่ม: ของแต่ละหัวขนาด รวม h หัวก็เท่ากับตาราง ตารางเดียว Q, K, V, O จึงเป็น 4 ตาราง (ใช้ในหน้า 10)
multi-head attention คือ attention หลายชุดทำงานขนานกัน แต่ละหัวถามคำถามต่างกัน แล้วรวมผลเป็นเวกเตอร์เดียว

มังคุด
เหมือนประชุมที่มีคนจดหลายคน คนหนึ่งจดว่าใครพูด อีกคนจดตัวเลข ใช่มั้ย?