Attention Is All You Need
Self-Attention คืออะไร (แบบจับต้องได้)
ลองนึกว่าประโยคคือห้องประชุม คำแต่ละคำลุกขึ้นถามว่า “ฉันควรฟังใครในห้องนี้ตอนนี้?” คำตอบนั้นคือ self-attention
ในเปเปอร์ Attention Is All You Need โมเดลไม่ได้ไล่คำทีละตัวแบบคิว แต่ให้ทุกคำมองทุกคำพร้อมกัน แล้วถ่วงน้ำหนักว่าอันไหนสำคัญต่อความหมายของตัวเอง
ตัวเลขตัวอย่าง ไม่ใช่ค่าจากโมเดลจริง ใช้เพื่อให้เห็นกลไกเท่านั้น
คลิกคำหนึ่งคำ ดูว่ามันสนใจคำอื่นแค่ไหน
เลือกคำต้นทาง เส้นและความเข้มแสดงน้ำหนักความสนใจไปยังคำอื่น
คลิกคำ หรือกด Tab แล้วกด Enter
query = "แมว" | strongest = "หนู" (40%) | ตัวเลขตัวอย่าง
รูปที่ 1. Self-attention แบบตัวอย่างบนประโยค “แมว มอง หนู บน พรม” ความหนาของเส้นคือน้ำหนักที่คำต้นทางให้คำปลายทาง
สังเกตว่าคำ มอง มักสนใจ หนู มากกว่าคำอื่น เพราะ “มองใคร?” ต้องการกรรม
อุณหภูมิเปลี่ยนความแหลมของ softmax
คะแนนดิบคงที่ เลื่อนอุณหภูมิแล้วดูว่าความน่าจะเป็นกระจายหรือพุ่งไปที่ตัวเดียว
ตัวเลขตัวอย่าง ของ query “มอง” ไม่ใช่ logit จากโมเดลจริง
softmax(logits / T) | T = 1.00 | ตัวเลขตัวอย่าง | query = "มอง" | sum(p) = 1
รูปที่ 2. Softmax บน logit ตัวอย่างสำหรับ query “มอง” อุณหภูมิต่ำเลือกตัวเดียวชัด อุณหภูมิสูงกระจายความสนใจ
สรุปสั้น ๆ self-attention ให้ทุกคำถามว่าควรฟังใคร แล้วถ่วงน้ำหนักคำตอบ Softmax ทำให้ตัวเลขรวมเป็น 1 ส่วนอุณหภูมิควบคุมว่าจะฟังตัวเดียวชัด ๆ หรือฟังหลายตัวพร้อมกัน
คำถามทวน ถ้าอุณหภูมิสูงขึ้นมาก ๆ แถบของคำว่าหนูควรเตี้ยลงหรือสูงขึ้น