En la sección anterior, se mostró cómo usar la factorización de matrices para aprender incorporaciones. Estas son algunas limitaciones de la factorización de matrices:
- La dificultad de usar funciones complementarias (es decir, cualquier función más allá de el ID de consulta o de elemento). Como resultado, el modelo solo se puede consultar un usuario o elemento presente en el conjunto de entrenamiento.
- Relevancia de las recomendaciones. Como viste en el primer Colab los artículos populares tienden a recomendarse para todo el mundo, especialmente cuando se utilizan punto product como medida de similitud. Es mejor capturar imágenes intereses de los usuarios.
Los modelos de red neuronal profunda (DNN) pueden abordar estas limitaciones de la matriz la factorización. Las DNN pueden incorporar con facilidad atributos de consulta y de elementos (debido a la flexibilidad de la capa de entrada de la red), lo que puede ayudar captar los intereses específicos de un usuario y mejorar la relevancia de recomendaciones.
DNN de softmax para la recomendación
Un modelo posible de DNN es softmax, que trata el problema como un problema de predicción multiclase en el que sucede lo siguiente:
- La entrada es la consulta del usuario.
- La salida es un vector de probabilidad con un tamaño igual al número de elementos del corpus, que representan la probabilidad de interactuar con cada elemento; por ejemplo, la probabilidad de hacer clic o ver un Video de YouTube.
Entrada
La entrada para una DNN puede incluir lo siguiente:
- atributos densos (por ejemplo, tiempo de reproducción y tiempo desde la última reproducción)
- atributos dispersos (por ejemplo, historial de reproducciones y país)
A diferencia del enfoque de factorización de matrices, puedes agregar atributos secundarios, como edad o país. Denotaremos el vector de entrada por x.
Arquitectura del modelo
La arquitectura del modelo determina la complejidad y la expresividad del modelo. Agrega capas ocultas y funciones de activación no lineales (por ejemplo, ReLU) el modelo puede capturar relaciones más complejas entre los datos. Sin embargo, aumentar la cantidad de parámetros también dificulta que el modelo y es más costosa de entregar. Indicaremos el resultado de la última capa mediante \(\psi (x) \in \mathbb R^d\).
Resultado de Softmax: distribución de probabilidad prevista
El modelo asigna la salida de la última capa, \(\psi (x)\), a través de una softmax capa 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, proporcionado 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 mapea un vector de puntajes \(y \in \mathbb R^n\) (a veces llamado logits) a una distribución de probabilidad.
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 que tiene el usuario con los que interactuó (por ejemplo, videos de YouTube en los que el usuario hizo clic o miró). Esto se puede representar como una distribución multi-hot normalizada (una vector de probabilidad).
Por ejemplo, puedes usar la pérdida de la entropía cruzada, ya que estás comparando dos distribuciones de probabilidad.
Incorporaciones de softmax
La probabilidad del elemento \(j\) se da por \(\hat p_j = \frac{\exp(\langle \psi(x), V_j\rangle)}{Z}\): donde \(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 logarítmica de un elemento \(j\) es (hasta una constante aditiva) el producto escalar de vectores \(d\)bidimensionales, que se puede interpretar como incorporaciones de consultas y elementos:
- \(\psi(x) \in \mathbb R^d\) es el resultado de la última capa oculta. Esto se denomina incorporación de la consulta \(x\).
- \(V_j \in \mathbb R^d\) es el vector de ponderaciones que conecta la última capa oculta con el resultado j. Lo llamamos “incorporación de elementos” \(j\).
DNN y factorización de matrices
Tanto en el modelo de softmax como en el modelo de factorización de matrices, el sistema aprende un vector de incorporación \(V_j\) por artículo \(j\). Lo que llamamos matriz de incorporación de elementos \(V \in \mathbb R^{n \times d}\) en la matriz La factorización es ahora la matriz de los pesos 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 del atributo de consulta \(x\) a una incorporación \(\psi(x) \in \mathbb R^d\). Por lo tanto, puede considerar este modelo de DNN como una generalización de la matriz factorización, en la que se reemplaza el lado de la consulta por una consulta no lineal la función \(\psi(\cdot)\).
¿Puedes usar las características de los artículos?
¿Puedes aplicar la misma idea al lado del elemento? Es decir, en lugar de aprender una incorporación por elemento, ¿el modelo puede aprender una función no lineal que atributos del elemento en una incorporación? Sí. Para hacerlo, usa una torre de dos torres que consta de dos redes neuronales:
- Una red neuronal asigna atributos de consulta \(x_{\text{query}}\) para consultar la incorporación \(\psi(x_{\text{query}}) \in \mathbb R^d\)
- Una red neuronal asigna atributos a un elemento \(x_{\text{item}}\) en la incorporación de elementos \(\phi(x_{\text{item}}) \in \mathbb R^d\)
La salida del modelo se puede definir como el producto escalar de \(\langle \psi(x_{\text{query}}), \phi(x_{\text{item}}) \rangle\) Ten en cuenta que ya no es un modelo 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}}\).