Pular para o conteúdo principal

INF2391 - Ferramentas para Integração de Dados - 2021.2

Aula de 16/08 - https://youtu.be/R8BHDBmCOA4 

Artigo Graph Integration of Structured, Semi-structured and Unstructured Data for Data Journalism

Também permite a consulta por palavras chaves 

Construção do grafo integrado: a aresta tem um grau de confiança, além do rótulo (diferença em relação ao RDF).  

Mapeamento de cada fonte de dados para o grafo: por exemplo no modelo relacional pode ser criado um nó para cada tabela, depois um nó para cada linha, ligado no nó da tabela. 

Fazer uma tipagem mais forte nos tipos de dados depois de converter para o grafo. 

Pipeline dos Nós: Tokenização, Part-of-Speech(POS), Named-Entity Recognition (NER), Named-Entity Disambiguation (NED), Node Matching .... são tarefas clássicas de integração de dados em grafo

Node matching é justamente a etapa de integração pq até o NER/NED são somente componentes conexas. Nós diferentes podem representar a mesma entidade do mundo real (owl:sameAs), podem usar embeddings ou medidas de similaridade entre features

Aula de 23/08 - https://youtu.be/2w4afoaH5fw

modelo de armazenamento em duas tabelas - modelo relacional: arestas e similaridades entre nós

vantagem de usar um grafo é não requer um esquema conceitual, cada nova fonte de dados sofre um processo de ingestão para ser adicionada ao grafo (o pipeline dos nós acima) 

KwS: as arestas são não direcionadas, encontrar a menor árvore/caminho, o menor aqui é no sentido do peso.  No paper a lógica foi criar uma árvore com os nós mais importantes (bom ser importante pelo match ou pela nó ter um alto PageRank) e com as arestas mais raras. A raiz da árvore são os nós que fizeram o match com as palavras chaves, repete etapas de Grow e Merge para cada árvore, No Grow acrescenta aresta vizinhas que não fazem loop, no Merge junta as árvores que tenha nó em comum, o Grow pode considerar também as arestas de similaridade entre nós para juntar fontes de dados diferentes. Para ser a menor árvore, a cada pequeno Grow é tentado um Merge! Em caso de empate no keyword match (ou ordenação), escolha a árvore menor e se houver empate no tamanho, escolha a árvore com maior especificidade.  

Tamanho dos datasets deve ser maior que 170 milhões de triplas ?!?!?! Um milhão de nós é pouco.

Avaliação de keyword search: não basta dizer a quantidade de árvores ou o tempo de resposta, tem que avaliar o tamanho das árvores de resposta e a qualidade dessas respostas.

Aula de 30/08 - https://youtu.be/yk88UtEJy8o

Gerenciamento de Metadados - Overview

Tempo perdido em Data Discovery (dentro e fora da organização)

Sistema Aurum's: construir, manter e consultar o EKG (Enterprise Knowledge Graph). O EKG é um hipergrafo e as hiper arestas permite aos usuários a consultar com diferentes granularidades. 

Sistema Skluma: metadados de arquivos científicos, extratores de metadados por formato/tipo de data sources, a extração de keywords do texto, usado para associar tópicos aos documentos, não tem semântica e usaram o GloVe (rede pré treinada de word embeddings) para o match com top-n keywords, gera um grande arquivo JSON que deve ser adicionado em uma Search Engine para consulta. 

Aula 13/09 - https://youtu.be/_daQjbqVlOc

Semantic Type Inference e Sherlock (implementado no TensorFlow e publicado no SIGKDD2019)
 
Tarefa para Data Lakes. Colunas do mesmo tipo semântico podem ser usadas para join e unions de tabelas/fontes de dados diferentes
 
tipo de dados sintáticos: string, datas, números
tipo de dados semânticos: nome, data de nascimento, gênero
 
Problema de Classificação, pode ser feito com heurísticas

Baseline: Como implementar as abordagens existentes caso não tenham código fonte disponível? Como os dados dessas abordagens podem ser obtidos para o teste comparativo?

 

Como coletar e preparar dados reais para treinamento e teste? Com volume o suficiente para gerar o modelo em ML ou DL.

Feature extraction: como criar uma representação de tamanho fixo para um conjunto de colunas que possuem variabilidade de valores distintas? 
 
27 features: estatísticas / histogramas, Entropia (alta variabilidade é entropia baixa como por exemplo nomes). 
960 features: distribuição de caracteres por coluna
200 features: word embeddings para colunas que são texto, usaram o GloVe (inglês) com 50 dimensões, calcularam 4 opções: média, moda, mediana e variancia
400 features: concatena os valores das colunas para formar um grande parágrafo por coluna e converte em vetores one-hot

Cada coluna no final é representada por 1600 descritores / features diferentes: primeira camada do modelo

Primeiro filtro (remover os mais frequentes) é bom pq o modelo pode aprender pouco com eles

Segundo filtro removeu colunas importantes como as de datas e no final ficaram com 10% do conjunto original (686,765 colunas) e de 275 reduziram para 78 tipos de dados semânticos.
 
Model training: +/- 1600 - 27 features foram comprimidos e gerou uma representação de 78. 
 
Rede neural (A) com duas camadas ocultas (ReLU) e Softmax, diferentes tamanhos das camadas de acordo com o tipo de feature de entrada para reduzir o número de features. Rede neural (B) usa a saída de A + as 27 features estatísticas para no final geral a classificação em 78 possibilidades.
 
(A)(B)
 
Outros classificadores ML (Random forest - 10 e Decision tree) e abordagens de Dicionários, Expressões Regulares, Crowdsourcing, ... também precisam ser testados para comparação.

Métricas de avaliação precisam ser balanceadas pelo número de instâncias: média ponderada do F1 score.

As features isoladas geraram um resultado pior que combinadas.

Sugestão: usar ML somente para aquilo que não tem um dominio padrão para criar um dicionário ou um formato padrão para criar uma expressão regular.

Aula 20/09 Deequ - https://youtu.be/sb27_P57N-o

AWS Deequ da Amazon Research, dois artigos

Apache SPARK com linguagem Scala para testes unitários em dados (que não são iguais a testes e software) ... mas tem uma opção de Python (PyDeequ)

Verificação de Qualidades de Dados: Sugestão de Restrições e Verificação de Restrições
Dados passam por ingestão e depois as restrições são verificadas, gerando um relatório de métricas e qualidade

Especificar de modo declarativo as restrições

Extrai diversas métricas do Dataset 

Outra fonte: https://medium.com/data-hackers/qualidade-de-dados-na-pr%C3%A1tica-com-spark-e-aws-deequ-ec8127979ee


 
Aula 27/09 - https://youtu.be/skibEm4lL0o

Named Entity Recognition (NER)

Inclusão de fontes externas ajuda nessa atividade e as abordagens Neural fim a fim acabam não fornecendo explicabilidade

Quatro categorias
1) knowledge agnostic, só usa parâmetros de natureza sintática ou linguística 
2) named-based knowledge, outras fontes que contem entidades nomeadas, as entidades possuem padrões (uso de determinadas expressões e também combinações)
3) knowledge-base knowledge, páginas da wikipedia associadas a tokens
4) entity-based knowledge, considerar sinônimos, abreviações como alias para a mesma entidade
 
Calculou o F1 ao incluir cada categoria, mas é uma melhoria acumulada e não isolada. Usou quatro datasets e 3 tipos de entidades: pessoas, organização e localização.  Não usou Redes Neurais.

BERTimbau: Pretrained BERT Models for Brazilian Portuguese

https://link.springer.com/chapter/10.1007/978-3-030-61377-8_28 

O estado da arte envolvem arquiteturas de redes neurais usando linguagens de modelagem pré-treinadas

Linguagens pré-treinadas reduzem a necessidade de dados rotulados para aprendizado supervisionado

Documentos de entrada > Tokenização > Spans de tamanho fixo (2x) com overlapping > BERT (word embeddings) > Classificador (Linear ou LSTM) > [probabilidade de cada token pertencer a cada classe] > CRF > [token, classe]

Dataset HAREM para NER em Português. Usou Multi lingual BERT-Base, Portugues BERT-Base e BERT-Large.

Aula 04/10 - https://youtu.be/0pOvoWgbCMk
 
Entity Linking / Matching / Recognition

Magellan está descrito em um artigo do VLDB, usa um stack comum de Data Science como numpy e depois foi utilizado em vários outros trabalhos

3 frameworks com Deep Learning nos artigos

Paper 1 (2018) ... 4 soluções de DL baseados no Magellan, que foi usado como baseline = DeepMatcher
Uso de word embeddings na primeira camada, na segunda camada é calculada a similaridade e na terceira camada (MLP) está o classificador
 
DL não ajudou muito em dados estruturados mas para semi-estruturados e não estruturados houve algum ganho. O maior ganho foi em caso de dados "sujos". 
 
Paper 2 (2018) ... Knowledge Graphs = LinkNBed -> Entity Linking para pares de KG

Treinamento linear
Entrada como embeddings de entidades, atributos, relações e tipos
Camada contextual com funções de agregação
Camada de representação é entrada para a função de score final para gerar a predição
 
Dois datasets, um deles é do IMDB. Fizeram versões parciais do próprio modelo. 

Paper 3 (2018) ... DeepER
 
etapa de blocking semantico baseda em LSH, é semelhante a busca por approximate nearest neighbor (ANN) no espaço de similaridade, reduz o número de comparações desnecessárias
 
captura a similaridade sintática e semântica sem feature engineering e tuning de parâmetros
 
representação distribuídas (DR) para tuplas permite a representação da tupla como embeddings e computar a distância entre os vetores de tuplas distintas para avaliar o match. O vetor da tupla é a concatenação dos vetores gerados pela média dos vetores dos tokens de cada atributo. Ao invés da média é possível usar uma rede LSTM-RNN para obter o vetor final de cada atributo e preservar características originais do atributo como a estrutura linguística.
 
Vocabulary Expansion e Vocabulary Retrofitting
 
Sete datasets (e-commerce, citações, proteômica). Também se compararam com o Magellan


Aula 18/10 -> https://youtu.be/0VPe9CeZYtU

Data Integration

Dois artigos sobre Schema Matching

Correspondência de conceitos (entidades, atributos e relacionamentos) entre esquemas de bases de dados diferentes com mínima intervenção de especialista de domínios.

Matriz de similaridade: ajuste com matcher de segunda linha

Métricas como precisão, cobertura (recall) e F1 score (média harmônica entre precisão e cobertura) para avaliar a matriz

MWBG: seleciona o atributo mais similar do segundo esquema

Usou duas DNNs (Deep Neural Networks) no algoritmo, uma para ajustar e outra como avaliação para modificar a matriz de similaridade

No segundo artigo é com ML. Features baseadas no schema (tipo de dado, tamanho médio, se é chave, média/mínimo/máximo de valores numéricos, etc ...). Agrupar atributos semelhantes (K-means clustering).

Aula 18/10 -> https://youtu.be/z5SVG3Au5ro
 
SATO - Semantic Type Inference (Detection)
 
Evolução do Sherlock

Dados um conjunto de dados como por exemplo uma coluna de uma tabela, o objetivo é identificar além do tipo sintático (string, data, número) o tipo semântico (nome de pessoa, nome de lugar, data de nascimento, data da transação, quantidade de itens, ...)

É um problema de classificação, logo o conjunto de tipos (classes) deve ser definido (por exemplo os tipos extraídos da DBPedia)

No Sherlock: pega o header da coluna e os valores da coluna. Nos valores das colunas é realizado um Feature Extraction considerando: distribuição de caracteres, word embeddings (em caso de strings), paragraph vectors (toda a coluna é tratada comoum parágrafo) e estatísticas globais (27 tipos). As features são agrupadas para serem classificadas em 78 tipos da DBPedia (ontologia genérica). Usa redes neurais, a primeira RN é para compactar as features e a segunda para classificar.

Como adicionar novos tipos? Como adaptar a modelos conceituais específicos? 

Como melhorar o desempenho de alguns tipos? Como considerar o CONTEXTO da coluna (a tabela, outras colunas)? .... SATO

O contexto aqui considera toda a tabela, suas linhas (global) e o tipo das demais colunas da mesma tabela (local) ... aqui não é RN

Exemplo: cidade natal (natural de) ou cidade como elemento da divisão do território. 

Usam topic modeling para estimar o que se trata da tabela. Uma tabela tem uma intenção, existe uma entidade associada a tabela. LDA é um modelo probabilístico que dado um conjunto de palavras descrevem os tópicos. 
 
A entrada é a saída do Sherlock + o vetor global da tabela e a saída é a probabilidade da coluna pertencer a cada um dos 78 tipos semânticos ... melhoria da predição considerando o contexto global.

Usam CRF (Conditional random fields) para identificar o contexto local, as colunas vizinhas (anterior e posterior) são consideradas. Para a coluna K temos a maior probabilidade do tipo t(K) e devem ser associados os t(K-1) e t(K+1) então é feita a combinação par a par dos tipos  ... melhoria da predição considerando o contexto local.

Aula 25/10 - https://youtu.be/7uMpnOo8KzQ
 
Skluma prático ... não funcionou !!!

Usou 3 fontes de informação, uma do site basededados.org

Cada extrator é um container docker separado o que isola as dependência e permite a execução em paralelo. Usa o sqlite para metadados dos arquivos.

o principal é o skluma.py e o arquivo de configuração é o skluma.config

Só funcionou até a etapa de crawler dos arquivos (de acordo com o path informado)

Aula 08/11 - https://youtu.be/YPBr2Guj9NE
 
Projeto de Interoperabilidade da TECGRAF aceito na iiWAS2021

Polystores: multi modelos, base de dados heterogêneas e uma única linguagem de consulta,podem ter diferentes níveis de acoplamento
BDA = Virtual KG .... integração virtualizada, dados integrados em uma visão de grafo e enriquecidos com ontologias
Microserviço: fontes de dados consumidas através de serviços de modo independente, flexível e autônomo. Alta capacidade de escalabilidade. 

Trabalhos relacionados usam ontologias. 

Modelo Conceitual e protótipo da arquitetura de micro serviços. Ontologia de domínio para definir o vocabulário comum e uma Ontologia de serviço para montar as consultas. Interface do usuário para a especificação das consultas.

Ontop - camada de mapeamento entre a ontologia e as fontes de dados (SPARQL x SQL)
Apache Kafta - orquestração de micro serviços

Caso de Uso para avaliar a efetividade e eficiência da arquitetura em realizar a integração. O gargalo foi o Ontop.

Aula 08/11 -  https://youtu.be/Finl6ugepS8
 
Integrity Constraints: projeto de BD, integridade de dados, consistência, regras para dependência funcional (condicional ou não) = SE ISSO ENTÃO AQUILO 

Lógica de primeira ordem tem espaço de busca muito grande e baixa eficiência = Denial Constraints seriam um subconjunto de lógica de primeira ordem que possui decidibilidade com um conjunto de regras de inferência e uma algoritmo.

As DCs precisam ser rankeadas para apresentação ao usuário, mais relevantes. Uma métrica (score) é calculado baseado nos conceito de quão sucinta é a DC (mais curta) e de cobertura da DC (mais longas, baseadas em significância estatística)

Se a base de dados já contém erros não será possível gerar automaticamente todas as DC válidas ao mesmo tempo que um número excessivo de DCs geradas podem derivar regras que estão muito ajustadas a instância do BD (overfitting) e não permitem a inserção de novos dados válidos segundo as regras de negócio. Logo a geração de DCs deve ser aproximada e não exata.

Não gera todas as DCs possíveis, segue regras baseadas nas tabelas e atributos para gerar um conjunto mínimo de predicados. Para cada tupla gera o conjunto de evidência para identificar para cada par de tupla quais predicados são válidos (Nt x Np) mas pode ser otimizado, paralelizando. Remove redundantes e faz poda no espaço de busca.

DCFinder é uma otimização na geração de um conjunto de evidências. Gera uma lista indexada (PLIs) em tempo linear para a busca de quais pares de tuplas atendem a um determinado predicado. Adiciona um novo conceito para a métrica de rankeamento (grau de aproximação para quantas tuplas podem violar a DC) e também usa a métrica para a poda.

Aula 29/11 - https://youtu.be/EPaBspZTpIU & https://youtu.be/Nz6RrLiu3dA

Ferramenta ADnEV para schema match ... também não funcionou bem, o código do GitHub tinha pouca informação sobre dependência e pré-requisitos, erros na instalação

Vídeo adicional sobre Debate - Search Engines como Solr e ElasticSearch -> https://youtu.be/SzZ_A9G6PMY .... sem apresentação, somente a fala.

Comentários

Postagens mais visitadas deste blog

Connected Papers: Uma abordagem alternativa para revisão da literatura

Durante um projeto de pesquisa podemos encontrar um artigo que nos identificamos em termos de problema de pesquisa e também de solução. Então surge a vontade de saber como essa área de pesquisa se desenvolveu até chegar a esse ponto ou quais desdobramentos ocorreram a partir dessa solução proposta para identificar o estado da arte nesse tema. Podemos seguir duas abordagens:  realizar uma revisão sistemática usando palavras chaves que melhor caracterizam o tema em bibliotecas digitais de referência para encontrar artigos relacionados ou realizar snowballing ancorado nesse artigo que identificamos previamente, explorando os artigos citados (backward) ou os artigos que o citam (forward)  Mas a ferramenta Connected Papers propõe uma abordagem alternativa para essa busca. O problema inicial é dado um artigo de interesse, precisamos encontrar outros artigos relacionados de "certa forma". Find different methods and approaches to the same subject Track down the state of the art rese...

Knowledge Graph Embedding with Triple Context - Leitura de Abstract

  Jun Shi, Huan Gao, Guilin Qi, and Zhangquan Zhou. 2017. Knowledge Graph Embedding with Triple Context. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (CIKM '17). Association for Computing Machinery, New York, NY, USA, 2299–2302. https://doi.org/10.1145/3132847.3133119 ABSTRACT Knowledge graph embedding, which aims to represent entities and relations in vector spaces, has shown outstanding performance on a few knowledge graph completion tasks. Most existing methods are based on the assumption that a knowledge graph is a set of separate triples, ignoring rich graph features, i.e., structural information in the graph. In this paper, we take advantages of structures in knowledge graphs, especially local structures around a triple, which we refer to as triple context. We then propose a Triple-Context-based knowledge Embedding model (TCE). For each triple, two kinds of structure information are considered as its context in the graph; one is the out...

KnOD 2021

Beyond Facts: Online Discourse and Knowledge Graphs A preface to the proceedings of the 1st International Workshop on Knowledge Graphs for Online Discourse Analysis (KnOD 2021, co-located with TheWebConf’21) https://ceur-ws.org/Vol-2877/preface.pdf https://knod2021.wordpress.com/   ABSTRACT Expressing opinions and interacting with others on the Web has led to the production of an abundance of online discourse data, such as claims and viewpoints on controversial topics, their sources and contexts . This data constitutes a valuable source of insights for studies into misinformation spread, bias reinforcement, echo chambers or political agenda setting. While knowledge graphs promise to provide the key to a Web of structured information, they are mainly focused on facts without keeping track of the diversity, connection or temporal evolution of online discourse data. As opposed to facts, claims are inherently more complex. Their interpretation strongly depends on the context and a vari...