industria de la publicidad en los que interesante serie 5: BERT modelo de etiquetado múltiples real (fuente github adjunto)

número de micro-canales público: datos por el captador óptico. Estamos dispuestos a hacer más pequeños los socios juntos para dejar un camino de salida.

Resumen: Antes de la industria de la publicidad en los que interesante serie 2: BERT tarea de clasificación de texto real de la PNL (que se adjunta el código fuente github) , se construyeron dos en BERT clasificador. Los elementos reales tiene que ser utilizado para construir un multi-BERT etiquetado modelos, muchos tipos de etiquetas pueden ser identificados por un modelo, en gran medida mejorar la eficiencia de modelado. El proyecto actual también utilizará las tareas de reconocimiento de texto completo modelo de marcado binarios y múltiples basadas en las necesidades de negocio.

Por aprendizaje Benpian, pequeños amigos pueden utilizar el modelo para resolver la tarea de marcado multi-BERT. La minería de datos, análisis de datos y procesamiento de lenguaje natural está interesado en socio pequeño puede ser una gran cantidad de atención.

 

directorio

Antecedentes tarea más de 01 etiquetado

Más de 02 etiquetado tarea tarea dicotómica VS

03 BERT construir un multi-modelo de combate etiquetado

 

Antecedentes tarea más de 01 etiquetado

Antes hablado BERT acumulación de dos clasificadores proyectan combate, necesitamos identificar la búsqueda del usuario si legendario juego interesada. Nuestro interés en la categoría Sistemas de proyecto real es muy complejo, y hay una jerarquía estricta. Si ahora tenemos un sistema de categorías de la siguiente manera:

  • juego
    • leyendas del juego
    • eliminación del juego
    • la magia del juego
  • coche
  • estrella
  • Realizar transacciones financieras

Por lo general, la búsqueda del usuario para un caso en el que sólo hay un interés etiqueta, puede ser al mismo tiempo más interesante etiqueta, o no está interesado en la búsqueda simplemente ineficaz. En este caso, si sólo hay dos clasificadores muchos carga de trabajo inusual. Si tenemos cientos o incluso miles de etiquetas, no estamos necesita cientos o incluso miles de dos clasificadores? Esto es claramente irrazonable.

Algunos pequeños compañero dijo, que podemos utilizar múltiples clasificadores. Sí, el uso de múltiples clasificadores bien puede aliviar este problema. Sin embargo, un multi-clasificador de una clase de datos se dividirá entre los diferentes tipos son mutuamente excluyentes, o no puede resolver la situación de búsqueda de un usuario puede corresponder a varias etiquetas. Lo que necesitamos es un modelo de etiquetado múltiples.

En Resumen, categorías de interés en un sistema complejo, el usuario puede también corresponder a múltiples etiquetas de interés de búsqueda, por lo que necesitamos para construir un modelo de etiquetado múltiples.

Más de 02 tareas de marcado VS tarea multi-clasificación

Aquí mediante un diagrama para ilustrar una buena multi-tarea y clasificación multi-etiqueta de tareas diferencias y conexiones marcadas. Nota tarea de clasificación binaria es sólo un caso especial de tarea multi-clasificación.

1 multitarea y multi-tarea de clasificación de la etiqueta de clasificación

 

Características de las tareas múltiples clasificación es para consultar un usuario sólo puede pertenecer a una etiqueta. clasificación dicotómica es un caso especial de multi-tarea, si estamos acostumbrados a identificar consulta del usuario no es parte de la etiqueta de leyenda, que es una de las tareas más simples de clasificación binaria. Cubiertos y no cubiertos puede representar label1 y label2 respectivamente.

característica del modelo multi-etiquetado es una consulta de un usuario puede también pertenecen a varias etiquetas, puede pertenecer a ninguno. Tomemos, por ejemplo, "Jackie respaldo del cuchillo legendaria Qué divertido", puede pertenecer a las legendario sello juego en categorías de interés en el sistema, también pertenecen a la etiqueta de estrella.

El método más popular dicotómica comprensión, clasificación multi-multi-etiqueta y el etiquetado puede ser nuestra tarea un niño a menudo las preguntas del examen. Dos clasificadores pueden corresponder hacemos preguntas verdaderas o falsas, múltiples clasificadores correspondientes a la opción múltiple (más de dos candidatos), y multi-etiquetado modelo, las correspondientes preguntas de elección múltiple, pero aquí es un poco diferente multi-tag modelo de marcar no puede elegir. Socios pequeños pueden entender la diferencia y en contacto con ellos a través de este ejemplo.

Los beneficios de utilizar el modelo de etiquetado múltiples es que podemos construir un modelo a identificar varias etiquetas, no sólo puede hacer un uso completo de las fuentes de datos, pero también puede mejorar la eficiencia de modelado. La desventaja es que el modelo de evaluación de multi-etiquetado puede no ser tan buena como dos clasificadores. Esto es realmente muy fácil de entender, por lo que de opción múltiple y preguntas de verdadero o falso, la mayoría de la gente está mejor título punto de juicio para hacerlo.

proyectos reales suelen utilizar tanto binaria y el modelo de marcado múltiple. Para la consulta del usuario original puede ser filtrada a través de un tres dos clasificadores populares. Después de la filtración del hueco del ascensor de tres populares de datos de anotación de calidad de datos. Tres modelos de datos popular no tiene sentido en sí interés. Sin el filtro, reducir la eficiencia de los datos de etiqueta. Por ejemplo, el usuario ahora tiene que marcar el 10W datos de la consulta. 10W de datos por lo general dopado con más del 20% en tres datos populares. Por tres dos clasificadores populares podemos avanzar más de 2 W de estos datos con filtración, a continuación, sólo tiene que enviar el resto del equipo etiquetada 8W de datos para mejorar la eficiencia de más del 20% de la nota.

Después de tres populares construye un clasificador basado en un multi-etiqueta de categoría modelo de etiquetado, los datos de la consulta del usuario para clasificar una categoría individual, el reconocimiento último texto se lleva a cabo de acuerdo a las diferentes necesidades de negocio. Aquí hay un pequeño truco para algún modelo multi-etiquetado no es satisfactorio en algunas etiquetas se pueden centrar en la identificación de los dos clasificadores, para que ambos puedan disfrutar de modelo de marcar múltiples eficiente, el clasificador puede disfrutar de dos de alto exactitud. artículos específicos utilizando la política como se muestra a continuación:

La figura sobre dos modelos de marcado y clasificadores en conjunción con dos

 

03 BERT construir un multi-modelo de combate etiquetado

Construcción de multi-etiquetado modelo BERT según el modelo. Aquí está el enlace al proyecto github:

https://github.com/wilsonlsm006/NLP_BERT_multi_label . También da la bienvenida a los socios pequeños una gran cantidad de tenedor, una gran cantidad de atención.

la estructura de directorios del proyecto es el siguiente:

Y dos modelo de clasificación similar, proyecto de varios etiquetado se divide en cuatro partes:

modelo de pre-formación 1. Bert


La segunda campaña han dicho BERT es un modelo de formación + dos etapas previas de puesta a punto. Aquí, la sola mención de que el proceso de pre-formación es equivalente al texto que utilizamos una gran cantidad de corpus de entrenamiento, por lo que el modelo BERT para aprender una gran cantidad de conocimientos lingüísticos. Esta parte está aprendiendo los parámetros relevantes conocimientos lingüísticos adquiridos.

Antes de modelo clasificador utilizado se basa en dos de TensorFlow Google keras_bert completado dos clasificador marco. Debido a que el proyecto real de vuelta lentamente al marco pytorch de la migración, por lo que este modelo de etiquetado múltiples se basa en fast_ai marco pytorch completó el desarrollo. fast_ai keras_bert similar, utilizando una estructura de código muy simple puede ser modelo BERT para nuestras tareas de PNL.

Pytorch modelo BERT será transformado, cada versión de la ruta y descarga la dirección siguiente:

Debido a que el proyecto real reconocemos principalmente chino, así que elegí el último "Bert-base-chino" BERT como parte de nuestro modelo de pre-entrenamiento. Descarga será bert_config.json y pytorch_model.bin dos archivos después de la finalización de la descompresión, a continuación, copiar juntos antes de añadir a nuestro vocabulario vocab.txt el directorio bert_model. Este proceso se puede completar.

2. El conjunto de datos de entrenamiento

Hemos dicho antes formato de los datos de entrada del modelo dicotómico es ocr, estilos de etiqueta. ocr consulta del usuario, sino que también tenemos que identificar el objetivo. Etiqueta representa la consulta frase no está interesado en una etiqueta en particular, el valor es 0 o 1, 1 representantes de intereses, 0 para ningún interés.

Etiquetado de múltiples tareas, el formato de entrada de datos dividida en dos partes, la primera parte es OCR, es necesario identificar una consulta del usuario. Una segunda porción de la pluralidad de campos, requiere varias etiquetas de identificación, hay varios campos. Por ejemplo, ahora tenemos que identificar la consulta del usuario no es parte de cinco pestañas. Así que ahora tenemos un formato de conjunto de entrenamiento es ocr, Lable1, label2, LABEL3, Label4, Label5. Los datos reales por ejemplo como sigue:

"Jackie respaldo del legendario cuchillo Qué divertido?" 1,0,0,1,1. Estos datos representan la consulta del usuario pertenece a esta etiqueta 1, etiquetas de la etiqueta 4 y 5.

El entrenamiento conjunto de datos en conjuntos de entrenamiento y prueba. Vamos a utilizar la maqueta de tren para completar la formación modelo de formación. A continuación, utilizar este modelo para probar la capacidad entrenada para identificar un conjunto de verificación de modelos. Aquí los conjuntos de entrenamiento y de prueba son totalmente excluyentes entre sí, por lo examinado el efecto del equipo de prueba para reflejar el reconocimiento del modelo después de la línea hasta cierto punto. Debido a que los datos de prueba establecidos y las líneas de distribución de datos pueden ser diferentes, por lo que el efecto del equipo de prueba y pueden ser diferentes efectos de línea.

3. El código de modelo y de secuencias de comandos

Antes de que el proyecto sólo dos código de clasificación. Muchos de los pequeños socio privado puede tener que modificar la letra de dichos parámetros de reacción en el entrenamiento, validación y proceso de prueba, es demasiado problema. Aquí código Python llamada que puede resolver este problema mediante scripts de shell en el modelo multi-etiqueta. Mientras el formato de entrada de datos por encima y hablar el mismo. Sólo se necesita modificar los scripts de shell para diferentes tareas para completar el modelo.

Código del modelo se divide en tres partes:

multi_label_train.py: modelo de código de entrenamiento.

Aquí para ilustrar el código de script formación específica de entrada y salida del modelo mediante el uso de una misión de entrenamiento modelo en detalle. La correspondencia guión train_multi_tag.sh:

Entrada: modelo de formación BERT requiere modelo de pre-formado y el conjunto de entrenamiento, los parámetros que se pueden configurar con una ruta TRAIN_DATA ruta de datos de entrenamiento y pre-entrenados BERT BERT_MODEL_NAME tarea

Salida: obtendrá un archivo de modelo xxxx.pth después de la finalización de la formación, por lo que necesita para configurar los parámetros tienen MODEL_SAVE_PATH. Debido a que el modelo de fase de entrenamiento, puede ser más entrenamiento varias veces, por lo que necesitan diferentes modelo de almacenamiento, este experimento se identifica mediante la configuración de LAB_FLAG.

modelo de formación específica sólo en el servidor directamente por sh train_multi_tag.sh comenzar el entrenamiento misión.

multi_label_validate.py: Modelo de código de validación.

La validación del modelo es parte de los principales indicadores con el fin de verificar el efecto del modelo, utilizamos principalmente la exactitud, precisión, recordar, f1 y marcadores para evaluar el modelo.

Entrada: un conjunto de modelos y procedimientos de prueba para recibir entrenamiento en las necesidades de validación del modelo. Hay parámetros que deben configurarse TEST_DATA y MODEL_LOAD_PATH el guión correspondiente

Salida: salida de los datos de predicción de modelo y el modelo de datos de índice en el conjunto de prueba, y la secuencia de comandos correspondiente TEST_PREDICT_DATA MODEL_EVALUATE_DATA.

multi_label_predict.py: modelo de código predictivo.

Después de la finalización de todo el desarrollo del modelo, vamos a utilizar los conjuntos de entrenamiento y prueba, al mismo tiempo que un nuevo conjunto de entrenamiento para entrenar el modelo para obtener un modelo final. Este modelo también se va a poner en marcha la línea.

Entrada: Debe resultante modelo de datos y la necesidad real de predicción en línea, y el guión correspondiente TEST_DATA MODEL_LOAD_PATH.

Salida: parte de salida de la línea prevista es de los verdaderos datos de los resultados previstos, los correspondientes parámetros de script TEST_PREDICT_DATA.

4. finalización del modelo de formación obtenida

Esta parte del proceso de formación es el resultado de lo anterior. Tenemos que utilizar este modelo para desplegar capacitados datos de la línea de predicción en línea. A continuación y antes de dos clasificadores diferentes, dos clasificadores se obtiene es un archivo XX.hdf5, y el modelo multi-etiquetado resultante es un archivo XX.pth. Otro hablado antes y binario es similar, no repetirlos aquí.

Bajo resumen, hemos completado más de un modelo mediante el etiquetado de combate proyecto, a partir del modelo de validación de modelos de entrenamiento, y luego al proceso de predicción en línea final. modelo universal es fuerte, sólo tenemos que cambiar el código de secuencia de comandos para tareas de forma rápida completos en línea.

 

Resumen y pronóstico

Benpian de partida desde la propia obra completó más de un modelo de marcado. Las tareas de clasificación de textos reales, que también utilizarán múltiples modelo de marcar y dos clasificadores basados ​​en las necesidades específicas del negocio. Debido a tareas de PNL y tarea de aprendizaje tradicional de la máquina es diferente, no necesitamos demasiadas características del proyecto, pero es muy importante para el corpus pre-texto. Además, seleccionado muestras también muy complicado. Debemos continuar acumulación de experiencia con el fin de ajustar el modelo basado en las necesidades reales de la empresa.

Artículos como este tipo de socios pequeños pueden centrarse en mi número público de micro-canales: los datos de la camioneta. Cualquier seca primero voy a ser lanzado en el número de micro-canales públicos, también conocida casi en sincronía, titulares, libros de Jane, plataformas CSDN. Socios pequeños también son bienvenidos más intercambios. Si tiene alguna pregunta, siempre puedo micro carta pública Q en el número de Kazajstán.

 

Publicado 87 artículos originales · ganado elogios 27 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/abc50319/article/details/104473730
Recomendado
Clasificación