¿Cuál es una buena explicación de la asignación de Dirichlet latente?

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?

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:

(Entrada del tutorial extraída de: Annalyzing Life | Tutoriales y experimentos de análisis de datos para Layman )

Supongamos que tiene el siguiente conjunto de oraciones:

  • Yo como pescado y verduras .
  • Los peces son mascotas .
  • Mi gatito come pescado .

La asignación de Dirichlet latente (LDA) es una técnica que descubre automáticamente los temas que contienen estos documentos.

Dadas las oraciones anteriores, LDA podría clasificar las palabras en negrita bajo el Tema F , que podríamos etiquetar como ” comida “. Del mismo modo, las palabras subrayadas pueden clasificarse en un Tema P separado, que podríamos etiquetar como ” mascotas “. LDA define cada tema como una bolsa de palabras, y debe etiquetar los temas como lo considere apropiado.

Hay 2 beneficios de los temas que definen LDA a nivel de palabra:

1) Podemos inferir la extensión del contenido de cada oración por un recuento de palabras:
Oración 1 : 100% Tema F
Oración 2 : 100% Tema P
Oración 3 : 33% Tema P y 67% Tema F

2) Podemos derivar las proporciones que cada palabra constituye en temas dados. Por ejemplo, el Tema F puede comprender palabras en las siguientes proporciones: 40% come, 40% pescado, 20% verduras, …

LDA logra los resultados anteriores en 3 pasos.

Para ilustrar estos pasos, imagine que ahora está descubriendo temas en documentos en lugar de oraciones. Imagine que tiene 2 documentos con las siguientes palabras:

Paso 1

Le dice al algoritmo cuántos temas cree que hay. Puede usar una estimación informada (p. Ej., Resultados de un análisis anterior) o simplemente prueba y error. Al probar diferentes estimaciones, puede elegir el que genere temas para su nivel deseado de interpretabilidad, o el que produzca la mayor certeza estadística (es decir, probabilidad de registro). En nuestro ejemplo anterior, el número de temas puede inferirse simplemente mirando los documentos.

Paso 2

El algoritmo asignará cada palabra a un tema temporal . Las asignaciones de temas son temporales, ya que se actualizarán en el Paso 3. Los temas temporales se asignan a cada palabra de manera semi aleatoria (para ser exactos, de acuerdo con una distribución de Dirichlet). Esto también significa que si una palabra aparece dos veces, cada palabra puede asignarse a diferentes temas. Tenga en cuenta que al analizar documentos reales, las palabras de función (por ejemplo, “the”, “and”, “my”) se eliminan y no se asignan a ningún tema.

Paso 3 (iterativo)

El algoritmo verificará y actualizará las asignaciones de temas , recorriendo cada palabra en cada documento. Para cada palabra, su asignación de tema se actualiza en función de dos criterios:

  • ¿Cuán frecuente es esa palabra en todos los temas?
  • ¿Qué tan frecuentes son los temas en el documento?

Para comprender cómo funcionan estos dos criterios, imagine que ahora estamos verificando la asignación del tema para la palabra “pez” en el Doc Y:

  • ¿Cuán frecuente es esa palabra en todos los temas? Como las palabras “pescar” en ambos documentos representan casi la mitad de las palabras restantes del Tema F pero el 0% de las palabras restantes del Tema P, una palabra “pescar” elegida al azar probablemente se referiría al Tema F.

  • ¿Qué tan frecuentes son los temas en el documento? Dado que las palabras en el Doc Y se asignan al Tema F y al Tema P en una proporción de 50-50, la palabra “pez” restante parece ser igualmente probable sobre cualquier tema.

Al sopesar las conclusiones de los dos criterios, asignaríamos la palabra “pez” del Doc Y al Tema F. El Doc Y podría ser un documento sobre qué alimentar a los gatitos.

El proceso de verificar la asignación de temas se repite para cada palabra en cada documento, recorriendo la colección completa de documentos varias veces. Esta actualización iterativa es la característica clave de LDA que genera una solución final con temas coherentes.

(Créditos a Edwin Chen por el enfoque de definición de problema de oración).


Para una aplicación de ejemplo de modelado de temas en artículos de noticias, vea Biografía automatizada de una nación.

Para más tutoriales, visite mi sitio: Annalyzing Life | Tutoriales y experimentos de análisis de datos para Layman

More Interesting

¿Cuál es el programa C para encontrar la subsecuencia repetida más larga en un texto dado?

Cada vez que intento resolver un problema en CodeChef o SPOJ, aparece el error de límite de tiempo excedido. ¿Qué tengo que hacer? ¿Me faltan algoritmos?

¿Qué es una matriz ordenada y en qué se diferencia de una que no está ordenada?

¿Cómo podemos verificar de forma recursiva si una lista vinculada individualmente es un palíndromo?

¿Cuál es el algoritmo de fuerza bruta O (n!) Para calcular las rutas más largas?

¿Cuál es el propósito del binario?

¿De qué sirve el hashing en C?

¿Qué estrategias o algoritmos se utilizan para agrupar rutas de pasajeros en función de la ubicación y la hora de salida?

¿Cómo se calcula el PageRank? ¿Cuál fue el PageRank inicial? ¿Cómo comienza el algoritmo?

¿Abusaron los escritores de los límites de la ecuación 3.10 del CLRS?

¿Cuál es la razón por la cual las compañías gigantes (por ejemplo, Google o Microsoft) hacen preguntas típicas como el árbol de búsqueda binario o el algoritmo tradicional o preguntas como la complejidad del algoritmo? ¿Cuál es el propósito? La mayoría de ellos no se usan en la vida real.

¿Hay algún conocimiento de programación que pueda utilizar / ayudaría a aprender ajedrez?

¿Alguien podría explicar la respuesta a este problema de mecánica?

¿Cómo diseñaría un algoritmo para clasificar 100 millones de libros y encontrar duplicados funcionales?

¿Qué idioma es mejor para comprender la importancia de las estructuras de datos?