Giả sử bạn có một mô hình nhúng. Với người dùng, bạn sẽ quyết định mặt hàng nào nên đề xuất?
Tại thời điểm phân phát, với một truy vấn, bạn bắt đầu bằng cách làm theo một trong những cách sau:
- Đối với mô hình phân tích ma trận, việc nhúng truy vấn (hoặc người dùng) được xác định theo phương thức tĩnh và hệ thống có thể chỉ cần tra cứu từ ma trận nhúng của người dùng.
- Đối với mô hình DNN, hệ thống sẽ tính toán truy vấn nhúng \(\psi(x)\)tại thời điểm phân phát bằng cách chạy mạng trên vectơ đặc điểm \(x\).
Sau khi bạn có cụm từ tìm kiếm được nhúng \(q\), hãy tìm các mục nhúng \(V_j\) gần với \(q\) trong không gian nhúng. Đây là vấn đề hàng xóm gần nhất. Ví dụ: bạn có thể trả về k mục hàng đầu theo điểm tương tự \(s(q, V_j)\).
Bạn có thể sử dụng phương pháp tương tự trong các đề xuất về mặt hàng có liên quan. Ví dụ: Khi người dùng đang xem một video trên YouTube, trước tiên, hệ thống có thể tra cứu phần nhúng của mục đó, sau đó tìm các mục nhúng của các mục khác\(V_j\) gần với không gian nhúng.
Truy xuất trên quy mô lớn
Để tính toán các đối tượng gần nhất trong không gian nhúng, hệ thống có thể tính điểm đầy đủ cho mọi đề xuất tiềm năng. Việc tính điểm toàn diện có thể tốn kém đối với các tập hợp văn bản rất lớn, nhưng bạn có thể sử dụng một trong các chiến lược sau để tính điểm hiệu quả hơn:
- Nếu biết được nội dung nhúng truy vấn một cách tĩnh, hệ thống có thể thực hiện tính điểm đầy đủ ở chế độ ngoại tuyến, tính toán trước và lưu trữ danh sách các đề xuất hàng đầu cho mỗi truy vấn. Đây là phương pháp phổ biến để đề xuất mục có liên quan.
- Sử dụng các đối tượng gần nhất gần đúng. Google cung cấp một công cụ nguồn mở trên GitHub có tên là ScaNN (Neighbors Nearest có thể mở rộng). Công cụ này thực hiện tìm kiếm tương đồng vectơ hiệu quả trên quy mô lớn.