VKCup 2020 Etapa I. Un largo camino



Hoy consideraremos la competencia VkCup 2020 y la tarea de la primera etapa de clasificación. Los muchachos de Singer prometieron que en todas las etapas será difícil, pero interesante. ¿Y qué, de hecho, todavía se necesita?

Como saben, el deseo de excelencia, perfeccionar las propias habilidades con una nitidez similar al acero de Damasco, es inherente a cada especialista en cualquier campo. Ejemplos de esta masa. De las coloridas pinturas de artistas, cada una de las cuales pasó una parte de la vida (incluso diría que la mejor parte de ella), que podrían desperdiciarse sin rumbo en eventos sociales. Antes de los programas keygen: activadores de software, cada uno de los cuales contiene música de 8 bits, un algoritmo de activación y animación, cuidadosamente y cuidadosamente manipulados en un archivo, midiendo solo unas pocas decenas de kilobytes. Arte, lo que se pueda decir.

Y no, este no es otro artículo sobre autodesarrollo, honestamente, honestamente. Yo, de hecho, qué. En cada uno de nosotros hay un deseo de resolver problemas no triviales en nuestro campo. Además, el deseo de hacer esto es mejor que la mayoría. Es natural. Y, me parece, concursos de Machine Learning, esta es una gran oportunidad para esto. A veces es necesario dar libertad al espíritu de competencia.

Consideraremos VKCup 2020, el campeonato para el análisis de datos de VKontakte, es decir, sus tres etapas, con la final en San Petersburgo. Comencemos con el primer calificador. Bueno, hay tiempo, y Petersburgo, aunque es una capital cultural, no le gusta la tardanza y las imperfecciones. Así que nos dignamos a ocuparnos de los asuntos lo antes posible, señor, no se espera que el caballero, el taxista, sea localizado, y por lo tanto un largo camino.



Creo que muchos ya han encontrado tareas de PNL. En este caso, la tarea de la primera etapa de calificación, que se asignó la tarea de seleccionar a 256 personas que pasaron por la segunda, fue un análisis de los problemas del juego Clover, es decir, predecir cuáles de las preguntas fueron propuestas por editores profesionales y cuáles fueron realizadas por usuarios comunes.

El tamaño de los datos es de aproximadamente 40,000 filas, de las cuales 10,000 es un conjunto de datos de prueba por el cual se estimará la calidad del modelo, y los otros 30,000 son el conjunto de datos restante. La métrica de prueba es AUC ROC, el área bajo la curva de error.

Los datos se veían de la siguiente manera,



donde ID es el identificador de la pregunta, Answer es una variable binaria cuyo valor debe predecirse (1 - la pregunta fue propuesta por el editor, cero 0 - por el usuario). Pregunta: la pregunta misma.

Parece que la tarea es bastante simple, pero todo está lejos de ser el caso. Los enfoques estándar, como Word2Vec, BERT y otros modelos de PNL nuevos y novedosos, producen una calidad relativamente baja, aproximadamente 0.7, que ni siquiera llegaría a los primeros cien. Por lo tanto, recordando que el diablo, como la gente de LEGO, vive en los detalles, considera el conjunto de datos con más detalle y desarrolla una solución que será relativamente más eficiente.

Para comenzar, durante el EDA inicial, puede notar que los usuarios a menudo usan caracteres atípicos, escriben palabras en mayúsculas, a veces no con una letra mayúscula al comienzo de una oración, se olvidan de los signos de interrogación, usan citas extrañas. También copian las preguntas de los editores, haciéndolas pasar como propias. Y otras características interesantes.

Comencemos con la línea de base. Usando la medida TF-IDF (Frecuencia de término - Frecuencia de documento invertida), obtenemos la matriz dispersa, que luego alimentamos al aumento de gradiente.
Solo una definición, TF-IDF es una medida estadística utilizada para evaluar la importancia de una palabra en el contexto de un documento que forma parte de una colección de documentos o corpus. El peso de una palabra es proporcional a la frecuencia de uso de la palabra en el documento e inversamente proporcional a la frecuencia de uso de la palabra en todos los documentos de la colección.

Para reducir el reentrenamiento del modelo, reduciremos el número máximo de tokens y compondremos la matriz de parámetros inicial, que consistirá en una combinación de dos más pequeños: una parte es la matriz TF-IDF, donde las secuencias de símbolos separadas por espacios actúan como tokens, de hecho, estas son palabras, y la otra la parte es una matriz donde las secuencias de símbolos de cierta longitud actúan como tokens.



Se ve bastante bien, sin embargo, puede y debe ser mejor. Esta es la primera parte de la tubería. En este caso, "P" es una abreviatura de "Público", este es un indicador que muestra cuánto anotó el modelo en la parte abierta de la muestra de prueba. Y "F" es una abreviatura de "Final", un resultado en la parte oculta de los datos publicados después del final de la competencia.

A continuación, agregaremos algunos datos al conjunto de datos, que generalmente no está prohibido por las reglas. Y lo que no está prohibido se permite en consecuencia. En Internet puede encontrar una serie de conjuntos de datos con preguntas de prueba. Si los descargamos y los marcamos como preguntas de los usuarios.



Esta idea, esta es una espada de doble filo y cuestiones de discordia. Si responde preguntas de algún libro especial, el modelo tendrá una disonancia. Por un lado, el estilo de escritura está cerca del editorial, por otro lado, los usuarios astutos los han enviado spam desde hace mucho tiempo con mensajes privados del juego público "Clover". Por lo tanto, no los usaremos; protegeremos al modelo del trastorno bipolar de la modelación.

Como dije antes, los usuarios tienen cierta negligencia al formatear sus preguntas, por lo que las extraeremos con expresiones regulares regulares. Escribiremos expresiones regulares para verificar la presencia de un signo de interrogación, identificar diferentes tipos de comillas, buscar letras mayúsculas ,, ,. Y volveremos a capacitar al modelo en estos signos. Además, las predicciones anteriores serán una señal adicional. Esto ayudará a corregir las predicciones del modelo anterior.

Por lo tanto, se implementó un modelo de dos niveles donde los resultados del aumento en la matriz dispersa TF-IDF se ajustaron aumentando los atributos tabulares obtenidos usando expresiones regulares.



Esto fue suficiente para el quinto lugar en una tabla de clasificación privada de 318. Algo podría corregirse y optimizarse, pero el tiempo se estaba acabando. De una forma u otra, esto es suficiente para ir más allá. Y el perfeccionismo excesivo conduce al nerviosismo. En cualquier caso, hasta luego, me encanta ML, mantén la calma y mantente al día. Además, será más interesante ...

→ El código en el repositorio de Github

All Articles