Monalisa e Knowledge Graphs.
Última atualização: 15 de maio de 2019
Quando pensamos na famosa pintura Monalisa (La Gioconda), nossa mente automaticamente faz várias conexões, por exemplo podemos visualisar sua risadinha de canto, nos lembrar que está exposta Louvre e que recebe milhares de visitantes diariamente, que foi pintada por Leonardo da Vinci, que era um gênio das artes e das ciências... São vários caminhos que podem ser navegados no nosso cérebro dependendo do contexto, se estamos falando de arte, ou sobre a visita de um amigo a Paris, etc. Para nós humanos, isto é natural.
E os computadores? Vcs já pensaram como uma assistente virtual como a Alexa da Amazon poderia estabelecer um diálogo com um humano e acompanha-la nos diversos assuntos, afinal uma conversa leva a outra. Uma Alexa que sabe e fala sobre tudo?
Bem, este é um dos desafios da Inteligencia Artificial e uma das áreas de pesquisa que tentam atacar este problema, são a adoção de grafos de conhecimento (Knowledge Graphs) para prover inteligência às máquinas.
Grafos são um tipo de estrutura de dados, na qual se pode definir entidades na forma de nós e tipos de relacionamentos na forma de vértices. A figura abaixo ilustra a idéia. Podemos ver várias entidades, no caso o quadro da Monalisa e seus vários tipos de relacionamentos com outras entidades, por exemplo que o quadro está localizada no Louvre, que foi pintado por Da Vinci, que Bob tem interesse do quadro, e que Bob que por sua vez é amigo de Alice, e assim por diante. O termo Knowledge Graph foi introduzido pela Google em 2012 como um recurso para otimizar seu mecanismo de busca utilizando informações provenientes de várias fontes, dentre elas a Wikipedia (que também é um outo clássico exemplo de Knowledge Graph).
Como você pôde verificar, um Knowledge Graph exibe os relacionamentos entre diversas entidades, promovendo significado. Isto é de extrema importância para computadores, que agora podem utilizar este recurso (esta "inteligência) para contextualizar melhor os assuntos de um diálogo (exemplo da Alexa), desambiguar termos (por exemplo diferenciar Ford, presidente Ford, da marca de automóveis Ford) e até fazer algumas inferências.
Nos dias 7 e 8 de maio de 2019, tive a oportunidade de participar da primeira Conferência de Knowledge Graphs na Universidade de Columbia em Nova Iorque. Foram dois dias intensos de apresentações de cases de várias empresas como Capital One, Wells Fargo, Amazon, Uber, Airbnb, entre outras. Estas empresas estão adotando Knowledge Graphs para relacionar dados como por exemplo, comentários sobre seus produtos e servicos no twitter, facebook, etc e simultaneamente com fatos, noticias, ações de concorrentes e assim compor uma base de conhecimento que pode ser usado para extrair insights, recomendações e outras informações específicas de negócios.
Columbia SPS Executive Education: 2019 Knowledge Graph Conference
Adicionalmente ao intenso uso desta ferramenta no campo do processamento de linguagem natural, fiquei surpreso que Knowledge Graphs também começa a ser utilizado na indústria, em problemas críticos de cadeia de suprimentos e operações. Uma das apresentações que me marcaram foi a do Doutor Steven Gustafson da MAANA, que demonstrou um framework que busca entender as decisões estratégicas que um empresa necessita para gerir sua cadeia de suprimentos. A abordagem para o problema em questão - logística de Navios de óleo cru - foi a construção de Knowledge Graphs com todas as variáveis importantes (colhidas de fontes de dados diversas) e seus relacionamentos entre si. Uma das inovações foi a possibilidade de detalhar algumas das variáveis críticas em forma de "Function Graphs", onde o decisor pode visualizar de forma simples como tais variáveis são determinadas.
Bem, se você gostou do assunto, saiba que Knowledge Graphs, segundo o último levantamento do Gartner, é uma das tecnologias emergentes mais quentes em 2019.
Pretendo trazer mais exemplos de aplicações práticas e informações atualizadas sobre o desenvolvimento deste assunto.