CS 520 - Knowledge Graphs - Spring 2021 - Seminário 19
Data Models, Knowledge Acquisition, Inference and Applications
Department of Computer Science, Stanford University, Spring 2021
Link para o Vídeo -> https://youtu.be/3UJgXWB48r0
Provocação inicial: KG seriam somente semantic networks "hehased" ou possuem particularidades a serem exploradas?
A primeira apresentação apresentou algumas ferramentas para manipulação de KG
"What are some implementation tools for Knowledge Graphs?"
Como escolher qual pacote com tantas opções?
Um problema comum é juntar dados de diferentes fontes e nessa atividade é necessário realizar o JOIN através do Entity Linkage pq muitas vezes não existe um identificador único compartilhado entre as fontes
Pacote: Dedupe
Opções de fuzzy match com base em atributos (semântica) e tipo de dados, aprendizado supervisionado (distância do cosseno é o default),aprendizado supervisionado (classificadores) e active learning.
Tarefa de Person Name matching
Usar dicionários e regras quando não é possível usar ML
Soundex para lidar com diferentes grafias do mesmo nome
Lista de pacotes para Record Linkage disponível em -> https://github.com/J535D165/data-matching-software
Extração de Informações de dados não estruturados (texto)
Spacy (NLP assim como NLTK), inclui um Entity Linking framework que mapeia para Wikidata e Dependancy parsing (grafo no formato de triplas a partir de frases)
SpikeX: pipes com propósitos específicos prontos para o Spacy (reuso)
GraphDB: armazenar o KG depois de criado, +OLTP e -OLAP, não existe padrão para linguagem de consulta
Neo4J: LPG, escalabilidade horizontal, controle de acesso, Cypher, conectores para diferentes linguagens
Amazon Neptune: LPG e RDF, interfaces de consulta através de Apache Thinker Pop Gremlin e SPARQL
Graph Compute Engines: OLAP para processamento analítico e ML, podem estar acopladas ao GraphDB ou não.
networkx: python, in memory, vários!!!! algoritmos disponíveis (por exemplo Page Rank, Steiner Tree, Clusterização, Vertex Cover, Mixing, ...)
d3: detecção de comunidades visualmente
GraphX : Apache Spark (o Diego apresentou esse no grupo BioBD), processamento paralelo, extensão do RDD (Resileint Distributed Dataset), somente PageRank para ML, outros algoritmos para Particionamento, Componentes Conexas e contagem de triângulos.
>> KGTK também entra nessa categoria
Benchmarks costumam ser específicos para as tarefas
Ainda existe muito trabalho manual apesar de muitas abordagens se "venderem" como totalmente automatizadas
As linguagens de consulta não são intuitivas como SQL
Característica ACID dos GraphDBs é importante somente para as atualizações, operações de percorrer o grafo são melhor atendidas em termos de desempenho por GraphDB do que RDBMS
Desconhecem abordagens de construção/aprendizado de esquemas para KGs a partir dos dados (engenharia reversa)
"How to KG relate to AI?"
Três direções: Simbiose, Graph Data Science, KG para AI
Simbiose bi-direcional: KG viabilizam aplicações em AI e algoritmos AI para construir KG
KGs para assistentes pessoais (Alexa, Siri, Google Now), sistemas de recomendação e ferramentas de busca para Q&A. Como usar Wikidata para sistemas de busca
Entity Linking com active learning (ML), NLP para Entity Extraction, Inferência e Q&A com NLP,
Graph Data Science: Big Data incluindo graph data
ML para predições (Analytics)
Engenharia de features para identificar com os modelos ML respondem as features, conhecimento do domínio
Como o usuário pode explorar/visualizar os dados em escala sem ficar perdido com o volume e variedade?
AI + KG: Redes Semânticas, DL, Rules Languages e Modelos gráficos (?)
Aprendizado indutivo para a parte simbólica, ML é mais recente
Volume é um desafio contemporâneo
Construção pode ser bottom-up ou uma abordagem híbrida (mixed) com bastante suporte automatizado
Tempo: IIIII
Comentários
Postar um comentário
Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.