La resolución de entidades (ER) es el proceso de desambiguación de una entidad. Se consigue asignando una mención textual al nombre más apropiado del mundo real presente en una base de conocimientos (KB) de búsqueda. Por ejemplo, resolviendo “madrid fc” a “Real Madrid Club de Fútbol”, donde el primero es una de las paráfrasis del segundo. La resolución de entidades suele recibir otros nombres, como correspondencia de entidades, vinculación de entidades, vinculación de registros o deduplicación de registros. La resolución de entidades está disponible como parte del proceso NLP de MindMeld y se utiliza para desambiguar las entidades identificadas en la entrada del usuario comparándolas con una KB previamente completada. Consulte la documentación oficial para aprender a crear una KB para el solucionador de entidades y trabajar con él mientras crea una aplicación MindMeld. Hasta hace poco, MindMeld ofrecía dos opciones para la resolución de entidades: una basada en el motor de búsqueda y análisis de texto completo Elasticsearch y otra basada en un simple algoritmo de coincidencia exacta como opción alternativa. Con la creciente diversidad en las aplicaciones de MindMeld, es posible que estas opciones no siempre sean factibles. Para ofrecer un soporte extendido, ahora MindMeld proporciona dos opciones adicionales para la resolución de entidades: una basada en TF-IDF y otra basada en representaciones de modelos neuronales previamente entrenados (BERT, GloVe, fastText, etc.). En particular, estas nuevas opciones no tienen ninguna dependencia de Elasticsearch (y sus servicios). Antes de entrar en más detalles sobre estas nuevas opciones, hagamos un resumen rápido de cómo se estructura una base de conocimiento de entidades en MindMeld. A continuación, se muestra un ejemplo del plan de pedido de alimentos con la base de conocimientos creada para desambiguar los nombres de los alimentos:
Instantánea de una base de conocimientos para la resolución de entidades
Como se observa, el campo “cname” (nombre canónico) junto con el campo “whitelist” ejemplifican algunos usos populares para cada alimento junto con el campo “id” que se refiere a un registro único y oficialmente reconocido en la base de conocimientos. Estos tres campos constituyen principalmente un objeto de entidad en la KB. El texto del campo “cname” se utiliza generalmente en las respuestas conversacionales, y los del campo “whitelist”, junto con el nombre canónico, sirven como alias al desambiguar. A menudo, los mejores resultados de un solucionador de entidades se obtienen cuando el campo “whitelist” se completa de forma exhaustiva (por ejemplo, incluyendo usos alternativos, errores ortográficos, formas cortas, etc.). Este tipo de selección puede convertirse en un proceso tedioso en algunas aplicaciones, pero es inevitable cuando se trata de entidades en un dominio muy especializado.
Obtenga más información sobre los solucionadores recién añadidos
En los solucionadores que no son de coincidencia exacta, el primer paso es obtener una representación vectorial para el texto de entrada que hay que desambiguar y para todas las entradas de la KB (cnames más listas blancas) que sirven de alias para la desambiguación. Luego, mediante el uso de alguna forma de comparación de similitudes vectoriales (por ejemplo, la similitud del coseno), se puntúan y clasifican los alias. En las opciones de resolución de entidades recién añadidas, el solucionador basado en TF-IDF selecciona diversas características de n-gramas (es decir, características de texto a nivel de superficie) antes de calcular las similitudes del coseno en los vectores dispersos. Asimismo, un solucionador basado en un incrustador previamente entrenado hace coincidencias utilizando la similitud del coseno en representaciones vectoriales densas de texto. Aprovechar los incrustadores previamente entrenados para la resolución de entidades tiene algunas ventajas sobre otros enfoques. Por ejemplo, ofrecen una comprensión semántica del texto sin tener que completar extensamente las listas blancas (por ejemplo, “rendimiento por debajo de las expectativas” equivale a “rendimiento deficiente”) y proporcionan una fácil transición a la coincidencia de entidades multilingües (por ejemplo, inferir que “tercio” en español es lo mismo que “tercero” en inglés). Sin embargo, las discrepancias entre el entrenamiento previo y la inferencia, como la diferencia en la longitud de los textos de entrada, ponen en desventaja a los incrustadores previamente entrenados. Además, los tiempos de inferencia de los modelos de incrustación pueden ser mayores que los de otras opciones de resolución debido a los cálculos de vectores densos subyacentes. No obstante, si se ajustan adecuadamente, los modelos de incrustación pueden superar a otras opciones de resolución basadas principalmente en características de texto a nivel de superficie. En el análisis que se realiza a continuación, se comparan los solucionadores basados en incrustadores previamente entrenados con los solucionadores de entidades de Elasticsearch y TF-IDF. Los conjuntos de datos seleccionados para esta comparación involucran tanto la coincidencia de texto a nivel de superficie como la semántica.
Rendimiento de los diferentes solucionadores
Tras experimentar con varios conjuntos de datos seleccionados internamente, a continuación, se muestra el rendimiento promedio de los distintos solucionadores de entidades para la coincidencia de entidades de texto corto. La puntuación de recuperación Top-1 se informa aquí como la medida de precisión:
Rendimiento de diferentes solucionadores de entidades
Las variantes de BERT previamente entrenadas están disponibles como parte de los transformadores de oraciones de Huggingface, y el gráfico presenta las puntuaciones de solo las cinco variantes de mejor rendimiento. Los modelos de incrustación de palabras previamente entrenados, como fastText, generalmente funcionan peor que los modelos de incrustación BERT o los solucionadores basados en TF-IDF. Estos bajos rendimientos podrían atribuirse al cambio de dominio y a la falta de ajuste. Un análisis más detallado utilizando diferentes configuraciones de la variante de BERT con mejor rendimiento (‘distilbert-base-nli-stsb-mean-tokens’) arroja los siguientes resultados:
Rendimiento de diferentes configuraciones mientras se utiliza la variante de BERT de mejor rendimiento
Los resultados muestran que las puntuaciones de similitud alternativas, como BERTScore, no son competitivas. Además, el uso de la similitud del coseno mientras se concatenan las diferentes capas del modelo BERT generan un aumento del rendimiento que coincide con el de Elasticsearch. Esto es intuitivo, ya que las diferentes capas de BERT pueden captar información complementaria. Incluso después de cuantificar la variante BERT para que ocupe menos espacio en la memoria y sea menos compleja en términos de tiempo, el rendimiento solo se degrada en un 2 a 3%. Además, cuando se evalúa sobre datos con ruido aleatorio que contienen errores ortográficos en la entrada, el solucionador basado en TF-IDF supera a los demás. Esto podría deberse a la diversidad del conjunto de n-gramas captados por este solucionador. (Para este experimento, los textos de la lista blanca se reutilizan como instancias de prueba y se les introducen errores ortográficos. Por lo tanto, con un 0% de ruido, se observa una precisión del 100%, ya que todas las entidades de prueba también están presentes en las listas blancas).
Rendimiento de la coincidencia de textos con errores ortográficos
Por último, el siguiente gráfico ilustra las diferencias en las complejidades del tiempo de inferencia entre las distintas opciones de solucionadores: (De izquierda a derecha: BERT, TF-IDF, Elasticsearch más precisos) Tiempo de inferencia por entidad cuando se mide en bases de conocimiento de diferentes tamaños. El eje X muestra el tamaño de la base de conocimientos, mientras que el eje Y muestra el tiempo por entidad en milisegundos. El amarillo es el tiempo de inferencia para codificar el texto de entrada, y el verde es el tiempo de inferencia para el cálculo de la similitud. Las complejidades de tiempo de TF-IDF y Elasticsearch son bastante comparables, mientras que la mejor variante de BERT, aunque cuantificada, es veinte veces más lenta. Esto mejora hasta una ralentización de diez veces cuando no concatenamos las cuatro capas superiores, pero conlleva una pérdida de precisión.
Selección y configuración de un solucionador de entidades
Las configuraciones del solucionador de entidades de MindMeld contienen diversos parámetros configurables basados en el solucionador que se utiliza. El siguiente fragmento, cuando se proporciona en el archivo “config.py” de una aplicación, utiliza un modelo BERT previamente entrenado de su elección de Huggingface: ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ‘sbert_cosine_similarity’, ‘pretrained_name_or_abspath’: ‘distilbert-base-nli-stsb-mean-tokens’, … }} Puede utilizar otros modelos de incrustación modificando el parámetro “embedder_type”: ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ‘embedder_cosine_similarity’, ‘embedder_type’: ‘glove’, … }} También puede especificar configuraciones en tiempo de ejecución como “batch_size” cuando se utiliza un modelo de incrustación, junto con configuraciones específicas del modelo de incrustación. Para cargar un solucionador basado en TF-IDF, puede hacer lo siguiente: ENTITY_RESOLVER_CONFIG = { ‘model_type’: ‘resolver’, ‘model_settings’: { ‘resolver_type’: ‘tfidf_cosine_similarity’, … }} Para cada objeto de entidad en la KB, también se calculan incrustaciones especiales, que son el conjunto medio/máximo de todas las incrustaciones de los alias, y se utilizan para la resolución si se configura. Estas incrustaciones especiales suelen mejorar la precisión de los solucionadores con solo un aumento marginal del costo computacional. Para conocer todos los detalles y todas las opciones configurables, consulte la sección “Configuraciones” de la documentación oficial.
Reflexiones finales y trabajo futuro
En general, se recomienda el solucionador basado en Elasticsearch, a menos que no se pueda utilizar por alguna situación especial. Como alternativa, se pueden utilizar solucionadores basados en modelos de incrustación cuando se requiera una mayor coincidencia semántica o un solucionador basado en TF-IDF si no existe tal requisito. El módulo ER de MindMeld todavía no proporciona ninguna API para evaluar qué solucionador funciona mejor para su aplicación. Esté atento, ya que tenemos previsto añadir esa compatibilidad, junto con formas de ajustar los solucionadores basados en modelos de incrustación. Regístrese en Webex Visite nuestra página de inicio o póngase en contacto con nosotros directamente para obtener ayuda. Haga clic aquí para obtener más información sobre las ofertas de Webex y para inscribirse en una cuenta gratuita.
About The Author
Sai Muralidhar JayanthiMachine Learning EngineerCisco
Sai Muralidhar Jayanthi is a Machine Learning Engineer on the MindMeld team at Cisco, where he builds production-level conversational interfaces.