Pular para o conteúdo principal

Pesquisa Bibliográfica I - Semantic Search on Knowledge Bases

Hoje (15/12) comecei a pesquisar sobre "semantic search" na literatura mais recente.Fiz "foward snowballing" de um survey que usei no Mestrado.

MANGOLD, C. A. ― Survey and classification of semantic search approaches. International
Journal of Metadata Semantics and Ontology, Vol. 2, Nr. 1, 2007.

Achei uma definição na Encyclopedia of Big Data Technologies (Springer 2018).

Cudre-Mauroux P. (2019) Semantic Search. In: Sakr S., Zomaya A.Y. (eds) Encyclopedia of Big Data Technologies. Springer, Cham. https://doi.org/10.1007/978-3-319-77525-8_231

"Semantic Search regroups a set of techniques designed to improve traditional document or knowledge base search. Semantic Search aims at better grasping the context and the semantics of the user query and/or of the indexed content by leveraging natural language processing, Semantic Web, and machine learning techniques to retrieve more relevant results from a search engine. "


Em termos de abordagens entendi que para o nosso caso (busc@NIMA) interessa o seguinte grupo:

techniques retrieving semi-structured data (e.g., entities or RDF triples) from a knowledge base (e.g., a knowledge graph or an ontology) given a user query formulated either as natural language text or using a declarative query language like SPARQL.

Aqui o autor considera "natural language text" como lista de palavras chaves OU pergunta-resposta.
 
Document-based search

Abordagens da Web Semântica traduzem a lista de palavras-chaves em uma consulta conjuntiva (AND) em lógica de descrição (DL) para ser avaliada em relação a uma knowledge base (KB) subjacente.

Abordagens em Machine learning capturaram o contexto e semântica das palavras ou entidades que aparecem nos documentos considerando a co-ocorrência das palavras uma vez que as palavras que ocorrem em contextos semelhantes tendem a ser semanticamente relacionadas.

Knowledge base-based search
 
Abordagens consideram consultas conjuntivas e inferência lógica combinada com a análise do conteúdo da KB.
 
Outras fazem uso de técnicas de ML comoWord embedding como a RDF2Vec que aprende representações vetoriais de entidades de grafos RDF (Ristoski and Paulheim 2016).

Exemplos de sistemas: 
(1) SemSearch (2006) aceita consultas na forma de lista de palavras-chave, traduz as consultas do usuário em consultas formais, explorando os rótulos das entidades na base de conhecimento (como?), executa a consulta resultante na base de conhecimento, e finalmente classifica os resultados levando em consideração o número de palavras-chave presentes nos resultados da pesquisa.
(2) SHOE (2000) possui uma interface para formular consultas estruturadas baseadas em ontologias para encontrar páginas web (previamente coletadas).

Schema.org é um esforço de padronização fundada pelos principais mecanismos de busca para incorporar dados semi-estruturados em documentos da web e assim facilitar a busca semântica online.

E esse documento indicou o survey Semantic Search on Text and Knowledge Bases de 2016 
 
Hannah Bast, Buchhold Björn, and Elmar Haussmann. 2016. Semantic Search on Text and Knowledge Bases. Found. Trends Inf. Retr. 10, 2–3 (6 2016), 119–271. DOI:https://doi.org/10.1561/1500000032
 
Neles os autores usam a classificação abaixo para agrupar os sistemas/propostas e descrevem cada um termos de técnicas, datasets e benchmarks:

image.png

No survey, Natural Language Search e Question Answering são sinônimos.

O busc@NIMA se encaixaria no item 4.4 Keyword Search on Knowledge Bases.
 
A definição de KB para este survey é "a collection of records in a database, which typically refer to some kind of “knowledge” about the world. By convention, records are often stored as triples in the form subject predicate object <s p o>. To qualify as a knowledge base, identifiers should be used consistently: that is, the same entity or relation should have the same name in different records."
 
Nesse grupo existem sistemas/propostas que usam RDBMS e outros que usam TripleStores.
Um dos trabalhos citados neste item usa a WordNet para identificar os sinônimos da lista de palavras outros usam para desambiguação de homônimos. 
 
Mas uma diferença que percebi é que no busc@NIMA conhecemos o modelo, a estrutura do grafo, e os elementos que queremos apresentar então a consulta em SPARQL já está formulada como um sub grafo (graph pattern matching) e nessas abordagens a consulta é um (ou mais) sub grafo conexo gerado a partir do caminho (graph path) entre os nós que foram mapeados pelas palavras chaves.

Therefore, systems try to connect the elements that were identified via the keywords, to form a connected (sub-)graph. This can be done by exploring the neighborhood of identified elements and finding the smallest (spanning) tree connecting all elements. Often, this is an instance of the Steiner tree problem, which is NP-complete. Hence, a lot of work tries to find efficient and good approximations. From the matched graph, a structured query can be derived, for example, by replacing identified classes with result variables.

Neste survey também tem uma lista de fontes (conferências e journals) que podem ser usados para selecionar outros papers no tópico de pesquisa "semantic search".

Information Retrieval: SIGIR, CIKM, TREC, TAC, FNTIR.
Web and Semantic Web: WWW, ISWC, ESWC, AAAI, JWS.
Computer linguistics: ACL, EMNLP, HLT-NAACL.
Databases / Data Mining: VLDB, KDD, SIGMOD, TKDE.

E uma sessão de glossário com algumas definições interessantes e também tem definições importantes para o entendimento da classificação e das técnicas ao longo do texto. A seguir algumas delas:

  • Naned-Entity Resolution (NER): identify that two different strings refer to the same entity. Applied to proper nouns which refer to an entity from a few classes: person, location, and organization.
  • Named-Entity Disambiguation (NED): decide for each identified sequence to exactly
    which entity from the knowledge base it refers.
  • Ontology merging and matching: reconciling and aligning naming schemes and contents of different knowledge bases;
  • Reasoning/Inference: using reasoning to infer new triples from a given knowledge base;
  • Information extraction: extracting structured information from text;
  • Ontology: the (typically hierarchical) system of types and relations behind a knowledge base. WordNet [Miller, 1992] is a large ontology of the concepts of general-purpose real-world knowledge but it also contains statements about “concrete entities” 
  • Reification: break down any structured data into triples, without loss of information. N-ary relations
  • Graph representation: KB as a graph, where the nodes are the entities and the edges are the relations.
    When n-ary relations are involved, with n > 2, these edges become hyperedges (connecting more than two entities) and the graph becomes a hypergraph.
  • Part-of-Speech (POS): marcação aplicada as palavras para identificar substantivos (NN), verbos (VB), adjetivos (JJ) e advérbios (RB) assim como identificar palavras que correspondem a entidades do mundo real (named entity recognition - NER).  Não costuma dar bons resultados para consultas de listas de palavras chaves.
A sessão 3 do artigo foca em tarefas de NLP aplicadas em busca semântica. Além do POS, NER e NED, usa-se co-referência e anáfora, parsing de sentença para gerar uma árvore cujas folhas são as palavras/expressões e (1) os nós internos são as classes (no primeiro nível noun phrase (NP), verb phrase (VP), subordinate clause (SBAR), or independent clause (S).) - constituent parse ou (2) ou as arestas são direcionadas do governor (head) para o dependent, sendo a raíz da árvore, o verbo principal da sentença - dependency parse além de Word Embedings.
 
Word vectors or word embeddings represent each word as a real-valued vector, typically in a space of dimension much lower than the size of the vocabulary. The main goal is that semantically similar words should have similar vectors (e.g., with respect to cosine similarity). Word vectors can be learned in an unsupervised fashion from a huge text corpus, without additional knowledge input.
>> No item 3.4.1 comenta-se sobre como gerar as matrizes de co-ocorrências e como aplicar redução de dimensionalidade assim como é feito em sistemas de recomendação.

Comentários

Postar um comentário

Sinta-se a vontade para comentar. Críticas construtivas são sempre bem vindas.

Postagens mais visitadas deste blog

Aula 12: WordNet | Introdução à Linguagem de Programação Python *** com NLTK

 Fonte -> https://youtu.be/0OCq31jQ9E4 A WordNet do Brasil -> http://www.nilc.icmc.usp.br/wordnetbr/ NLTK  synsets = dada uma palavra acha todos os significados, pode informar a língua e a classe gramatical da palavra (substantivo, verbo, advérbio) from nltk.corpus import wordnet as wn wordnet.synset(xxxxxx).definition() = descrição do significado É possível extrair hipernimia, hiponimia, antonimos e os lemas (diferentes palavras/expressões com o mesmo significado) formando uma REDE LEXICAL. Com isso é possível calcular a distância entre 2 synset dentro do grafo.  Veja trecho de código abaixo: texto = 'útil' print('NOUN:', wordnet.synsets(texto, lang='por', pos=wordnet.NOUN)) texto = 'útil' print('ADJ:', wordnet.synsets(texto, lang='por', pos=wordnet.ADJ)) print(wordnet.synset('handy.s.01').definition()) texto = 'computador' for synset in wn.synsets(texto, lang='por', pos=wn.NOUN):     print('DEF:',s

truth makers AND truth bearers - Palestra Giancarlo no SBBD

Dando uma googada https://iep.utm.edu/truth/ There are two commonly accepted constraints on truth and falsehood:     Every proposition is true or false.         [Law of the Excluded Middle.]     No proposition is both true and false.         [Law of Non-contradiction.] What is the difference between a truth-maker and a truth bearer? Truth-bearers are either true or false; truth-makers are not since, not being representations, they cannot be said to be true, nor can they be said to be false . That's a second difference. Truth-bearers are 'bipolar,' either true or false; truth-makers are 'unipolar': all of them obtain. What are considered truth bearers?   A variety of truth bearers are considered – statements, beliefs, claims, assumptions, hypotheses, propositions, sentences, and utterances . When I speak of a fact . . . I mean the kind of thing that makes a proposition true or false. (Russell, 1972, p. 36.) “Truthmaker theories” hold that in order for any truthbe

DGL-KE : Deep Graph Library (DGL)

Fonte: https://towardsdatascience.com/introduction-to-knowledge-graph-embedding-with-dgl-ke-77ace6fb60ef Amazon recently launched DGL-KE, a software package that simplifies this process with simple command-line scripts. With DGL-KE , users can generate embeddings for very large graphs 2–5x faster than competing techniques. DGL-KE provides users the flexibility to select models used to generate embeddings and optimize performance by configuring hardware, data sampling parameters, and the loss function. To use this package effectively, however, it is important to understand how embeddings work and the optimizations available to compute them. This two-part blog series is designed to provide this information and get you ready to start taking advantage of DGL-KE . Finally, another class of graphs that is especially important for knowledge graphs are multigraphs . These are graphs that can have multiple (directed) edges between the same pair of nodes and can also contain loops. The