การฝัง (Embedding) คือการแทนข้อมูลในรูปแบบเวกเตอร์ภายในพื้นที่การฝัง (Embedding Space) โดยทั่วไปแล้ว โมเดลจะค้นหาการฝังที่เป็นไปได้โดยการฉายภาพพื้นที่ที่มีมิติสูงของเวกเตอร์ข้อมูลเริ่มต้นไปยังพื้นที่ที่มีมิติต่ำกว่า สำหรับการกล่าวถึงเรื่องข้อมูลมิติสูงกับข้อมูลมิติต่ำ โปรดดูที่โมดูลข้อมูลเชิงหมวดหมู่
การฝังช่วยให้การทำแมชชีนเลิร์นนิงบนเวกเตอร์คุณลักษณะ (Feature Vector) ขนาดใหญ่เป็นไปได้ง่ายขึ้น เช่น เวกเตอร์แบบเบาบาง (Sparse Vector) ที่แทนข้อมูลรายการอาหารซึ่งได้กล่าวถึงในส่วนก่อนหน้า บางครั้งตำแหน่งสัมพัทธ์ของรายการข้อมูลต่างๆ ในพื้นที่การฝังอาจมีความสัมพันธ์กันทางความหมาย แต่กระบวนการในการหาพื้นที่ที่มีมิติต่ำกว่าและตำแหน่งสัมพัทธ์ในพื้นที่นั้นมักจะไม่สามารถตีความได้โดยมนุษย์ และการฝังที่ได้ก็ทำความเข้าใจได้ยาก
อย่างไรก็ตาม เพื่อให้มนุษย์พอเข้าใจว่าเวกเตอร์การฝังทำการแทนข้อมูลอย่างไร ลองพิจารณาการแทนอาหารต่างๆ แบบมิติเดียวดังนี้ ฮอตดอก พิซซ่า สลัด ชาวัรมา และ บอชช์ ในมาตราส่วนจาก "ไม่ค่อยเหมือน แซนด์วิช เลย" ถึง "เหมือนแซนด์วิชมากที่สุด" มิติเดียวดังกล่าวเป็นการวัด "ความเป็นแซนด์วิช" ในจินตนาการ

แอปเปิ้ลสตรูเดิลจะอยู่ตรงไหนบนแกนนี้ อาจจะกล่าวได้ว่าขนมนี้อยู่ระหว่าง hot dog
กับ shawarma
แต่แอปเปิ้ลสตรูเดิลก็มีมิติของความหวานหรือความเป็นขนมหวานเพิ่มเติม ซึ่งทำให้แตกต่างจากตัวเลือกอื่นๆ มาก
รูปต่อไปนี้แสดงให้เห็นแง่มุมนี้โดยการเพิ่มมิติ "ความเป็นขนมหวาน" ลงไป

การฝังจะแทนข้อมูลแต่ละรายการในพื้นที่ n มิติ ด้วยตัวเลขทศนิยม n ตัว (โดยปกติจะอยู่ในช่วง –1 ถึง 1 หรือ 0 ถึง 1) การฝังในรูปที่ 3 แทนอาหารแต่ละอย่างในพื้นที่มิติเดียวด้วยพิกัดเดียว ในขณะที่รูปที่ 4 แทนอาหารแต่ละอย่างในพื้นที่ 2 มิติด้วยพิกัด 2 ตัว ในรูปที่ 4 "แอปเปิ้ลสตรูเดิล" อยู่ในควอดรันต์ขวาบนของกราฟและอาจได้รับพิกัดเป็น (0.5, 0.3) ในขณะที่ "ฮอตดอก" อยู่ในควอดรันต์ขวาล่างของกราฟ และอาจได้รับพิกัดเป็น (0.2, –0.5)
ในการฝัง ระยะห่างระหว่างรายการข้อมูล 2 รายการจะคำนวณได้ และตีความได้ว่าเป็นการวัดความคล้ายคลึงกันระหว่างรายการทั้งสอง สิ่งของ 2 อย่างที่อยู่ใกล้กัน เช่น shawarma
กับ hot dog
ในรูปที่ 4 มีความสัมพันธ์ใกล้ชิดกันในการแทนข้อมูลของโมเดลมากกว่าสิ่งของ 2 อย่างที่อยู่ห่างกัน เช่น apple strudel
กับ borscht
ลองสังเกตด้วยว่าในพื้นที่ 2 มิติในรูปที่ 4 นั้น apple strudel
อยู่ห่างจาก shawarma
และ hot dog
มากกว่าในพื้นที่ 1 มิติ ซึ่งตรงกับที่มนุษย์จะรู้ได้โดยสัญชาตญาณ กล่าวคือ apple strudel
ไม่คล้ายกับฮอตดอกหรือชาวัรมาเท่ากับที่ฮอตดอกและชาวัรมาคล้ายกันเอง
ตอนนี้ให้ลองพิจารณาบอชช์ ซึ่งมีลักษณะเป็นของเหลวมากกว่าอาหารอื่นๆ ซึ่งบ่งบอกถึงมิติที่ 3 นั่นคือความเป็นของเหลว หรือระดับความเหลวของอาหารแต่ละอย่าง เมื่อเพิ่มมิติดังกล่าวเข้าไป ก็จะเห็นรายการอาหารเหล่านี้ในภาพแบบ 3 มิติดังนี้

ทังหยวนจะอยู่ตรงไหนในพื้นที่ 3 มิตินี้ อาหารนี้มีลักษณะเป็นน้ำซุปเหมือนบอชช์ เป็นขนมหวานเหมือนแอปเปิ้ลสตรูเดิล และดูไม่เหมือนแซนด์วิชอย่างแน่นอน ขนมนี้อาจวางอยู่ในตำแหน่งดังต่อไปนี้ได้

ลองสังเกตว่ามีข้อมูลมากเพียงใดที่แสดงได้ในมิติทั้งสามนี้ คุณอาจจินตนาการถึงการเพิ่มมิติอื่นๆ เข้าไป เช่น ความเป็นเนื้อสัตว์ ความเป็นของอบ แม้ว่าพื้นที่ 4 มิติ, 5 มิติ หรือสูงกว่านั้นจะจินตนาการเป็นภาพได้ยากก็ตาม
พื้นที่การฝังในโลกแห่งความเป็นจริง
ในโลกแห่งความเป็นจริง สมมติว่าพื้นที่การฝังมีจำนวนมิติเป็น d ค่า d นี้จะสูงกว่า 3 มาก แต่ก็ยังต่ำกว่ามิติของข้อมูลที่เวกเตอร์แทนค่า และความสัมพันธ์ระหว่างจุดข้อมูลต่างๆ ก็ไม่จำเป็นต้องรู้ได้โดยสัญชาตญาณเท่ากับภาพประกอบที่สร้างขึ้นด้านบน (สำหรับการฝังข้อมูลคำ ค่า d มักจะเท่ากับ 256, 512 หรือ 10241)
ในทางปฏิบัติ ผู้ปฏิบัติงานด้าน ML มักจะเป็นผู้กำหนดงานที่เฉพาะเจาะจงและจำนวนมิติของการฝัง จากนั้นโมเดลจะพยายามจัดเรียงตัวอย่างในการฝึกให้อยู่ใกล้กันในพื้นที่การฝังที่มีจำนวนมิติตามที่ระบุ หรือปรับจำนวนมิติ หากค่า d ยังไม่ได้กำหนดไว้แน่นอน มิติต่างๆ แต่ละมิติมักจะไม่สามารถเข้าใจได้ง่ายเหมือนกับ "ความเป็นขนมหวาน" หรือ "ความเป็นของเหลว" บางครั้งเราอนุมานได้ว่ามิติเหล่านั้น "หมายถึง" อะไร แต่ก็ไม่ได้ทำได้เสมอไป
โดยปกติการฝังจะมีลักษณะเฉพาะเจาะจงตามงาน หากงานแตกต่างออกไป การฝังก็จะต่างออกไปเช่นกัน เช่น การฝังที่สร้างโดยโมเดลที่ใช้จำแนกผู้ทานมังสวิรัติกับผู้ไม่ทานมังสวิรัติ จะมีความแตกต่างจากการฝังที่สร้างโดยโมเดลที่แนะนำเมนูอาหารตามช่วงเวลาของวันหรือฤดูกาล ตัวอย่างเช่น "ซีเรียล" และ "ไส้กรอกสำหรับอาหารเช้า" อาจอยู่ใกล้กันในพื้นที่การฝังของโมเดลที่พิจารณาตามช่วงเวลาของวัน แต่จะอยู่ห่างกันในพื้นที่การฝังของโมเดลที่จำแนกผู้ทานมังสวิรัติกับผู้ไม่ทานมังสวิรัติ
การฝังแบบคงที่
แม้ว่าการฝังจะแตกต่างกันไปตามแต่ละงาน แต่ก็มีงานหนึ่งที่สามารถนำมาใช้ได้ทั่วไป นั่นคือการทำนายบริบทของคำ โมเดลที่ได้รับการฝึกให้ทำนายบริบทของคำจะมีสมมติฐานว่าคำต่างๆ ที่ปรากฏในบริบทที่คล้ายกันมีความเกี่ยวข้องกันทางความหมาย ตัวอย่างเช่น ข้อมูลฝึกฝนที่มีประโยค "พวกเขาขี่ลาลงไปในแกรนด์แคนยอน" และ "พวกเขาขี่ม้าลงไปในแคนยอน" บ่งชี้ว่า "ม้า" ปรากฏในบริบทที่คล้ายกับ "ลา" ซึ่งแสดงให้เห็นว่าเวกเตอร์การฝังที่อิงตามความคล้ายคลึงทางความหมายทำงานได้ดีในงานทั่วไปมากมายที่เกี่ยวข้องกับภาษา
แม้ว่าโมเดล word2vec จะเป็นตัวอย่างที่เก่าและแทนที่ด้วยโมเดลอื่นไปมากแล้ว แต่ก็ยังคงมีประโยชน์สำหรับใช้ในการอธิบาย ทั้งนี้ word2vec
ฝึกฝนจากคลังเอกสารเพื่อให้ได้การฝังที่ใช้ได้กับทุกบริบทเพียง 1 รายการสำหรับแต่ละคำ เมื่อแต่ละคำหรือแต่ละจุดข้อมูลมีเวกเตอร์การฝังเพียง 1 อัน การฝังนี้จะเรียกว่าการฝังแบบคงที่ วิดีโอต่อไปนี้อธิบายการฝึก word2vec
ด้วยภาพที่ลดความซับซ้อนลง
งานวิจัยแสดงให้เห็นว่า เมื่อผ่านการฝึกแล้ว การฝังแบบคงที่จะเข้ารหัสข้อมูลเชิงความหมายไว้ในระดับหนึ่ง โดยเฉพาะในความสัมพันธ์ระหว่างคำ นั่นคือ คำที่ใช้ในบริบทที่คล้ายกันจะอยู่ใกล้กันมากขึ้นในพื้นที่การฝัง เวกเตอร์การฝังที่สร้างขึ้นนั้นจะขึ้นอยู่กับคลังเอกสารที่ใช้ในการฝึก ดูรายละเอียดได้ใน T. Mikolov et al (2013), "Efficient estimation of word representations in vector space"
-
François Chollet, Deep Learning with Python (Shelter Island, NY: Manning, 2017), 6.1.2. ↩