Misalkan Anda memiliki model embedding. Dengan mempertimbangkan seorang pengguna, bagaimana Anda akan memutuskan item mana yang akan direkomendasikan?
Pada waktu inferensi, berdasarkan kueri, Anda memulai dengan melakukan salah satu hal berikut:
- Untuk model faktorisasi matriks, embedding kueri (atau pengguna) diketahui secara statis, dan sistem cukup mencarinya dari matriks embedding pengguna.
- Untuk model DNN, sistem menghitung penyematan kueri \(\psi(x)\) pada waktu inferensi dengan menjalankan jaringan pada vektor fitur \(x\).
Setelah Anda memiliki penyematan kueri \(q\), telusuri penyematan item \(V_j\) yang dekat dengan \(q\) di ruang penyematan. Ini adalah masalah tetangga terdekat. Misalnya, Anda dapat mengembalikan top k item sesuai dengan skor kemiripan \(s(q, V_j)\).
Anda dapat menggunakan pendekatan serupa dalam rekomendasi item terkait. Misalnya, saat pengguna menonton video YouTube, sistem dapat mencari terlebih dahulu menyematkan item tersebut, lalu mencari embedding item lain \(V_j\) yang dekat di ruang penyematan.
Pengambilan berskala besar
Untuk menghitung tetangga terdekat di ruang embedding, sistem bisa menilai setiap kandidat potensial. Pemberian skor yang melelahkan mungkin mahal untuk korpora yang sangat besar, tetapi Anda dapat menggunakan salah satu strategi berikut untuk membuatnya lebih efisien:
- Jika embedding kueri diketahui secara statis, sistem dapat melakukan penskoran menyeluruh secara offline, pra-komputasi, dan penyimpanan daftar kandidat teratas untuk setiap kueri. Ini adalah praktik yang umum rekomendasi item terkait.
- Menggunakan perkiraan tetangga terdekat.