Encoder (Transformer) (TH)

From Systems analysis Wiki
Jump to navigation Jump to search

เอนโคเดอร์ (อังกฤษ: Encoder) — ในสาขา Machine Learning และ deep learning คือส่วนประกอบของ Neural Network ที่มีหน้าที่หลักในการแปลงลำดับข้อมูลขาเข้า (เช่น ข้อความหรือรูปภาพ) ให้กลายเป็นการแทนค่าเชิงตัวเลขที่มีความหมายสูง ซึ่งโดยทั่วไปเรียกว่า สถานะแฝง (hidden state) เวกเตอร์บริบท (context vector) หรือ embedding การแทนค่านี้จะบันทึกลักษณะสำคัญและความหมายเชิงอรรถศาสตร์ของข้อมูลขาเข้าไว้ในรูปแบบที่เหมาะสมสำหรับการประมวลผลในขั้นตอนต่อไป

ในความหมายที่กว้างขึ้น ในทฤษฎีสารสนเทศ เอนโคเดอร์คืออุปกรณ์หรืออัลกอริทึมใดก็ตามที่แปลงข้อมูลจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง โดยมักมีจุดประสงค์เพื่อการบีบอัดหรือการส่งผ่านข้อมูล

แนวคิดและจุดประสงค์

เป้าหมายหลักของเอนโคเดอร์ใน Neural Network คือการดึงคุณลักษณะที่มีประโยชน์จากข้อมูลขาเข้าและ "เข้ารหัส" คุณลักษณะเหล่านั้นลงในเวกเตอร์ที่มีความหนาแน่นและความยาวคงที่ กระบวนการนี้อาจมองได้ว่าเป็นรูปแบบหนึ่งของการลดมิติแบบไม่เชิงเส้น ซึ่งข้อมูลขาเข้าที่มีมิติสูงและกระจาย (เช่น ข้อความที่แทนด้วย one-hot vector) จะถูกแปลงไปสู่ปริภูมิเวกเตอร์ที่มีมิติต่ำกว่าแต่มีความหนาแน่นของข้อมูลสูง (ปริภูมิแฝง)

เวกเตอร์ที่ถูกเข้ารหัสนี้สามารถนำไปใช้งานได้ดังนี้:

  • ตัวถอดรหัส (Decoder) สำหรับการสร้างลำดับข้อมูลใหม่ (เช่น ในการแปลภาษาด้วยเครื่อง)
  • ตัวจำแนกประเภท (Classifier) สำหรับการแก้ปัญหาการวิเคราะห์ (เช่น การวิเคราะห์ความรู้สึกของข้อความ)
  • สำหรับงานที่ต้องการความเข้าใจบริบทขาเข้าทั้งหมด

เอนโคเดอร์ในสถาปัตยกรรมต่างๆ

เอนโคเดอร์ใน Autoencoder

หนึ่งในตัวอย่างคลาสสิกคือสถาปัตยกรรม Autoencoder ซึ่งประกอบด้วยสองส่วน:

  1. เอนโคเดอร์: บีบอัดข้อมูลขาเข้าให้เป็นการแทนค่าแฝงที่มีมิติต่ำกว่า (รหัสแฝง)
  2. ตัวถอดรหัส (Decoder): พยายามสร้างข้อมูลต้นฉบับขึ้นมาใหม่จากการแทนค่าที่บีบอัดนั้น

ด้วยการฝึกให้เครือข่ายนี้ลดความผิดพลาดในการสร้างข้อมูลใหม่ให้น้อยที่สุด เอนโคเดอร์จะเรียนรู้การดึงคุณลักษณะที่สำคัญที่สุดออกจากข้อมูล

เอนโคเดอร์ใน Recurrent Neural Network (RNN/LSTM)

ก่อนการปรากฏขึ้นของสถาปัตยกรรม Transformer เอนโคเดอร์ในงานประมวลผลลำดับข้อมูล (seq2seq) ถูกสร้างขึ้นบนพื้นฐานของ Recurrent Neural Network (RNN) หรือรูปแบบที่ปรับปรุงแล้วอย่าง LSTM

  • หลักการทำงาน: RNN เอนโคเดอร์จะประมวลผลลำดับขาเข้าทีละ token ในแต่ละขั้นตอนมันจะอัปเดต สถานะแฝง ของตัวเองโดยรวมข้อมูลของ token ปัจจุบันและสถานะก่อนหน้าเข้าด้วยกัน สถานะแฝงสุดท้ายที่ได้หลังจากประมวลผลลำดับทั้งหมดจะถูกพิจารณาว่าเป็นเวกเตอร์ที่เข้ารหัสความหมายของลำดับขาเข้าทั้งหมด เวกเตอร์นี้มักเรียกว่า เวกเตอร์บริบท (context vector) หรือ "เวกเตอร์ความคิด" (thought vector)

เอนโคเดอร์ในสถาปัตยกรรม Transformer

การปฏิวัติในการประมวลผลภาษาธรรมชาติเกี่ยวข้องกับการปรากฏขึ้นของเอนโคเดอร์ที่อิงบนสถาปัตยกรรม Transformer ซึ่งแตกต่างจาก RNN ตรงที่มันประมวลผล token ทั้งหมดในลำดับแบบขนาน

เอนโคเดอร์ Transformer ประกอบด้วยกองซ้อน (N) ของเลเยอร์ที่เหมือนกัน แต่ละเลเยอร์มีเลเยอร์ย่อยหลักสองส่วน:

  1. Multi-Head Self-Attention: กลไกนี้ช่วยให้แต่ละ token ในลำดับขาเข้าสามารถ "ให้ความสนใจ" กับ token อื่นๆ ทั้งหมดและถ่วงน้ำหนักความสำคัญของ token เหล่านั้นเพื่อสร้างการแทนค่าเชิงบริบทของตัวเอง ซึ่งช่วยให้โมเดลสามารถจับความสัมพันธ์ที่ซับซ้อนระหว่างคำได้โดยไม่ขึ้นอยู่กับตำแหน่ง
  2. Feed-Forward Network: ถูกนำไปใช้กับการแทนค่าของแต่ละ token แยกกันเพื่อการแปลงเชิงไม่เชิงเส้นเพิ่มเติม

ความแตกต่างสำคัญของเอนโคเดอร์ Transformer จาก RNN เอนโคเดอร์คือมันให้ผลลัพธ์เป็นไม่ใช่เวกเตอร์บริบทเพียงตัวเดียว แต่เป็น ลำดับของเวกเตอร์ที่ถูก contextualize — หนึ่งตัวต่อหนึ่ง token ขาเข้า โดยเวกเตอร์แต่ละตัวจะมีข้อมูลของ token ของตัวเองในบริบทของลำดับทั้งหมด

ประเภทของโมเดลที่อิงบนเอนโคเดอร์

โมเดล Encoder-Decoder

นี่คือสถาปัตยกรรมคลาสสิกสำหรับงานแปลงลำดับเป็นลำดับ (seq2seq) เช่น การแปลภาษาด้วยเครื่องหรือการสรุปความ

  • หลักการทำงาน: เอนโคเดอร์ประมวลผลลำดับขาเข้าทั้งหมด (เช่น ประโยคในภาษาต้นทาง) จากนั้นการแทนค่าขาออกของมันจะถูกส่งไปยังตัวถอดรหัสซึ่งโดยใช้ข้อมูลเหล่านั้นจะสร้างลำดับขาออกแบบ autoregressive (ประโยคในภาษาเป้าหมาย) ตัวถอดรหัส "มองดู" ผลลัพธ์ของเอนโคเดอร์ผ่านกลไกพิเศษที่เรียกว่า cross-attention
  • ตัวอย่าง: Transformer ต้นฉบับ, T5, BART

โมเดล Encoder-Only

โมเดลเหล่านี้ใช้เฉพาะกองซ้อนของเอนโคเดอร์ Transformer

  • หลักการทำงาน: ออกแบบมาสำหรับงานที่ต้องการความเข้าใจบริบทเชิงลึกของข้อความขาเข้าทั้งหมด ด้วยธรรมชาติสองทิศทางของกลไก self-attention โมเดลเหล่านี้จึงสร้างการแทนค่าเชิงบริบทที่หลากหลายสำหรับแต่ละ token
  • การนำไปใช้: เหมาะอย่างยิ่งสำหรับงานวิเคราะห์และเข้าใจภาษา (NLU) เช่น:
    • การจำแนกประเภทข้อความ (เช่น การวิเคราะห์ความรู้สึก)
    • การรู้จำเอนทิตีที่มีชื่อ (NER)
    • การตอบคำถาม (Question Answering) ซึ่งคำตอบคือส่วนหนึ่งของข้อความ
  • ตัวอย่าง: BERT และรูปแบบที่ต่อยอดมา (RoBERTa, ALBERT)

ความสัมพันธ์กับตัวถอดรหัส

ในสถาปัตยกรรม Encoder-Decoder เอนโคเดอร์และตัวถอดรหัสทำหน้าที่เสริมกัน:

  • เอนโคเดอร์ รับผิดชอบการ เข้าใจ ลำดับขาเข้า
  • ตัวถอดรหัส (Decoder) รับผิดชอบการ สร้าง ลำดับขาออก

จุดเชื่อมต่อสำคัญระหว่างทั้งสองคือกลไก cross-attention ภายในตัวถอดรหัส ในแต่ละขั้นตอนของการสร้าง ตัวถอดรหัสจะสร้างคำขอ (Query) จากส่วนของลำดับขาออกที่สร้างขึ้นแล้ว และใช้มันเพื่อ "ให้ความสนใจ" กับการแทนค่าขาออกของเอนโคเดอร์ (ซึ่งทำหน้าที่เป็น Key และ Value) ซึ่งช่วยให้ตัวถอดรหัสสามารถมุ่งความสนใจไปยังส่วนที่เกี่ยวข้องที่สุดของลำดับขาเข้าสำหรับการสร้าง token ถัดไป

เอกสารอ้างอิง

  • Hinton, G. E.; Salakhutdinov, R. R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science. DOI:10.1126/science.1127647.
  • Cho, K. et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. arXiv:1406.1078.
  • Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Bahdanau, D.; Cho, K.; Bengio, Y. (2015). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Kingma, D. P.; Welling, M. (2014). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Dai, Z. et al. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Dosovitskiy, A. et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.

ดูเพิ่มเติม

  • BERT