Attention Is All You Need

Self-Attention คืออะไร (แบบจับต้องได้)

ชุด Attention · บทที่ 1 ·

ลองนึกว่าประโยคคือห้องประชุม คำแต่ละคำลุกขึ้นถามว่า “ฉันควรฟังใครในห้องนี้ตอนนี้?” คำตอบนั้นคือ self-attention

ในเปเปอร์ Attention Is All You Need โมเดลไม่ได้ไล่คำทีละตัวแบบคิว แต่ให้ทุกคำมองทุกคำพร้อมกัน แล้วถ่วงน้ำหนักว่าอันไหนสำคัญต่อความหมายของตัวเอง

ตัวเลขตัวอย่าง ไม่ใช่ค่าจากโมเดลจริง ใช้เพื่อให้เห็นกลไกเท่านั้น

Fig. 1

คลิกคำหนึ่งคำ ดูว่ามันสนใจคำอื่นแค่ไหน

เลือกคำต้นทาง เส้นและความเข้มแสดงน้ำหนักความสนใจไปยังคำอื่น

คลิกคำ หรือกด Tab แล้วกด Enter

แผนภาพ attention ระหว่างคำ ตัวเลขตัวอย่างของคำว่าแมว แมว 18% มอง 12% หนู 40% บน 10% พรม 20%

query = "แมว" | strongest = "หนู" (40%) | ตัวเลขตัวอย่าง

รูปที่ 1. Self-attention แบบตัวอย่างบนประโยค “แมว มอง หนู บน พรม” ความหนาของเส้นคือน้ำหนักที่คำต้นทางให้คำปลายทาง

สังเกตว่าคำ มอง มักสนใจ หนู มากกว่าคำอื่น เพราะ “มองใคร?” ต้องการกรรม

Fig. 2

อุณหภูมิเปลี่ยนความแหลมของ softmax

คะแนนดิบคงที่ เลื่อนอุณหภูมิแล้วดูว่าความน่าจะเป็นกระจายหรือพุ่งไปที่ตัวเดียว

ตัวเลขตัวอย่าง ของ query “มอง” ไม่ใช่ logit จากโมเดลจริง

แมว
10%
มอง
7%
หนู
60%
บน
9%
พรม
13%

softmax(logits / T) | T = 1.00 | ตัวเลขตัวอย่าง | query = "มอง" | sum(p) = 1

รูปที่ 2. Softmax บน logit ตัวอย่างสำหรับ query “มอง” อุณหภูมิต่ำเลือกตัวเดียวชัด อุณหภูมิสูงกระจายความสนใจ

สรุปสั้น ๆ self-attention ให้ทุกคำถามว่าควรฟังใคร แล้วถ่วงน้ำหนักคำตอบ Softmax ทำให้ตัวเลขรวมเป็น 1 ส่วนอุณหภูมิควบคุมว่าจะฟังตัวเดียวชัด ๆ หรือฟังหลายตัวพร้อมกัน

คำถามทวน ถ้าอุณหภูมิสูงขึ้นมาก ๆ แถบของคำว่าหนูควรเตี้ยลงหรือสูงขึ้น