การฝังคำ

การฝังคำ (word embedding) เป็นคำเรียกรวมวิธีการสร้างแบบจำลองภาษา และวิธีการเรียนรู้ของเครื่องในการประมวลภาษาธรรมชาติ โดยแปลงคำหรือวลีให้อยู่ในปริภูมิเวกเตอร์จำนวนจริง การฝังในทางคณิตศาสตร์ทำการแปลงข้อมูลจากปริภูมิที่มีจำนวนมิติเท่ากับจำนวนคำไปสู่ปริภูมิเวกเตอร์ที่มีจำนวนมิติน้อยกว่ามาก
วิธีการสร้างแผนจับโยงนี้ได้แก่ โครงข่ายประสาทเทียม, การลดมิติของเมทริกซ์แสดงการปรากฏร่วมกันของคำ, แบบจำลองความน่าจะเป็น, วิธีการที่ยืนพื้นความรู้ที่อธิบายได้, การแสดงออกแบบชัดเจนของคำในบริบทที่คำนั้นปรากฏ ฯลฯ
การใช้เทคนิคการฝังคำและวลีเป็นค่าป้อนเข้าช่วยเพิ่มประสิทธิภาพในงานด้านการประมวลภาษาธรรมชาติ เช่น การวิเคราะห์วากยสัมพันธ์ และ การวิเคราะห์ความรู้สึก
การพัฒนาเทคนิค.
ในทางภาษาศาสตร์ มีการกล่าวถึงการฝังคำในสาขาอรรถศาสตร์ มีจุดมุ่งหมายเพื่อหาปริมาณและจำแนกความคล้ายคลึงทางความหมายระหว่างรายการทางภาษาตามลักษณะการแจกแจงของตัวอย่างข้อมูลทางภาษาจำนวนมาก แนวคิดพื้นฐานที่ว่า "คำหนึ่ง ๆ ถูกกำหนดลักษณะโดยบริบทโดยรอบ" ได้รับการแผยแผ่โดยจอห์น รูเปิร์ต เพิร์ธ
วิธีการแสดงคำในรูปแบบเวกเตอร์มีรากฐานมาจากการพัฒนาแบบจำลองปริภูมิเวกเตอร์ สำหรับการค้นคืนสารสนเทศในทศวรรษ 1960 การวิเคราะห์ความหมายแฝง ถูกนำมาใช้ในช่วงปลายทศวรรษ 1980 โดยการลดจำนวนมิติโดยใช้การแยกค่าเอกฐาน "แบบจำลองภาษาความน่าจะเป็นทางประสาท" ที่เสนอขึ้นโดยโยชัว เบนจิโอและคณะในรายงานชุดหนึ่งในปี 2000 ลดมิติสูงของการแทนคำในบริบทโดย "การเรียนรู้การแทนคำแบบแจกแจง" การฝังคำแบ่งเป็น 2 แบบที่แตกต่างกัน แบบหนึ่งคือ แสดงคำในรูปเวกเตอร์ของคำที่ปรากฏด้วยกัน และอีกแบบหนึ่งคือแสดงเป็นเวกเตอร์ของบริบททางภาษาที่คำนั้นปรากฏขึ้น โรไวส์และซอลได้ตีพิมพ์ในวารสารไซเอินซ์แสดงวิธี การฝังเชิงเส้นเฉพาะที่ (LLE) เพื่อค้นหารูปแบบตัวแทนของโครงสร้างข้อมูลมิติสูง งานวิจัยในสาขานี้ค่อย ๆ พัฒนาและเติบโตอย่ารวดเร็วหลังปี 2010 โดยสาเหตุหนึ่งมาจากความเร็วในการฝึกแบบจำลอง
ทีมวิจัยจำนวนมากได้ทำงานวิจัยและพัฒนาเทคนิคการฝังคำ ในปี 2013 ทีมงานของกูเกิลนำโดยโตมาช มิโคโลฟ (Tomáš Mikolov) ได้พัฒนาชุดเครื่องมือการฝังคำที่เรียกว่า word2vec การใช้ word2vec ทำให้สามารถฝึกแบบจำลองปริภูมิเวกเตอร์ได้อย่างรวดเร็ว เทคนิคการฝังคำใหม่ ๆ ส่วนใหญ่จะขึ้นอยู่กับสถาปัตยกรรมโครงข่ายประสาทเทียม มากกว่าแบบจำลอง n-gram แบบดั้งเดิมหรือ การเรียนรู้แบบไม่มีผู้สอน
การจัดการกับคำพ้องความหมาย.
ข้อจำกัดที่สำคัญของการฝังคำ (โดยทั่วไปคือ แบบจำลองปริภูมิเวกเตอร์ของคำ) คือคำที่มีความหมายหลากหลายจะถูกรวมเข้าเป็นคำเดียว (เวกเตอร์เดียวในปริภูมิความหมาย) กล่าวอีกนัยหนึ่ง คำพ้องความหมายไม่ได้รับการจัดการอย่างเหมาะสม ตัวอย่างเช่น ในประโยค "The club I tried yesterday was great!" นั้นคำว่า "club" อาจมีความหมายหลากหลาย เช่น club sandwich (คลับแซนด์วิช), clubhouse (สโมสร), golf club (ไม้กอล์ฟ) เป็นต้น จึงอาจไม่รู้ชัดเจนว่ากำลังหมายถึงอะไร เนื่องจากความจำเป็นในการเชื่อมโยงความหมายหลายคำของแต่ละคำกับเวกเตอร์ที่แตกต่างกัน บางครั้งจึงอาจแยกเป็นการฝังแบบหลายนัย
แนวทางส่วนใหญ่ในการสร้างการฝังแบบหลายนัยสามารถจำแนกได้เป็นการเรียนรู้แบบไม่มีผู้สอนและการเรียนรู้บนฐานความรู้ โดยเน้นที่การแสดงความหมายคำ Multi-Sense Skip-Gram (MSSG) ซึ่งใช้ word2vec skip-gram ดำเนินการระบุนัยของคำและฝังไปพร้อม ๆ กัน ปรับปรุงเวลาการฝึกอบรมในขณะที่สมมติจำนวนนัยที่แน่นอนสำหรับแต่ละคำ ใน Non-Parametric Multi-Sense Skip-Gram (NP-MSSG) ตัวเลขนี้จะแตกต่างกันไปในแต่ละคำ Most Suitable Sense Annotation (MSSA) รวมความรู้เดิม เช่น ฐานข้อมูลคำศัพท์ (WordNet, ConceptNet, BabelNet ฯลฯ) การฝังคำ และความกำกวมของความหมายของคำ โดยใช้แนวทางแบบไม่มีผู้สอน และอิงความรู้เพื่อติดป้ายกำกับความหมายของคำโดยพิจารณาจากบริบทของหน้าต่างบริบทแบบเลื่อน เมื่อได้ความหมายของคำชัดเจนแล้ว ก็สามารถนำมาใช้กับเทคนิคการฝังคำมาตรฐานได้ ทำให้สร้างการฝังแบบหลายนัยได้ สถาปัตยกรรมของ MSSA ช่วยให้กระบวนการแก้ความกำกวมและคำอธิบายประกอบสามารถทำซ้ำและปรับปรุงตนเองได้
เป็นที่รู้กันว่าการฝังแบบหลายนัยช่วยปรับปรุงประสิทธิภาพในงานการประมวลภาษาธรรมชาติหลายอย่าง รวมถึงการแท็กส่วนของคำพูด การระบุความสัมพันธ์ทางความหมาย และการเชื่อมโยงทางความหมาย อย่างไรก็ตาม งานที่เกี่ยวข้องกับ การรู้จำเอนทิตีที่ระบุชื่อ และการวิเคราะห์ความรู้สึกอาจไม่ค่อยได้รับประโยชน์จากการแสดงด้วยเวกเตอร์หลายตัว
ซอฟต์แวร์.
ซอฟต์แวร์สำหรับการฝึกอบรมและการใช้การฝังคำ ได้แก่ word2vec ของ โตมาช มิโคโลฟ, GloVe ของมหาวิทยาลัยสแตนฟอร์ด, ELMo ของ AllenNLP, fastText, Gensim, Indra, Deeplearning4j เป็นต้น การวิเคราะห์องค์ประกอบหลัก (PCA) และ การฝังเพื่อนบ้านแบบเฟ้นสุ่มแจกแจง t (t-SNE) ก็ถูกนำมาใช้เพื่อลดมิติของปริภูมิเวกเตอร์ของคำ และแสดงภาพการฝังคำและกลุ่ม
ตัวอย่างการใช้งาน.
fastText ถูกนำมาใช้ในการคำนวณการฝังคำสำหรับคลังข้อความใน Sketch Engine ออนไลน์