Data Models, Knowledge Acquisition, Inference and Applications
Department of Computer Science, Stanford University, Spring 2021
What is a Knowledge Graph? -> https://youtu.be/FRcF6sh8sI0
ML & KG: incorporar conhecimento, representar o conhecimento e explicação o que foi aprendido
Integração de dados sem esquema a priori, os mapeamentos podem ser feitos na abordagem "pay as you go"
Tem explicação para word embeddings com exemplo e node / graph embeddings !!!
>> Converter representação simbólica em números (Vetores), por volta de 200 dimensões após etapa de redução, um caminho do grafo pode ser equiparado a uma sentença de texto (cada palavra é um nó e estão ligadas em sequencia como aparecem na sentença)
What are some Graph Data Models? -> https://youtu.be/fJLCCmk0-ok
RDF
URI só permite ASCII caracteres, IRI pode ter qq tipo de caracter(Universal CharacterSet)
named graphs: cada grafo tem o seu IRI
Reificação para suportar atributos nas arestas como por exemplo dados de proveniência. Uso de nós brancos
(L)PG
As arestas podem ter propriedades/atributos mas não suportam IRI/URI e nós brancos. É possível realizar reificação em LPG
Como converter RDF em LPG e vice-versa
SPARQL e Cypher (CRUD além de Query)
Mapeamento do modelo de grafo em modelo relacional
GraphDB não teria diferença entre o esquema e a forma como o dado é armazenado, no RDBMS tabelas podem representar nós e seus atributos uma mas se seguir o modelo E-R (Relacional) um entidade com seus atributos pode ser armazenada em uma tabela mas essa tabela também pode conter as relações (FK),além de existirem tabelas para relacionamentos N x M assim como ajustes de projeto físico para atender a requisitos de desempenho.
Quad em RDF é para representar named graph e não para as arestas ...
How to Create a Knowledge Graph?
Recursos informacionais (com URI) e não informacionais (mundo real)
URIs devem recuperar "partes" de KGs em RDF
Reusar vocabulários
Reificação também se aplica a LPG para relações n-árias
How to Create a Knowledge Graph from Data?
Modelagem -> https://youtu.be/-dZzHgM2950
Schema free é possível mas um esquema pode tornar o KG mais útil
Linked Data Principles (Tim Bernes Lee)
Usar vocabulários padronizados como por exemplo Schema.org
LPG: Modelar propriedades como nós se for necessário incluir metadados paras as propriedades (relationship properties) e reificação para relacionamentos com aridade > 2
Discussão ao final: semantic search será separada da busca textual?
Conversão de dados estruturados -> https://youtu.be/tTL-BxlwU-8
Schema mapping para mapear a fonte de dados para o KG de interesse (como no caso do Lattes2WD): manual, atividade não tem volume para treinamento ML, mapeamento pode ser expresso em alguma linguagem (exemplo Datalog), (semi)automatizar com apoio linguístico para o nome dos atributos, entidades e relações
Mapeamento pode ser feito usando os metadados (nomes de colunas, tabelas, atributos, ...) e também instâncias.
Record Linkage para verificar se dois registros se referem ao mesmo objeto do mundo real: nessa tarefa o volume de dados é grande, blocking and matching (random forest), blocking seriam heurísitcas para reduzir o número de candidatos, active learning é usada para construir a random forest baseada em um conjunto de regras que fazem uso de funções de similaridade simples
How to Create a Knowledge Graph from Text? -> https://youtu.be/XcBCtt30bV8
Tarefas: entity extraction, relation extraction, entity resolution.
Atividades necessárias para Q&A e Raciocínio Senso Comum.
Language Models (Neural Models): prever qual é a próxima palavra dada um trecho de frase, muito usadas para autocompletar. Por exemplo
Previsão: livros, notebooks
Formalização
(single direction) Entrada {x1, ...xn-1}Resultado P {xn | x1, ..., xn-1}
(bi directional) Entrada {x1, ...., xk-1}{xk+1, ...., xn}
Resultado P {xk | x1, ...., xk-1, xk+1, ...., xn }
BERT - Bidirectional Encoder Representations from Transformers
Para entity extraction, cada palavra da potencial entidade deve ser taggeada.
Sujeito a ambiguidade (Apple empresa ou fruta, Rio de Janeiro cidade ou estado, ...)
Relation Extraction precisa reconhecer o domain e range das relações nas sentenças
HITL e volume para dados de treinamento são desafios
Exemplo de aplicação Intelligent Textbook (texto + KG): muito interessante para ensino e tem HITL para revisão da construção do KG (mesmo atores da escrita e revisão do texto e um novo papel)
What are some Knowledge Graph Inference Algorithms? -> https://youtu.be/ndldSg0CcHI
Variações de algoritmos de caminhos: shortest path (par de nós ou entre todos os pares de nós do grafo) para identificar a rota ótima para percorrer um conjunto de pontos, encontrar minimum spanning tree (MST) é útil em problemas como planejamento de viagens.
Centrality detection mede a importância dos nós no grafo, várias opções de cálculo: degree centrality (grau de entrada e saída), closeness centrality (nó que é mais próximo de todos os demais nós, pode ser interessante para logisitica), between-ness centrality (nó onde passam a maior parte dos caminhos mais curtos), PageRank (tem explicação e fórmula).
Community detection: nós de uma comunidade tem mais relações com nós da propria comunidade do que com nós de outras comunidades. Formas de cálculo: connected components, strongly connected components, label propagation and fast unfolding (aka Louvain algorithm), sendo os dois últimos conhecidos como Bottom-up.
Label propagation begins by assigning each node in the graph to a different community. We then arrange the nodes in a random order to update their community as follows. We examine the nodes in the assigned order, and for each node, we examine its neighbors, and set its community to the community shared by a majority of its neighbors. The ties are broken in a unform random manner. The algorithm terminates when each node is assigned to a community that is shared by a majority of its neighbors.
In the fast unfolding algorithm, there are two phases. We initialize each node to be in a separate community. In the first phase, we examine each node and each of its neighbors and evaluate if there would be any overall gain in modularity in placing this node in the same community as a neighbor. A suitable measure to calculate modularity is defined. If there will be no gain, the node is left in its original community. In the second phase of the algorithm, we create a new network in which there is a node corresponding to each community from Phase 1, and an edge between the two nodes if there was an edge between some nodes in their corresponding phase 1 communities. Links between the nodes of the same community in phase 1 lead to self-loops for the node corresponding to their community in Phase 2. Once Phase 2 is completed, the algorithm repeats by applying phase 1 to the resulting graph.
Inferências baseadas em ontologias: Taxonomia e Regras.
Organizar o conhecimento em classes que são relações unárias.
class membership (instance_of), class specialization (subclass_of, transitiveness), disjoint classes, class definition (necessary and sufficient relation values), value restriction (domain, range), inheritance (constraint violation in case of multiple classes) and various inferences that can be drawn using them.
class(male)
class(female)
instance_of(art,male)
instance_of(bea,female)
subclass_of(male,person)
subclass_of(female,person)
instance_of(X,person) & has_hair_color(X,brown)
~instance_of(I,male) :- disjoint(female,male) & instance_of(I,female)
~instance_of(I,female) :- disjoint(female,male) & instance_of(I,male)
Baseado em regras normalmente são regras lógicas em geral.
Conflito de interesse é um exemplo de relação ternária.
What are some High Value Use Cases of Knowledge Graphs?
Ontologia FIBO (Financial Industry Business Ontology)
How do Users Interact with a Knowledge Graph? -> https://youtu.be/SvPZYKEvwyI
Visualização de consultas sobre KGs (tabular ou grafo): grafos (nós e arestas) podem ser eficientes para mostrar o esquema mas em caso de instâncias pode ser muito confuso.
Usar símbolos para cada tipo de entidade do KG (o MAS/MAG usa ...)
Consultas estruturadas: esquema conhecido, quais entidades são alvo da busca, a gramática (opções de consulta) são pré definidas e só permitem consultas mapeadas nessa gramática
Consultas em linguagem natural: parse semântico começa com uma gramática mínima e passa por uma etapa de treinamento, que tem como desafio o problema da massa de dados para treinamento. Acurácia entre 50-60%
Exemplo de aplicação de Busca: Neeva
- Usou Wikipedia (infobox, imagem, primeiro parágrafo de cada artigo), Wikidata, OpenStreetMap (reduzindo o número de coordenadas)
- Não usou GraphDB, sim Key Value Store (Scylla) e JSON Blob da Wikidata (1 hop do QNode)
- Template para entidades do WD, definem quais predicados serão usados e usou PySpark para converter o JSON WD para o formato da aplicação.
- O MAG também usa o primeiro parágrafo de cada artigo para uma explicação sobre o conceito.
- Contexto do usuário: IP (localização), histórico de busca.
How to Evolve a Knowledge Graph? -> https://youtu.be/cQvIsVeYxXQ
O que define uma classe, como por exemplo as constraints, pode mudar com um melhor entendimento do domínio, com a evoluçãodo conceito, etc....
Schema Evolution para KG é mais complexo que DB: incluir ou remover classes e superclasses (classes ou instâncias órfãs), incluir ou remover propriedades, qual o impacto dessas operações para as instâncias?
Visões para KG: pouco explorado
Sistemas baseados em regras: Como manter o rastreamento das informações inferidas nos KGs ainda em aberto
How do Knowledge Graphs Relate to AI?
Esse seminário está em outro post pq tem duas palestras interessantes no mesmo vídeo
Comentários
Postar um comentário
Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.