0:00:00: Boa noite pessoal, tudo certo? Quem que já está por aí? Estão me ouvindo?

0:00:20: Quem está por aí?

0:00:21: Vou fazer a fotinho pro Instagram, pra dizer que a gente já tá ao vivo.

0:00:42: Alô?

0:00:43: Marco Garcia, que honra ver você aqui na live. Como é que você tá? Tudo certo? Marco tem uma

0:00:59: empresa muito boa de… pelo menos na época era bastante focada em engenharia de dados aqui em São

0:01:06: Paulo, a Setax. Muito legal ver você aqui, Marco. Muito obrigado. E aí, Renato Douglas,

0:01:15: G Wilson, boa noite. Tá com eco? Deixa eu ver porque que tá com eco.

0:01:27: Deixa eu ver aqui se eu fiz alguma configuração errada.

0:01:31: Não, parece que tá tudo normal. Boa noite Douglas Martins, boa noite Jones. Como é que vocês estão?

0:01:44: Passaram bem o ano novo, muito obrigado por virem aqui nesta primeira live de 2020.

0:01:51: José Ângelo, Pedro Gabriel, Mário de óculos, Renato. Pois é, tem dias que eu uso óculos,

0:02:08: tem dia que eu uso lente. Carine, boa noite. Boa noite Ricardo. Bom ver vocês aqui de volta.

0:02:15: Algum de vocês aí já leu alguma parte do ebook? Tem algum feedback?

0:02:28: Paulo, boa noite. Aliás, de onde vocês são? Tô vendo vários nomes aí que eu já conheço de

0:02:35: algumas épocas, mas tô vendo alguns nomes também novos. Eric, que boa noite. Então quem é novo

0:02:46: aí diga aí quem é novo e fale de onde você vem. Maringá, legal Paulo. Como vocês sabem a gente

0:02:55: faz essas 20.05 sempre. Legal, Jones. Legal, Carina. Muito obrigado aí. Já leu tudo? Que legal,

0:03:11: que legal. Rogério, João Pedro. Bem-vindo Rogério. Muito obrigado pessoal, muito obrigado aí. A

0:03:22: ideia justamente é ter um livro bem prático e que efetivamente ensine bem numa linguagem simples,

0:03:29: né? Tem gente que não gosta tanto de uma linguagem mais simples, mas a ideia é justamente colocar

0:03:36: assim, bem prático, numa linguagem bem direta mesmo, o que é essencial para se fazer um projeto.

0:03:46: E como quem me segue no Instagram sabe que eu coloquei lá uma caixinha de perguntas para live de

0:03:52: hoje, né? Para ver se alguém tinha alguma pergunta sobre o carreira ou sobre o tema mesmo,

0:03:57: que é sistema de recomendação, é um tema que há um tempo já vocês vêm me pedindo.

0:04:03: E o que acontece? Teve uma pergunta que é mais geral, né? Que é qual a importância do portfólio

0:04:10: para conseguir vaga de data scientists junior? E na verdade é muito importante, seja para juniors,

0:04:16: seja para senior. Por quê? Porque através do teu portfólio você mostra que você sabe resolver

0:04:21: algumas. Então tem gente que não vai, às vezes o teu portfólio não tá público, por exemplo,

0:04:29: você trabalhou numa empresa e você fez projetos dentro da empresa. Mas só de você saber explicar

0:04:36: o que você fez, se você souber explicar bem como é que você criou aquele projeto, aquela solução,

0:04:41: você já vai ter uma vantagem sobre vários outros candidatos, tá? E tem gente que efetivamente,

0:04:50: eu conheço algumas pessoas que quando estão recrutando, se a pessoa coloca ali um link para

0:04:55: o GitHub, a pessoa vai lá e vê o projeto realmente. Então é extremamente importante,

0:05:00: em qualquer nível, o portfólio é muito, muito importante, porque é a oportunidade que você

0:05:05: tem de mostrar que você sabe do que tá falando, que você sabe resolver problema,

0:05:09: que você vai conseguir trabalhar bem naquela empresa. Deixa eu ver, Jones, OOE e IV. Se eu não me engano,

0:05:21: OOE é Weight of Evidence e IV eu não me lembro o que é, se puder descrever, por favor. O que acontece?

0:05:32: As outras duas perguntas que foram enviadas são sobre o sistema de recombinação, então a maior

0:05:39: dificuldade nesse tipo de problema, vocês vão ver que eu tenho uma lista delas para mostrar para

0:05:43: vocês e como me dirá eficácia também a gente vai conversar sobre isso durante a live. E a outra

0:05:50: pergunta é o modelo do prêmio Netflix hoje é defasado? Na verdade não, é interessante porque

0:05:57: pesquisando para preparar essa live, eu vi que recentemente soltaram um paper comparando as

0:06:07: técnicas mais atuais, as técnicas de deep learning, várias técnicas que em tese bateriam as benchmarks

0:06:16: que a gente tem com sistemas mais simples e na verdade quando o pessoal tunou um pouquinho essas

0:06:20: técnicas, quando o pessoal ajustou os parâmetros, eles conseguiram resultado igual ou melhor. Então

0:06:26: definitivamente o modelo do prêmio do Netflix não está defasado, ele ainda é super útil,

0:06:32: principalmente quando é o primeiro segundo sistema de recomendação de um site, é um site quando eu

0:06:39: falo de uma empresa, normalmente a gente lida com empresas internet, mas definitivamente é um modelo

0:06:44: extremamente ainda importante. Então vamos começar oficialmente, deixa eu pegar a minha colinha e

0:06:53: primeiro o que eu vou falar para vocês é o seguinte, primeiro a gente vai esclarecer alguns

0:07:00: elementos, alguém aí no chat já trabalhou com sistema de recomendação, sabe o que é sistema

0:07:07: de recomendação ou então não faz ideia do que seja sistema de recomendação. Sim Bruno, um dos

0:07:15: itens eu não vou falar em detalhe, não vou entrar em código nem matemática de fatoração de matriz,

0:07:20: eu vou falar sobre eles sim. Information Value, Joanne, acredita que eu não tô lembrando exatamente,

0:07:32: talvez eu tenha visto isso com outro nome ou não tenha visto, não tô lembrando, mas Weight of

0:07:37: Evidence eu lembro que eu já vi em alguns sistemas na verdade com feature para sistema,

0:07:44: não necessariamente só de recomendação para sistema de machine learning em geral. Então o que

0:07:53: acontece é boa noite Zé Humberto, o que é um sistema de recomendação? A ideia é a gente pegar de um

0:08:01: monte de itens, um monte de produtos, a gente conseguir selecionar uma parte desses produtos

0:08:07: que sejam mais relevantes para um usuário, muito parecido com uma busca, só que em vez da gente ter

0:08:14: as palavras chave da busca, a gente vai ter o histórico do usuário normalmente, o histórico

0:08:22: do produto, então é bem parecido com uma busca. A ideia é que a gente possa apresentar algumas

0:08:30: opções para esse usuário, uma lista de opções por exemplo de produtos, quando você vai lá

0:08:35: ou numa loja online, na Amazon por exemplo, quando você está acessando um produto eles vão te

0:08:42: recomendar produtos que outras pessoas que compraram esse produto também compraram tal coisa,

0:08:49: isso é um sistema de recomendação. Outra coisa, eles mandam e-mails para você de itens que possam

0:08:56: ser relevantes baseados no que você já comprou, também é um sistema de recomendação, então a ideia

0:09:02: é pegar de um universo de opções de itens de produtos e conseguir achar quais são os mais

0:09:09: relevantes para você entregar para aquele usuário consumir ou comprar, aí vai depender do teu

0:09:15: objetivo de negócio. Vamos lá! E como vocês sabem, Oi Felipe, seja bem-vindo à sua

0:09:25: live, que legal! Como vocês sabem eu evito olhar um pouco no chat durante a apresentação aqui,

0:09:33: mas conforme a gente for andando eu vou dando uma paradinha para ver as perguntas e para perguntar

0:09:38: para vocês algumas coisinhas para a gente interagir, tá? A ideia é que a gente interagir e aprender

0:09:45: junto. Então primeiro a gente precisa esclarecer alguns termos, quais são os termos que a gente

0:09:50: precisa esclarecer quando a gente está falando de sistema de recomendação. Primeiro é a baseline,

0:09:56: quem já me acompanha um tempo sabe que eu falo e falo e falo sobre baseline em todos os modelos que

0:10:04: eu vou fazer, porque geralmente a baseline é aquela solução muito simples que a gente tem que bater

0:10:12: com machine learning e no sistema de recomendação as baselines são ainda mais importantes porque

0:10:17: elas nem sempre são tão fáceis de bater e quando a gente fala de baseline para o sistema de

0:10:23: recomendação normalmente a gente está falando de itens mais populares. Então a ideia é o seguinte,

0:10:30: se eu recomendar para esse usuário, vamos dizer que a gente esteja fazendo um email que toda semana

0:10:35: vai para os usuários de um site de e-commerce, se toda semana eu recomendar os itens mais vendidos

0:10:42: da categoria que o usuário mais comprou produto, na semana passada qual é, vamos dizer assim,

0:10:49: o valor de compra, qual é o lift que a gente fala, qual é o ganho que eu tenho de fazer essa

0:10:56: recomendação. Então vamos lá, se eu recomendar os itens mais vendidos para este usuário,

0:11:06: qual é o ganho? Então é aquele negócio, qual é o ganho com relação a não recomendar nada,

0:11:14: tá? E você já vê que o ganho é razoável, é um ganho bem interessante. Então o que acontece?

0:11:21: Como é que a gente mede? Só para a gente recapitular um pouco a gente mede com o lift em geral,

0:11:25: porque o que a gente vai pegar? O valor da nossa métrica com a solução nova, nesse caso a baseline,

0:11:36: dividido pelo valor sem a solução, tá? E esse valor tem que ser maior do que 1 para que a gente

0:11:44: esteja tendo algum ganho com a solução e os itens mais populares geralmente, os mais vendidos,

0:11:50: é por isso que, por exemplo, tanta gente briga para entrar na lista dos livros mais vendidos,

0:11:55: de alguma realidade, de algum jornal, de alguma revista, porque realmente faz diferença na hora

0:12:00: de você vender, tá? Agora, passando da baseline, se a gente quiser uma coisa mais complexa,

0:12:07: quais são os termos que a gente tem que conhecer dessa área de recomendação? O primeiro termo,

0:12:13: provavelmente mais popular, que você vai ouvir falar, é filtragem colaborativa. Filtragem

0:12:19: colaborativa é, assim, um dos sistemas mais interessantes, talvez em termos de recomendação,

0:12:29: seja a forma mais popular que a gente tem de recomendar. Basicamente, a gente vai usar

0:12:34: interações de usuários com produtos para fazer recomendação. Amário, o que significa isso? Então,

0:12:41: o que acontece? Você vai ter, em geral, você vai pegar lá os teus usuários, compraram lá itens,

0:12:51: então vamos lá. Usuário 1 tem lá, comprou item 3, 4, 5. Usuário 2, comprou item 3, comprou item 4.

0:13:03: Usuário 3, comprou item 6 e o item 5. O que você vai fazer? Você vai fazer a tal da matriz

0:13:14: usuário item. Então, cada usuário seu vai ser uma linha e cada item vai ser uma coluna. Nesse caso,

0:13:25: iria ficar alguma coisa mais ou menos assim. A primeira linha seria usuário 1 e aí a gente teria

0:13:31: cada coluna seria um item. Então, ele não comprou item 1, ele não comprou item 2, ele não comprou,

0:13:38: ele comprou item 3, ele não comprou, ele comprou item 4, comprou item 5, tá? E não comprou item 6.

0:13:45: Usuário 2 seria não comprou 1, não comprou 2, comprou 3, comprou 4, não comprou 5 e 6, tá? E aqui

0:13:55: está muito alinhadinho, mas dá para ver mais ou menos a ideia. Usuário 3, 0, 0, 0, 0, 1 e 1. Então,

0:14:08: vocês veem que a gente teria algumas linhas, alguns vetores com o histórico de compras desse

0:14:15: usuário. E nesse caso, eu estou usando a forma mais simples, que é o seguinte, se o usuário comprou,

0:14:21: vai o número 1. Se o usuário não comprou, vai o número 0. E aqui já tem um problema que a gente

0:14:27: vai ver que é o seguinte, quando a gente coloca um 0, a gente sabe que o usuário, a gente está dizendo

0:14:33: que o usuário não sabe que esse item existe ou que ele sabe e mesmo assim ele não quis comprar.

0:14:40: Então, aí já começa. Você vai ver que em alguns casos a gente tem que diferenciar entre itens que o

0:14:46: usuário, itens que o usuário conhece mas não comprou e itens que o usuário nem conhece, tá?

0:14:58: Então, é uma coisa já para você ficar atento. O que acontece? Como é que isso aqui existe na

0:15:06: realidade? Por exemplo, quando você está aqui no YouTube, logicamente hoje é um sistema mais complexo

0:15:12: do que isso, mas se você assistir um vídeo, por exemplo, no canal do PiData, a conferência sobre

0:15:20: Python, o que acontece? Se outras pessoas que assistiram vídeos no PiData também assistiram

0:15:26: vídeos no meu canal e o YouTube quiser te recomendar novos canais usando a filtragem colaborativa,

0:15:33: o que ele vai fazer é justamente pegar e falar, peraí, dos usuários que assistiram o PiData e

0:15:40: que assistiram outros canais, quais são os usuários mais similares a esse que a gente quer fazer a

0:15:48: recomendação e quais outros canais essas pessoas assistem. Então, aqui no nosso exemplo do U1, U2,

0:15:55: U3, vamos dizer que a gente esteja tentando recomendar para o usuário 2, eu quero recomendar um item.

0:16:04: Qual item que eu devo recomendar? Aqui a gente tem item 1, item 2, item 3, item 4, item 5, item 6.

0:16:14: Se vocês fossem escolher um desses itens para recomendar para esse usuário 2, tem que ser

0:16:24: 1 ou 2, 5 ou 6. Qual vocês recomendariam? 1, 2, 5 ou 6? Responde aí no chat. Fala aí no chat,

0:16:44: qual vocês, qual produto que a gente deve recomendar para o usuário 2? Produto 1,

0:16:53: produto 2, produto 6 ou produto 5? Vamos ver, João Pedro, item 5, Edmilson, item 5. Oi, João,

0:17:04: eu não acho que vai dar tempo de eu entrar em código aqui, tá? Então, eu não vou utilizar nem R nem

0:17:09: Pi, então eu quero realmente dar uma ideia de sistema de recomendação da parte que não entra

0:17:14: no código que é o que vamos dizer assim, o que o AutoML não consegue fazer, tá? 5, 5, 5, 5, porque

0:17:24: 1 e o 2 compraram, 5, usuários 1 e 3, tá ótimo, vocês pegaram a ideia legal, parabéns, é exatamente

0:17:35: isso. Item 5, por quê? Porque se a gente for olhar, o usuário mais similar ao usuário 2, é o usuário 1,

0:17:42: que comprou produto 3 também, que comprou produto 4. E aí a gente fala, tá, qual outro produto o usuário 1

0:17:50: gostou para eu recomendar para o usuário 2 que é parecido? Ah, ele gostou do produto 5, então vamos

0:17:57: recomendar o produto 5, exatamente isso, tá? A gente começa a entrar em problemas se a gente tivesse,

0:18:05: por exemplo, só o usuário 2 e o usuário 3, porque vocês veem que eles fizeram, eles compraram

0:18:15: produtos diferentes, tá? Então o que acontece? Se a gente for pegar a similaridade simples, a gente

0:18:24: simplesmente vai olhar e vai falar, bom, não tem nenhum usuário similar, esquece o 1 por enquanto, se a gente só

0:18:30: pegar esses dois, a gente vai falar, pô, não tem nenhum usuário similar, não tem como a gente fazer

0:18:35: essa recomendação, tá? Então esse é um outro problema que a gente tem, mas que eu vou falar mais

0:18:41: em detalhe para vocês também. Deixa eu pegar aqui minha colinha de novo, então é isso, essa é a

0:18:49: recomendação, usuário, usuário, tá? É uma das mais populares, mas também tem uma outro tipo de

0:19:00: recomendação que a gente pode fazer, que é a recomendação item, item, que é o quê? A gente, em vez de

0:19:08: pegar as linhas da nossa matriz, a gente vai pegar as colunas dela para comparar, então é aquele famoso

0:19:14: quais são os itens mais similares, não chega a ser aquele que comprou, esse também comprou aquele,

0:19:21: mas é aquele, itens que você também pode gostar, vamos dizer, tá? E aí, o que a gente vai fazer?

0:19:29: A gente vai pegar a linha, a gente vai falar, ok, para quem comprou o item 4, qual item que a gente vai

0:19:39: recomendar? Então a gente tem aqui o item 4, tá? Então vamos lá, para quem comprou o item 4,

0:19:50: qual devemos recomendar? Responde aí no chat. Para quem comprou o item 4,

0:20:06: para quem comprou o item 4, peraí, deixa eu ver se eu fiz essa pergunta certa. 3 e 5, vamos ver.

0:20:45: 3, 3 e 5, exatamente, essa já fica uma questão mais complicadinha, por quê? Porque se a gente

0:20:53: olhar aqui, o item mais similar ao item 4 é o item 3, então em tese, o item 3 aqui seria o mais

0:21:03: recomendado, por quê? Porque todo mundo que comprou o item 3 também comprou item 4, mas aí eu até acho

0:21:11: que a ideia de quem está querendo recomendar o 5 é o seguinte, tá? Mas se todo mundo que tem o 4 já

0:21:16: tem o 3, por que a gente vai recomendar o 3 de novo? É aquele famoso caso, você compra um fogão, a loja

0:21:24: vai e pergunta se não quer comprar mais 50 fogões, que não é o que a gente quer no sistema de

0:21:28: informação. Então nesse caso a gente também poderia recomendar o item 5, por quê? Porque é um

0:21:37: item que quem comprou o item 4 ainda não comprou, tá? Mas aí já é um caso um pouco mais, mais,

0:21:47: vamos dizer assim, sutil eu diria. O que acontece? Na prática, na prática, como é que funciona?

0:21:52: Eu achei algumas, algumas, na pesquisa que eu fiz, eu encontrei aqui, diz que o item, item tende a

0:22:00: funcionar melhor, tá? Em aplicações industriais, claro, como tudo é importante que você teste na

0:22:07: aplicação que você está tentando, naquilo que você está tentando resolver, mas lembre-se que pelo

0:22:13: menos no geral aí, nas comparações que o pessoal faz, geralmente o item, item tem funcionado melhor,

0:22:21: tá? E a pessoa, o pessoal que fez essa comparação, que tem o paper mais famoso que tem essa

0:22:29: comparação, é do pessoal de um dos times que ganhou o prêmio da Netflix, então provavelmente

0:22:33: eles sabem do que eles estão falando, né? O que acontece? Passando dessa filtragem colaborativa,

0:22:40: é a mais tradicional de todas e é nela que nós temos o que foi falado aí no chat da fatoração de

0:22:48: matrizes, então é aqui que entra a fatoração de matrizes. Como é que funciona a fatoração de

0:22:56: matrizes? Basicamente você vai pegar aquela matriz, usuário, item e você vai tentar fazer um processo

0:23:05: de álgebra linear que vai tentar decompor essa matriz em dois, em duas outras matrizes, o que

0:23:15: acontece? Vamos pegar aqui e eu vou chamar a matriz, vamos colocar aqui matriz U, matriz de usuário,

0:23:26: item e aqui a gente vai ter o seguinte, considerem que o que está dentro de parênteses é uma matriz,

0:23:32: tá? A gente vai ter a matriz usuário e agora eu não tô lembrando exatamente se é nessa ordem,

0:23:39: mas é mais ou menos essa ideia aqui, usuário, fatores e fatores, itens. O que acontece? Claro

0:23:52: que a hora que você olhar matemática disso, ela é mais complicada do que exatamente que eu escrevi

0:23:58: aqui, mas o que você precisa entender sobre isso é o seguinte, você vai ter um processo que vai

0:24:02: tentar falar o seguinte, como é que eu aproximo e aqui eu tenho que colocar esse tio para dizer que

0:24:09: eu tenho uma aproximação, como é que eu aproximo esta matriz aqui criando duas matrizes? Aí você fala

0:24:16: se a gente já tem a outra matriz, a matriz de usuários e itens, para que que eu quero

0:24:21: decompor em duas matrizes? Porque o que acontece? Porque que eu coloquei F aqui que são fatores,

0:24:30: fatores latentes que a gente pode chamar, o que que é essa palavra latente? São fatores escondidos,

0:24:38: e se a gente está tentando capturar com esses fatores é o seguinte, conceitos, grandes assim,

0:24:45: categorias desses itens. Se eu der um exemplo de filme eu acho que fica mais claro, pelo menos

0:24:52: foi como eu entendi. Então imagine que a gente tem lá filmes, tá? Então a gente tem usuários

0:24:59: e a gente tem filmes na nossa matriz. O que esse procedimento vai tentar encontrar é uma matriz

0:25:07: de usuários contra, e aqui logicamente na matemática acaba sendo um pouco diferente,

0:25:15: mas vamos dizer que ele encontre uma matriz de usuário e temas de filmes,

0:25:22: que ele vai que multiplicada por uma matriz de temas de filmes vezes filmes, ou seja,

0:25:33: uma matriz de temas de filmes por filmes que tem essas dimensões, ela vai retornar aproximadamente

0:25:40: essa matriz original. Então recapitulando, porque até eu fiquei confuso com essa explicação.

0:25:45: O que acontece? Aqui vai ser uma matriz menor, então se a gente tiver por exemplo uma matriz

0:25:52: de mil usuários por 500 filmes, essa matriz aqui normalmente vai ser 1000 por sei lá 10, tá?

0:26:01: E vai ser multiplicado por uma matriz 10 por 500, que são os filmes. Então cada um desses

0:26:09: componentes aqui vai ser um tema que está no meio ali dos filmes. Então olhando a similaridade

0:26:15: entre usuários, entre itens, quando você faz essa decomposição o algoritmo ele vai, por exemplo,

0:26:23: encontrar alguns fatores que se você for navegando naquela dimensão, pensando num vetor, pensando aí

0:26:30: na matemática da coisa, você vai encontrar vários filmes similares, por exemplo, pode ter uma

0:26:35: categoria de filmes infantis. Então você vai encontrar lá o Rei Leão, você vai encontrar o

0:26:42: Shrek, A Era do Gelo, vai ter uma outra matriz onde você vai encontrar um outro vetor, um outro desses

0:26:48: 10 componentes que vão ser os filmes de ação. E aí você vai encontrar lá filme do Stallone, filme

0:26:55: do Snagger, todos esses aí. Essa é uma das maneiras de você interpretar o que está acontecendo.

0:27:01: Então você está tentando achar quais são esses conceitos que existem por trás desses dados,

0:27:08: dessas interações de usuários com itens, tá? E antes que eu me esqueça, essa matriz não precisa

0:27:15: ser necessariamente binária, ou seja, não precisa ser 0 e 1, ela pode ser uma matriz e ela ficou

0:27:20: particular quando usaram isso no prêmio do Netflix, que é uma matriz de avaliações. Então na época do

0:27:27: prêmio do Netflix, você tinha lá as avaliações de 1 a 5 de cada filme e essa era uma matriz que

0:27:33: tinha lá. As linhas eram os usuários e as colunas eram os filmes e quando você ia no cruzamento lá

0:27:41: de um usuário que assistia um filme, você tinha quantas estrelas ele deu para aquele filme, se ele

0:27:46: estava legal ou não daquele filme. Você fala, tá bom, eu tenho essa matriz, como é que eu faço

0:27:52: então para recomendar um filme para o usuário? E uma das maneiras de fazer isso é o seguinte,

0:27:59: você pega o vetor do usuário e aí você pode fazer vezes o vetor do filme. Existe gente que

0:28:11: faz aqui e faz também a filtragem colaborativa no modo ronzer tradicional, calcula a similaridade

0:28:18: e faz vezes a avaliação que foi dada para o filme. Mas você pega o vetor do usuário, por exemplo,

0:28:25: o usuário 1 não viu, ele viu, sei lá, Era do Gelo e viu Rei Leão. E aí você pega e você faz o

0:28:35: vetor dele, você tira lá o produto escalar, agora aprendi o nome do dot product, é produto escalar,

0:28:41: você faz o produto escalar dele com o vetor do do Shrek. Provavelmente vai ter um número,

0:28:51: uma similaridade maior do que o vetor do usuário com sei lá, um filme europeu cult ou qualquer

0:29:00: outro desse tipo. Deixa eu ver aqui como é que está o chat. Igor Pereira, não sei se entendi bem,

0:29:10: se fosse sistema de recomendação usando as estrelas para recomendar produtos 1 a 5, o fator

0:29:14: seria o número de estrelas? Na verdade o fator a gente não sabe exatamente o que que ele é,

0:29:20: ele é um conceito dentro, assim, aprendido através das relações que tem entre usuário e item.

0:29:29: Esse é o fator, então eu tô aqui dando exemplo de tema de filme para ele ficar um pouco mais

0:29:35: claro, mas a gente tem alguns casos que a gente até consegue interpretar o que que é o fator,

0:29:41: quando a gente olha mais ou menos quais filmes estão mais, estão com esse fator mais alto e

0:29:46: outro mais baixo, mas quando você está fazendo por exemplo matrizes com 100, 300 fatores, fica

0:29:51: muito difícil você conseguir interpretar o que se trata cada um desses fatores. E aqui,

0:29:59: se vocês forem olhar a literatura, tem várias maneiras super criativas como o pessoal acha de

0:30:06: usar esse material. Então você fazendo essa multiplicação aqui, a matriz original ela

0:30:17: é realmente esparça, mas a matriz nova aproximada você consegue ter notas para filmes que você não

0:30:23: tinha antes através desse processo de fatoração. Realmente não é uma coisa muito simples,

0:30:28: mas é uma coisa que vale a pena você ver mais, você tentar entender mais, principalmente a parte

0:30:36: do código e da equação para que você realmente consoli esse conhecimento. Essa é a forma mais

0:30:50: popular, de longe de você fazer um sistema de recomendação. Agora, existe um outro método que

0:31:00: é usado, que é a filtragem de conteúdo. Deixa eu ver se é esse o nome que eu coloquei, filtragem

0:31:07: baseada em conteúdo. O que é filtragem baseada em conteúdo? A gente vai usar as características

0:31:14: do produto para encontrar as recomendações. Então imagine que em vez de fazer essa recomendação

0:31:20: aqui com essa matriz usuário item, eu tenho uma matriz em que eu tenho os produtos, então eu tenho

0:31:28: os filmes e as minhas colunas são as palavras da sinopse, da descrição do filme. Ou então quais

0:31:38: são os atores principais, quais são quem é a diretora do filme, quem é o estúdio que produziu.

0:31:47: E aí o que você vai fazer? Você vai tentar encontrar outros filmes que sejam similares

0:31:55: a ele nesses aspectos. Então você vai tentar encontrar outros filmes que tenham a descrição

0:32:02: parecida com aquele filme original, vamos dizer assim, o filme que a pessoa assistiu. Isso aqui

0:32:08: fica bem claro se a gente pensar em artigos de sites de notícias. Você pega um artigo, você pega

0:32:15: todas as palavras dele, transforma numa matriz e aí você compara com outros artigos, com todos,

0:32:21: mais ou menos, os seus outros artigos e aí você vai determinar quais são os artigos mais similares

0:32:26: para poder fazer a recomendação para o usuário. Não é assim, diz que funcionou muito bem para o

0:32:37: New York Times na época, eles lançaram o sistema de recomendação. É bom porque a gente acaba não

0:32:42: tendo muito aquele problema, ainda tem o problema de você não conseguir recomendar para quem nunca

0:32:48: está no seu site, mas você consegue calcular a similaridade entre artigos, por exemplo,

0:32:53: entre características de produtos e você consegue recomendar para mais usuários,

0:32:59: você consegue fazer meio que um item contra item também. E logicamente, depois desse tem a forma

0:33:09: híbrida de você fazer um sistema de recomendação que é uma mistura entre esses dois tipos. Esses

0:33:17: são os dois tipos mais populares, então o que acontece? Às vezes você vai ter um caso que você

0:33:22: quer usar a filtragem colaborativa, mas você não tem lá, a maioria dos seus usuários não tem dados,

0:33:30: são usuários novos, você quer recomendar para usuários novos, então o pessoal chama de switching,

0:33:34: que é simplesmente trocar, vai. Então o que acontece? Para usuários novos, você usa item,

0:33:47: para usuários com histórico, você usa, você usa, usuário, usuário. Basicamente, você vai usar

0:34:05: sistemas diferentes, switching significa que você vai usar sistemas diferentes para partes

0:34:11: do seu usuário, do seu sistema de recomendação. Tem o blending, que é a mistura, então em vez de

0:34:20: você usar uma, um de cada vez, você vai fazer uma média, por exemplo, então você pode ter lá um

0:34:28: sistema que é um coeficiente vezes o seu sistema usuário contra o usuário e somado a um outro

0:34:38: coeficiente, que é usuário item. E a gente vai ver que na Netflix, um exemplo que eles dão de como

0:34:46: mais ou menos funciona a fórmula deles, eles fazem o seguinte, eles têm um bias, um coeficiente fixo,

0:34:53: e aí eles fazem um coeficiente vezes a popularidade do filme, mais um coeficiente vezes a nota,

0:35:04: a nota de recomendação que o sistema dá. Eles não fazem exatamente isso na Netflix, mas é um exemplo

0:35:11: que eles dão de uma possível fórmula para pontuação final, vamos dizer, de um item. O que acontece?

0:35:21: Existe esses sistemas, eles já vão resolver boa parte do que você precisa, mas existe um tipo que

0:35:31: é muito mais do que esses, que é o learning to rank. O que é o learning to rank? Basicamente,

0:35:37: você vai usar os modelos tradicionais de machine learning e você vai ter lá, muito parecido com o

0:35:43: que a gente falou na última live do ano passado, que foi a prever a probabilidade de compra de um

0:35:49: usuário, você vai ter lá exemplos que, por exemplo, vão ter características do usuário,

0:35:56: características do produto e o teu Y não vai ser a nota ou simplesmente o indicador se o usuário

0:36:08: comprou ou não aquele item. É basicamente a mesma ideia do que a gente falou na última live,

0:36:14: esse aqui é o que eu vejo funcionar melhor na prática e é o que normalmente ganha competição.

0:36:19: Apesar dos outros bem tunados resolverem bastante coisa, entramos nesses métricas puramente

0:36:26: práticas de machine learning, esses aqui, os sistemas de learning to rank são os que costumam

0:36:33: funcionar melhor, costumam conseguir o resultado melhor, eles são escaláveis, o que é muito bom

0:36:39: também. Vamos lá, deixa eu tentar acelerar aqui, que eu estou vendo que a gente já está com 36

0:36:46: minutos. Então, outros dois termos que você precisa saber quando você está lidando com sistemas de

0:36:52: recomendação é o sistema implícito ou explícito. Basicamente, um sistema implícito de recomendação

0:37:00: vai usar dados que o usuário não diretamente te falou, eu gosto ou não gosto desse item,

0:37:07: então você vai usar, por exemplo, o comportamento do usuário no site para poder tentar prever qual

0:37:17: tipo de produto ele vai dar. Já o sistema explícito é igual a isso que a gente está falando,

0:37:25: é o que o usuário te deu um sinal claro se ele gostou ou não daquele item, então se você tiver,

0:37:31: por exemplo, as avaliações de produto ou se você tiver o histórico de compras, você vai estar

0:37:39: usando um sistema explícito, quer dizer, o usuário falou exatamente ali com a avaliação que ele deu,

0:37:44: gostou ou não daquele produto que você ofereceu, que ele acabou comprando ou não. Agora,

0:37:53: tem um problema nisso que é o seguinte, se o usuário não avaliou o produto, entra naquele

0:37:58: caso que eu falei no começo, a gente não sabe se ele viu e não quis comprar ou se ele nem

0:38:08: conhece o produto, então a gente tem esse outro problema quando a gente usa um sistema explícito.

0:38:15: Logicamente, a melhor abordagem que você pode ter é combinando os dois sistemas, combinando o

0:38:20: implícito, combinando dados implícitos, ou seja, dados de comportamento do usuário no site e a gente

0:38:27: vai ver vários dados que a Netflix usa no sistema deles e também usando os dados explícitos que

0:38:33: são os mikes, que são estrelas, que são qualquer tipo de avaliação. Agora, uma das partes mais

0:38:42: importantes, aqui são termos para você saber na hora que você for ler paper, na hora que você for ler

0:38:47: blog, agora a parte importante mesmo vem agora, que é o seguinte, quais são os desafios, quais são as

0:38:52: dificuldades que a gente tem quando a gente está lidando com sistemas de recomendação. O maior

0:39:00: problema de todos da recomendação é o code start, que é basicamente aquilo que chega a ser

0:39:09: bem intuitivo. Como é que a gente prevê para usuários que a gente não tem histórico? E a

0:39:15: filtragem colaborativa, como a gente já viu, falha nisso. A ideia é justamente a gente combinar

0:39:23: abordagens ou usar um learning to rank, porque aí se a gente usar, em vez de usar ou de usar o

0:39:29: usuário mesmo, se a gente começar a usar as características do usuário, as características

0:39:37: do produto, a gente vai ter algum histórico para ele. Então a gente vai ter, vamos dizer, o histórico

0:39:47: de acessos. Se o usuário nunca comprou nada, a gente pode ter esse histórico de acessos para ele e a

0:39:52: gente saber como outros usuários que agiram iguais a esse acabaram interagindo com esse produto,

0:39:59: principalmente para produtos novos. Existem sites, por exemplo, se você entrar lá no eBay, se você

0:40:05: entrar nesses sites OLX, você vai ter produtos novos entrando todo dia que você não tem histórico.

0:40:12: Então se você tiver um sistema que efetivamente consiga lidar com características em vez dos

0:40:24: produtos especificamente, você vai conseguir lidar melhor com esse problema do Cold Start. Outro

0:40:31: problema que a gente vê, escalabilidade. Se você treina um sistema que tem uma matriz enorme de

0:40:37: usuários e itens, como é que você vai escalar isso? Você vai ter que retreinar todo dia? Você

0:40:42: vai ter que ter uma matriz de 2 de usuários. Toda hora que entrar um usuário novo, você vai

0:40:46: retreinar o seu modelo, você vai recomputar toda a tua matriz de similaridades? Não dá muito certo.

0:40:52: É um outro problema que a gente tem que lidar quando a gente tem um sistema de recomendação.

0:40:56: O problema que eu já vi que alguém citou aí no chat, que é o seguinte, matriz esparça. O que

0:41:06: acontece quando a gente tem uma matriz esparça? Ela tem muito mais zeros do que uns. Então o que

0:41:13: acontece? A maioria dos usuários vai ter dado a nota para uma quantidade muito pequena de itens.

0:41:19: Isso aí pode prejudicar muito a gente, pode até criar um viés, vamos dizer, para itens populares,

0:41:30: só para itens que de recomendar itens que já sejam populares, que não são tão interessantes de

0:41:35: recomendar. Outro problema, eu tô indo meio rápido aqui justamente para citar tudo isso aqui para vocês

0:41:45: tomarem cuidado. Frequência. De quanto em quanto tempo você deve fazer novas recomendações e você

0:41:52: deve mostrar a recomendação só uma vez? Então às vezes você pode, se você mostrar só uma vez a

0:41:58: recomendação para o usuário, ele pode estar distraído, não vai ver a recomendação, vai passar e vai acabar

0:42:06: não, você não vai acabar tendo o benefício de ter feito aquela recomendação. Você vai achar que ele

0:42:11: não gostou quando na verdade foi um caso de distração, um caso da pessoa não ter sido exposto

0:42:19: por exigir aquela recomendação. Outro item, diversidade. Não adianta você recomendar,

0:42:29: igual a gente falou, 50 fogões para quem já comprou um fogão. A gente precisa recomendar idealmente,

0:42:36: os usuários gostam mais quando a gente recomenda vários itens que são diferentes, que sejam

0:42:41: relevantes para ele, mas que sejam diferentes entre si. Então em vez de você recomendar para

0:42:48: uma pessoa que comprou um iPhone, em vez de você recomendar 500 tipos de capa de iPhone, você pode

0:42:53: recomendar uma capa, um tripé, aquele negocinho de pôr na tela para não riscar, você pode recomendar

0:43:01: vários outros produtos que sejam relevantes, mas que sejam diferentes entre si. Isso é muito,

0:43:09: muito importante, a gente é diversidade. Uma coisa que está começando a ser mais popular agora são

0:43:16: ataques adversários. Então o que acontece? Você já deve ter visto quando pegam uma rede neural e

0:43:23: mudam lá alguns pixels da imagem, em vez de prever que é um carro que está na foto, que para a gente,

0:43:30: a gente conseguiria identificar uma foto de um carro, mesmo com alguns pixels modificados,

0:43:35: conseguiria identificar que é um carro, a rede neural vai e acha que é uma girafa. Então o que

0:43:42: vai começar também é o seguinte, quão suscetível ataques, quão passível de ataque é esse teu sistema

0:43:48: de recomendação. Imagina um sistema de recomendação que use, por exemplo, o número de acessos que um

0:43:53: produto teve nos últimos três dias como um dos sinais se ele deve recomendar ou não esse produto.

0:44:00: É extremamente fácil de algum usuário ir lá, maliciosamente aumentar o número de acessos do site

0:44:07: e colocar esse produto para ser recomendado. Então é uma coisa que a gente tem cada vez mais que se

0:44:13: preocupar com quais são os ataques que podem ser feitos ao sistema que a gente está criando. E

0:44:20: enquanto eu estou falando desses itens aqui, pensem em situações que vocês já tiveram de

0:44:27: sistemas que recomendaram produtos ou itens, artigos, amigos no Facebook que foram recomendados e que

0:44:34: você viu um desses problemas ou de diversidade ou de frequência, só fica sempre recomendando a

0:44:40: mesma coisa ou então é que ele recomendava tudo o mesmo produto de cores diferentes, coloca aí no

0:44:49: chat quais foram as suas experiências que foram problemas que você viu em sistemas de recomendação

0:44:56: que tem por aí. Uma outra coisa que tem se tornado muito importante é o grau de surpresa que a gente

0:45:03: tem de recomendações. O usuário vai gostar muito mais de um item que é uma surpresa boa. Então em

0:45:11: vez de você recomendar o exemplo inclusive numa das fontes que eu busquei, um usuário que faz

0:45:17: compras geralmente vai comprar leite, então se ele não comprou leite você vai recomendar leite,

0:45:23: é uma recomendação esperada. Mas se você conseguir recomendar alguma coisa que esse usuário queira

0:45:29: que você esteja esperando, você consegue satisfazer muito mais o usuário. Ah, isso é fácil? Não é

0:45:37: fácil, mas é uma coisa que você vai encontrar por aí escrita como serendipidade, que é uma

0:45:44: coisa que está se tornando mais importante agora que a gente já tem sistemas de recomendação mais

0:45:49: desenvolvidos, a gente conseguir fazer direitinho, fazer essas recomendações não serem só

0:45:54: importantes, mas serem surpresas boas para esse usuário. E uma coisa interessante e muito prática

0:46:02: é a seguinte, a apresentação dos itens. O que acontece? Tem numa fonte que eu pesquisei, eles

0:46:12: disseram que eles fizeram as recomendações e colocaram três variações. Numa das variações,

0:46:18: em cima das recomendações estava escrito patrocinado, na outra variação estava escrito orgânico e na

0:46:26: outra variação não estava escrito nada. Então imagine lá, você tem lá dez itens sendo recomendados

0:46:32: para você e em cima desses itens lá da tua lista de itens, no site está escrito patrocinado ou está

0:46:40: escrito orgânico ou não está escrito nada. E as mesmas recomendações tiveram muito menos pessoas

0:46:48: que clicaram, que foram atrás das recomendações quando elas foram dadas com patrocinado. É incrível

0:46:56: e na verdade quem ganhou, quem teve mais recomendação, teve lá nove por cento de pessoas

0:47:00: que clicaram, foi quando não tinha escrito nada. Então como você vai mostrar esses itens para o

0:47:08: seu sistema de recomendação, vai influenciar bastante no teu sistema de recomendação. Então

0:47:12: não é só criar um baita sistema super preciso, não, como você vai apresentar esses resultados

0:47:19: também está contando. Ah Mário, mas isso entra em data science, você precisa lembrar disso,

0:47:26: porque o teu sistema vai ter que ter uma apresentação em algum momento. E a última dificuldade,

0:47:31: você já deve estar cansado de ouvir eu falando aqui listando dificuldade que a gente tem com

0:47:37: esse sistema de recomendação, é a cobertura. Existem sistemas de recomendação que quando você

0:47:42: vai ver eles só recomendam 5% dos itens disponíveis, porque são itens mais populares,

0:47:48: porque são itens que já foram bastante ter um histórico longo. Então é importante a gente ver

0:47:54: o seguinte, de todos os itens do catálogo de produtos que a gente tem, quantos estão sendo

0:48:00: recomendados pelo menos uma vez. É importante ter essa cobertura do catálogo, senão acaba

0:48:07: sendo só acabam sendo vendidos só mesmo os produtos mais populares. Realmente, Abraão,

0:48:15: eu também tenho raiva dessas fotos barulhentas. Deixa eu ver aqui o chat. Joanne, eu respondo

0:48:23: essa pergunta logo logo, hora que a gente terminar aqui a parte de recomendação, das features mais

0:48:28: relevantes. Mário, você já viu recomendação usando os features obtidos de network analysis?

0:48:33: Já vi sim. Eu não vou lembrar agora para te falar, mas inclusive a forma mais clara que eu

0:48:42: vi isso foi na verdade num problema de reconhecimento de duplicados que chega a ser similar a um problema

0:48:49: de recomendação. Então você tem, por exemplo, quando você está usando features, quando você

0:48:56: está usando os produtos de círculo social da pessoa, então vamos dizer lá que no caso do Netflix,

0:49:04: uma das informações que eles usam são as informações dos amigos da pessoa. Então eles

0:49:13: vão pegar, eu não sei exatamente as features que eles usam, mas você pode pegar as medidas clássicas

0:49:18: de network analysis e medir centralidade, qual é, por exemplo, qual é a nota que a pessoa mais

0:49:29: central de um determinado grupo ali da tua da tua rede deu para um determinado filme. E pode ser que

0:49:36: o teu modelo considere essa nota mais importante quando você usa com o feature. Então efetivamente

0:49:42: se você tiver esses dados sociais, vamos dizer, da pessoa, se tiver uma relação social da pessoa

0:49:49: ou mesmo relações entre os próprios itens, você pode computar essas métricas mais tradicionais

0:49:55: que elas acabam ajudando sim. Só toma cuidado para não deixar vazar dados, que uma vez numa

0:50:01: competição o pessoal justamente usou esse tipo de feature porque era um problema que os dados tinham,

0:50:08: uma cultura que não existiria na realidade, mas efetivamente é uma boa ideia usar esse tipo de

0:50:13: feature. Brasília, Macapá, Luiz, os modelos de recomendação falando exploration e exploitation

0:50:23: estão nas abordagens híbridas? Na verdade, Luiz, essa é uma boa pergunta, esses modelos de

0:50:30: exploration e exploitation, eles entram mais na hora que você está colocando isso em produção,

0:50:36: eles seriam mais parecidos com a área de reinforcement learning, tá? O que a gente está falando aqui

0:50:42: seria esses casos que eu mostrei acima, seria uma parte supervisionada. A parte do exploration

0:50:50: exploitation seria na hora de você efetivamente colocar essas recomendações, por exemplo,

0:50:57: você ajustar entre o quanto você deve recomendar de itens que são populares e o quanto você deve

0:51:02: recomendar de itens que não são populares, mas que o usuário pode gostar, tá? E aí, para quem não

0:51:09: sabe, exploration exploitation é o que a gente fala quando a gente quer, precisa ajustar algum

0:51:16: parâmetro, a gente precisa criar um modelo, só que a gente não pode simplesmente ir lá e maximizar,

0:51:24: não pode usar um modelo ganancioso, que por exemplo, vamos dizer que a gente queira achar uma rota

0:51:29: de cidades, a gente não pode simplesmente, a gente até pode simplesmente ir, por exemplo, qual é a

0:51:36: cidade mais próxima? Então essa é a próxima, a outra outra, e sempre de cidade em cidade mais próxima,

0:51:40: isso seria um algoritmo greedy, que a gente fala, algoritmo ganancioso, só que você consegue resultados

0:51:48: melhores se você não só explorar, ou seja, se você não for só ir traduzindo isso de explorar,

0:51:55: de aproveitar, é meio complicado, mas se você der lado, vamos dizer assim, para o teu algoritmo,

0:52:01: explorar um pouco, umas soluções que não parecem tão boas, ele pode acabar encontrando uma solução

0:52:08: melhor no geral, tá? Nem sempre a solução local, nem sempre a melhor solução local é a melhor global,

0:52:20: tá? Então é basicamente isso, a solução que se eu tirar o óculos, eu sou mup, então eu enxergo só

0:52:26: de perto, então se eu pegar, se eu achar que tudo que eu tô enxergando aqui é exatamente a forma que

0:52:32: eu tô enxergando de perto, eu não vou ter uma ideia real de como são as coisas na realidade,

0:52:37: então é importante a gente ter uma visão que não é só a melhor agora, a gente pode explorar um

0:52:47: pouco, e aí entra em vários casos, mas é mais na parte realmente do teste em produção do teu

0:52:54: modelo, tá? Mario, em termos gerais, quando você tem uma matriz de partes, pode utilizar redução

0:53:00: de dimensionalidade para eliminá-la? Pode, pode sim, qualquer uma, na verdade o matrix factorization

0:53:05: é uma forma de redução de dimensionalidade, tá? Essa forma aqui de completar a matriz, vamos dizer,

0:53:14: de duas matrizes menores, só que é redução de dimensionalidade, pode usar sim, tem casos que

0:53:20: funciona bem, outros que não funcionam tão bem, aí vai de você testar no teu caso específico.

0:53:25: Gerson, vai rolar um live code? Gerson, hoje não vai rolar um live code, porque é um monte de

0:53:36: conteúdo, eu não achei também um dataset decente para mostrar isso aqui para vocês, eu não quis

0:53:41: explorar alguns datasets que são benchmark normal, mas também eu queria pegar um dataset mais real,

0:53:46: até cheguei a explorar alguns, mas não encontrei um legal mesmo, tá? Esse eu vou ficar devendo.

0:53:53: Abrão, Mario, estou aqui pela primeira vez para dar uma olhada como é data science, legal,

0:54:01: exatamente Abrão, você está fazendo certinho, estuda Python, estuda um pouco da matemática lá

0:54:06: na Academy Statistical, já vira linear, que você vai conseguir entender melhor como é que funciona

0:54:13: o data science, o machine learning, tá? Para a gente finalizar aqui, que a gente está quase com uma

0:54:20: hora de live, eu vou tentar, como é que a gente sabe se um sistema desse é bom? A grande realidade,

0:54:26: na prática, é que você só vai saber se o sistema é bom mesmo quando você colocar em produção,

0:54:30: quando você fizer o seu teste A-B, tá? Por quê? Porque o que a gente quer normalmente é aumentar

0:54:37: ou a retenção de usuários, ou a gente quer aumentar o valor das vendas, tá? E isso, por mais que você

0:54:49: tente correlacionar as métricas de machine learning, por mais que você tente correlacionar as métricas

0:54:55: de avança, não existe uma relação muito firme entre uma coisa e outra, tá? Então pode ser que

0:55:02: você tenha modelos que são melhores nas métricas e que não melhoram a recomendação, que não melhoram

0:55:08: as vendas. Então, primeira coisa que você precisa saber, tem que fazer o teste em produção desse

0:55:14: modelo, tá? Agora, a gente está completamente perdido, então, quando a gente está criando esse

0:55:19: modelo? Não. Existem algumas métricas que eu gosto de usar quando eu estou criando um modelo

0:55:23: porque, pelo menos, a gente filtra o que não presta mesmo, tá? A gente pelo menos não coloca

0:55:29: sistemas que são completamente irrelevantes. Algumas métricas são a precision at k e o recall at k

0:55:38: e o irmão, a irmãzinha deles, que é mean average precision, tá? O que isso aqui significa?

0:55:46: Basicamente, você vai pegar lá, você tem a tua lista de recomendações, vamos dizer que você

0:55:51: comprou lá o item 1, 4 e 5 para alguém e aí quando você vai olhar, na próxima semana, aquela pessoa

0:56:00: comprou o item 5 e 2. O que você vai calcular a precision at k e normalmente você vai ver ela

0:56:11: escrito assim? Vamos dizer que você queira saber o seguinte, o item que eu recomendei com maior score,

0:56:16: o item que estava com a maior probabilidade desse usuário gostar, qual é a minha precisão? Eu estou

0:56:24: acertando nesse item, tá? Então, o que acontece? Se a gente pegar k igual a 1 e a gente considerar uma

0:56:30: ordem, então, o primeiro item que a gente recomendou foi o item 1, a pessoa não comprou, então, a gente

0:56:35: errou, a gente já tem um zero, tá? E aí vai ser zero porque k igual a 1, então, a gente só compara. O item que

0:56:43: eu recomendei como o primeiro item, o item com maior chance da pessoa comprar, a pessoa comprou? Não,

0:56:48: então, zero. Agora, se a gente tiver k igual a 2, a gente tem aqui o seguinte, a nossa precision vai

0:56:56: ser, eu recomendei o item 1 e depois eu recomendei o item 4, a pessoa comprou algum deles? Não, então,

0:57:03: novamente, eu tenho a precision zero. Se o k for igual a 3, eu recomendei o item 1, depois o item 4,

0:57:12: depois o item 5. Então, nos top 3 itens que eu recomendei, a pessoa comprou algum? Comprou,

0:57:19: comprou o número 5, então, a gente tem, não comprou o primeiro, não comprou o segundo, ou seja,

0:57:24: zero de 3 que a gente recomendou, zero de 3 que a gente recomendou, mais 1 sobre 3 que a gente

0:57:30: recomendou. Então, a nossa precision at 3, a nossa precisão no top 3 está de 33%, tá? E o recall vai

0:57:42: ser o inverso, é o recall que a gente conhece, só que calculado no k também. Nesse caso, nosso

0:57:47: recall at k, se a gente pegar o k igual a 3, os outros casos vão ser igual a zero, mas se a gente

0:57:54: pegar o k igual a 3, a gente vai falar dos itens que a pessoa comprou, quantos estavam na minha

0:57:58: lista no meu top 3. E a gente vai pegar então, ah, o número 5 estava então legal, um de dois itens

0:58:05: que ela comprou, um deles estava na minha lista e o outro não estava, que era o item 2. Então,

0:58:11: nesse caso, o nosso recall é 50% dos itens que a pessoa comprou, quais que a gente acertou ali no

0:58:18: nosso top 3, no nosso top k, tá? E a minha average precision, o que que é? Você vai calcular essa

0:58:24: precision at k e aí o k vai depender do que você está recomendando. Se a primeira recomendação

0:58:29: for muito importante, teu k vai ser igual a 1, já usei k igual a 10, k igual a 20, vai depender do

0:58:36: que você está resolvendo. Você vai pegar esse valor para cada usuário e aí você faz a média,

0:58:41: ou seja, em média, qual é a precisão que eu estou tendo, sabe? Então, é basicamente, se a média

0:58:48: é as duas precision at k e a minha average precision, não vejo muito minha average precision, tá certo

0:58:57: isso mesmo. Não vejo muito recall sendo calculado dessa maneira, minha average precision é bastante

0:59:04: utilizada. Agora, tem as métricas de ranking que vão fazer o que? Em vez delas serem absolutas

0:59:11: dessa maneira, então aqui k igual a 1, 0, k igual a 2, 0, eu não vou entrar em detalhes matemáticos

0:59:17: porque elas são bem mais complicadas, precisaria de uma live inteira para eu conseguir explicar,

0:59:22: mas uma métrica que eu quero deixar o nome para vocês é o NDCG, normalized discounted cumulative

0:59:31: gain. Basicamente, o que ele vai fazer, ele vai calcular, não só se os itens que você recomendou

0:59:39: estão na lista dos itens que foram realmente consumidos, mas ele vai dar de acordo com a

0:59:47: distância, vamos dizer assim, da posição que você colocou esses itens de acordo com a ordem

0:59:52: que você ranqueou os itens recomendados, ele vai dar uma punição, uma penalização diferente, tá?

0:59:59: Então, essa aqui é lição de casa, você procurar o que é o NDCG. Uma coisa que eu preciso falar da

1:00:06: avaliação, que é um erro que muita gente comete, é o seguinte, a gente tem lá os dados de treino e

1:00:12: validação, que aí, validação temporal normalmente, que vocês já conhecem, já vem aqui na live,

1:00:18: já conhecem, o que acontece? Só que tem gente que pega os dados de validação e só prevê para os

1:00:24: dados que realmente tem. Então, vamos dizer que você tenha lá nos seus dados de treino 5 mil usuários

1:00:31: e mil produtos, mil itens, então 5 mil usuários, mil itens. Só que aí você vai para os seus dados de

1:00:38: validação e você vê lá que você tem 5 mil usuários também, vamos dizer que são os mesmos

1:00:43: usuários, só que você tem 800 itens que foram comprados, tá? Você não pode só prever para os itens

1:00:49: que estão nos seus dados de validação, você tem que prever para os mil itens para esses 5 mil usuários,

1:00:56: por quê? Porque na vida real você não sabe o que a pessoa comprou antes de ela comprar, então você

1:01:01: tem que fazer uma previsão para cada usuário, entre aspas, logicamente existem formas de você reduzir

1:01:07: o número de usuários, você tem muitos usuários e muitos itens, mas você tem que prever todos os itens

1:01:13: que você tem no teu catálogo, qual é a chance do usuário gostar ou não, qual é a avaliação que

1:01:20: esse usuário daria se ele conhecesse esse item. Vamos pensar no Spotify, tem milhões de usuários,

1:01:26: tem milhões de itens, como é que a gente faria isso? A gente não poderia simplesmente pegar todas

1:01:33: as músicas e fazer a previsão lá, porque computacionalmente isso não vale a pena. Normalmente o que a gente faz

1:01:40: é uma recomendação em dois passos, em dois passos. Primeiro a gente faz a seleção de candidatos e depois

1:01:50: a gente faz o ranking, então essa seleção de candidatos, imagine que você iria pegar, por exemplo,

1:01:55: você sabe que a pessoa gosta de rock, você vai, em vez de você tentar avaliar o teu modelo em rock,

1:02:03: você vai pegar a nossa nova, MPB, funk, tudo, você vai pegar só as músicas da categoria que a pessoa

1:02:11: mais gosta e aí você vai reduzir muito o número de itens que você pode recomendar para uma determinada

1:02:17: pessoa e aí você passa o teu sistema de ranking sobre ele para poder ordenar. Então no primeiro passo

1:02:24: você está procurando o recall, você quer o máximo de itens que você possa usar para fazer a tua

1:02:31: recomendação e no segundo passo você está procurando a precision, você quer a ordem certa que você

1:02:37: deve usar para recomendar esses itens. Vocês estão cansados ou vocês querem falar sobre como

1:02:47: Netflix usa isso baseado nos blogs que eles escrevem? Eu posso passar rapidamente aqui sobre

1:02:57: como Netflix usa isso, digam aí no chat. Paramos ou continuamos aí com os exemplos do Netflix?

1:03:06: Muito obrigado aí, 38 pessoas na live, 28 likes. Bora, pode falar, então, tão animado, vamos lá,

1:03:14: vou tomar uma água, tá? Só pra… porque aqui está um calor danado aqui em São Paulo.

1:03:20: Vamos lá, o que acontece? Eu fui pesquisar e depois eu vou colocar alguns links para vocês

1:03:29: aí nos comentários, na descrição, que são dois artigos do blog da Netflix

1:03:40: onde eles falam sobre como funciona a recomendação deles. Eu pesquei ali algumas

1:03:48: coisas interessantes para compartilhar com você, para você ver como é que é isso

1:03:52: é usado numa baita de uma empresa. E a primeira coisa que eu quero que você saiba é o seguinte,

1:03:57: vocês vão ver que o sistema deles é bem avançado, e entendam o seguinte, esse é um sistema que já

1:04:03: vem sendo desenvolvido há anos, tá? Então não olhem para isso e pensem, meu Deus do céu,

1:04:09: é muito complicado, tá? Entendam o seguinte, é interessante a gente ver, para ver a trajetória

1:04:16: que a gente pode fazer, mas a maioria dos sistemas de recomendação não vai chegar nem perto da

1:04:21: complexidade de um sistema igual na Netflix, porque, enfim, existem outras coisas para o pessoal

1:04:26: investir que não seja necessariamente só um sistema de recomendação, tá? Então o que acontece?

1:04:32: Primeiro, qual é o objetivo do Netflix? Então vamos lá, caso de estudo do Netflix, o objetivo de

1:04:42: negócio que a gente tem que ter em mente, o objetivo de negócio deles é maximizar a satisfação do

1:04:52: usuário e a retenção, ou seja, eles querem não só maximizar a sua satisfação em termos de, ah,

1:05:00: se você passou mais tempo assistindo o que eles recomendaram, quer dizer que as recomendações

1:05:04: foram boas, como eles querem, logicamente, que você pague a próxima mensalidade, que você não

1:05:09: consegue a sua assinatura. Agora, uma coisa que eu achei muito interessante é o seguinte,

1:05:15: eles falaram da mudança dos negócios, como é que ela afetou o sistema de recomendação. Então

1:05:22: originalmente, para quem já tem mais uma idade como eu, sabe que o Netflix e outros serviços,

1:05:30: na época tinha Blockbuster, tinha outros serviços que você podia usar para alugar filmes, o que

1:05:36: é que eles te mandavam um DVD, eles mandavam o motoqueiro vir e te entregar os DVDs, você ia lá

1:05:44: no site, escolhia os DVDs que você queria, escolhia lá três filmes, eles entregavam, depois eles

1:05:48: retiravam esses, entregavam os próximos que você tinha escolhido e assim vai, a cada x dias,

1:05:54: semana, não lembro agora, eles faziam isso, tá? Só que acontece, hoje o negócio da Netflix é

1:06:00: muito diferente, né? Hoje você entra lá na Netflix, você escolhe o que vai assistir, você

1:06:06: assiste na hora. Então, quer dizer, o sistema de recomendação deles na época do DVD, tava

1:06:14: escolhendo filmes que as pessoas iam assistir durante uma, duas semanas. O sistema de recomendação

1:06:21: que eles usam agora, é um sistema que já tá ali imediato, é a pessoa que vai maratonar o Netflix

1:06:28: no sábado, no domingo, ali. Então, a prioridade da recomendação mudou, isso é extremamente

1:06:36: importante, achei isso extremamente interessante, porque é uma forma de como o negócio, como a gente

1:06:44: tem que se adaptar à adaptação do negócio, então o sistema de recomendação de DVD não vai funcionar tão bem

1:06:49: quando você tem esse esquema de streaming, igual o que a gente tem hoje, que você tem sessões super

1:06:54: longas que as pessoas ficam consumindo o Netflix, tá? Deixa eu ver aqui o outro então. Então, essa é a

1:07:03: primeira coisa, a coisa super importante, tá? Eles estão entendendo como é que o negócio tá mudando

1:07:08: e adaptando o machine learning a isso. Uma coisa interessante também é que eles dizem que eles buscam

1:07:15: uma melhora contínua, e é uma coisa que a gente tem que buscar também, então estão dizendo que cerca de 75% das pessoas,

1:07:22: que eles escreveram os artigos, assistem algum tipo de recomendação que eles fazem, então imagine só,

1:07:28: 75% dos usuários do Netflix assistem a algum filme que foi recomendado pelo sistema de machine learning,

1:07:34: e assim, tem sistemas na busca, tem vários tipos de recomendação, e o que acontece? Eles dizem,

1:07:42: logicamente, conseguiram isso porque foram melhorando com o tempo, mas uma parte interessante que eles

1:07:47: vão fazer é encorajar os usuários a contribuir com algoritmo, porque a gente tem um problema muito grave,

1:07:53: por exemplo, na Upwork, a gente tinha um problema que as pessoas até terminavam lá os trabalhos,

1:07:59: tinham sucesso com os freelancers, mas não davam nota para os freelancers, então como é que você

1:08:04: encoraja os usuários a dar nota para os filmes, a mostrar se eles gostaram ou não, para você poder

1:08:12: botar o algoritmo e fazer novas recomendações, então eles têm algumas maneiras de mostrar para

1:08:19: o usuário, por exemplo, dando justificativas, você está recebendo filmes recomendados baseados no

1:08:26: filme X que você assistiu, filmes recomendados baseados no Titanic que você assistiu, e isso

1:08:32: acaba fazendo o usuário querer contribuir com o algoritmo para receber recomendações melhores,

1:08:38: então é outra coisa que na prática quando a gente sai da parte só de melhorar ali a métrica, a gente

1:08:44: tem que levar em conta também, se a gente mostrar para o usuário que o sistema de recomendação está

1:08:49: ajudando ele, está ajudando, está dando satisfação para ele, ele vai querer contribuir com isso,

1:08:55: então é uma outra coisa muito interessante que eu achei que eles fizeram aqui, tá? E eu peguei essa

1:09:05: parte que está no artigo deles lá e eles estão falando, olha que interessante, como evoluiu o

1:09:11: algoritmo pelo tempo, primeiro o que a gente está vendo aqui o 0% é popularidade, então simplesmente

1:09:17: recomendando os filmes mais populares, quando eles começaram a usar as ratings, eu imagino que aqui

1:09:24: foi quando eles começaram a usar as avaliações a cinco estrelas, aquela época lá do prêmio do

1:09:30: Netflix eles tiveram um aumento aqui de mais ou menos 30 e alguma coisa por cento e quando eles

1:09:35: colocaram foram otimizando os modelos colocando mais features o ranking deles hoje eles dizem que tá

1:09:42: ó, 200 e qualquer coisa por cento melhor do que a popularidade, tá? Então é bem interessante você

1:09:49: ver como esses sistemas conseguem trazer essas recomendações mais específicas para o seu

1:09:56: negócio e isso aqui impacta no negócio se não o Netflix não investiria os salários enormes nos

1:10:02: talentos que eles têm na parte de data science, na parte de recomendação deles, eu acho que esse é o

1:10:08: maior sinal que o negócio realmente funciona. Agora uma parte super interessante do artigo também

1:10:14: são quais as informações que eles usam no sistema deles, eu vou até escrever aqui para que você

1:10:19: também possa lembrar disso na hora que você estiver construindo o teu sistema de recomendação,

1:10:23: uma das informações que eles usam logicamente a popularidade dos filmes, então eles não computam

1:10:31: só a popularidade dos filmes em geral mas numa determinada região, então por exemplo teve aquela

1:10:39: polêmica do especial do porta dos fundos, então a popularidade de um filme desse no Brasil vai ser

1:10:47: diferente da popularidade de um filme desse Estados Unidos, pode ser que lá eles nem saibam que

1:10:50: esse tipo de esse filme, um documentário político sobre o Donald Trump por exemplo pode ser ter uma

1:11:01: popularidade completamente diferente nos Estados Unidos do que ela teria aqui, então essa popularidade

1:11:05: tanto pelo tempo quanto por região é uma parte muito importante eles dizem do algoritmo deles,

1:11:12: outra coisa interessante comportamento de consumo, então o que acontece eles sabem exatamente qual

1:11:21: o dispositivo você usou para assistir o filme, quanto tempo você assistiu, que horas era hora que

1:11:27: estava assistindo, então no sábado essa pessoa assistiu, gosta mais de assistir filmes de família

1:11:32: no sábado e gosta mais de assistir filmes de ação no domingo, um monte de quem tem família, quem tem

1:11:40: família sabe que coloca lá desenho para criança assistir, então em algum momento em uma hora do dia

1:11:49: o Netflix vai recomendar mais desenho por exemplo de manhã e no fim de semana no sábado à noite ele

1:11:54: já vai recomendar outro tipo de filme, então eles levam isso em conta, que horas o que está sendo

1:11:59: assistido mas que horas, qual é o contexto em que esse filme está sendo assistido, uma outra coisa

1:12:07: importante é a intenção de consumo, então apesar da gente não ter mais o caso do DVD, a gente ainda

1:12:14: pode colocar lá na lista de filmes para ver depois, assim como aqui no YouTube a gente também

1:12:19: pode colocar, eles usam também essa informação para tentar entender quais são as recomendações

1:12:25: que a pessoa que são mais relevantes, às vezes você está numa época que você quer assistir só

1:12:30: filme de ação, então você quer só assistir documentário sobre a Amazônia e aí eles levam

1:12:35: essa consideração para saber o que eles vão te recomendar, é outra coisa as características do

1:12:42: produto, isso aqui é uma coisa que a gente sempre fala quando está falando de recomendação de coisas

1:12:46: de marketing, sistemas de marketing, então eles têm dados sobre diretor, sobre gênero, é qual é por

1:12:53: exemplo a idade mínima, vamos dizer a faixa etária que é recomendada para assistir aquele filme,

1:12:59: eles têm quais foram as opiniões das pessoas sobre aquele filme, então são características que também

1:13:07: entram no sistema, aquela coisa que a gente falou, onde a recomendação será apresentada, eles levam em

1:13:18: consideração isso também, ela vai estar ali logo no topo, ela vai estar junto com recomendações que

1:13:24: são mais específicas de um determinado filme, onde que a gente vai mostrar isso, vai ser no celular

1:13:31: ou vai ser no computador, vai ser na televisão, onde que essa recomendação vai aparecer, tá?

1:13:39: Vamos lá, a outra coisa, como o usuário interage com a própria recomendação, então é meio que um

1:13:50: sistema de feedback do próprio sistema de recomendação que não é necessariamente só você

1:13:54: medir o erro e tudo mais, então é o que eles dizem aqui que eles fazem, eles veem se a pessoa rola

1:14:02: mais rapidamente, se ela pelo menos passa o mouse em cima de um filme, se ela clica, se ela passa

1:14:08: mais tempo olhando a lista de recomendações, todo esse comportamento no contexto das recomendações,

1:14:15: deve ter gente que olha mais as recomendações, deve ter gente que nem liga para as recomendações,

1:14:21: só entra lá para assistir já uma coisa que está decidido, então isso também entra no sistema.

1:14:26: Outra coisa que a gente já comentou aí na hora que falou da network análise, o círculo social

1:14:33: da pessoa, então o que os amigos estão assistindo, tá? O que os amigos deram nota para o filme,

1:14:43: imagina lá, você tem cinco amigos que usam Netflix e três deles deram nota boa para um filme,

1:14:49: o Netflix vai te recomendar esse filme provavelmente antes ainda do teu amigo te mandar lá o WhatsApp

1:14:54: falar para você assistir, tá? Então é um outro exemplo de dados também que eles usam, e aí

1:15:00: entram alguns outros dados mais comuns que o histórico de busca, é mais ou menos a mesma ideia

1:15:05: da lista de assistir depois, então o que você buscou também informa itens que eles podem

1:15:13: te dar ainda sem você ter necessidade de ir lá e pesquisar por eles, tá? E dados externos,

1:15:18: e aí dados externos é bem geral, né? Entra bastante coisa, então eles podem pegar qual foi

1:15:24: o desempenho desse filme nos cinemas, quanto ganhou dinheiro no cinema, quais foram as…

1:15:30: o que os críticos acharam desse tipo de filme, qual a nota lá no IMDB, qual é a nota no Rotten

1:15:38: Height, então tem vários dados externos logicamente que poderiam ser usados, mais uma vez isso aqui é

1:15:45: um sistema que vem sendo melhorado há anos por um monte de gente, tá? Então não pense que você

1:15:52: tem que botar tudo isso aqui de uma vez para o sistema funcionar, porque definitivamente não é o

1:15:57: caso, dá para você fazer um sistema muito mais simples que esse, mas que já funciona muito bem,

1:16:02: que resolve muito bem, tá? E a última parte desse caso do Netflix é o seguinte, eles falaram sim,

1:16:11: a gente usa várias métricas de machine learning, claro, porque elas correlacionam com o que a gente

1:16:17: vê em teste A-B, e realmente em sistemas de recomendação é isso que acontece, você tem ali as

1:16:21: métricas de relevância, precision, o NDCG, elas correlacionam com o que você vai ver, você não

1:16:28: vai ver um sistema aqui que você não tenha avaliado minimamente offline para produção, mas

1:16:34: efetivamente você só vai saber quando é você colocar em produção, aí eu peguei essa imagem aqui

1:16:42: e mais uma vez eu vou passar o link desses artigos para quem quiser ver em mais detalhes, ver essas

1:16:46: imagens e tal, e é o vôndes assim, como é que eles fazem o trabalho dentro da Netflix, então eles

1:16:55: fazem o empodes inicial, criam o modelo, treinam o modelo, testam offline e aí, ah, offline tá

1:17:02: melhorando a relevância, tá melhorando o NDCG, tá melhorando a precision, vamos fazer um teste

1:17:08: A-B, bota o grupo de controle, observa, vê o resultado, funcionou? Sim, vamos andar então,

1:17:15: começar a escalar para todos os usuários, não funcionou? Vamos voltar e ver porque não funcionou

1:17:21: a nossa próxima interação que é o que eu sempre falo e sempre incentivo você a fazer, que é

1:17:26: iterar rapidamente em produção com testes pequenos, e a forma interessante que eu achei como o Netflix

1:17:34: fez isso, foi o seguinte, eles fizeram dentro, eles têm essa cultura de testes rápidos, mas teve uma,

1:17:42: eles fizeram meio que um racatão interno para tentar melhorar o top 10 de recomendações que eles

1:17:50: fizeram para os usuários, então o que eles fizeram? Depois vocês podem olhar de novo essa

1:17:55: imagem aqui, mas eles queriam melhorar o top 10 de recomendações, tá? E eles fizeram um racatão,

1:18:04: qual era a ideia? Eles queriam durante 10 semanas testar o máximo possível de ideias para melhorar

1:18:13: esse top 10 de recomendações, tá? Então, o que acontece? Diz que eles chamaram vários times,

1:18:20: várias pessoas ali da área de data size, de produto tal, e falaram vamos tentar melhorar tudo,

1:18:26: e aí vejam só, diz que toda semana eles testavam, e aqui com teste AB, 6 ideias, imagine só que

1:18:40: você, toda semana testando 6 sistemas diferentes, 6 ideias diferentes de recomendação em produção,

1:18:49: claro que eles não iam testar isso em todos os usuários, como eu falei, como quem já chegou

1:18:54: nessa parte no livro, leu lá, a gente começa com 1%, a gente pega uma parte pequena dos usuários,

1:18:59: mas imagine só, esse é o extremo de uma cultura de testes em produção, porque tem muita empresa

1:19:06: que a gente faz teste tudo mais em produção, e é tudo mentira, só que eles efetivamente viram qual

1:19:16: é a importância de fazer isso, e o Facebook, geralmente essas empresas Google, essas empresas

1:19:21: muito baseadas em dados, elas têm uma cultura realmente não tão extrema assim de 6 ideias por

1:19:27: semana, mas de você ter uma facilidade muito grande de implementar essas ideias em produção, tá?

1:19:34: E aí, para finalizar, o que eu quero que você lembre mais importante dessa live é, sistemas

1:19:42: simples bem ajustados, normalmente são bastante, são comparáveis aos melhores sistemas gerais,

1:19:48: claro que se você tiver sistemas bem ajustados e bem específicos para os casos que você está

1:19:54: tentando resolver há anos, como o caso do Netflix, é melhor ainda, mas não desvalorize o sistema

1:20:00: de testes, e uma filosofia, vamos dizer assim, da Netflix aqui que eu achei interessante, que eles

1:20:06: falam, a implementação ideal de um sistema desses geralmente não vai ser 10 vezes maior, não vai ser

1:20:12: nem duas vezes melhor do que um protótipo, então às vezes você ajustar muito o modelo, não adianta

1:20:20: você tentar buscar a solução ideal, se você não testar o protótipo, porque geralmente essa solução

1:20:26: não vai ser tão melhor assim que um protótipo, então é melhor você inovar e testar rapidamente

1:20:34: do que necessariamente você ficar ali tentando ter a solução ideal, não, o negócio é botar lá para

1:20:43: testar em produção e é uma coisa que a gente tem que cada vez mais espalhar na cultura de dados das

1:20:48: empresas, isso porque é frustrante você trabalhar num modelo e aí ter que ficar meses, eu já passei

1:20:55: uns meses, com vencendo times de produto a colocar o teu modelo em produção em 1% dos usuários,

1:21:01: para você saber se funcionou ou não. Pessoal, deixa eu ver aqui as perguntas, Chris Lânio,

1:21:11: ah eu prometi que ia responder para o Jones sobre a pergunta de selecionar features, Jones, procura

1:21:22: o seguinte, forward e backward feature selection, esses são os melhores modos que eu conheço,

1:21:35: sequential feature selection, são os melhores modos que eu conheço, mas também tem, ou você pegar por

1:21:43: exemplo um modelo igual a Marvino Forest, algum modelo e você selecionar as n features mais

1:21:48: importantes, aí vai depender de quanto tempo você tem, então você pode pegar por exemplo top n mais

1:21:53: importantes de um modelo, caso da regressão linear por exemplo, os n maiores coeficientes,

1:22:00: ou então as n mais importantes da Marvino Forest, ou se você tiver mais tempo puder fazer forward,

1:22:06: backward, sequential feature selection, que aí você vai testando uma a uma e selecionando só

1:22:11: aquelas que funcionam, tá? Eu não lembro, eu acho que expliquei isso aqui em alguma live, mas agora

1:22:17: eu não lembro qual live foi, mas são esses modos que eu costumo usar na prática. Deixa eu ver aqui

1:22:28: outras perguntas, Mário, até estou conseguindo virar como des machine learning por causa da

1:22:35: documentação do site learning, obtém sites com dados, bolaram uma live? Sim, faz o seguinte, me

1:22:44: dá uma mensagem, mais detalhes sobre essa ideia de gerar sites com dados, tal, para gente entender,

1:22:51: que aí eu procuro preparar um material, tá? Quais principais desafios na modelagem de sistema de

1:23:01: recomendação você vê para atender à expectativa dos clientes? Normalmente o desafio não é técnico,

1:23:06: é mais o desafio de você conseguir os dados, de você conseguir testar rapidamente isso em produção,

1:23:13: então geralmente você precisa fazer uma venda para o cliente para que ele possa entender o benefício

1:23:23: desse sistema de recomendação, tá? Mas eu acho que para a maioria do que a gente tem, tirando empresas

1:23:32: que já desenvolvem sistema de recomendação há um tempo, um sistema simples, filtragem colaborativo,

1:23:37: o tec no começo, fatoração de matriz já vai resolver muito bem o caso, tá? Eu lembro, um dos primeiros

1:23:44: casos que eu trabalhei com data science foi um site de vinhos e a gente usou a API da Azure e eu até

1:23:53: criei um script em PHP na época para poder pegar os resultados da API e jogar lá para eles fazerem

1:24:01: uma compreensão para poder jogar no site. Para você ter uma ideia, melhorou logicamente as métricas da

1:24:07: empresa, tanto que eles depois acabaram até criando, eles vendem serviços de dados para vinícolas e tudo

1:24:16: mais e se consideram uma empresa de inteligência artificial na área de vinhos, o que é muito legal.

1:24:23: Eu lembro que o rapaz lá que me contratou, era o CEO na época, ele falou, nós pegamos aqui algumas

1:24:31: recomendações e a gente foi testar os vinhos para ver e realmente a gente gostou das recomendações,

1:24:36: viu? Então se passou nesse teste tá bom, né? É isso aí pessoal, o Ederson, legal ver você aí,

1:24:45: feliz 2020 para você também, feliz 2020 para você, que a gente consiga continuar nessa jornada,

1:24:54: muito legal ver você aqui na live, Ederson, Igor, todo mundo, Chris Lane, Douglas, Carini, Renato,

1:25:04: todo mundo, eu não vou lembrar o nome de todo mundo, mas muito legal ver você aqui, espero que a gente

1:25:10: continue aprendendo nesse ano de 2020, quem não viu, difícil, porque provavelmente todos vocês já

1:25:16: viram que eu lancei um ebook aí, o Manual Prático de Data Science, tem lá tudo sobre como você

1:25:23: conseguir um projeto, técnicas, a maior parte é a modelagem efetivamente, que é o que eu entendo

1:25:28: mais, dicas aí de classe desbalanceada, seleção de features, tudo mais, dá uma olhada lá se você

1:25:34: achar interessante, fique à vontade ali para adquirir e a semana que vem a gente tem outra live,

1:25:42: agora a gente vai continuar com essas lives toda semana e eu espero ver você aqui, ainda não tem

1:25:48: uma, você pode me sugerir, siga lá no Instagram, dá uma olhada no tema, sugere um tema lá que seja

1:25:53: interessante e vamos lá fazer Data Science funcionar bem aqui no Brasil. Essa pergunta eu preciso,

1:26:05: só não é, essa pergunta Windows, Mac ou Linux, ainda é uma pergunta bold, isso é quando me perguntam

1:26:11: se eu uso o Mac, eu acho que em termos de usabilidade, ele acaba sendo um pouco mais caro, mas em termos

1:26:18: de como eu passo sei lá 12 horas por dia na frente dele, eu prefiro usar, porque ele tem meio que,

1:26:25: por causa da base dele ser unix, ele tem essa facilidade de ter o terminal ali bem parecido

1:26:32: com o Linux, mas na nuvem eu uso Ubuntu, Linux em geral, só bem no comecinho mesmo da minha carreira

1:26:39: eu usei Windows, mas eu prefiro o Mac para uso pessoal e o Linux na nuvem. Muito obrigado e uma

1:26:48: boa noite para vocês e até a próxima, não briguem por causa de Mac e Linux aí no chat, tá? Um abraço!