¿Es mejor utilizar algoritmos basados ​​en reglas o de aprendizaje automático para la clasificación en un dominio de respuesta a preguntas cerrado?

Dado que está considerando un clasificador basado en reglas (¿ tal vez para la determinación de la intención de la pregunta ?), ¿Parece que hay pocos patrones de plantilla en los datos que se pueden capturar en expresiones o plantillas regulares codificadas a mano?

Si ese es el caso, ¿no podemos intentar escribir un clasificador basado en reglas para generar primero datos etiquetados y luego usarlo para entrenar un modelo de secuencia (por ejemplo, LSTM. Keras, por ejemplo, tiene un LSTM bidireccional en su conjunto de ejemplo que podemos probar). La generación de datos etiquetados puede ser una mejor opción que la creación manual de datos etiquetados: podríamos tener más datos de capacitación.

Esto suena como una pésima solución porque sugiere hacer ambas cosas, pero puede tener los siguientes beneficios

  • Incluso si los patrones que capturamos mediante el uso de reglas no son exhaustivos, es probable que el modelo de aprendizaje automático sea tan bueno, si no mejor, que el sistema basado en reglas por las siguientes razones
    • Incluso si los datos de entrenamiento no son muchos, suponiendo que los patrones para clasificar sean suficientes, el modelo se puede hacer para memorizar / sobreajustar. Esta sigue siendo una mejor opción que la codificación manual para todos los patrones a lo largo del tiempo.
    • Suponiendo que surja un nuevo patrón invisible, es probable que el sistema basado en reglas se rompa de todos modos. Suponiendo que el modelo también se rompa (puede que no, puede generalizarse), solo necesitamos generar más casos de ese tipo y entrenar al modelo para que se ajuste nuevamente.
    • En el caso basado en reglas, agregar un nuevo patrón puede romper potencialmente los patrones existentes: el modelo de máquina no tiene este problema porque puede memorizar (incluso si no se generaliza)
    • Con el tiempo, a medida que aumentan los datos de capacitación, el modelo puede comenzar a generalizarse. Un sistema basado en reglas, en contraste, solo es probable que se rompa con más casos con el tiempo.

Aquí hay un resumen de sugerencias para probar en este experimento.

  • Escribamos un clasificador basado en reglas para generar datos etiquetados.
  • Luego inspeccionamos que es correcto.
  • Nos dividimos en validación de entrenamiento y datos de prueba (digamos 60/20/20)
  • Asegurémonos de tener la misma cantidad de casos de capacitación para aprender en cada clase.
  • Una cosa que podría ayudar es crear datos de entrenamiento con entidades nombradas reemplazadas por token . Esto supone que la clasificación no depende de la estructura de la oración y no se utilizan entidades nombradas específicas.
  • La precisión del modelo puede mejorar si representamos palabras como incrustaciones. Para esto, solo genere incrustaciones de palabras usando fasttext (mejor que word2vec para casos fuera del vocabulario) y represente las palabras como incrustaciones como entrada para modelar
  • Keras tiene un LSTM bidireccional que podemos usar para este experimento. Es posible que tengamos que modificarlo un poco para agregar incrustaciones como entrada de palabras, y también agregar código para la persistencia del modelo entrenado usando h5py. Esto es muy útil para cargar un modelo existente que generamos.

Depende del tamaño y la variedad de sus datos y preguntas específicas.

Puntos más grandes y variados hacia el aprendizaje automático; más pequeño y más uniforme podría ser más efectivo para usar basado en reglas.

Tampoco tiene que ser uno de los dos: puede hacer aprendizaje automático para manejar la mayor parte de las preguntas y luego diseñar reglas sobre dónde falla el aprendizaje automático.

More Interesting

Codificación dispersa: ¿cuál es la implementación paso a paso para la codificación dispersa? ¿Qué representa la norma l0 / norma l1 / regularización?

¿Cuáles son las relaciones entre diversidad y precisión en los enfoques de conjunto?

¿Cuál es la diferencia entre aplicar la descomposición del tren Tensor y agregar más capas a la red donde cada una tiene un tamaño reducido?

¿Cómo se puede aplicar el aprendizaje profundo a los sistemas de recomendación?

Si IBM introduce el aprendizaje automático en z / OS, ¿qué significará eso para un desarrollador de mainframe?

¿Qué es un modelo de mezcla de Bernoulli?

Cómo combinar un clasificador basado en características con un modelo de serie temporal como ARIMA

Cómo planear mover mi carrera hacia el aprendizaje automático en India

¿Cuál es el libro recomendado sobre 'plasticidad neuronal' para informáticos, programadores o profesionales de aprendizaje profundo?

¿Dónde puedo aprender a hacer predicciones básicas con RapidMiner?

¿Cómo usa la NASA el aprendizaje automático?

¿Los LSTM tienen significativamente más parámetros que los RNN estándar?

¿Cuáles son algunos trabajos de investigación recientes sobre detección de anomalías?

¿Cuáles son algunas aplicaciones del aprendizaje automático y la inteligencia artificial para los datos de detección remota basados ​​en el espacio y los SIG?

¿En qué tipos de búsqueda falla más claramente Google? ¿Y qué vías y sitios abordan estos problemas mejor o más prometedora?