Como pensar Processos de seguro mais inteligentes?
Nesta publicação compartilhamos um artigo escrito pelo nosso CEO, Daniel Galanti, confira: Como parte da minha carreira, tive a sorte de trabalhar em várias iniciativas nas quais suas verticais eram de Complex Event Processing (Processamento de Eventos Complexos) e contavam com inteligência artificial. Lembro-me com muito orgulho da Agentis Software, onde tive ótimos professores e aprendi quase tudo que sei hoje sobre sistemas de aprendizagem, agentes inteligentes e sistemas especializados.
Todo esse histórico me levou a pensar quando criamos a Andromeda, uma estrutura para nossa plataforma Sysone Cloud Ready, em como podemos tornar nossos processos mais inteligentes e dar a eles vida para que aprendam em todas as instâncias que criamos e como cada uma delas são resolvidas.
Por exemplo:
- Como podemos planejar o processo de subscrição ideal e eficaz para seguros de vida.
- Como podemos listar os exames médicos que devemos solicitar a uma pessoa com base em sua idade, índice de massa corporal, declaração de saúde e patologias que ela declara, entre outras variáveis.
- Como foram resolvidos os últimos casos com as mesmas características?
- Como foram resolvidos casos semelhantes?
- Qual foi o caso mais eficaz e mais barato resolvido?
- Qual desses casos anteriores teve reclamações?
- Quanta intervenção humana houve nesse processo e para quê?
Como você verá, queremos fazer da subscrição um processo que a partir de uma série de dados de entrada (em nosso exemplo, uma solicitação de emissão de seguro de vida) tenha a maior autonomia possível. Isso se reflete em uma subscrição mais inteligente, rápida e barata, deixando a análise de casos desconhecidos para os profissionais subscritores que podem “mostrar o caminho” aos nossos processos para que assim eles aprendam, e então esses casos sejam cada vez menores. E como fazemos isso?
Em busca da solução
Um pouco de teoria
Para poder decidir qual é o melhor “plano” de subscrição, dentro do entorno que analisamos anteriormente deveríamos lembrar e registrar o que foi feito para a resolução dos casos desconhecidos. Dentro do contexto de inteligência artificial, esse método se denomina CBR (Case Based Reasoning, e recomendo que leia também esse artigo sobre o assunto).
O estudo deste método foi estimulado para entender como os humanos lembram informações, retêm e as classificam para então resolverem problemas, lembrando cenários semelhantes que ocorreram no passado.
Podemos então definir que se trata de um sistema autônomo baseado em situações passadas e que resolve problemas usando e adaptando soluções para casos que ocorreram no passado.
O CBR é descrito por quatro atividades:
- Recuperar uma listagem de casos semelhantes ao problema que está enfrentando.
- Utilizar uma solução sugerida por um caso idêntico ou semelhante.
- Revisar ou adaptar essa solução para melhor se adequar ao problema atual, se necessário.
- Registre a nova solução assim que for confirmada ou validada.
Concluindo, podemos dizer que o ciclo RBC se enquadra muito bem na definição de “conjunto de princípios que orientam a ação”. Qual é, então, esse conjunto??
O primeiro é o desejo (Ver BDI – Desejo) do solucionador de problemas de resolver um problema tentando explicitamente utilizar uma solução de um problema anterior ou semelhante, portanto, os casos devem ser recuperados de uma biblioteca de casos (Ver BDI – Crença ).
Em segundo lugar, um sistema CBR deve tentar reaproveitar a solução sugerida por um caso recuperado do histórico com ou sem revisão (Ver BDI – Intenções). Finalmente, um sistema RBC deve procurar aumentar sua base de conhecimento, retendo o que foi aprendido no processo de resolução de novos casos.
Colocando a teoria em ação
Tendo passado pela forma mais básica de raciocínio e aprendizagem que todas as plataformas de inteligência artificial utilizam na parte teórica, partimos em busca de um framework que nos permita expressar as regras, conhecimentos prévios e fazer o pattern matching (ou casamento de padrões) para levantar cenários semelhantes, assim.como descrevemos anteriormente.
Um tipo de algoritmo denominado Rete chamou nossa atenção, principalmente pela simplicidade na hora de configurar e gerar as regras. Também por apresentar vantagens muito positivas na forma de raciocínio (backguard and forward chaining).
O algoritmo Rete constrói uma rede de nós, onde cada um deles (exceto o nó raiz) representa um padrão que aparece na parte esquerda (a condicional) de uma regra. Portanto, o caminho do nó raiz para uma folha define a parte condicional inteira de uma regra. Cada nó possui uma memória de acontecimentos que satisfaz seu padrão. Essa estrutura é basicamente uma árvore.
Conforme os eventos são adicionados ou modificados, as mudanças são propagadas pela rede, fazendo com que os nós que são acionados pelo padrão sejam ativados. Quando um acontecimento ou conjunto deles faz com que todos os padrões de uma regra sejam satisfeitos, chega a um nó folha e a regra é ativada.
Hoje com base neste algoritmo, contamos com um conjunto de microsserviços que nos permitem implementar esses modelos de raciocínio, fornecendo informações (conhecimento) aos nossos processos para dotá-los de inteligência. A implementação que usamos foi a evrete (www.evrete.org), e a escolhemos por estar muito bem documentada de maneira que poderíamos facilmente incorporá-la em nossos microsserviços.
Resultados
Atingimos uma base de conhecimento para processos de subscrição e sinistros onde podemos otimizar a operação de forma incremental, reduzindo os custos operacionais de ambos os processos em até 20%.
Alguns fatos interessantes.
- Conseguimos ter uma base de conhecimento de subscrição de vida em uma implementação com 3023 casos diferentes em nossa base de conhecimento.
- Dos 3.023 casos, há 95 que são frequentes, tomando como frequência aqueles que ocorrem pelo menos 1 vez a cada 30 dias.
- Manter essa base de conhecimento de forma persistente nos força a serializar a knowledge base para poder persistir e não ser volátil.
- Cada vez que uma nova assinatura é carregada, leva apenas 278ms para analisar se a nova solicitação já está dentro de 3023 casos. Obviamente, esse algoritmo sacrifica a memória pela velocidade, algo em que estamos trabalhando para reduzir.
Você tem interesse em saber mais sobre nossa plataforma Sysone Cloud Ready?