<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[itau-data - Medium]]></title>
        <description><![CDATA[Página de conteúdo produzido por quem trabalha com dados no Itaú. - Medium]]></description>
        <link>https://medium.com/itau-data?source=rss----7a16e9f0ad28---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>itau-data - Medium</title>
            <link>https://medium.com/itau-data?source=rss----7a16e9f0ad28---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 05:26:33 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/itau-data" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Modelos utilizados para processamento de linguagem natural]]></title>
            <link>https://medium.com/itau-data/modelos-utilizados-para-processamento-de-linguagem-natural-3849fb118966?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/3849fb118966</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[bert]]></category>
            <dc:creator><![CDATA[Ricardo Mazza Zago]]></dc:creator>
            <pubDate>Thu, 29 Sep 2022 12:03:10 GMT</pubDate>
            <atom:updated>2022-09-29T12:03:10.446Z</atom:updated>
            <content:encoded><![CDATA[<p>Uma breve história e seus usos</p><p>No Itaú, trabalhamos com uma elevada quantidade de textos das mais variadas fontes, para gerar insights, extrair informações de documentos, melhorar processos, mitigar riscos, entre outros objetivos. Para esse trabalho utilizamos uma serie de técnicas de NLP (<em>Natural Language Processing</em> ou Processamento de Linguagem Natural, em português), de expressões regulares (regex), algumas técnicas de <em>embeddings</em> já tradicionais e outras no estado da arte, que utilizam arquiteturas <em>“Deep Learning”</em>.</p><p>Para o uso de NLP, o primeiro passo é transformar os textos em uma representação que os modelos de <em>Machine Learning</em> possam interpretar. Uma simples e muitas vezes eficiente abordagem, é chamada <em>Bag-of-Words</em> (ou saco-de-palavras, em português).</p><p><strong>Bag-of-Words</strong></p><p>O <em>Bag-of-Words</em> utiliza a contagem de ocorrências de palavras num texto com base em uma lista de palavras, chamada de vocabulário, para construção de um vetor para treinamento de modelos. O vocabulário é construído com as palavras mais comuns do corpus, que é o conjunto de textos.</p><p>Por exemplo, supondo um vocabulário com as palavras “é”, “um”, “dois” e “três” a representação da frase “é um dois três” nesse vocabulário, daria origem ao vetor [1, 1, 1, 1]. A contagem de vezes que cada palavra do vocabulário aparece no texto é utilizada como entrada para o modelo de<em> Machine Learning</em>. A frase “é um, é dois” daria origem ao vetor [2, 1, 1, 0], já que a palavra “é” aparece duas vezes e “três” não aparece.</p><p>Os vetores resultantes contêm alguma informação do texto e podem ser utilizados para o treinamento de modelos. É claro, existem problemas nessa técnica, como se basear apenas na contagem de vezes que cada palavra aparece, sem levar em consideração sua ordem, nem o uso da palavra nos demais textos, ponto endereçado na próxima técnica.</p><p><strong>TF-IDF</strong></p><p>O TF-IDF (<em>Term Frequency–Inverse Document Frequency</em> ou em português, Frequência do Termo–Inverso da Frequência nos Documentos) é uma técnica que considera a importância relativa da palavra em relação às demais. Ou seja, a palavra “com” pode aparecer muitas vezes no texto, mas isso não a faz importante, todavia, se a palavra “cachorro” aparece muitas vezes no texto, provavelmente o tema do texto é sobre o animal.</p><p>A importância de cada palavra, ou seja, os vetores são construídos pela equação [1]:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/669/1*UzfYrGaNzcMVL1-ugnzXXA.png" /></figure><p>No qual t representa o termo, d o documento e D o corpus. O primeiro termo é responsável pela importância da palavra no documento analisado, já o segundo penaliza as palavras muito comuns. O uso do log é justificado pela “Lei de Zipf”.</p><p>Ambos os métodos citados trazem alguns problemas. Talvez o principal seja o tamanho do vetor, que cresce com o tamanho do vocabulário. Existem tratamentos como lematização e stemização, que visam reduzir o tamanho do vocabulário, por exemplo: “amigo” e “amiga” virariam “amig”. No geral os vetores resultantes são esparsos, ou seja, contêm muitos zeros. Na próxima técnica, o tamanho dos vetores é reduzido e os vetores deixam de ser esparsos.</p><p><strong>Word2vec</strong></p><p>O Word2vec é uma técnica criada em 2013 por um grupo de pesquisadores do Google [2]. Foi a primeira técnica que permitiu o treinamento de <em>embeddings</em> com grandes dimensões em bilhões de palavras.</p><p>Nas técnicas citadas anteriormente, o vetor era criado com o texto como um todo, no Word2vec cada palavra tem o seu vetor ou <em>embedding</em>. Para obter o do texto, basta somar ou fazer a média com o das palavras individuais.</p><p>Esta técnica ficou famosa por permitir operações matemáticas entre os <em>embeddings</em>, por exemplo:</p><p>rei — homem + mulher ≈ rainha</p><p>A explicação da maneira que os <em>embeddings</em> são treinados está fora do escopo deste artigo, mas basicamente podem ser utilizadas duas técnicas: o CBOW (<em>Continuous Bag-of-Words Model</em>) ou o <em>Skip-gram</em>. No primeiro, o <em>embedding</em> de uma palavra deve ser encontrado baseado nas palavras que vem antes e depois na frase, já no segundo, dado uma palavra, é buscado os <em>embeddings</em> do contexto em que ela aparece.</p><p>Outras técnicas, utilizando diferentes arquiteturas e métodos de treinamento, mas com resultados parecidos foram apresentadas posteriormente, como por exemplo o GloVe (<em>Global Vectors for Word Representation</em>) [3], desenvolvido pela Universidade de Stanford e o StarSpace, desenvolvido pelo Facebook [4].</p><p>Uma fragilidade desta técnica é que uma palavra pode ter diferentes significados a depender do contexto. Um exemplo é a palavra “verão”, que tanto pode ser a estação do ano, quanto “eles irão ver”. No Word2Vec, o <em>embedding,</em> independe do contexto, possui os mesmos valores, para ambos os significados.</p><p><strong>ELMo</strong></p><p>O ELMo (<em>Embeddings from Language Model</em>) [5] é uma técnica que utiliza Redes Neurais Recorrentes para geração de <em>embeddings</em>, introduzida em 2017 foi desenvolvida por pesquisadores do Allen Institute for Artificial Intelligence.</p><p>Os <em>embeddings</em> de cada palavra são gerados considerando toda a frase, não fixados previamente como no Word2vec. Desta forma, os <em>embeddings</em> passam a ser contextuais. Por exemplo, a depender do contexto que a palavra “verão” aparecer, ela terá um <em>embedding</em> diferente e correspondente a este.</p><p>Redes neurais recorrentes são modelos que mantêm um estado interno, assim, alimentando-as com uma frase, este estado interno é moldado pela sequência de palavras. No caso do ELMo, a rede é bidirecional, pois é alimentada na direção de leitura normal da frase e a inversa.</p><p>Um problema muito comum em redes recorrentes é o gargalo existente devido ao estado da rede recorrente, em que a performance diminui em frases mais longas. Para mitigar esse efeito, são utilizadas redes LSTM (<em>Long Short-Term Memory</em>) [6], que possuem mecanismos que ajudam a diminuir esse efeito e o mecanismo de atenção explicado a seguir.</p><p><strong>Mecanismo de Atenção e Tradução</strong></p><p>Bahdanau [7] em 2014 introduziu o conceito de Atenção (<em>Attention</em>) no uso de redes recorrentes para tradução de sentenças entre idiomas.</p><p>Redes recorrentes podem ser utilizadas para tradução da seguinte forma: o <em>embedding</em> do texto é enviado para uma rede, palavra por palavra. Com o término do texto, indicado por uma sinalização de fim da frase (&lt;EOS&gt;), o estado da rede contém as informações necessárias para a tradução. O estado é decodificado na mesma ou em outra rede recorrente, que passa a resultar na tradução. A Figura apresentada num <em>paper</em> do Google [8] ilustra a tradução de uma hipotética frase “ABC” para “WXYZ”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/567/1*K4wLCiOca-mZggz_TuTNuw.png" /><figcaption>Exemplo de tradução de “ABC” para “WXYZ”, fonte [8]</figcaption></figure><p>Esta abordagem possui o clássico problemas de redes recorrentes, na qual, em frases mais longas, o gargalo existente no estado da rede neural recorrente prejudica a sua tradução. Bahdanau [7] introduziu o conceito de atenção que mitiga esse problema. No lugar de enviar o estado final da rede recorrente, envia-se uma ponderação dos estados individuais de cada palavra do texto, em que uma palavra que tem mais importância para aquela parte do texto, terá mais peso (atenção).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/321/1*GS5ZeZY2gwClmIx2zgpAng.png" /><figcaption>Exemplo do mecanismo de atenção de uma tradução do inglês para o francês. Destaca-se palavras que devido às diferenças no idioma trocam de ordem, “<em>european economic area</em>” para “<em>zone économique européenne</em>”. Fonte Bahdanau [7]</figcaption></figure><p><strong>Transformers</strong></p><p>Os modelos <em>Transformers </em>são uma evolução da aplicação de Atenção, foram introduzidos pelo Google em 2017 [9], num <em>paper</em> com o ousado título <em>Attention Is All You Need</em> (Atenção é tudo que você precisa). Assim como o ELMo, eles são modelos que geram <em>embeddings</em> contextuais.</p><p>Portanto, como não é mais feito o uso de redes recorrentes, o problema do gargalo da informação deixa de existir, além disso, todas as entradas são lidas de uma vez pelo modelo, não mais uma a uma sequencialmente. Isso traz uma vantagem em que passa a ser mais fácil paralelizar a execução, aumentando o desempenho computacional da implantação, e diminuindo o tempo de treinamento dos modelos. Vantagem que foi utilizada para treinar modelos com número de parâmetros muito maior.</p><p>Explicar o funcionamento dos modelos <em>Transformers </em>está fora do escopo desse artigo, mas basicamente são definidos dois componentes, um <em>encoder</em> e um <em>decoder</em>, que a depender da aplicação podem ser combinados ou usados individualmente. A seguir será comentado sobre os principais modelos que fazem uso desses componentes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/217/1*dAeWgC8LIoXXuguC5Puibw.png" /><figcaption>Ilustração do <em>Transformer</em> componentes <em>Encoder</em> (esqueda) e <em>Decoder</em> (direita). Fonte [9]</figcaption></figure><p><strong>GPT</strong></p><p>O GPT (<em>Generative Pre-Training</em>) [10] é uma série de modelos <em>Transformers</em> desenvolvidas pela OpenAI que utilizam a camada “<em>decoder</em>” introduzida no <em>paper</em> de 2017. A versão inicial tem 117 milhões de parâmetros, o que para os padrões atuais é uma quantidade modesta, já o com maior quantidade de parâmetros na versão 2 possui 1,5 bilhão e na terceira versão, 175 bilhões de parâmetros.</p><p>O objetivo do GPT é predizer a próxima palavra dada uma frase. Com essa simples tarefa é possível fazer usos impressionantes do modelo. No texto de anúncio do GPT-2 [11], observam-se alguns exemplos, como escrever uma notícia sobre a descoberta de unicórnios que falam inglês na cordilheira dos Andes (<a href="https://openai.com/blog/better-language-models/#sample1">vale a leitura, o texto ficou bem bacana</a>), apenas começando a escrever a notícia e ele completando o restante. No GPT-3 [12] é possível pedir para ele escrever código fonte como JavaScript ou uma <em>query</em> SQL.</p><p>Uma característica muito importante dos modelos GPT é que, com apenas o pré-treinamento genérico, eles conseguem generalizar o aprendizado para várias tarefas, fato conhecido como <em>zero-shot learning</em>. Por exemplo, é possível realizar traduções, escrevendo uma frase em inglês e depois pedindo para traduzir para outros idiomas. Resumir um artigo, escrever o artigo e depois pedir para resumir.</p><p>Um ponto a se destacar, é que treinar esses modelos está se tornando extremamente custoso, é necessária uma grande quantidade de texto e muito poder computacional. O GPT original levou 1 mês utilizando 8 GPUs [10], enquanto o GPT-3 levaria 288 anos em uma Nvidia V100 [13].</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/563/1*Pxb0c3F7vb0bHOpN29_Prg.png" /><figcaption>Tendência do número de parâmetros dos modelos de NLP estado da arte ao longo dos anos. Fonte [13]</figcaption></figure><p><strong>BERT</strong></p><p>Em 2018, o Google publicou o modelo BERT (<em>Bidirectional Encoder Representations from Transformers) </em>[14], que faz uso do componente “<em>encoder</em>”, permitindo a geração de <em>embeddings</em> contextuais para representação de texto. O BERT faz a leitura da frase completa, bidirecional, enquanto o GPT, pela característica de geração de texto, permite apenas a leitura das palavras anteriores.</p><p>Originalmente o BERT foi treinado apenas em textos em inglês, posteriormente os pesquisadores lançaram uma versão treinada em 104 idiomas [15]. Isso permitiu que apenas um modelo fosse utilizado para tarefas em diversas línguas, inclusive o português.</p><p>São feitas duas etapas: uma chamada de pré-treinamento, que é a etapa que demanda muito texto e capacidade computacional e o “<em>fine-tunning</em>”, em que são “colados” no BERT as camadas para o uso do modelo para a tarefa e feito o treinamento. Esse treinamento, ao menos em relação ao pré-treinamento, é menos custoso computacionalmente.</p><p>Para o treinamento do BERT são utilizadas duas técnicas: MLM (<em>Masked Language Model</em>) e NSP (<em>Next Sentence Prediction</em>). No MLM, o modelo é levado a descobrir qual palavra foi mascarada no texto, já o NSP, visa que o modelo decida se a próxima frase é a sequência da anterior ou não.</p><p>Com o lançamento do BERT outros modelos foram desenvolvidos, como o RoBERTa de 2019, desenvolvido por pesquisadores do Facebook [16]. Neste modelo, a etapa de treinamento NSP foi removida, em cada época de treinamento a palavra mascarada é alterada, a quantidade de texto utilizada no treinamento foi aumentada 10x de 16 GB para 160 GB, dentre outras mudanças, que possibilitaram um aumento nas métricas de qualidade em relação ao BERT.</p><p>Um problema dos modelos <em>Transformers</em> citados até agora é que apesar de performarem melhor do que os modelos baseados em redes recorrentes, a complexidade computacional da atenção cresce com o quadrado do tamanho do texto, ficando inviável o uso para textos longos. O BERT por exemplo, tem uma limitação do tamanho da entrada de 512 tokens, que daria um pouco menos do que esse número em palavras, já que uma palavra pode ser constituída de mais de um token.</p><p>Para mitigar esse problema, em 2020 o Allen Institute for Artificial Intelligence publicou o Longformer [17] e o Google o Big Bird [18]. Eles fazem alterações na implantação da atenção que permitem que a quantidade de tokens de entrada seja aumentada.</p><p><strong>Algumas observações</strong></p><p>Neste artigo foram apresentadas diversas técnicas para processamento de linguagem natural, passando por abordagens clássicas como <em>bag-of-words</em> e TF-IDF até técnicas no estado da arte, como o GPT e as evoluções do BERT. Sem dúvidas ainda existirão muitos desenvolvimentos, provavelmente novos conceitos, que ainda não foram explorados, que farão o campo como um todo prosperar.</p><p>É importante destacar que uma infinidade de excelentes modelos não foi citada. Os citados foram os relevantes à vida acadêmica e profissional do autor. As publicações para cada um dos modelos estão nas referências. Em caso de interesse em algum específico, a leitura do artigo pode ser muito interessante. A maioria dos artigos estão no arXiv e possuem acesso gratuito.</p><p>O uso dos modelos próximos ao estado da arte, como GPT-1 e BERT pode parecer algo muito distante, devido ao custo computacional. No entanto, com bibliotecas fornecidas pela Hugging Face [19] e serviços online como o <a href="https://colab.research.google.com/">Google Colab</a> e o <a href="https://studiolab.sagemaker.aws/">Amazon SageMaker Studio Lab</a>, que permitem acesso a GPUs, esses modelos podem ser utilizados a custo zero. O Hugging Face conta com diversos modelos pré-treinados, usando suas bibliotecas é possível realizar o download e posteriormente o <em>fine-tunning</em> para sua aplicação.</p><p><strong>Referências</strong></p><p>[1] LANE, Hobson; HOWARD, Cole; HAPKE, Hannes Max, Natural language processing in action: understanding, analyzing, and generating text with Python, Shelter Island, NY: Manning Publications Co, 2019.</p><p>[2] MIKOLOV, Tomas; CHEN, Kai; CORRADO, Greg; et al. Efficient Estimation of Word Representations in Vector Space. 2013. Disponível em: &lt;http://arxiv.org/abs/1301.3781&gt;. Acesso em: 23 ago. 2022.</p><p>[3] GloVe: Global Vectors for Word Representation. Disponível em: &lt;https://nlp.stanford.edu/projects/glove/&gt;. Acesso em: 23 ago. 2022.</p><p>[4] WU, Ledell; FISCH, Adam; CHOPRA, Sumit; <em>et al</em>. StarSpace: Embed All The Things! 2017. Disponível em: &lt;http://arxiv.org/abs/1709.03856&gt;. Acesso em: 23 ago. 2022.</p><p>[5] PETERS, Matthew E.; NEUMANN, Mark; IYYER, Mohit; et al. Deep contextualized word representations. 2018. Disponível em: &lt;http://arxiv.org/abs/1802.05365&gt;. Acesso em: 23 ago. 2022.</p><p>[6] HOCHREITER, Sepp; SCHMIDHUBER, Jürgen. Long Short-Term Memory. Neural Computation, v. 9, n. 8, p. 1735–1780, 1997. Disponível em: &lt;https://direct.mit.edu/neco/article/9/8/1735-1780/6109&gt;. Acesso em: 23 ago. 2022.</p><p>[7] BAHDANAU, Dzmitry; CHO, Kyunghyun; BENGIO, Yoshua. Neural Machine Translation by Jointly Learning to Align and Translate. 2016. Disponível em: &lt;http://arxiv.org/abs/1409.0473&gt;. Acesso em: 23 ago. 2022.</p><p>[8] SUTSKEVER, Ilya; VINYALS, Oriol; LE, Quoc V. Sequence to Sequence Learning with Neural Networks. 2014. Disponível em: &lt;http://arxiv.org/abs/1409.3215&gt;. Acesso em: 23 ago. 2022.</p><p>[9] VASWANI, Ashish; SHAZEER, Noam; PARMAR, Niki; et al. Attention Is All You Need. 2017. Disponível em: &lt;http://arxiv.org/abs/1706.03762&gt;. Acesso em: 23 ago. 2022.</p><p>[10] Improving Language Understanding with Unsupervised Learning. OpenAI. Disponível em: &lt;https://openai.com/blog/language-unsupervised/&gt;. Acesso em: 23 ago. 2022.</p><p>[11] Better Language Models and Their Implications. OpenAI. Disponível em: &lt;https://openai.com/blog/better-language-models/&gt;. Acesso em: 23 ago. 2022.</p><p>[12] BROWN, Tom B.; MANN, Benjamin; RYDER, Nick; et al. Language Models are Few-Shot Learners. 2020. Disponível em: &lt;http://arxiv.org/abs/2005.14165&gt;. Acesso em: 23 ago. 2022.</p><p>[13] NARAYANAN, Deepak; SHOEYBI, Mohammad; CASPER, Jared; et al. Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM. 2021. Disponível em: &lt;http://arxiv.org/abs/2104.04473&gt;. Acesso em: 23 ago. 2022.</p><p>[14] DEVLIN, Jacob; CHANG, Ming-Wei; LEE, Kenton; et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. 2019. Disponível em: &lt;http://arxiv.org/abs/1810.04805&gt;. Acesso em: 23 ago. 2022.</p><p>[15] BERT Multilingual. Github. Disponível em: &lt;https://github.com/google-research/bert/blob/master/multilingual.md&gt;. Acesso em: 23 ago. 2022.</p><p>[16] LIU, Yinhan; OTT, Myle; GOYAL, Naman; et al. RoBERTa: A Robustly Optimized BERT Pretraining Approach. 2019. Disponível em: &lt;http://arxiv.org/abs/1907.11692&gt;. Acesso em: 23 ago. 2022.</p><p>[17] BELTAGY, Iz; PETERS, Matthew E.; COHAN, Arman. Longformer: The Long-Document Transformer. 2020. Disponível em: &lt;http://arxiv.org/abs/2004.05150&gt;. Acesso em: 23 ago. 2022.</p><p>[18] ZAHEER, Manzil; GURUGANESH, Guru; DUBEY, Avinava; et al. Big Bird: Transformers for Longer Sequences. 2021. Disponível em: &lt;http://arxiv.org/abs/2007.14062&gt;. Acesso em: 23 ago. 2022.</p><p>[19] Hugging Face — The AI community building the future. Disponível em: &lt;https://huggingface.co/&gt;. Acesso em: 23 ago. 2022.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3849fb118966" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/modelos-utilizados-para-processamento-de-linguagem-natural-3849fb118966">Modelos utilizados para processamento de linguagem natural</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Índice de Estabilidade Populacional e Monitoramento de Modelos]]></title>
            <link>https://medium.com/itau-data/%C3%ADndice-de-estabilidade-populacional-e-monitoramento-de-modelos-4777cb2199ff?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/4777cb2199ff</guid>
            <category><![CDATA[monitoring-and-evaluation]]></category>
            <category><![CDATA[statistics]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Lennon Cruz]]></dc:creator>
            <pubDate>Thu, 01 Sep 2022 13:25:45 GMT</pubDate>
            <atom:updated>2022-09-01T13:25:45.803Z</atom:updated>
            <content:encoded><![CDATA[<p>autores: <a href="https://medium.com/u/19ee1bb385fb">Luciana Trento Raineri</a> e <a href="https://medium.com/u/8240e000713">Kelver</a></p><p>Quando um modelo é colocado em produção, sua performance e estabilidade podem ser afetadas com o passar do tempo. Vários fatores podem causar mudanças no comportamento do modelo e vão depender do fenômeno modelado. Podem ocorrer desvios nas distribuições dos dados de entrada (<em>data drift</em>), erros de ETL, ou até mesmo mudanças na relação estatística entre as variáveis de entrada e a variável resposta (<em>concept drift</em>)[1], entre outros.</p><p>Assim, monitorar regularmente o modelo em produção e estar preparado para atuar quando essas mudanças ocorrerem, é fundamental para ter confiabilidade e robustez nos resultados. O monitoramento do modelo deve fazer parte do ciclo de vida de um projeto de aprendizado de máquina (Figura 1).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/567/1*3MqqvLa7h7nSO4GPVRQekQ.png" /><figcaption><strong>Figura 1.</strong> Ciclo de vida de um projeto de aprendizado de máquina (Adaptada de [1]).</figcaption></figure><p><strong>Monitoramento do modelo</strong></p><p>O monitoramento de performance de um modelo pode ser feito com métricas comuns, como precisão, recall, F1-score, acurácia, MAE, etc.</p><p>Também é importante monitorar a estabilidade das variáveis explicativas e da variável alvo do modelo. Nesse caso, métricas comuns para detectar desvios na distribuição das <em>features</em>, são as geradas pelos testes estatísticos como Kolmogorov-Smirnov (KS)[2] e Qui-quadrado (<em>X</em>²)[3]. Em publicações futuras podemos trazer mais detalhes sobre esses testes.</p><p>Outra métrica utilizada para detectar desvios entre a população de modelagem e a população atual, é o Índice de estabilidade populacional (IEP), muito difundido nos processos de modelagem de crédito[4]. Assim como as métricas geradas pelos testes KS e <em>X</em>², o IEP pode ser utilizado para validar a integridade dos dados e identificar possíveis causas nas variações de performance do modelo. Uma grande vantagem do IEP é que ele é simples, de fácil entendimento e interpretação.</p><p>O foco desse artigo é estabelecer critérios que permitam o monitoramento de modelos abordando principalmente o IEP. No próximo tópico serão apresentados mais detalhes sobre essa métrica.</p><p><strong>Índice de estabilidade populacional — IEP</strong></p><p>Como dito anteriormente, o IEP é uma métrica utilizada para medir variações na distribuição de duas amostras/populações. Essa métrica consiste em uma medida simétrica da diferença entre duas distribuições de probabilidade de acordo com a divergência de Kullback-Leibler[5]. Ela é definida como[4]:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/323/1*vQ1TUGnPKeAGc0qoD4vc5w.jpeg" /></figure><p>onde <em>ri </em>e <em>mi</em> são as porcentagens de observações na categoria <em>i</em>, nas amostras de interesse <em>r </em>e<em> m</em>. Em aprendizado de máquina, geralmente a amostra <em>r</em> se refere ao conjunto utilizado para treinamento do modelo, e a amostra <em>m</em> ao conjunto de teste. Vale observar que o IEP é definido no intervalo [0,+∞], diferentemente do KS e <em>X</em>², que são definidos no intervalo [0,1].</p><p>Na literatura, são considerados os seguintes limiares obtidos empiricamente[6]:</p><p><strong>IEP &lt; 0.1</strong> : Desvio não significativo.</p><p><strong>0.1 &lt;= IEP &lt; 0.25 :</strong> Desvio baixo, sinal de alerta.</p><p><strong>IEP &gt;=0.25 :</strong> Desvio significativo. Deve-se investigar a causa da divergência e recalibrar/retreinar o modelo, caso necessário.</p><p>Mais discussões sobre esses valores podem ser encontradas em [7].</p><p>Como exemplo, vamos considerar a UF como uma variável explicativa de um modelo de ciência de dados. A porcentagem de observações em cada estado nos conjuntos de treinamento (<em>mi</em>) e teste/validação (<em>ri)</em>) (<em>out-of-time</em>) pode ser vista na figura abaixo (por simplicidade, apenas alguns estados foram considerados).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*_M2ijN3fizlcRtJvnbfpEA.png" /><figcaption><strong>Figura 2.</strong> Exemplo de mudança da distribuição variável UF (números fictícios).</figcaption></figure><p>Como pode ser visto, houve uma mudança significante do percentual de observações de algumas UFs. Isso pode ser constatado com o cálculo do IEP na tabela abaixo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/902/1*OCD4K9qLfxR78PJfbqas9A.png" /><figcaption>Tabela 1. Cálculo do IEP para o exemplo das UFs.</figcaption></figure><p>O IEP nesse caso é de 0,29 (maior que o limiar de 0,25) e indica, portanto, um desvio significativo da variável UF.</p><p>Todavia, se a variável for contínua, é necessário dividi-la em <em>bins</em>, contar o número de observações em cada <em>bin</em> e então calcular a sua respectiva porcentagem, como no exemplo abaixo, considerando distribuições geradas aleatoriamente.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*YfOOH34oLmHvijABECAQDg.png" /><figcaption><strong>Figura</strong> <strong>3.</strong> Exemplo para variável contínua.</figcaption></figure><p>Vale destacar que o número de <em>bins</em> resultante da categorização escolhida impacta o valor calculado para o IEP. Quanto menor o número de <em>bins</em>, torna-se necessário perturbações cada vez maiores para que tenhamos uma sinalização de tal perturbação.</p><p>Nesse caso, escolheu-se o número de <em>bins</em> igual a 10, por ser um valor comumente utilizado na prática. Podemos também analisar o gráfico da Figura 4 quanto à evolução do IEP para escolher um valor de convergência (vale a ressalva de que esse valor de convergência pode ser alto, e um número grande de <em>bins</em> pode resultar em um critério excessivamente rigoroso).</p><p>Uma outra opção é gerar perturbações controladas e de interesse nos dados e avaliar o número de <em>bins</em> necessário para detectá-las.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*7nTT978hyfAmoPlJY6mtvw.png" /><figcaption><strong>Figura 4.</strong> Gráfico da evolução do IEP x Número de Bins.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*oqkWy7XJWuEtRKy1J4cVhA.png" /><figcaption><strong>Figura 5.</strong> Distribuição da variável contínua agrupada.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/884/1*z5Gjpc_dgbnE0qV_V9HmPw.png" /><figcaption>Tabela 2. Cálculo do IEP para o exemplo de variável contínua separada em <em>bins</em>.</figcaption></figure><p>O IEP nesse caso é de 0,83 (maior que o limiar de 0,25) e indica, portanto, um desvio significativo da variável, evidenciando o deslocamento da média da distribuição da variável aleatória em análise.</p><p><strong>Exemplo Comparativo entre IEP, Qui-quadrado e KS</strong></p><p>Suponha uma variável aleatória X que será monitorada em termos de sua estabilidade. Para efeito de exemplificação, serão gerados dados aleatórios de uma Distribuição Beta.</p><p>A Beta é definida no intervalo de [0, 1] e de acordo com a parametrização especificada (“a” e “b”) sua distribuição pode assumir diferentes formatos.</p><p>Agora, suponha que a distribuição de X no <em>dataset</em> de treino seja como a mostrada na Figura 6. Uma vez que o IEP requer dados de natureza categórica, é feito um agrupamento da nossa variável aleatória em intervalos de 0.1.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/886/1*z4PxjEwgJIgMjetM9jK9aw.png" /><figcaption><strong>Figura</strong> <strong>6.</strong> Exemplo de distribuição da variável aleatória X</figcaption></figure><p>Vamos comparar essa distribuição de referência com outras distribuições simuladas, como mostrado na figura abaixo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/824/1*UxbBfMWACm2HkOxl-8_NhQ.png" /><figcaption><strong>Figura 7.</strong> Comparativos da distribuição da variável aleatória X de referência com outras distribuições simuladas.</figcaption></figure><p>No primeiro caso, onde os dados foram gerados de distribuições com mesmo parâmetro, os três testes (IEP, KS e X2) apontam para igualdade das distribuições, como era esperado.</p><p>No segundo caso, com uma alteração moderada no formato da distribuição, o IEP indica possível alteração, enquanto os demais testes foram mais rigorosos nessa mesma comparação.</p><p>Já no terceiro caso, todos os testes foram concordantes com relação a alteração na distribuição dos dados, o que de certa forma era esperado, dado que a parametrização adotada ocasionava em uma maior assimetria dos dados.</p><p>O tamanho da amostra também é um fator relevante, tendo em vista que em amostras pequenas as métricas calculadas estão mais sujeitas a variações amostrais. Na figura abaixo pode ser vista a comparação com tamanhos de amostras diferentes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/1*KFhCquc_2w5nCwNPRt7cNg.png" /><figcaption><strong>Figura 8.</strong> Comparativos da distribuição da variável aleatória X de referência com outras distribuições simuladas (variando apenas o tamanho da amostra).</figcaption></figure><p><strong>Obs.:</strong> os exemplos com variáveis contínuas foram meramente ilustrativos e podem apresentar resultados diferentes dependendo da <em>seed</em> fixada para a geração dos números aleatórios.</p><p>Verifica-se que nesse exemplo, para dados obtidos com a mesma parametrização da distribuição de referência, no caso da amostra de 100 observações, o IEP sinaliza possíveis alterações nos dados, enquanto os testes Qui-quadrado e KS sinalizam divergência entre as distribuições. Todavia, para amostras maiores (n=1000 e n=10000), todos os testes são concordantes de que os novos dados são oriundos da mesma população.</p><p><strong>Conclusões</strong></p><p>· As métricas discutidas nesse artigo podem ser utilizadas para monitoramento de aplicações de ciência de dados. Elas ajudam a identificar mudanças nas distribuições dos dados preventivamente, sinalizando a necessidade de ajustes no modelo e evitando a utilização de resultados inconsistentes.</p><p>· O IEP é mais moderado do que o Qui-quadrado e o KS, o que pode ser útil em problemas sabiamente conhecidos nos quais há uma variação natural dos dados em decorrência de sazonalidades ou outros fatores. No exemplo da Figura 8, as distribuições têm a mesma parametrização, apenas o número de observações foi reduzido. Nesse caso, o IEP foi mais moderado em relação à conclusão, evitando falsos positivos em virtude de variações amostrais.</p><p>· As três métricas apresentadas neste artigo têm as suas particularidades, e podem ser utilizadas de forma conjunta na avaliação de fenômenos que possam alterar a distribuição dos dados.</p><p><strong>Referências</strong></p><p>[1] Burkov, A. (2020). Machine learning engineering (Vol. 1). True Positive Incorporated.</p><p>[2] Berger, V. W., &amp; Zhou, Y. (2014). Kolmogorov–smirnov test: Overview. <em>Wiley statsref: Statistics reference online</em>.</p><p>[3] Pearson, Karl (1900). On the criterion that a given system of deviations from the probable in the case of a correlated system of variables is such that it can be reasonably supposed to have arisen from random sampling. Philosophical Magazine Series 5. 50 (302): 157–175.</p><p>[4] SICSU, A. L. (2010). Credit Scoring. Desenvolvimento Implantação Acompanhamento. Blucher.</p><p>[5] Kullback, S., &amp; Leibler, R. A. (1951). On Information and Sufficiency. The Annals of Mathematical Statistics, 22 (1), 79–86.</p><p>[6] Thomas, L. C., Edelman, D. B., &amp; Crook, J. N. (2002). Credit Scoring and its Applications: SIAM monographs on mathematical modeling and computation. Philadelphia: University City Science Center, SIAM.</p><p>[7] Yurdakul, B. (2018). Statistical properties of population stability index. Western Michigan University.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4777cb2199ff" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/%C3%ADndice-de-estabilidade-populacional-e-monitoramento-de-modelos-4777cb2199ff">Índice de Estabilidade Populacional e Monitoramento de Modelos</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[SAC 4.0: a evolução do serviço de atendimento ao consumidor]]></title>
            <link>https://medium.com/itau-data/sac-4-0-como-melhorar-o-relacionamento-com-o-cliente-402188d3972a?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/402188d3972a</guid>
            <category><![CDATA[industry-4-0]]></category>
            <category><![CDATA[pesquisa-operacional]]></category>
            <category><![CDATA[teoria-de-filas]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[probability]]></category>
            <dc:creator><![CDATA[Alexandre #ále]]></dc:creator>
            <pubDate>Tue, 16 Aug 2022 18:14:44 GMT</pubDate>
            <atom:updated>2022-08-17T13:16:35.889Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FWS2trjmh-dV8nZsiOlmfg.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (1.0)</figcaption></figure><p>Proporcionar interações intuitivas e serviços eficientes é um desafio exponencial para muitas empresas. Como a implementação do <em>SAC 4.0</em> pode contribuir para melhorar o relacionamento com o cliente?<br> <br><strong>Disclaimer:</strong> este artigo tem como objetivo apresentar uma abordagem à análise exploratória de potenciais problemas de negócios e trazer soluções que vão orientar as etapas estatísticas (ou ciência de dados), permitindo, assim, identificar de forma mais assertiva os comportamentos e necessidades dos clientes aplicado às centrais de atendimento.</p><p><strong>Introdução <br></strong>O termo <em>indústria 4.0</em> foi mencionado pela primeira vez na Feira de <em>Hannover</em>, 2011. Foi cunhado a partir de um projeto estratégico voltado para tecnologia do governo alemão (14). Logo, o conceito de <em>SAC 4.0</em> nada mais é que a evolução do serviço de atendimento ao consumidor unindo inovações tecnológicas — habilitadores -, principalmente, foco na experiência e sucesso do cliente.</p><p>E se quiséssemos estimar a frequência de ligações de clientes em um certo intervalo de tempo? Como obter essa resposta através da estatística probabilística?</p><p><strong>Teoria de Filas (Pesquisa Operacional) <br></strong>Primeiramente, é importante ressaltar que a <em>teoria de filas</em> é um setor da <em>Pesquisa Operacional</em> (6) que utiliza conceitos básicos de processos estocásticos. E, de matemática aplicada para analisar o fenômeno de formação de filas, bem como suas características.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0OsgRIBc_-VuiSIrYAdOdA.png" /><figcaption>Fonte: Imagem Youtube (1.2) — (André Corleta, 2016)</figcaption></figure><p><strong>Tipo de filas</strong> <br><strong>Finita</strong> <br>As eleições do sistema brasileiro, por exemplo. À medida que ocorrem as apurações das urnas (cenário brasileiro) há uma redução da população (regiões). <br> <br><strong>Infinita</strong> <br>Uma fila bancária, como exemplo. Logo, enquanto o período de atendimento estiver disponível, não há limites de vezes para chegada ou saída de clientes (4).</p><p><strong>Classificando o nível de paciência do cliente</strong> <br><strong>Impaciente</strong> <br>Não quer esperar. Um exemplo disso é um restaurante, não adianta querer saciar sua fome sem que o prato seja totalmente disponibilizado pela cozinha (1). Existem os processos a serem cumpridos e etapas. <br> <br><strong>Paciente</strong> <br>Espera por um determinado produto ou serviço. As compras online são um ótimo exemplo, na maioria dos casos o processo de logística para entrega final na casa do cliente é determinado por um ‘<em>SLA</em>’, acordo de nível de serviço (do acrônimo em inglês: <strong>Service Level Agreement</strong>).</p><p><strong>Limite</strong> <br>Aguardando atendimento em uma chamada telefônica. Tempo máximo de espera estipulado e mencionado ao cliente de maneira transparente. Pelo menos deveria!</p><h3><strong>Estudo de caso 1: determinando a probabilidade (SAC 4.0)</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EAa7VpxyyLbFIqN8rpVqpw.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (1.3)</figcaption></figure><p>Um sistema de atendimento ao cliente (fraudes), recebe um total de 200 ligações por dia, considerando uma jornada de 6h de trabalho, de maneira aleatória e independente (de ocorrências anteriores). A média é de 33.3 ligações por hora. <br> <br><strong>Assumindo que a equipe deste <em>Call Center</em> trabalha somente em dias úteis qual é a probabilidade de que nenhuma ligação ocorra em um intervalo de 15 minutos?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/0*-tsuN5RLkcVpqoRz.gif" /><figcaption>Fonte: gifman.net (1.4)</figcaption></figure><p>Matemágica! Eitha que o trem lascou de vez. Calma! <br>Vamos entender a definição de alguns conceitos primeiro.</p><p><strong>Método</strong> <br><strong>Probabilidade</strong> <br>A distribuição de Poisson (1) nada mais é que uma distribuição estatística; criada por <em>Siméon Denis Poisson</em> e responsável por publicar em 1838 a teoria da probabilidade. É aplicável quando o número de possíveis ocorrências discretas é muito maior do que o número médio de ocorrências em um determinado intervalo de tempo ou espaço amostral.</p><p><strong>Fórmula de Poisson</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/366/1*O4Gu5MoBE-zQuJkoz_fxLw.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (1.5)</figcaption></figure><p><strong>Solução (estudo de caso 1)</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/387/1*7SnZh5qVmozJ7qSS8RxJaw.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (1.6)</figcaption></figure><p>A probabilidade de que nenhuma ligação (ou evento) ocorra em um intervalo de quinze minutos (15min) é de <strong>0,024%</strong>.</p><p><strong>Visualização do gráfico</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/824/1*pcIoWXREOoltDzwW5i2S2A.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (1.7)</figcaption></figure><p>No gráfico acima, o valor de <strong>0,024% (ponto de intersecção) </strong>representa a probabilidade de que nenhuma ligação (evento) ocorra em um intervalo de quinze minutos, dado que a jornada do colaborador corresponde de 0h até às 6h (referência à madrugada).</p><h3><strong>Bônus: estudo de caso 2 (fila bancária)</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0OsgRIBc_-VuiSIrYAdOdA.png" /><figcaption>Fonte: Imagem Youtube (2.0) — (André Corleta, 2016)</figcaption></figure><p>Para o nosso propósito prático, vamos considerar que a nossa média de chegada é de 2 clientes em um intervalo de 30 minutos, de maneira aleatória e independente. Além de, assumir que a capacidade de atendimento dos operadores é de no mínimo 5 e no máximo 8 clientes por guichê.</p><p><strong>Qual é a probabilidade de 5 novos clientes chegarem na fila em um intervalo de uma hora?</strong></p><p><strong>Expressão</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/379/1*U4o40p1Dohu5K3IfZ5fqGA.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (2.1)</figcaption></figure><p><strong>Probabilidade</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/738/1*u890oPsY4R_eyej90bb7kw.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (2.2)</figcaption></figure><p>Assim, para um intervalo de uma hora (ou 60min), podemos concluir que existe a probabilidade de <strong>34,97%</strong> de 5 novos clientes chegarem na fila.</p><p>A ‘geração’ do gráfico (case 2) é por sua conta, ok? :)<br>Envie nos comentários suas sugestões e/ou novas soluções. Será um prazer para nós visualizar outras formas de resolução destes problemas de negócio.</p><p><strong>Ambiente de execução (experimento)<br></strong>O experimento foi executado em uma estação de trabalho (computador) com as seguintes configurações:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/760/1*_a20HuuSwxM7wKJ52TXrXg.png" /><figcaption>Fonte: imagem ilustrativa da própria pesquisa (2.3)</figcaption></figure><p><strong>Conclusão</strong> <br>Assim como o Marketing evoluiu junto ao comportamento do consumidor, as empresas de todos os portes estão despertando para a necessidade de modernizar o atendimento ao cliente através dos benefícios do SAC 4.0. <br>É importante ressaltar ainda que durante a transição tecnológica haja desvios e impactos, positivos ou negativos. Estes efeitos devem ser observados, mensurados e ajustados de acordo com a estratégia e contexto de cada empresa.</p><p>Autores: <a href="https://medium.com/u/91704229bd43">Alexandre (#oale)</a> e <a href="https://medium.com/u/4d4565e22feb">Tales Lima Fonseca</a></p><p>Agradecimento: Alceu Costa, Lennon Cruz, Gustavo Bicalho, Diego Wesllen, Rodrigo Mello, Fellows e DED (Itaú Unibanco).</p><p><strong>Referências:</strong></p><ol><li>A. Zibetti. <a href="https://www.inf.ufsc.br/~andre.zibetti/probabilidade/poisson.html">Processos de chegada Distribuição de Poisson</a>. Probabilidade e Estatística para Engenharias utilizando o R (Studio) da Universidade Federal de Santa Catarina (2022)</li><li>A. Corleta. <a href="https://www.youtube.com/watch?v=FasQuWQMqvI">Taxa de Chegadas — Pesquisa Operacional</a>. Post em vídeo no Youtube (2016)</li><li>C. C. Cavalcante, V. S. O. Ribeiro. <a href="https://www.osterne.com/_files/ugd/969fe7_9d014f7256b1422b9f0a90ab3788455a.pdf">Tópicos em Estatística para Engenharia</a>. E-book no blog Osterne (2022)</li><li>E. Bastos. <a href="https://lamfo-unb.github.io/2018/07/06/Otimiza%C3%A7%C3%A3o-de-Filas/">Otimização de Estruturas de Filas</a>. Post no github.io. (2018)</li><li>D.G Kendall. <a href="https://www.scirp.org/(S(351jmbntv-nsjt1aadkposzje))/reference/referencespapers.aspx?referenceid=2221033">Stochastic Processes Occurring in the Theory of Queues and their Analysis by the Method of the Imbedded Markov Chain.</a> The Annals of Mathematical Statistics (1953)</li><li>D. Lindley. <a href="https://www.cambridge.org/core/journals/mathematical-proceedings-of-the-cambridge-philosophical-society/article/abs/theory-of-queues-with-a-single-server/53E80E039A02BCCC909E5C1D3BBC1AD1">The theory of queues with a single server</a>. Mathematical Proceedings of the Cambridge Philosophical Society (1952)</li><li>R. Bruns, S. P. Soncim, M. F. Sinay. <a href="https://abepro.org.br/biblioteca/enegep2001_tr60_0158.pdf">Pesquisa Operacional: Uma Aplicação da Teoria das Filas a um Sistema de Atendimento</a> . Artigo na Associação Brasileira de Engenharia de Produção (2001)</li><li>Anaconda. <a href="https://www.anaconda.com/">Anaconda offers the easiest way to perform Python/R data science and machine learning on a single machine</a>. Website Anaconda Distribution (2022)</li><li>Jupyter. <a href="https://jupyter.org/">Free software, open standards, and web services for interactive computing across all programming languages</a>. Website Jupyter.org (2022)</li><li>Pandas. <a href="https://pandas.pydata.org/">Open source data analysis and manipulation tool, built on top of the Python programming language</a>. Website Pandas.org (2022)</li><li>Numpy. <a href="https://numpy.org/">The fundamental package for scientific computing with Python</a>. Website Numpy.org (2022)</li><li>Matplotlib. Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Matplotlib makes easy things easy and hard things possible. <a href="https://matplotlib.org/">Website Matplotlib.org</a> (2022)</li><li>R. Pires. <a href="https://rockcontent.com/br/blog/sac-4-0/">Melhore o atendimento ao cliente com o SAC 4.0</a>. Post no blog rockcontent (2022)</li><li>IEDI. Indústria 4.0: <a href="https://www.iedi.org.br/cartas/carta_iedi_n_797.html">A Quarta Revolução Industrial e os desafios para a Indústria e para o desenvolvimento brasileiro</a>. Instituto de Estudos para o Desenvolvimento Industrial (2017)</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=402188d3972a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/sac-4-0-como-melhorar-o-relacionamento-com-o-cliente-402188d3972a">SAC 4.0: a evolução do serviço de atendimento ao consumidor</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AutoML: a próxima disrupção de sistemas inteligentes]]></title>
            <link>https://medium.com/itau-data/automl-a-pr%C3%B3xima-disrup%C3%A7%C3%A3o-de-sistemas-inteligentes-abbb2a6a6d87?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/abbb2a6a6d87</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[Caique de Almeida]]></dc:creator>
            <pubDate>Mon, 11 Jul 2022 12:29:48 GMT</pubDate>
            <atom:updated>2025-01-10T01:22:01.528Z</atom:updated>
            <content:encoded><![CDATA[<p>By: <a href="http://linkedin.com/in/caique-r-de-almeida-97b469b0">Caique de Almeida</a> e <a href="http://linkedin.com/in/taleslimaf">Tales Lima Fonseca</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/419/1*Y4n7p9Ou5tflWYU35G1xjw.jpeg" /><figcaption><em>Baby Yoda sempre que aprende algo novo sobre ML. Fonte: </em><a href="https://giphy.com/disneyplus"><em>Disney</em></a></figcaption></figure><p>Nos últimos anos, o uso de sistemas inteligentes em diferentes áreas trouxe ganhos inquestionáveis à sociedade. Do universo acadêmico ao corporativo, o emprego de <strong><em>Machine Learning </em>(ML) </strong>possibilitou a resolução de problemas de alta complexidade (como o dobramento de proteínas, solucionado pelo <em>DeepMind AI </em>[1]) e a reinvenção de negócios a partir de dados (a exemplo de plataformas de <em>streaming</em> e de empresas de serviços financeiros).</p><p>Por outro lado, o sucesso do emprego de sistemas inteligentes em diversos campos depende da execução de tarefas manuais por especialistas de ML (a exemplo do pré-processamento dados, da seleção de <em>features</em> e do treinamento de modelos e a otimização de seus hiperparâmetros).</p><p>O rápido crescimento da demanda por aplicações que permitam a usuários de diferentes especialidades usar <em>pipelines</em> de ML com o acompanhamento pontual de <em>experts</em> motivou, em boa parte, o desenvolvimento de uma área denominada <strong><em>AutoML</em></strong>.</p><p><strong>Mas o que é o <em>AutoML</em>?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/336/1*46fFfJFTT2TbBAbd_MiQ0Q.jpeg" /><figcaption><em>Fonte: </em><a href="https://medium.com/@michalzak/hans-zimmers-time-we-have-to-go-deeper-2836111a17b"><em>Inception</em></a></figcaption></figure><p><em>AutoML</em> se refere à <strong><em>Automatização do Aprendizado de Máquina</em></strong> (<em>Automated Machine Learning</em>) em processos de Ciência de Dados. A ideia consiste em automatizar tarefas de Ciência de Dados de forma que etapas manuais, demoradas e iterativas sejam resolvidas sem que um especialista acompanhe cada fase do desenvolvimento de uma solução.</p><p>Com isso, permite-se que analistas de negócios ou pesquisadores de diferentes campos do conhecimento possam executar<em> pipelines</em> de Ciência de Dados para a resolução de problemas bem formulados, ainda que não sejam <em>experts </em>no assunto.</p><p>Apesar de existirem robustas soluções no mercado e da publicação de promissores resultados de pesquisa, ainda não há sistemas genéricos capazes de adaptar todo o processo em diferentes técnicas (como problemas de regressão e classificação, inferência causal, grafos, aprendizado não supervisionado, entre outros).</p><p><strong>Para quem se destina?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/360/1*ffuxsc_ei8ZJYZqwH_6xDg.jpeg" /><figcaption><em>Fonte: </em><a href="https://brianray-7981.medium.com/google-clouds-automl-first-look-cb7d29e06377"><em>How to train your Dragon</em></a></figcaption></figure><p>O desenvolvimento de soluções de <em>AutoML</em> pretende <strong><em>democratizar</em></strong> o uso de técnicas de Aprendizado de Máquina para profissionais de diferentes perfis. Nesse sentido, analistas de negócio, pesquisadores, executivos e profissionais de dados podem usar as soluções existentes em seu cotidiano, sem que sejam necessários conhecimentos sobre programação.</p><p>O conceito de <em>AutoML </em>encapsula e democratiza ainda conceitos relativos a <em>pipelines</em> de Ciência de Dados na tentativa de oferecer ao usuário soluções <em>end-to-end</em>, como a ingestão, o pré-processamento e exploração de dados, a criação (<em>Engineering</em>) e a seleção de <em>features</em>, o treinamento de modelos e a otimização de seus hiperparâmetros, além da avaliação e interpretação dos resultados obtidos por tais modelos. Há também ferramentas de <em>AutoML</em> focadas na automação, operacionalização e manutenção de sistemas inteligentes em produção.</p><p>Além disso, o uso de ferramentas de <em>AutoML</em> propicia inúmeras vantagens do ponto de vista de <em>engenharia de software</em>, uma vez que são criados programas menos suscetíveis a erros simples. Como resultado, são obtidos <em>softwares</em> com maior potencial de replicabilidade e padronização, cujo tempo de desenvolvimento é geralmente inferior ao de sistemas que não usam <em>AutoML.</em></p><p>Esse processo de democratização de <em>pipelines </em>de ML pode ser comparado ao uso de planilhas <em>Excel</em>, que inicialmente era restrito a profissionais de contabilidade e hoje é utilizado para diversas finalidades.</p><p><strong>O <em>AutoML</em> tornará profissionais de dados obsoletos?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/276/1*HeL-9VPVVVL9bvTQgllXeA.jpeg" /><figcaption><em>Fonte: </em><a href="https://tenor.com/search/futurama-bender-gifs"><em>Futurama</em></a></figcaption></figure><p><strong><em>Não!</em></strong></p><p>Se você trabalha com <em>Machine Learning</em> e já empregou técnicas para otimizar o desempenho de um modelo, a exemplo do <em>Grid Search</em>, saiba que você utilizou uma forma de <em>AutoML</em>! Imagine o custo de ter que explorar manualmente o espaço de hiperparâmetros disponíveis para conseguir a melhor performance do seu modelo.</p><p>Conforme profissionais de diferentes perfis passem a usar ferramentas para explorar novos volumes de dados, o papel de <em>experts </em>em ML e Inteligência Artificial será ainda mais crucial. Especialistas em Ciência de Dados terão a função de formular o problema adequadamente para o escopo de ML (ou direcioná-lo para outras técnicas), interpretar os resultados, aplicar o modelo corretamente, elaborar novas soluções por meio de técnicas mais avançadas e educar profissionais de outras áreas para a obtenção de níveis de maturidade em IA cada vez maiores.</p><p>Com a automatização de processos simples, como a parametrização de uma <em>Random Forest</em>, as novas gerações de cientistas serão desafiadas a trazer maior valor para o processo de Ciência de Dados, uma vez que porções fundamentais de <em>pipelines </em>de ML estarão prontas. Por outro lado, há aspectos relacionados a Aprendizado de Máquina que deverão ser cada vez <strong><em>mais estudados</em></strong> no escopo de <em>AutoML, a </em>exemplo do (a):</p><ul><li><strong><em>Análise de vieses:</em></strong> há diversas iniciativas de pesquisa no sentido de estimar a magnitude, o nível de incerteza e a direção de vieses. Esta é ainda uma questão em aberto em Aprendizado Estatístico e que deve receber cuidados especiais em cenários em que se deseje automatizar <em>pipelines</em> de ML. Exemplos nesse sentido podem ser encontrados em [2], e [3];</li><li><strong><em>Aplicação de AutoML</em></strong><em> </em>em sistemas que mudam continuamente ou em situações em que se espera a ocorrência de <em>concept drift</em>. De forma geral, há ainda um longo caminho para que consigamos lidar de forma efetiva com sistemas bastante dinâmicos. Exemplos podem ser encontrados em [4], e [5];</li><li><strong><em>Explicabilidade</em></strong> em<em> frameworks</em> de <em>AutoML</em> e a reconstrução do espaço para <strong><em>Feature Engineering</em></strong>, que pressupõe sólido conhecimento e especificidades do problema estudado;</li><li>Tarefas desafiadoras em que o <em>AutoML</em> ainda tem um longo caminho a percorrer, como o <strong><em>aprendizado não-supervisionado e o aprendizado por reforço</em></strong>;</li><li><strong><em>Qualidade não consistente</em></strong> de dados rotulados e a dificuldade de se aplicar <em>pipelines</em> de <em>AutoML</em> em dados não-estruturados.</li></ul><p><strong>Qual o futuro do<em> AutoML</em>?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/288/1*9wfAId-aYBPmFvgTGw83fQ.jpeg" /><figcaption><em>Fonte: </em><a href="http://www.picturequotes.com/i-guess-you-guys-arent-ready-for-that-yet-but-your-kids-are-gonna-love-it-quote-21126"><em>Back to the Future</em></a></figcaption></figure><p>Com o rápido desenvolvimento de técnicas científicas e soluções de mercado em <em>AutoML</em>, especialistas acreditam que haverá automatizações para boa parte das análises cotidianas. Assim, profissionais generalistas poderão empregar métodos sofisticados para obter maior valor dos dados disponíveis em suas áreas.</p><p>Além disso, a tendência é que surjam sistemas com diferentes especializações (como o uso de dados estruturados para precificação, ou o emprego de dados não estruturados para o processamento de linguagem natural) e embarcados em diferentes produtos de empresas (a exemplo de carros e celulares, para analisar a relação do usuário com o ambiente).</p><p>Por outro lado, será cada vez mais comum observar especialistas técnicos trabalhando a partir de <em>scripts</em> para chamar, usar funcionalidades e configurar sistemas de <em>AutoML</em>.</p><p><strong>Quer saber mais? Uma breve história das principais técnicas…</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/378/1*tLI-dNKFEb4ZXvXhfGRlFA.jpeg" /><figcaption><em>Fonte: </em><a href="https://makeameme.org/meme/stories-stories-everywhe"><em>Toy Story</em></a></figcaption></figure><p>Na literatura são encontrados diversos relatos sobre o uso de algoritmos de força bruta para buscas exaustivas em diferentes campos do conhecimento. Entretanto, um dos primeiros registros de automatização de modelos de ML ocorreu em 1995, quando a empresa <em>Unica Technologies</em> desenvolveu o <em>software</em> <em>Pattern Recognition Workbench</em> para realizar buscas exaustivas em conjuntos de parâmetros com o objetivo de otimizar redes neurais. Esse método ficou conhecido como <em>Grid Search</em> e ainda é amplamente utilizado [6].</p><p>Posteriormente a comunidade científica propôs novas estratégias para a otimização de hiperparâmetros, como a busca aleatória (<em>Random</em> <em>Search</em>) e o uso de Gradiente Descendente para pesquisar o espaço dos parâmetros de <em>Support Vector Machines (SVM)</em> e Redes Neurais [6].</p><p>Por outro lado, a busca direcionada de hiperparâmetros utilizando meta-heurísticas de otimização se tornaram mais frequentes devido à sua capacidade de encontrar soluções boas em um pequeno intervalo de tempo. As meta-heurísticas que mais se destacaram foram: Algoritmo Genético, Colônia de Abelhas Artificiais, Enxame de Partículas e Evolução Diferencial. Destacam-se também alguns excelentes resultados utilizando otimização Bayesiana [7].</p><p>Trabalhos mais recentes tendem a apresentar abordagens completas de seleção de modelos. Sob tal aspecto, são destacados:</p><ul><li>O uso de <strong><em>Particle Swarm Optimization</em></strong> para a seleção de uma combinação de pré-processamento, seleção de variáveis e métodos de aprendizado para obter um classificador final com o menor erro possível. Cada modelo passa por uma etapa de busca dos hiperparâmetros ótimos [8];</li><li>O pacote de automatização de modelos com o <strong><em>software</em> WEKA</strong>. A escolha do modelo e seus hiperparâmetros pode ser feito através de um problema de otimização hierárquico de hiperparâmetros, onde até mesmo a escolha do modelo é considerada um hiperparâmetro [9];</li><li><strong><em>Auto-sklearn</em></strong>, que utiliza otimização Bayesiana para encontrar a combinação ideal de pré-processamento dos dados, pré-processamento das características, modelos e seus hiperparâmetros [10];</li><li>A estratégia de automatização da empresa H2O.ai, onde diferentes modelos pré-determinados são treinados e passam por validação cruzada. Alguns dos modelos já possuem hiperparâmetros definidos e outros passam por busca utilizando <em>Random</em> <em>Search</em>. Após estes treinamentos, dois <em>ensembles</em> do tipo <em>stacking</em> são treinados. Um dos ensembles contém todos os modelos e o segundo contém apenas os modelos com melhor desempenho de cada “classe” de algoritmos [11];</li><li>O conceito de otimização de <em>pipeline</em> baseado em árvore <strong>TPOT (<em>Tree-based Pipeline Optimization Tool</em>)</strong> para automatizar o projeto de <em>pipeline</em> de um problema de ML. O TPOT utiliza uma versão de Programação Genética para projetar e otimizar uma série de transformações de dados e modelos que tentam maximizar a performance para um conjunto de dados de aprendizado supervisionado;</li><li>O <strong><em>Autostacker</em></strong>, que consiste na automatização da criação de <em>ensembles </em>do tipo <em>stacking</em> utilizando <em>Automatic Evolutionary Systems</em>. Em sua abordagem, não são utilizados pré-processamento de dados ou seleção de características como a maioria das técnicas apresentadas [12].</li><li>A partir de 2017, várias empresas como <strong><em>Amazon, Google</em></strong> e <strong><em>Microsoft</em></strong> começaram a lançar soluções comerciais relacionadas a <em>AutoML</em>, dando maior importância para o assunto no mundo, a exemplo do <em>Amazon Sagemaker Autopilot</em> e do <em>Google Cloud AutoML</em>.</li></ul><p><strong>E a conclusão?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/333/1*VCV92qfkcafJTtm340-v0g.jpeg" /><figcaption><em>Fonte: </em><a href="https://giphy.com/disneyplus"><em>Baby Yoda</em></a></figcaption></figure><p>O uso de <em>Machine Learning</em> e Ciência de Dados em escala provocou uma importante disrupção em como empresas e universidades desenvolvem pesquisas, produtos e tecnologias. O advento de sistemas inteligentes permitiu que diferentes negócios explorassem melhor o poder de seus dados com o objetivo de personalizar a relação com seus clientes e de conceber iniciativas <em>data driven</em>. Entretanto, o uso das ferramentas que permitiram tais avanços dependem da atuação de especialistas em Ciência de Dados em tarefas manuais. Nesse sentido, o desenvolvimento de soluções de <em>AutoML</em> permitirá que profissionais de diversos perfis usem <em>pipelines</em> de ML, em parceria com <em>experts</em> técnicos, para obtenção de valor a partir de novos volumes de dados e de perspectivas ainda não abordadas.</p><p><strong>Referências:</strong></p><ol><li>DEEPMIND. <a href="https://www.deepmind.com/blog/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology">AlphaFold: a solution to a 50-year-old grand challenge in biology</a></li><li>CHAKRABORTY, J.; MAJUMDER, S.; MENZIES, <a href="https://dl.acm.org/doi/abs/10.1145/3468264.3468537">T. Bias in machine learning software: why? How? What to do?</a></li><li>CALISKAN, A.; BRYSON, J.; NARAYANAN, A. <a href="https://www.science.org/doi/10.1126/science.aal4230">Semantics derived automatically from language corpora contain human-like biases</a></li><li><a href="http://lattes.cnpq.br/0427387583450747">RIOS, R. A.</a> ; PAGLIOSA, P. A.; LOPES, C. S.; DE MELLO, R.F. Concept drift detection on social network data using cross-recurrence quantification analysis. Chaos, v. 28, 2018.</li><li>COSTA, FAUSTO G. DA; DUARTE, FELIPE S.L.G.; <a href="http://lattes.cnpq.br/8627250616106727">VALLIM, ROSANE M.M.</a> ; MELLO, RODRIGO F. DE. Multidimensional surrogate stability to detect data stream concept drift. EXPERT SYSTEMS WITH APPLICATIONS, v.1, p. 1, 2017.</li><li>PARVEZ, M.T. A Generic Workbench for Pattern Recognition. International Conference on Intelligent Systems. 2008</li><li>FONSECA, T. L. Algoritmo Genético com Regressão: Busca Direcionada Através de Aprendizado de Máquina. Universidade Federal de Juiz de For a. 2017</li><li>BLACKWELL, T.; KENNEDY, J.; POLI, R. Particle swarm optimization. Swarm Intelligence. 2007</li><li><a href="https://www.cs.waikato.ac.nz/ml/weka/">WEKA</a></li><li><a href="https://automl.github.io/auto-sklearn/master/">AUTOSKLEARN</a> SOFTWARE</li><li><a href="https://h2o.ai/pt/">H2O</a></li><li>CHEN, B.; HARVEY, W.; MO, W. <em>Autostacker</em>: a compositional evolutionary learning system. The Genetic and Evolutionary Computation Conference. 2018</li></ol><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=abbb2a6a6d87" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/automl-a-pr%C3%B3xima-disrup%C3%A7%C3%A3o-de-sistemas-inteligentes-abbb2a6a6d87">AutoML: a próxima disrupção de sistemas inteligentes</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Computação quântica e quantum machine learning]]></title>
            <link>https://medium.com/itau-data/computa%C3%A7%C3%A3o-qu%C3%A2ntica-e-quantum-machine-learning-c22f7e6df493?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/c22f7e6df493</guid>
            <category><![CDATA[computação-quântica]]></category>
            <category><![CDATA[quantum-computing]]></category>
            <category><![CDATA[quantum-machine-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <dc:creator><![CDATA[André Juan Ferreira Martins]]></dc:creator>
            <pubDate>Tue, 28 Jun 2022 19:22:37 GMT</pubDate>
            <atom:updated>2022-06-29T13:44:23.798Z</atom:updated>
            <content:encoded><![CDATA[<h4>Boas-vindas ao Medium Itaú Quantum Machine Learning</h4><p>Nossas boas-vindas à seção de Quantum Machine Learning do Medium Itaú Data!</p><p>Nos posts desta seção, vamos apresentar conceitos e discutir avanços na pesquisa e desenvolvimento da computação quântica, com especial foco na sub-área conhecida como Q<em>uantum Machine Learning </em>(QML).</p><p>À primeira vista, o termo QML parece apenas uma combinação de buzzwords das tecnologias emergentes, mas, na verdade, esta é uma área de pesquisa relativamente recente, mas muito aquecida, que está na fronteira da tecnologia e tem como principal objetivo responder às seguintes perguntas:</p><ul><li>O que a computação quântica tem a oferecer aos problemas de aprendizagem de máquina?</li><li>Em que casos podemos esperar vantagens?</li><li>Que tipos de vantagens podemos esperar?</li></ul><p>Atualmente estamos em um estágio em que há muito mais perguntas do que respostas — e isso talvez seja o que torna a área tão interessante e promissora!</p><p>No Itaú Unibanco, seguimos uma abordagem data-driven para a resolução dos mais diversos problemas. Esta abordagem é apoiada pelo uso de ferramentas de ciência de dados, e muitas vezes incluem técnicas de Machine Learning (ML). Sendo assim, estamos sempre em contato com a fronteira da tecnologia, continuamente buscando técnicas que possam aprimorar os métodos de ML que são utilizados.</p><p>E é neste contexto que a pesquisa em QML ganha grande relevância e interesse, pois esta intersecção entre aprendizagem de máquina e computação quântica pode ser justamente um destes novos desenvolvimentos na fronteira tecnológica, com o potencial de transformar profundamente a forma como alguns dos mais complexos problemas são resolvidos!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1ltwmDG8VSeWGZ_ZkfdkDg.jpeg" /></figure><p>Mas devemos ir com calma. Como mencionamos acima, a área ainda é bem jovem, então ainda não há respostas definitivas para nenhuma das três perguntas acima. O que temos são evidências circunstanciais e algumas semelhanças estruturais entre a computação quântica e métodos de ML, que indicam que esta intersecção pode ser muito frutífera. Mas, por enquanto, nenhuma certeza — e é justamente por isso que a pesquisa em QML é de enorme importância, pois é só assim que encontraremos as respostas para estas e tantas outras perguntas no contexto desta que tem o potencial de ser uma revolução tecnológica sem precedentes.</p><p>Por isso, criamos um time dedicado à pesquisa desta área no banco, e, para compartilhar um pouco sobre as formidáveis possibilidades que esta nova tecnologia proporciona, decidimos criar esta seção de posts no Medium Itaú Data!</p><p>Nosso objetivo é divulgar os conceitos de maneira mais acessível possível. Assim, mesmo que você nunca tenha ouvido falar sobre computação quântica, os conceitos poderão ser bem absorvidos. Em alguns posts seremos mais técnicos, mas buscaremos sempre ser autocontidos, ou oferecer referências adicionais, assim, conseguiremos passar detalhes mais profundos aos interessados, sem prejuízos à compreensão geral.</p><p>Além disso, queremos que este espaço seja construído <strong><em>com você</em></strong>. Assim, se houver algum assunto em particular que você gostaria de saber, deixe sua sugestão nos comentários, e faremos o possível para que os temas sugeridos sejam abordados em posts futuros.</p><p>Aproveite a leitura! Esperamos que você se divirta e se empolgue com esta nova tecnologia e suas possibilidades tanto quanto nós!</p><h4>Uma breve introdução à Computação Quântica</h4><p>Em nosso primeiro post, antes de partirmos diretamente para conceitos de Quantum Machine Learning (QML), gostaríamos de discutir um pouco sobre o contexto geral da computação quântica.</p><blockquote>Em termos simples, podemos definir a computação quântica como a utilização de propriedades da mecânica quântica para o processamento de informação.</blockquote><p>Apesar de simples, a definição acima só faz sentido se soubermos o que é a mecânica quântica, não é mesmo? Então, vamos começar por este ponto.</p><p>A mecânica quântica é a teoria física que descreve a natureza na escala molecular, atômica e subatômica. Isto é, com a mecânica quântica conseguimos descrever a evolução (como as coisas mudam no tempo) e os fenômenos que ocorrem com moléculas, átomos, partículas, etc.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*cYcq7JcPOs1kQ35U1U9P_g.jpeg" /><figcaption>Um átomo típico tem tamanho da ordem de 1Å (Angstrom), que equivale a 1e-10 metros, isto é, 0.0000000001 m. É nesta escala (muito menor que a escala macroscópica à qual estamos acostumados), que os efeitos quânticos aparecem! (Aliás, na imagem acima representamos o átomo segundo a descrição proporcionada pela mecânica quântica: as posições possíveis para os elétrons são dadas probabilisticamente pelos orbitais eletrônicos).</figcaption></figure><p>E, acredite, o mundo nesta escala é muito diferente do mundo macroscópico com o qual estamos acostumados! Por este motivo, muito do que a mecânica quântica descreve é bastante contraintuitivo — e isso é absolutamente normal, pois nossa intuição foi construída através do contato com o mundo macroscópico, onde os fenômenos quânticos simplesmente não são observados.</p><p>Assim, não se preocupe se, ao estudar a mecânica quântica (ou ao ler nossos posts!), surgirem conceitos e fenômenos que causem estranhamento à primeira vista. Todos que seguiram esta empreitada passaram por isso! Mas, acredite, com o tempo (e a inestimável ajuda da matemática), as coisas começam a ficar mais claras!</p><p>Infelizmente, talvez seja devido a este seu aspecto contraintuitivo que, com o passar do tempo, a mecânica quântica tenha ganhado uma conotação um tanto quanto esotérica no imaginário popular. É possível que você já tenha ouvido falar sobre algumas apropriações injustificáveis do termo “quântico”, que estão longe de qualquer embasamento científico, e por isso devem ser combatidas. Esperamos que com os textos deste blog, além de compartilharmos as possibilidades da computação quântica, também contribuamos para desmitificar estes usos levianos do termo, e passemos as ideias por trás da real mecânica quântica, como teoria científica!</p><p>Afinal, a mecânica quântica é uma das teorias físicas mais bem-sucedidas na descrição da natureza! Apesar de muito contraintuitiva, hoje é consenso na comunidade científica que a descrição da natureza microscópica que é proporcionada por esta teoria é adequada e precisa. Tão adequada que seus métodos e ferramentas vão além de curiosidade científica — é graças à mecânica quântica que temos muitas tecnologias extremamente relevantes da atualidade (como por exemplo: transistores, LED, laser, ressonância magnética nuclear, etc.) e do futuro próximo (como a computação quântica, internet quântica, etc.).</p><p>Feita esta pequena introdução sobre a mecânica quântica, podemos entender um pouco melhor a definição que demos acima: a computação quântica surge ao decidirmos mudar a forma como representamos e processamos a informação!</p><blockquote>Antes de avançarmos, um comentário quanto à terminologia: nos textos desta seção, sempre que você ler a palavra “clássica”, entenda-a como “não-quântica”. Neste sentido, “clássico” não se refere a algo necessariamente tradicional ou antigo. Em nosso uso do termo, tudo o que não é quântico será caracterizado como “clássico”. Assim, por exemplo, quando utilizarmos o termo “computação clássica”, estamos nos referindo à computação que não é quântica. Mesmo os supercomputadores modernos, por não serem computadores quânticos, serão chamados de computadores clássicos. Fixada esta terminologia, vamos prosseguir!</blockquote><p>Todos sabemos que a computação clássica, em seu nível mais fundamental, é baseada em bits, valores lógicos binários que podem assumir dois estados possíveis: 0 ou 1. E nada além disso.</p><p>De fato, todo algoritmo clássico pode ser reduzido, no nível mais fundamental, a operações que são feitas com bits, pois eles são as unidades mínimas de informação clássica. E é processando esta informação armazenada nos bits que os computadores clássicos realizam todas suas operações.</p><p>A computação quântica nasce ao modificarmos o aspecto mais fundamental do processamento de informação: introduzimos o bit quântico, mais conhecido como qubit (do inglês, <em>quantum bit</em>). Diferente do bit clássico, o qubit é implementado fisicamente em sistemas quânticos que, portanto, apresentam as formidáveis propriedades descritas pela mecânica quântica!</p><p>Com isso, enquanto bits clássicos só podem assumir os dois únicos estados discretos 0 ou 1, os qubits podem assumir o que chamamos de <em>estado de superposição</em> entre estes dois estados, que pode ser entendido como um contínuo de estados possíveis de combinações de 0 e 1. Mais adiante discutiremos a superposição em mais detalhes, mas, desde já, perceba que a introdução dos qubits muda fundamentalmente a noção clássica que temos de representação e processamento de informação!</p><p>Assim sendo, a informação armazenada em qubits — a chamada informação quântica — é fundamentalmente diferente da informação clássica em diferentes aspectos, inclusive na forma como ela é processada. E é a partir daí que surgem os enormes potenciais da computação quântica!</p><p>Ao alterarmos o nível mais fundamental de informação, é possível construirmos todo um novo modelo computacional, baseado em princípios e implementações radicalmente diferentes dos da computação clássica, e com o potencial de gerar enormes vantagens computacionais!</p><p>Para finalizar esta introdução, é importante mencionar que não é só de superposição que a computação quântica é feita. Na verdade, há três propriedades quânticas que são extensivamente exploradas para que o enorme poder computacional da computação quântica se concretize: <em>superposição, interferência </em>e <em>emaranhamento</em>. Vamos discutir brevemente cada uma!</p><h4>Superposição</h4><p>Um qubit (que é o sistema quântico no qual estamos interessados) é caracterizado como um <em>sistema quântico de dois níveis</em>. Isto quer dizer que, quando medimos o estado do qubit, há apenas dois estados possíveis que ele pode assumir: |0&gt; ou |1&gt;. Ou seja, é com a medida (interação empírica com o sistema físico para determinação de algumas de suas características) que de fato determinamos qual é o estado do qubit. No entanto, anteriormente à medida, o estado do sistema pode ser dado por uma combinação linear entre estes dois estados. Este estado de combinação entre |0&gt; e |1&gt; é o que chamamos de <em>estado de superposição</em>, e representa a indeterminação do estado anteriormente à medida.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*v_294rIULIBk-S-cPQAIOg.jpeg" /><figcaption>Um qubit, unidade fundamental de informação quântica, assume um estado de superposição entre as unidades fundamentais de informação clássica, 0 e 1. As amplitudes α e β estão relacionadas com a probabilidade de encontrarmos o estado quântico nos estados |0&gt; e |1&gt;, respectivamente, quando o qubit é medido.</figcaption></figure><p>Obs.: é comum que a superposição seja interpretada como o sistema quântico estando “em todos os estados possíveis simultaneamente”. Esta noção não é muito adequada: na realidade, enquanto em superposição, é mais adequado dizer que o sistema não está em nenhum dos estados definitivamente — o estado só é definido com a medida empírica do sistema, cujo resultado é fundamentalmente probabilístico!</p><p>Na prática, é possível controlar qual é exatamente a combinação entre |0&gt; e |1&gt; que desejamos (isto é, controlamos com que probabilidade esperamos medir |0&gt; ou |1&gt;, ao efetivamente controlar α e β), e este recurso é importantíssimo para que algoritmos quânticos sejam desenvolvidos. Veja: no fim do algoritmo, os qubits serão medidos e eles irão <em>colapsar</em> para o estado definido |0&gt; ou |1&gt;, de maneira probabilística. Mas, no decorrer do algoritmo, sabendo que os qubits estão no estado de superposição, é possível que exploremos este fato para processar a informação quântica de maneira fundamentalmente diferente do processamento de informação clássica, afinal, o estado de superposição é uma propriedade inerentemente quântica!</p><h4>Interferência</h4><p>Sistemas quânticos apresentam propriedades de fenômenos ondulatórios. Em particular, uma propriedade muito típica deste tipo de fenômeno é a interferência, que ocorre quando ondas diferentes interagem entre si: se as ondas estiverem em fase, a amplitude resultante é somada (interferência construtiva); se as ondas estiverem fora de fase, a amplitude resultante é subtraída (interferência destrutiva). Acontece que, apesar de intuitivamente pensarmos em sistemas quânticos (átomos, elétrons) como partículas — que, portanto, não deveriam sofrer interferência — , na realidade os sistemas quânticos também sofrem interferência!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*e9L9BHqVNnf_Mpt7PXK8Kg.jpeg" /><figcaption>Padrão de interferência observado no experimento de dupla fenda realizada com elétrons ou átomos, sistemas físicos regidos pela mecânica quântica.</figcaption></figure><p>Na computação quântica, esta propriedade tem uma aplicação bem importante: como dissemos anteriormente, o resultado da medida de um sistema quântico é probabilístico. Se esta medida for a resposta do problema que desejamos resolver com o algoritmo quântico, é importante que a resposta correta seja a mais provável, não é mesmo? Pois bem, aí entra a interferência: ao manipular os qubits, podemos fazer com que as respostas corretas para um determinado problema sejam construtivamente interferidas, e as soluções erradas, destrutivamente interferidas! Assim, apesar do caráter probabilístico do algoritmo quântico, maximizamos as chances de medir a resposta correta no final!</p><h4>Emaranhamento</h4><p>Quando dois ou mais sistemas quânticos interagem de maneiras particulares a formar um sistema composto, os sistemas passam a estar correlacionados de maneira tão forte, que passa ser impossível descrever o sistema composto em termos dos estados dos sistemas individuais. Isso faz com que a manipulação e medida de sistemas individuais afetem também os demais estados que compõem o sistema composto. Quando dois ou mais qubits apresentam este comportamento, dizemos que os qubits estão emaranhados.</p><p>Esta propriedade é extensivamente utilizada em computação quântica, para que a interação entre os qubits dê origem a estados informacionais não acessíveis classicamente, tendo também grande importância em protocolos de comunicação quântica.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*bwN7sKn32OhwezwaTansYg.jpeg" /><figcaption>Dois átomos emaranhados, formando um sistema composto (não separável) que não pode ser descrito em termos dos átomos individuais.</figcaption></figure><p>Estas três propriedades são completamente quânticas, sem um análogo clássico muito claro, e talvez por isso pode ser difícil entendê-las sem uma devida descrição matemática. Mas não se preocupe com isso (e, se houver demanda nos comentários, podemos fazer posts futuros mais detalhados e matemáticos sobre cada uma destas propriedades!). Por enquanto, saiba apenas que estas três propriedades (disponíveis apenas em sistemas físicos muito pequenos, regidos pela mecânica quântica) são os elementos fundamentais para que seja possível conceber a computação quântica, com todo seu enorme potencial de ganhos em processamento computacional.</p><p>Naturalmente, todo este potencial só pode ser concretizado se for realmente possível a construção de computadores quânticos — isto é, hardware que (além de diversos outros componentes importantes), conta com uma central de processamento quântica (QPU, do inglês <em>quantum processing unit</em>) composta por qubits que possam ser manipulados para a execução de algoritmos quânticos.</p><p>Felizmente, atualmente já temos alguns exemplos no mundo de computadores quânticos ainda pequenos e ruidosos, mas que demonstram como prova de conceito que este é um caminho possível. E, acredite, a construção de um computador quântico é um problema de engenharia extremamente complexo, um desafio enorme! A boa notícia é que, enquanto você lê este artigo, há cientistas brilhantes trabalhando na construção de diferentes propostas de hardwares quânticos para que seja possível implementarmos e termos, um dia, concretizadas as revoluções computacionais que descreveremos neste blog. Em posts futuros, vamos discutir um pouco mais sobre as propostas de hardware existentes, e em que estágio de seu desenvolvimento estamos atualmente, assim, ficará claro o porquê da construção de hardware quântico ser uma tarefa de engenharia tão complexa.</p><p>Agora que os conceitos básicos sobre a computação quântica já foram apresentados, estamos prontos para introduzir o contexto geral da área de QML, o que começaremos a fazer no próximo post. Até lá!</p><p>Aos interessados em se aprofundar nos detalhes mais matemáticos da mecânica quântica, computação quântica e quantum machine learning, deixo as seguintes excelentes referências:</p><p><em>Diu, B., Laloë, F., Cohen-Tannoudji, C. </em>(2019)<em>.</em> <strong>Quantum Mechanics, Volume 1: Basic Concepts, Tools, and Applications. </strong>Alemanha: Wiley.</p><p><em>Nielsen, M. A., Chuang, I. L. </em>(2010)<em>.</em> <strong>Quantum Computation and Quantum Information: 10th Anniversary Edition.</strong> Reino Unido: Cambridge University Press.</p><p><em>Benenti, G., Casati, G., Strini, G.</em> (2004). <strong>Principles of Quantum Computation and Information: Basic concepts.</strong> Singapura: World Scientific.</p><p><em>Schuld, M., Petruccione, F. </em>(2021). <strong>Machine Learning with Quantum Computers. </strong>Suíça: Springer International Publishing.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c22f7e6df493" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/computa%C3%A7%C3%A3o-qu%C3%A2ntica-e-quantum-machine-learning-c22f7e6df493">Computação quântica e quantum machine learning</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Como é atuar na Engenharia de Machine Learning do Itaú?]]></title>
            <link>https://medium.com/itau-data/como-%C3%A9-atuar-na-engenharia-de-machine-learning-do-ita%C3%BA-ffe1f6ed5c88?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/ffe1f6ed5c88</guid>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[cloud-computing]]></category>
            <category><![CDATA[mlops]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[careers]]></category>
            <dc:creator><![CDATA[Diego Nogare]]></dc:creator>
            <pubDate>Thu, 23 Jun 2022 12:39:48 GMT</pubDate>
            <atom:updated>2022-06-23T12:39:48.378Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Você já imaginou como é trabalhar na área de engenharia de machine learning de uma empresa com cerca de 60 milhões de clientes e mais de 70 petabytes de dados? Essa é a realidade que vivenciamos no dia a dia aqui no Itaú Unibanco — e nesse artigo, vou compartilhar alguns de nossos objetivos e um pouco da nossa rotina de trabalho.</blockquote><p>No Itaú, somos centenas de cientistas de dados desenvolvendo ferramentas no estado da arte em Inteligência Artificial. Muitos dos produtos que utilizamos são desenvolvidos por aqui e exigindo multidisciplinaridade com diversas áreas e habilidades, como engenharia, arquitetura e desenvolvimento de software; arquitetura de <em>cloud computing</em>; segurança da informação; governança de dados; entre algumas outras..</p><p>Especificamente no time de Engenharia de <em>Machine Learning</em>, nós trabalhamos para construir, sustentar e evoluir produtos de autosserviço para a implantação de modelos de aprendizagem de máquina. Nosso trabalho possui tanto visões estratégicas, com foco no futuro das plataformas do banco, quanto táticas, com o objetivo de manter e aprimorar os sistemas já existentes.</p><p>Cientistas de dados utilizam, de ponta a ponta, as plataformas que construímos, passando por todas as fases do ciclo de desenvolvimento, desde o acesso aos dados até o monitoramento do modelo publicado. Criamos um ambiente unificado mas não centralizado, que provisiona soluções como <em>Feature Store</em>, Ambiente de Experimentação de Modelos, Esteiras de CI/CD para<em> Machine Learning</em>, Agendador de execuções de <em>queries</em>, Monitoramento dos modelos em fase de experimentação e publicação, treino e retreino de modelos, ambientes de publicação de modelos… Tudo isso com o intuito de oferecer uma plataforma moderna, completa e dinâmica para que cientistas possam entregar valor para a área de negócios mais rápido, impactando assim, o cliente na ponta.</p><p>Além de desenvolver a plataforma, também elaboramos um processo de capacitação para treinar cientistas do banco no uso de todas estas ferramentas. Esta capacitação busca dar cada vez mais autonomia para o time de ciência de dados, para que foquem no problema de negócio que pretendem resolver sem ter que se preocupar com as ferramentas que utilizarão. Esta capacitação, combinada com até 8 horas de estudos semanais que as pessoas da carreira de Ciência de Dados e Engenharia de <em>Machine Learning</em> tem direito, auxiliam na evolução constante destas pessoas e permitem que soluções e estratégias modernas sejam discutidas e implementadas.</p><p>Para desenvolver a plataforma de publicação de modelos do banco, montamos um time multidisciplinar que ajuda em todo o processo de experimentação e homologação de frameworks de <em>Machine Learning</em> tanto com soluções de <em>Cloud Computing</em> quanto com soluções <em>Open Source</em> e soluções proprietárias. A relação que mantemos com fornecedores externos de ferramentas colabora para que a plataforma atenda as demandas do banco utilizando produtos estabelecidos no mercado, como também, permite que seja construído o que entendemos que é preciso.</p><h3>Como interagimos com as diferentes áreas do banco?</h3><p>Com esse escopo, você já deve imaginar que as áreas dedicadas à negócios e produtos que se alimentam dos nossos produtos não são poucas. É por isso que, aqui no Itaú, os produtos que desenvolvemos precisam ser flexíveis, escaláveis, ágeis e documentados, para que diferentes áreas do banco possam usá-los sem dificuldades, de forma automática e reproduzível.</p><p>Para atender a dinâmica dos clientes internos, e a velocidade com a qual as tecnologias se comunicam e evoluem, nossos times também participam de comitês com equipes de arquitetura e <em>cloud</em>, para auxiliá-las na habilitação de novas integrações entre sistemas e ambientes. Estas atividades permitem com que peças de tecnologias sejam criadas e entreguem as funcionalidades necessárias para que outras áreas atendam seus clientes.</p><h3>Como funciona a carreira de engenharia de Machine Learning no Itaú?</h3><p>Com o objetivo de consolidar e reconhecer o papel deste perfil específico de atuação dentro do banco, criamos uma carreira dedicada ao desenvolvimento de profissionais de Engenharia de <em>Machine Learning</em>.</p><p>Para entendermos quais os conhecimentos técnicos que seriam necessários para cada etapa da carreira, fizemos várias análises de mercado e conduzimos discussões com nosso time de pessoas, desenvolvimento e clientes até chegarmos em um conjunto de habilidades que mais fazem sentido para as nossas necessidades.</p><p>Estas habilidades são compartilhadas entre todos os níveis da carreira, o que se diferencia é o nível de profundidade do conhecimento exigido em cada etapa.</p><p>Internamente, o processo para ingressar na carreira de Engenharia de <em>Machine Learning</em> contém alguns passos. O primeiro passo é haver a disponibilidade de uma cadeira que atue com as ferramentas e tecnologias que foram definidas para o cargo. Com essa cadeira disponível, é realizada uma prova que avalia quantitativamente as habilidades técnicas que traçamos para o perfil. Após a aprovação neste exame, é então realizada uma sabatina para analisar de forma qualitativa conhecimentos mais profundos sobre o que se espera de cada nível.</p><p>Na prova são exigidos conhecimentos de programação em <em>Python </em>e teste de software; banco de dados relacional e não relacional tanto para consulta quanto para modelagem; Conceitos de <em>Big Data</em> e ingestão/consumo de dados; Arquitetura e soluções de CI/CD para <em>Machine Learning</em>; Infraestrutura como código e arquitetura para soluções na AWS; <em>Container</em>, Git e metodologia ágil; além de conhecer de <em>Machine Learning</em>. Já na sabatina o processo é conduzido com discussões aprofundadas em resoluções de problemas, compartilhando uma arquitetura e discutindo possíveis alterações e impactos, de acordo com as soluções que forem surgindo durante a conversa.</p><h3>Bibliografia básica</h3><p>Para auxiliar as pessoas interessadas em ingressar na carreira, preparamos uma bibliografia básica para que se preparem para o trabalho, e, se capacitem para realizar o exame + sabatina.</p><p><strong>CD4ML</strong>: <a href="https://martinfowler.com/articles/cd4ml.html">https://martinfowler.com/articles/cd4ml.html</a></p><p><strong>MLOps: Continuos Delivery for ML on AWS</strong>: <a href="https://d1.awsstatic.com/whitepapers/mlops-continuous-delivery-machine-learning-on-aws.pdf">https://d1.awsstatic.com/whitepapers/mlops-continuous-delivery-machine-learning-on-aws.pdf</a></p><p><strong>Machine Learning Lens — AWS Well-Architected Framework</strong>: <a href="https://docs.aws.amazon.com/wellarchitected/latest/machine-learning-lens/wellarchitected-machine-learning-lens.pdf">https://docs.aws.amazon.com/wellarchitected/latest/machine-learning-lens/wellarchitected-machine-learning-lens.pdf</a></p><p><strong>MLOps: pipelines de entrega contínua e automação do aprendizado de máquina</strong>: <a href="https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning">https://cloud.google.com/architecture/mlops-continuous-delivery-and-automation-pipelines-in-machine-learning</a></p><p>Hapke, H., &amp; Nelson, C. (2020). <strong>Building Machine Learning Pipelines</strong>. O’Reilly Media.</p><p>Raj, E. (2021). <strong>Engineering MLOps</strong>. Packt Publishing.</p><p>Treveil, M., Omont, Dataiku Team. (2020). <strong>Introducing MLOps</strong>. O’Reilly Media.</p><p>Lakshmanan, V., Robinson, S., &amp; Munn, M. (2020).<strong> Machine learning design patterns</strong>. O’Reilly Media.</p><p>Burkov, A. (2019). <strong>The hundred-page machine learning book</strong> (Vol. 1, pp. 3–5). Canada: Andriy Burkov.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ffe1f6ed5c88" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/como-%C3%A9-atuar-na-engenharia-de-machine-learning-do-ita%C3%BA-ffe1f6ed5c88">Como é atuar na Engenharia de Machine Learning do Itaú?</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Multi-armed Bandits: uma alternativa para testes A/B]]></title>
            <link>https://medium.com/itau-data/multi-armed-bandits-uma-alternativa-para-testes-a-b-d5db47d24006?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/d5db47d24006</guid>
            <category><![CDATA[reinforcement-learning]]></category>
            <category><![CDATA[multi-armed-bandit]]></category>
            <category><![CDATA[ab-testing]]></category>
            <dc:creator><![CDATA[Bruno Eidi Nishimoto]]></dc:creator>
            <pubDate>Mon, 13 Jun 2022 13:19:52 GMT</pubDate>
            <atom:updated>2022-06-13T13:19:52.652Z</atom:updated>
            <content:encoded><![CDATA[<h4>Como acelerar os resultados de um teste A/B e evitar custos desnecessários?</h4><blockquote>A versão em inglês deste artigo está disponível em <a href="https://medium.com/@brunonishimoto/multi-armed-bandits-an-alternative-to-a-b-testing-8acce8e12549"><strong>Multi-armed Bandits: an alternative to A/B testing</strong></a></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*cGaRgJ3_9AxM3SIU" /><figcaption>O termo “Multi-Armed Bandit” se refere ao cenário no qual um apostador precisa escolher em quais máquinas quer jogar dada uma fileira de caça-níqueis. O caça-níquel é conhecido em Inglês como “one-armed bandit”, ou “bandido de um braço”. .Foto po <a href="https://unsplash.com/@carltraw?utm_source=medium&amp;utm_medium=referral">Carl Raw</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a>.</figcaption></figure><p>O teste A/B é uma prática muito utilizada em diversas empresas para comparar duas ou mais estratégias e/ou versões de um produto (anúncio, design, página de destino, etc.) e obter aquele que tem um melhor desempenho, ou seja, que tem uma taxa de conversão superior às outras. Por exemplo, considere um aplicativo de uma empresa, um possível teste é considerar se a cor de um botão deve ser azul ou laranja. Com o teste A/B dividimos o público na qual uma parte recebe a versão com o botão azul e outra parte com o botão laranja, e analisa-se qual das versões obteve uma taxa de cliques maior.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/667/1*TMJyMOuC82jx_ucW8-iWjA.png" /><figcaption>Ilustração do teste A/B.</figcaption></figure><p>A figura acima ilustra o funcionamento do teste A/B: as diferentes variantes do produto são divididas aleatoriamente para os usuários com uma distribuição fixa. Assim, uma parte do público recebe apenas a versão A do produto enquanto a outra parte apenas a versão B por um certo período de tempo. Ao fim desse período, testes estatísticos são aplicados com o intuito de observar qual das diferentes versões tem um resultado melhor.</p><p>Entretanto há alguns problemas com o teste A/B:</p><ul><li>há um alto custo com as versões “ruins” do produto, pois elas continuarão sendo oferecidas ao usuário até o fim do teste sendo que o retorno delas não são boas;</li><li>existe também o risco de perder usuários, pois aqueles que durante todo o período de teste que receberam a versão “ruim” do produto podem ficar insatisfeitos.</li></ul><p>Existe alguma alternativa ao teste A/B para evitar esses problemas? Ou seja, que podemos reduzir esses custos associados às versões inferiores do produto?</p><h3>Multi-armed Bandits</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/648/1*qh46a_qurQk30SCet6oWDg.gif" /><figcaption>Animação para o Multi-armed Bandits. Fonte: <a href="https://multithreaded.stitchfix.com/blog/2020/08/05/bandits/">https://multithreaded.stitchfix.com/blog/2020/08/05/bandits/</a></figcaption></figure><p>O Aprendizado por Reforço é uma técnica de aprendizado de máquina na qual o agente aprende interagindo com o ambiente. Primeiramente o agente observa o <strong>estado</strong> do ambiente e executa uma <strong>ação</strong> baseada na sua observação. Essa ação irá modificar o ambiente que transiciona para um <strong>novo estado</strong> e retorna uma <strong>recompensa</strong> para o agente dependendo se a ação foi boa ou não. O objetivo do agente é aprender uma <strong>política</strong>, ou seja, como escolher as ações de modo a receber o máximo de recompensa possível a longo prazo. Imagine por exemplo um jogo de xadrez: o ambiente é o tabuleiro em si e o seu estado corresponde ao posicionamento das peças em determinada fase do jogo. As ações do agente são todos os movimentos que ele pode fazer e a recompensa é de acordo com o resultado final do jogo (vitória, derrota ou empate).</p><p>O Multi-armed Bandits (MaB) [1] é um caso específico e mais simples do problema de aprendizado por reforço na qual você tem <strong>k </strong>diferentes opções (ou ações) <em>A₁, A₂, …, Aₖ</em>, cada uma associada a uma distribuição real R<em>= {R₁, R₂, …, Rₖ}</em> correspondente às <strong>recompensas</strong>, onde μ<em>₁, </em>μ<em>₂</em>,…, μ<em>ₖ </em>são as médias dessas distribuições, respectivamente. Assim o agente executa iterativamente uma ação Aₜ de acordo com a sua política e recebe uma recompensa numérica rₜ (que é amostrada a partir da distribuição Rₜ) associada à essa ação. O objetivo é maximizar as recompensas recebidas durante as interações, ou seja, encontrar a ação que possui a maior recompensa esperada. Em outras palavras, o agente precisa descobrir as distribuições de recompensa associadas a cada ação para obter aquela que possui o maior retorno esperado. Uma possível métrica para avaliar o aprendizado do agente em <strong>T</strong> interações é o <strong>arrependimento </strong>ρ, dada pela diferença esperada entre a soma da recompensa associada à ação ótima com a soma das recompensas coletadas:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/140/1*xt9fjO3_uRdbeMLbHuOodA.png" /><figcaption>Arrependimento de um agente em <strong>T</strong> interações.</figcaption></figure><p>Onde μ* é a média da distribuição de recompensa associada à ação ótima e rₜ é a recompensa recebida no instante t.</p><p>O algoritmo base para o MaB é bem simples:</p><pre>1. Obtém uma estimativa inicial de recompensa de cada uma das k ações<br>2. Para cada episódio t até T:<br>3.     Seleciona uma ação de acordo com uma <strong>política</strong><br>4.     Obtém a recompensa dessa ação<br>5.     Atualiza a estimativa da recompensa da ação escolhida</pre><p>A <strong>política</strong> é o ponto principal de um algoritmo MaB, a qual está relacionada em como o agente irá escolher a ação de acordo com as estimativas de recompensa que ele possui. Essa escolha da ação depende da estratégia de <strong><em>exploration</em></strong> e <strong><em>exploitation</em> </strong>de cada política.</p><h4><em>Exploration vs Exploitation</em></h4><p>Imagine que você está em uma cidade nova e não conhece nenhum restaurante da cidade. Na primeira vez, você vai em um restaurante A e gosta bastante dele, ou seja, ele tem uma boa recompensa. Na próxima vez fica o dilema: você deve ir no mesmo restaurante (<strong><em>exploitation</em></strong>), visto que você já sabe que ele é bom, ou você deve visitar um novo restaurante (<strong><em>exploration</em></strong>), para tentar descobrir algum outro que possivelmente seja melhor?</p><p>O ideal é que no começo seja feito mais <strong><em>exploration</em></strong> para que o agente consiga conhecer um pouco melhor o ambiente com a qual ele está interagindo, e no final, mais <strong><em>exploitation</em></strong> para usufruir da melhor ação considerando que o agente já conseguiu conhecer bem o ambiente, isto é, ter uma boa estimativa das recompensas de cada ação.</p><p>É justamente neste balanceamento entre o <strong><em>exploration</em></strong> e o <strong><em>exploitation</em></strong> que os diferentes algoritmos de MaB trabalham. Veremos em um artigo posterior alguns algoritmos de MaB detalhando cada uma delas. Agora, vamos ver como podemos aplicar o MaB em testes A/B e quais as suas vantagens :).</p><h3>MaB e Teste A/B</h3><p>Uma aplicação do MaB é justamente em testes A/B, na qual as diferentes versões do produto são mapeadas para as ações, e as taxas de conversão de cada produto para as recompensas. E como não se sabe <em>a priori</em> a verdadeira taxa de conversão de cada produto, o MaB se encaixa bem no problema para encontrar a versão ótima, i.e., que trás a maior recompensa.</p><p>Devido à natureza do MaB ser um método iterativo, a sua principal vantagem é que ele consegue dinamicamente mudar a distribuição de usuários que serão impactados com cada versão de produto, priorizando aqueles que obtiveram melhores recompensas, ou seja, atribuindo um volume maior de usuários para aquela versão. Em outras palavras, o método permite que você aprenda durante o teste, e não apenas no fim dele. Com isso é possível reduzir os custos associados às versões “ruins” visto que eles serão despriorizados durante o processo.</p><p>Além disso, conseguimos obter o resultado mais rápido do que no teste A/B, visto que a distribuição vai progressivamente favorecendo a variante com maior conversão.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/425/1*BFQzIdVJ_ZR_HlvqFXzC9w.png" /><figcaption>Comparação entre teste A/B e MaB ao longo do tempo. Fonte da imagem: <a href="https://vwo.com/blog/multi-armed-bandit-algorithm/">https://vwo.com/blog/multi-armed-bandit-algorithm/</a></figcaption></figure><p>Dito isso, o foco do MaB é maximizar os ganhos durante todo o período do teste, modificando, dinamicamente, as distribuições de cada variante do produto. Com isso temos as vantagens já citadas: diminuição no custo e obtenção do melhor grupo mais rápido. O <em>trade-off</em> que temos com relação ao teste A/B é que não é possível realizar testes estatísticos para demonstrar que duas versões são estatisticamente distintas ou não.</p><h3>Conclusão</h3><p>Neste artigo vimos o que são os testes A/B e alguns dos seus principais problemas e introduzimos o MaB e como eles são aplicados como uma alternativa para os testes A/B.</p><p>Em um artigo posterior apresentaremos os principais algoritmos do MaB, analisando a estratégia de cada uma para fazer o balanceamento entre o <strong><em>exploration</em></strong> e <strong><em>exploitation</em></strong>.</p><h3>Referências</h3><blockquote>1. Slivkins, Aleksandrs. Introduction to Multi-Armed Bandits — <a href="https://arxiv.org/pdf/1904.07272.pdf">https://arxiv.org/pdf/1904.07272.pdf</a></blockquote><blockquote>2. Gupta, Shubhankar. Multi-Armed Bandit (MAB) — A/B Testing Sans Regret — <a href="https://vwo.com/blog/multi-armed-bandit-algorithm/">https://vwo.com/blog/multi-armed-bandit-algorithm/</a></blockquote><blockquote>3. Veleaev, Denis. How to generate a lot more leads and reduce costs? A/B Testing vs Reinforcement Learning. — <a href="https://towardsdatascience.com/reinforcement-learning-64730aaa46c9">https://towardsdatascience.com/reinforcement-learning-64730aaa46c9</a></blockquote><blockquote>4. <a href="https://medium.com/@raffg?source=post_page-----98ca927b357d--------------------------------">Rafferty</a>, <a href="https://medium.com/@raffg?source=post_page-----98ca927b357d--------------------------------">Greg</a>. A/B testing — Is there a better way? An exploration of multi-armed bandits — <a href="https://towardsdatascience.com/a-b-testing-is-there-a-better-way-an-exploration-of-multi-armed-bandits-98ca927b357d">https://towardsdatascience.com/a-b-testing-is-there-a-better-way-an-exploration-of-multi-armed-bandits-98ca927b357d</a></blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d5db47d24006" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/multi-armed-bandits-uma-alternativa-para-testes-a-b-d5db47d24006">Multi-armed Bandits: uma alternativa para testes A/B</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Redes neurais convolucionais]]></title>
            <link>https://medium.com/itau-data/redes-neurais-convolucionais-2206a089c715?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/2206a089c715</guid>
            <category><![CDATA[deep-learning]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[convolutional-network]]></category>
            <category><![CDATA[computer-vision]]></category>
            <dc:creator><![CDATA[Katia Poloni]]></dc:creator>
            <pubDate>Thu, 10 Mar 2022 12:06:31 GMT</pubDate>
            <atom:updated>2022-03-10T12:06:31.765Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Uma breve história sobre as arquiteturas</strong></p><p>“<em>Deep learning”</em> é um dos assuntos mais populares da atualidade quando se fala em inteligência artificial. É um tópico que tem gerado bastante curiosidade, tanto para os profissionais da tecnologia e pesquisadores, quanto para pessoas externas.</p><p>Atualmente, existe uma grande diversidade de aplicações que utilizam <em>deep learning </em>nos mais diversos cenários, inclusive aqui no Itaú. Uma particularidade, geralmente conhecida por quem trabalha na área, é que o <em>deep learning</em> se estende tanto aos dados estruturados quanto os não estruturados.</p><p>Tradicionalmente, um modelo <em>deep</em> consiste em uma <em>MultiLayer Perceptron</em> (MLP) com diversas camadas. Mas, não para por aí: existem também as redes neurais recorrentes e as redes neurais convolucionais (C<em>onvolutional Neural Networks </em>— CNNs), que são capazes de lidar com dados não-estruturados.</p><p>Como cientista do time de Visão Computacional do Itaú, venho contar, brevemente, sobre a evolução de algumas das arquiteturas de CNNs às quais estudei durante a minha <a href="https://bv.fapesp.br/pt/pesquisa/buscador/?q2=(id_pesquisador_exact%3A700584)%20AND%20(bolsa_exact:%22Bolsas%20no%20Brasil%22%20AND%20situacao:%22Conclu%C3%ADdos%22)">pesquisa de doutorado</a>.</p><p><strong>Arquiteturas</strong></p><p>A primeira CNN, proposta em 1998 por LeCun, é denominada LeNet [1]. Ela foi desenvolvida com o intuito de auxiliar no reconhecimento de caracteres da base MNIST e gerou resultados com alta acurácia. Uma das particularidades mais importantes das CNNs é que os pesos a serem aprendidos nas camadas convolucionais compõem o filtro que realizará a operação de convolução. Dessa maneira, além de manter a relação espacial das imagens, são extraídas características relevantes durante a aprendizagem. Adicionalmente, o uso de camadas convolucionais reduz significativamente a quantidade de parâmetros quando comparada à MLP e facilita a convergência da rede.</p><p>A arquitetura e conceitos introduzidos pela LeNet ainda são muito importantes, pois serviram como base para a criação das arquiteturas mais atuais. Em suma, a rede é formada por uma sequência de camadas, sendo que cada uma delas possui uma função específica na propagação do sinal de entrada, ilustradas pela Figura 1. Tradicionalmente, existem três tipos principais de camadas:</p><ol><li>as convolucionais;</li><li>as de subamostragem (<em>pooling</em>); e</li><li>as totalmente conectadas (<em>fully-connected</em>).</li></ol><p>As convolucionais são responsáveis por extrair características das camadas anteriores ou da imagem de entrada, caso seja a primeira camada da rede. As de subamostragem, por reduzir a dimensionalidade dos dados, além de ajudar a tornar a representação invariante a pequenas translações na entrada. Por fim, a totalmente conectada é responsável pela propagação do sinal por meio da multiplicação ponto a ponto e o uso de uma função de ativação. A última camada tem como valor de saída a probabilidade de uma imagem de entrada pertencer a uma das classes para qual a rede foi treinada, a depender da função de ativação utilizada.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zE17tSy6_8syDtBXyTZ8SQ.png" /><figcaption>Figura 1: Arquitetura da LeNet. Imagem extraída, editada e traduzida de [1].</figcaption></figure><p>Em 2012, alguns anos após a introdução da LeNet, devido ao aumento de recursos computacionais e dados disponíveis, surgiu uma das primeiras arquiteturas que revolucionou o uso das CNNs, a AlexNet [2]. Ela foi a vencedora da competição <a href="https://image-net.org/challenges/LSVRC/">ILSVRC </a>(<em>ImageNet Large Scale Visual Recognition Challenge</em>) 2012 e deu início a uma sequência de novas propostas de arquiteturas de CNNs com diferentes conceitos, melhorias e aplicações.</p><p>A seguir, uma breve descrição das particularidades e motivações para a criação das novas arquiteturas é fornecida:</p><p><strong>AlexNet [2]</strong>: Vencedora do ILSVRC 2012. Possui arquitetura similar à LeNet, com a inclusão de mais camadas, filtros, empilhamento das convoluções e usou pela primeira vez a função de ativação ReLu [11]. A rede possui filtros de resolução 11×11, 5×5 e 3×3, camadas de <em>pooling </em>e totalmente conectadas, totalizando 8 camadas com cerca de 61 milhões de parâmetros.</p><p><strong>VGG [3]</strong>: Segundo lugar no ILSVRC 2014. Surgiu com a proposta de criar uma arquitetura de rede mais profunda que as anteriores. A rede contém 19 camadas e 138 milhões de parâmetros. Os autores conseguiram aumentar a quantidade de camadas com o empilhamento de filtros 3 × 3, mostrando que o empilhamento de três desses filtros (243 parâmetros) tinha o mesmo campo receptivo do que um filtro de 7 × 7 (3969 parâmetros). Dessa maneira, foi possível criar uma rede mais profunda sem aumentar muito a quantidade de parâmetros, permitindo, assim, o aprendizado de mais não-linearidades. Existem outras versões da rede com variações principalmente na quantidade de camadas, como a VGG-11, 13 e 16.</p><p><strong>GoogleNet [4]</strong>: Vencedora do ILSVRC 2014. A rede possui 22 camadas e não utiliza camadas totalmente conectadas, portanto, possui apenas 4 milhões de parâmetros. Também com a proposta de inserção de mais camadas, os autores criaram o conceito de<em> Inception Module</em>. Além disso, ao invés de escolher quais tamanhos de filtros são os mais adequados, a arquitetura foi projetada para executar todos em paralelo e empilhar as respostas. Dessa maneira, a rede aprende quais são as melhores configurações de filtros, dando maior dinamicidade. No entanto, ao usar diferentes configurações de filtros, a quantidade de parâmetros da rede aumenta, inviabilizando que seja mais profunda. Para contornar esse problema, foram inseridas as camadas “<em>bottleneck</em>”, que adicionam filtros de tamanho 1 × 1 antes da convolução desejada, viabilizando a execução dos filtros em paralelo, reduzindo a quantidade de parâmetros, e consequentemente, permitindo que seja mais profunda.</p><p><strong>ResNet [5]</strong>: Vencedora do ILSVRC 2015. Foi a primeira rede a obter erro de classificação menor que o humano para a aplicação. Sua principal inovação foi conseguir criar redes ultra profundas (com 152 camadas) sem sacrificar seu desempenho. Os autores notaram que redes mais profundas enfrentavam o “problema da degradação”, ou seja, a acurácia da rede acaba saturando ou degradando com o aumento na quantidade de camadas, indicando que redes mais rasas estão aprendendo melhor do que mais profundas. Esse problema pode ser causado pelo desaparecimento do gradiente (<em>vanishing gradient</em>), em que o gradiente pode ser tornar infinitamente pequeno na retropropagação para as camadas anteriores e/ou maldição da dimensionalidade. Sabendo que redes mais rasas têm melhor desempenho do que as mais profundas com algumas camadas a mais adicionadas, os autores propuseram pular essas camadas extras para obter pelo menos a mesma acurácia que a rede mais rasa. Para isso, foi criada a “conexão identidade”, que insere uma conexão entre o início e final de um conjunto de camadas, sendo estas camadas conhecidas como o mapeamento residual. Dessa maneira, algumas camadas podem ser puladas durante o treinamento. A função identidade pode ser aprendida simplesmente definindo o residual como zero. Além disso, devido aos saltos nas conexões, a rede pode escolher quais camadas são mais importantes, tornando-a mais dinâmica e o gradiente pode ser propagado para as camadas iniciais, permitindo a criação de redes ultra profundas.</p><p>Ao analisar as particularidades de cada arquitetura, é possível notar que foram introduzidos muitos artefatos que são utilizados em arquiteturas mais modernas. Até esse momento, as arquiteturas focavam em conseguir redes mais profundas para melhorar a acurácia. No entanto, o erro obtido pelas redes na aplicação ILSVRC já era tão baixo, que diminuir ainda mais o erro poderia não compensar o custo computacional, além das diferenças entre os resultados poderem não ser representativas estatisticamente. Portanto, a seguir são brevemente descritas arquiteturas que focam também em desempenho e eficiência. A Figura 2 mostra a diminuição do erro obtido pelas redes entre 2010 e 2015 na competição ILSVRC.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Q9c91xwtrkccCpH_GSxYBg.png" /><figcaption>Figura 2: Evolução das redes vencedoras do ILSVRC entre 2010 e 2015.</figcaption></figure><p><strong>MobileNet — V1</strong> <strong>[6]</strong>: As MobileNets foram criadas para funcionar em tempo hábil e em uma plataforma limitada computacionalmente, como aplicações de robótica, carro autônomo, realidade aumentada, mobile, entre outros. Sua primeira versão, v1, propôs o uso de blocos chamados de convolução <em>depthwise separable</em> ao invés da convolução tradicional. Esses blocos possuem resoluções e tamanhos de entrada e saída correspondentes à convolução tradicional, porém com redução significativa da quantidade de operações e custo computacional, permitindo que sejam utilizados em ambientes com maiores limitações computacionais. A convolução <em>depthwise separable</em> possui duas etapas: a convolução <em>depthwise </em>e a convolução <em>point-wise</em>. A primeira consiste na realização de uma convolução separada para cada canal (<em>channel</em>) de cor da imagem e posterior concatenação das respostas, e a segunda, que possui como entrada a saída da primeira, consiste na realização de convoluções de 1 × 1 × 𝑁𝑐 para cada quantidade de filtros.</p><p><strong>MobileNet — V2</strong> <strong>[7]:</strong> A segunda versão é composta por blocos <em>Mobile inverted bottleneck convolution</em> (MBConv), cujo objetivo é permitir que a rede aprenda funções mais complexas enquanto mantém a quantidade de memória relativamente pequena, além de possuir resoluções e tamanhos de entrada e saída correspondentes à convolução tradicional. Cada bloco é delimitado por uma “conexão identidade”, similar à ResNet [5], sendo as camadas intermediárias denominadas de mapeamento residual. Esse mapeamento contém uma camada de expansão, a convolução <em>depthwise </em>e a convolução <em>point-wise</em> (denominada projeção na v2). A operação de expansão aumenta o tamanho da representação no bloco por um determinado fator, permitindo que a rede aprenda funções mais ricas, a convolução <em>depthwise </em>realiza a convolução por canal e a projeção retorna ao tamanho desejado para haver economia de memória.</p><p><strong>Squeeze and excitation [8]:</strong> Essa rede propôs o uso de blocos <em>squeeze and excitation</em> para recalibrar de maneira adaptativa as respostas por canal, modelando explicitamente suas interdependências. Sua criação foi motivada devido à operação de convolução tradicional unir as informações espaciais e por canal, ao invés de analisar de maneira separada. Nesse caso, um bloco é composto por duas etapas, a <em>squeeze e a excitation.</em> A camada <em>squeeze</em> consiste na operação de <em>max pooling</em> por canal e a etapa de <em>excitation </em>possui quatro camadas sequenciais. Com isso, o bloco consegue suprir características menos informativas e enfatizar as características mais informativas.</p><p><strong>EfficientNets [9]:</strong> As <em>EfficientNets </em>correspondem a uma família de modelos de CNNs criadas pelo <em>Google Research Brain Team</em> que atingiram acurácia e eficiência melhores na base do ImageNet do que as CNNs propostas anteriormente. Sua principal motivação foi construir redes com alta acurácia e eficiência. Até o momento, a prática convencional para o dimensionamento do modelo consistia em aumentar arbitrariamente a profundidade ou largura da CNN, ou usar uma imagem de entrada com resolução maior. Embora esses métodos melhorem a acurácia, geralmente exigem ajuste manual e, ainda assim, costumam produzir um desempenho abaixo do ideal. A proposta da <em>EfficientNet</em> é escalar automaticamente a arquitetura das redes para uma aplicação ou dispositivos específicos. Essa família de redes é baseada em uma arquitetura base, a B0, a qual foi criada a partir de uma pesquisa de arquiteturas que otimizam, simultaneamente, a acurácia e as operações de ponto flutuante por segundo (<em>Floating point operations per second</em> — FLOPS). Sua arquitetura é composta principalmente por blocos MBConv [7], com a adição da otimização <em>squeeze and excitation</em> [8]. A partir da arquitetura base são realizadas aplicações de dimensionamento que alteram a profundidade (#layers), largura (#channels) e resolução da rede simultaneamente.</p><p><strong>Conclusões</strong></p><p>Durante a minha pesquisa de doutorado, eu trabalhei com a <em>EfficientNet.</em> A minha proposta consistiu em criar um <a href="https://github.com/kapoloni/age_prediction">modelo para a estimação etária do cérebro</a> a partir da análise de imagens de ressonância magnética, e verificar se existe uma superestimação etária estatisticamente significativa para pacientes com declínio cognitivo causado pela doença de Alzheimer — e sim, existe, conseguimos! (se tiver interesse em mais detalhes, confira <a href="https://doi.org/10.1016/j.eswa.2022.116622">aqui</a> a publicação).</p><p>É importante mencionar que existem diversas arquiteturas de CNNs disponíveis para serem <a href="https://pytorch.org/vision/stable/models.html">estudadas e testadas,</a> as quais não foram mencionadas nesse artigo. Uma das motivações para a escolha da <em>EfficientNet</em> foi devido a seus valores de acurácia reportados, e principalmente, a sua eficiência, visando a possível criação de uma aplicação médica embarcada para auxiliar o diagnóstico da doença de Alzheimer. Portanto, esse artigo teve maior enfoque em entender as particularidades das arquiteturas que levaram à criação final da rede.</p><p><strong>Referências</strong></p><p>[1] LECUN, Y. et al. Gradient-based learning applied to document recognition. <strong>Proceedings of the IEEE</strong>, v. 86, n. 11, p. 2278–2324, 1998.</p><p>[2] KRIZHEVSKY, A.; SUTSKEVER, I.; HINTON, G. E. Imagenet classification with deep convolutional neural networks. In: <strong>Advances in neural information processing systems 25</strong>. Nevada, United States: Curran Associates, Inc., 2012. p. 1097–1105.</p><p>[3] SIMONYAN, K.; ZISSERMAN, A. Very deep convolutional networks for large-scale image recognition. <strong>arXiv preprint arXiv: 1409.1556, 2014.</strong></p><p>[4] SZEGEDY, C. et al. Going deeper with convolutions. In: <strong>Proceedings of the IEEE conference on computer vision and pattern recognition — CVPR</strong>. Boston, USA: IEEE, 2015. p. 1–9.</p><p>[5] HE, K. et al. Deep residual learning for image recognition. In: <strong>Proceedings of the IEEE conference on computer vision and pattern recognition</strong>. Las Vegas, USA: IEEE, 2016. p. 770–778.</p><p>[6] HOWARD, A. G. et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications. <strong>arXiv preprint arXiv:1704.04861</strong>, 2017.</p><p>[7] SANDLER, M. et al. Mobilenetv2: Inverted residuals and linear bottlenecks. In: IEEE. <strong>Conference on computer vision and pattern recognition (CVPR)</strong>. Salt Lake City, USA, 2018. p. 4510–4520.</p><p>[8] HU, J.; SHEN, L.; SUN, G. Squeeze-and-excitation networks. In: IEEE. <strong>Conference on computer vision and pattern recognition (CVPR)</strong>. Salt Lake City, USA, 2018. p. 7132–7141.</p><p>[9] TAN, M.; LE, Q. Efficientnet: Rethinking model scaling for convolutional neuralnetworks. In: PMLR. <strong>International Conference on Machine Learning</strong>. California, USA, 2019. p. 6105–6114.</p><p>[10] BELL, S. et al. Inside-outside net: Detecting objects in context with skip pooling and recurrent neural networks. In: <strong>Proceedings of the IEEE conference on computer vision and pattern recognition — CVPR</strong>. Las Vegas, USA: IEEE, 2016. p. 2874–2883.</p><p>[11] NAIR, V.; HINTON, G. E. Rectified linear units improve restricted boltzmann machines. In: <strong>Proceedings of the 27th international conference on machine learning (ICML-10)</strong>. Haifa, Israel: Omnipress, 2010. p. 807–814.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2206a089c715" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/redes-neurais-convolucionais-2206a089c715">Redes neurais convolucionais</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Autocorrelação espacial]]></title>
            <link>https://medium.com/itau-data/autocorrela%C3%A7%C3%A3o-espacial-d3b0b7e33f52?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/d3b0b7e33f52</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[technology]]></category>
            <dc:creator><![CDATA[Marcos Paulo Pereira Moretti]]></dc:creator>
            <pubDate>Thu, 16 Dec 2021 12:58:45 GMT</pubDate>
            <atom:updated>2021-12-16T12:58:45.493Z</atom:updated>
            <content:encoded><![CDATA[<h4>Um método espacial de análise de variáveis</h4><p>O cálculo de correlação é um tópico de grande importância para estatísticos e cientistas de dados, pois permite descobrir se temos variáveis que têm uma tendência de crescimento parecida. <a href="http://geoinfo.amu.edu.pl/qg/archives/2011/QG302_087-093.pdf">As mais difundidas</a> e utilizadas são a de Pearson e a de Spearman<em>, </em>pela facilidade em sua compreensão e cálculo.</p><p>Entretanto, existem fenômenos do mundo real que podem ser analisados a partir de <strong>tendências espaciais.</strong> Vamos tomar como exemplo a pluviometria no Brasil. Ao analisar o padrão de chuvas em um país de proporções continentais como o Brasil, é possível perceber que para cada estação do ano e para cada região do Brasil existe um padrão de chuvas diferente; como a região Norte, que devido à maior umidade <a href="http://climanalise.cptec.inpe.br/~rclimanl/boletim/cliesp10a/chuesp.html">costuma apresentar maiores patamares de precipitação anual.</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/388/1*isw3DeTgV4r2PrW6rsw-ZA.gif" /><figcaption>Climatologia de precipitação acumulada no ano (mm) realizada durante o período de 1961 a 1990. (Fonte: <a href="http://climanalise.cptec.inpe.br/~rclimanl/boletim/cliesp10a/fig1_9.html">INPE</a>).</figcaption></figure><p>Assim, se quiséssemos descobrir as melhores temporadas de plantio no território brasileiro, fatalmente precisaríamos levar em conta o fator espacial, não só do ponto de vista das chuvas, mas também de outras variáveis climáticas e demográficas. Gostaríamos de entender se em cada estação do ano existe uma tendência entre clima e espaço que favoreça, por exemplo, o desenvolvimento de alguma cultura específica em cada região do Brasil.</p><p>Esse exemplo motiva o tópico deste artigo, que é a <strong>autocorrelação espacial. </strong>Vou apresentar aqui os conceitos e as formulações que estão por trás desse método.</p><p>Então, vamos nessa!</p><h3><strong>Mas afinal, o que é autocorrelação espacial?</strong></h3><p>Trata-se de um método de correlação que considera a distribuição de variáveis do problema em um <strong>espaço físico</strong> considerado. É uma estatística muito útil quando desejamos considerar a <strong>distribuição espacial</strong> de determinadas variáveis do nosso problema. A ideia é determinar se valores similares se encontram agrupados, dispersos ou distribuídos aleatoriamente no espaço, ou seja, se existe alguma tendência desses valores no espaço.</p><p>Um exemplo sobre esse conceito é apresentado a seguir:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*I5PDwHrTsWLkLtjwSLzXGg.png" /><figcaption>Distribuição da taxa de imigração na Itália em 2009, em que se destaca uma tendência sul-norte (Adaptado de <a href="https://www.researchgate.net/publication/229866917_Analyzing_Migration_Phenomena_with_Spatial_Autocorrelation_Techniques">Beniamino Murgante et al</a>., pág. 676).</figcaption></figure><p>Se analisarmos o fenômeno de imigração na Itália em 2009, é possível perceber que existe uma tendência de crescimento das taxas de imigração da região sul da Itália (menores taxas) em direção à região norte (maiores taxas). Entretanto, existe alguma forma de quantificar esse grau de correlação?</p><p>Existe! E se chama <strong>índice de Moran</strong> ou simplesmente o <strong>Moran’s I. </strong>Vou mostrar a vocês como calculá-lo.</p><h3><strong>Coeficiente Moran’s I</strong></h3><p><a href="https://aurin.org.au/resources/workbench-user-guides/portal-user-guides/analysing-your-data/spatial-autocorrelation-tools/bivariate-morans-i">O Moran’s I é uma estatística</a> que corresponde ao <strong>coeficiente de correlação entre uma variável numa região e o valor dessa variável em seus vizinhos.</strong> Essa estatística pode tomar valores no intervalo [-1, 1], assim como os coeficientes de correlação de Pearson e Spearman.</p><p>Alguns passos devem ser executados para calcular o Moran’s I: definir vizinhança; compilar os valores dos vizinhos para cada região (esses valores são chamados de <em>lag</em>), e; calcular um coeficiente de regressão da nuvem de pontos variável x <em>lag</em> (variável).</p><p>Esses passos ficarão mais claros a seguir:</p><ol><li><strong>Definindo vizinhança</strong></li></ol><p>O conceito de vizinhança entre regiões é um aspecto fundamental desse método, sendo o que o diferencia dos métodos de correlação citados inicialmente.</p><p>Diferentes abordagens podem ser utilizadas ao definir os vizinhos de uma região:</p><ul><li>Todas as regiões que fazem fronteira com a região considerada;</li><li>Todas as regiões cujo centroide está a uma distância máxima preestabelecida do centroide da região considerada;</li><li>Uma quantidade fixa K de regiões cujos centroides são os mais próximos (<em>K-nearest neighbors</em>) do centroide da região considerada.</li></ul><p>Abaixo estão exemplificadas as definições de vizinhança listadas, utilizando como referência o estado de Goiás (GO):</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AzACHeKZswWHjVp8E9mxnQ.png" /><figcaption>Estados vizinhos (mais o DF) a Goiás (GO) para cada método de vizinhança apresentado. Foram tomadas como centroides as capitais dos estados brasileiros. Notar que a definição de vizinhança modifica o conjunto dos vizinhos em cada caso. (Imagens adaptadas deste <a href="http://noticiasdobrunopontocom.blogspot.com/2016/08/avaliacao-de-geografia-para-5-ano.html">blog</a>. Distâncias obtidas de <a href="http://www.itatrans.com.br/distancia.html">Itatrans</a>).</figcaption></figure><p><strong>2.</strong> <strong>Cálculo dos <em>lags</em></strong></p><p>Após definida a vizinhança, os valores da variável nos vizinhos são resumidos em uma única quantidade (por exemplo, a média de todos os valores). Esse valor é conhecido como <em>lagging value </em>(ou somente <em>lag</em>).</p><p>Suponhamos que estejamos estudando os índices pluviométricos anuais de cada estado brasileiro. Além disso, suponhamos que adotemos todos os estados limítrofes como vizinhança. Neste caso, tomando o estado de Goiás (GO) como referência, calculamos para o <a href="http://clima1.cptec.inpe.br/estacoes/pt">mês de maio de 2021 de acordo com os dados do INPE</a>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nv2w4gnKb2cAaAMqKdXaVg.png" /></figure><p>E temos também pluviometria(GO) = 36.4 mm. Assim, construímos o par</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/952/1*1GDT6z8NH065ciHwgFVCrA.png" /></figure><p><em>Obs.:</em> Na prática, no cálculo do <em>lag</em> é feita uma ponderação pela distância entre os centroides. Não fizemos aqui para simplificar o cálculo do Moran’s I.</p><p><strong>3.</strong> <strong>Calcular o coeficiente de regressão da nuvem de pontos variável x lag(variável)</strong></p><p>Fazendo o mesmo com todos os estados brasileiros, é possível plotar o gráfico pluviometria x pluviometria_lag, ou seja, estamos verificando a relação entre a variável na região contra a variável nos vizinhos da região.</p><p>Uma vez tendo todos os pares (pluviometria, pluviometria_lag), traçamos a reta que melhor ajusta os pontos, minimizando o erro quadrático (na prática, calculamos uma Regressão Linear). A inclinação da reta mede se existe uma tendência entre pluviometria e pluviometria_lag, e a esse coeficiente damos o nome de <strong>Moran’s I</strong>. Veja a imagem a seguir:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/629/1*6173xaktwt6ha-WAllvamA.png" /><figcaption>Gráfico mostrando como é obtido o Moran’s I.</figcaption></figure><p>Foi obtido um valor de 0.453 para o Moran’s I, o que é um valor relativamente alto considerando o intervalo da métrica Moran’s I. De fato, ao observar o mapa do Brasil para maio de 2021, é possível verificar que existe uma tendência sudeste/nordeste (menos chuvas) — norte (mais chuvas) nos valores de pluviometria:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/412/1*56SIYB4w4RS6rtp1dgzDvw.png" /><figcaption>Mapa do Brasil apresentando a tendência espacial dos índices pluviométricos em maio de 2021 (Adaptado de <a href="http://clima1.cptec.inpe.br/estacoes/pt">INPE</a>).</figcaption></figure><p><strong>4.</strong> <strong>Interpretação do Moran’s I</strong></p><p>A definição do cálculo do Moran’s I traz a seguinte interpretação:</p><ul><li>Se Moran’s I ≅ 1, então os valores da variável em regiões vizinhas têm uma diferença pequena, o que indica que existe uma correlação entre a grandeza e a distribuição espacial dessa grandeza no espaço.</li><li>Se Moran’s I ≅ 0, então os valores da variável em regiões vizinhas estão distribuídos de forma praticamente aleatória, sugerindo ausência de correlação espacial.</li><li>Se Moran’s I ≅ -1, há uma dissimilaridade entre os valores da grandeza encontrados nas regiões e nos respectivos vizinhos.</li></ul><p>Abaixo está uma imagem apresentando essa interpretação. No caso de dissimilaridade completa, notar que os vizinhos adjacentes têm cores opostas à casa de referência.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J8ZyhbyIOz-uCEX2-9yA-A.png" /><figcaption>Interpretação do Moran’s I (Adaptado de <a href="https://www.statisticshowto.com/morans-i/">Statistics How To</a>).</figcaption></figure><h3><strong>Tipos de análise</strong></h3><p>O Moran’s I pode ser calculado em dois tipos diferentes de análise.</p><ol><li><strong>Análise Univariada</strong></li></ol><p>No exemplo da pluviometria, foi feita uma análise univariada, pois <strong>comparamos a variável pluviometria com o <em>lag </em>espacial dela mesma</strong> (e por isso é chamada de <em>autocorrelação</em> espacial).</p><p>Nesta análise, o objetivo é descobrir se uma variável específica tem alguma tendência espacial (se ela tem alguma correlação com sua distribuição espacial).</p><p>2. <strong>Análise Bivariada</strong></p><p>Na análise bivariada, por outro lado, é avaliado o grau de <strong>variação espacial de uma variável em relação a outra variável.</strong></p><p>Deseja-se, com esse método, identificar se duas variáveis estão correlacionadas no espaço, ou seja, se seguem a mesma tendência espacial.</p><p>Poderíamos querer analisar, por exemplo, se existe essa correlação entre <strong>chuvas </strong>e <strong>temperaturas </strong>no território brasileiro no mês de maio de 2021. Neste caso, se tomássemos como referência o estado de Goiás, obteríamos a <strong>variável pluviometria</strong> nesse estado e compararíamos com o <strong><em>lag </em>da variável temperatura</strong> nos estados em sua vizinhança.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/832/1*q8g4VVVt9U57QDT1psIhew.png" /><figcaption>Diferença entre análise univariada e bivariada. Notar que, na análise bivariada, a variável na região de referência (verde) é diferente da variável na vizinhança (laranja).</figcaption></figure><h3><strong>Local Moran’s I</strong></h3><p>Até agora, foi calculado o <strong>Moran’s I global.</strong> Pegamos todos os pontos de dados que foram calculados para obter um índice que dá uma estimativa completa em todo o Brasil.</p><p>Também é possível (e recomendado) fazer a decomposição do Moran’s I de forma a construir uma <strong>medida localizada</strong> de autocorrelação, o que é chamado de <strong>Moran’s I Local</strong>. A ideia é encontrar <em>hot spots</em> e <em>cold spots</em>, que são regiões em que se encontram respectivamente pontos com maior e menor autocorrelação espacial. Com isso, conseguimos avaliar a variabilidade dos nossos pontos no gráfico variável x lag.</p><p>No caso, são definidos como <em>hot spots</em> as regiões em que “variável” e “lag” seguem a mesma tendência, ou seja, ambos são grandes (HH — <em>High-High</em>) ou ambos são pequenos (LL — <em>Low-Low</em>); e como <em>cold spot</em> as regiões que têm uma relação inversa entre “variável” e “lag” (HL — <em>High-Low</em> ou LH <em>— Low-High</em>).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/423/1*OrM08W5w2CrTIb5RbRK2gg.png" /><figcaption>Gráfico destacando alguns estados que têm característica HH e LL (<em>hot spots</em>).</figcaption></figure><p>Esta análise, quando vista no mapa, também é chamada de LISA (<em>Local Spatial Autocorrelation</em>).</p><h3><strong>Conclusão</strong></h3><p>Vimos que o Moran’s I permite capturar correlações espaciais considerando a relação entre cada região e sua vizinhança. Também vimos como interpretá-lo, e sua relação com a distribuição das variáveis no espaço.</p><p>Espero que tenham gostado! ;)</p><p><a href="https://github.com/mpereiramoretti/pluviometria-analise-espacial">Link para o repositório no GitHub com a análise pluviométrica </a>(notebook: <strong>Pluviometria — maio de 2021.ipynb</strong>).</p><p>Qualquer opinião, resultado, conclusão ou recomendação expressa neste artigo é de responsabilidade do autor e não reflete necessariamente o ponto de vista do Itaú Unibanco S.A.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d3b0b7e33f52" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/autocorrela%C3%A7%C3%A3o-espacial-d3b0b7e33f52">Autocorrelação espacial</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cientista de Dados no Itaú e as Horas de Estudo]]></title>
            <link>https://medium.com/itau-data/cientista-de-dados-no-ita%C3%BA-e-as-horas-de-estudo-81dea9ddd5fe?source=rss----7a16e9f0ad28---4</link>
            <guid isPermaLink="false">https://medium.com/p/81dea9ddd5fe</guid>
            <category><![CDATA[technology]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[carreira]]></category>
            <dc:creator><![CDATA[Alceu Ferraz Costa]]></dc:creator>
            <pubDate>Tue, 07 Dec 2021 14:40:25 GMT</pubDate>
            <atom:updated>2021-12-07T14:40:25.340Z</atom:updated>
            <content:encoded><![CDATA[<p>No Itaú, adotamos a prática de reservar oito horas por semana para que os Cientistas de Dados se dediquem a estudos. Neste post irei contar um pouco sobre a motivação por trás das horas de estudo e como elas funcionam.</p><p>Começando pelo contexto: a Ciência de dados é uma área que evolui bastante rápido. Não é raro que ferramentas e algoritmos que em um momento são consideradas estado da arte fiquem obsoletos com o surgimento de novas técnicas.</p><p>Nesse sentido, uma experiência que me marcou bastante se deu no campo da Visão Computacional. Comecei meu mestrado no ICMC da USP de São Carlos em 2010. O meu projeto de pesquisa consistia em desenvolver algoritmos para análise de imagens médicas (acabei focando em tomografias para diagnóstico de doenças pulmonares). Boa parte do meu trabalho envolveu algoritmos para extração de features das imagens que serviriam como input para classificadores.</p><p>No entanto, em setembro de 2012, um algoritmo chamado AlexNet ganhou a competição de reconhecimento de objetos ImageNet com um erro de classificação mais de 10 pontos percentuais menor que o segundo colocado. Além da margem de erro, considerada bastante impressionante, também chamou a atenção a técnica utilizada pelos autores da AlexNet: as Redes Neurais Convolucionais (ou CNNs da sigla em inglês Convolutional Neural Networks). O sucesso da AlexNet foi altamente influente. As CNNs, que até então eram pouco difundidas, passaram a dominar o campo da Visão Computacional. Já as soluções mais “artesanais” de desenvolvimento de features, como fiz em meu mestrado, ficaram cada vez menos populares.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/1*u2OloHHUJ18talOJrs0f1g.png" /><figcaption>A Ciência de Dados evolui bastante rápido. Ferramentas e algoritmos podem ficar obsoletos com o surgimento de novas técnicas. A figura ilustra imagens do dataset da competição ImageNet e as predições realizadas pela rede AlexNet que foi extremamente influente no campo da Visão Computacional (fonte Krizhevsky et al. 2012).</figcaption></figure><p>Essa minha experiência ilustra como é importante acompanhar a evolução da Ciência de Dados para manter-se atualizado. Considero que ler blogs e artigos científicos é excelente para se ter uma visão abrangente de tudo o que está acontecendo. No entanto, muitas vezes queremos ou precisamos nos aprofundar em algum tópico. Para esse fim, existem várias abordagens:</p><ul><li>Fazer uma pós-graduação;</li><li>Colocar a mão na massa: desenvolver algum projeto utilizando a tecnologia que queremos aprender ou brincar com um determinado dataset para fixar o conhecimento de algum algoritmo;</li><li>Estudar para uma certificação;</li><li>Realizar um curso online;</li></ul><p>Ou seja, manter-se atualizado no campo da Ciência de Dados demanda tempo. <strong>Por este motivo, todo Cientista de Dados do Itaú tem direito a 8 horas de estudo por semana.</strong> Essas horas podem ser distribuídas na semana de acordo a necessidade do Cientista e do time.</p><p>O Thiago Lira, por exemplo, faz parte do time de Ciência de Dados do Itaú que trabalha com Processamento de Linguagem Natural (NLP na sigla em inglês). Ele conta que utiliza as horas de estudo para se aprofundar em tópicos de NLP e para o desenvolvimento de projetos pessoais. Um dos projetos desenvolvidos consistiu em fazer um fine-tuning da rede GPT-2 para gerar roteiros de episódios de Pokémon. Com essa rede é possível propor um tema (ex.: “o Pikachu foi preso por sonegar impostos”) e gerar roteiros de episódios automaticamente.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HzpbUcqBphZGIjFdVdfVSg.jpeg" /><figcaption>Os Cientistas de Dados do Itaú utilizam as horas de estudo de diversas maneiras como, por exemplo, cursar pós-graduação, aprofundar em tópicos de interesse ou estudar para certificações.</figcaption></figure><p>Já o Thiago Rizuti, que também é Cientista de Dados no Itaú, conta que utiliza grande parte das horas de estudo para o desenvolvimento do Mestrado na UFABC. O projeto de pesquisa consiste no desenvolvimento de técnicas para sistemas de recomendação baseadas em co-clustering e algoritmos evolutivos. No começo do mestrado o Thiago utilizou as horas de estudo sobretudo para cursar disciplinas, incluindo Metodologia de Pesquisa Científica, Mineração de Dados, Inteligência Artificial e Fundamentos de Matemática. Agora que está na reta final do mestrado, as horas estudo tem sido empregadas para realização de experimentos e escrita da dissertação.</p><p>Nem sempre existe uma ligação direta entre o que o cientista está estudando e o projeto que está desenvolvendo no momento. No entanto, as horas de estudo permitem que os cientistas do Itaú continuem se desenvolvendo tecnicamente e acompanhando as novidades do mercado e da academia. Acredito que isso faz a diferença na qualidade das soluções de Ciência de Dados desenvolvidas no Itaú.</p><p>Qualquer opinião, resultado, conclusão ou recomendação expressa neste artigo é de responsabilidade do autor e não reflete necessariamente o ponto de vista do Itaú Unibanco S.A.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=81dea9ddd5fe" width="1" height="1" alt=""><hr><p><a href="https://medium.com/itau-data/cientista-de-dados-no-ita%C3%BA-e-as-horas-de-estudo-81dea9ddd5fe">Cientista de Dados no Itaú e as Horas de Estudo</a> was originally published in <a href="https://medium.com/itau-data">itau-data</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>