Aprendizaje Automático sobre 
Grandes Volúmenes de Datos
Clase 8
Pablo Ariel Duboue, PhD
Universidad Nacional de Córdoba, 
Facultad de Matemática, Astronomía y Física
None.1 Octava Clase: Recomendación
Material de lectura
- 
Clase pasada:
- 
Capítulo 9 del Owen et al. (2012)
 
- 
Sección 6.12 del Mitchel (1997)
 
 
- 
Ésta clase:
- 
Capítulo 2 y 4 del Owen et al. (2012)
 
 
Preguntas
- 
EM y k-Means
- 
EM es mucho más general que k-Means
 
- 
Estimar variables ocultas relacionadas con variables observadas
 
- 
Converge a maximos locales
 
 
- 
Thoughtland y aprendizaje automático
- 
Los textos generados por Thoughtland son basados en características matemáticas (densidad, tamaño, en algún momento incorporaremos otras características como convexidad)
 
- 
La generación de textos no utiliza aprendizaje automático
 
 
Recordatorio
- 
El sitio Web de la materia es http://aprendizajengrande.net
- 
Allí está el material del curso (filminas, audio)
 
 
- 
Leer la cuenta de Twitter https://twitter.com/aprendengrande es obligatorio antes de venir a clase
- 
Allí encontrarán anuncios como cambios de aula, etc
 
- 
No necesitan tener cuenta de Twitter para ver los anuncios, simplemente visiten la página
 
 
- 
Suscribirse a la lista de mail en aprendizajengrande@librelist.com es optativo
- 
Si están suscriptos a la lista no necesitan ver Twitter
 
 
- 
Feedback para alumnos de posgrado es obligatorio y firmado, incluyan si son alumnos de grado, posgrado u oyentes
- 
El "resúmen" de la clase puede ser tan sencillo como un listado del título de los temas tratados
 
 
Revisión EM
- 
Una hipótesis h define una función sobre los datos. Esta función aproxima la verdadera función que genera los datos f.
 
- 
La hipótesis de Maximum Likelihood es
 
- 
Si los casos de entrenamiento son mutualmente independientes dado la hipótesis:
 
hML = argmaxh ∈ H∏p(di|h)
 
- 
Si asumimos que los puntos de entrenamiento pertenecen a una distribución Normal con media σ² centrados alrededor del valor de f(xi) y que los errores son distribuidos con media uniforme entonces (di = f(xi) + ei)
 
hML = argmaxh ∈ H∏(1)/(√(2πσ2))e − (1)/(2σ²)(di − μ)2
 
Estimador ML
- 
Manipulando algebraicamente y simplificando
 
hML
 = 
argmaxh ∈ H∏(1)/(√(2πσ2))e − (1)/(2σ²)(di − μ)2
 
 
 
 = 
argmaxh ∈ H∏(1)/(√(2πσ2))e − (1)/(2σ²)(di − h(xi))2
 
 
 
 = 
argminh ∈ Hm⎲⎳i = 1(di − h(xi))2
 
Ejemplo de EM
- 
Si observamos datos provenientes de una Gaussiana, podemos obtener su media utilizando la función anterior:
 
μML = argminμm⎲⎳i = 1(xi − μ)2
 
- 
¿Pero qué hacemos si los datos provienen de dos Gaussianas?
- 
Consideramos que tenemos variables ocultas, no observadas
 
- 
Cada punto es de la forma ⟨xi, zi1, zi2⟩, zij es 1 si la instancia i es generada por la Gaussiana j ó 0 si no.
 
- 
Si los zij fueran observados, podríamos usar el estimador arriba para calcular h = ⟨μ1, μ2⟩
 
 
- 
EM
- 
Calcular el valor de E[zij] asumiendo que h = ⟨μ1, μ2⟩ es cierta
 
- 
Calcular una nueva h́ = ⟨μ́1, μ́2⟩ asumiendo que losE[zij] son correctos
 
 
Calculando los E[zij] 
- 
Si asumimos que la hipótesis h = ⟨μ1, μ2⟩ es correcta, entonces
 
E[zij]
 = 
(p(x = xi|μ = μi))/(2⎲⎳n = 1p(x = xi|μ = μn))
 
 
 
 = 
(e − (1)/(2σ²)(xi − μj)2)/(2⎲⎳n = 1e − (1)/(2σ²)(xi − μn)2)
 
Calculando los μi
- 
Si asumimos que el valor de las variables ocultas es correcto, entonces
 
μj = (m⎲⎳i = 1E[zij]xi)/(m⎲⎳i = 1E[zij])
 
Collaborative Filtering
- 
Filtrar información usando comunidades de personas
 
- 
Usuarios, ítems y preferencias
- 
Pablo, http://aprendizajengrande.net, 1.0
 
- 
Pablo, http://duboue.net, 5.0
 
- 
Pablo, http://google.com, 2.0
 
- 
Juan, http://aprendizajengrande.net, 3.0
 
- 
Juan, http://getyatel.org, 5.0
 
- 
Juan, http://google.com, 1.0
 
- 
John, http://google.com, 3.0
 
- 
John, http://cnn.com, 5.0
 
- 
John, http://nba.com, 3.0
 
 
Recomendación basada en Usuarios
- 
para cada ítem i para el cual el usuario u no tiene preferencia:
- 
para cada otro usuario v que tiene preferencia por i:
- 
calcular la similitud s entre u y v 
 
- 
acumular la preferencia de v por i, pesada por s
 
 
 
- 
devolver los ítems con mayor preferencia pesada
 
Vecindad de Usuarios
- 
Para acotar el tiempo de computo del algoritmo anterior, en vez de iterar sobre todos los otros usuarios, definimos una métrica sobre ellos y consideramos sólo los usuarios más cercanos
- 
O bien los k usuarios más cercanos
 
- 
O bien los usuarios cercanos a un cierto nivel máximo de distancia
 
 
Métricas de similitud de Usuarios
- 
Euclideana
 
- 
Tanimoto
- 
Ignora el valor de las preferencias
 
- 
Considera el conjunto de ítems sobre los que los dos usuarios han expresado preferencias
 
- 
Tamaño de la intersección dividido la unión
 
 
- 
Log-likelihood
- 
Similar a Tanimoto
 
- 
Incorpora el concepto de concordancia por chance
 
- 
Similar a la estadística κ
- 
A dos personas les gustan un mismo ítem porque es popular no porque sean parecidas
 
 
 
Métricas de similitud de Usuarios
- 
Coeficiente de correlación Pearson
- 
Un número entre -1 y 1 que mide la tendencia de dos series de números, tomados de a pares, de moverse al unísono
 
- 
Covarianza normalizada por la varianza
 
- 
Sólo se puede computar para ítems donde ambos usuarios han expresado preferencias
 
- 
Similitud por coseno cuando los vectores están centrados
 
 
- 
Valores posicionales y el Coeficiente de correlación de Spearman
- 
En vez de usar los valores de las preferencias, usar la diferencia relativa posicional
 
- 
Reemplazar los valores de preferencias por su posición y aplicar Pearson
 
 
Inferencia de Preferencias
- 
Como en aprendizaje supervisado, es posible completar datos faltantes para mejorar las métricas de similitud
- 
Las estrategias que vimos en ingeniería de features pueden ser usadas
 
 
- 
No ayuda mucho en la práctica
 
- 
Enlentece mucho los algoritmos presentados
 
Recomendación basada en Ítems
- 
para cada ítem i para el cual el usuario u no tiene preferencia:
- 
para cada ítem j que u tiene una preferencia:
- 
calcular la similitud s entre i y j
 
- 
acumular la preferencia de u por j, pesada por s
 
 
 
- 
devolver los ítems con mayor preferencia pesada
 
Interpretación Matricial
| 
 | 
i1
 | 
i2
 | 
i3
 | 
i4
 | 
i5
 | 
| 
i1
 | 
5
 | 
2
 | 
1
 | 
3
 | 
4
 | 
| 
i2
 | 
 | 
3
 | 
1
 | 
2
 | 
3
 | 
| 
i3
 | 
 | 
 | 
4
 | 
2
 | 
2
 | 
| 
i4
 | 
 | 
 | 
 | 
1
 | 
1
 | 
| 
i5
 | 
 | 
 | 
 | 
 | 
7
 | 
 
 
- 
Vector de preferencia (uno por usuario)
 
Algoritmo Pendiente-uno
- 
Cuando dos personas tienen preferencias por dos ítems, es posible que haya una tendencia clara de la diferencia de preferencias entre los dos
 
- 
Off-line: calcular la diferencia promedio entre ítems
 
- 
On-line: igual que basado en ítems pero usar la diferencia promedio en la acumulación
 
None.1.3 Cierra Aprendizaje Automático
Resúmen
- 
Features, proceso de aprendizaje automático
 
- 
Aprendizaje Supervisado
 
- 
Aprendizaje No Supervisado
 
- 
Recomendación
 
Naive Bayes
P(y|f⃗) = (P(f⃗|y)P(y))/(P(f⃗))
 
- 
Naive Bayes asume que las features son probabilisticamente independientes
 
yNB = maxyP(f1, ..., fn|y)P(y) = maxyP(f1|y)...P(fn|y)P(y)
 
- 
Podemos estimar P(fi|y) a partir de conteos
 
NB: de conteos a probabilidades
- 
Conteos de instancias (Ni) vs. conteos de features (Nf)
 
- 
De la definición de probabilidad conjunta:
P(".com"|Arts)P(Arts) = P(".com", Arts) = (Nf(".com", Arts))/(Nf(.))
 
- 
De la definición de probabilidad simple:
P(Arts) = (Ni(Arts))/(Ni(.))
 
- 
Despejando para la probabilidad condicional:
P(".com"|Arts) = (Ni(.))/(Nf(.))(Nf(".com", Arts))/(Ni(Arts))
 
Árboles de Decisión
- 
Dividir los datos según un feature solo y un predicado simple sobre ese feature
 
(CC-BY-SA Stephen Milborrow, from Wikipedia)
ID3
ID3 (Ejemplos, Clase Objetivo, Features) 
Crear un nodo raíz 
Si todos los ejemplos son positivos, devolver la raíz con clase +
Si todos los ejemplos son negativos, devolver la raíz con clase -
Si no quedan features, devolver la raíz con clase igual al valor más común
Caso contrario
A ← la feature que mejor clasifica los ejemplos
El feature en la raíz es A
Para cada valor posible vi del feature A
- 
Agregar rama al árbol bajo la raíz (testeo A=vi)
Sean Ejemplos(vi) el subconjunto de los ejemplos que tienen vi para A
Si Ejemplos(vi) está vacío, para esta rama setear la clase al valor objetivo más común
Sino agregar un subárbol ID3 (Ejemplos(vi), Clase Objetivo, Features– {A})
 
 Devolver la raíz
Information Gain
- 
Podemos definir Information Gain a partir de la entropía (qué tan "ruidosa" es la partición)
 
- 
En caso de una partición binaria:
 
Entropy(S) =  − p + log2(p + ) − p − log2(p − )
 
- 
Múltiples categorías (m):
 
Entropy(S) = m⎲⎳i = 1 − pilog2pi
 
- 
Ganancia de información entonces es:
 
Gain(S, A) = Entropy(S) −  ⎲⎳v ∈ valores(A)(|Sv|)/(|S|)Entropy(Sv)
 
K-Means
- 
Se basa en el concepto de elementos sintéticos: 
- 
cada cluster se lo representa por un centroide, un elemento ficticio
 
- 
en vez de calcular la distancia a todos los elementos del cluster, se la calcula sólo al elemento ficticio
 
 
- 
El algoritmo recibe como parámetro el número K de clusters
 
- 
Al comienzo se toman como centroides K elementos al azar
 
- 
En cada paso, se re-clasifican los elementos según el centroide al que están más cerca
 
- 
Para cada cluster, se re-calcula el centroide como la media de los elementos del cluster
- 
¿Cómo calcular el centroide? Depende de los datos, igual que la distancia
 
 
Recomendación basada en Ítems
- 
para cada ítem i para el cual el usuario u no tiene preferencia:
- 
para cada ítem j que u tiene una preferencia:
- 
calcular la similitud s entre i y j
 
- 
acumular la preferencia de u por j, pesada por s
 
 
 
- 
devolver los ítems con mayor preferencia pesada