Entrenamiento de softmax

En la página anterior, se explica cómo incorporar una capa de softmax en una red neuronal profunda para un sistema de recomendación. En esta página, se analizan en detalle los datos de entrenamiento de este sistema.

Datos de entrenamiento

Los datos de entrenamiento de softmax consisten en las funciones de consulta \(x\) y un vector de elementos con los que el usuario interactuó (representados como una distribución de probabilidad \(p\)). Estos se marcan en azul en la siguiente figura. Las variables del modelo son los pesos en las diferentes capas. En la siguiente figura, están marcados como naranjas. Por lo general, el modelo se entrena con cualquier variante de descenso de gradientes estocástico.

Imagen que destaca el entrenamiento de una red neuronal profunda de softmax

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 el resultado del modelo, respectivamente), calcular 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.

Puedes configurar un sistema para calcular 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 plegado, como se explica a continuación.

Doblado
Imagen de un avión plegado por la mitad que muestra 3 grupos diferentes de cuadrados que representan consultas y círculos que representan elementos. Cada grupo tiene un color diferente, y las consultas solo interactúan con elementos del mismo grupo.En la siguiente figura, supongamos que cada color representa una categoría diferente de consultas y elementos. Cada consulta (representada como un cuadrado) solo interactúa principalmente con los elementos (representados como un círculo) del mismo color. Por ejemplo, considera cada categoría como un idioma diferente en YouTube. La mayoría de los usuarios suelen interactuar con videos de un idioma determinado.

El modelo puede aprender a colocar las incorporaciones de consulta/elemento de un color determinado entre sí (capturando la similitud de forma correcta dentro de ese color), pero, por casualidad, las incorporaciones de diferentes colores pueden terminar en la misma región del espacio de incorporaciones. Este fenómeno, conocido como pliegue, puede generar recomendaciones falsas: en el momento de la búsqueda, el modelo puede predecir incorrectamente una puntuación alta para un elemento de un grupo diferente.

Los ejemplos negativos son elementos con la etiqueta “irrelevante” para una consulta determinada. Mostrar los ejemplos negativos del modelo durante el entrenamiento le enseña que las incorporaciones de diferentes grupos deben alejarse entre sí.

En lugar de usar todos los elementos para calcular la gradiente (lo que puede ser demasiado costoso) o usar solo elementos positivos (lo que hace que el modelo sea propenso a plegar), puedes usar el muestreo negativo. De manera más precisa, puedes calcular un gradiente aproximado mediante los siguientes elementos:

  • Todos los elementos positivos (los que aparecen en la etiqueta objetivo)
  • Una muestra de elementos negativos (\(j\) en \({1, …, n}\))

Existen diferentes estrategias para muestrear palabras clave negativas:

  • Puede realizar muestras de manera uniforme.
  • Puedes darles más probabilidades a los elementos j con una puntuación más alta \(\psi(x) . V_j\). De manera intuitiva, estos son ejemplos que contribuyen más al gradiente; a menudo, se denominan negativos negativos.

Sobre la factorización de matrices frente a softmax

Los modelos de DNN resuelven muchas limitaciones de la factorización de matrices, pero, por lo general, son más costosos de entrenar y consultar. En la siguiente tabla, se resumen algunas de las diferencias importantes entre los dos modelos.

Factorización de matrices DNN de softmax
Funciones de consulta No es fácil de incluir. Se puede incluir.
Inicio en frío No maneja fácilmente las consultas ni los elementos vocabularios. Se pueden usar algunas heurísticas (por ejemplo, para una consulta nueva, incorporaciones promedio de consultas similares). Administra consultas nuevas fácilmente.
Doblado El plegado se puede reducir fácilmente ajustando el peso no observado en WALS. Propenso a plegarse. Necesidad de usar técnicas como el muestreo negativo o la gravedad.
Escalabilidad del entrenamiento Escalable fácilmente a grandes empresas (quizás cientos de millones de elementos o más), pero solo si la matriz de entrada es dispersa. Es más difícil de escalar a grandes empresas. Se pueden usar algunas técnicas, como el hashing, el muestreo negativo, etcétera.
Entrega escalabilidad Las incorporaciones U, V son estáticas y un conjunto de candidatos se puede calcular y almacenar previamente. Las incorporaciones de elementos V son estáticas y se pueden almacenar.

Por lo general, la incorporación de consultas se debe procesar en el momento de la consulta, lo que hace que la entrega del modelo sea más costosa.

En resumen, haz lo siguiente:

  • Por lo general, la factorización de matrices es la mejor opción para las empresas grandes. Es más fácil escalar, más económico de consultar y menos propenso a plegarse.
  • Los modelos de DNN pueden capturar mejor las preferencias personalizadas, pero son más difíciles de entrenar y más costosos de consultar. Se prefieren los modelos de DNN a la factorización de matrices para la puntuación, ya que los modelos de DNN pueden usar más atributos a fin de capturar mejor la relevancia. Además, suele ser aceptable que los modelos de DNN se plieguen, ya que lo que más te importa es clasificar un conjunto de candidatos prefiltrado que se considere relevante.