ส่วนนี้จะกล่าวถึงวิธีต่างๆ ในการรับการฝัง รวมถึงวิธีเปลี่ยนการฝังแบบคงที่เป็นการฝังตามบริบท
เทคนิคการลดมิติข้อมูล
เทคนิคทางคณิตศาสตร์ที่จับโครงสร้างที่สําคัญของพื้นที่สูงมิติในพื้นที่ต่ำมิติมีอยู่หลายวิธี ในทางทฤษฎีแล้ว เทคนิคใดก็ได้เหล่านี้สามารถใช้สร้างการฝังสําหรับระบบแมชชีนเลิร์นนิง
เช่น มีการใช้การวิเคราะห์องค์ประกอบหลัก (PCA) เพื่อสร้างการฝังคํา เมื่อพิจารณาชุดอินสแตนซ์ เช่น เวกเตอร์ถุงคำ PCA จะพยายามค้นหามิติข้อมูลที่มีค่าสัมพัทธ์กันสูงซึ่งสามารถยุบให้เป็นมิติข้อมูลเดียว
การฝึกฝนการฝังเป็นส่วนหนึ่งของโครงข่ายประสาทเทียม
คุณสามารถสร้างการฝังขณะฝึกเครือข่ายประสาทเทียมสําหรับงานเป้าหมายได้ วิธีการนี้ช่วยให้คุณฝังข้อมูลในระบบที่เฉพาะเจาะจงได้ดีขึ้น แต่อาจใช้เวลานานกว่าการฝึกฝังข้อมูลแยกต่างหาก
โดยทั่วไป คุณสามารถสร้างเลเยอร์ที่ซ่อนขนาด d ในเครือข่ายประสาทที่กำหนดให้เป็นเลเยอร์การฝัง โดยที่ d แสดงถึงทั้งจำนวนโหนดในเลเยอร์ที่ซ่อนและจำนวนมิติข้อมูลในพื้นที่การฝัง เลเยอร์การฝังนี้สามารถรวมเข้ากับฟีเจอร์อื่นๆ และเลเยอร์ที่ซ่อนอยู่ เช่นเดียวกับเครือข่ายประสาทเทียม (Deep Neural Network) อื่นๆ พารามิเตอร์จะได้รับการเพิ่มประสิทธิภาพระหว่างการฝึกเพื่อลดการสูญเสียในโหนดของชั้นเอาต์พุตของเครือข่าย
กลับไปที่ตัวอย่างการแนะนำอาหาร เป้าหมายของเราคือการคาดการณ์อาหารใหม่ซึ่งผู้ใช้จะชอบโดยอิงจากอาหารโปรดในปัจจุบัน ก่อนอื่น เราสามารถรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับอาหารโปรด 5 อันดับแรกของผู้ใช้ จากนั้นเราจะจําลองงานนี้เป็นปัญหาการเรียนรู้ที่มีการควบคุมได้ เรากำหนดอาหาร 4 ใน 5 อันดับแรกเหล่านี้ให้เป็นข้อมูลฟีเจอร์ จากนั้นสุ่มแยกอาหารรายการที่ 5 ไว้เป็นป้ายกำกับเชิงบวกที่โมเดลของเรามีเป้าหมายจะคาดการณ์ โดยเพิ่มประสิทธิภาพการคาดการณ์ของโมเดลโดยใช้การสูญเสีย softmax
ในระหว่างการฝึก โมเดลเครือข่ายประสาทจะเรียนรู้น้ำหนักที่เหมาะสมสําหรับโหนดในเลเยอร์ที่ซ่อนอยู่เลเยอร์แรก ซึ่งทำหน้าที่เป็นเลเยอร์การฝัง เช่น หากโมเดลมีโหนด 3 โหนดในชั้นซ่อนแรก โมเดลอาจพิจารณาว่ามิติข้อมูล 3 รายการที่เกี่ยวข้องกับรายการอาหารมากที่สุดคือ "เป็นอาหารที่มีแซนวิช" "เป็นอาหารที่มีของหวาน" และ "เป็นอาหารที่เป็นของเหลว" รูปที่ 12 แสดงค่าอินพุตที่เข้ารหัสแบบฮอตฮ็อตสําหรับ "ฮอทดอก" ซึ่งเปลี่ยนรูปแบบเป็นเวกเตอร์ 3 มิติ
![รูปที่ 12 โครงข่ายประสาทสําหรับการเข้ารหัสฮอตด็อกแบบฮอตสปาร์ก ชั้นแรกคือชั้นอินพุตที่มีโหนด 5 โหนด โดยแต่ละโหนดมีคำอธิบายประกอบด้วยไอคอนของอาหารนั้นๆ (ซุปบอสซิร์ต ฮอตด็อก สลัด ... และชาแวร์มา) โดยโหนดเหล่านี้มีค่า [0, 1, 0, ..., 0] ตามลําดับ ซึ่งแสดงการเข้ารหัสแบบฮอตเวิร์กสำหรับ "ฮอทด็อก" เลเยอร์อินพุตเชื่อมต่อกับเลเยอร์การฝัง 3 โหนด ซึ่งโหนดมีค่าเป็น 2.98, -0.75 และ 0 ตามลำดับ เลเยอร์การฝังเชื่อมต่อกับเลเยอร์ที่ซ่อนอยู่ 5 โหนด ซึ่งเชื่อมต่อกับเลเยอร์เอาต์พุต 5 โหนด](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?hl=th)
hot dog
ที่ใช้เป็นอินพุตให้กับโครงข่ายประสาทแบบลึก เลเยอร์การฝังจะแปลการเข้ารหัสแบบฮอตเวิร์กเป็นเวกเตอร์การฝัง 3 มิติ [2.98, -0.75, 0]
ในระหว่างการฝึก ระบบจะเพิ่มประสิทธิภาพน้ำหนักของเลเยอร์การฝังเพื่อให้เวกเตอร์การฝังสำหรับตัวอย่างที่คล้ายกันอยู่ใกล้กันมากขึ้น ดังที่กล่าวไว้ก่อนหน้านี้ มิติข้อมูลซึ่งโมเดลจริงเลือกสําหรับการฝังมีแนวโน้มที่จะเข้าใจง่ายหรือเข้าใจได้ยากกว่าในตัวอย่างนี้
แทรกตามบริบท
ข้อจํากัดอย่างหนึ่งของword2vec
เวกเตอร์การฝังแบบคงที่คือคําต่างๆ อาจสื่อความหมายแตกต่างกันไปในบริบทที่แตกต่างกัน "ใช่" หมายถึงสิ่งหนึ่งเมื่อใช้เดี่ยวๆ แต่กลับหมายถึงสิ่งตรงข้ามในวลี "ใช่สิ" "โพสต์" อาจหมายถึง "จดหมาย" "ส่งจดหมาย" "ตัวยึดต่างหู" "เครื่องหมายที่จุดสิ้นสุดการแข่งม้า" "หลังการถ่ายทำ" "เสา" "ติดประกาศ" "ตั้งยามหรือทหาร" หรือ "หลังจาก" และคำอื่นๆ อีกมากมาย
แต่การฝังแบบคงที่จะแสดงแต่ละคำด้วยจุดเดียวในเวกเตอร์สเปซ แม้ว่าคำนั้นๆ จะมีความหมายที่หลากหลายก็ตาม
ในแบบฝึกหัดที่แล้ว คุณได้เห็นข้อจํากัดของการฝังแบบคงที่สําหรับคําว่าสีส้ม ซึ่งอาจหมายถึงสีหรือผลไม้ประเภทหนึ่ง เมื่อใช้การฝังแบบคงที่เพียงรายการเดียว orange จะใกล้เคียงกับสีอื่นๆ มากกว่าjuice เสมอเมื่อฝึกกับชุดข้อมูล word2vec
การฝังตามบริบทได้รับการพัฒนาขึ้นเพื่อแก้ไขข้อจำกัดนี้ การฝังตามบริบทช่วยให้คำหนึ่งๆ แสดงด้วยองค์ประกอบหลายรายการที่รวมข้อมูลเกี่ยวกับคำรอบข้างและตัวคำนั้นเอง Orange จะมีการฝังที่แตกต่างกันสำหรับประโยคที่ไม่ซ้ำกันทุกประโยคที่มีคำนั้นในชุดข้อมูล
วิธีการบางอย่างในการสร้างการฝังตามบริบท เช่น ELMo จะใช้การฝังแบบคงที่ของตัวอย่าง เช่น เวกเตอร์ word2vec
สำหรับคำในประโยค และเปลี่ยนรูปแบบด้วยฟังก์ชันที่รวมข้อมูลเกี่ยวกับคำรอบๆ ซึ่งจะสร้างการฝังตามบริบท
คลิกที่นี่เพื่อดูรายละเอียดเกี่ยวกับการฝังตามบริบท
- สำหรับโมเดล ELMo โดยเฉพาะ ระบบจะรวบรวมการฝังแบบคงที่กับการฝังที่มาจากเลเยอร์อื่นๆ ซึ่งเข้ารหัสการอ่านประโยคจากหน้าไปหลังและจากหลังไปหน้า
- โมเดล BERT จะปกปิดบางส่วนของลำดับที่โมเดลใช้เป็นอินพุต
- โมเดล Transformer ใช้เลเยอร์การใส่ใจตนเองเพื่อถ่วงน้ำหนักความเกี่ยวข้องของคำอื่นๆ ในลำดับกับแต่ละคำ นอกจากนี้ ยังเพิ่มคอลัมน์ที่เกี่ยวข้องจากเมทริกซ์การฝังตำแหน่ง (ดูการเข้ารหัสตำแหน่ง) ไปยังการฝังโทเค็นที่เรียนรู้ก่อนหน้านี้แต่ละรายการทีละองค์ประกอบเพื่อสร้างการฝังอินพุตที่จะส่งไปยังส่วนที่เหลือของโมเดลเพื่อใช้อนุมาน การฝังอินพุตนี้ ซึ่งเป็นเอกลักษณ์เฉพาะสำหรับแต่ละลำดับข้อความที่แตกต่างกัน คือการฝังตามบริบท
แม้ว่าโมเดลที่อธิบายข้างต้นจะเป็นโมเดลภาษา แต่การฝังตามบริบทก็มีประโยชน์ในงาน Generative อื่นๆ เช่น รูปภาพ การฝังค่า RGB ของพิกเซลในรูปภาพม้าจะให้ข้อมูลแก่โมเดลมากกว่าเมื่อรวมกับเมทริกซ์ตำแหน่งที่แสดงพิกเซลแต่ละพิกเซลและการเข้ารหัสพิกเซลใกล้เคียงบางส่วน ซึ่งจะสร้างการฝังตามบริบท เมื่อเทียบกับการฝังค่า RGB แบบคงที่เดิมเพียงอย่างเดียว