67
MACHINE LEARNING NO MUNDO REAL COM VOWPAL WABBIT Juliano Junio Viana CTO

MACHINE LEARNING NO MUNDO REAL - QCon Rioqconrio.com/rio2014/system/files/presentation... · REAL WORLD RESULTADOS PREDIÇÃO DE SALÁRIOS FEATURE EXTRACTION! vw-varinfo identifica

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

MACHINE LEARNING NO MUNDO REAL

COM VOWPAL WABBIT

Juliano Junio Viana CTO

OVERVIEWO que é Vowpal Wabbit?

Prob. 1: Regressão Predição de salário em anúncios Modelagem / Treino do Modelo Feature Extraction

Prob. 2 : Filtragem Colaborativa Predição de nota para filmes online

Prob. 3 : Clustering Segmentação de Usuários

Conclusões

VOWPAL WABBIT??

VOWPAL WABBIT??Implementação open-source de algoritmos de Machine Learning John Langford (Yahoo Research, Microsoft Research)

Vorpal Sword + Rabbit

VOWPAL WABBIT??Implementação open-source de algoritmos de Machine Learning John Langford (Yahoo Research, Microsoft Research)

Vorpal Sword + Rabbit

VOWPAL WABBIT??Implementação open-source de algoritmos de Machine Learning John Langford (Yahoo Research, Microsoft Research)

Vorpal Sword + Rabbit

• Rápida

• Online (out-of-core)

• Grandes conjuntos de dados

• Open Source (BSD License)

1: REGRESSÃO

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O

SALÁRIO CORRESPONDENTE

REAL WORLD

REAL WORLD

Cliente: Agência de empregos Motivação:

• melhorar a experiência do usuário • reduzir tempo de procura por vaga

Background: • metade dos anúncios não declaram salário • dificuldade de realização de pesquisas

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O SALÁRIO CORRESPONDENTE

REAL WORLD

Cliente: Agência de empregos Motivação:

• melhorar a experiência do usuário • reduzir tempo de procura por vaga

Background: • metade dos anúncios não declaram salário • dificuldade de realização de pesquisas

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O SALÁRIO CORRESPONDENTE

SOLUÇÃO: CRIAR UM MODELO DE REGRESSÃO

MODELOSMODELOS SÃO SIMPLIFICAÇÕES DA REALIDADE• Dados Brutos • Features, Label • F(features) = Label

MODELOSMODELOS SÃO SIMPLIFICAÇÕES DA REALIDADE

20cm

8cm

5 dedos

0.4kg

Features: • Altura: 20 • Peso 0.4 • TamanhoOrelha: 8 • NumeroDeDedos: 5 Label: Coelho

MODELO NO VWModelo no VW: ![Label] [Importance [Tag]]|Namespace Features |Namespace Features ... |Namespace Features !onde Namespace=String[:Value] Features=(String[:Value] )* !Exemplo: Label 2 = coelho, Label 3 = juliano !2.0 | Tamanho:20 NumeroDeDedos:5 Peso:0.4 TamanhoOrelha:8 3.0 | Tamanho:173 NumeroDeDedos:5 Peso:79 TamanhoOrelha:7

APRENDENDO MODELOS

VW aproxima F de forma linear : F = c1*feature1+ c2*feature2 + c3*feature3...

APRENDENDO MODELOSVW aproxima F de forma linear : F = c1*feature1+ c2*feature2 + c3*feature3...

APRENDENDO MODELOSVW aproxima F de forma linear : F = c1*feature1+ c2*feature2 + c3*feature3...

APRENDENDO MODELOSVW aproxima F de forma linear : F = c1*feature1+ c2*feature2 + c3*feature3...

APRENDENDO MODELOSVW aproxima F de forma linear : F = c1*feature1+ c2*feature2 + c3*feature3...

REAL WORLD

Dados disponíveis: • Título • Descrição • Localização (2 formas) • Tipo de Contrato

(permanente/temporário) • Duração do Contrato • Empresa • Categoria • Salário

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O SALÁRIO CORRESPONDENTE

REAL WORLD

Dados disponíveis: • Título • Descrição • Localização (2 formas) • Tipo de Contrato

(permanente/temporário) • Duração do Contrato • Empresa • Categoria • Salário

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O SALÁRIO CORRESPONDENTE

Id, Title, FullDescription, LocationRaw, LocationNormalized, ContractType, ContractTime, Company, Category, SalaryRaw, SalaryNormalized, SourceName !12612628,Engineering Systems Analyst,"Engineering Systems Analyst Dorking Surrey Salary ****K Our client is located in Dorking, Surrey and are looking for Engineering Systems Analyst our client provides specialist software development Keywords Mathematical Modelling, Risk Analysis, System Modelling, Optimisation, MISER, PIONEEER Engineering Systems Analyst Dorking Surrey Salary ****K","Dorking, Surrey, Surrey",Dorking,,permanent,Gregory Martin International,Engineering Jobs,20000 - 30000/annum 20-30K,25000,cv-library.co.uk

REAL WORLD

PREDIÇÃO DE SALÁRIOSDADO UM ANÚNCIO DE EMPREGO, PREDIZER O SALÁRIO CORRESPONDENTE

Id, Title, FullDescription, LocationRaw, LocationNormalized, ContractType, ContractTime, Company, Category, SalaryRaw, SalaryNormalized, SourceName !12612628,Engineering Systems Analyst,"Engineering Systems Analyst Dorking Surrey Salary ****K Our client is located in Dorking, Surrey and are looking for Engineering Systems Analyst our client provides specialist software development Keywords Mathematical Modelling, Risk Analysis, System Modelling, Optimisation, MISER, PIONEEER Engineering Systems Analyst Dorking Surrey Salary ****K","Dorking, Surrey, Surrey",Dorking,,permanent,Gregory Martin International,Engineering Jobs,20000 - 30000/annum 20-30K,25000,cv-library.co.uk

10.126631103850338 | category=engineering_jobs |Title engineering systems analyst |Description engineering systems analyst dorking surrey our client is located in dorking surrey and are looking for engineering systems analyst ... |Location dorking |Type permanent |Company gregory_martin_international

TREINANDO O MODELOVW -D DATA.TRAIN -C -K --PASSES 20 -F MODEL.VW

REAL WORLD

RESULTADOS

PREDIÇÃO DE SALÁRIOS

FEATURE EXTRACTION vw-varinfo identifica as features mais relevantes

REAL WORLD

RESULTADOS

PREDIÇÃO DE SALÁRIOS

FEATURE EXTRACTION vw-varinfo identifica as features mais relevantesTop 10 positive features: Type^contract +3.2116 100.00% Type^permanent +3.1510 98.11% Type^null +3.1398 97.76% ^category=it_jobs +1.2241 38.12% ^category=legal_jobs +1.2049 37.52% ^category=energy_oil_gas_jobs +1.2009 37.39% ^category=accounting_finance_jobs +1.1791 36.71% ^category=engineering_jobs +1.1660 36.31% ^category=other_general_jobs +1.1590 36.09% ^category=trade_construction_jobs +1.1474 35.72%

REAL WORLD

RESULTADOS

PREDIÇÃO DE SALÁRIOS

FEATURE EXTRACTION vw-varinfo identifica as features mais relevantes

Top 10 positive features: Type^contract +3.2116 100.00% Type^permanent +3.1510 98.11% Type^null +3.1398 97.76% ^category=it_jobs +1.2241 38.12% ^category=legal_jobs +1.2049 37.52% ^category=energy_oil_gas_jobs +1.2009 37.39% ^category=accounting_finance_jobs +1.1791 36.71% ^category=engineering_jobs +1.1660 36.31% ^category=other_general_jobs +1.1590 36.09% ^category=trade_construction_jobs +1.1474 35.72%

Top 10 negative features: Title^apprentice -0.6025 -18.76% Company^source_recruitment -0.4593 -14.30% Company^metia -0.4255 -13.25% Company^bv_recruitment -0.4158 -12.95% Description^koharaeurolondon -0.3951 -12.30% Company^remit_group -0.3856 -12.01% Company^bt -0.3696 -11.51% Company^qa_apprenticeships -0.3627 -11.29% Description^reablemenet -0.3589 -11.17% Description^stuttgart -0.3588 -11.17% Description^carlyle -0.3576 -11.13%

2 : FILTRAGEM COLABORATIVA

PREDIÇÃO DE NOTAS PARA FILMESDADO O HISTÓRICO DE TODOS OS USUÁRIOS,

PREVER A NOTA PARA FILMES NÃO VISTOS

REAL WORLD

REAL WORLD

Cliente: E-commerce de filmes Motivação:

• personalizar a experiência do usuário • recomendar filmes interessantes

Background: • universo de filmes existentes é muito grande

PREDIÇÃO DE NOTAS PARA FILMES

DADO O HISTÓRICO DE TODOS OS USUÁRIOS, PREVER A NOTA PARA FILMES NÃO VISTOS

REAL WORLD

Cliente: E-commerce de filmes Motivação:

• personalizar a experiência do usuário • recomendar filmes interessantes

Background: • universo de filmes existentes é muito grande

PREDIÇÃO DE NOTAS PARA FILMES

SOLUÇÃO: CRIAR UM MODELO BASEADO EM DECOMPOSIÇÃO DE MATRIZES

DADO O HISTÓRICO DE TODOS OS USUÁRIOS, PREVER A NOTA PARA FILMES NÃO VISTOS

DECOMPOSIÇÃO DE MATRIZESAssociação usuário-item pode ser representada como uma matriz esparsa

DECOMPOSIÇÃO DE MATRIZESDado um volume suficiente de dados, padrões começam a surgir

DECOMPOSIÇÃO DE MATRIZES"Quem gosta disso gosta também daquilo" = fatores latentes.

Decomposição de matrizes aproxima através de K fatores latentes

• Descobrir fatores latentes • Utilizar as matrizes X e Y para aproximar a nota de items não

vistos = preencher as colunas vazias de P • Resumo: dado P, aprender X e Y

REAL WORLD

Dados de Entrada: 5.5 milhões de reviews de filmes da amazon.com

PREDIÇÃO DE NOTAS PARA FILMES

EXEMPLO: !product/productId: B0001Z3TLQ product/title: By the Sea [VHS] product/price: unknown review/userId: A3421LTBSWSPXK review/profileName: KML review/helpfulness: 5/6 review/score: 4.0 review/time: 1089417600 review/summary: A romantic zen baseball comedy review/text: When you hear folks say that they don't make 'em like that anymore, they might be talking about "BY THE SEA". This is a very cool story about a young Cuban girl searching for idenity who stumbles into a coastal resort kitchen gig with a zen motorcycle maintenance man, ...

REAL WORLD

Dados de Entrada: 5.5 milhões de reviews de filmes da amazon.com

PREDIÇÃO DE NOTAS PARA FILMES

EXEMPLO: !product/productId: B0001Z3TLQ product/title: By the Sea [VHS] product/price: unknown review/userId: A3421LTBSWSPXK review/profileName: KML review/helpfulness: 5/6 review/score: 4.0 review/time: 1089417600 review/summary: A romantic zen baseball comedy review/text: When you hear folks say that they don't make 'em like that anymore, they might be talking about "BY THE SEA". This is a very cool story about a young Cuban girl searching for idenity who stumbles into a coastal resort kitchen gig with a zen motorcycle maintenance man, ...

MODELAGEM: !4.0 | USER A3421LTBSWSPXK |ITEM B0001Z3TLQ 5.0 | USER A1B8X446EXNZBF |ITEM B0001Z3TLQ 5.0 | USER A3SVRX0U6ZGAXL |ITEM B0001Z3TLQ 1.0 | USER A3MJIXDIQT5S16 |ITEM B001GE2CDM 3.0 | USER A2FSEZ7KWU3MIY |ITEM B004H9ZQ68 1.0 | USER A1QAULZ03WCAEO |ITEM B004H9ZQ68 5.0 | USER A11ES13Y64903L |ITEM B000XUOLVQ 4.0 | USER AZ9JWGE1UGKZA |ITEM B000XUOLVQ 4.0 | USER A2HUDDEJCGH18R |ITEM B000XUOLVQ 5.0 | USER AJO845T34ONT0 |ITEM B000XUOLVQ …

REAL WORLD

Dados de Entrada: 5.5 milhões de reviews de filmes da amazon.com

PREDIÇÃO DE NOTAS PARA FILMES

DECOMPOSIÇÃO DE MATRIZES: !

VW -Q UI -D MOVIES.TRAIN --RANK 10 -F MOVIES.VW --L2 0.001 --LEARNING_RATE 0.015 --PASSES 20 --DECAY_LEARNING_RATE 0.97TIME --

POWER_T 0 -C

REAL WORLD

RESULTADOS

PREDIÇÃO DE NOTAS PARA FILMES

REAL WORLD

RESULTADOS

PREDIÇÃO DE NOTAS PARA FILMES

3 : CLUSTERING

SEGMENTAÇÃO DE USUÁRIOSDADA UMA BASE DE NOTÍCIAS E UM CONJUNTO

DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

REAL WORLD

REAL WORLD

Cliente: Portal de Notícias Motivação:

• conhecer o perfil dos usuários • personalizar ofertas, notícias e ações

Background: • grande base de notícias • milhões de usuários diariamente

SEGMENTAÇÃO DE USUÁRIOSDADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

REAL WORLD

Cliente: Portal de Notícias Motivação:

• conhecer o perfil dos usuários • personalizar ofertas, notícias e ações

Background: • grande base de notícias • milhões de usuários diariamente

SEGMENTAÇÃO DE USUÁRIOSDADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

DIFERENCIAL !!

Interpretação de texto livre

REAL WORLD

Cliente: Portal de Notícias Motivação:

• conhecer o perfil dos usuários • personalizar ofertas, notícias e ações

Background: • grande base de notícias • milhões de usuários diariamente

SEGMENTAÇÃO DE USUÁRIOSDADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

SOLUÇÃO: CRIAR UM MODELO DE CLUSTERING

DIFERENCIAL !!

Interpretação de texto livre

LATENT DIRICHLET ALLOCATION (LDA)

http://cacm.acm.org/magazines/2012/4/147361-probabilistic-topic-models/fulltext

LATENT DIRICHLET ALLOCATION (LDA)

http://cacm.acm.org/magazines/2012/4/147361-probabilistic-topic-models/fulltext

Gen

ética

Evol

ução

Neu

rolo

giaCo

mpu

taçã

o

LATENT DIRICHLET ALLOCATION (LDA)

http://cacm.acm.org/magazines/2012/4/147361-probabilistic-topic-models/fulltext

Gen

ética

Evol

ução

Neu

rolo

giaCo

mpu

taçã

o

LATENT DIRICHLET ALLOCATION (LDA)

http://cacm.acm.org/magazines/2012/4/147361-probabilistic-topic-models/fulltext

No VW: vw -lda N … onde N = número de tópicos

Gen

ética

Evol

ução

Neu

rolo

giaCo

mpu

taçã

o

ANÁLISE SEGMENTADA

ANÁLISE SEGMENTADA

Usuário

ANÁLISE SEGMENTADA

Conteúdos semelhantes Quem viu também viu

!Pessoas com seu perfil viram

Você costuma ver Seu grupo também vê

Usuário

Perfil semelhante

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

DASHBOARD

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

DASHBOARD

API RECOMENDAÇÃO PERSONALIZADA

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

CLUSTERING

Comportamento de Grupo Ações Individuais Filtragem Colaborativa

DASHBOARD

API RECOMENDAÇÃO PERSONALIZADA

API ADSCampanhas e anúncios

personalizados

Conteúdo Notícias, Produtos

Eventos Clicks, Views

CAPTURA DE DADOS

DADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

REAL WORLD

SEGMENTAÇÃO DE USUÁRIOS

DADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

3,2 milhões de Usuários 450.000 notícias 30 tópicos

REAL WORLD

SEGMENTAÇÃO DE USUÁRIOS

DADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

3,2 milhões de Usuários 450.000 notícias 30 tópicos

REAL WORLD

SEGMENTAÇÃO DE USUÁRIOS

DADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

3,2 milhões de Usuários 450.000 notícias 30 tópicos

REAL WORLD

SEGMENTAÇÃO DE USUÁRIOS

DADA UMA BASE DE NOTÍCIAS E UM CONJUNTO DE USUÁRIOS, DESCOBRIR PERFIS EXISTENTES

3,2 milhões de Usuários 450.000 notícias 30 tópicos

REAL WORLD

SEGMENTAÇÃO DE USUÁRIOS1. Trânsito na Marginal do

Tietê é liberado após acidente!

2. Menino cai de brinquedo e morre em parque de diversões em SP!

3. Um morre e três ficam feridos após assalto à residência na zona sul!

4. Incêndio mata criança de 4 anos e deixa dois feridos em SP !

5. Criança morre em acidente na Raposo Tavares

CONCLUSÃOMACHINE LEARNING NO MUNDO REAL

com VOWPAL WABBIT

CONCLUSÃOMACHINE LEARNING NO MUNDO REAL

com VOWPAL WABBIT

Excelente plataforma para problemas de

aprendizado de máquina em larga

escala

CONCLUSÃOMACHINE LEARNING NO MUNDO REAL

com VOWPAL WABBIT

Excelente plataforma para problemas de

aprendizado de máquina em larga

escala

Regressão Filtragem Colaborativa

Clustering

CONCLUSÃOMACHINE LEARNING NO MUNDO REAL

com VOWPAL WABBIT

Excelente plataforma para problemas de

aprendizado de máquina em larga

escala

Regressão Filtragem Colaborativa

Clustering

https://github.com/JohnLangford/vowpal_wabbit

CONCLUSÃOMACHINE LEARNING NO MUNDO REAL

com VOWPAL WABBIT

Excelente plataforma para problemas de

aprendizado de máquina em larga

escala

Regressão Filtragem Colaborativa

Clustering

https://github.com/JohnLangford/vowpal_wabbit

TO THE INFINITE AND BEYOND: Predição de sequências, Não-linearidade, Features quadráticas, Neural networks,

Modelos não supervisionados

www. !

.com