Supongamos que tienes un modelo de incorporación. Dado un usuario, ¿cómo decidirías qué elementos recomendar?
A la hora de la publicación, de acuerdo con una consulta, debes comenzar con una de las siguientes acciones:
- En el caso de un modelo de factorización de matrices, la incorporación de la consulta (o del usuario) se conoce de forma estática, y el sistema puede buscarla en la matriz de incorporación del usuario.
- En el caso de un modelo de DNN, el sistema calcula la incorporación de la consulta \(\psi(x)\)en el momento de la publicación ejecutando la red en el vector de características \(x\).
Una vez que tengas la incorporación de la consulta \(q\), busca incorporaciones de elementos\(V_j\) que estén cerca de \(q\) en el espacio de incorporaciones. Este es un problema de vecino más cercano. Por ejemplo, puedes mostrar los elementos k principales según la puntuación de similitud \(s(q, V_j)\).
Puedes usar un enfoque similar en las recomendaciones de artículos relacionados. Por ejemplo, cuando el usuario mira un video de YouTube, el sistema primero puede buscar la incorporación de ese elemento y, luego, buscar incorporaciones de otros elementos\(V_j\) que estén cerca en el espacio de incorporación.
Recuperación a gran escala
Para calcular los vecinos más cercanos en el espacio de incorporación, el sistema puede asignar una puntuación exhaustiva a cada candidato potencial. La puntuación exhaustiva puede ser costosa para corpus muy grandes, pero puedes usar cualquiera de las siguientes estrategias para que sea más eficiente:
- Si la incorporación de la consulta se conoce de forma estática, el sistema puede realizar una puntuación exhaustiva sin conexión, precalcular y almacenar una lista de los candidatos principales para cada consulta. Esta es una práctica común para la recomendación de elementos relacionados.
- Usa vecinos más cercanos aproximados. Google proporciona una herramienta de código abierto en GitHub llamada ScaNN (Vecino más cercano escalable). Esta herramienta realiza una búsqueda de similitud de vectores eficiente a gran escala.