1 |
[pt] METODOS DE BUSCA POR SIMILARIDADE EM SEQUÊNCIAS TEMPORAIS DE VETORES COM UMA APLICAÇÃO À RECUPERAÇÃO DE ANÚNCIOS CLASSIFICADOS / [en] STAGED VECTOR STREAM SIMILARITY SEARCH METHODS WITH AN APPLICATION TO CLASSIFIED AD RETRIEVABRUNO FRANCISCO MARTINS DA SILVA 22 February 2024 (has links)
[pt] Uma sequência temporal de vetores (vector stream) pode ser modeladacomo uma sequência de pares ((v1, t1). . .(vn, tn)), onde vk é um vetor e tk écarimbo de tempo tais que todos os vetores são da mesma dimensão e tkmenor que tk+1. O problema de busca por similaridade em sequências temporais devetores é definido como: Dado um vetor (de alta dimensão) v e um intervalode tempo T, encontre uma lista ranqueada de vetores, recuperados de umasequência temporal de vetores, que sejam similares a v e que foram recebidosdentro do intervalo de tempo T. Esta dissertação primeiro introduz umafamília de métodos de busca por similaridade em sequências temporais devetores que não dependem da sequência completa, mas se adaptam à medidaque os vetores são incluídos na sequência. Os métodos geram uma sequênciade índices, que são então usados para implementar uma busca aproximadado vizinho mais próximo na sequência temporal de vetores. Em seguida, adissertação descreve uma implementação de um método da família baseado em Hierarchical Navigable Small World graphs. Utilizando esta implementação,a dissertação apresenta uma ferramenta de busca de anúncios classificadosque oferece recuperação de anúncios à medida que usuários continuamentesubmetem novos anúncios. A ferramenta é estruturada em um módulo principale três módulos auxiliares, sendo que o módulo principal é responsável porcoordenar os módulos auxiliares e prover uma interface para o usuário, e osmódulos auxiliares são responsáveis pela codificação dos textos e imagens emvetores, a indexação dos vetores, e o armazenamento dos textos, imagens evetores. Por fim, para avaliar a ferramenta, a dissertação utiliza um conjuntode aproximadamente 1 milhão de registros com as descrições de anúnciosclassificados e suas imagens. Os resultados mostraram que a ferramenta atingiuuma precisão de 98 por cento e um recall de 97 por cento. / [en] A vector stream can be modeled as a sequence of pairs ((v1, t1). . .(vn, tn)),
where vk is a vector and tk is a timestamp such that all vectors are of the
same dimension and tk less than tk+1. The vector stream similarity search problem is
defined as: Given a (high-dimensional) vector q and a time interval T, find a
ranked list of vectors, retrieved from a vector stream, that are similar to q and
that were received in the time interval T. This dissertation first introduces
a family of vector stream similarity search methods that do not depend on
having the full set of vectors available beforehand but adapt to the vector
stream as the vectors are added. The methods generate a sequence of indices
that are used to implement approximated nearest neighbor search over the
vector stream. Then, the dissertation describes an implementation of a method
in the family based on Hierarchical Navigable Small World graphs. Based on
this implementation, the dissertation presents a Classified Ad Retrieval tool
that supports classified ad retrieval as new ads are continuously submitted.
The tool is structured into a main module and three auxiliary modules, where
the main module is responsible for coordinating the auxiliary modules and for
providing a user interface, and the auxiliary modules are responsible for text
and image encoding, vector stream indexing, and data storage. To evaluate the
tool, the dissertation uses a dataset with approximately 1 million records with
descriptions of classified ads and their respective images. The results showed
that the tool reached an average precision of 98 percent and an average recall of 97 percent.
|
2 |
[en] PARALLEL PROGRAMING IN THE REDIS KEY-VALUE DATASTORE / [pt] PROGRAMAÇÃO PARALELA NO BANCO DE DADOS CHAVE-VALOR REDISJUAREZ DA SILVA BOCHI 12 April 2016 (has links)
[pt] Redis é um banco de dados chave-valor de código livre que dá suporte à
avaliação de scripts Lua, mas sua implementação utiliza apenas uma tarefa
de sistema operacional. Scripts longos são desencorajados porque a avaliação
do código é bloqueante, o que pode causar degradação de desempenho para
os demais usuários. Através da aplicação do modelo de concorrência M:N,
que combina tarefas de nível de sistema operacional com tarefas do nível
de usuário, adicionamos no Redis a capacidade de execução de scripts em
paralelo, permitindo que todos os núcleos do servidor sejam explorados.
Com a utilização de corotinas Lua, implementamos um escalonador capaz
de alocar e suspender a execução de tarefas de nível de usuário nos núcleos
disponíveis sem necessidade de alteração do código dos scripts. Este modelo
permitiu proteger o programador das complexidades naturais do paralelismo
como sincronização no acesso a recursos compartilhados e escalonamento
das tarefas. / [en] Redis is an open source key-value database that supports Lua programming
language scripts, but it s implementation is single threaded. Long running
scripts are discouraged because script evaluation is blocking, which may
cause service levels deterioration. Applying the M:N threading model,
which combines user and operating system threads, we added to Redis the
ability of running scripts in parallel, leveraging all server cores.With the use
of Lua coroutines, we implemented a scheduler able to allocate and suspend
user-level tasks in the available cores without the need of changing scripts
source code. The M:N model allowed us to protect the programmer from the
natural complexities that arise from parallel programming, such as access
to shared resources synchronization and scheduling of tasks into different
operational system threads.
|
Page generated in 0.0381 seconds