สมมติว่าคุณมีรูปแบบการฝัง เมื่อพิจารณาผู้ใช้รายหนึ่ง คุณจะทำอย่างไรเพื่อคัดเลือกรายการที่จะแนะนำ
เมื่อถึงเวลาแสดงผล คุณจะเริ่มดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้เมื่อได้รับคำค้นหา
- สําหรับรูปแบบการแยกองค์ประกอบของเมทริกซ์ ระบบจะทราบการฝังคําค้นหา (หรือผู้ใช้) แบบคงที่ และสามารถค้นหาการฝังดังกล่าวได้จากเมทริกซ์การฝังผู้ใช้
- สําหรับโมเดล DNN ระบบจะคํานวณการฝังคําค้นหา \(\psi(x)\) เมื่อถึงเวลาแสดงผลโดยเรียกใช้เครือข่ายในเวกเตอร์ฟีเจอร์ \(x\)
เมื่อคุณมีข้อมูลการฝังข้อความค้นหา \(q\)แล้ว ให้ค้นหาข้อมูลการฝังรายการ \(V_j\) ที่อยู่ใกล้กับ \(q\) ในพื้นที่การฝัง ปัญหานี้เป็นปัญหาเพื่อนบ้านที่ใกล้ที่สุด เช่น คุณสามารถแสดงรายการยอดนิยม k รายการตามคะแนนความคล้ายคลึง \(s(q, V_j)\)
คุณใช้แนวทางที่คล้ายกันในคําแนะนํารายการที่เกี่ยวข้องได้ ตัวอย่างเช่น เมื่อผู้ใช้กำลังดูวิดีโอ YouTube ระบบจะค้นหาการฝังของรายการนั้นก่อน จากนั้นจึงค้นหาการฝังของรายการอื่นๆ\(V_j\) ที่อยู่ใกล้เคียงกันในพื้นที่การฝัง
การดึงข้อมูลขนาดใหญ่
ระบบสามารถให้คะแนนผู้สมัครที่เป็นไปได้ทั้งหมดอย่างละเอียดเพื่อคํานวณเพื่อนบ้านที่ใกล้ที่สุดในพื้นที่การฝัง การให้คะแนนอย่างละเอียดอาจใช้ต้นทุนสูงสำหรับคอร์ปัสขนาดใหญ่มาก แต่คุณใช้กลยุทธ์ต่อไปนี้เพื่อเพิ่มประสิทธิภาพได้
- หากมีการฝังข้อความค้นหาแบบคงที่ ระบบจะประเมินผลอย่างละเอียดได้แบบออฟไลน์ โดยคำนวณล่วงหน้าและจัดเก็บรายการคำตอบที่เป็นไปได้สูงสุดสำหรับคำค้นหาแต่ละรายการ ซึ่งเป็นแนวทางปฏิบัติทั่วไปสำหรับการแนะนำรายการที่เกี่ยวข้อง
- ใช้เพื่อนบ้านที่อยู่ใกล้ที่สุด Google มีเครื่องมือโอเพนซอร์สใน GitHub ที่เรียกว่า ScaNN (Scalable Nearest Neighbors) เครื่องมือนี้ทําการค้นหาความคล้ายคลึงของเวกเตอร์ได้อย่างมีประสิทธิภาพในวงกว้าง