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.
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:
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.
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.
Ótima definição de semantic search
ResponderExcluir