Supongamos que tiene el siguiente conjunto de oraciones:
- Comí un licuado de plátano y espinacas para el desayuno
- Me gusta comer brócoli y plátanos.
- Las chinchillas y los gatitos son lindos.
- Mi hermana adoptó un gatito ayer.
- Mira a este lindo hámster comiendo un pedazo de brócoli.
La asignación de Dirichlet latente es una forma de descubrir automáticamente temas que contienen estas oraciones. Por ejemplo, dadas estas oraciones y solicitó 2 temas, LDA podría producir algo como
- Oraciones 1 y 2 : 100% Tema A
- Oraciones 3 y 4 : 100% Tema B
- Oración 5 : 60% Tema A, 40% Tema B
- Tema A : 30% de brócoli, 15% de plátanos, 10% de desayuno, 10% de comida,… (en ese momento, podría interpretar que el tema A trata sobre la comida)
- Tema B : 20% de chinchillas, 20% de gatitos, 20% lindo, 15% hámster, … (en ese momento, podría interpretar que el tema B trata sobre animales lindos)
La pregunta, por supuesto, es: ¿cómo realiza LDA este descubrimiento?
- ¿Qué significa que el algoritmo TD (en el aprendizaje por refuerzo) hace predicción y no control?
- ¿Qué método podría ser razonable para un libro de ejercicios de matemática generadora de tiempo real basado en la web?
- ¿Qué tiene de malo este programa?
- Staad Pro: ¿Cómo puedo resolver este problema?
- ¿Cuáles son los principios fundamentales de los algoritmos en la programación de computadoras?
Modelo LDA
Con más detalle, LDA representa documentos como mezclas de temas que escupen palabras con ciertas probabilidades. Se supone que los documentos se producen de la siguiente manera: al escribir cada documento, usted
- Decida el número de palabras N que tendrá el documento (por ejemplo, según una distribución de Poisson).
- Elija una mezcla de temas para el documento (de acuerdo con una distribución de Dirichlet sobre un conjunto fijo de temas K). Por ejemplo, suponiendo que tengamos los dos temas de alimentos y animales lindos anteriores, puede elegir que el documento consista en 1/3 de alimentos y 2/3 de animales lindos.
- Genere cada palabra en el documento por:
- … .Primero escogiendo un tema (de acuerdo con la distribución multinomial que probaste anteriormente; por ejemplo, puedes elegir el tema de comida con 1/3 de probabilidad y el tema de animales lindos con 2/3 de probabilidad).
- …. Luego, usar el tema para generar la palabra en sí (de acuerdo con la distribución multinomial del tema). Por ejemplo, el tema de los alimentos podría generar la palabra “brócoli” con 30% de probabilidad, “bananas” con 15% de probabilidad, etc.
Asumiendo este modelo generativo para una colección de documentos, LDA luego intenta dar marcha atrás de los documentos para encontrar un conjunto de temas que probablemente hayan generado la colección.
Ejemplo
Hagamos un ejemplo. De acuerdo con el proceso anterior, al generar algún documento particular D, podría
- Decide que D será 1/2 sobre comida y 1/2 sobre animales lindos.
- Elija 5 para ser el número de palabras en D.
- Elija la primera palabra del tema de la comida, que luego le da la palabra “brócoli”.
- Elija la segunda palabra del tema de los animales lindos, que le da “panda”.
- Elige la tercera palabra del tema de los animales lindos, que te dará “adorable”.
- Elija la cuarta palabra del tema de la comida, que le dará “cerezas”.
- Elija la quinta palabra que viene del tema de la comida, dándole “comer”.
Entonces, el documento generado bajo el modelo LDA será “comiendo cerezas adorables de brócoli panda” (tenga en cuenta que LDA es un modelo de bolsa de palabras).
Aprendizaje
Así que ahora suponga que tiene un conjunto de documentos. Ha elegido un número fijo de K temas para descubrir, y desea usar LDA para aprender la representación de cada documento y las palabras asociadas a cada tema. ¿Cómo haces esto? Una forma (conocida como muestreo de Gibbs contraído *) es la siguiente:
- Revise cada documento y asigne aleatoriamente cada palabra del documento a uno de los K temas.
- Tenga en cuenta que esta asignación aleatoria ya le ofrece tanto representaciones de temas de todos los documentos como distribuciones de palabras de todos los temas (aunque no muy buenas).
- Entonces, para mejorarlos, para cada documento d …
- … Ir a través de cada palabra w en d …
- …… ..Y para cada tema t, calcule dos cosas: 1) p (tema t | documento d) = la proporción de palabras en el documento d que están asignadas actualmente al tema t, y 2) p (palabra w | tema t ) = la proporción de asignaciones al tema t sobre todos los documentos que provienen de esta palabra w. Reasigne un nuevo tema, donde elija el tema t con probabilidad p (tema t | documento d) * p (palabra w | tema t) (de acuerdo con nuestro modelo generativo, esta es esencialmente la probabilidad de que el tema t genere la palabra w, por lo que tiene sentido que remuestreemos el tema de la palabra actual con esta probabilidad). (Además, estoy pasando por alto un par de cosas aquí, como el uso de anteriores / pseudocuentos en estas probabilidades).
- …… ..En otras palabras, en este paso, asumimos que todas las asignaciones de temas, excepto la palabra actual en cuestión, son correctas, y luego actualizamos la asignación de la palabra actual utilizando nuestro modelo de cómo se generan los documentos.
- Después de repetir el paso anterior una gran cantidad de veces, eventualmente alcanzará un estado más o menos estable donde sus tareas son bastante buenas. Por lo tanto, use estas asignaciones para estimar las mezclas de temas de cada documento (contando la proporción de palabras asignadas a cada tema dentro de ese documento) y las palabras asociadas a cada tema (contando la proporción de palabras asignadas a cada tema en general).
Explicación del laico
En caso de que la discusión anterior fuera un poco sorprendente, aquí hay otra forma de ver LDA en un dominio diferente.
Supongamos que te acabas de mudar a una nueva ciudad. Eres un inconformista y un fanático del anime, por lo que quieres saber dónde los otros hipsters y geeks del anime tienden a pasar el rato. Por supuesto, como hipster, sabes que no puedes preguntar , ¿qué haces?
Aquí está el escenario: usted examina un montón de diferentes establecimientos ( documentos ) en toda la ciudad, tomando nota de las personas ( palabras ) que cuelgan en cada una de ellas (por ejemplo, Alice pasa el rato en el centro comercial y en el parque, Bob pasa el rato en el cine y el parque, etc.). De manera crucial, no conoce los grupos de interés típicos ( temas ) de cada establecimiento, ni conoce los diferentes intereses de cada persona.
Por lo tanto, elige un número K de categorías para aprender (es decir, desea aprender los K tipos más importantes de categorías en las que se ubican las personas) y comienza a adivinar por qué ve a las personas donde lo hace. Por ejemplo, inicialmente adivinas que Alice está en el centro comercial porque a las personas con intereses en X les gusta pasar el rato allí; cuando la ves en el parque, supones que es porque a sus amigos con intereses en Y les gusta pasar el rato allí; cuando ves a Bob en el cine, adivinas al azar que es porque a la gente Z de esta ciudad realmente le gusta ver películas; y así.
Por supuesto, es muy probable que tus conjeturas aleatorias sean incorrectas (¡después de todo, son conjeturas aleatorias!), Por lo que debes mejorarlas. Una forma de hacerlo es:
- Elija un lugar y una persona (por ejemplo, Alice en el centro comercial).
- ¿Por qué es probable que Alice esté en el centro comercial? Probablemente porque otras personas en el centro comercial con los mismos intereses le enviaron un mensaje diciéndole que viniera.
- En otras palabras, mientras más personas con intereses en X haya en el centro comercial y más fuerte se asocie a Alice con el interés X (en todos los otros lugares a los que vaya), más probable es que Alice esté en el centro comercial por interés X.
- Entonces, adivine por qué Alice está en el centro comercial, eligiendo un interés con cierta probabilidad de acuerdo con la probabilidad que piense que es.
Revisa cada lugar y persona una y otra vez. Tus conjeturas siguen mejorando (después de todo, si notas que muchos geeks pasan el rato en la librería, y sospechas que Alice es bastante geek, entonces es una buena apuesta que Alice esté en la librería porque sus amigos geek le dijeron ella para ir allí; y ahora que tiene una mejor idea de por qué Alice probablemente está en la librería, puede usar este conocimiento para mejorar sus conjeturas sobre por qué todos los demás están donde están), y finalmente puede detenerse actualización Luego tome una instantánea (o varias instantáneas) de sus conjeturas y úsela para obtener toda la información que desee:
- Para cada categoría, puede contar las personas asignadas a esa categoría para averiguar qué personas tienen este interés particular. Al observar a las personas mismas, también puede interpretar la categoría (por ejemplo, si la categoría X contiene muchas personas altas que usan camisetas y llevan pelotas de baloncesto, puede interpretar a X como el grupo de “jugadores de baloncesto”).
- Para cada lugar P y categoría de interés C, puede calcular las proporciones de personas en P debido a C (bajo el conjunto actual de asignaciones), y estas le dan una representación de P. Por ejemplo, puede aprender que las personas que cuelgan en Barnes & Noble consisten en 10% hipsters, 50% fanáticos del anime, 10% deportistas y 30% estudiantes universitarios.
Ejemplo del mundo real
Finalmente, veamos un ejemplo del mundo real. Apliqué LDA a un conjunto de correos electrónicos de Sarah Palin hace un tiempo (ver http://blog.echen.me/2011/06/27/… para una publicación de blog, o http://sarah-palin.heroku.com / para una aplicación que le permite navegar por los correos electrónicos por los temas aprendidos de LDA), así que aquí están algunos de los temas que aprendió el algoritmo:
- Trig / Family / Inspiration : familia, web, correo, dios, hijo, felicitaciones, niños, vida, niño, abajo, trig, bebé, nacimiento, amor, tú, síndrome, muy, especial, bendito, viejo, esposo, años, gracias, mejor …
- Fauna / Corrosión BP : caza, peces, alces, vida silvestre, caza, osos, polar, oso, subsistencia, manejo, área, pensión, caza, lobos, control, departamento, año, uso, lobo, hábitat, cazadores, caribú, programa , denby, pesca, …
- Energía / combustible / petróleo / minería : energía, combustible, costos, petróleo, alaska, precios, costo, nome, ahora, alto, ser, hogar, público, energía, mina, crisis, precio, recurso, necesidad, comunidad, fairbanks, descuento, uso, minería, pueblos, …
- Gas : gas, petróleo, oleoducto, agia, proyecto, natural, norte, productores, empresas, impuestos, empresa, energía, desarrollo, pendiente, producción, recursos, línea, gasoducto, transcanada, dijo, mil millones, plan, administración, millones, industria, …
- Educación / Residuos : escuela, residuos, educación, estudiantes, escuelas, millones, lectura, correo electrónico, mercado, política, estudiante, año, alta, noticias, estados, programa, primero, informe, negocios, administración, boletín, información, informes, 2008, trimestre, …
- Campaña presidencial / Elecciones : correo, web, de, gracias, caja, mccain, sarah, muy, bien, genial, john, esperanza, presidente, sinceramente, wasilla, trabajo, mantener, hacer, agregar, familia, republicano, apoyo , haciendo, po, …
Aquí hay un ejemplo de un correo electrónico que cayó 99% en la categoría Trig / Familia / Inspiración (particularmente las palabras representativas se resaltan en azul):
Y aquí hay un extracto de un correo electrónico que cayó un 10% en la categoría de Campaña Presidencial / Elección (en rojo), 90% en la categoría de Corrosión de Vida Silvestre / BP (en verde), y es precisamente una protesta basada en la vida silvestre contra Palin como una opción para VP: