Aula 18/08 - https://youtu.be/J6wbYo50Htw
RDF não faz distinção entre dados e metadados então uma palavra chave por dar match em um valor, uma classe ou uma propriedade. Além disso não é necessário ter um esquema para essa consulta e nem para adicionar dados ao grafo (schema-less). O esquema conceitual é prescritivo.
Etapas do RDF Keyword Search: (1) Keyword Match para selecionar os melhores nós; (2) Node connection com o menor número de arestas; (3) Node ranking para organizar a respostas (top K)
Steiner tree: nós selecionados que são terminais e nós intermediários que estão no caminho (é um problema NP Completo)
Abordagens: (1) Baseado em Esquema; (2) Sumarização do Grafo; (3) Atravessar o Grafo (caminho)
Baseado em esquema é necessário fazer o match e, se for objeto, identificar a propriedade e/ou classe. Depois vai ao esquema para achar o caminho mínimo entre as propriedades e/ou classes.
Computar o resumo do grafo: minerar o grafo para extrair padrões como se fosse um esquema conceitual ou trabalhar com amostragem, KMV-Synopsis; É melhor que a abordagem com esquema pq trabalha com instâncias do grafo e o grafo nem sempre segue o esquema mas é difícil gerenciar as sinopses em KB grandes e com atualização constantes (problemas em aberto)
KMV-Synopsis: usar função de hash nos nós do grafo RDF e pegar os K (~100) menores valores que a função retorna, permite estimar o coeficiente de Jaccard e Set Containment com as amostras (sinopses),
RDF node ranking pode usar PageRank mas não tem semântica, InfoRanking é outra medida que considera a quantidade de atributos do nó.
Pergunta: Nesse exemplo Taylor
Oscar, match se deu com dois nós e com isso é possível que exista um
caminho entre eles. E se a consulta só tivesse uma palavra ou o match só
ocorrer em um nó, não tem resposta ou a resposta são as triplas ligadas
a esse nó? A resposta pode ser um nó só se as palavras chaves fizerem match com os atributos desse nó.
Aula 25/08 - https://youtu.be/vybmD31tHN0
Entity Relatedness: qual é a relação entre duas entidades? Como explicar de modo resumido essas relações? Como identificar os caminhos mais interessantes e o representante desse cluster?
(1) Identificar caminhos, fazer clustering do caminhos e identificar o caminho mais representativo de cada cluster (2) Identificar caminhos, filtrar e ordenar
Dada uma entidade origem e outra destino, calcula o caminho e define um template (graph path) e tenta localizar outras pares de entidades que satisfazem a mesma relação.
Estratégia (Backward Search): faz uma BFS usando o nó origem e destino e irá parar quando chegar na outra ponta. Os nós visitados devem ser semelhantes ao nó de partida e a semelhança é calculada com os conjuntos de vizinhos de cada nó (por exemplo Jaccard, Wikipedia Link-based Measure - WLM ou SimRank)
SimRank: é parecido com o PageRank, pode ser pré computado. Paper do ACM SIGKDD
Medidas de ranqueamento dos caminhos entre as entidades: PF-ITF, EBR e PMI
PF-ITF ... (1) calcular a frequência de uma aresta p que chegam a um nó w e dividir por todas as arestas que chegam em w IN (2) calcular a frequência de uma aresta p que saem a um nó w e dividir por todas as arestas que saem em w e OUT (3) calcular o inverso da frequencia da aresta p
E no final calcular com x = out e x = in
E calcular para cada caminho o score
Score (path(w0, wn), G) = score(path(w0,w1), G) + ... + score(path(wn-1,wn), G) / n, onde n é o tamanho do caminho
Exclusivity-based Relatedness (EBR): quanto mais próximo de 1 mais raro.
Para um caminho calcular a exclusividade de cada aresta.
PMI: baseado em co-ocorrência
Serendipitous Search: fazer achados não convencionais, não esperados, fortuitos, ao acaso. Pode ser por ANALOGIA!!
Usar a opção SEE ALSO.
Aula 02/09 -> no final desse post e desse outro post
Aula 08/09 -> no final desse post
Aula 15/09 -> https://youtu.be/7PMmXYgKWqY
Tese Yenier - Duas aplicações
(1) Aplicação de Busca em grafo RDF sem esquema
Como mostrar a comparabilidade com outros algoritmos (com esquema ou sem)
Usar KMV-Synopses quando não tem esquemas, calcular o coeficiente de Jaccard Generalizado (simétrico) é crítico então pode ser interessante estimar. KMV_synopses é usada para estimar a cardinalidade de um conjunto usando uma amostra dos conjuntos. Set Containment (cardinalidade da interseção de dois conjuntos dividido pela cardinalidade de um deles por isso não é simétrica)
Aplicar uma função de hash em relação a uma amostra S do conjunto D. A função de hash mapeia no seu contradomínio, que deve ser muito grande para evitar colisão (64 bits por exemplo) e depende do número de elementos estimados para os conjuntos. Pegar os K menores como amostra.
Algoritmo tem duas partes: Pré processamento (calculo das KMV-S do domínio e contradomínio de cada propriedade, para todas as triplas de um propriedade e para cada instância de uma classe) e Busca Online (o match das palavras chaves e a construção de query SPARQL é igual a Grettel)
Na Busca Online são construídas as "arvores" iniciais com o match, depois a KMY_Sy é usada para medir a semelhança entre os conjuntos com a estimativa do coeficiente de Jaccard. Os nós são "juntados" se o coeficiente for alto (node fusion). Acrescentar arestas se o domínio de uma aresta for semelhante a um dos conjuntos e o mesmo para o contradomínio, nesse caso usa o Set Containment (edge addition). Depois adiciona uma aresta para o que ficou desconectado como contra domínio (tree expansion) e aplica as operações anteriores. A query SPARQL é gerada substituindo sujeito e objeto por variáveis e usando as propriedades que formaram o grafo conexo.
Datasets com esquema Mondial e IMDb e ferramenta QUIOW, comparar com a abordagem sem esquema. Usou MD5 como hash. Benchmark de consultas com 50 consultas (Coffman). O esquema não garante que o grafo esteja aderente a ele (schemaless), ao usar as instâncias garante a visão dos dados reais.
Métricas: Top-1 e RR são para algoritmos com relevância / ranking
Comparar com Dosso e Silvello (TSA + BM25 & TSA + VDP), métricas Prec@K (precision at K) usando os mesmos datasets (versão dos dados, sintéticos e reais)
(2) Trajetórias como sequencias de pontos de interesse (um grafo ligando o ponto A ao D, passando por B e C). Um alfabeto próprio para representar trajetórias. Trajetórias não precisam ser só de deslocamentos.
Aula 22/09 -> https://youtu.be/5Hu66PK5By8
Q&A com DL
Parte 1 - Baseado em 3 artigos
Q&A é do domínio de NLP
Baseline Models:
(1) LSTM Long Short Term Memory: Recurrent Neural Network (RNN)
(2) GRU
(3) Sequence to sequence
Rede de memória, rede de memória dinâmica e rede fim a fim
Parte 2 - Baseado em 3 artigos
Sinergia com Data Lake e schema alignment. Escopo é Discovery, encontrar o dado a ser utilizado
Métricas de similaridade não seriam suficientes para avaliar quanto os datasets são relacionados. Os scores seriam black-boxes.
Abordagens em DL não tem explicabilidade
Proposta não supervisionada para alinhamento (rule based). Usando evidências semânticas como o rótulo e a descrição das tabelas e atributos. Depende de um Data Lake com bons metadados. Usa wordnet para sinônimos.
Na proposta supervisionada (transformer based) também usa as mesmas entradas mas aplica o BERT
Segundo artigo usa RDF, SPARQL e foi usado em ambiente real governamental sobre COVID como um Chat Bot, Framework Qanary. As perguntas de entrada são usadas para enriquecer o modelo.
Aula 29/09 -> no final desse post
Aula 04/10 -> https://youtu.be/4W7TOhGhsTM
Searching Documents using Knowledge Bases
A busca precisa realizar Entity Linking de modo a identificar as entidades nomeadas na consulta e na base de conhecimento.
Open Information Extraction, geram triplas, principalmente em RDF sobre fatos (com certeza ou probabilidade).
A proposta do paper tem uma lista de palavras chaves como entrada. Em um primeiro momento é feito o mapeamento das palavras chaves em conhecimento. A KB é composta por metadados dos documentos, o texto completo e as entidades que são mencionadas no texto com seus relacionamentos.
Abordagem schema-agnostic: não depende da definição de esquemas
Usam KB externos também para acrescentar mais conhecimento. Usou também a reificação para exemplificar a geração da KB.
O que é contexto para esse trabalho? Seriam os detalhes das entidades.
O baseline do primeiro experimento é o uso do Solr básico.
Aula 20/10 -> https://youtu.be/YAwXGRFn35c
NLIDB
Sistema LUNAR, década de 80
Exemplo English Query (SQL Server) - 1996 a 2003
Frases mais complexas, operadores de agrupamento
Componentes do NLIDB: módulo de conversão da linguagem natural na linguagem do SGBD, contempla tolerância na especificação da consulta (flexibilidade) mas nem sempre a cobertura linguística é completa, estão sujeitas a ambiguidades tanto linguísticas quanto conceituais
Text-to-SQL
Estado da Arte: ML com modelos Seq2seq e arquitetura encoder-decoder
Datasets: WikiSQL e Spider
Aula 27/10 -> https://youtu.be/x_WpOEQKnD4
NeuralDB
Redes Neurais podem ser usadas para suspender as noções fundamentais de DB: por exemplo é necessário um esquema?
NeuralDB não tem esquema, armazena e consulta qq dado em linguagem natural (sentenças + timestamp). As respostas não visam atender a semântica binária (certo ou errado) das consultas.
Treinamento (supervisionado) - dataset com Database D + query Q + answer A
Dividir para conquistar no treinamento do modelo
Os fatos e a consulta são a entrada para a camada de Support Set Generator (SSG). Na próxima camada, o Neural SPJ (select project join), recebe esses supporting sets e a query. A camada de agregação usa a query e o query base derivation, que é a saída do Neural SPJ. O SSG é composto de classificadores.
Acurácia alta nos resultados do experimento
Se o modelo é treinado com um conjunto de fatos necessários para responder, a performance é maior mas se houverem mais fatos, o desempenho cai mas se mantém na faixa de 80%. O volume de fatos é baixo mas a abordagem de transformers não requer um grande dataset.
Dataset WikiNLDB is a novel dataset for training Natural Language Databases (NLDBs) which is generated by transforming structured data from Wikidata into natural language facts and queries.
Link para o paper -> https://aclanthology.org/2021.acl-long.241.pdf & https://dl.acm.org/doi/pdf/10.14778/3447689.3447706
Outro vídeo sobre o paper -> https://youtu.be/Vo9L0LETMI4
Nesse link tem uma parte sobre o artigo na ACL
Given a natural language question, we first want to retrieve several relevant facts (supporting facts). Then, having a query and m supporting sets, we perform a join (select-project join, SPJ operator, okay, now it qualifies as a database 😀) against each pair (query, support) to find an answer or confirm its absence (extractive QA). Finally, join results are aggregated with simple post-processing.
It seems that, currently, the crux of NL DBs is in the retrieval mechanism — we don’t want to create a powerset of all possible combinations but extract only relevant ones.
Aula 03/11 -> https://youtu.be/mVW4Vc5GoNo
* não foi o último capítulo do livro anterior ....
IR: indexação, recuperação e ordenação são fases distintas
A indexação seria o treinamento do modelo e a recuperação e ordenação seriam condensadas em inferência do modelo
1. Beyond Language Models: representar documentos e queries
2. Multi-task learning: IR + Q&A + Recomendar + Sumarizar
3. Zero and Few Shot learning: poucos dados de treinamento (rotulados)
4. Response generation: apresentar evidências para as respostas geradas
5. Raciocínio Lógico, Aritmético, Espacial ou Temporal
6. Combinação - Multi modal (texto, imagem)
7. Multilingue
8. Increasing Learning: não precisar atualizar todo o modelo, atualização incremental
Google MUM (MultiTask Unified Model): atende a algumas dessas diretrizes
Aula 10/11 -> https://youtu.be/AdR7KWsXB9E
JINA AI - framework de busca
Tipo de dado primitivo: document ... pode ser um arquivo de texto, imagem, vídeo, arquivo de som, tabela, ...
Um fluxo de executores (workflow) é a construção do sistema de busca. Os executors (algoritmos) são publicados no Jina Hub.
Para realizar o ajuste dos parâmetros das redes neurais existe o Jina finetuner
A busca multimodal, texto + image, permite calibrar qual dos dois tem mais peso na busca por similares
Aula 17/11 -> https://youtu.be/7tmqQ-y-hNQ
Utiliza medidas de distância como geográfica (ou diferença para dados contínuos) e similaridade para dados qualitativos
O usuário pode escolher as métricas e unidades de medida além de informar o peso de cada característica na consulta
Dados, consultas e resultados podem ser fuzzy.
VQL é a linguagem de consulta, foi formalizada como SQL
Aula 24/11 -> https://youtu.be/x7Jh8lotQJw
Transformers T0 (criados depois do BERT) pelo Hugging Face
GRU, LSTM, RNN são estado da arte de modelos de linguagem para tradução automática
Transformers
T0 tem 11 milhões de parâmetros e foram construídos para não serem retreinados e aplicados em diferentes contextos.
O T5 foi treinamento em cima de uma base de Q&A e o T0 é um aprimoramento dele.
T5 faz tradução automática, calcula similaridade textual semântica (STSB) e sumarização.
Abordagem zero-shot não treina nada. Na few shot learning pode usara abordagem de transfer learning e retreinar somente a última camada (classificação) usando poucas instâncias
Tem um modelo small e outro mais completo.
Desafio da disciplina de DL que o JP construiu também foi apresentado: modelo multimodal de imagem e texto. Modificação do LeNet. -> https://youtu.be/x7Jh8lotQJw?t=1583
Comentários
Postar um comentário
Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.