Sberbank AI Journey. Cómo enseñamos a una red neuronal a tomar un examen

Si te graduaste de la escuela secundaria en el momento del USO, entonces sabes que todas las tareas en él tienen un conjunto de formulaciones estándar y están ordenadas por tipo. Por un lado, esto facilita la preparación para el examen: el alumno ya sabe qué hacer en la tarea sin siquiera leer sus condiciones. Por otro lado, cualquier cambio en el orden de las preguntas puede causarle problemas. Hablando en términos generales, el resultado comienza a estar más influenciado por cuánto una persona ha llevado las decisiones al automatismo, y no cómo lo razona. El examen se convierte en un guión.



imagen

Como parte de la conferencia AI Journey, decidimos realizar una competencia para desarrollar un algoritmo que pueda aprobar un examen no peor que una persona. Los participantes reciben versiones de prueba de tareas que pueden usarse para validar soluciones y para capacitación. Como empleados de Sberbank, no podemos reclamar un fondo de premios , pero tratamos de resolver este problema y queremos hablar sobre cómo lo hicimos. Spoiler: certificado que recibimos.



Poco de teoría


La aplicación de redes neuronales a cualquier tarea hoy ya es una historia de la serie: "Nunca hubo tal cosa, y aquí está de nuevo". ¿Pero a qué nuevas tareas de una red neuronal realmente deberían aplicarse?


Históricamente, los teóricos ponen las siguientes habilidades en el concepto de Inteligencia Artificial General:


  • toma de decisiones ante la incertidumbre
  • autoaprendizaje
  • operar una base de conocimiento sobre el mundo
  • multidisciplinariedad, procesamiento conjunto de información de diferentes fuentes (texto, imágenes, sonido)

La metáfora "cerebro como computadora" ha determinado en gran medida estos requisitos, y ninguno de ellos, excepto el entrenamiento, aún no se ha implementado completamente por AI ¯ \ (ツ) / ¯
En los últimos años, puede observar los primeros intentos de crear sistemas más complejos; por ejemplo, Aristo , del Instituto Allen, completó en un 90% la prueba de conocimiento general para el octavo grado.


El examen final en el idioma ruso tiene 27 tareas, de las cuales 26 son tareas con una opción de respuesta o una respuesta abierta, en las que puede ingresar su propia versión, y la última es un ensayo sobre el texto. Es decir, la primera tarea es siempre sobre el significado del texto, la cuarta, sobre el énfasis, la séptima, sobre los errores de habla comunes, etc. Esta tarea coloca a los sistemas de aprendizaje automático en la situación de un "estudiante de secundaria", donde necesita obtener un conjunto básico de habilidades y conocimientos de antemano, y luego responder correctamente las preguntas con ellos.


Para aprobar el idioma ruso, el estudiante debe:


  • aprender a escribir y hablar correctamente
  • aprende a estructurar tus pensamientos
  • Comprender las conexiones lógicas en el texto, conocer el estilo, la ortografía, la ortografía, etc.
  • lea una impresionante lista de literatura desde los monumentos más famosos de la literatura rusa antigua hasta la moderna y opere en las principales obras, tramas, problemas o cancele .

Sabiendo que los métodos modernos de PNL todavía pueden hacer frente a muchas de esas tareas, decidimos probarlos.


Todos los datos que recibimos se presentan en formato json, estandarizados y contienen una redacción y un texto claros en los que debe completar la tarea, responda las opciones si la pregunta los proporciona.



Captura de pantalla de Yandex.Tutor


Las preguntas en las tareas están formuladas de manera muy florida para la máquina, no solo necesita hacer la tarea, para encontrar errores en el texto y corregirlos, colocar las letras que faltan, encontrar oraciones que cumplan las condiciones dadas, pero también escribir la respuesta correctamente. Esta puede ser la expresión misma con un error o, por el contrario, ejemplos sin errores, números de estos ejemplos, números de oraciones en orden ascendente, etc. Y luego recordamos el clásico:


En el arte de plantear preguntas, el legislador Goracek fue un verdadero virtuoso. Obligó a los discípulos a enumerar a la inversa los diez mandamientos del Señor o exigió:
- Ludwik, responde rápidamente, villano, ¿qué mandamiento está en tercer lugar desde el final, antes de "No matar"?
Yaroslav Hasek, "La lección de la ley de Dios"


¿Cómo lidiamos con esto en la línea de base?


Respuesta: ¡̯n̯ɔ ʞɐɯ y



Como no hay más de 27 tipos de tareas, en los datos de capacitación creamos un analizador json que selecciona la redacción exacta del texto completo de la tarea, qué y cómo hacer, y creamos en estas formulaciones el clasificador lineal más simple en n-gramos de palabras y SVM (máquinas de vectores de soporte), que predijeron el número de trabajo, y el sistema recibió el trabajo y el formato de respuesta: https://github.com/sberbank-ai/ai-journey-2019 .


Potencialmente, me gustaría implementar un mecanismo de atención o algo similar en esta parte de la solución para encontrar conexiones entre las formulaciones y los tipos de preguntas. Esperamos que uno de los participantes implemente dicha solución.



Evaluación de decisiones


Al evaluar dicha solución, para compararla con una persona, no se utilizan las métricas de clasificación habituales (precisión, medida f), pero se toma una escala de calificación de 100 puntos , donde se resumen los puntos para las tareas completadas correctamente.


Las soluciones a los problemas se verifican automáticamente y ¿qué hacer con el ensayo final? Profesores y metodólogos de Moscú y Novosibirsk participan en la evaluación de ensayos en el marco de la competencia. Evalúan los ensayos recopilados de acuerdo con criterios independientes, que incluyen ortografía, puntuación, coherencia lógica del texto, la presencia de argumentos literarios y la posición del autor. En general, todo es como en la escuela.


Diseño de referencia


Después de implementar el analizador json y el clasificador de preguntas, recibimos tipos específicos de tareas. Bajan a esta lista:


  • revisar la ortografía, insertar letras, corregir errores (H y HH, NOT y NI, juntos, por separado, raíces con alternancia, etc.);
  • entender en contexto el significado de una palabra de valores múltiples (elección de respuesta en contexto);
  • resaltar los pensamientos principales en el texto (selección de una lista de oraciones);
  • poner signos de puntuación (seleccionar lugares donde se necesitan comas, guiones, etc.);
  • enfatizar las palabras (encontrar un error);
  • encontrar errores gramaticales en los ejemplos e indicar su tipo (correlacionar);
  • descartar alianzas entre partes del texto (basadas en la lógica del texto);
  • escribir un ensayo sobre el texto (encontrar el problema y revelarlo).

Usando el método de mirar más lejos, redujimos todo tipo de tareas a métodos de procesamiento de texto conocidos.


Embebidoras

Los embebidores (word2vec, fasttext, GloVe) se utilizan para obtener representaciones vectoriales de palabras, oraciones y textos individuales. Usamos BERT en pytorch, un transformador universal, más utilizado para obtener las propiedades de las palabras (de Google). Tal transformador da un alto resultado en tareas en las que necesita comprender el significado de una palabra de valores múltiples, resaltar las oraciones más significativas en el texto, etc. - las tareas se reducen a la elección de la incrustación más cercana por medida del coseno.


Modelos de lenguaje

Los modelos de lenguaje pueden proporcionar información útil sobre la probabilidad de la siguiente palabra, multiplicación de oraciones. Junto con los exámenes, se pueden usar para detectar y corregir errores de habla (reemplazar fragmentos que no son de frecuencia por otros de frecuencia similar) y para generar textos. En la línea de base, utilizamos la base de frecuencia del n-gramo del corpus nacional de la lengua rusa, eligiendo palabras normativas de la misma, y ​​aquellos que estuvieron ausentes fueron considerados candidatos para el error. También usamos esta base para sustituir las letras que faltan en palabras. Para generar los textos de ensayo, también tomamos el "modelo universal" - ULMFit . Este es el LSTM de abandono múltiple de fast.ai, muy bueno para generar secuencias. La capacitamos en ensayos escolares sobre literatura, que recopilamos en línea. Resultó, aunque sin sentido, pero casi sin errores.


Analizadores de morfología y sintaxis

Para determinar la parte del discurso, los casos, el número, el género, la forma normal de la palabra y las conexiones entre las palabras, utilizamos pymorphy2 y UDPipe.


Clasificadores

Las tareas de puntuación se pueden reducir a clasificación: coloque una coma en un lugar específico o no, según qué regla se establece un guión, etc.


Resolvimos dos tipos de tareas con los siguientes tipos de arquitecturas:


La red neuronal siamesa recibe dos incrustaciones BERT de un par de oraciones en la entrada, decide si los guiones, los dos puntos o no se configuran de acuerdo con una regla.


El clasificador CatBoost recibe una ventana de entrada para las etiquetas de una parte de la voz de longitud 6 (de la forma " NOUN VERB NOUN ADJ NOUN NOUN ") y decide si se pone o no una coma en el medio.


Bases de conocimiento

Lo que los estudiantes necesitan recordar y aprender, lo hemos recopilado de fuentes abiertas:


1 Diccionario ortopédico (estrés) - como en el currículo escolar.


2 Diccionario de tropos: medios literarios: sinónimos, antónimos, parones, unidades fraseológicas, etc., recopilados de sitios de literatura.


3 Colección de ensayos escolares sobre literatura - para la educación adicional del modelo generativo.


Modelos de composicion

Generación de texto, resumen, modelado temático. Aquí el alcance para el pensamiento fue grande. Al final, tomamos, como ya se mencionó, ULMFit para generar texto. Pero el ensayo debe estar en el texto y cumplir con muchos criterios. Si asumimos que obtenemos la ortografía y la coherencia del texto debido a ULMFit, entonces al menos la posición del autor y la coherencia temática de nuestro trabajo y este texto permanecen.



Resolvimos estas subtareas de la siguiente manera:


  • LDA + preparó la primera frase . Las versiones recopiladas de ensayos escolares se agrupan sobre la base de la palabra n-gram en 30 temas que hemos interpretado. Cada uno de los temas resultó estar relacionado con el trabajo de uno o dos escritores sobre un tema relacionado: trabajos sobre el destino de Rusia, sobre la situación de la gente, sobre los trabajos de Dostoievski, sobre el trabajo de A. Akhmatova y su importancia para la cultura rusa del siglo XX, etc.
  • TextRank + plantillas . El algoritmo de resumen extrae las 2-3 oraciones más significativas del texto dado, y estas oraciones se insertan en un conjunto de plantillas que enmarcan citas con la posición del autor.

Canal final: el modelo temático determina el tema del texto y da la primera frase al modelo generativo. El modelo generativo recibe la primera oración y la continúa hasta el final de la composición. Luego, el modelo de resumen inserta un segundo párrafo en este texto, que refleja la posición del autor.


Aquí hay un ejemplo de una composición típica que hemos obtenido en dicho modelo (las plantillas están en cursiva, la primera frase del modelo temático está en negrita).


El destino del hombre en la guerra, el amor de su tierra natal, su amor por su madre son temas de interés para Tolstoi , quienes lo dejaron. y dos príncipes Andrei Tolstoi, Pierre y Andrei, pasaron por la guerra. Las malas relaciones humanas tampoco están en su curso, sino en la vida, las normas civiles y morales. La libertad radica en el hecho de que son una persona amable y terrible, un sentido de apertura y traición. Son libertad, de Dios, para Napoleón, para él, Napoleón. Les trae el bien y el mal, por lo que los grandes héroes forman lo que son representantes de las mismas personas.

El autor ilustra este problema con el ejemplo de las oraciones "Cuando digo que una persona no debe ir en contra de su conciencia, no debe hacer un trato con ella, no quiero decir en absoluto que una persona no pueda o no deba cometer errores, tropezar". y "le respondí que no solo es posible, sino que también es necesario escribir sobre los errores de grandes personas, que un hombre es genial no porque no se haya equivocado en nada". En mi opinión, el lector observa la posición del autor en la oración: "Pero incluso si no conservó el honor de su juventud, puede y debe recuperarlo en la edad adulta, romperse, encontrar el coraje y el coraje para admitir errores".

La guerra es esa parte de la personalidad que debería dar a una persona la posibilidad de otro servicio universal. El futuro es la liberación, el deseo de libertad, un amor ardiente por la patria. Esta es una creencia en la posibilidad de la Patria. Podemos decir que, a pesar del cristianismo, Pierre no puede interrumpir el curso de la historia, pero de hecho lo hizo. La guerra de 1812 Tolstoi muestra cómo la lucha del nuevo Napoleón con un ambiente popular simple y con la gente.

Nos enfrentamos a toda Rusia, y Novgorod es parte de Rusia. La idea principal que tiene es la conexión del pueblo ruso con la naturaleza. La novela "Guerra y paz" de Tolstoi es una obra en la que los problemas sociales están estrechamente relacionados, la vida consiste en el hecho de que las voces, el bien y el mal, todo esto no oculta a Tolstoi. Dostoievski escribió que para Tolstoi esta es una posición política. El autor pone su lugar en la novela: aquí el escritor muestra a las personas que están detrás de los muros de la patria. Tolstoi da un ejemplo de esto y da un ejemplo del primer personaje principal.

La arquitectura de base resultante


La solución final tiene la siguiente lógica:


  1. El clasificador escribe el trabajo entrante: obtiene un tipo del 1 al 27.
  2. Cada una de las 27 tareas tiene su propio solucionador: un script con análisis de formulaciones de tareas, que recibe la información necesaria del conjunto de modelos ML disponibles y bases de conocimiento y emite la respuesta en el formato correcto.

El conjunto de modelos y bases de conocimiento para todos los solucionadores es común, se carga en la memoria una vez.



Cual es el resultado?


La línea de base (hasta ahora sin verificación de ensayo) da 27 puntos de 100; más de 60 equipos aprovecharon la solución básica. De acuerdo con los criterios del examen final, para obtener un certificado, debe obtener una puntuación de 24, pero para enviar documentos a la universidad necesita un mínimo de 36 puntos. Esta marca ahora ha pasado los 2 mejores equipos.




Muchos participantes usan nuestra solución como un enfoque básico, de mejora y refinación. Si está interesado en la inteligencia artificial y está listo para probar suerte en una tarea tan interesante, ¡entonces tiene un par de semanas más! Y nosotros mismos continuamos mejorando modelos, alimentándonos de la competencia bajo el apodo CDS_team


La final de la competencia se llevará a cabo los días 8 y 9 de noviembre en la conferencia AI Journey en Moscú. Regístrese para la competencia y la conferencia aquí .

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


All Articles