O documento descreve o Vowpal Wabbit (VW), uma ferramenta de machine learning capaz de analisar grandes volumes de dados e extrair padrões através de classificação, regressão e descoberta de padrões. O VW usa algoritmos como gradiente estocástico para aprender modelos preditivos a partir de exemplos de treinamento contendo características e resultados esperados. Ele permite modelagem flexível de dados de entrada para treinamento e predição de modelos.
2. Definição
O Vowpal Wabbit (VW) é uma ferramenta para criação de modelos de Machine
Learningcapazes de extrair informações e padrões de grandes volumes de dados.
O VW pode ser usado para resolver problemas de Big Data rapidamente através de cases reais
através de problemas que envolvem classificação de dados, modelos de regressão e descoberta de padrões.
3. Principal developer of VW
http://research.yahoo.com http:// research.microsoft.com
John Langford
jl@hunch.net
jcl@microsoft.com
5. O que é
Implementação de diversos algoritmos de machine learning.
• FEATURES – Subconjunto de dados com características relevantes.
• LABEL – Resultado esperado (o que se deseja prever)
• Job Description – Dado um conjunto de features, calcule (com certa precisão) o label correspondente.
• Entrada do VW – Textual (qualquer palavra pode ser utilizada como feature)
• Exemplo – nota, curso, professor,...
9. Aprendendo modelos
VW aproxima F da forma linear
F = C1*FEATURE1+C2*FEATURE2+C3*FEATURE3+...+Cn*FEATUREn
É basicamente um
somatório
dos pesos
multiplicados pelos
valores das features
11. Stochastic Gradient Descent
É um algoritmo que busca aprender dado um conjunto de exemplos baseado no valor dos pesos correspondentes para as
features.
Nesse caso, necessitamos de um modelo de treino (Aprendizagem Supervisionada). É um
aprendizado de dados interativo.
Dentro da inteligência artificial, programas estocásticos trabalham usando métodos probabilísticos para
solucionar problemas, como em redes neurais estocásticas, otimização estocástica e algoritmos genéticos.
Um problema pode ser estocástico em si mesmo, como no planejamento sob incerteza.
12. O treinamento
Partindo do modelo SUPERVISIONADO, passasse uma infinidade de exemplos com
features e labels para que o sistema possa identificá-los.
Exemplo:
Job Description: Tempo de compra para novos cadastros
Features: Estado, DiaCadastro, MesCadastro, Idade, Sexo, ...
Label: QtdeDiasAtéCompra
13. Modelo Preditivo
Modelagem:
O VW possui um modelo de entrada bastante flexível
[Label] [Importance [Tag]]|Namespace Features |Namespace Feature ....
Onde:
Namespace = String[:Value] (Pacotes de Features relacionadas)
Features = (String[:Value])*
14. Distribuição dos dados de entrada
2.025305865 |dados_cliente data_cadastro=30-09-2013 dia_cadastro:30.0
mes_cadastro=Setembro idade:24 cidade=passo_fundo estado=rs
data_nascimento=1990-07-02 recebe_mail_mkt:1.0 |dados_compras
data_primeira_compra=14-01-2014
quantidade_free_antes_primeira_compra:4.0
http://hunch.net/~vw/validate.html
15. Distribuição dos dados de entrada
2.025305865 |dados_cliente data_cadastro=30-09-2013 dia_cadastro:30.0
mes_cadastro=Setembro idade:24 cidade=passo_fundo estado=rs
data_nascimento=1990-07-02 recebe_mail_mkt:1.0 |dados_compras
data_primeira_compra=14-01-2014
quantidade_free_antes_primeira_compra:4.0
http://hunch.net/~vw/validate.html
16. Como otimizar essa grande quantidade de parâmetros?
Como converter esses números em palavras?
Através da função hash, pega-se a String e faz um hash dela, e a utiliza como entrada na função
de otimização.
Isso é particularmente útil para os algoritmos de aprendizagem que consomem grandes
quantidades de dados. Assim aumenta a ESCALABILIDADE