Aspectos da implementação de uma Assistente Virtual

Uma Assistente Virtual pode ser implementada de muitas formas, como em todo e qualquer projeto, é preciso avaliar o propósito que se deseja alcançar.

O propósito mais comum na atualidade é o de informar, como um oráculo, para facilitar a busca de informações em sites, aplicativos etc. É o caso da Vivi, que presta informações sobre diversos serviços na web, mobile e Facebook.

Outra alternativa interessante é oferecer a possibilidade de resolver alguns problemas, como fazer solicitações simples, que possam ser personalizadas através de um login. A Assistente Virtual da Movistar Argentina tem esse perfil, além de ter uma interface bem interativa.

Seguindo na cadeia de complexidade, pode-se adicionar a capacidade de enviar mensagens proativas sobre um agendamento ou processo. A KLM tem uma Assistente Virtual mundialmente conhecida, aplicada na interação com clientes que adquiriram passagens aéreas.

Não poderia deixar de citar a Lu, do Magazine Luíza. Embora conceitualmente não seja uma Assistente Virtual, foi muito inteligentemente aplicada como um centro de conteúdo e está em toda parte, da barra de busca aos vídeos sobre produtos. Escreve num blog, faz infográficos e até atende a central telefônica, tudo isso sem processar uma linha de linguagem natural!

 

Aspectos técnicos

Agora que vimos alguns exemplos, vejamos um pouco sobre os aspectos técnicos de uma Assistente Virtual.

Informação, Transação e Recomendação

É informacional quando apenas responde a perguntas com conteúdos fixos, que podem ser textos, voz ou links. Por exemplo: Responde à pergunta “quais são as opções de investimento?” com um link sobre os investimentos disponíveis).

Lida com transações quando resolve problemas acessando APIs (Application Programming Interfaces). Por exemplo: Se o usuário perguntar qual é o seu saldo no banco, a AV acessará uma API de autenticação e, em seguida, outra que possa responder o valor na conta corrente.

A recomendação ocorre quando ela consegue entender quem é o cliente antes de dar uma resposta. Por exemplo: Todos os dias o João vem ao site e pergunta seu saldo, sabendo disso, assim que se autenticar já mostrarei o valor.

Reativa x Interativa

É reativa quando aguarda o contato de alguém para começar a interagir e proativa quando busca o contato com o interlocutor.

Semântica x Cognitiva

O processamento semântico busca o significado de uma frase digitada no chat, através da análise de similaridades com as respostas pré-cadastradas na base de dados da Assistente Virtual.

Funciona mais ou menos como um mecanismo de busca, o motor semântico: Exclui termos irrelevantes ao significado da frase (ex: artigos e preposições), aplica um dicionário de sinônimos, calcula as frequências de palavras para vetorizar a frase e o conteúdo-resposta e calcula a similaridade entre os dois vetores.

A assistente cognitiva também faz análise semântica, mas adiciona as capacidades de identificação de padrões, construção de hipóteses e algoritmos de auto-aprendizagem.

De forma simplificada, pode-se dizer que o motor cognitivo decompõe a pergunta, formula hipóteses, busca evidências (potenciais respostas), classifica as respostas pela maior probabilidade e, uma vez tendo avaliado a assertividade, armazena a resposta na sua base de conhecimento para uso posterior.

Apesar disso já ser muita coisa, o que mais me impressiona é a capacidade de usar o contexto para avaliação das hipóteses. Por exemplo, a distância de um lugar a outro tipicamente não se modifica, mas o tempo de viagem varia com o clima (e.g. chuvas e alagamentos), datas (e.g. férias e datas comemorativas), incidentes sociais (e.g. protestos), incidentes naturais (e.g. terremotos, furações, epidemias) etc.

Quando tomamos a simples decisão de nos locomovermos a um local para tirar férias, levamos em conta esses e outros parâmetros para decidir. Na maioria dos casos nem sabemos exatamente ainda quais parâmetros vamos utilizar. Será um lugar “seguro”? Está numa época “boa”? o clima está “agradável”? Os custos são “aceitáveis”?

Todos esses critérios de decisão, embora pareçam abstratos, são baseados nas nossas experiências passadas e são comparados com o momento atual para determinar se uma decisão é adequada ou não, essa é a proposta da computação cognitiva.

No próximo post vou apresentar os elementos que compõem a arquitetura de uma Assistente Virtual.

Eli Rodrigues