การดึงข้อมูล

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

เมื่อถึงเวลาแสดงผล คุณจะเริ่มดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้เมื่อได้รับคำค้นหา

  • สําหรับรูปแบบการแยกองค์ประกอบของเมทริกซ์ ระบบจะทราบการฝังคําค้นหา (หรือผู้ใช้) แบบคงที่ และสามารถค้นหาการฝังดังกล่าวได้จากเมทริกซ์การฝังผู้ใช้
  • สําหรับโมเดล DNN ระบบจะคํานวณการฝังคําค้นหา \(\psi(x)\) เมื่อถึงเวลาแสดงผลโดยเรียกใช้เครือข่ายในเวกเตอร์ฟีเจอร์ \(x\)

เมื่อคุณมีข้อมูลการฝังข้อความค้นหา \(q\)แล้ว ให้ค้นหาข้อมูลการฝังรายการ \(V_j\) ที่อยู่ใกล้กับ \(q\) ในพื้นที่การฝัง ปัญหานี้เป็นปัญหาเพื่อนบ้านที่ใกล้ที่สุด เช่น คุณสามารถแสดงรายการยอดนิยม k รายการตามคะแนนความคล้ายคลึง \(s(q, V_j)\)

รูปภาพสเปกตรัม 2 มิติที่มีภาพยนตร์และผู้ใช้หลายรายจัดเรียงตั้งแต่ภาพยนตร์สำหรับเด็กไปจนถึงภาพยนตร์สำหรับผู้ใหญ่ ภาพยนตร์อาร์ตเฮาส์ไปจนถึงภาพยนตร์บล็อกบัสเตอร์ ผู้ใช้ 1 คนได้รับการไฮไลต์ รวมถึงภาพยนตร์ 2 เรื่องที่อยู่ใกล้เคียง

คุณใช้แนวทางที่คล้ายกันในคําแนะนํารายการที่เกี่ยวข้องได้ ตัวอย่างเช่น เมื่อผู้ใช้กำลังดูวิดีโอ YouTube ระบบจะค้นหาการฝังของรายการนั้นก่อน จากนั้นจึงค้นหาการฝังของรายการอื่นๆ\(V_j\) ที่อยู่ใกล้เคียงกันในพื้นที่การฝัง

การดึงข้อมูลขนาดใหญ่

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

  • หากมีการฝังข้อความค้นหาแบบคงที่ ระบบจะประเมินผลอย่างละเอียดได้แบบออฟไลน์ โดยคำนวณล่วงหน้าและจัดเก็บรายการคำตอบที่เป็นไปได้สูงสุดสำหรับคำค้นหาแต่ละรายการ ซึ่งเป็นแนวทางปฏิบัติทั่วไปสำหรับการแนะนำรายการที่เกี่ยวข้อง
  • ใช้เพื่อนบ้านที่อยู่ใกล้ที่สุด Google มีเครื่องมือโอเพนซอร์สใน GitHub ที่เรียกว่า ScaNN (Scalable Nearest Neighbors) เครื่องมือนี้ทําการค้นหาความคล้ายคลึงของเวกเตอร์ได้อย่างมีประสิทธิภาพในวงกว้าง