SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Replace
with icon
100x100
Liferay e
Machine Learning
O melhor de dois mundos!
Replace
with icon
100x100
4 anos em Dublin
>12 anos de experiência em web dev
~6 anos Liferay
Filipe Afonso
Lead Consultant, Liferay International
@FilipeAfonso | in/filipeafonso
Replace
with icon
100x100
● Introdução
● 1º Caso de Uso - Recomendador
● 2º Caso de Uso - Reconhecimento de Imagem
● Conclusão
Liferay e Machine Learning
Agenda
Bem vindos à era da Inteligência Artificial!
Replace
with icon
100x100
Machine Learning - Casos de uso Liferay
Categorizar, Etiquetar, Agrupar utilizadores, Alertas em resposta a eventos, ...
K-nearest neighbors, Naive bayes, Logistic regression
Agrupar utilizadores (clustering) em segmentos e aplicar conteúdo personalizado,
criar novos grupos de utilizadores (desconhecidos), ...
K-means, Hidden Markov Model
Reconhecimento de imagens, organizar documentos e imagens automaticamente,
categorização automática, ...
Redes Neuronais
Replace
with icon
100x100
Machine Learning - Casos de uso Liferay
Categorizar e criar alertas
Classificação
Perceber os nossos dados
Agrupar/Cluster de dados
Recomendação
Adivinhar o melhor para o utilizador
Classificação por língua
Processamento de Linguagem Natural
Replace
with icon
100x100
● Introdução
● 1º Caso de Uso - Recomendador
● 2º Caso de Uso - Reconhecimento de Imagem
● Conclusão
Liferay e Machine Learning
Agenda
Replace
with icon
100x100
Replace
with icon
100x100
Recomendador - Como funciona?
Replace
with icon
100x100
Recomendador - Como funciona?
Replace
with icon
100x100
Recomendador - Como funciona?
Replace
with icon
100x100
Recomendador - Do que precisamos?
Uma função de avaliação de semelhança F()
Um algoritmo para comparação de utilizadores utilizando F()
O universo de dados em análise
Replace
with icon
100x100
Recomendador - Calcular a Semelhança
Distância Euclidiana
Replace
with icon
100x100
Recomendador - Calcular a Semelhança
Cosine and Pearson
Replace
with icon
100x100
Recomendador - Calcular a Semelhança
Distância de Hamming
Replace
with icon
100x100
Recomendador - Calcular a Semelhança
Distância de Jaccard
Replace
with icon
100x100
Recomendador - Algoritmo
Replace
with icon
100x100
Recomendador - Algoritmo
Replace
with icon
100x100
Recomendador - Algoritmo
Replace
with icon
100x100
Recomendador - Algoritmo
Replace
with icon
100x100
Recomendador - Mais ideias a explorar
Item-based VS User-based
Replace
with icon
100x100
Recomendador - Onde começar?
Será necessário:
● Um serviço para obter os dados
● O recomendador (~15 linhas de código em Scala)
● Um widget para apresentar as recomendações
https://github.com/roclas/simple_liferay_recommender
Replace
with icon
100x100
● Introdução
● 1º Caso de Uso - Recomendador
● 2º Caso de Uso - Reconhecimento de Imagem
● Conclusão
Liferay e Machine Learning
Agenda
Problema a resolver
Replace
with icon
100x100
Contexto: Liferay com milhares de imagens diferentes
Problema: Categorizar manualmente cada imagem!
Problema a resolver
Será que não temos uma abordagem mais interessante?
Replace
with icon
100x100
● Liferay é uma óptima framework para integrações
● Liferay é fácilmente customizável (GO OSGi!)
● IA pode reconhecer imagens automaticamente
Abordagem Técnica
O que sabemos?
Replace
with icon
100x100
1. Utilizar um sistema IA próprio
○ Requer uma rede neuronal treinada
○ Mais esforço envolvido
2. Utilizar um serviço externo
○ Mais fácil e rápido de implementar mas…
○ Dependência de um serviço externo
○ Opções gratuitas são limitadas
Abordagem Técnica
Opções
Replace
with icon
100x100
3. Onde customizar o Liferay
○ Process batch para todas as imagens
○ Antes/Depois de carregar uma imagem (Documents&Media)
○ Custom application/widget
○ Mobile App (E.g. Liferay Screens)
Abordagem Técnica
Opções
Replace
with icon
100x100
Serviço externo para reconhecimento de imagem: Clarifai
● Menos esforço e resultados mais rápido
● https://www.clarifai.com
Customização no Liferay: Model Listeners
● Fácil implementação
● Aplicado a todas as imagens carregadas
● Bonus: Funciona com o Liferay Sync
Abordagem Técnica
Escolha
Replace
with icon
100x100
● Utiliza uma Deep Neural Network
● Oferece vários modelos, cada um treinado com dados específicos
● Modelo recebe uma imagem (input) e produz uma previsão (output)
Machine Learning
Clarifai
Replace
with icon
100x100
● Observa eventos de persistência em modelos de dados
○ Criar, Remover, Actualizar
● Executa uma acção como resposta
○ Antes ou depois
● Documentação
○ https://github.com/liferay/liferay-blade-samples
○ https://dev.liferay.com/
Liferay CE / DXP
Model Listener
Replace
with icon
100x100
Replace
with icon
100x100
● Outras APIs no mercado
○ Google Vision (https://cloud.google.com/vision/)
○ Amazon Rekognition (https://aws.amazon.com/rekognition/)
● Criar um módulo próprio para reconhecimento de imagens
○ Tensorflow (https://github.com/tensorflow)
● Organizar imagens em pastas automáticamente
Outras abordagens e melhorias
Replace
with icon
100x100
● Introdução
● 1º Caso de Uso - Recomendador
● 2º Caso de Uso - Reconhecimento de Imagem
● Conclusão
Liferay e Machine Learning
Agenda
Replace
with icon
100x100
● A Aprendizagem Automática pode ser fácil de utilizar
○ Está cá, é o presente e está pronta a ser usada
● Utilizar ML pode ajudar a resolver problemas reais e complexos
● Liferay DXP/CE oferece um contexto fantástico para ML
● Melhor UX + Personalização = Engagement
O que foi alcançado?
Replace
with icon
100x100
● Liferay DXP/CE é uma excelente ferramenta de integração
● Customizar Liferay é algo facilmente alcançável
● Não precisamos de ser experts em IA para a utilizar
● Criem e Partilhem os vossos próprios módulos de AI para Liferay
Conclusões e Take Aways
QUIZ TIME!
?
?
?
?
?
?
?
? ?
?
? ?
?
??
??
Replace
with icon
100x100
1. Quantos produtos
temos na Liferay?
Analytics Cloud DXP Commerce DXP
Cloud
Replace
with icon
100x100
2. Em que cidade foi a
última Liferay Devcon?
Replace
with icon
100x100
3. Onde podes aprender
mais sobre Liferay?
https://university.liferay.com/
Uma nova ferramenta de aprendizagem, ao
teu ritmo, de suporte a todos os
utilizadores de Liferay DXP/CE, no teu
desktop ou on-the-go.
Com o Liferay University Passport, tens
acesso a todos os cursos. Sabe mais em
https://getpassport.liferay.com/
Liferay University
Select and copy / paste this object
Replace
with icon
100x100
Muito Obrigado!
Filipe Afonso

Mais conteúdo relacionado

Semelhante a Liferay Portugal User Group Meetup 4 - Liferay and Machine Learning

OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014
Marcio Marchini
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
Thiago Rondon
 
Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti Patterns
Herval Freire
 

Semelhante a Liferay Portugal User Group Meetup 4 - Liferay and Machine Learning (20)

TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passosTheDevConf 2016 - Análise efetiva de microservices em 3 passos
TheDevConf 2016 - Análise efetiva de microservices em 3 passos
 
Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces Android things, machine learning e maquinas de doces
Android things, machine learning e maquinas de doces
 
Deep Learning além do reconhecimento de gatos
Deep Learning além do reconhecimento de gatosDeep Learning além do reconhecimento de gatos
Deep Learning além do reconhecimento de gatos
 
AI, Machine Learning e BigData aplicado aos E-commerces
AI, Machine Learning e BigData aplicado aos E-commercesAI, Machine Learning e BigData aplicado aos E-commerces
AI, Machine Learning e BigData aplicado aos E-commerces
 
Como construir uma boa realidade aumentada
Como construir uma boa realidade aumentadaComo construir uma boa realidade aumentada
Como construir uma boa realidade aumentada
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014OmbrosDeGigantes-TDC2014
OmbrosDeGigantes-TDC2014
 
Democratizando o Deep Learning. E depois ? | Pierre GUILLOU
Democratizando o Deep Learning. E depois ? | Pierre GUILLOUDemocratizando o Deep Learning. E depois ? | Pierre GUILLOU
Democratizando o Deep Learning. E depois ? | Pierre GUILLOU
 
(curso) Inteligência Artificial nos negócios
(curso) Inteligência Artificial nos negócios(curso) Inteligência Artificial nos negócios
(curso) Inteligência Artificial nos negócios
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Padrões De Projeto e Anti Patterns
Padrões De Projeto e Anti PatternsPadrões De Projeto e Anti Patterns
Padrões De Projeto e Anti Patterns
 
Challenges 2013
Challenges 2013Challenges 2013
Challenges 2013
 
Palestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de DadosPalestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de Dados
 
Novas Fronteiras
Novas FronteirasNovas Fronteiras
Novas Fronteiras
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Usabilidade Simples
Usabilidade SimplesUsabilidade Simples
Usabilidade Simples
 
Aprendizado de máquina
Aprendizado de máquinaAprendizado de máquina
Aprendizado de máquina
 

Liferay Portugal User Group Meetup 4 - Liferay and Machine Learning