DEESSE: un motor de búsqueda genérico basado en la inteligencia artificial

En Berger-Levrault, varios de nuestros productos de software incorporan un motor de búsqueda en sí mismos para facilitar el acceso a la información. Esta información puede estar codificada en archivos con diversos y variados formatos. Por ejemplo, archivos Word, PDF, CSV, JSON o incluso XML. Los motores de búsqueda actuales, como Lucene, se centran la mayor parte del tiempo en la búsqueda de palabras clave. De hecho, esto limita las búsquedas en profundidad, por ejemplo, para encontrar enlaces semánticos entre las palabras expresadas por el usuario y las palabras contenidas en la base de datos que se quiere indexar. Estos vínculos semánticos pueden referirse a varias relaciones léxico-semánticas como la sinonimia, la especificación, la generalización o incluso el refinamiento semántico. Dicho esto, la investigación en profundidad puede mejorar la cobertura de las respuestas devueltas y promover una investigación inteligente que vaya más allá de la simple búsqueda de palabras clave. Esto es lo que vamos a contar en este artículo, un nuevo componente de búsqueda inteligente que se pone al servicio de los productos Berger-Levrault. Hemos llamado a este componente DEESSE: Motor de búsqueda semántica profunda. Para este proyecto de investigación e innovación tecnológica, nos interesaba proponer métodos de búsqueda semántica de documentos teniendo en cuenta las palabras y sus contextos en una base de datos a indexar. 

Ya se ha realizado un primer ejercicio sobre los documentos de escritura producidos en "BL.Actes-Office (BLAO)". Antes de entrar en los detalles del planteamiento fundamental de DEESSE, dado que este nuevo sistema ha recibido buenos comentarios, BLAO ya utiliza nuestro servicio DEESSE y podemos felicitarnos por ello. Sin embargo, nos gustaría mencionar que para BLAO se utilizó una API de java para comunicarse con Lucene (el antiguo sistema). Por razones de interoperabilidad, DEESSE se ofrece actualmente como un componente java (JAR) con una API. Aunque DEESSE se desarrolló originalmente para BLAO, hemos considerado usos futuros con diferentes contextos empresariales. Por lo tanto, la API propuesta es genérica. Por último, se está trabajando para proponer una API REST y así ofrecer DEESSE como un servicio de indexación y búsqueda en línea. Además, nos gustaría mencionar que DEESSE indexa los documentos más rápidamente que su predecesor: el antiguo sistema Lucene y utiliza mucho menos espacio en disco. 

Antecedentes científicos

Las máquinas no son capaces de entender el contenido textual como un humano, por lo que es muy difícil diseñar un programa capaz de comprender todas las sutilezas de un lenguaje. Por eso se habla de "representación" y "modelo". Una representación es una forma de contenido textual legible por la máquina. Al igual que la codificación binaria, las representaciones suelen ser incomprensibles para los humanos. Por ejemplo, en la figura 1, ❸ es una representación de un documento. Estas representaciones se calculan mediante un proceso matemático que busca la representación más simplificadora conservando la máxima cantidad de detalles ❷. Sin embargo, para que esta representación sea coherente con un lenguaje, el proceso está parametrizado por un modelo que describe ese lenguaje fuente ❶.  

Figura 1 : conceptos de representación y modelo.

Con estas representaciones y en un modelo determinado es posible comparar las representaciones. La figura 2 ofrece una ilustración. Una de estas comparaciones se basa en una métrica denominada coseno. Una forma de representar esto es visualizar los documentos en algunos puntos de un n-espacio dimensional. Basta con medir un ángulo entre estos documentos, el coseno, para saber lo cerca que están semánticamente.

Figura 2: la representación puede utilizarse para comparar semánticamente los documentos. (para mantener la legibilidad, aquí sólo se representan 2 dimensiones).

Las técnicas utilizadas en este trabajo pertenecen tanto a la inteligencia artificial (IA) como al procesamiento del lenguaje natural (PLN) y a la recuperación de información (RI). Estos tres campos de la ciencia y la tecnología tienen mucho en común: todos tratan con texto expresado en lenguaje natural. La representación de los documentos en un sistema de RI y el cálculo de la similitud entre estas representaciones son dos cuestiones diferentes que hemos tratado en este proyecto de investigación y desarrollo. Además, el punto fuerte del sistema DEESSE es dar al usuario la posibilidad de expresar su petición (consulta) en lenguaje natural (como hace Google). 

El objetivo principal de este trabajo es proponer un modelo de representación semántica, por un lado, para la base de datos de documentos a indexar y, por otro, para la consulta expresada por un usuario cuyo objetivo es consultar semánticamente una base de datos. Para dar una representación semántica que lleve el significado de los documentos, nos basamos en un modelo de lenguaje entrenado sobre un corpus muy grande procedente del Dominio .fr que detallamos a continuación (en la siguiente sección). Este mismo modelo se utilizó para dar una representación semántica a la consulta; en cuanto a la medida de similitud utilizada para comparar la representación de la consulta con las representaciones de los documentos, utilizamos la muy popular medida Coseno. 

¿Cómo funciona en profundidad?

A continuación detallamos la arquitectura de nuestro enfoque para crear representaciones semánticas, así como la forma de devolver los documentos más cercanos semánticamente. La figura 3 describe las principales etapas. Para probar nuestra propuesta DEESSE, trabajamos con un subcorpus de la base de datos BLAO: se trata de un conjunto de documentos de deliberación de la ciudad de Draguignan ⓿. Estos documentos son primero, ❶, preprocesados para encontrar palabras con significado (sustantivos, adjetivos, adverbios y verbos) y palabras de parada (por ejemplo, determinantes, preposiciones, etc.). A continuación, se realiza una descripción estadística. Para cada palabra con significado, se cuenta su número de apariciones (Term Frequency - TF) y luego su frecuencia inversa de documento (IDF). Con los resultados del segundo paso, se indexa el documento ❸, es decir, se construye una representación del documento. Para ello, se utilizan recursos externos (familias morfológicas y modelo lingüístico).  

Para la investigación, los usuarios expresan sus consultas en lenguaje natural ❹. Al igual que con los documentos, durante la indexación se construye una representación de la consulta ❺. A continuación, se compara con las representaciones de los documentos previamente indexados para determinar qué documentos son los más cercanos semánticamente ❻. 

Figura 3 : características generales de DEESSE.

En la figura 4 se presentan con más detalle las diferentes etapas de nuestro enfoque. 

Figura 4 : Detalle de las etapas del proceso de indexación en DEESSE.

En primer lugar, los documentos ⓿ se convierten a un formato de texto plano (*.txt) ❶. Este último formato de texto se pasa a Talismane que la idea aquí es extraer palabras significativas (palabras de clase abierta) ❷. La idea a partir de entonces es medir el grado de frecuencia en términos de ocurrencias (Term Frequency) así como la frecuencia inversa del documento (IDF) de todas las palabras en los documentos a indexar.  

Representación semántica de los documentos ❸

A continuación, describimos los dos pasos esenciales para crear una representación semántica de los documentos:

  • Tras obtener los diferentes lemas de un documento dado, realizamos una sustitución léxica para reducir el vocabulario, es decir, utilizamos el Morphonette ressource (Hathout, 2008) para sustituir, si es posible, las palabras de un documento por las más frecuentes del corpus y pertenecientes a la misma familia morfológica. Por ejemplo, dérogatoire puede ser sustituido por dérogation si es más frecuente que ella.
  • Construimos representaciones vectoriales continuas a los documentos a partir de una lista de palabras. Para ello, utilizamos el algoritmo Smooth Inverse Frequency (SIF) propuesto por Arora y otros. (2017). El principio de este algoritmo consiste en tomar la media ponderada de la incorporación de palabras en un texto para no dar demasiado peso a las palabras que no son relevantes desde el punto de vista semántico. Este paso consiste en considerar el IDF asociado a cada palabra del corpus.

Para generar vectores continuos para los documentos, nos basamos en un modelo lingüístico que nos permite proporcionar vectores de palabras (incrustaciones de palabras). Estos vectores son del tipo Word2Vec (Mikolov et al., 2013) con un CBOW (Bolsa continua de palabras) tipo de arquitectura. La página web Word2Vec se entrenó con el modelo FRWAC corpus (Fauconnier, 2015).
FRWAC es un corpus francés del dominio .fr, que contiene casi dos mil millones de palabras. Fauconnier (2015) ya ha propuesto un modelo lingüístico entrenado en este corpus, por lo que lo hemos utilizado. Para la transición de la representación de palabras a la representación de documentos, hemos optado por utilizar un vector centroide ponderado como el descrito por Arora et al. (2017). Este vector se define a partir de los vectores de todas las palabras de un documento determinado. Además, la representación semántica de la consulta se construye de la misma manera que la representación de los documentos.

Los documentos se indexan principalmente por su representación semántica, la consulta también. Sin embargo, como el modelo lingüístico se ha entrenado en un corpus diferente al de la base que se va a procesar, el modelo utilizado puede no ofrecer una representación para las palabras expresadas en la consulta. Esto puede deberse a muchas razones: podemos tratar códigos, términos demasiado técnicos o incluso fechas, por ejemplo. En la figura siguiente se describen nuestras opciones para hacer frente a este problema, es decir, los tipos de representación de documentos utilizados para consultar la base de datos indexada.

Figura 5 : Adaptación de DEESSE con el contenido de la solicitud.

Por lo tanto, para mejorar los resultados de la búsqueda, y si el uso de las incrustaciones léxicas del corpus FRWAC no devuelve una representación semántica para la consulta expresada por un usuario, aplicamos automáticamente una búsqueda exacta (en los textos brutos). Este enfoque secundario consiste en encontrar exactamente la cadena de caracteres de la consulta en los documentos de nuestro corpus.

Tipo de consulta

Ofrecemos dos formas de consultar una base de datos:

  • Utilizando sólo las palabras de la consulta original
  • Considerando no sólo las palabras de la consulta original, sino también las tres palabras semánticamente más cercanas a cada palabra de la consulta original. Esta ampliación de la lista de palabras de la consulta se basa en el uso del modelo lingüístico Word2Vec

La figura siguiente describe con un ejemplo cómo se utilizan las palabras de la consulta original.

Figura 6 : Tipos de solicitudes de DEESSE.

Otro ejemplo, la consulta "Entreprise travaux publics" se expresa de forma diferente entre los dos tipos de consultas. Tras procesar el texto de la consulta, el primer tipo devuelve como bolsa de palabras "entreprise, público ytrabajo ", mientras que el segundo devuelve "entreprise, público, trabajo, chantier, colectividad, pme, pme-pmi, privé, profesión, salarié y territorial". Con esta combinación de palabras, tiene mucho sentido que el resultado de la búsqueda semántica de documentos no sea el mismo al aplicar ambos tipos de consulta.

Nuestros experimentos y resultados: Más rápido, más pequeño, mejor

Ahora presentamos una evaluación de nuestro enfoque en comparación con un sistema que se basa en la indexación de palabras clave: el sistema Lucene. Para ello, nos pusimos en contacto con un experto en el producto BLAO. Este experto nos proporcionó un conjunto de 27 consultas elegidas para cubrir las posibles formas que pueden tener las consultas expresadas por los usuarios (cadenas de caracteres, códigos, fechas, etc.). Se ha establecido una comparación con el sistema Lucene. Hay que tener en cuenta que Lucene es el sistema utilizado principalmente por BL. Actes-Office, lo que ya no es el caso hoy en día ya que DEESSE lo ha sustituido. La figura siguiente muestra las diferentes consultas tomadas para la prueba.

Figura 7 : consultas elegidas para una evaluación de DEESSE.

El experto se dedicó a anotar los resultados, es decir, a anotar los documentos que son relevantes para él y que deberían aparecer en primer lugar por el motor de búsqueda. La figura siguiente muestra la evaluación de los resultados obtenidos. Nuestros resultados, por tanto, mostraron una tasa de rendimiento de 71% para DEESSE con consultas extendidas y 66% para DEESSE con consultas simples frente a 42% para Lucene. Así, obtuvimos +5% con consultas extendidas. Además, de 8 consultas, nuestros sistemas devolvieron buenos resultados contra nada para Lucene: encontramos algunos en las siguientes consultas: "Entreprise travaux publics“, “Radiotéléphonique “, “2252129.78“, “18 francos" o "18“.

Figura 8 : índice de precisión de DEESSE frente a Lucene.

Hemos realizado un estudio comparativo entre el motor de búsqueda heredado, Lucene, y nuestro motor DEESSE. La siguiente tabla muestra nuestros resultados para un corpus real de 13 500 documentos (tamaño total del corpus: 405 MB - tamaño medio del documento: 30kb).

MétricaMotor heredado (Lucene)Motor DEESSEGana
Tiempo total de indexación (hora)184,5 horas18,25 horas166,25 horas ganado por el tiempo de indexación
DEESSE requiere 90% menos tiempo de indexación.
Velocidad de indexación (documentos/hora)91 documentos/hora740 documentos/hora649 documentos/hora
Velocidad de indexación (MB/hora)2,73 mb/hora22,2 mb/hora19,5 mb/hora
Tamaño de los índices (MB)576 000 mb260 mb (todos los índices)
138 mb (sólo índices semánticos)
575 740 mb
Uso de DEESSE sólo 0,06% del espacio del disco requerido por Lucene.
Rendimiento [1] (<0 : peor; 1: mejor)– 1 3970,35 (todos los índices)
0,66 (sólo índices semánticos)

Los resultados son impresionantes y demuestran notablemente que DEESSE no tiene nada que envidiar a los motores existentes, ¡incluso en un contexto industrial! Sabemos que 98% del tiempo de indexación se debe al análisis morfosintáctico. Estamos considerando sustituir el analizador actual por uno más rápido, como TreeTagger[2]. Así, esperamos una ganancia muy significativa (~50%) en la velocidad de indexación.

Las métricas de rendimiento eran tan impresionantes que tuvimos que comprobar nuestros resultados varias veces.


[1] Rendimiento_Indexación = 1 - (Tamaño de los archivos de índices/tamaño del corpus a indexar)
[2] https://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/

Conclusión y trabajos futuros

En este artículo, presentamos DEESSE: un modelo de búsqueda semántica de documentos. Este modelo ha sido probado en una de las bases de datos de productos de la BLAO. DEESSE se basa en el uso de técnicas de IA (incrustaciones de palabras), el procesamiento del lenguaje natural (Talismane) y los métodos de recuperación de información (comparación de representaciones semánticas "documentos frente a consulta" en el mismo espacio vectorial). Hemos visto que el uso de incrustaciones de palabras puede mejorar la búsqueda de documentos en lugar de la mera indexación por palabras clave. A continuación presentamos las ventajas del uso de DEESSE:

Figura 9 : ventajas de la utilización de DEESSE.

Por lo demás, cabe señalar que hemos puesto a disposición de todos nuestros colaboradores de Berger-Levrault dos demostraciones del sistema DEESSE: la primera demostración refleja los resultados del rendimiento obtenido con la BLAO; el segundo se refiere a la base de datos de BL BOT. Esto ya nos permite pensar en la segunda versión de BL BOT.

Para futuros trabajos, nos gustaría conseguir lo siguiente

  • Una API REST para DEESSE para que el sistema pueda utilizarse sin restricciones tecnológicas
  • Soporte para más formatos de documentos (por ejemplo, XML, JSON, CSV, etc.)
  • Para la investigación científica, sería interesante ampliar DEESSE para que aprenda no sólo del contenido de los documentos, sino también considerando las palabras expresadas en la consulta del usuario. Se trata de considerar lo que el usuario desea más a menudo y eso de forma semántica e inteligente sin salirse de los contextos propuestos en la base de datos
  • Pruebe DEESSE en más bases de datos de productos como BL.API, Legibases, Carl, Commune-IT y muchas más.

Referencias

Apache Tikahttps://tika.apache.org/
TalismaneURIELI Assaf (2013). "Análisis robusto de la sintaxis francesa: conciliación de los métodos estadísticos y del conocimiento lingüístico en el conjunto de herramientas Talismane". Thèse de doct. Université de Toulouse II le Mirail, Francia (http://redac.univ-tlse2.fr/applications/talismane.html).
MorphonetteHATHOUT Nabil (2008). Adquisición de la estructura morfológica del léxico basada en la similitud léxica y la analogía formal. Proceedings of the 3rd Textgraphs Workshop on Graph-Based Algorithms for Natural Language Processing, p. 1-8. DOI : 10.3115/1627328.1627329 (http://redac.univ-tlse2.fr/lexiques/morphonette.html).
FRWACBARONI Marco, BERNARDINI Silvia, FERRARESI Adriano y ZANCHETTA Eros (2009). "The WaCky wide web: a collection of very large linguistically processed web-crawled corpora". En Language Resources and Evaluation, p. 209-226.
Word2VeMIKOLOV Tomáš, CHEN Kai, CORRADO Greg et DEAN Jeffrey (2013). "Estimación eficiente de representaciones de palabras en el espacio vectorial". Actas de la Conferencia Internacional sobre el Aprendizaje de Representaciones, p. 1-12 (https://code.google.com/archive/p/word2vec/).
Frecuencia inversa suave (SIF)ARORA Sanjeev, LIANG Yingyu y MA Tengyu (2017). Una línea de base simple pero sin duda para embebidos de oraciones. En la Conferencia Internacional sobre el Aprendizaje de Representaciones (ICLR) (https://github.com/KHN190/sif-java).
Modelo de lengua estándarFAUCONNIER, Jean-Philippe (2015). Embeddedings de palabras en francés (http://fauconnier.githubio/#data).
Lucenehttps://lucene.apache.org/
TreeTaggerSCHMID Helmut (1994). "Probabilistic Part-of-Speech Tagging Using Decision Trees". Actas de la Conferencia Internacional sobre Nuevos Métodos de Procesamiento del Lenguaje, Manchester, Reino Unido.

Más ...

Ir arriba