Factorización de matrices

La factorización de matrices es un modelo de incorporación simple. Dada la matriz de comentarios A \(\in R^{m \times n}\), en la que \(m\) es la cantidad de usuarios (o consultas) y \(n\) es la cantidad de elementos, el modelo aprende lo siguiente:

  • Una matriz de incorporación del usuario \(U \in \mathbb R^{m \times d}\), en la que la fila i es la incorporación del usuario i.
  • Una matriz de incorporación de elementos \(V \in \mathbb R^{n \times d}\), en la que la fila j es la incorporación del elemento j.

Ilustración de factorización de matrices con el ejemplo de película recurrente

Las incorporaciones se aprenden de modo que el producto \(U V^T\) es una buena aproximación de la matriz de comentarios A. Observa que la\((i, j)\) entrada de \(U . V^T\) es simplemente el producto escalar\(\langle U_i, V_j\rangle\) de las incorporaciones del usuario \(i\)y el elemento \(j\), que quieres que esté cerca de \(A_{i, j}\).

Elige la función objetivo

Una función objetivo intuitiva es la distancia al cuadrado. Para ello, minimiza la suma de los errores cuadráticos en todos los pares de entradas observadas:

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2.\]

En esta función objetiva, solo sumas los pares observados (i, j), es decir, sobre los valores distintos de cero en la matriz de comentarios. Sin embargo, solo sumar los valores de uno no es una buena idea: una matriz de todos ellos tendrá una pérdida mínima y producirá un modelo que no puede hacer recomendaciones eficaces y que generaliza mal.

Ilustración de tres matrices: se observan únicamente la factorización de matrices, la factorización ponderada y la descomposición de valor singular.

Quizás puedas tratar los valores no observados como cero y sumar todas las entradas de la matriz. Esto corresponde a minimizar la distancia al cuadrado de Frobenius entre \(A\) y su aproximación \(U V^T\):

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \|A - U V^T\|_F^2.\]

Puedes resolver este problema cuadrático a través de la descomposición de valor singular (SVD) de la matriz. Sin embargo, SVG tampoco es una gran solución, ya que en aplicaciones reales, la matriz \(A\) puede ser muy dispersa. Por ejemplo, piensa en todos los videos de YouTube en comparación con los videos que miró un usuario en particular. Es probable que la solución \(UV^T\) (que corresponde a la aproximación del modelo de la matriz de entrada) sea cercana a cero, lo que genera un rendimiento de generalización deficiente.

Por el contrario, la factorización de matrices ponderadas divide el objetivo en las siguientes dos sumas:

  • Suma de las entradas observadas
  • Suma de las entradas no observadas (tratadas como ceros)

\[\min_{U \in \mathbb R^{m \times d},\ V \in \mathbb R^{n \times d}} \sum_{(i, j) \in \text{obs}} (A_{ij} - \langle U_{i}, V_{j} \rangle)^2 + w_0 \sum_{(i, j) \not \in \text{obs}} (\langle U_i, V_j\rangle)^2.\]

Aquí, \(w_0\) es un hiperparámetro que pondera los dos términos para que el objetivo no esté dominado por uno de los dos. Ajustar este hiperparámetro es muy importante.

\[\sum_{(i, j) \in \text{obs}} w_{i, j} (A_{i, j} - \langle U_i, V_j \rangle)^2 + w_0 \sum_{i, j \not \in \text{obs}} \langle U_i, V_j \rangle^2\]

donde \(w_{i, j}\) es una función de la frecuencia de la consulta i y del elemento j.

Minimizar la función objetivo

Los algoritmos comunes para minimizar la función objetivo incluyen los siguientes:

  • El descenso de gradientes estocástico (SGD) es un método genérico para minimizar las funciones de pérdida.

  • Los mínimos cuadrados ponderados alternativos (WALS) se especializan en este objetivo en particular.

El objetivo es cuadrático en cada una de las dos matrices U y V. Sin embargo, ten en cuenta que el problema no es convexa en conjunto. WALS inicializa las incorporaciones de forma aleatoria y, luego, alterna entre:

  • Arreglar \(U\) y solucionar los problemas de \(V\).
  • Arreglar \(V\) y solucionar los problemas de \(U\).

Cada etapa se puede resolver de manera exacta (a través de la solución de un sistema lineal) y se puede distribuir. Se garantiza que esta técnica converja porque se garantiza que cada paso disminuya la pérdida.

SGD frente a WALS

SGD y WALS tienen ventajas y desventajas. Revise la siguiente información para ver cómo se comparan:

SGD

Muy flexible: Puede usar otras funciones de pérdida.

Se pueden paralelizar.

Más lento: no converge tan rápido.

Es más difícil manejar las entradas no observadas (es necesario usar muestras o gravedad negativas).

WALS

Solo depende de Loss Square.

Se pueden paralelizar.

Converge más rápido que el SGD.

Es más fácil manejar las entradas no observadas.