Microsoft โอเพ่นซอร์สไลบรารีการค้นหาเวกเตอร์ที่ใช้ใน Bing

ไมโครซอฟท์ การตีพิมพ์ ซอร์สโค้ดไลบรารีการเรียนรู้ของเครื่อง สปแท็ก (Space Partition Tree And Graph) โดยใช้อัลกอริธึมโดยประมาณ ค้นหาเพื่อนบ้านที่ใกล้ที่สุด. ห้องสมุด ที่พัฒนา ในแผนกวิจัยของ Microsoft Research และศูนย์พัฒนาเทคโนโลยีการค้นหา (Microsoft Search Technology Center) ในทางปฏิบัติ เครื่องมือค้นหา Bing ใช้ SPTAG เพื่อระบุผลลัพธ์ที่เกี่ยวข้องมากที่สุดตามบริบทของคำค้นหา รหัสเขียนด้วยภาษา C ++ และ จัดจำหน่ายโดย ภายใต้ใบอนุญาต MIT รองรับ Build สำหรับ Linux และ Windows มีการผูกมัดสำหรับภาษา Python

แม้ว่าแนวคิดในการใช้พื้นที่เก็บข้อมูลเวกเตอร์ในเสิร์ชเอ็นจิ้นจะล่องลอยมาเป็นเวลานาน แต่ในทางปฏิบัติการใช้งานของพวกเขาถูกขัดขวางโดยความเข้มข้นของทรัพยากรสูงในการดำเนินงานโดยมีเวกเตอร์และข้อจำกัดในการขยายขนาด การผสมผสานวิธีการเรียนรู้ของเครื่องเชิงลึกเข้ากับอัลกอริธึมการค้นหาเพื่อนบ้านที่ใกล้ที่สุดทำให้สามารถนำประสิทธิภาพและความสามารถในการปรับขนาดของระบบเวกเตอร์มาสู่ระดับที่ยอมรับได้สำหรับเครื่องมือค้นหาขนาดใหญ่ ตัวอย่างเช่น ใน Bing สำหรับดัชนีเวกเตอร์ที่มีมากกว่า 150 พันล้านเวกเตอร์ เวลาในการดึงผลลัพธ์ที่เกี่ยวข้องมากที่สุดคือภายใน 8 ms

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

ไลบรารีบอกเป็นนัยว่าข้อมูลที่ประมวลผลและนำเสนอในคอลเลกชันนั้นถูกจัดรูปแบบในรูปแบบของเวกเตอร์ที่เกี่ยวข้องซึ่งสามารถเปรียบเทียบได้ ยูคลิด (L2) หรือ โคไซน์ ระยะทาง คำค้นหาส่งคืนเวกเตอร์ที่มีระยะห่างระหว่างเวกเตอร์กับเวกเตอร์ดั้งเดิมน้อยที่สุด SPTAG จัดให้มีสองวิธีในการจัดระเบียบพื้นที่เวกเตอร์: SPTAG-KDT (ต้นไม้มิติ K (kd-ต้นไม้) และ กราฟพื้นที่ใกล้เคียงสัมพัทธ์) และ SPTAG-BKT (ต้นไม้เคมีน (ต้นไม้เคมีน และกราฟพื้นที่ใกล้เคียงแบบสัมพันธ์) วิธีแรกใช้ทรัพยากรน้อยลงเมื่อทำงานกับดัชนี และวิธีที่สองแสดงให้เห็นถึงความแม่นยำที่สูงกว่าของผลการค้นหาสำหรับคอลเลกชันเวกเตอร์ขนาดใหญ่มาก

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

ที่มา: opennet.ru

เพิ่มความคิดเห็น