NLP SBert (Bert) para comparación de respuestas STS

Aug 20 2020

He estado investigando una buena manera de automatizar la evaluación de respuestas cortas. Esencialmente, un maestro da una prueba con algunas preguntas como:

Pregunta: ¿Por qué Colón navegó hacia el oeste para encontrar Asia?

Respuesta: para poder encontrar una nueva ruta comercial a Asia a través del océano. Tres objetivos de los españoles en las Américas eran el deseo de obtener grandes cantidades de riqueza, establecer reclamos sobre la mayor cantidad de tierra posible y colonizar la mayor cantidad posible.

Con eso tenemos la respuesta correcta y nos gustaría comparar eso con la respuesta de los estudiantes y producir un puntaje basado en la similitud. Sé que este no es un reemplazo confiable para la calificación humana, pero por el bien del ejemplo.

Me he encontrado con este documento y la base de código:https://arxiv.org/pdf/1908.10084.pdf

https://github.com/UKPLab/sentence-transformers

Parece el método ideal para resolver este problema, pero la mayoría de los ejemplos se basan en la puntuación/clasificación de la búsqueda semántica. Me pregunto si estoy en el camino correcto, dado que solo estoy comparando dos respuestas y no un grupo. ¿Alguien con más experiencia, posiblemente puede proporcionar alguna orientación?

Respuestas

3 20roso Aug 20 2020 at 23:14

He usado Siamese Bert y puedo decir que hace un buen trabajo. Sin embargo, el problema es que los datos que se han ajustado sobre Bert no necesariamente representan completamente la misma distancia semántica que con las respuestas entre el verdadero y el del estudiante. Por ejemplo, si hay una pregunta sobre ingeniería, donde un pequeño cambio de palabra puede significar algo totalmente diferente; SBert todavía los encontraría bastante similares porque están relacionados con el tema. A menos que esté bien afinado.

Además, no podrá interpretar la similitud. Si un estudiante le pregunta por qué la respuesta de mi compañero es mejor, no podrá explicárselo.

Mi opinión: creo que podrías usar esta herramienta como una forma de reducir las respuestas totalmente incoherentes, pero en algún momento será necesaria la evaluación humana. Y tal vez use métricas interpretables como ROUGE o BLEU. También sé que este tema está bastante de moda en PNL, no me sorprendería si hay o habrá una buena herramienta disponible para eso, pero no conozco ninguna actualmente.

1 20roso Aug 21 2020 at 02:30

@b_the_builder ¡Buen hallazgo! El primero me parece un avance de la distancia de Word Mower al usar las similitudes entre cada palabra. Creo que todavía puede faltar la adaptación del dominio. Mientras que el segundo enlace que proporcionó hace el entrenamiento previo por ese motivo específico. Considerándolo todo, cualquiera que sea el método que utilice, creo que necesitará elegir algunas oraciones representativas de concordancia difícil y ver cómo funcionan en ellas, después de un entrenamiento previo en su corpus. Si quieres estar seguro. Para inspirarte, puedes consultar aquí las tareas de similitud semántica entre oraciones.

Valentas Aug 20 2020 at 20:27

Intenté GPT-2 con su mensaje, pero no tuve mucho éxito:

RahulRamachandran Feb 08 2021 at 16:32

También creo que no considerará las negaciones también. Primero, desea fijar un umbral para respuestas correctas o parcialmente correctas e incorrectas. Pero es una tarea difícil porque no considera bien los enunciados de negación. por ejemplo: si da dos declaraciones como Tony Stark es Iron Man y Tony Stark no es Iron Man, que es una declaración puramente contradictoria, la similitud del coseno dirá que estas declaraciones son algo similares (incluso con STS robera grande, el modelo de referencia) que muestra esto no se puede usar para calificar las respuestas. No sé si hay otras formas de abordar esto, pero esto es de mi experiencia.