Hay una variedad de cosas, pero la más importante es que el aprendizaje automático ahora es una corriente principal y que prácticamente todos los mejores sistemas actuales lo utilizan de manera significativa.
Hace 10 años, la tecnología se basó básicamente en la coincidencia de patrones, que es muy tediosa y no escala. Además, los bots también están comenzando a tener modelos semánticos de fondo cada vez más complejos que hacen que las conversaciones de modelado sean menos manuales y menos profundas. Esta pieza aún no es convencional, pero supongo que lo será.
Por ejemplo, hace 10 años , la mayoría de los chatbots daban sentido a oraciones como esta:
“Hola, ¿qué tiempo hará en 2 semanas?”
- ¿Dónde puedo acercarme al dueño del negocio para poder ofrecerles mi servicio de diseño web?
- Cómo diseñar un polímero con las características deseadas.
- Cómo conseguir clientes de diseño gráfico
- Si tiene una guía de estilo completa, ¿necesita un diseñador visual?
- ¿Cuáles son algunos de los mejores menores para ir con una especialización en diseño industrial?
Podría reconocer Hola y detenerse allí y solo decir: “¡Hola! ¿Cómo estás?”
O podría reconocer algo como “el clima va a ser como” y luego preguntar “¡Mañana el clima será brillante y soleado!”
Cada una de estas piezas reconocidas habría sido codificada a través de un enfoque en gran parte manual, o en el mejor de los casos, semi-manual.
Como tal, requerían enormes cantidades de trabajo y tiempo para crear incluso bots relativamente simples.
Si no encontraban una coincidencia, no podían responder. Además, muchos chatbots comerciales tenían un motor ELIZA incorporado (que utilizaba la coincidencia de patrones y operaciones de texto para pretender ser un psicólogo) para manejar cualquier cosa no reconocida.
Verbots fue un muy buen ejemplo de esto sobre el que recuerdo haber leído en libros y jugar hace 10-11 años.
Hoy , estos procesos se han vuelto mucho más automatizados y dependen en gran medida de ML. Hoy es mucho más probable que un motor sea entrenado automáticamente.
Le das un montón de oraciones marcadas con cómo hacer cosas diferentes (como “¿Cómo está el clima?” Y “¿Cómo está la temperatura afuera?”).
Luego, el sistema puede dividir los datos en palabras y convertir la oración en un vector dentro de un espacio dimensional muy alto en función de las palabras que aparecen (a partir de un banco de datos general de palabras que crea a partir de las entradas).
En general, las oraciones del mismo tipo general aparecerán cerca una de la otra en este espacio de alta dimensión, por lo que a continuación puede elegir un clasificador Naive Bayes para clasificar estos grupos (o realmente cualquier cosa que desee, hay muchos enfoques populares).
Todo esto está esencialmente automatizado, excepto por el marcado del tipo de oración (bueno, técnicamente esto podría ser semiautomatizado con agrupamiento sin supervisión, pero la mayoría de las veces no me molestaría).
Luego, pasa nuevas oraciones de los usuarios y el sistema las clasifica. Puede realizar otras operaciones para extraer entidades (como las “2 semanas” en el ejemplo anterior) y hacer varias otras cosas con ellas.
Este es solo un enfoque general de algunos populares (conozco una compañía que descompone una oración usando algún tipo de coincidencia de patrones, pero aplicada de manera genérica y vinculada a un árbol de información semántica masiva).
Pero el punto es que estos enfoques son más abstractos y, como tales, le permiten escalar un sistema mucho más rápido y con una cobertura mucho más general que los sistemas más populares hace 10 años.
La mayor parte de la ML no es muy nueva (parte de ella es muy antigua), y es posible en gran medida debido al progreso de la potencia de la computadora, o más bien a la capacidad del sector tecnológico para aprovechar una mayor potencia de procesamiento a un ritmo lento.