Você sabe como realmente funciona um chatbot?

 


chatbot.jpg.png

Conheça processo para a construção de um chatbot e confira um overview das seis maneiras principais pelas quais os sistemas de IA de conversação podem ser construídos atualmente.

 

Um chatbot é um programa de computador que permite que humanos interajam com a tecnologia usando uma variedade de métodos de entrada, como voz, texto, gesto e toque. Cada vez mais utilizados para atendimento ao cliente em empresas de todos os tamanhos, agora passam a apresentar outras funções para melhorar a eficiência dos negócios e proporcionar experiências mais completas.

Conhecido por uma variedade de nomes diferentes, como bot de Inteligência Artificial de conversação, bot de chat de IA, assistente de IA, assistente virtual inteligente, assistente de cliente virtual, assistente digital, agente de conversa, agente virtual, interface de conversa e muito mais, os chatbots crescem em popularidade. Mas, assim como têm vários nomes diferentes, também têm vários graus de inteligência.

Um chatbot básico pode ser pouco mais do que uma solução de front-end para responder a perguntas frequentes padrão. Os chatbots construídos usando algumas das estruturas pré-prontas disponíveis atualmente podem oferecer recursos um pouco mais avançados, como o preenchimento de informações ou outra capacidade transacional simples, como receber pedidos de pizza. Porém, são apenas os chatbots de IA de conversação avançados que têm a inteligência e a capacidade para fornecer um tipo de experiência mais sofisticada que algumas empresas têm procurado implementar.

A seguir, vamos mostrar o processo para a construção de um chatbot e também trazer um overview das seis maneiras principais pelas quais os sistemas de IA de conversação podem ser construídos atualmente.

 

Construindo um chatbot

O engenheiro de Machine Learning Daniel Schruhl e a matemática e Head of Sofware Quality Lina Zubyte compartilham em artigo o processo de construção de um chatbot para reserva interna de férias em uma empresa, usando aprendizado de máquina com grande ênfase em design de experiência (XD) e análise de qualidade (QA). A intenção era disponibilizar uma ferramenta de autosserviço: reserva e cancelamento de férias e obtenção de mais informações sobre datas já reservadas.

Para definir a persona e o caráter do chatbot, foi feito um exercício de controle deslizante para diferentes traços de personalidade:


chatbot1.1.png

Por meio desse exercício, foi possível estabelecer algumas regras básicas para o chatbot:

  • Tinha que ser útil e proativo ao deixar claro que era um robô;

  • Tinha que usar um tom simples e frases concisas para facilitar a compreensão;

  • Tinha que possuir os dados para garantir privacidade e segurança;

  • E o chatbot precisava ser personalizável para que os criadores pudessem melhorar o desempenho com base no tempo;

Depois de avaliar as tecnologias disponíveis, optou-se pelo Rasa, uma estrutura de código aberto para a construção de chatbots.

Então, foi a hora de partir para os componentes. Basicamente, o um chatbot pode ser descrito por seis componentes:


chatbot2.2.png

O componente Chat Platform estabelece uma interface com a qual o usuário pode interagir. As principais partes do aprendizado de máquina são o Classificador de Intenção, o Reconhecimento de Entidade Nomeada (NER), o Modelo de Diálogo e o Gerador de Linguagem Natural. 

  • O Classificador de Intent pega a entrada da mensagem do usuário e a classifica em um intent (um rótulo que indica o que o usuário está dizendo). O Reconhecimento de Entidade Nomeada reconhece entidades (rótulos como local, hora ou quantidade) na entrada da mensagem do usuário e os rotula de acordo.

  • O modelo de diálogo decide a próxima ação que o chatbot executará, que depende do estado atual das conversas. O estado atual contém entidades e ações anteriores realizadas. 

  • A ação prevista é então executada pelo Action Resolver. Isso pode levar a chamadas de API externas, portanto, a lógica de negócios real é contida pelas ações dentro do resolvedor de ações.

  • O resultado dessa ação é então executado por meio de um Gerador de linguagem natural, que retorna o resultado em linguagem natural para o usuário por meio da plataforma de bate-papo novamente.

 

Após o desenvolvimento inicial, o chatbot precisou passar por uma série de testes e ajustes, como lidar com poucos dados de treinamento, criar um processo de melhoria contínua e lidar com as múltiplas facetas de interação com humanos, que acabavam pedindo solicitações fora do escopo inicial, como licença médica.

 

“No geral, aprendemos que a comunicação humana é complicada e, para fazer um chatbot de alta qualidade, primeiro temos que entender melhor os humanos. O maior facilitador para isso poderia ser o uso de conjuntos de dados de código aberto e ferramentas open source para modelos de aprendizado de máquina. Os modelos de aprendizado de máquina ajudam a disseminar conhecimento e integrar pesquisas na área de linguagem natural”, concluem os autores.

6 maneiras para construir uma IA de conversação

 

Mariya Yao, co-autora de “Applied AI: A Handbook For Business” conta que são seis as maneiras principais pelas quais os sistemas de IA de conversação são construídos hoje, incluindo abordagens tradicionais e técnicas inovadoras de última geração.

A maioria dos sistemas atuais usa métodos baseados em regras ou baseados em recuperação, enquanto métodos generativos, aprendizado fundamentado e aprendizado interativo são áreas ativas de pesquisa.

1. Baseado em regras

Os sistemas baseados em regras são treinados em uma hierarquia predefinida de regras que governam como transformar a entrada do usuário em diálogo ou ações de saída. As regras podem variar de simples a complexas e um sistema baseado em regras é relativamente simples de criar. No entanto, esses sistemas não são capazes de responder a padrões de entrada ou palavras-chave que não correspondam às regras existentes.


chatbot3.3.png

O MS-DOS do Windows e outras interfaces de terminal são, na verdade, exemplos de interface de conversação baseada em regras. Embora o usuário precise aprender uma série de comandos concisa e difícil de aprender, o sistema responde de maneira previsível se o usuário fornecer o comando correto.

2. Baseado em recuperação

Métodos baseados em recuperação impulsionam a maior parte dos sistemas de produção em uso hoje. Quando recebe a entrada do usuário, o sistema usa heurísticas para localizar a melhor resposta de seu banco de dados de respostas predefinidas. A seleção de diálogo é essencialmente um problema de previsão e o uso de heurísticas para identificar o modelo de resposta mais apropriado pode envolver algoritmos simples, como correspondência de palavras-chave, ou pode exigir um processamento mais complexo com aprendizado de máquina ou aprendizado profundo. Independentemente da heurística utilizada, esses sistemas apenas regurgitam respostas pré-definidas e não geram novos resultados.

Mitsuku, um dos chatbots de conversação de domínio aberto mais populares do mundo, contém mais de 300.000 padrões de resposta AIML codificados manualmente e uma base de conhecimento contendo mais de 3.000 objetos. Todas essas funcionalidades requerem conhecimento de domínio específico e muita engenharia manual. Isso também significa que suas bases de conhecimento podem ficar rapidamente desatualizadas e precisam ser atualizadas manualmente, limitando, por sua vez, aa capacidade de adaptação a novos domínios, linguagens ou casos de uso. Todos esses obstáculos também tornam os sistemas baseados em recuperação difíceis de personalizar ou escalar.


chatbot 4.4.png

3. Métodos Generativos

Em vez de se basear em respostas predefinidas, a IA de conversação que usa métodos generativos recebe uma grande quantidade de dados de treinamento de conversação para aprender como gerar um novo diálogo que se assemelhe a ele. Os desenvolvedores devem ser capazes de construir esse tipo de IA de conversação usando apenas dados de treinamento e aprendizado de máquina e isso não exigiria engenharia manual ou conhecimento de domínio. No caso ideal, esses recursos tornam o sistema muito mais escalável e adaptável no longo prazo.

Aprendizagem supervisionadaaprendizagem por reforço e aprendizagem adversária atualmente dominam a construção de sistemas generativos e os desenvolvedores podem combinar todas as três abordagens para fazer o treinamento em várias etapas para agentes de conversação.

Para Mariya Yao, a solução para os sistemas de produção contemporâneos é dividir o treinamento em duas etapas. Na fase de observação, o modelo conversacional usa a aprendizagem supervisionada no diálogo existente para imitar o comportamento humano. Então, durante a fase de tentativa e erro, o modelo usa aprendizagem por reforço para se adaptar a novas situações e entradas de diálogo que não existiam nos dados de treinamento.

4. Métodos de conjunto

A de conversação recente e de ponta, como os robôs do prêmio Alexa, que foram projetados para serem bots de conversação que podem falar sobre qualquer assunto (um problema super complexo), foram construídos com métodos de conjunto, que usam alguma combinação de abordagens de método baseadas em regras, em recuperação e generativas, conforme ditado pelo contexto.

Eles podem usar uma abordagem baseada em regras para cantar uma música, uma abordagem baseada em recuperação para falar sobre as notícias e uma abordagem generativa para lidar com outros casos de uso não especificados. Os sistemas mais avançados usam o aprendizado por reforço hierárquico, que usa uma política de diálogo de baixo nível para abordar a tarefa imediata, enquanto uma política de nível superior coordena a seleção do modelo ou outros objetivos estratégicos.


chatbot 5.png

5. Aprendizagem Fundamentada

O diálogo humano depende amplamente do contexto e do conhecimento externo, assim um chatbot com Aprendizagem Fundamentada não conseguiria lhe dizer algo novo sobre um assunto que não esteja em seu conjunto de dados de treinamento. Essa incapacidade de incorporar o conhecimento do mundo real também significa que os modelos generativos ainda são muito ruins para criar conversas úteis ou significativas.

A maior parte do conhecimento humano não reside em conjuntos de dados estruturados e continuam a existir como grandes quantidades de dados não estruturados, na forma de texto e imagens.

O problema se torna mais difícil se o raciocínio lógico estiver envolvido. Se você pedisse à sua IA de conversação para identificar o pedaço de sashimi próximo à folha verde em uma imagem, provavelmente não seria capaz de fazê-lo. O que é um processo bastante intuitivo para humanos é difícil para a IA, pois teria que:

  1. Identificar qual objeto é a folha verde;

  2. Saber o que é sashimi;

  3. entender o conceito de “próximo a”;

  4. Identificar a peça correta de sashimi se houver vários no prato;

  5. Combinar a textura e a cor daquele pedaço de sashimi com o peixe candidato correto.


chatbot6.jpg

A aprendizagem fundamentada ainda enfrenta muitos problemas e desafios, um dos quais é o desafio de acessar as bases de conhecimento no contexto do treinamento diferenciado de ponta a ponta para redes neurais. Para que a retropropagação seja usada para treinar uma rede inteira, os mecanismos que acessam as bases de conhecimento externas também devem ser totalmente diferenciáveis.

6. Aprendizagem Interativa

A linguagem é inerentemente interativa. Os humanos usam a linguagem para facilitar a cooperação quando precisam resolver problemas juntos, e as necessidades práticas influenciam como a linguagem continua a se desenvolver.

Para IA conversacional, o aprendizado interativo continua sendo uma área de estudo ativo, apesar de décadas de desenvolvimento contínuo.

SHRDLU de Terry Winograd (1968-1970) e a mais moderna versão SHRDLURN, de Percy Liang (2016) são dois exemplos de jogos de aprendizagem cooperativa simples. Em SHRDLURN, o operador humano conhece o objetivo desejado do jogo, mas não tem controle do diretor sobre as peças do jogo; o computador tem controle, mas não entende a linguagem. O objetivo do jogador humano é instruir iterativamente o computador para mapear a linguagem em conceitos até que ele possa executar as ações corretas para completar a tarefa.

Novamente, embora essa tarefa pareça intuitiva para os humanos, é difícil para os computadores porque eles não têm uma concepção anterior da linguagem. Ele não entende a diferença entre vermelho ou azul, ou se um objeto é uma pirâmide ou um cubo.


chatbot7.jpg

Acontece que a linguagem real que os jogadores humanos usavam para ensinar o computador acabou sendo menos importante do que sua capacidade de emitir comandos claros e consistentes. Com base em suas experiências com SHRDLURN, Liang observou: “Como representamos o conhecimento, o contexto, a memória? Talvez não devêssemos nos concentrar na criação de modelos melhores, mas em ambientes melhores para o aprendizado interativo”.

 

A maior parte dos sistemas de IA de conversação de produção que alimentam chatbots, assistentes digitais e experiências de suporte ao cliente são métodos baseados em recuperação, assim como a maioria das plataformas de terceiros que permitem desenvolver bots de conversação rapidamente. Se você quiser usar uma abordagem mais inovadora, como aprendizado baseado em dados ou interativo, provavelmente será limitado pelos recursos de pesquisa de sua equipe de engenharia de aprendizado de máquina, já que essas são direções de P&D menos comprovadas.