Primero completaré algunos vacíos en los detalles de la pregunta y estableceré cualquier notación adicional que podamos necesitar en el camino.
Deje que el tipo de fila [matemáticas] i [/ matemáticas] se denote por [matemáticas] z_i [/ matemáticas] y su probabilidad de ser de tipo [matemáticas] k [/ matemáticas] se parametrice por [matemáticas] \ phi [/ matemáticas ], es decir, [matemáticas] p (z_i = k) = \ phi_k [/ matemáticas]. Se deduce que [math] \ sum_ {k = 1} ^ K \ phi_k = 1 [/ math].
No ha mencionado qué tipo de variable aleatoria [math] x_l ^ {(u)} [/ math] es. Para simplificar, supongamos que [math] x_l ^ {(u)} [/ math] tiene niveles [math] p [/ math]. Para una calificación de 5 puntos, [matemática] p = 5 [/ matemática] [1] . Deje que la probabilidad de que una película [matemática] l [/ matemática] obtenga una determinada calificación dado el tipo de usuario se parametrice por [matemática] \ theta [/ matemática], [matemática] p (x_l ^ {(u)} = t | z_i = k; \ theta) = \ theta_ {l = t | k} [/ math]. Además, estas probabilidades en todos los niveles deben sumar 1, [matemática] \ sum_ {t = 1} ^ p \ theta_ {l = t | k} = 1 [/ matemática].
- Cómo validar mi sistema de recomendaciones sin datos previos de interacción del usuario
- ¿Qué significa splines de regresión adaptativa múltiple (MARS) en términos simples?
- ¿Por qué utilizamos el CDF de distribución logística para calcular las probabilidades en la regresión logística?
- Análisis de sentimientos: ¿cuál es una manera simple de identificar palabras de sentimientos en una oración?
- AI aprende de los datos del pasado para predecir, entonces, ¿debería haber preocupaciones en torno al pensamiento grupal? ¿La creatividad tendrá éxito en un mundo más autónomo?
Podemos escribir la probabilidad de nuestros datos en términos de los parámetros [math] \ theta [/ math] y [math] \ phi [/ math],
[matemáticas] \ ell (\ theta, \ phi) = \ sum_ {i = 1} ^ n \ log \ sum_ {z_i = 1} ^ K p (X_i | z_i = k; \ theta) p (z_i = k; \ phi) [/ matemáticas].
Como no es posible derivar estimaciones MLE de forma cerrada de nuestros parámetros directamente, recurrimos al algoritmo EM.
En el paso E , calculamos la probabilidad posterior de [math] z_i [/ math], dados los datos y las estimaciones de parámetros existentes,
[matemáticas] \ begin {align} w_ {k} ^ {(i)} & = P (z_i = k | X ^ {(i)}; \ theta, \ phi) \\ & = \ frac {P (X ^ {(i)} | z_i = k; \ theta) P (z_i = k; \ phi)} {\ sum_ {l = 1} ^ {K} P (X ^ {(i)} | z_i = l; \ theta) P (z_i = l; \ phi)} \\ & = \ frac {\ prod_ {j = 1} ^ {d} P (x_j ^ {(i)} | z_i = k; \ theta) P ( z_i = k; \ phi)} {\ sum_ {l = 1} ^ {K} \ prod_ {j = 1} ^ {d} P (x_j ^ {(i)} | z_i = l; \ theta) P ( z_i = l; \ phi)} \\ & = \ frac {\ prod_ {j = 1} ^ {d} \ prod_ {t = 1} ^ p (\ theta_ {j = t | k}) ^ {\ mathbb {1} (x_j ^ {(i)} = t)} \ phi_k} {\ sum_ {l = 1} ^ {K} \ prod_ {j = 1} ^ {d} \ prod_ {t = 1} ^ p (\ theta_ {j = t | l}) ^ {\ mathbb {1} (x_j ^ {(i)} = t)} \ phi_l} \\ \ end {align} [/ math].
En el tercer paso, hacemos uso de la suposición Naive Bayes [2] , y en el cuarto paso simplemente estamos expresando las probabilidades usando las funciones del indicador y nuestro modelo de calificaciones [1] .
En el paso M , nos gustaría maximizar la siguiente cantidad con respecto a nuestros parámetros:
[matemáticas] \ begin {align} \ sum_ {i = 1} ^ {n} \ sum_ {k = 1} ^ {K} w_k ^ {(i)} \ log \ left (\ frac {P (X ^ { (i)} | z_i = k; \ theta) P (z_i = k; \ phi)} {w_k ^ {(i)}} \ right) \\ = \ sum_ {i = 1} ^ {n} \ sum_ {k = 1} ^ {K} w_k ^ {(i)} \ log \ left (\ frac {\ prod_ {j = 1} ^ {d} \ prod_ {t = 1} ^ p (\ theta_ {j = t | k}) ^ {\ mathbb {1} (x_j ^ {(i)} = t)} \ phi_k} {w_k ^ {(i)}} \ right) \\ \ end {align} [/ math]
Agrupando los términos que dependen de [matemática] \ theta [/ matemática], nos gustaría maximizar, [matemática] \ sum_ {i = 1} ^ {n} \ sum_ {k = 1} ^ {K} \ sum_ {j = 1} ^ d \ sum_ {t = 1} ^ p w_k ^ {(i)} \ mathbb {1} (x_j ^ {(i)} = t) \ log \ theta_ {j = t | k} [/ math], con la restricción de que [math] \ sum_ {t = 1} ^ p \ theta_ {j = t | k} = 1 [/ math].
Esto se puede incorporar en el Lagrangiano de la siguiente manera:
[matemáticas] \ matemáticas {L (\ theta)} = \ sum_ {i = 1} ^ {n} \ sum_ {k = 1} ^ {K} \ sum_ {j = 1} ^ d \ sum_ {t = 1 } ^ p w_k ^ {(i)} \ mathbb {1} (x_j ^ {(i)} = t) \ log \ theta_ {j = t | k} + \ beta (\ sum_ {t = 1} ^ p \ theta_ {j = t | k} – 1) [/ math].
Luego diferenciamos el lagrangiano con respecto a los parámetros [math] \ theta [/ math] y lo ponemos a cero,
[matemáticas] \ frac {\ partial \ mathcal {L (\ theta)}} {\ partial \ theta_ {j = t | k}} = \ frac {\ sum_ {i = 1} ^ {n} w_k ^ {( i)} \ mathbb {1} (x_j ^ {(i)} = t)} {\ theta_ {j = t | k}} + \ beta = 0 [/ math].
Esto nos da [matemática] \ theta_ {j = t | k} = \ frac {\ sum_ {i = 1} ^ {n} w_k ^ {(i)} \ mathbb {1} (x_j ^ {(i)} = t)} {- \ beta} [/ math]. Como [math] \ sum_ {t = 1} ^ p \ theta_ {j = t | k} = 1 [/ math], tenemos
[matemáticas] \ begin {align} – \ beta & = \ sum_ {t = 1} ^ p \ sum_ {i = 1} ^ {m} w_k ^ {(i)} \ mathbb {1} (x_j ^ {( i)} = t) \\ & = \ sum_ {i = 1} ^ {m} w_k ^ {(i)} \ end {align} [/ math].
En el último paso, usamos el hecho de que [math] \ sum_ {t = 1} ^ p \ mathbb {1} (x_j ^ {(i)} = t) = 1 [/ math]. Esto nos da la expresión simplificada para la actualización del paso M de [math] \ theta [/ math],
[matemáticas] \ theta_ {j = t | k} = \ frac {\ sum_ {i = 1} ^ {n} w_k ^ {(i)} \ mathbb {1} (x_j ^ {(i)} = t) } {\ sum_ {i = 1} ^ {n} w_k ^ {(i)}} [/ math].
De manera similar, podemos agrupar los términos que contienen [math] \ phi [/ math], para construir nuestro lagrangiano,
[matemáticas] \ matemáticas {L (\ phi)} = \ sum_ {i = 1} ^ {n} \ sum_ {k = 1} ^ {K} w_k ^ {(i)} \ log (\ phi_k) + \ beta (\ sum_ {k = 1} ^ K \ phi_k – 1) [/ math].
Tomamos la derivada y la ponemos a cero,
[math] \ frac {\ partial \ mathcal {L (\ phi)}} {\ partial \ phi_j} = \ sum_ {i = 1} ^ {n} \ frac {w_j ^ {(i)}} {\ phi_j } + \ beta = 0 [/ matemáticas].
Y finalmente, esto produce la actualización del paso M para los parámetros [math] \ phi [/ math]
[matemáticas] \ begin {align} \ phi_j & = \ frac {w_j ^ {(i)}} {- \ beta} \\ & = \ frac {\ sum_ {i = 1} ^ n w_j ^ {(i) }} {\ sum_ {i = 1} ^ n \ sum_ {k = 1} ^ {K} w_k ^ {(i)}} \\ & = \ frac {\ sum_ {i = 1} ^ n w_j ^ { (i)}} {n} \\ \ end {align} [/ math]
.
[1] Tenga en cuenta que estamos asumiendo que las probabilidades de obtener diferentes calificaciones son independientes, lo cual no es cierto en general. La probabilidad de obtener una calificación de 4 puede estar altamente correlacionada con la probabilidad de obtener una calificación de 5. Sin embargo, sigamos con este modelo simple para los propósitos de esta pregunta.
[2] La suposición de Naive Bayes establece que la probabilidad de obtener una determinada calificación en una película es independiente de la calificación recibida en otra película. Si bien tal suposición rara vez se satisface en muchos problemas donde la empleamos, esto ciertamente está lejos de ser cierto en el caso de las recomendaciones. Si las películas pertenecen al mismo género, sus calificaciones estarán correlacionadas. Si bien modelamos a los usuarios como tipos, no proyectamos películas en un espacio de género más pequeño. Es probable que un enfoque de factorización matricial sea más útil. Tanto [1] como [2] implican que necesitaríamos muchos datos para obtener predicciones útiles de este modelo.