En la página anterior, se explicó cómo incorporar una capa de softmax en una red profunda neuronal para un sistema de recomendación. En esta página, se analizan con más detalle las datos de entrenamiento para este sistema.
Datos de entrenamiento
Los datos de entrenamiento de softmax constan de los atributos de consulta \(x\) y un vector de elementos con los que el usuario interactuó (representado como un de probabilidad \(p\)). Estos están marcados en azul en la siguiente imagen. Las variables del modelo son los pesos en las diferentes capas. Estos están marcados como naranja en las siguientes figura. El modelo generalmente se entrena con cualquier variante el descenso de gradientes estocástico.
Muestreo negativo
Dado que la función de pérdida compara dos vectores de probabilidad \(p, \hat p(x) \in \mathbb R^n\) (la verdad fundamental y la salida del modelo, respectivamente), calcular la el gradiente de la pérdida (para una sola consulta \(x\)) puede ser muy costoso si el tamaño del corpus \(n\) es demasiado grande.
Podrías configurar un sistema para que calcule gradientes solo en los elementos positivos (elementos que están activos en el vector de verdad fundamental). Sin embargo, si el sistema solo entrena con pares positivos, el modelo puede verse afectado por el plegado, ya que que se explica a continuación.
El modelo puede aprender a colocar la consulta o las incorporaciones de elementos de un color en relación con el otro (capturar correctamente la similitud dentro de ese color), pero las incorporaciones de diferentes colores pueden terminar en la misma región del espacio de incorporaciones, por casualidad. Este fenómeno, conocido como plegado, puede generar recomendaciones falsas: en el momento de la consulta, es posible que el modelo prediga incorrectamente una puntuación alta para un elemento de un grupo diferente.
Los ejemplos negativos son los elementos etiquetados como "irrelevantes". a una consulta dada. Mostrar ejemplos negativos al modelo durante el entrenamiento le enseña lo siguiente: las incorporaciones de diferentes grupos deben separarse una de la otra.
En lugar de usar todos los elementos para calcular el gradiente (que puede ser demasiado costoso) o usar solo elementos positivos (lo que hace que el modelo sea propenso a plegable), puedes usar el muestreo negativo. Más precisamente, se calcula un gradiente aproximado, usando los siguientes elementos:
- Todos los elementos positivos (los que aparecen en la etiqueta de destino)
- Una muestra de elementos negativos (\(j\) en \({1, …, n}\))
Existen diferentes estrategias para muestrear negativos:
- Puedes realizar muestras de manera uniforme.
- Puedes darles mayor probabilidad a los elementos j con valores puntaje \(\psi(x) . V_j\). De forma intuitiva, estos son ejemplos que más contribuyen al gradiente). estos ejemplos suelen llamados negativos concluyentes.
Factorización de matrices frente a softmax
Los modelos de DNN resuelven muchas limitaciones de la factorización de matrices, pero suelen y es más costoso entrenarlos y realizar consultas. La siguiente tabla resume algunos de los diferencias importantes entre los dos modelos.
Factorización de matrices | DNN de softmax | |
---|---|---|
Funciones de consulta | No es fácil de incluir. | Se pueden incluir. |
Inicio en frío | No controla con facilidad las palabras fuera de vocabulario a consultas o elementos específicos. Se pueden usar algunas heurísticas (por ejemplo, para un consulta nueva, promedio de incorporaciones de consultas similares). | Administra búsquedas nuevas con facilidad. |
Doblado | El plegado se puede reducir fácilmente ajustando el peso no observado en WALS. | Propensos a plegarse. Necesito usar técnicas como el muestreo negativo o la gravedad. |
Escalabilidad del entrenamiento | Fácil de escalar a muy grandes corpus (quizás cientos de millones de elementos o más), pero solo si la de entrada está dispersa. | Más difícil de escalar a muy grande corpus. Algunas técnicas pueden usarse, como la codificación hash, muestreo negativo, etcétera. |
Escalabilidad de entrega | Las incorporaciones U y V son estáticas y un conjunto de candidatos puede procesarse y almacenarse previamente. | Las incorporaciones de elementos V son estáticas
y pueden almacenarse.
La incorporación de consultas suele debe calcularse en el momento de la consulta, lo que hace que el modelo sea más costoso para y publicar anuncios. |
Resumen:
- La factorización de matrices suele ser la mejor opción para corpus grandes. Es más fácil de escalar, más económico de consultar y menos propenso a plegarse.
- Los modelos de DNN pueden capturar mejor las preferencias personalizadas, pero más difíciles de entrenar y más costosas de consultar. Los modelos de DNN son preferibles a la factorización de matrices para la puntuación, ya que los modelos de DNN pueden usar más funciones para captar mejor la relevancia. Además, suele ser aceptable que los modelos de DNN se plieguen, ya que te interesa Clasificar un conjunto prefiltrado de candidatos que se supone que son relevantes