Chatbots AI: realidade vs hype

Naveen Balani em Tornando-se Humano: Artificial Intelligence Magazine Seguir Jul 4 · 20 min ler

Bem-vindo ao mundo dos chatbots inteligentes: seus companheiros e agentes de conversação que devem tornar sua vida mais inteligente. Um importante trabalho de pesquisa chegou a dizer que, até 2020, a pessoa média teria mais conversas com bots do que com seu cônjuge. Então, esteja pronto para abraçar essa nova vida daqui a um ano.

OK espere um momento. Você já tentou dizer Siri ou o Google, pelo menos, eles são consistentes em que eles deram a mesma resposta “encontrar restaurantes que não servem pizza?” – sugerindo restaurantes que servem pizza.

O primeiro robô humanóide cidadão, Sofia, está indo a todos os eventos de mídia, conduzindo entrevistas usando conversas semelhantes às humanas. Como ela se compara a esses concorrentes? Bem, a verdade está longe da realidade. Os chatbots fornecem uma ilusão de compreensão da conversação, mas quando você começa a fazer perguntas inteligentes, começa a perceber que eles só podem responder a um conjunto fixo de consultas.

Bem, até agora, você deve ser capaz de bloquear o ruído da realidade.

Trending AI Articles:

1. Notas do Livro de Aprendizagem Profunda, Capítulo 1

2. Notas do Livro de Aprendizagem Profunda, Capítulo 2

3. Máquinas Demonstram Autoconsciência

4. Workshop de Música Visual e Aprendizagem de Máquina para Crianças

Você deve investir em chatbots com todas essas limitações? Toda tecnologia tem suas falhas, mas você precisa estar ciente do que você pode construir agora, o que evitar e como contornar as limitações.

Tenho visto muitas empresas tentando construir chatbots sofisticados usando produtos dos principais fornecedores de chatbot e ofertas de nuvem, gastando milhões de dólares e atingindo obstáculos. Se você começar este empreendimento com base no que está sendo projetado e começar a construí-lo, logo perceberá essas restrições de uma forma ou de outra. No entanto, a maioria dos fornecedores afirma que é fácil construir um chatbot, mas, na realidade, todas essas técnicas são insuficientes quando se trata de criar um verdadeiro agente de conversação.

Com as atuais implementações dos chatbots, provavelmente estamos na primeira geração de chatbots da IA , que são roteirizados para dar respostas a perguntas pontuais. O que quero dizer com scripts é que eles são treinados para entender o vocabulário geral, entidades, metáforas, sinônimos etc. O chatbot usa um conjunto fixo de fluxos para entender o contexto. Para casos de uso específicos de domínio, é necessário treinamento adicional e você precisa treinar na terminologia de domínio específica e na relação entre as palavras. Por exemplo, se você está criando um chatbot para o consultor de compras, o termo “vestido preto e branco” significa “preto e branco” como cor e vestido como categoria. Você pode esperar que a cor “preto e branco” seja bastante genérica e deva ser facilmente identificada pelo sistema de inteligência artificial, mas não é realmente esse o caso, pelo qual eu passarei no decorrer do artigo.

A intenção do artigo é ajudar os leitores a tomar decisões informadas sobre como projetar chatbots e soluções alternativas com as implementações de chatbot existentes.

O que são chatbots?

Um chatbot é um programa de software que realiza uma conversa com um humano. A conversa pode ser através de métodos textuais, voz ou até mesmo pelo reconhecimento de expressões humanas.

As interações do Chatbot podem variar desde respostas simples a perguntas como "Qual é a temperatura externa" até casos de uso sofisticados que exigem uma série de diálogos para chegar a um resultado, como usar um chatbot para reservar viagens de férias ou fornecer aconselhamento financeiro.

Quais são as tecnologias usadas para construir chatbots?

Chatbots não são um novo conceito. As tecnologias anteriores usavam um conjunto fixo de informações dos usuários para gerar conversas ou digitalizavam a mensagem de entrada para encontrar palavras-chave e informações de pesquisa / respostas de um banco de dados. Estes eram principalmente baseados em regras e em palavras-chave, sem que o bot entendesse o contexto e o significado da mensagem de entrada. Com base na entrada, uma resposta programada predefinida seria fornecida.

Com o advento da IA , os Chatbots usam tecnologias como o processamento da Linguagem Natural para entender a linguagem e a intenção da mensagem de entrada e tomar ações corretivas. Como o sistema tenta entender a linguagem enquanto os usuários fazem as mesmas perguntas de várias maneiras, o sistema é capaz de entender a intenção geral. Depois que a intenção é identificada, você pode extrair o tópico interessado da entrada.

Por exemplo, "Encontre o voo mais barato dos EUA para o Reino Unido" é semelhante a "Encontre-me a passagem aérea mais barata dos EUA para o Reino Unido".

A intenção é o voo mais barato ou mais baixo, enquanto a localização é dos EUA para o Reino Unido, com uma ação de voos de busca.

Um pacote de código aberto de AI ou um serviço de nuvem AI NLP pode ser usado para desenvolver chatbots. Vamos nos referir a isso como uma implementação do chatbot para futuras referências. Eu gostaria de falar sobre a implementação do chatbot em detalhes durante o curso deste artigo.

O que devo ter em mente para o desenvolvimento de um AI Chatbot?

Os chatbots funcionam bem quando o domínio é bem compreendido pelo sistema da IA.

Como o AI chatbot confia na PNL para entender a semântica da mensagem de entrada, a menos que o analisador de PNL seja treinado no domínio, a precisão de reconhecer a intenção e os tópicos de interesse seria um critério muito baixo ou não aceitável.

Tomemos um exemplo de um chatbot de compras que aconselha os usuários sobre o que comprar com base nas últimas tendências da moda.

Considere 3 consultas abaixo de um usuário.

Consulta 1 – "Mostre-me tendências em preto e branco E vestidos para uma festa de Natal em tamanho médio."

Consulta 2 – "Mostre-me saltos de plataforma brancos de 3 polegadas".

Consulta 3 – "Encontre um vestido floral preto e branco abaixo de US $ 2.000".

Aqui, o chatbot precisa entender o seguinte:

  • A linguagem de compras.
  • A intenção como uma consulta de compras
  • O domínio como uma consulta de compras de vestuário e sapatos. (ou seja, pode haver vários domínios – mercearia, eletrônicos, livros, etc.)
  • Categorias de compras de vestuário e terminologia:
  • Categoria – vestidos, sandálias, etc.
  • Variantes – tamanhos (médio / grande, etc.), cor (várias cores e combinações como preto e branco), tamanho do salto (3 polegadas), etc.
  • Preços e intervalos – $ 2000 – $ 3000, etc.
  • Marcas gostam – E, Nike, etc.

Fora da caixa, qualquer implementação do chatbot não entenderia o domínio. Você precisa treinar o chatbot no domínio personalizado para reconhecer o contexto e o idioma.

Por exemplo, os analisadores de PNL prontos para uso não reconheceriam “AND” como uma marca. Vamos ver como alguns dos principais serviços do Cloud AI NLP reconhecem a frase: "Encontre um vestido floral preto e branco abaixo de US $ 2.000".

Aqui está um instantâneo da implementação do Watson NLP (out-of-the-box).

Figura: Palavras-chave da Watson PNL

Figura: Conceitos do Watson NLP

Figura: Parte do discurso da PNL Watson

Como você pode ver, o Watson NLP reconhece “vestido floral branco” como palavras-chave e “preto” como conceito. Idealmente, deveria ter reconhecido o conceito “preto e branco”, já que estamos procurando por uma combinação dessas cores.

O vestido também pode ser um conceito, pois é bastante genérico. O floral pode ser uma palavra-chave que tem uma dependência no vestido. Identificar todos os fatos da maneira correta é importante, pois, baseado nos fatos, você converteria isso em uma consulta de pesquisa para obter os detalhes necessários do armazenamento de dados (ou dos respectivos índices de pesquisa).

Por exemplo, o acima deve resultar em:

Cor = "preto e branco"

Categoria = "vestido"

Sexo = "Feminino"

Preço <2000

Padrão = “floral” ou palavra-chave dentro da categoria = “floral”

(onde cor, categoria, gênero, preço, padrão são todas as colunas ou índices que você está pesquisando)

O analisador de PNL do Watson não reconhece “AND” como uma marca, mas “AND” como uma conjunção (“CCONJ”), o que é esperado, já que não é treinado nesta entrada.

Vamos verificar como o Google NP classifica essa frase. Aqui está um instantâneo do Google NLP.

Figura: classificação de entidade do Google NLP

Figura: Parte do discurso do PNL do Google

Como você pode ver na figura acima, o PNL do Google identifica a entidade como “vestido”, mas não identifica as cores “preto e branco”. Com relação à parte da marcação de velocidade, é como se a PNL Watson reconhecesse “AND” como uma conjunção (“CONJ”) e não como uma marca.

O acima é verdade para qualquer uma das implementações de PNL disponíveis (que está disponível hoje), onde ele não consegue entender o contexto correto da sentença. O caso de uso foi bem simples. Mesmo se nós treinarmos a implementação da PNL nesses exemplos, ela será insuficiente, já que você precisa plugar regras de PNL específicas para tais condições para obter os resultados desejados. À medida que a complexidade e o contexto que precisam ser inferidos aumentam, o treinamento também não ajudaria, já que você nunca pode apresentar um modelo generalizado para essas condições. Essa é a maior limitação dos chatbots se dependermos apenas da atual geração de implementação de PNL.

Com base na minha experiência na construção de um sofisticado consultor personalizado de compras, nenhuma das implementações AI PNI prontas para uso atende aos requisitos. Um cenário simples disso é apresentado nestas três frases de conjunto – “vestido preto e branco”, “AND black dress” (vestido preto) e “blue jeans e camisa branca”. Em todos os 3 exemplos, o uso da palavra “and” tem um significado diferente. No primeiro caso, representa uma cor combinada “preto e branco”, na segunda instância, “AND” representa uma marca e, na terceira instância, duas consultas são unidas por uma conjunção (ou seja, e). Mesmo com o treinamento necessário, um modelo generalizador não era possível com nenhuma das soluções disponíveis. Estes são apenas alguns dos muitos exemplos que estou destacando. Imagine a complexidade ao lidar com a literatura médica. No nosso caso, acabamos construindo nossa implementação de PNL específica de domínio, que funcionou para todos esses cenários.

Em geral, ao projetar soluções do chatbot, comece com um domínio fechado e que tipo de perguntas o chatbot precisa responder. Não comece a criar um chatbot de uso geral desde o início, pois seria difícil obter a precisão necessária. Em segundo lugar, se você estiver usando um fornecedor de nuvem ou uma implementação de terceiros, certifique-se de que seus casos de uso possam ser simplesmente resolvidos pela implementação padrão ou você precisará criar componentes para contorná-los.

Quais são os Casos de Uso Típicos para Construir um Chatbot?

Na era digital atual, os clientes buscam informações instantâneas e resoluções rápidas para todas as suas dúvidas.

Os chatbots fornecem uma maneira eficiente de se manter conectado diretamente com os clientes finais e fornecer informações na ponta dos dedos, seja por meio de um aplicativo de bate-papo com mensagens ou por meio de um serviço ativado por voz, como o Alexa ou o Google Home.

Alguns dos casos de uso típicos estão listados abaixo:

  • Capacidade de conhecer seus clientes e interagir diretamente com eles em vários canais, como marcas de varejo que se conectam diretamente a seus clientes finais.
  • Melhore o envolvimento do cliente, a interação e forneça uma resolução rápida.
  • Dimensionamento das operações de atendimento ao cliente, fornecendo informações relevantes 24 horas por dia, sete dias por semana, na ponta dos dedos do cliente.
  • Entenda melhor os clientes e suas preferências para fornecer um serviço altamente personalizado, como um assistente pessoal.
  • Proporciona a capacidade de interagir com dispositivos conectados, como Smart Homes, de maneira natural e intuitiva.
  • Fornecer orientação especializada, como um assistente financeiro chatbot fornecendo sugestões de investimento.

Quais são as etapas de alto nível para criar um AI Chatbot?

A seguir estão as etapas de alto nível para criar um chatbot da IA:

  • Defina o caso de uso de negócios e a meta final para criar o chatbot.
  • Definir interfaces de conversação:
  • Definir que tipo de perguntas precisam ser respondidas
  • Definir o fluxo de conversa / diálogo sobre como várias interações aconteceriam com o usuário. Por exemplo, reservar um voo é um fluxo de diálogo, reservar um hotel é outro fluxo de diálogo, etc. Dentro de um fluxo de diálogo, qual seria o fluxo de interação com o usuário?
  • Defina como capturar o feedback do usuário em relação às respostas fornecidas. O feedback pode ser explícito, como o usuário avalia a resposta ou implícito em quanto tempo um usuário passa olhando para a resposta e atividade de acompanhamento depois disso.
  • Exploração de pergunta / resposta
  • Identifique fontes existentes (se houver) para perguntas, como perguntas freqüentes sobre o site, registros do call center, etc.
  • Crie uma representação de perguntas que seriam feitas.
  • Crie variações de perguntas para treinar o chatbot para entender o idioma e ser capaz de generalizar bem.
  • Identifique a fonte de respostas – se seria uma resposta programada ou proveniente de fontes e documentos internos de conhecimento (como manuais técnicos disponíveis para solução de problemas relacionados a consultas de dispositivos)
  • Pegue uma abordagem tecnológica

Nesta etapa, você decidirá como implementar o chatbot. Existem duas abordagens: construir sua própria implementação de chatbot usando estruturas disponíveis (como o TensorFlow, implementações de NLP como NLPTK) e componentes personalizados ou usando um serviço de plataforma existente como o serviço NLP, Amazon Lex ou Azure Bot do Google.

Em ambas as abordagens, você precisaria treinar a implementação do chatbot para reconhecer a intenção da questão, o domínio e a linguagem. Os serviços de plataforma existentes simplificaram esse processo, fornecendo utilitários necessários que facilitam a criação de chatbots. Para mais detalhes, por favor, consulte "Como você cria um chatbot usando plataformas chatbot?"

  • Pegue um canal de entrega

Nesta etapa, você decidirá como expor o chatbot aos usuários finais por meio do canal necessário. O canal pode ser dispositivos da Web, móveis ou habilitados para voz.

Sua implementação de bate-papo normalmente exporia uma API (para fazer perguntas e obter respostas), que pode ser chamada pela implementação de um canal. Você também pode liberar sua implementação do chatbot sobre serviços de terceiros, como o Facebook Messenger ou serviços ativados por voz, como o Amazon Alexa. Para mais detalhes, por favor, consulte "Como você integra chatbots com serviços de terceiros?"

  • Lançamento, monitoramento e feedback

Depois que o chatbot for lançado, você normalmente armazenará todas as interações do usuário para ajudá-lo a analisar melhor o comportamento do usuário e suas preferências. Os dados de usuário e comportamento, por sua vez, seriam usados para fornecer um serviço mais personalizado. Como você usaria essa nova informação do usuário depende do seu caso de uso. Por exemplo, se um chatbot de viagem estiver recomendando uma nova viagem de férias, ele poderá sugerir opções com base na sua última interação de viagem. Você precisa criar um sistema de recomendação que analise o histórico da interação do usuário no passado e sugerir opções. Para detalhes sobre como construir sistemas de recomendação, por favor consulte o Capítulo de Recomendações.

Outro ponto importante é capturar o feedback do usuário em intervalos regulares para entender se um chatbot está fornecendo as informações corretas. O feedback capturado será usado para melhorar a implementação do chatbot, o que pode levar ao treinamento da implementação do chatbot com novas informações. Por exemplo, seu chatbot pode não ser treinado em reconhecer certas entidades e conceitos e, como resultado, as respostas não seriam adequadas. Você precisa planejar a criação e a liberação de modelos incrementais com base no feedback.

Como você integra Chatbots com serviços de terceiros?

Como parte de sua implementação da tecnologia chatbot, sua implementação de bate-papo normalmente exporia uma API (para fazer perguntas e obter respostas), que pode ser chamada pela implementação de um canal.

O canal pode ser dispositivos da Web, móveis ou habilitados para voz. Se você já tiver um aplicativo para dispositivos móveis existente, poderá incorporá-lo como parte do aplicativo para dispositivos móveis.

Você também pode liberar sua implementação do chatbot por meio de serviços de bate-papo de terceiros, como o aplicativo de mensagens do Facebook ou por meio de um serviço ativado por voz, como o Amazon Alexa, como uma habilidade.

Todos esses serviços habilitados para bate-papo fornecem uma estrutura para o plug-in de sua própria implementação. A estrutura fornece ganchos ou interceptores de código para interceptar a mensagem de bate-papo. Você precisa estender sua estrutura e conectar sua própria implementação. Por exemplo, se um usuário fizer uma pergunta no mensageiro do Facebook, a pergunta será entregue em sua implementação de bate-papo por meio de ganchos predefinidos. Você processaria a mensagem e retornaria a resposta, que seria enviada de volta ao usuário.

Da mesma forma, se você precisa disponibilizar seu chatbot sobre o Alexa, você precisa envolvê-lo como um Alexa Skill usando a interface do Alexa Skills Kit. Uma vez que sua habilidade esteja habilitada no Alexa pelo usuário, qualquer mensagem de voz será interceptada por sua habilidade e você poderá fornecer a implementação e as respostas necessárias de acordo com o seu chatbot.

Para mais detalhes, por favor, consulte "Como você cria um chatbot usando plataformas chatbot?"

Como você constrói um Chatbot usando plataformas Chatbot?

Uma plataforma chatbot fornece um conjunto de serviços para projetar, desenvolver e implantar seu chatbot. Eles fornecem uma estrutura e um conjunto orientado de utilitários para criar um chatbot.

Provedores de nuvem como AWS, Azure, IBM e Google Cloud fornecem um conjunto de serviços que podem ajudar você a gerar conversas, entender a linguagem de conversação usando técnicas de PNL, criar ganchos para tomar as medidas necessárias e fornecer a solução por meio de APIs.

A abordagem fundamental adotada por cada um desses provedores é a mesma. Eles permitem que os desenvolvedores:

  • Crie fluxos de conversação usando alguma interface visual ou ferramentas fornecidas pelo provedor de nuvem.
  • Através destes fluxos de conversas, você pode:
  • Forneça um conjunto de perguntas e várias maneiras de fazer a mesma pergunta.
  • Defina qual é a intenção da pergunta. Por exemplo, para a pergunta "Encontre o voo mais barato dos EUA para o Reino Unido", a intenção é encontrar a passagem aérea mais baixa.
  • Encontre quais entidades de interesse extrair da intenção. O provedor do chatbot precisa estar ciente dessas entidades. No exemplo acima, as entidades são uma lista de países: Reino Unido, EUA etc. Essas entidades podem ser genéricas, reconhecidas automaticamente pelo provedor de nuvem ou o provedor de nuvem fornece um mecanismo no qual você pode fornecer ou treinar essas entidades (incluindo sinônimos, metáforas). , etc.).
  • Use as entidades extraídas para executar a ação necessária para a intenção. Por exemplo, no exemplo acima, chame um serviço de API de voo fornecendo Reino Unido e EUA como locais "de" e "para".
  • Forneça a resposta.
  • Teste e exponha o chatbot através de um endpoint
  • O fornecedor de nuvem geralmente fornece uma capacidade de expor a funcionalidade do seu chatbot por meio de um endpoint, como uma API REST.

A tecnologia acima funciona para fluxos de complexidade simples e média – como FAQ, perguntas e respostas para a consulta do cliente, um passo fixo de etapas (reservar um táxi), etc. Tudo o que requer um tratamento sofisticado de consultas, como o exemplo do consultor de compras para ser desenvolvido sob medida usando PNL e outras técnicas.

Info – A Microsoft tem um serviço QnA ( https://www.qnamaker.ai ) que permite criar um bot de FAQ.

O que não é real sobre os chatbots?

A geração atual de chatbots pode ser considerada como um sistema de diálogo inteligente conduzido por meio de técnicas como PNL e fluxos de conversação fixos.

Fora da caixa, um chatbot não entende nenhum domínio. Precisamos treinar o chatbot para entender o domínio. Além disso, com base na complexidade do domínio, você treinaria e adicionaria subdomínios de forma incremental. Por exemplo, um chatbot ajudando você a reservar um táxi é um exemplo de um domínio fixo, enquanto um chatbot ajudando a ajudar os médicos para o tratamento do câncer seria treinado em vários tipos de câncer de forma incremental. Como mencionado no exemplo do consultor de compras, entender o significado da mesma palavra em contextos diferentes é difícil para a atual geração de implementação de PNL e você precisa confiar em técnicas personalizadas para lidar com tais condições.

Agora, vamos ver alguns truques de marketing em torno dos chatbots da IA:

  • INGEST E CONHEÇA TODOS os chatbots – Estes são chatbots sendo comercializados onde você pode ingerir milhões de documentos, como literatura médica e pode fazer perguntas, que podem fornecer assistência especializada, como diagnósticos de doenças. Tais tipos de sistemas, a menos que treinados adequadamente, nunca fornecerão a precisão desejada. Por apropriadamente, quero dizer que pode levar anos para treinar esses sistemas. O problema fundamental desses sistemas é que eles ainda não entendem a linguagem e a complexidade completas do domínio. Normalmente, você acaba adotando domínios personalizados e regras de idiomas infinitas, o que definitivamente não é inteligente o suficiente para gerenciar a longo prazo. As previsões de tais sistemas geralmente não são precisas.
  • Chatbots de auto-aprendizado – Quantas vezes você já ouviu essa terminologia? Isso, novamente, é um equívoco em que se diz que os chatbots aprendem sozinhos. Você deve treinar um chatbot em que você o que o chatbot para aprender. Geralmente, você capturaria os detalhes do comportamento do usuário por meio de sua interação com o aplicativo chatbot. Isso incluiria a captura de informações de análise do usuário, como capturar seus gostos ou desgostos de alguma forma, seja por meios explícitos ou implícitos. Informações explícitas podem ser um usuário classificando um produto e implícito pode ser o tempo que um usuário gastou olhando para uma resposta.

Depois de conhecer bem o usuário e ter seus dados, ele se torna um problema de recomendação sobre o que você deseja recomendar ao usuário. Então, você acaba construindo um algoritmo de recomendação para recomendar algo. Por exemplo, para um aplicativo FinTech, isso significaria recomendar ações similares com base em que ações ele vê regularmente ou em seu portfólio.

Diferentes domínios e casos de uso precisariam de diferentes algoritmos de recomendação e que precisam ser desenvolvidos como parte do chatbot. No entanto, o aprendizado é encaixotado; Por exemplo, se você tiver um chatbot que pode ajudá-lo a reservar restaurantes, ele pode recomendar restaurantes semelhantes, mas não pode recomendar lugares para ficar, pois só sabe sobre os gostos do seu restaurante. Bem, alguém pode construir um sistema de recomendação que rastreie o que os usuários comem e onde eles ficam e então tente encontrar uma correlação que forneça uma recomendação, como o sistema agora sabe – “O usuário que come XYZ é mais provável que seja aventureiro. Portanto, recomende um local de trekking. '' Novamente, neste caso, a recomendação é encaixada no que você sabe e no que você quer recomendar. Não sei se existem tais hipóteses, mas apenas através de dados e feedback que possam ser inferidos. A questão é que todas essas hipóteses, dados e comentários precisam ser projetados e desenvolvidos, e dizer que os chatbots aprendem sozinhos é bastante enganador.

  • Chatbots generativos, de propósito geral – Um chatbot capaz de aprender novos conceitos a partir do zero e fornecer respostas como um humano. À medida que aprende com o domínio aberto, os chatbots começam a se comportar de forma semelhante ao famoso chat da Microsoft Tay, que foi forçado a fechar no dia do lançamento, quando começou a aprender os detalhes indesejados dos tweets e começou a postar tweets inflamatórios e ofensivos. Este é um exemplo clássico do que citei no meu artigo anterior – “AI pode aprender, mas não pode pensar”. Os chatbots generativos estão formulando a resposta com base na probabilidade de palavras e criando uma sentença gramaticalmente correta, sem entender o significado real disso.

Como mencionei anteriormente, o primeiro foco deve ser o de acertar os chatbots específicos do domínio e, com as técnicas atuais, estamos longe de realizar a visão.

Os Chatbots tornarão os agentes humanos obsoletos?

Para responder a essa pergunta, vamos entender quais funcionalidades os chatbots atualmente fornecem.

A implementação atual do chatbot funciona bem para lidar com um conjunto fixo de diálogos com o usuário, tarefas repetitivas e certos aspectos iniciais das tarefas de atendimento ao cliente. Onde quer que haja um conjunto fixo de processos e fluxos para automatizar, os chatbots podem ser usados para fornecer suporte 24/7 para qualquer consulta. Se a perícia humana for usada para responder a conjuntos básicos de perguntas em que as respostas estão prontamente disponíveis, elas eventualmente seriam substituídas.

Mas em cenários da vida real, a maior parte da conversa geralmente não segue um paradigma de fluxo fixo. Mas se a conversa passar de perguntas básicas para perguntas, que precisam de análise adicional ou se o tópico da conversação for alterado, você precisa de uma sofisticada implementação de chatbot para cuidar de vários fluxos de conversas, identificar a mudança de contexto, identificar intenções que seu chatbot não esteja ciente e crie consultas para encontrar essas informações a partir de sua fonte de conhecimento. Agora você está passando de um conjunto fixo de fluxos para fluxos mais dinâmicos que precisam ser interpretados pelo seu chatbot. Construir essas complexas implementações de chatbot requer adoção sofisticada de domínio específico usando técnicas de aprendizado de máquina e soluções personalizadas. Os atuais serviços chatbot prontos para uso ficam aquém da implementação dessas implementações do chatbot.

Mesmo se você tiver todos os dados do mundo à sua disposição, processamento infinito e capacidade de computação enquanto utiliza a tecnologia e a pesquisa da geração atual, nunca poderá criar um sistema que possa competir com um especialista no campo. Tomando até um horizonte de 5 anos a partir de agora, não acho que podemos desenvolver um nível tão alto de chatbots inteligentes.

Por exemplo, os chatbots ou um assistente podem ajudar um médico a recomendar tratamentos de câncer com precisão e consistência? A resposta é não.

As informações fornecidas por um chatbot podem ajudar os médicos a dar uma pista a partir da resposta fornecida, pode estar certo ou errado. Você nunca pode certificar isso. O chatbot sempre atuaria como assistência a um especialista para realizar algum trabalho. Em última análise, esses sistemas estão lançando várias respostas com base em algumas probabilidades. As respostas são limitadas ao que você alimentou no sistema, você não pode inferir um novo conhecimento em tempo real ou correlacionar informações como um especialista humano para chegar a uma conclusão.

Embora haja pesquisas tentando determinar a capacidade de usar redes neurais profundas para fluxos de conversação, ainda estamos muito longe de construir interfaces verdadeiramente conversacionais que compreendam os detalhes da linguagem e do domínio. Além disso, as respostas fornecidas precisam ser explicáveis e, a menos que você tenha uma maneira de voltar atrás no motivo pelo qual uma resposta em particular foi fornecida, tais sistemas neurais profundos não podem ser usados para casos de uso que exijam capacidade de auditoria e explicabilidade.

Em suma, aproveite os chatbots inteligentes que dão uma percepção de ser inteligente, mas entenda que a verdadeira inteligência está muito distante.

A AI pode gerar respostas dinâmicas para perguntas?

Você pode usar o aprendizado profundo para criar um chatbot. Várias arquiteturas de aprendizagem profunda estão disponíveis para resolver uma variedade específica de casos de uso. Por exemplo, para visão computacional (isto é, reconhecimento de imagem) você usaria uma rede neural convolucional como ponto de partida. Para tradução de idiomas ou geração de texto, você iria com redes neurais recorrentes e assim por diante.

Para entender conversas de chat, você começaria com uma variante de uma rede neural recorrente. Você construirá um modelo de seqüência a sequência. Um modelo seqüência-a-sequência, em palavras simples, consiste em 2 componentes, o primeiro componente (encoder) tenta entender o contexto das sentenças de entrada através de suas camadas ocultas, e o segundo componente (decodificador) recebe a saída do encoder e gera a resposta.

As técnicas acima exigem que você tenha um grande conjunto de dados de treinamento, contendo perguntas e respostas. A técnica funciona em um domínio fechado, mas como as respostas são dinâmicas por natureza, colocá-las diretamente em seus usuários finais pode ser um pouco arriscado. Em segundo lugar, essas técnicas não funcionam quando você deseja interpretar a sentença de entrada para extrair as informações e formular uma resposta por conta própria, como o caso de uso de consulta do orientador de compras que discutimos acima.

No caso de um domínio aberto, os chatbots começariam a se comportar de maneira semelhante ao exemplo do Microsoft Tay chatbot que eu dei anteriormente.

Dica – Com os RNNs, a resposta / resposta depende de seus estados anteriores (ou estados anteriores). Portanto, para um caso de uso de conversação profunda em que o contexto precisa estar disponível, os RNNs não funcionam. Você precisa empregar variantes no RNN chamado LSTM. (Redes longas de memória de curto prazo). Há muita pesquisa sendo realizada nesta área. Passar por várias arquiteturas de aprendizado profundo está fora do escopo do artigo.

Resumo

A geração atual de chatbots é uma forma fraca de AI, que oferece a capacidade de entender a intenção da mensagem / pergunta de entrada. Para que os sistemas chatbot entendam a intenção, ela precisa ser treinada com o domínio correspondente. Você pode fazer a mesma pergunta de várias maneiras e a implementação do chatbot ainda pode inferir a intenção.

Para diálogos, a tecnologia atual oferece para definir fluxos de conversação fixos, portanto as interações são encaixadas e finitas.

Os chatbots funcionam bem para gerenciar a produtividade e certos aspectos das tarefas de atendimento ao cliente. No entanto, à medida que a complexidade do domínio aumenta, a tecnologia atual fica aquém, já que, mesmo após treinamento suficiente, você não obterá o nível necessário de precisão. Você precisaria confiar em uma combinação de outras tecnologias de linguagem de máquina e soluções como regras, inferências e metadados de domínio personalizado para obter a solução entregue. Estas se tornam uma solução única, que se torna difícil de generalizar. Em alguns casos, até mesmo a solução única seria muito complexa, como construir um conselheiro para recomendar tratamentos de câncer com precisão e consistência.

Embora existam pesquisas sobre o uso de redes neurais profundas, ainda estamos muito longe de construir um chatbot de conversação verdadeira que compreenda os detalhes da linguagem e do domínio. Além disso, as respostas fornecidas precisam ser explicáveis e, a menos que você tenha uma maneira de voltar atrás no motivo pelo qual uma resposta em particular foi fornecida, tais sistemas neurais profundos não podem ser usados para casos de uso que exijam capacidade de auditoria e explicabilidade.

Não se esqueça de nos dar o seu ?!