¿Cómo funciona el algoritmo EM para un modelo mixto que factoriza según un modelo Naive-Bayes?

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].

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.