Dictionary · กลไกโมเดล · 39 / 291

Embedding

การแปลงข้อความ รูปภาพ หรือข้อมูลอื่นให้เป็นชุดตัวเลข (vector) ที่เก็บความหมายไว้ เพื่อให้คอมพิวเตอร์คำนวณได้ว่าอะไรคล้ายกับอะไร

Embedding คือวิธีแปลงข้อมูลที่คอมพิวเตอร์อ่าน "ความหมาย" ไม่ออกโดยตรง ไม่ว่าจะเป็นข้อความ รูปภาพ กราฟความสัมพันธ์ หรือพฤติกรรมลูกค้า ให้กลายเป็นชุดตัวเลขยาวๆ ที่เรียกว่า vector เช่น [0.2, 0.8, -0.4, ...] แล้ววางลงในปริภูมิหลายมิติ จุดสำคัญคือตัวเลขแต่ละตัวไม่ได้มีความหมายในตัวเอง แต่ "ระยะห่าง" ระหว่าง vector ต่างหากที่มีความหมาย: ข้อมูลที่ความหมายใกล้เคียงกันจะถูกวางไว้ใกล้กัน ข้อมูลที่คนละเรื่องจะอยู่ไกลกัน คำถามเชิงความหมายอย่าง "สองประโยคนี้พูดเรื่องเดียวกันไหม" จึงถูกแปลงเป็นโจทย์คณิตศาสตร์ว่า "ตัวเลขสองชุดนี้อยู่ใกล้กันแค่ไหน" ซึ่งเป็นงานที่คอมพิวเตอร์ถนัดที่สุด

ตัวเลขพวกนี้ไม่มีใครมานั่งกำหนดเองทีละคำ แต่เกิดจากการ training model ประเภท neural-network กับข้อมูลจำนวนมากจนโมเดลจับแพตเทิร์นความสัมพันธ์ได้เอง วิธีเก่าก่อนหน้านี้อย่าง one-hot encoding ให้แต่ละคำมี "ช่อง" ของตัวเองหนึ่งช่อง ทำให้ vector บวมมหาศาลและบอกไม่ได้เลยว่าคำไหนใกล้เคียงกับคำไหน embedding แก้ปัญหานี้ด้วยการบีบข้อมูลให้เหลือมิติน้อยลงแต่ยัดความสัมพันธ์เชิงความหมายเข้าไปแทน ซึ่งประหยัดทั้งหน่วยความจำและพลังประมวลผล เทคนิคมีตั้งแต่รุ่นที่ทำให้แนวคิดนี้แพร่หลายอย่าง Word2Vec (ตัวแนวคิดมีมาก่อนหน้านั้น ทั้งสาย Latent Semantic Analysis ยุค 1990s และ neural language model ของ Bengio ปี 2003) จนถึงโมเดลตระกูล transformer อย่าง BERT ที่แยกบริบทได้ด้วย: คำว่า "play" ในความหมาย "ละครเวที" กับ "เล่น" จะได้ vector คนละชุดกัน และ embedding ไม่ได้จำกัดแค่ระดับคำ ยังมีระดับประโยค ทั้งเอกสาร รูปภาพ ไปจนถึงตัวผู้ใช้และสินค้า

คนทำงานยุค ai ควรรู้จักคำนี้เพราะมันคือกลไกเบื้องหลังฟีเจอร์ที่เราเจอทุกวัน: ระบบแนะนำหนังและสินค้า การค้นหาแบบ semantic search ที่หาเจอด้วย "ความหมาย" แทนการจับคำตรงตัว การจัดกลุ่มเอกสาร (clustering) ไปจนถึงระบบตอบคำถามจากเอกสารองค์กรแบบ rag ที่แปลงเอกสารเป็น embedding เก็บไว้ใน vector-database ก่อน แล้วแปลงคำถามของผู้ใช้เป็น vector ไปจับคู่กัน (ไม่ใช่ทางเดียว: RAG ยังใช้การค้นแบบจับคำตรงตัวอย่าง BM25 มาผสมหรือใช้แทนได้) เวลามีคนเสนอโปรเจกต์ "chatbot ตอบจากคู่มือบริษัท" สิ่งที่อยู่ใต้พรมแทบทุกครั้งคือ embedding นี่แหละ

ตัวอย่างจากบทสนทนาจริง

ฝ่ายบุคคล: ลองถามระบบว่า "ลาพักร้อนต้องแจ้งล่วงหน้ากี่วัน" แล้วมันดึงระเบียบมาตอบถูกด้วย ทั้งที่ในเอกสารไม่มีคำว่า "พักร้อน" สักคำ มีแต่ "วันหยุดพักผ่อนประจำปี" นี่มันเดาเอาหรือแอบ Ctrl+F แบบพิเศษ?

ทีมไอที: ไม่ใช่การค้นคำตรงตัวครับ ระบบแปลงทั้งคำถามของพี่และเอกสารทุกหน้าเป็น embedding คือชุดตัวเลขที่เก็บความหมายเอาไว้ พอ "ลาพักร้อน" กับ "วันหยุดพักผ่อนประจำปี" ความหมายใกล้กัน vector ของมันก็อยู่ใกล้กันในปริภูมิตัวเลข ระบบเลยจับคู่ได้แม้ตัวอักษรจะไม่ตรงกันเลย

ระวังสับสนกับ

  • token : token คือ "ชิ้นส่วน" ของข้อความที่ถูกหั่นเป็นหน่วยย่อยเพื่อให้โมเดลประมวลผล เป็นเรื่องของการแบ่งหน่วยข้อความ ส่วน embedding เป็นเรื่องของการแทนความหมายด้วยชุดตัวเลข คนละขั้นตอน คนละหน้าที่
  • vector-database : embedding คือตัวข้อมูล (ชุดตัวเลข) ส่วน vector database คือฐานข้อมูลที่ออกแบบมาเพื่อเก็บและค้น embedding จำนวนมากได้เร็ว เปรียบง่ายๆ คือเอกสารกับตู้เก็บเอกสาร

ดูคำนี้ใน Knowledge Atlas →

■ ไม่อยากพลาดของใหม่

อ่านจบแล้วอยากตามเรื่อง AI แบบนี้ต่อทุกวัน เรามีสรุปข่าวภาษาไทยส่งทาง LINE ทุกเช้า กดเพิ่มเพื่อนไว้ได้เลย ไม่มีค่าใช้จ่าย

เพิ่มเพื่อนใน LINE →
QR เพิ่มเพื่อน LINE ของ TRAINIAC AIคอมพิวเตอร์สแกนด้วยมือถือได้เลย

EffortFine-tuning