Grafos de Conhecimento
No primeiro artigo desta série, fizemos uma introdução ao tema das Ontologias. Agora, iremos abordar os grafos de conhecimento.
O que é um grafo de conhecimento?
Um grafo de conhecimento (knowledge graph) é uma base de conhecimento que utiliza um modelo de dados baseado em grafos para integrar dados. Os grafos de conhecimento são frequentemente usados para armazenar descrições de entidades interconectadas — objetos, eventos, situações ou conceitos abstratos — enquanto também descrevem a semântica subjacente.
Os grafos de conhecimento buscam representar formalmente a semântica que descreve entidades e seus relacionamentos. Desta forma, eles podem fazer uso de ontologias como uma camada esquemática, de forma que seja possível o uso de inferência lógica para recuperar conhecimento implícito, em vez de apenas permitir consultas à conhecimento explícito.
Diversos métodos para derivar embeddings sobre entidades e relacionamentos de um grafo foram desenvolvidos para permitir o uso dos grafos de conhecimento em diferentes tarefas de aprendizado de máquina. Esses embeddings permitem que a sua informação seja acoplada a métodos de aprendizado de máquina que exigem vetores de features, como word embeddings de palavras.
Por exemplo, na área de representation learning, a tarefa denominada knowledge graph embedding (KGE), também conhecida como aprendizado multi-relacional, é uma tarefa de aprendizado de máquina que deriva embedings representando entidades e relações de um grafo de conhecimento e também a representação da sua semântica.
Estes embeddings são particularmente útil nas ferramentas de cálculo de similaridade conceitual.
A figura abaixo, adaptada do site Neo4j, mostra a evolução das estruturas de dados até um grafo de conhecimento.
1. Dados
Na primeira etapa, há a integração de diversos silos de dados contendo diferentes estruturas, como dados estruturados, não estruturados e semi-estruturados.
2. Grafo
Nesta etapa são mapeados os dados e feito o desenho das suas conexões, resultando nas primeiras camadas de um grafo.
3. Grafo Semântico
Finalmente, a informação semântica a respeito desses dados é aplicada para oferecer um contexto mais profundo a respeito dos dados conectados. Quanto mais profundo o contexto, melhores os insights.
Um grafo de conhecimento captura a semântica de um domínio específico usando um conjunto de definições de conceitos, suas propriedades, relacionamentos e restrições lógicas.
Exemplo Prático
A Amazon propõe um grafo de conhecimento de seus produtos com o objetivo de estruturar todas as informações possíveis relacionadas a tudo que é vendido em seu site. Por exemplo, Party in the USA é uma ótima música para tocar em um típico churrasco americano. Um termômetro de churrasqueira também é um ótimo item para um churrasco. Então, ao procurar por churrasco americano na Amazon, o ideal seria oferecer a opção da execução da música e também a compra do termômetro, mesmo que sejam de famílias de produtos bastante distintas.
Dessa forma, o grafo descreve cada item usando conceitos do produto em si, e conceitos não relacionados diretamente ao produto. Isso forma conexões entre diferentes entidades; e o grafo busca ajudar os clientes a usar uma maior variação de termos na pesquisa por itens. Por exemplo, uma pessoa pode pesquisar por roupa de praia e outra por maiô. O grafo auxilia o sistema a encontrar o item certo.