การฝัง: พื้นที่การฝังและการฝังแบบคงที่

การฝัง (Embedding) คือการแทนข้อมูลในรูปแบบเวกเตอร์ภายในพื้นที่การฝัง (Embedding Space) โดยทั่วไปแล้ว โมเดลจะค้นหาการฝังที่เป็นไปได้โดยการฉายภาพพื้นที่ที่มีมิติสูงของเวกเตอร์ข้อมูลเริ่มต้นไปยังพื้นที่ที่มีมิติต่ำกว่า สำหรับการกล่าวถึงเรื่องข้อมูลมิติสูงกับข้อมูลมิติต่ำ โปรดดูที่โมดูลข้อมูลเชิงหมวดหมู่

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

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

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

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

รูปที่ 4 รูปภาพเดียวกันกับรูปก่อน แต่เพิ่มแกนแนวตั้งของความเป็นขนมหวาน แอปเปิ้ลสตรูเดิลอยู่ระหว่างฮอตดอกกับชาวัรมา แต่อยู่สูงขึ้นไปบนแกนแนวนอน และสูงกว่าบนแกนความเป็นขนมหวาน
รูปที่ 4 อาหารที่วางในตำแหน่งต่างๆ โดยใช้ทั้ง "ความเป็นแซนด์วิช" และ "ความเป็นขนมหวาน"

การฝังจะแทนข้อมูลแต่ละรายการในพื้นที่ 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 มิติดังนี้

รูปที่ 5 รูปภาพเดียวกันกับรูปก่อน แต่เพิ่มแกนที่ 3 ซึ่งแสดงความเป็นของเหลว โดยตั้งฉากกับอีก 2 แกน และบอชช์อยู่ในตำแหน่งที่ไกลออกไปบนแกนดังกล่าว
รูปที่ 5 อาหารที่วางในตำแหน่งต่างๆ โดยใช้ "ความเป็นแซนด์วิช" "ความเป็นขนมหวาน" และ "ความเป็นของเหลว"

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

รูปที่ 6 รูปภาพเดียวกันกับรูปก่อน แต่เพิ่มทังหยวนเข้าไปโดยวางอยู่ในตำแหน่งที่สูงบนแกนความเป็นขนมหวานและแกนความเป็นของเหลว และต่ำบนแกนความเป็นแซนด์วิช
รูปที่ 6 เพิ่มทังหยวนเข้าไปในรูปภาพก่อนหน้านี้ โดยอยู่ในตำแหน่งที่สูงบนแกน "ความเป็นขนมหวาน" และ "ความเป็นของเหลว" และต่ำบนแกน "ความเป็นแซนด์วิช"

ลองสังเกตว่ามีข้อมูลมากเพียงใดที่แสดงได้ในมิติทั้งสามนี้ คุณอาจจินตนาการถึงการเพิ่มมิติอื่นๆ เข้าไป เช่น ความเป็นเนื้อสัตว์ ความเป็นของอบ แม้ว่าพื้นที่ 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"


  1. François Chollet, Deep Learning with Python (Shelter Island, NY: Manning, 2017), 6.1.2.