SlideShare a Scribd company logo
1 of 37
Download to read offline
1 Globalcode	–	Open4education
Trilha – Xxxx
Nome do Palestrante
Qualificação do palestrante
Encontrando Lookalikes para Publicidade Digital
em um Contexto de Big Data
Joel Pinho Lucas
Agenda
• Lookalikes e Publicidade Digital (Introdução)
• Lookalikes em um contexto de Big Data: cenário da Tail
• Visão Geral da Implementação de Lookalikes na Tail
• Mineração de Padrões Frequentes com Spark MLlib FP-Growth
(Passo I)
• Descoberta de Lookalikes: matching de perfis (Passo II)
• Conclusões
2
Lookalikes e Publicidade Digital
Lookalikes: partindo de uma audiência semente, encontrar uma
audiência mais abrangente (alvo) com perfis de consumo que se
assemelhem a mesma
3
A audiência alvo deve refletir características benchmark da audiência do
cliente (source audience)
Lookalikes e Publicidade Digital
“De acordo com 30% dos advertisers e mais da metade das agências nos EUA
que reportaram utilizar a técnica, a modelagem de lookalikes resultou no dobro
ou até triplo dos resultados em comparação a um target de audiência padrão.”
Estudo da Exelate
4
5
Lookalikes e Publicidade Digital
6
Lookalike e Publicidade Digital
Lookalikes em um contexto de Big Data:
Caso da Tail
7
Lookalikes em um contexto de Big Data:
Caso da Tail
• 1.5 bilhões novos registros ao dia
• 400 milhões de perfis anônimos na América Latina
• Os perfis de usuários são baseados em logs de navegação de
parceiros (publishers) através de uma tag em JavaScript
• Os perfis de usuários são segmentados em 132 categories
comportamentais e demográficas
Ex: TV, Futebol, Política, Beleza,Viagem,Adulto, Jovem, etc.
8
9
Formação dos perfis da Base de Dados da Tail
10
Formação dos perfis da Base de Dados da Tail
Formação dos perfis da Base de Dados da Tail
11
Tag
u=1507000A8451375B184024E
LOG
12
Formação dos perfis da Base de Dados da Tail
Texto
Relevante
Extrator de Texto
Crawling
Representação de um link web:
1 15749 aluguel
2 12208 casa
3 11456 julho
4 10272 dia
5 9232 sao paulo
6 9177 procurar
7 8958 vender
8 8779 imóvel
9 8664 praia
10 8191 garagem
11 7626 carro
12 7580 preço
13 7453 quarto
14 7246 construção
…….
n
Extrator de Termos
Frequentes
Interesse Classificador
13
Exemplo de Dataset da Tail
Implementação de Lookalikes
Passos implementados através da arquitetura do Apache Spark
1. revelar os padrões mais relevantes dentro da audiência semente
2. encontrar uma audiência alvo (target audience) que corresponda a tais
padrões
14
Problema: dado uma audiência semente, encontrar
os usuários que mais se assemelham (lookalikes) a
ela dentro da base da Tail
15
• Implementação simplificada (API em Java, Scala, Python e R)
• Diversas implementações eficientes de algoritmos
http://spark.apache.org/mllib/
• Performance
Lazy evaluation
Armazenamento em memória
Passo 1: Encontrando os Padrões mais
Relevantes
• Identificar, extrair e entender os padrões mais relevantes da
audiência do cliente
• Problema de aprendizagem não-supervisionada (tarefa de
mineração de padrões frequentes)
• Utilizou-se a implementação do algoritmo FP-Growth da
Spark MLlib
16
Passo 1: Encontrando os Padrões mais
Relevantes
• O advertiser deve conseguir encontrar valor, poder realizar
insights e entender sua audiência com maior nível de detalhe (NO
black-box)
• A mineração de padrões frequentes possibilita que os dados de
uma audiência sejam explorados com mais detalhe
17
Passo 1: Extensão do FP-Growth
18
Passo 1: FP-Growth
Entrada: um conjunto de N transações:
D = {T1 ,T2 ,.... ..,TN }
Saída: um conjunto de regras de associação:
A —> B, onde A ⊂ D e B ⊂ D
19
• FP-Growth (Frequent Pattern Growth) é um algorithm de
mineração de itens frequentes
Passo 1: FP-Growth
Suporte mínimo: número mínimo de itens ocorrendo em um conjunto
de transações
20
IN: { [leite, pão], [fralda, leite], [fralda, cerveja], [fralda, cerveja], …., [fralda, leite, cerveja] }
{fralda, leite cerveja}OUT:
Passo 1: FP-Growth
• Permite que itens frequentes sejam descobertos sem precisar que
conjuntos candidatos sejam gerados (mais eficiente que Apriori)
• Utiliza uma estrutura de dados compacta (FP-tree)
21
Duas Etapas:
Gerar uma FP-Tree compacta (realizando apenas duas passadas no conjunto de dados)
Extrair itens frequentes diretamente da FP-Tree
Passo 1: FP-Growth (FP-Tree)
22
Min Support = 2
Figura extraída de “Yıldız, Barış & Ergenç, Belgin. (2010). Comparison of two association rule mining algorithms
without candidate generation”.
Passo 1: FP-Growth no Spark MLlib
Exemplo de implementação no Spark MLlib (Java):
23
Não precisamos das Regras de
Associações, apenas dos padrões
frequentes
Passo 1: FP-Growth no Spark MLlib
24
???
Step I: FP-Growth no Spark MLlib
25
Num. perfis
Num. max. de
propriedades
Número médio de
propriedades
Running Time
Dataset Cliente-1 2.2M 19 7 3.7 min
Dataset Cliente-2 1.2k 112 12 4.9 h
Dataset Cliente-3 4k 14 6 33 seg
• Limitação de dimensionalidade
• Ex: 72 entradas da Dataset-2:
{user : [TV, Tourism, Cars, Fashion, Soccer, Politics, Beauty, Baby Care, Fitness, Celebrities, etc…] }
Navegação Artificial: perfis falsos!
Passo 1: Extensão do FP-Growth
Solução: implementar filtro para eliminar conjuntos de itens com
um número grande de itens idênticos
26
27
FP1
FP2
FP3
FP4
FP5
FP6
FP7
1.
2.
3.
4.
5.
6.
7.
...
90M
Passo II: Encontrar Lookalikes
Usuários
Padrões
Frequentes
Lookalike
Lookalike
Passo II: Encontrar Lookalikes
1. Para cada usuário da base dados da empresa calcular um índice de
correlação que conta os matches nas regras geradas no passo 1
2. Ordenar usuários por tais índices
3. Disponibilizar a audiência de Lookalikes para atender a requisições
disparadas por clientes (assertividade x alcance da audiência)
28
29
• Implementar os jobs que irão rodar no cluster do Spark
• Testar e/ou depurar um job do Spark
• O time precisa operar e similar um mesmo cluster
Implementação de Lookalikes - Infra para
Spark MLlib
30
• Cluster "leve"
• Apenas uma máquina
• Mesmo ambiente para todo o time
Executando Spark Localmente com
Docker
Escolha sua imagem
(ou gere a sua e compartilhe)
31
http://github.com/joelplucas/docker-spark 32
Exemplo de Implementação
• Algoritmo FP-Growth (MLlib)
• Entrada: dados anônimos de publicidade digital
• Problema: encontrar padrões frequentes nos perfis de
navegação (baseado no Passo I)
• Escreve resultados no MongoDB
http://github.com/joelplucas/fpgrowth-spark-example
33
Teste Unitário Utilizando Spark Testing Base
• Lançado no Strata NYC 2015 por Holden Karau (e mantido pela comunidade)
• Suporta testes unitários em Java, Scala e Python
34
Conclusões
• A utilização de aprendizagem não-supervisionada, da maneira como
foi implementada nos passos 1 e II, permitiu gerar audiências de
lookalike
• Dividir o problema em dois passos (utilizando Spark) mostrou-se
uma estratégia eficaz para escalar as requisições de lookalikes de
clientes em um contexto de big data
• A extensão do FP-Growth permitiu que a solução descrevesse
claramente os padrões encontrados nas audiência dos clientes
35
Conclusões
• A utilização de código fonte aberto da Spark MLlib permitiu depurar
e investigar nossos conjuntos de dados com maior facilidade
• A utilização de um ambiente de desenvolvimento comum ao time e
realizar testes unitários nos jobs do Spark contribuíram de forma
significativa ao processo de desenvolvimento
36
Q&A - Contato
‣ Linkedin: http://br.linkedin.com/in/joelplucas/
‣ Email: joelpl@gmail.com
37

More Related Content

Similar to TDC2018FLN | Trilha Data Science - Encontrando Lookalikes para publicidade digital em um contexto de big data

Similar to TDC2018FLN | Trilha Data Science - Encontrando Lookalikes para publicidade digital em um contexto de big data (20)

Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
Arquitetura de referência Drupal 7 e 8. Da Natura e Taller para a comunidade ...
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
[DTC21] Raphael Castilho - Começando com Inteligência Artificial e Machine Le...
 
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
Automatizando Testes de Integração com Azure DevOps | DevOps Experience - Fev...
 
Tdc 2017
Tdc 2017Tdc 2017
Tdc 2017
 
Drupal e o seu ecossistema
Drupal e o seu ecossistemaDrupal e o seu ecossistema
Drupal e o seu ecossistema
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
Introduzindo StimulusJS: o novo Framework JavaScript para Ruby On Rails.
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Prática
 
Machine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produçãoMachine Learning: Do Notebook ao modelo em produção
Machine Learning: Do Notebook ao modelo em produção
 
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
[TDC2016] Apache SparkMLlib:  Machine Learning na Prática[TDC2016] Apache SparkMLlib:  Machine Learning na Prática
[TDC2016] Apache SparkMLlib: Machine Learning na Prática
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
 
Engenharia De Software e O Software Livre
Engenharia De Software e O Software LivreEngenharia De Software e O Software Livre
Engenharia De Software e O Software Livre
 
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
Aplicações multicore com Linux Embarcado usando Raspberry Pi 2 - TDC2015
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
Data Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto AlegreData Vault - TDC 2020 Porto Alegre
Data Vault - TDC 2020 Porto Alegre
 

More from tdc-globalcode

More from tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Recently uploaded

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 

Recently uploaded (20)

GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Slides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exerciciosSlides 9º ano 2024.pptx- Geografia - exercicios
Slides 9º ano 2024.pptx- Geografia - exercicios
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 

TDC2018FLN | Trilha Data Science - Encontrando Lookalikes para publicidade digital em um contexto de big data

  • 1. 1 Globalcode – Open4education Trilha – Xxxx Nome do Palestrante Qualificação do palestrante Encontrando Lookalikes para Publicidade Digital em um Contexto de Big Data Joel Pinho Lucas
  • 2. Agenda • Lookalikes e Publicidade Digital (Introdução) • Lookalikes em um contexto de Big Data: cenário da Tail • Visão Geral da Implementação de Lookalikes na Tail • Mineração de Padrões Frequentes com Spark MLlib FP-Growth (Passo I) • Descoberta de Lookalikes: matching de perfis (Passo II) • Conclusões 2
  • 3. Lookalikes e Publicidade Digital Lookalikes: partindo de uma audiência semente, encontrar uma audiência mais abrangente (alvo) com perfis de consumo que se assemelhem a mesma 3 A audiência alvo deve refletir características benchmark da audiência do cliente (source audience)
  • 4. Lookalikes e Publicidade Digital “De acordo com 30% dos advertisers e mais da metade das agências nos EUA que reportaram utilizar a técnica, a modelagem de lookalikes resultou no dobro ou até triplo dos resultados em comparação a um target de audiência padrão.” Estudo da Exelate 4
  • 7. Lookalikes em um contexto de Big Data: Caso da Tail 7
  • 8. Lookalikes em um contexto de Big Data: Caso da Tail • 1.5 bilhões novos registros ao dia • 400 milhões de perfis anônimos na América Latina • Os perfis de usuários são baseados em logs de navegação de parceiros (publishers) através de uma tag em JavaScript • Os perfis de usuários são segmentados em 132 categories comportamentais e demográficas Ex: TV, Futebol, Política, Beleza,Viagem,Adulto, Jovem, etc. 8
  • 9. 9 Formação dos perfis da Base de Dados da Tail
  • 10. 10 Formação dos perfis da Base de Dados da Tail
  • 11. Formação dos perfis da Base de Dados da Tail 11 Tag u=1507000A8451375B184024E LOG
  • 12. 12 Formação dos perfis da Base de Dados da Tail Texto Relevante Extrator de Texto Crawling Representação de um link web: 1 15749 aluguel 2 12208 casa 3 11456 julho 4 10272 dia 5 9232 sao paulo 6 9177 procurar 7 8958 vender 8 8779 imóvel 9 8664 praia 10 8191 garagem 11 7626 carro 12 7580 preço 13 7453 quarto 14 7246 construção ……. n Extrator de Termos Frequentes Interesse Classificador
  • 14. Implementação de Lookalikes Passos implementados através da arquitetura do Apache Spark 1. revelar os padrões mais relevantes dentro da audiência semente 2. encontrar uma audiência alvo (target audience) que corresponda a tais padrões 14 Problema: dado uma audiência semente, encontrar os usuários que mais se assemelham (lookalikes) a ela dentro da base da Tail
  • 15. 15 • Implementação simplificada (API em Java, Scala, Python e R) • Diversas implementações eficientes de algoritmos http://spark.apache.org/mllib/ • Performance Lazy evaluation Armazenamento em memória
  • 16. Passo 1: Encontrando os Padrões mais Relevantes • Identificar, extrair e entender os padrões mais relevantes da audiência do cliente • Problema de aprendizagem não-supervisionada (tarefa de mineração de padrões frequentes) • Utilizou-se a implementação do algoritmo FP-Growth da Spark MLlib 16
  • 17. Passo 1: Encontrando os Padrões mais Relevantes • O advertiser deve conseguir encontrar valor, poder realizar insights e entender sua audiência com maior nível de detalhe (NO black-box) • A mineração de padrões frequentes possibilita que os dados de uma audiência sejam explorados com mais detalhe 17
  • 18. Passo 1: Extensão do FP-Growth 18
  • 19. Passo 1: FP-Growth Entrada: um conjunto de N transações: D = {T1 ,T2 ,.... ..,TN } Saída: um conjunto de regras de associação: A —> B, onde A ⊂ D e B ⊂ D 19 • FP-Growth (Frequent Pattern Growth) é um algorithm de mineração de itens frequentes
  • 20. Passo 1: FP-Growth Suporte mínimo: número mínimo de itens ocorrendo em um conjunto de transações 20 IN: { [leite, pão], [fralda, leite], [fralda, cerveja], [fralda, cerveja], …., [fralda, leite, cerveja] } {fralda, leite cerveja}OUT:
  • 21. Passo 1: FP-Growth • Permite que itens frequentes sejam descobertos sem precisar que conjuntos candidatos sejam gerados (mais eficiente que Apriori) • Utiliza uma estrutura de dados compacta (FP-tree) 21 Duas Etapas: Gerar uma FP-Tree compacta (realizando apenas duas passadas no conjunto de dados) Extrair itens frequentes diretamente da FP-Tree
  • 22. Passo 1: FP-Growth (FP-Tree) 22 Min Support = 2 Figura extraída de “Yıldız, Barış & Ergenç, Belgin. (2010). Comparison of two association rule mining algorithms without candidate generation”.
  • 23. Passo 1: FP-Growth no Spark MLlib Exemplo de implementação no Spark MLlib (Java): 23 Não precisamos das Regras de Associações, apenas dos padrões frequentes
  • 24. Passo 1: FP-Growth no Spark MLlib 24 ???
  • 25. Step I: FP-Growth no Spark MLlib 25 Num. perfis Num. max. de propriedades Número médio de propriedades Running Time Dataset Cliente-1 2.2M 19 7 3.7 min Dataset Cliente-2 1.2k 112 12 4.9 h Dataset Cliente-3 4k 14 6 33 seg • Limitação de dimensionalidade • Ex: 72 entradas da Dataset-2: {user : [TV, Tourism, Cars, Fashion, Soccer, Politics, Beauty, Baby Care, Fitness, Celebrities, etc…] } Navegação Artificial: perfis falsos!
  • 26. Passo 1: Extensão do FP-Growth Solução: implementar filtro para eliminar conjuntos de itens com um número grande de itens idênticos 26
  • 27. 27 FP1 FP2 FP3 FP4 FP5 FP6 FP7 1. 2. 3. 4. 5. 6. 7. ... 90M Passo II: Encontrar Lookalikes Usuários Padrões Frequentes Lookalike Lookalike
  • 28. Passo II: Encontrar Lookalikes 1. Para cada usuário da base dados da empresa calcular um índice de correlação que conta os matches nas regras geradas no passo 1 2. Ordenar usuários por tais índices 3. Disponibilizar a audiência de Lookalikes para atender a requisições disparadas por clientes (assertividade x alcance da audiência) 28
  • 29. 29 • Implementar os jobs que irão rodar no cluster do Spark • Testar e/ou depurar um job do Spark • O time precisa operar e similar um mesmo cluster Implementação de Lookalikes - Infra para Spark MLlib
  • 30. 30 • Cluster "leve" • Apenas uma máquina • Mesmo ambiente para todo o time Executando Spark Localmente com Docker
  • 31. Escolha sua imagem (ou gere a sua e compartilhe) 31
  • 33. Exemplo de Implementação • Algoritmo FP-Growth (MLlib) • Entrada: dados anônimos de publicidade digital • Problema: encontrar padrões frequentes nos perfis de navegação (baseado no Passo I) • Escreve resultados no MongoDB http://github.com/joelplucas/fpgrowth-spark-example 33
  • 34. Teste Unitário Utilizando Spark Testing Base • Lançado no Strata NYC 2015 por Holden Karau (e mantido pela comunidade) • Suporta testes unitários em Java, Scala e Python 34
  • 35. Conclusões • A utilização de aprendizagem não-supervisionada, da maneira como foi implementada nos passos 1 e II, permitiu gerar audiências de lookalike • Dividir o problema em dois passos (utilizando Spark) mostrou-se uma estratégia eficaz para escalar as requisições de lookalikes de clientes em um contexto de big data • A extensão do FP-Growth permitiu que a solução descrevesse claramente os padrões encontrados nas audiência dos clientes 35
  • 36. Conclusões • A utilização de código fonte aberto da Spark MLlib permitiu depurar e investigar nossos conjuntos de dados com maior facilidade • A utilização de um ambiente de desenvolvimento comum ao time e realizar testes unitários nos jobs do Spark contribuíram de forma significativa ao processo de desenvolvimento 36
  • 37. Q&A - Contato ‣ Linkedin: http://br.linkedin.com/in/joelplucas/ ‣ Email: joelpl@gmail.com 37