ประเภทของเวกเตอร์เอ็มเบดดิง
- Word Embeddings: ใช้แทนคำในงาน NLP และจับความสัมพันธ์เชิงความหมายระหว่างคำ ใช้ในงานอย่างการแปลภาษา ความคล้ายคลึงของคำ และการวิเคราะห์อารมณ์
- Sentence Embeddings: จับความหมายและบริบทของประโยค ใช้ในงานอย่างการค้นคืนข้อมูล การจัดประเภทข้อความ และการวิเคราะห์อารมณ์
- Document Embeddings: จับเนื้อหาของเอกสาร เช่น รายงานหรือบทความ ใช้ในระบบแนะนำ การค้นคืนข้อมูล ความคล้ายคลึงของเอกสาร และการจัดประเภท
- Graph Embeddings: แทนโหนดและเอดจ์ของกราฟในปริภูมิเวกเตอร์ ใช้ในการจัดประเภทโหนด การตรวจจับชุมชน และการทำนายลิงก์
- Image Embeddings: แทนแง่มุมต่าง ๆ ของภาพ ใช้ในระบบแนะนำตามเนื้อหา การรู้จำภาพและวัตถุ และระบบค้นหารูปภาพ
- Product Embeddings: ใช้แทนผลิตภัณฑ์ดิจิทัลหรือผลิตภัณฑ์ทางกายภาพ ใช้ในระบบแนะนำและจัดประเภทสินค้า รวมถึงการค้นหาสินค้า
- Audio Embeddings: แทนจังหวะ โทนเสียง ระดับเสียงสูงต่ำ และองค์ประกอบอื่น ๆ ของสัญญาณเสียง ใช้ในการตรวจจับอารมณ์ การรู้จำเสียงพูด และการแนะนำเพลง
วิธีที่โครงข่ายประสาทเทียมสร้างเอ็มเบดดิง
- Representation Learning: โครงข่ายประสาทเทียมแมปข้อมูลมิติสูงไปยังปริภูมิมิติต่ำโดยยังคงรักษาคุณลักษณะสำคัญไว้
- กระบวนการฝึก: โครงข่ายประสาทเทียมเรียนรู้ที่จะแปลงข้อมูลให้เป็นเอ็มเบดดิงที่มีความหมาย กระบวนการนี้เกิดขึ้นระหว่างการปรับน้ำหนักและไบแอสของนิวรอน
- ตัวอย่าง: ในโครงข่ายประสาทเทียมสำหรับจำแนกรีวิวภาพยนตร์ว่าเป็นเชิงบวกหรือเชิงลบ จะมีการเรียนรู้ word embeddings โดยคำอย่าง "good" และ "excellent" จะมีเอ็มเบดดิงที่คล้ายกัน
หลักการทำงานของเวกเตอร์เอ็มเบดดิง
- ปริภูมิเวกเตอร์: แทนวัตถุหรือคุณลักษณะเป็นจุดในปริภูมิเวกเตอร์หลายมิติ โดยรายการที่คล้ายกันจะอยู่ใกล้กัน
- การวัดระยะ: ใช้ Euclidean distance, cosine similarity เป็นต้น เพื่อหาความสัมพันธ์ระหว่างเวกเตอร์ในเชิงปริมาณ
- ตัวอย่าง: เวกเตอร์ของ "cat" และ "dog" จะอยู่ใกล้กันมากกว่าเวกเตอร์ของ "cat" และ "car"
การพัฒนาโดยใช้เวกเตอร์เอ็มเบดดิง
- แชตบอต: ตอบคำถามของผู้ใช้ได้ดีขึ้น สร้างคำตอบที่เกี่ยวข้องกับบริบท และรักษาความต่อเนื่องของบทสนทนา
- Semantic Search Engine: ให้ผลการค้นหาตามความคล้ายคลึงเชิงความหมายแทนการจับคู่คีย์เวิร์ด
- ระบบจัดประเภทข้อความ: จัดประเภทเอกสารตามโครงสร้างประโยคและคำ
- ระบบแนะนำ: แนะนำคอนเทนต์ตามความคล้ายคลึงของคีย์เวิร์ดและคำอธิบาย
วิธีสร้างเวกเตอร์เอ็มเบดดิงสำหรับข้อมูล
- การเก็บรวบรวมข้อมูล: รวบรวมข้อมูลหลากหลายประเภท เช่น ข้อความ เสียง ภาพ และข้อมูลอนุกรมเวลา
- การเตรียมข้อมูลล่วงหน้า: ประมวลผลข้อมูลให้เหมาะกับการวิเคราะห์ เช่น tokenization การลบนอยส์ การปรับขนาดภาพ และการทำ normalization
- การแบ่งข้อมูล: แบ่งข้อความเป็นประโยคหรือคำ แบ่งภาพเป็นเซกเมนต์ และแบ่งข้อมูลอนุกรมเวลาเป็นช่วง
- การแปลงเป็นเวกเตอร์: แปลงแต่ละส่วนของข้อมูลให้เป็นเวกเตอร์ โดยข้อมูลข้อความอาจใช้โมเดล text embeddings ของ OpenAI ข้อมูลภาพใช้โมเดล CNN และข้อมูลเสียงใช้ spectrogram เป็นต้น
วิธีจัดเก็บเวกเตอร์เอ็มเบดดิง
- ฐานข้อมูลเวกเตอร์: ใช้ฐานข้อมูลที่สามารถจัดเก็บและค้นหาเวกเตอร์ได้อย่างมีประสิทธิภาพ
- PostgreSQL: สามารถจัดเก็บข้อมูลเวกเตอร์ร่วมกับข้อมูลเชิงสัมพันธ์อื่น ๆ ได้ โดยใช้ส่วนขยาย pgvector เพื่อจัดเก็บและคิวรีเวกเตอร์
3 ความคิดเห็น
โมเดลภาษาได้เพิ่มขนาดเวกเตอร์เพื่อยกระดับความสามารถในการจับบริบทและความหมายมาโดยตลอด แต่ยิ่งขนาดเวกเตอร์ใหญ่ขึ้น ก็ยิ่งมีความเห็นตรงกันว่าเนื่องจากคำสาปแห่งมิติ ระยะทางแบบยูคลิดไม่เหมาะจะใช้เป็นตัวชี้วัดความคล้ายคลึง ดังนั้นความสัมพันธ์ระหว่างเวกเตอร์ (ความคล้ายคลึง) จึงมักใช้ cosine similarity เป็นหลัก
เป็นความเห็นที่ทำให้นึกถึงงานวิจัยที่เพิ่งอ่านมาไม่นานนี้นะครับ/ค่ะ บางครั้งขึ้นอยู่กับโมเดลแล้ว cosine similarity เองก็อาจไม่มีความหมายเช่นกัน "Is Cosine-Similarity of Embeddings Really About Similarity?" (2024)
Embeddings คืออะไร และทำไมจึงสำคัญ
คู่มือเชิงลึกเกี่ยวกับ Embedding ในสาขาแมชชีนเลิร์นนิง
Embeddings: จุดเริ่มต้นที่ดีสำหรับนักพัฒนาแอปที่สนใจ AI