ผลงานจาก Google Brain (Gating MLP, MLP layers with gating) or gMLP อีกหนึ่ง ที่สงสัยใคร่รู้ว่า attention mechanism มันจำเป็นสำหรับ transformer จริง ๆ มั้ย?
ช่วงนี้ Google Brain ดูจะสนใจประเด็นการลบ self-attention หรือการแทนที่ attention mechanism ใน transformer ด้วยอะไรอย่างอื่นกันเยอะนะ … เมื่อเดือนก่อนมี MLP-Mixer Link (replace the multi-head self-attention module in Transformers with a two-layer spatial MLP) … มาเดือนนี้ก็มีอะไรคล้าย ๆ กันจาก Google Brain (คนละทีมกันมั้งเนี่ย?) แต่มาในชื่อ gMLP แทน
หน้าตาของ gMLP block นั้นไม่ค่อยซับซ้อนดีตามรูปแรก(figure 1) … งานนี้ไม่มี self-attention เข้ามาเอี่ยว มีทำแค่ channel projection กับ spatial projection เท่านั้น และการทำ projection ที่ว่าก็ทำด้วย MLP (Multi-Layer Perceptron) ทั้งหมดทั้งสิ้น ไปส่องดูโค้ดแล้วมีแต่ใช้ dense/linear layer ล้วน ๆ (ถ้าไม่นับพวก normalization layer กับ activation layer น่ะนะ)
ผลการศึกษาส่วนหนึ่งที่อ่านเจอ แล้วคิดว่าน่าสนใจก็ประมาณนี้
… จากการทดลองหลาย ๆ โครงสร้าง เขาพบว่าการทำ spatial projection ดูจะได้ผลดีเมื่อ they ( = spatial projections) are linear and paired with multiplicative gating … หรือก็คือในภาพแรก (figure 1) ที่ข้างในกล่อง Spatial Gating Unit (SGU) มีโหนดวงกลมเป็น multiplicative gate ซึ่งทำหน้าที่ element-wise multiplication นั่นเอง
… key ingredient สำหรับ gMLP อยู่ที่ตัวกล่อง SGU ซึ่งทำหน้าที่ capture spatial interactions
…… อันแรกที่น่าสนใจ คือ เขาบอกว่า gMLP ตัวนี้ไม่จำเป็นต้องทำ positional embedding เพราะข้อมูลตรงนี้มันจะถูก capture ไว้ได้ในกล่อง SGU อยู่แล้ว
…… อีกอันที่ดูแปลกตาดีคือกล่องที่เขียนว่า split ใน SGU ที่พอรับอินพุตเข้ามาแล้วจะทำการแบ่งอินพุตออกเป็น 2 chunks (ได้แก่ u และ v) ตามแนวแกนของ channel โดยให้ส่วน u วิ่งบนทางด่วนตรงไปเข้า multiplicative gate ได้เลย ในขณะที่ส่วน v ต้องไปผ่าน LayerNorm และ SpatialProjection ก่อนถึงจะมาเข้า multiplicative gate อีกฝั่งได้ … ซึ่งยังไงก็ไม่รู้นะ แต่เขาบอกว่าการแบ่งข้อมูลเป็น 2 ส่วนลักษณะนี้มันได้ผล effective ดี
… สำหรับงานด้าน computer vision ที่ทดสอบบน ImageNet dataset (อันเดิม ๆ ที่เสนอไว้ใน CVPR2009 เลยนะ ไม่ใช่ ImageNet dataset แบบพิเศษหรือแบบมีข้อมูล extra เพิ่มเติมอะไร)
…… ตามภาพที่สอง (figure 2) เขาพบว่า gMLP ได้ผลลัพธ์ที่สูสีคู่คี่กับพวก vision-based transformer ตัวดังอย่าง Facebook DeiT (ซึ่งโดยเนื้อในก็คือ Google ViT + improved regularization นั่นเอง)
…… ถ้าเทียบกับ MLP-Mixer ที่ค่าย Google Brain เพิ่งจะเสนอมาเองเมื่อเดือนก่อน ผลการทดลองในที่นี้พบว่าตัว gMLP แม่นมากกว่า 3% ในขณะที่มีจำนวน parameter น้อยกว่าถึง 66%
…… สรุปคือเขากำลังพยายามสื่อนั่นล่ะว่า จริง ๆ แล้วสำหรับ Vision Transformer ตัว self-attention layer มันไม่จำเป็นหรอก
… สำหรับงานด้าน NLP (Natural Language Processing) เขาพบว่า gMLP ได้ผลสูสีกับ transformer ใน GLUE (General Language Understanding Evaluation) ตามภาพที่ 3 (figure 5)
อ้างอิงข้อมูลจากลิงก์ต่อไปนี้
… arXiv 1JUN2021 (15 pages): https://arxiv.org/abs/2105.08050
… Github (PyTorch): https://github.com/antonyvigouret/Pay-Attention-to-MLPs