Adicionando Escalabilidade ao Framework de Recomendação Idealize
description
Transcript of Adicionando Escalabilidade ao Framework de Recomendação Idealize
![Page 1: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/1.jpg)
Adicionando Escalabilidade ao Framework de Recomendação
IdealizeAlex Amorim Dutra
Orientador: Álvaro R. Pereira Jr. Co-Orientador: Felipe Martins Melo
![Page 2: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/2.jpg)
Muitas vezes desperdiçamos muito tempo tentando encontrar conteúdo relevante.
Os dados na WEB tendem a crescer a cada dia.
Sistemas de recomendação levam a seus utilizadores informações relevantes.
Um sistema de recomendação
![Page 3: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/3.jpg)
Processamento de dados de forma distribuída.
Demanda de processamento de dados de acordo com a necessidade do cliente.
Adicionar máquinas para processar os dados à medida que estes aumentarem.
Escalabilidade
![Page 4: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/4.jpg)
Crescente ocorrência de artigos nas conferências relacionadas como KDD e CIKM.
Criação de uma nova conferência pela ACM, a RecSys (ACM Conference on Recommender Systems).
Crescente interesse na área acadêmica
![Page 5: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/5.jpg)
Imagens (photoree.com) Músicas (lastfm.com) Vídeos (youtube.com) Filmes (movielens.umn.edu) Produtos (amazon.com) Notícias (idgnow.com.br) E diversos outros itens
Podemos recomendar
![Page 6: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/6.jpg)
Notícias – idgnow.com.br
![Page 7: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/7.jpg)
Notícias – idgnow.com.br
![Page 8: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/8.jpg)
Explícita Dados fornecidos pelo usuário.
Ex. : crítica ou questionários.
ImplícitaComportamento ao utilizar a aplicação – dados de uso (objetos comprados, vistos, baixados, clicados).
Inferência Aprender o perfil ou comportamento do usuário.
Formas para coletar dados do usuário
![Page 9: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/9.jpg)
Top N
Baseada em Conteúdo
Filtragem Colaborativa
Baseada em Dados de Uso
Híbrida
Abordagens de sistemas de recomendação
![Page 10: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/10.jpg)
Mais lidos, vendidos, baixados, apontados ou citados.
Uma das técnicas de recomendação mais vista hoje em dia.
Não oferece conteúdo para usuários específicos.
Top N
![Page 11: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/11.jpg)
A recomendação é feita comparando conteúdo que o usuário já acessou, recomendando itens similares.
Recomendação Baseada em conteúdo
![Page 12: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/12.jpg)
Perfil X Item: recomendar itens classificados no perfil do usuário.
Ex.: Livros com assuntos definidos no perfil do usuário.
Item X Item: recomendar itens similares a itens relacionados ao usuário.
Ex.: Outros CDs do mesmo artista.
Recomendação Baseada em conteúdo
![Page 13: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/13.jpg)
Problemas
Um novo usuário não possui itens classificados.
Usuário não irá receber conteúdo muito diferente do que já foi visto.
Recomendação Baseada em conteúdo
![Page 14: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/14.jpg)
É o processo de filtragem por informação ou padrões usando técnicas que envolvem colaboração entre múltiplos agentes.
Filtragem Colaborativa
![Page 15: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/15.jpg)
Usuário X Usuário: recomendar itens relacionados a pessoas com características semelhantes (atributos ou preferências).
Filtragem Colaborativa
![Page 16: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/16.jpg)
Filtragem Colaborativa
![Page 17: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/17.jpg)
Filtragem Colaborativa
![Page 18: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/18.jpg)
Filtragem Colaborativa
![Page 19: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/19.jpg)
Problemas
Um novo usuário não pertence a nenhum grupo.
Novos itens são adicionados o tempo todo e ainda não foram avaliados.
Filtragem Colaborativa
![Page 20: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/20.jpg)
A recomendação é realizada analisando as ações de um usuário em determinada aplicação.
Exemplo: A sequência de links que determinado usuário clicou ao navegar em um site de compras.
Baseada em dados de uso
![Page 21: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/21.jpg)
Combinação entre as diversas abordagens de recomendação, desta forma uma abordagem supre as falhas das outras.
Híbrida
![Page 22: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/22.jpg)
Framework de Recomendação Idealize (IRF) e
Aplicação de recomendação baseada em conteúdo desenvolvida utilizando o IRF
![Page 23: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/23.jpg)
Um framework provê uma solução para uma família de problemas semelhantes.
Um conjunto de classes e interfaces que mostra como decompor a família de problemas.
Objetivo de um framework
![Page 24: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/24.jpg)
O IRF é composto por três setores, sendo eles: Input, Cache e Batch.
Estes setores são utilizados em três máquinas, cada uma instanciada com um setor correspondente.
Descrição do IRF
![Page 25: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/25.jpg)
Este setor é destinado a armazenar as recomendações já calculadas.
Fornece respostas rápidas aos pedidos de recomendações que chegam a sua fachada.
Setor de Cache
![Page 26: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/26.jpg)
Este setor é responsável por executar recomendações em lote e processar os feedbacks.
Este setor é destinado a ser executado em um cluster de modo a ser capaz de lidar com a enorme quantidade.
Setor de Batch
![Page 27: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/27.jpg)
Através deste setor o usuário pode fazer operações tais como inserção, remoção e atualização sobre os itens e os dados do usuário.
Foi criado a fim de dissociar a produção de recomendações e feedbacks das tarefas de gerenciamento das bases de dados.
Setor de Input
![Page 28: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/28.jpg)
Modelo de Produção
![Page 29: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/29.jpg)
BaseCache, CacheObserver, Constants, IdealizeExceptions,
IdelizeFacades, PropertiesLoader, IdealizeLogger
Hot SpotsInstantiatorWorker, IdealizeDataModel, BaseBean,
InputInterpreter, Controller, DataManipulator, BatchProcessors, RecommendationSerializer,
IdealizeRecommender, BaseStorable
classes.properties
Principais Componentes do IRF
![Page 30: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/30.jpg)
Arquitetura do Setor de Batch
![Page 31: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/31.jpg)
Execução da Aplicação de Recomendação Baseada em Conteúdo
![Page 32: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/32.jpg)
Padrões de projeto.
Tecnologia RMI provida pela linguagem Java.
Sistemas de recomendação e métodos de recomendação.
Início dos estudos sobre Hadoop e sistemas escaláveis.
Estudos realizados para desenvolvimento
das aplicações
![Page 33: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/33.jpg)
Implementação da arquitetura escalável no IRF.
Desenvolver uma aplicação que utilize a nova arquitetura escalável, sendo esta aplicação de qualquer abordagem de recomendação.
Trabalhos Futuros
![Page 34: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/34.jpg)
CronogramaAno 2011
Tarefa a ser realizada
Janeiro Estudo do Hadoop e sistemas escaláveisImplementação da arquitetura escalável no IRF
Fevereiro Implementação da arquitetura escalável no IRF
Março Implementação de uma aplicação de recomendação escalável sobre o IRF
Abril Realização de testes e correções
Maio Escrever monografia II
Junho Escrever monografia IIApresentar
![Page 35: Adicionando Escalabilidade ao Framework de Recomendação Idealize](https://reader034.fdocuments.net/reader034/viewer/2022051421/56816030550346895dcf49cf/html5/thumbnails/35.jpg)
Perguntas?