การฝัง: การรับการฝัง

ส่วนนี้จะกล่าวถึงวิธีต่างๆ ในการรับการฝัง รวมถึงวิธีเปลี่ยนการฝังแบบคงที่เป็นการฝังตามบริบท

เทคนิคการลดมิติข้อมูล

เทคนิคทางคณิตศาสตร์ที่จับโครงสร้างที่สําคัญของพื้นที่สูงมิติในพื้นที่ต่ำมิติมีอยู่หลายวิธี ในทางทฤษฎีแล้ว เทคนิคใดก็ได้เหล่านี้สามารถใช้สร้างการฝังสําหรับระบบแมชชีนเลิร์นนิง

เช่น มีการใช้การวิเคราะห์องค์ประกอบหลัก (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 โหนด
รูปที่ 12 การเข้ารหัสแบบฮอตเดียวของ hot dog ที่ใช้เป็นอินพุตให้กับโครงข่ายประสาทแบบลึก เลเยอร์การฝังจะแปลการเข้ารหัสแบบฮอตเวิร์กเป็นเวกเตอร์การฝัง 3 มิติ [2.98, -0.75, 0]

ในระหว่างการฝึก ระบบจะเพิ่มประสิทธิภาพน้ำหนักของเลเยอร์การฝังเพื่อให้เวกเตอร์การฝังสำหรับตัวอย่างที่คล้ายกันอยู่ใกล้กันมากขึ้น ดังที่กล่าวไว้ก่อนหน้านี้ มิติข้อมูลซึ่งโมเดลจริงเลือกสําหรับการฝังมีแนวโน้มที่จะเข้าใจง่ายหรือเข้าใจได้ยากกว่าในตัวอย่างนี้

แทรกตามบริบท

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

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

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

วิธีการบางอย่างในการสร้างการฝังตามบริบท เช่น ELMo จะใช้การฝังแบบคงที่ของตัวอย่าง เช่น เวกเตอร์ word2vec สำหรับคำในประโยค และเปลี่ยนรูปแบบด้วยฟังก์ชันที่รวมข้อมูลเกี่ยวกับคำรอบๆ ซึ่งจะสร้างการฝังตามบริบท

คลิกที่นี่เพื่อดูรายละเอียดเกี่ยวกับการฝังตามบริบท

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

แม้ว่าโมเดลที่อธิบายข้างต้นจะเป็นโมเดลภาษา แต่การฝังตามบริบทก็มีประโยชน์ในงาน Generative อื่นๆ เช่น รูปภาพ การฝังค่า RGB ของพิกเซลในรูปภาพม้าจะให้ข้อมูลแก่โมเดลมากกว่าเมื่อรวมกับเมทริกซ์ตำแหน่งที่แสดงพิกเซลแต่ละพิกเซลและการเข้ารหัสพิกเซลใกล้เคียงบางส่วน ซึ่งจะสร้างการฝังตามบริบท เมื่อเทียบกับการฝังค่า RGB แบบคงที่เดิมเพียงอย่างเดียว