Guía para principiantes de la Asignación de Dirichlet Latente(LDA)

El modelado de temas es un método para la clasificación no supervisada de documentos, similar al clustering en datos numéricos, que encuentra algunos grupos naturales de elementos (temas) incluso cuando no estamos seguros de lo que estamos buscando.

Un documento puede formar parte de múltiples temas, como en el clustering difuso (soft clustering) en el que cada punto de datos pertenece a más de un cluster.

¿Por qué el modelado de temas?

El modelado de temas proporciona métodos para organizar, comprender, buscar y resumir automáticamente grandes archivos electrónicos.
Puede ayudar con lo siguiente:

  • descubrir los temas ocultos en la colección.
  • clasificar los documentos en los temas descubiertos.
  • utilizar la clasificación para organizar/resumir/buscar los documentos.
    • Por ejemplo, digamos que un documento pertenece a los temas comida, perros y salud. Así que si un usuario consulta «comida para perros», podría encontrar relevante el documento mencionado porque cubre esos temas(entre otros temas). Somos capaces de averiguar su relevancia con respecto a la consulta sin ni siquiera repasar todo el documento.

      Por lo tanto, al anotar el documento, basado en los temas predichos por el método de modelado, somos capaces de optimizar nuestro proceso de búsqueda.

      LDA

      Es uno de los métodos de modelado de temas más populares. Cada documento se compone de varias palabras, y cada tema también tiene varias palabras que le pertenecen. El objetivo de LDA es encontrar los temas a los que pertenece un documento, basándose en las palabras que contiene. ¿Está muy confundido? Aquí tienes un ejemplo para guiarte.

      Definición del modelo

      Each document is a collection of words.

      We have 5 documents each containing the words listed in front of them( ordered by frequency of occurrence).

      What we want to figure out are the words in different topics, as shown in the table below. Each row in the table represents a different topic and each column a different word in the corpus. Each cell contains the probability that the word(column) belongs to the topic(row).

      Each topic contains a score for all the words in the corpus.

      Finding Representative Words for a Topic

      • We can sort the words with respect to their probability score.
        Se eligen las x mejores palabras de cada tema para representar el tema. Si x = 10, ordenaremos todas las palabras del tema1 en función de su puntuación y tomaremos las 10 primeras palabras para representar el tema.
        Este paso puede no ser siempre necesario porque si el corpus es pequeño podemos almacenar todas las palabras en ordenadas por su puntuación.
      • Alternativamente, podemos establecer un umbral en la puntuación. Todas las palabras de un tema que tengan una puntuación superior al umbral pueden ser almacenadas como su representante, por orden de sus puntuaciones.

      Foto de Anusha Barwa en Unsplash

      Digamos que tenemos 2 temas que se pueden clasificar como relacionados con GATOS y relacionados con PERROS. Un tema tiene probabilidades para cada palabra, por lo que palabras como leche, miau y gatito, tendrán una mayor probabilidad en el tema relacionado con el GATO que en el relacionado con el PERRO. El tópico DOG_related, igualmente, tendrá probabilidades altas para palabras como puppy, bark, y bone.

      Si tenemos un documento que contiene las siguientes frases:

      «A los perros les gusta masticar huesos y buscar palos».
      «Los cachorros beben leche.»
      «A ambos les gusta ladrar.»

      Podemos decir fácilmente que pertenece al tópico DOG_related porque contiene palabras como Dogs, bones, puppies, y bark. Aunque contiene la palabra leche que pertenece al tema GATO_relacionado, el documento pertenece a PERRO_relacionado ya que hay más palabras que coinciden con él.

      Supuestos:

      • Cada documento es sólo una colección de palabras o una «bolsa de palabras». Por lo tanto, el orden de las palabras y el papel gramatical de las palabras (sujeto, objeto, verbos, …) no se consideran en el modelo.
      • Palabras como am/is/are/of/a/the/but/… no llevan ninguna información sobre los «temas» y por lo tanto se pueden eliminar de los documentos como un paso de preprocesamiento. De hecho, podemos eliminar las palabras que aparecen en al menos el %80 ~ %90 de los documentos, sin perder ninguna información.
        Por ejemplo, si nuestro corpus contiene sólo documentos médicos, palabras como humano, cuerpo, salud, etc. podrían estar presentes en la mayoría de los documentos y, por lo tanto, pueden ser eliminadas, ya que no añaden ninguna información específica que haga que el documento destaque.
      • Sabemos de antemano cuántos temas queremos. ‘k’ está decidido de antemano.
      • Todas las asignaciones de temas excepto la palabra actual en cuestión son correctas, y entonces se actualiza la asignación de la palabra actual usando nuestro modelo de cómo se generan los documentos
        • ¿Cómo funciona el LDA?

          Hay 2 partes en el LDA:

          • Las palabras que pertenecen a un documento, que ya conocemos.
          • Las palabras que pertenecen a un tema o la probabilidad de que las palabras pertenezcan a un tema, que necesitamos calcular.
            • El Algoritmo para encontrar este último

              • Recorre cada documento y asigna aleatoriamente cada palabra del documento a uno de los k temas (k se elige de antemano).
              • Para cada documento d, pasar por cada palabra w y calcular :
      1. p(tema t | documento d): la proporción de palabras del documento d que se asignan al tema t. Intenta capturar cuántas palabras pertenecen al tema t para un documento d dado. Excluyendo la palabra actual.
        Si muchas palabras de d pertenecen a t, es más probable que la palabra w pertenezca a t.
        ( #palabras en d con t +alfa/ #palabras en d con cualquier tema+ k*alfa)
      2. p(palabra w| tema t): la proporción de asignaciones al tema t sobre todos los documentos que provienen de esta palabra w. Intenta capturar cuántos documentos están en el tema t debido a la palabra w.
        LDA representa los documentos como una mezcla de temas. Del mismo modo, un tema es una mezcla de palabras. If a word has high probability of being in a topic, all the documents having w will be more strongly associated with t as well. Similarly, if w is not very probable to be in t, the documents which contain the w will be having very low probability of being in t, because rest of the words in d will belong to some other topic and hence d will have a higher probability for those topic. So even if w gets added to t, it won’t be bringing many such documents to t.
      • Update the probability for the word w belonging to topic t, as
      p(word w with topic t) = p(topic t | document d) * p(word w | topic t)

      A layman’s example

      Suppose you have various photographs(documents) with captions(words). You want to display them in a gallery so you decide to categorize the photographs on various themes(topics) based on which you will create different sections in your gallery.

      Foto de Soragrit Wongsa en Unsplash

      Decides crear k=2 secciones en tu álbum: naturaleza y ciudad. Naturalmente, la clasificación no es tan clara, ya que algunas fotografías de ciudad tienen árboles y flores, mientras que las de naturaleza pueden tener algunos edificios. Para empezar, decides asignar las fotografías que sólo tienen elementos de naturaleza o de ciudad a sus respectivas categorías, mientras que asignas el resto al azar.

      Te das cuenta de que muchas fotografías de naturaleza tienen la palabra árbol en sus pies de foto. Así que concluyes que la palabra árbol y el tema naturaleza deben estar estrechamente relacionados.

      A continuación, eliges la palabra edificio y compruebas cuántas fotografías están en naturaleza porque tienen la palabra edificio en su pie de foto. No encuentras muchas y ahora estás menos seguro de que edificio pertenezca al tema naturaleza y lo asocias más fuertemente con el tema ciudad.

      Entonces eliges una fotografía que tiene el pie de foto «El árbol está delante del edificio y detrás de un coche» y ves que está en la categoría naturaleza actualmente.
      Entonces eliges la palabra árbol, y calculas la primera probabilidad p(tema t | documento d): otras palabras en el pie de foto son edificio y coche, la mayoría de las fotografías que tienen pies de foto con edificio o coche están en ciudad, así que obtienes una probabilidad baja.
      Ahora la segunda probabilidad p(palabra w| tema t): sabemos que muchas fotografías en naturaleza tienen la palabra árboles. Así que aquí obtienes un valor alto.
      Actualizas la probabilidad de que el árbol pertenezca a la naturaleza multiplicando las dos. Obtienes un valor más bajo que antes para árbol en el tema naturaleza porque ahora has visto ese árbol y palabras como edificio/coche en el mismo pie de foto, lo que implica que los árboles también se pueden encontrar en las ciudades.
      Por la misma razón, cuando actualice la probabilidad de que el árbol pertenezca al tema ciudad, notará que será mayor de lo que era antes.

      Después de múltiples iteraciones sobre todas las fotografías y para cada tema, tendrá puntuaciones precisas para cada palabra con respecto a cada tema. Tus conjeturas serán cada vez mejores porque concluirás por el contexto que palabras como edificios, acera, metro aparecen juntas y por tanto deben pertenecer al mismo tema, que podemos adivinar fácilmente que es ciudad.
      Palabras como montañas, campos, playa, que pueden no aparecer juntas en muchos pies de foto, pero sí aparecen a menudo sin palabras de ciudad y, por lo tanto, tendrán una mayor puntuación para naturaleza.
      Mientras que palabras como árboles, flores, perros, cielo tendrán casi la misma probabilidad de estar en cualquiera de los dos temas.

      En cuanto a la fotografía, ves que tiene 1 palabra (con probabilidad media) de la categoría naturaleza y 2 palabras (con alta probabilidad) de la ciudad, concluyes, pertenece a la ciudad con más fuerza que a la naturaleza y por lo tanto decides añadirla en ciudad.

      Nota al margen

      Las aplicaciones de LDA no tienen por qué limitarse al Procesamiento del Lenguaje Natural. Recientemente he realizado un trabajo en el que utilizamos LDA( junto con una Red Neuronal) para extraer el contexto específico de la escena de una imagen. Si estás interesado en aprender más sobre eso por favor deja un comentario o un mensaje.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *