Leonardo Amorim premiado no WSCAD e publica artigo no IEEE
Prêmio durante o WSCAD
Neste ano o XIX WSCAD aconteceu na cidade de São Paulo, no período de 01 a 03 de outubro e o nosso instrutor e consultor Leonardo Amorim, responsável pela criação do treinamento de Python and Hadoop for Data Engineering – um dos cursos lançados em 2018 pela 4Linux – foi premiado no Simpósio de Sistemas Computacionais de Alto Desempenho (WSCAD) – evento anual que apresenta os principais desenvolvimentos, aplicações e tendências nas áreas de Arquitetura de Computadores, Processamento de Alto Desempenho e Sistemas Distribuídos.
O artigo “A Fast Similarity Search kNN for Textual Datasets“, com autorias de Leonardo Amorim, Mateus Freitas, Paulo Silva e Wellington Martins foi selecionado dentre os 3 melhores e escolhido para menção honrosa.
Conversamos com o Leonardo Amorim e pedimos para ele nos contar um pouco mais sobre o artigo:
O artigo “A Fast Similarity Search kNN for Textual Datasets” trata da melhora de desempenho do algoritmo KNN (Os “k” vizinhos mais próximos) que tem como objetivo encontrar os “k” – documentos mais próximos dado um documento de consulta. Devido ao seu alto custo computacional, várias soluções paralelas tem sido propostas para acelerar o KNN incluindo aceleradores modernos como as GPUs.
No entanto, a maioria das propostas assumem que os dados são densos e de baixa dimensionalidade, estas condições não se aplicam a documento de texto, que é conhecido pela sua alta dimensionalidade e alta esparsidade.
Este artigo apresenta um algoritmo de granularidade fina que aplica técnica de filtragem baseada nos termos em comum mais importantes do documento de consulta usando para isto um índice invertido e sua implementação em GPU. Os resultados foram promissores alcançando um speedup de até 37 vezes.
Publicação de artigo no IEEE
Leonardo também teve um artigo publicado no IEEE World Congress on Computational Intelligence (IEEE WCCI) – maior evento técnico no campo de Inteligência Computacional.
O IEEE WCCI 2018 sediou três conferências: a IJCNN 2018 (Redes Neurais Artificiais), a FUZZ-IEEE 2018 (Lógica Nebulosa) e o IEEE CEC 2018 (Computação Evolutiva) e o objetivo deste congresso é incentivar o cruzamento de ideias entre estas três grandes áreas e fornecer um fórum para intelectuais de todo o mundo discutir e apresentar seus resultados de pesquisa em Inteligência Computacional.
O evento ocorre a cada 2 anos e neste ano ocorreu entre 8 e 13 de Julho no Rio de Janeiro, os eventos anteriores ocorreram no Canadá, China e Austrália e o próximo evento está previsto para acontecer na Escócia, em 2020.
Ele também nos deu detalhes e explicou mais sobre este artigo:
A principal contribuição do artigo “A new word embedding approach to evaluate potential fixes for automated program repair” publicado na IJCNN 2018 foi propor um novo método para avaliar a qualidade de patches (ou correções) gerados automaticamente por métodos de Reparo Automatizado de Software. Para isto foi aplicado o algoritmo Word2Vec adaptado pelos autores do artigo a fim de dar uma “nota” indicando a qualidade semântica de um código-fonte que recebeu uma correção gerada automaticamente.
O Word2Vec é uma classe de algoritmos usada para verificar a similaridade entre palavras, sentenças e até documentos de textos e é muito usado em aplicações de Processamento Natural de Linguagem, ele utiliza uma Rede Neural Artificial (RNA) simples quem tem como objetivos:
(i) criar um vetor compacto para cada palavra de um vocabulário a fim de que possa ser calculada a similaridade entre duas palavras usando como métrica o cálculo de distância cosseno;
(ii) aumentar a probabilidade quando as palavras de um corpus (como, por exemplo, a Wikipedia) concorrem com muita frequência e diminuir a probabilidade quando elas não concorrem.
Com isso é possível analisar a qualidade semântica de um documento de texto que pode ser um código-fonte de um programa. Para o segundo objetivo, a RNA usa um classificador chamado Softmax.
O Word2Vec só gera como resultado os vetores compactados que representam as palavras de um texto, mas não mostra o valor de probabilidade, dada duas palavras ou tokens de um código-fonte acontecerem em uma determinada sequência.
Para obter este valor de probabilidade, o Word2Vec foi adaptado para obtê-lo a fim de compor a “nota” que diz, que um código-fonte corrigido automaticamente é natural ou não, isto é, se é próximo de uma correção gerada por um ser humano, o algoritmo Word2Vec para atingir resultados satisfatórios deve ser treinado com uma grande base de dados (Big Data) de códigos-fontes que podem ser obtidos de projetos de Software Livre.
E porque este trabalho é importante?
É importante pois a depuração de código é frequentemente uma tarefa manual e dispendiosa, alguns trabalhos recentemente apresentaram métodos automatizados de reparo de softwares com o objetivo de reduzir o tempo de depuração.
O artigo pode ser obtido em: https://ieeexplore.ieee.org/document/8489079.
Leonardo Amorim foi responsável pela criação e atualmente ministra o treinamento Python and Hadoop for Data Engineering oferecido pela 4Linux. Para os interessados, no link é possível conhecer o conteúdo programático, diferencias e pré-requisitos do treinamento.
About author
Você pode gostar também
Atualização do Curso “Kubernetes: Orquestração de Ambientes Escaláveis da 4Linux”!
Preparados para uma jornada intensiva no universo do Kubernetes? Estamos empolgados em anunciar a atualização do nosso curso “Kubernetes: Orquestração de Ambientes Escaláveis“, que oferece uma abordagem abrangente e prática
Torne-se um especialista em PBX-IP com o curso prático da 4Linux
4Linux relança seu curso sobre “Como construir um PBX-IP na prática com Asterisk e FreePBX”. O Asterisk é um software livre e de código aberto, que implementa em software, todos
Conheça o que um SysAdmin Linux e Engenheiro DEVOPS precisam para se destacar
O que um SysAdmin Linux ou um Engenheiro DEVOPS necessita conhecer para realizar bem as suas atividades do dia a dia? É esta questão que a Job Task Analysis (JTA)