4 คะแนน โดย GN⁺ 2025-06-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • การค้นหาที่อิงกับ single-vector embedding นั้นรวดเร็วและมีประสิทธิภาพ แต่ช่วงหลัง โมเดลแบบมัลติเวกเตอร์อย่าง ColBERT ให้ความหมายที่ลึกขึ้นและความแม่นยำสูงขึ้นด้วยเวกเตอร์จำนวนมากต่อแต่ละโทเคน
  • วิธีแบบมัลติเวกเตอร์ทำให้ การคำนวณความคล้ายที่ซับซ้อน เช่น Chamfer similarity เพิ่มทั้งภาระประมวลผลและต้นทุนการค้นหาอย่างมาก จนเป็นอุปสรรคต่อการค้นหาขนาดใหญ่แบบเรียลไทม์
  • MUVERA ที่ทีมวิจัย Google เสนอ บีบอัดข้อมูลมัลติเวกเตอร์ให้เป็น เวกเตอร์ความยาวคงที่ (FDE, Fixed Dimensional Encoding) จากนั้นค้นหาแบบความเร็วสูงมากด้วย MIPS (maximum inner product search) ที่อิงเวกเตอร์เดี่ยว แล้วค่อย rerank
  • วิธีนี้ ไม่ขึ้นกับข้อมูลและมีหลักฐานเชิงทฤษฎี (รับประกันค่าคลาดเคลื่อนในการประมาณ Chamfer similarity) โดยลด latency ได้มากกว่า 90% และเพิ่ม recall ได้มากกว่า 10% เมื่อเทียบกับ PLAID
  • FDE ยังรองรับการบีบอัด (ลดหน่วยความจำได้ 32 เท่า) และมีทั้ง implementation แบบโอเพนซอร์สกับงานวิจัยเผยแพร่ออกมาแล้ว จึงเหมาะกับการนำไปใช้จริงในบริการค้นหา การแนะนำ และ NLP

พัฒนาการของโมเดล embedding และการค้นคืนข้อมูล

  • โมเดล embedding ที่อิง deep learning เป็นเครื่องมือสำคัญสำหรับค้นหาข้อมูลที่เกี่ยวข้องอย่างรวดเร็วจากชุดข้อมูลขนาดมหาศาล (เอกสาร รูปภาพ วิดีโอ ฯลฯ) ตามคำค้นของผู้ใช้ (เช่น “ความสูงของยอดเขาเอเวอเรสต์”)
  • ด้วยการแปลงแต่ละ datapoint ให้เป็น single-vector embedding จึงออกแบบให้ข้อมูลที่มีความหมายคล้ายกันมีโครงสร้างเวกเตอร์ที่ใกล้เคียงกันในเชิงตัวเลข
  • การคำนวณ ความคล้ายด้วย inner product ระหว่างเวกเตอร์ ช่วยให้ค้นหาได้อย่างรวดเร็วด้วยอัลกอริทึม maximum inner product search (MIPS)
  • แต่ช่วงหลังโมเดลมัลติเวกเตอร์อย่าง ColBERT ได้รับความสนใจจาก ความแม่นยำในการค้นหาที่สูงกว่า และความสามารถในการจับความสัมพันธ์ที่ซับซ้อน

การนำโมเดลมัลติเวกเตอร์มาใช้และข้อจำกัด

  • โมเดลมัลติเวกเตอร์ แทนแต่ละ datapoint ด้วยชุดของเวกเตอร์ embedding หลายตัว
  • โดยใช้ ฟังก์ชันความคล้ายแบบซับซ้อน อย่างการวัด Chamfer similarity จึงจับข้อมูลและความสัมพันธ์ที่เวกเตอร์เดี่ยวแบบเดิมไม่สามารถเก็บได้อย่างแม่นยำ
  • แนวทางนี้ทำให้ การค้นคืนข้อมูลแม่นยำขึ้น และแนะนำเอกสารที่เกี่ยวข้องได้ดียิ่งขึ้น
  • ข้อเสียคือจาก จำนวน embedding ที่เพิ่มขึ้น และความซับซ้อนของการคำนวณความคล้าย ทำให้ทรัพยากรคอมพิวต์ที่ต้องใช้ในการค้นหาเพิ่มขึ้นมาก
    • จำนวนเวกเตอร์ต่อโทเคนเพิ่มขึ้น → ภาระคำนวณและหน่วยความจำเพิ่มขึ้นอย่างมาก
    • จำเป็นต้องใช้การคำนวณแบบไม่เชิงเส้น (matrix multiplication) → ไม่สามารถค้นหาแบบ sublinear (ความเร็วสูงมาก) ที่อิงเวกเตอร์เดี่ยวได้
    • เมื่อนำไปใช้กับบริการขนาดใหญ่ ต้นทุนและ latency จะพุ่งสูง

MUVERA: ปฏิวัติการค้นหาแบบมัลติเวกเตอร์ด้วย FDE

  • งานวิจัย “MUVERA: Multi-Vector Retrieval via Fixed Dimensional Encodings” เสนออัลกอริทึมใหม่เพื่อแก้ปัญหาด้านประสิทธิภาพนี้
  • MUVERA แปลงข้อมูลมัลติเวกเตอร์เป็นเวกเตอร์ FDE เพียงตัวเดียว ทำให้สามารถใช้ MIPS index/เซิร์ฟเวอร์เดิมเพื่อ ค้นหาผู้สมัครได้อย่างรวดเร็วสูง
    1. สร้าง FDE: แปลงชุดมัลติเวกเตอร์ของ query/เอกสารให้เป็นเวกเตอร์ความยาวคงที่ (FDE) (การแมปที่ไม่ขึ้นกับข้อมูล)
    2. ค้นหาด้วย MIPS: เก็บ FDE ของเอกสารทั้งหมดไว้ใน MIPS index แล้วใช้ query FDE ค้นหาผู้สมัครด้วยความเร็วสูงมาก
    3. rerank พร้อมรับประกันความแม่นยำ: ใช้การคำนวณมัลติเวกเตอร์ดั้งเดิม เช่น Chamfer similarity เฉพาะกับเอกสารผู้สมัคร แล้ว rerank อย่างละเอียดเพื่อให้ได้ผลลัพธ์สุดท้าย
  • FDE สามารถนำไปใช้ได้โดยไม่ขึ้นกับชุดข้อมูล จึงเหมาะกับสภาพแวดล้อมแบบไดนามิกอย่างสตรีมมิงด้วย

พื้นฐานทางทฤษฎี

  • ได้แรงบันดาลใจจากอัลกอริทึมเรขาคณิตขั้นสูง เช่น probabilistic tree embedding ทำให้ FDE สามารถประมาณความคล้ายของมัลติเวกเตอร์ได้อย่างมีประสิทธิภาพ
  • มีการแบ่ง embedding space แบบสุ่ม และเมื่อเวกเตอร์ของ query/เอกสารอยู่ในส่วนเดียวกัน ก็จะคำนวณค่าความคล้ายโดยประมาณ
  • ในงานวิจัยมีทั้งทฤษฎีและข้อมูลการทดลองที่รับประกันว่า อยู่ภายในขอบเขตค่าคลาดเคลื่อนของการประมาณ Chamfer similarity

ผลการทดลองและประสิทธิภาพ

  • มีการตรวจสอบประสิทธิภาพของ MUVERA บนชุดข้อมูล IR ขนาดใหญ่หลายชุด เช่น BEIR benchmark
    • เมื่อเทียบกับ PLAID และวิธีเดิมอื่น ๆ ทำได้ recall สูงขึ้นเฉลี่ย 10%
    • ลด latency ในการค้นหาได้มากกว่า 90%
    • ที่ recall เท่ากัน จำนวนเอกสารผู้สมัครที่ใช้บนฐาน FDE ลดลงจากเดิมได้ 5–20 เท่า
    • ทำงานร่วมกับเทคนิคบีบอัดเพิ่มเติมอย่าง Product Quantization ได้ดี (ลดหน่วยความจำได้ 32 เท่า)
  • ช่วยเพิ่มความเป็นไปได้ในการใช้งานจริงของการค้นหาแบบมัลติเวกเตอร์อย่างมาก เหมาะกับงานค้นหา การแนะนำ และแอปพลิเคชัน NLP ขนาดใหญ่

บทสรุปและการนำไปใช้

  • MUVERA เป็นแนวทางใหม่ที่เร่งการค้นหาแบบมัลติเวกเตอร์ให้เร็วระดับเดียวกับเวกเตอร์เดี่ยว
  • มีการเผยแพร่ทั้ง implementation แบบโอเพนซอร์ส (GitHub link) งานวิจัย และผลการทดลองครบถ้วน
  • เป็นทางเลือกที่ใช้งานได้จริงสำหรับการเพิ่มประสิทธิภาพการค้นหาแบบมัลติเวกเตอร์ขนาดใหญ่ใน เสิร์ชเอนจิน ระบบแนะนำ และการประมวลผลภาษาธรรมชาติ
  • หากมีการวิจัยและปรับแต่งเพิ่มเติมในอนาคต ก็คาดว่าจะนำไปใช้ได้กว้างขึ้นในภาคอุตสาหกรรม

1 ความคิดเห็น

 
GN⁺ 2025-06-30
ความคิดเห็นจาก Hacker News
  • มีการแชร์ประสบการณ์จากการเพิ่ม Muvera เข้าไปใน Weaviate เมื่อไม่นานมานี้ พร้อมลิงก์ไปยังบล็อก และพอดแคสต์ โดยกล่าวถึงปัญหาต้นทุนที่พุ่งสูงมากในแนวทาง multi-vector แบบ ColBERT เมื่อทำ embedding แยกสำหรับแต่ละโทเคน ตัวอย่างเช่น จากเดิมเวกเตอร์ 768 มิติ อาจเพิ่มไปได้ถึง 16,640 มิติขึ้นไป ทำให้เป็นภาระที่ไม่สมเหตุสมผลในหลายสถานการณ์ Muvera แปลงเวกเตอร์หลายตัวให้เป็นเวกเตอร์มิติคงที่เพียงตัวเดียว ซึ่งโดยทั่วไปจะมีจำนวนน้อยกว่า และนำไปใช้กับ ANN index ใดก็ได้ทันที การใช้เวกเตอร์เดี่ยวทำให้สามารถใช้ algorithm เดิมที่มีอยู่และเทคนิค quantization ได้หลายแบบ จึงช่วยประหยัดหน่วยความจำ อีกทั้งต่างจาก PLAID ตรงที่ไม่ต้องพึ่งโครงสร้างดัชนีเฉพาะหรือสมมติฐานเรื่องการทำคลัสเตอร์ จึงมีข้อดีด้าน latency ที่สั้นกว่า

  • มีการพูดถึงเทรนด์ล่าสุดที่เริ่มถอยห่างจากวิธีทำให้แบนราบด้วย mean-pooling เพื่อสร้างเป็น embedding เดียว เนื่องจากหากจัดการ embedding ของแต่ละโทเคนทั้งหมด จำนวนเวกเตอร์จะมากเกินไป จึงจำเป็นต้องมีวิธีลดจำนวนอย่างเหมาะสม วิธีนี้คือการนำ token embedding ไปจัดกลุ่มด้วยการแบ่งแบบกำหนดเอง จากนั้นทำ mean-pooling ในแต่ละกลุ่มแล้วนำมาต่อกันเป็น embedding ความยาวคงที่ เนื่องจากการเปรียบเทียบแบบ multi vector เต็มรูปแบบทำได้ยากในเชิงประสิทธิภาพ จึงมีการจัดกลุ่มเป็นเวกเตอร์จำนวน k ตัวแล้วนำมาต่อกัน เพื่อให้เปรียบเทียบกับเครื่องมือและประสิทธิภาพของแบบเวกเตอร์เดี่ยวได้ สรุปแล้วคือการตรึงจำนวนพาร์ทิชันไว้ จึงให้ผลคล้ายการทำ token embedding clustering แบบ k-means และยังมีการเสนอว่าหากทำคลัสเตอร์โทเคนแบบไดนามิก ก็อาจได้ embedding แบบจำนวนตัวแปรที่ให้ผลดีกว่า

  • มีการแชร์ประสบการณ์ว่าวิธีนี้ไวต่อ hyperparameter มาก และในการทดลองของผู้แสดงความคิดเห็นเองก็ไม่สามารถให้ประสิทธิภาพใกล้เคียง maxsim ได้

  • มีคำถามว่าเข้าใจถูกหรือไม่ว่า Muvera คำนวณ FDE (Fixed Dimensional Embedding) ของ query แล้วค้นหา FDE ที่คล้ายกันจากชุดข้อมูลของโมเดล ถ้าเป็นเช่นนั้น จำเป็นต้องคำนวณ FDE ขนาดเดียวกันทั้งหมดของโมเดลด้วยหรือไม่

    • อย่างไรก็ตาม มีคำอธิบายว่างานนี้ทำเพียงครั้งเดียวตอนนำเข้าข้อมูล และหลังจากนั้นการค้นหาสามารถทำกับ FDE ที่คำนวณไว้ล่วงหน้าแล้วด้วย MIPS (Maximum Inner Product Search)
  • มีคำถามจากคนที่ไม่ค่อยรู้จักสาขานี้ว่า neural embedding query ทำงานเหมือนกับ SQL query ที่คืนค่าชื่อทั้งหมดจากตารางหรือไม่ หรือว่าผลลัพธ์จะมีความกำกวมมากกว่า

  • มีการสรุปว่าโดยแก่นแล้วนี่คือแนวทางที่พยายามบีบอัด embedding หลายตัวให้เป็นตัวเดียว หรือก็คือ “embedding of embeddings” เพื่อช่วยลดมิติและเพิ่มประสิทธิภาพ เนื่องจาก embedding หลายตัวมีข้อมูลที่ซ้ำซ้อนกันมาก หากสามารถบีบอัดให้เหลือหนึ่งเดียวได้ ก็อาจหมายความว่าคุณค่าที่ embedding เพิ่มเติมให้มานั้นส่วนใหญ่มีเพียงเล็กน้อย และหากประสิทธิภาพยังใกล้เคียงกัน ก็ชวนให้สงสัยในมุมมองทฤษฎีสารสนเทศว่าการแทนค่าเช่นนี้ทำได้โดยไม่สูญเสียข้อมูลหรือไม่

    • มีการชี้ว่าความเห็นเรื่องอรรถประโยชน์ส่วนเพิ่มของ embedding ที่ลดลงนั้นเป็นแก่นสำคัญของงานวิจัย และข้อโต้แย้งหลักคือเวกเตอร์ embedding เดี่ยวสามารถมีความ sparse ได้มากพอที่จะบรรจุข้อมูลจากเวกเตอร์เพิ่มเติมร่วมกันอย่างมีประสิทธิภาพและช่วยเพิ่มคุณภาพการค้นหา
  • มีคำถามถึงความแตกต่างจากวิธี feature hash แบบเดิมที่ใช้ลดหลาย embedding ให้เหลือหนึ่งเดียว และถามว่าเทคนิคการลดมิติจากเวกเตอร์เดี่ยวอย่าง UMAP จะช่วยได้หรือไม่

    • มีการชี้ว่า UMAP ไม่ได้ฉายค่าไปยังพื้นที่พิกัดเดียวกัน และเนื่องจากตำแหน่งบนพิกัดเปลี่ยนไป แม้ลักษณะเชิงนามธรรมจะคล้ายกัน แต่ผลลัพธ์บนพิกัดจริงอาจต่างกัน