C贸mo Methodius se convirti贸 en Anna: la experiencia de desarrollar y lanzar clasificadores de mensajes de voz. Parte 1

Meta y objetivo


En una serie de art铆culos, consideramos los clasificadores de las llamadas de voz, por qu茅 son necesarios, c贸mo llevarlos r谩pidamente a la productividad. Le contar茅 acerca de los enfoques que reducir谩n el tiempo desde la configuraci贸n de una tarea hasta el lanzamiento de un modelo y la obtenci贸n de un resultado comercial.
Para este art铆culo, puede ver el informe en el enlace


C贸mo Metodio se convirti贸 en Anna. Serie No. 1


隆Empecemos!


Mi nombre es Julia, soy ingeniera en el departamento de aprendizaje autom谩tico de un gran proveedor. Alrededor de 3.000 llamadas de clientes llegan a nuestro centro de llamadas por d铆a. Cada operador recibe un promedio de 100 llamadas por d铆a. 驴Y qu茅? Parece que esto acepta 100 llamadas. Pero hay muchos temas de llamadas a la empresa, el operador necesita comprender todos los productos, servicios y procesos de la empresa. Si tomamos las solicitudes de clientes m谩s t铆picas, entonces se pueden agrupar en 40 (!) Temas, y todav铆a hay aplicaciones at铆picas que tambi茅n deben poder procesarse.
imagen


Debido a la variedad de temas, la capacitaci贸n del operador tom贸 tres meses. Primero debe estudiar todas las instrucciones y solo entonces se le permite recibir llamadas. Se est谩 gastando una gran cantidad de recursos para crear un nuevo operador competente. Entonces surgi贸 la idea de poner al operador en l铆nea gradualmente. Es decir, recibir谩 llamadas solo sobre aquellos temas que haya dominado, con el tiempo aumentando su habilidad, estudiando otros temas.


Buena idea, 驴por qu茅 no hacer ... un IVR simple? (un sistema de mensajes de voz pregrabados que enruta las llamadas dentro del centro de llamadas usando la informaci贸n ingresada por el cliente en el teclado del tel茅fono usando la marcaci贸n por tonos. wiki )


imagen


Pero a pocas personas les gusta escuchar una voz grabada durante mucho tiempo, esperar, qu茅 cifra se debe presionar, pero al final todav铆a no obtienen la informaci贸n necesaria.


No quer铆amos atormentar a nuestros clientes con IVR y establecimos la tarea: clasificar la solicitud del suscriptor de acuerdo con la primera oraci贸n. Por lo tanto, de acuerdo con la solicitud expresada, se producir谩 un enrutamiento entre operadores.


Datos


Los operadores de soporte t茅cnico sobre el resultado de cada llamada han estado exponiendo el tema de la llamada durante aproximadamente 10 a帽os. Identificamos los 16 grupos m谩s numerosos, y aparecieron marcas de estos temas. Luego cargamos registros de 120k conversaciones sobre diversos temas, reconocimos la grabaci贸n de la conversaci贸n de un cliente usando Yandex.SpeechKit y los dividimos en frases por silencio. Entonces obtuvimos piezas de audio con frases separadas.


Perm铆tame recordarle que mi objetivo era clasificar la solicitud inicial del cliente, por lo que solo se seleccion贸 la primera frase de cada llamada. En total, los datos fueron 120k frases de clientes en formato de texto con marcado de los operadores. Preprocesamiento de texto est谩ndar: eliminar palabras de detenci贸n, normalizar texto (trucos: adjuntar una part铆cula "no" a la siguiente palabra) y los datos est谩n listos. Te contar茅 m谩s sobre nuestro proceso de preprocesamiento en otro art铆culo.


Clasificaci贸n


Luego, despu茅s de recibir el texto procesado, realizamos muchos experimentos, ordenados a trav茅s de varias configuraciones de modelos e incrustaciones.


Tabla con comparaci贸n de resultados experimentales.
Bayes ingenuosSVMRegresi贸n log铆sticaBosque al azarLightgbmXGBoostRed neuronal
TF-IDF unigram66,969,669,764,368,268,270,3
TF-IDF bigram68,470,470,564,368,468,370,5
TF-IDF trigram68,470,370,564,268,368,170,5
Word2vec67,969,369,668,770,269,370,7
Word2Vec + TF-IDF66,469,869,468,370,269,970,3
Contexto TF-IDF +70,671,772,467,371,370,371,2
Word2Vec + contexto69,271,871,169,271,470,972,1
Word2Vec + TF-IDF + contexto69,770,471,070,371,271,371,8

El mejor resultado fue dado por el conjunto est谩ndar de TF-IDF y la regresi贸n log铆stica. La tabla muestra la m茅trica del puntaje f. En algunos experimentos, adem谩s del texto, se agregaron 11 signos adicionales sobre el cliente (contexto) en el momento de la llamada. Con la esperanza de que esto de alguna manera eleve la calidad. Contexto: estos son signos booleanos, si el cliente tiene un saldo negativo ahora, si la reparaci贸n est谩 asignada a la direcci贸n y otras que caracterizan al cliente en este momento. Pero incluso con el contexto, la calidad es pobre, solo se logr贸 el 72%.


An谩lisis de errores


Sin un an谩lisis de error, la calidad de la clasificaci贸n no mejor贸. Tras examinar los casos en que los modelos est谩n equivocados, identificamos los siguientes problemas t铆picos:


  • mal marcado
  • desequilibrio de clase
  • es dif铆cil para las personas formular un pensamiento
  • reconocimiento de voz

Marcado


El marcado a menudo era incorrecto debido al hecho de que la conversaci贸n pod铆a comenzar con un tema y terminar con otro, y el operador defini贸 el tema de la llamada, que se dijo al final del di谩logo. Redistribuy贸 manualmente tales casos y el problema desapareci贸.


Saldo de clase


Hay varios enfoques para equilibrar las clases.


M谩s detalles
  1. Submuestreo Eliminaci贸n aleatoria de ejemplos de clases grandes.
  2. Sobremuestreo. Adici贸n aleatoria de ejemplos de clases menores.
  3. Sobremuestreo de minor铆as sint茅ticas. Adici贸n aleatoria de ejemplos de las clases m谩s peque帽as, pero cambi谩ndolos ligeramente.

El enfoque a elegir depende de la tarea y la cantidad de datos. Como parte de esta tarea, fue posible equilibrar el conjunto de datos eliminando ejemplos de las clases de mayor frecuencia al valor medio del n煤mero de ejemplos, pero las clases menores permanecieron sin cambios.


Es dif铆cil para las personas formular pensamientos


Despu茅s de leer las primeras frases, notamos que el 36% de las consultas conten铆an texto no informativo, por ejemplo: "Hola, hola" o "Hola, tengo una pregunta". Solo despu茅s de que el operador pregunt贸: "驴cu谩l es su pregunta?", El cliente formul贸 el problema.


Por lo tanto, fue incorrecto tomar solo la primera frase del cliente de la conversaci贸n; alguien simplemente no pudo formular una solicitud de inmediato. Por lo tanto, para cada primera frase, se calcul贸 la "informatividad". Si el modelo no atribuy贸 la solicitud con alta confianza a ninguna de las clases, es decir, todas las clases recibieron un valor de probabilidad igual, entonces el mensaje no es informativo y debe tomar la segunda frase. Y si la clase ya est谩 determinada con alta probabilidad, entonces la primera frase es suficiente.


Aqu铆 puede aparecer la pregunta correcta, pero qu茅 hacer en el producto, porque habr谩 las mismas consultas no informativas. Hablar茅 de esto m谩s adelante en el pr贸ximo art铆culo.


Reconocimiento de voz


Al analizar los errores, notamos imprecisiones en el reconocimiento de texto, debido a que la clase se defini贸 incorrectamente. Por ejemplo, la palabra "equilibrio" a veces se reemplaz贸 por "pl谩tano". Decidimos comparar el reconocimiento de Yandex y Google. Google se mostr贸 mejor en nuestros datos, pero no tanto como para pagar de m谩s por ellos, el precio es casi el doble.


Comparaci贸n del reconocimiento de voz entre dos sistemas.

imagen


Resumen de an谩lisis de errores


Despu茅s de analizar y corregir los errores, pudimos mejorar la calidad a un puntaje f promedio de 84%; la mejor calidad a煤n fue el resultado de la regresi贸n log铆stica.


Ganancia de calidad para cada clase
ClaseEraSe ha convertido
Problemas de internet59,9786,5
Problemas con KTV86,7189,02
Intercomunicadores51,585,74
Contrato57.8169,13
Pago46,8174,26
.........
promedio72,4484,39

Conclusiones


Resumiendo la primera etapa de desarrollo, podemos sacar la siguiente conclusi贸n.


En primer lugar, debe lidiar con los datos y el marcado. No debe entrenar inmediatamente las redes neuronales, con datos incorrectos no habr谩 mucho beneficio de esto. Para evitar perder tiempo y energ铆a, es suficiente analizar los errores en los modelos "simples".


Nos vemos en la segunda serie , donde hablaremos sobre c贸mo ejecutar un modelo entrenado de forma productiva. Escucharemos ejemplos de c贸mo Methodius el robot recibe llamadas, y entenderemos por qu茅 se convirti贸 en Anna.

Source: https://habr.com/ru/post/472350/


All Articles