HackCorona — como foi participar
Durante os dias 20, 21 e 22 de março tive a oportunidade de participar do HackCorona, realizado pela Bayer, Hacking HEalk, Vision Health Pioneers e a Motion Lab. Além dessas empresas, muitas outras deram apoio tanto com profissionais e experts em diversos setores quanto com banco de dados e ferramentas online para facilitar o desenvolvimento de soluções para equipes que estavam juntas, mas isoladas em suas casas. Foi muito impressionante poder ver cerca de 150 pessoas todas unidas tentando chegar em uma solução que pudesse ajudar o mundo neste momento de COVID-19.
Era possível chegar com um grupo pronto e uma ideia do que se queria desenvolver dentre 5 possíveis caminhos ou, como eu fiz, conhecer um grupo durante o evento e então começar a desenvolver algo lá.
Os desafios propostos eram:
1. Soluções digitais para redes de cuidados voluntários
2. Soluções digitais para redes de cuidados de crianças
3. Auto-diagnóstico online (Não é por nada não, mas o SUS já tem)
4. Soluções abertas para hardware
5. Sugira seu próprio desafio
Eu acabei entrando em duas equipes que tinham foco em soluções de NLP (Processamento de Linguagem Natural). Sabia alguma coisa sobre NLP? Não muito, mas queria muito aprender mais sobre isso, ainda mais que a minha equipe de hackathon do curso da Tera quer desenvolver algo com NLP.
A primeira equipe, chamada Team NLP, não tinha muito direcionamento e ficou mais aberta para cada um fazer o que quisesse, então decidi tentar resolver um desafio do kaggle que está aberto e fala sobre pesquisas científicas. Pra mim, trabalhar com pesquisas científicas é algo muito significativo. Eu realmente acredito que, se de qualquer forma, o meu trabalho conseguir ajudar um pesquisador que seja, eu estou contribuindo também com alguma pesquisa e essa pesquisa pode por sua vez fazer toda a diferença no cenário em que estamos vivendo.
O desafio do kaggle consiste de dez tarefas, onde devemos responder a 10 perguntas, trazendo as pesquisas relacionadas a essas perguntas. Para isso, usei como inspiração um outro notebook. Criei então uma barra de busca que se autocompleta conforme você digita, atualizando conforme as palavras se preenchem, para que, além das tarefas, qualquer pesquisa necessária pudesse ser pesquisada no notebook. Para as tarefas especificamente, criei um menu dropdown com uma pesquisa bem extensa, que acaba demorando alguns minutos. A principal diferença foi o cuidado com os keywords de pesquisas que eu utilizei para realizar a busca.
Este primeiro entregável eu completei na sexta-feira mesmo, com muito esforço e muita dificuldade. Eu não consigo simplesmente copiar e colar códigos, eu realmente preciso entender o porquê por trás do que estou fazendo. Entendi o porquê de definirmos classes, entendi como fazer algumas coisas interativas, entendi que infelizmente nem no kaggle nem no github é possível interagir com essas coisas interativas. Também tive a oportunidade de usar bibliotecas que no começo eram INSUPORTÁVEIS e que depois eu acabei me acostumando e gostando bastante delas (olá nltk).
Se você quiser ver como ficou meu entregável no kaggle, o link é este, se quiser ver no github, o link é esse aqui.
A segunda equipe, Metasphere, tem um líder que já veio com uma proposta, que continha três principais desafios, todos eles voltados para ajudar o ambiente acadêmico a alcançar três objetivos: reduzir o tempo para ler ou pesquisar publicações em jornais, para que demais equipes possam trabalhar em pesquisas significativas de maneira mais rápida e eficiente; prover ferramentas para que pessoas leigas consigam acessar informações verídicas e consigam ter suas próprias conclusões, não caindo nas falácias de fakenews e outras práticas do gênero; garantir a jornalistas e cientistas que consigam comunicar rapidamente seus resultados e prover mensagens de saúde rigorosas para o público. Tenho de admitir, um plano ambicioso e grande, e não tem nada que eu adore mais do que mirar na lua.
Decidimos seguir com um gráfico/mapa que trouxesse as pesquisas divididas por cluster, e que esse gráfico fosse interativo. Para a equipe de Data Science, que em suma era composta por mim e pela Agnes, cabia conseguir determinar esses clusters da melhor maneira possível. O resto da equipe, composta por designers, programadores fullstack, front end, pesquisadores, iriam analisar as melhores formas de apresentar o resultado e se ele de fato faz sentido.
Quanto ao meu desafio com a Agnes: foi de fato um desafio. A base era muito extensa, mais de 29 mil arquivos json, não temos certeza até agora se utilizamos o melhor campo para a análise, nem se a tratativa que fizemos também foi a melhor. No caso, todo abstract de pesquisa que estava vazio foi completado com o título. Retiramos os stopwords em inglês, mas quais outras línguas poderiam existir dentro de mais de 29 mil pesquisas? Fizemos a análise por dois caminhos diferentes. A Agnes analisou tudo através do modelo LDA (Latent Dirichlet Allocation) e eu tentei ir diretamente por t-SNE. Eu queria tentar já criar um modelo interativo também, porque vi isso em um outro notebook (fantástico e com diversas soluções diferentes), para que, em último caso, tivéssemos um mock-up na hora do pitch do domingo.
Por conta do tempo curtísssimo e da falta de sono (eu dormi cerca de 2h por dia de sexta pra sábado e de sábado pra domingo — vivendo a experiência real) acabei percebendo alguns erros só domingo a noite quando foi trabalhar nos hiperparâmetros do meu modelo de t-SNE, por exemplo, eu não tinha colocado um random_state. Então tava dando um resultado diferente toda vez que rodava e em cada computador de cada pessoa da equipe. Corrigi isso, corrigi outros hiperparametros e acabei chegando em um resultado bem bacana.
Se você quiser ver como ficou meu segundo entregável no kaggle, o link é este, se quiser ver no github, o link é esse aqui.
No final nenhuma das minhas equipes acabou ganhando, mas acho que quem ganhou realmente mereceu e vai aproveitar muito das conexões e da encubadora que vão ter. Uma das conclusões que uma das hosts comentou foi que fazer parte desse hackathon fez ela se sentir viva, mais viva do que ela se sentia há muito tempo. Eu partilho do mesmo sentimento.
Em nenhum momento ninguém estava nos slacks tentando se propulsionar pra ganhar o Hackathon, você via as pessoas entre os times se ajudando, porque era importante conseguir o bem maior.
Eu entrei nesse Hackathon sem saber muito sobre NLP, francamente sem saber muito sobre machine learning no geral. Continuo sem saber tanto assim, mas aprendi muito, aprendi como aprender, aprendi como compartilhar código, aprendi como dividir insights e construir código junto e isso foi ímpar. Além de toda a experiência que eu adquiri, também estou levando comigo o meu time #metasphere. Temos participantes da Alemanha, do Japão, da Geórgia e mais. Decidimos manter contato, continuar a desenvolver nosso projeto e seguir adiante com outros. ❤