Modelos de redes neuronales profundas

En la sección anterior, se mostró cómo usar la factorización de matrices para aprender las incorporaciones. Estas son algunas limitaciones de la factorización de matrices:

  • La dificultad de usar características laterales (es decir, cualquier característica que supere el ID de consulta/ID del elemento). Como resultado, el modelo solo se puede consultar con un usuario o un elemento presente en el conjunto de entrenamiento.
  • Relevancia de las recomendaciones Como viste en el primer Colab, los artículos populares suelen recomendarse para todos, en especial cuando se usa un producto escalar como una medida de similitud. Es mejor capturar intereses específicos de los usuarios.

Los modelos de red neuronal profunda (DNN) pueden abordar estas limitaciones de la factorización de matrices. Las DNN pueden incorporar con facilidad características de consulta y de elementos (debido a la flexibilidad de la capa de entrada de la red), lo que puede ayudar a capturar los intereses específicos de un usuario y mejorar la relevancia de las recomendaciones.

DNN de softmax para recomendaciones

Un modelo de DNN posible es softmax, que trata el problema como un problema de predicción de clases múltiples en el cual:

  • La entrada es la consulta del usuario.
  • El resultado es un vector de probabilidad con un tamaño igual a la cantidad de elementos del corpus, que representa la probabilidad de interactuar con cada elemento; por ejemplo, la probabilidad de hacer clic en un video de YouTube o mirarlo.

Entrada

La entrada a una DNN puede incluir lo siguiente:

  • Características densas (por ejemplo, tiempo de reproducción y tiempo desde la última reproducción)
  • Funciones dispersas (por ejemplo, historial de reproducciones y país)

A diferencia del enfoque de factorización de matrices, puedes agregar atributos adicionales, como la edad o el país. Denotaremos el vector de entrada por x.

Imagen que destaca la capa de entrada en una red neuronal profunda de softmax
Figura 1: La capa de entrada, x.

Arquitectura del modelo

La arquitectura del modelo determina la complejidad y la expresividad del modelo. Cuando se agregan capas ocultas y funciones de activación no lineales (por ejemplo, ReLU), el modelo puede capturar relaciones más complejas en los datos. Sin embargo, aumentar la cantidad de parámetros también suele hacer que el modelo sea más difícil de entrenar y que sea más costoso de entregar. Denotaremos el resultado de la última capa oculta mediante \(\psi (x) \in \mathbb R^d\).

Imagen que destaca las capas ocultas en una red neuronal profunda de softmax
Figura 2: El resultado de las capas ocultas, \(\psi (x)\).

Salida de softmax: distribución de probabilidad prevista

El modelo asigna el resultado de la última capa, \(\psi (x)\), a través de una capa de softmax a una distribución de probabilidad \(\hat p = h(\psi(x) V^T)\), en la que:

  • \(h : \mathbb R^n \to \mathbb R^n\) es la función softmax, proporcionada por \(h(y)_i=\frac{e^{y_i}}{\sum_j e^{y_j}}\)
  • \(V \in \mathbb R^{n \times d}\) es la matriz de ponderaciones de la capa de softmax.

La capa de softmax asigna un vector de puntuaciones \(y \in \mathbb R^n\)(a veces llamado logits) a una distribución de probabilidad.

Imagen que muestra una distribución de probabilidad prevista en una red neuronal profunda de softmax
Figura 3: La distribución de probabilidad prevista, \(\hat p = h(\psi(x) V^T)\).

Función de pérdida

Por último, define una función de pérdida que compare lo siguiente:

  • \(\hat p\), el resultado de la capa de softmax (una distribución de probabilidad)
  • \(p\), la verdad fundamental, que representa los elementos con los que el usuario interactuó (por ejemplo, videos de YouTube en los que el usuario hizo clic o miró) Esto se puede representar como una distribución normalizada de varios puntos calientes (un vector de probabilidad).

Por ejemplo, puedes usar la pérdida de entropía cruzada, ya que estás comparando dos distribuciones de probabilidad.

Imagen que muestra la función de pérdida en una red neuronal profunda de softmax
Figura 4: La función de pérdida.

Incorporaciones de softmax

La probabilidad del elemento \(j\) se indica mediante\(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\), en la que \(Z\) es una constante de normalización que no depende de \(j\).

En otras palabras, \(\log(\hat p_j) = \langle \psi(x), V_j\rangle - log(Z)\), entonces la probabilidad de registro de un elemento \(j\) es (hasta una constante aditiva) el producto escalar de vectores de dos dimensiones \(d\), que pueden interpretarse como incorporaciones de consultas y elementos:

  • \(\psi(x) \in \mathbb R^d\) es el resultado de la última capa oculta. La llamamos incorporación de la consulta \(x\).
  • \(V_j \in \mathbb R^d\) es el vector de pesos que conecta la última capa oculta con el resultado j. Lo llamamos incorporación de elemento \(j\).
Imagen que muestra incorporaciones en una red neuronal profunda softmax
Figura 5: Incorporación del elemento \(j\), \(V_j \in \mathbb R^d\)

Factorización de DNN y matriz

Tanto en el modelo de softmax como en el de factorización de matrices, el sistema aprende un vector de incorporación\(V_j\) por elemento \(j\). Lo que llamamos matriz de incorporación de elementos \(V \in \mathbb R^{n \times d}\) en la factorización de matrices ahora es la matriz de ponderaciones de la capa de softmax.

Sin embargo, las incorporaciones de consultas son diferentes. En lugar de aprender una incorporación \(U_i\) por consulta \(i\), el sistema aprende una asignación de la función de consulta \(x\) a una incorporación \(\psi(x) \in \mathbb R^d\). Por lo tanto, puedes considerar este modelo de DNN como una generalización de la factorización de matrices, en la que reemplazas el lado de la consulta por una función no lineal \(\psi(\cdot)\).

¿Puedes usar funciones de elementos?

¿Puedes aplicar la misma idea al elemento? Es decir, en lugar de aprender una incorporación por elemento, ¿el modelo puede aprender una función no lineal que asigne atributos de elementos a una incorporación? Sí. Para ello, usa una red neuronal de dos torres, que consta de dos redes neuronales:

  • Una red neuronal asigna funciones de consulta\(x_{\text{query}}\) a consultas incorporadas\(\psi(x_{\text{query}}) \in \mathbb R^d\)
  • Una red neuronal asigna elementos\(x_{\text{item}}\) a la incorporación de elementos\(\phi(x_{\text{item}}) \in \mathbb R^d\)

El resultado del modelo se puede definir como el producto escalar de\(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\). Ten en cuenta que este modelo ya no es de softmax. El modelo nuevo predice un valor por par \((x_{\text{query}}, x_{\text{item}})\)en lugar de un vector de probabilidad para cada consulta \(x_{\text{query}}\).