SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Sistemas de Recomenda¸c˜ao e Evolu¸c˜ao de
Software
Leandro Soriano Ferreira
Universidade Federal da Bahia
sfohart@gmail.com
16 de julho de 2013
1 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Overview
1 Motiva¸c˜ao
2 Sistemas de Recomenda¸c˜ao
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem por Conte´udo
Filtragem Colaborativa
Filtragem H´ıbrida
3 Aplicabilidade
Reuso de Componentes
2 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
3 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
4 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini¸c˜ao - Sistema de Recomenda¸c˜ao
[Recommendation] systems are software applications that aim to
support users in their decision-making while interacting with large
information spaces. They recommend items of interest to users
based on preferences they have expressed, either explicitly or
implicitly.a
a
Robillard, Walker e Zimmermann, “Recommendation systems for software
engineering”.
5 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini¸c˜ao - Sistema de Recomenda¸c˜ao
[Recommendation] systems help overcome the information
overload problem by exposing users to the most interesting items,
and by offering novelty, surprise, and relevance.a
a
Robillard, Walker e Zimmermann, “Recommendation systems for software
engineering”.
6 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini¸c˜ao - Sistemas de Recomenda¸c˜ao para Engenharia de
Software
An [Recommendation Sistem for Software Engineering - RSSE] is a
software application that provides information items estimated to
be valuable for a software engineering task in a given context.a
a
Robillard, Walker e Zimmermann, “Recommendation systems for software
engineering”.
7 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Coleta Impl´ıcita
Figura: Google Play - Meus Aplicativos
8 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Coleta Expl´ıcita
Figura: Formul´ario de Avalia¸c˜ao do Consumidor - Buscap´e
9 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem por Conte´udo
O sistema aprende a recomendar itens que s˜ao similares `aqueles
preteridos pelo usu´ario no passado. A similaridade dos ´ıtens ´e
calculada baseada em caracter´ısticas associadas aos ´ıtens
comparados. Por exemplo, se um usu´ario avaliou positivamente
um filme que se enquadra no gˆenero de com´edia, o sistema pode
aprender a recomendar outros itens deste gˆenero.1
1
Kantor et al., “Recommender systems handbook”.
10 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem por Conte´udo
Vantagens
Independˆencia de Usu´ario: Exploram apenas as avalia¸c˜oes
fornecidas pelo usu´ario ativo para construir seu pr´oprio perfila
Transparˆencia: Explica¸c˜oes sobre como o sistema de
recomenda¸c˜ao trabalha podem ser fornecidas explicitamente
listando as caracter´ısticas do conte´udo ou descri¸c˜oes que
fizeram um ´ıtem estar presente na lista de recomenda¸c˜oes.b
Novos ´Itens: S˜ao capazes de recomendar itens ainda n˜ao
avaliados por qualquer usu´arioc
a
Kantor et al., “Recommender systems handbook”.
b
Ibid.
c
Ibid.
11 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem por Conte´udo
Desantagens
An´alise Limitada de Conteudo: Nenhum sistema desse tipo
pode fornecer recomenda¸c˜oes adequadas se o conte´udo
analisado n˜ao cont´em informa¸c˜ao suficiente para diferenciar os
itens que o usu´ario gosta daqueles que ele n˜ao gostaa
a
Kantor et al., “Recommender systems handbook”.
12 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem por Conte´udo
Desantagens
Superespecializa¸c˜ao: ”Problema da serendipidadea” para
destacar a tendˆencia destes sistemas de produzir
recomenda¸c˜oes com um limitado grau de novidadeb
Novos Usu´arios: Muitas recomenda¸c˜oes s˜ao necess´arias
antes que o sistema possa realmente entender as preferˆencias
do usu´ario e fornecer recomenda¸c˜oes precisas.c
a
Faculdade de fazer descobertas afortunadas por acidente.
b
Kantor et al., “Recommender systems handbook”.
c
Ibid.
13 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem Colaborativa
O sistema recomenda ao usu´ario ativo itens relacionados a outros
usu´arios com gostos semelhantes. A similaridade de gostos entre
dois usu´arios ´e calculada baseado na similaridade do historico de
avalia¸c˜ao daqueles usu´arios.2
2
Kantor et al., “Recommender systems handbook”.
14 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem Colaborativa
Vantagens
Simplicidade de Implementa¸c˜ao: Em sua forma mais
simples, apenas um parˆametro (o n´umero de vizinhos usados
na predi¸c˜ao) necessita de calibra¸c˜ao;a
Estabilidade: S˜ao pouco afetados por constantes adi¸c˜oes de
usu´arios, ´ıtens e avalia¸c˜oes, fato tipicamente observado em
aplica¸c˜oes comerciais de grande porte. Al´em disso, mesmo
que poucas avalia¸c˜oes sejam fornecidas para um novo item,
apenas a similaridade entre este e outros j´a presentes no
sistema precisam ser computadas.b
a
Kantor et al., “Recommender systems handbook”.
b
Ibid.
15 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem Colaborativa
Desantagens
Problema do primeiro avaliador: Quando um novo item
aparece no banco de dados n˜ao existe maneira deste ser
recomendado para o usu´ario at´e que mais informa¸c˜oes sejam
obtidas atrav´es de outro usu´ario.a
Problema de pontua¸c˜oes esparsas: Caso o n´umero de
usu´arios seja pequeno em rela¸c˜ao ao volume de informa¸c˜oes
no sistema existe um grande risco das pontua¸c˜oes tornarem-se
muito esparsas.b
a
Cazella e REATEGUI, “Sistemas de Recomenda¸c˜ao”.
b
Ibid.
16 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem Colaborativa
Desantagens
Similaridade: caso um usu´ario tenha gostos que variam do
normal este ter´a dificuldades para encontrar outros usu´arios
com gostos similares, sendo assim suas recomenda¸c˜oes podem
se tornar pobres.a
a
Cazella e REATEGUI, “Sistemas de Recomenda¸c˜ao”.
17 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtragem H´ıbrida
Filtragem H´ıbrida
Estes sistemas de recomenda¸c˜ao s˜ao baseados na combina¸c˜ao das
t´ecnicas mencionadas anteriormente. Um sistema h´ıbrido que
utiliza as t´ecnicas A e B tenta utilizar as vantagens da t´ecnica A
para corrigir as desvantagens da t´ecnica B. Dadas duas ou mais
t´ecnicas b´asicas, muitas combina¸c˜oes podem ser propostas para
criar um novo sistema h´ıbrido de recomenda¸c˜ao.
18 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb
PARSEWeb3 ´e um exemplo de sistema de recomenda¸c˜ao para
reuso de componentes de software
Auxilia os usu´arios a codificar uma sequˆencia de invoca¸c˜oes
(chamadas) de m´etodos que retornem uma instˆancia de uma
classe Y dada uma instˆancia da classe X
Pede como entrada uma query do tipo X −→ Y
Retorna o trecho de c´odigo fonte com a implementa¸c˜ao de
interesse para o desenvolvedor
Classifica os resultados (sequˆencias de chamadas de
m´etodos) de acordo com a sua frequˆencia de uso e
tamanho (quantidade de linhas de c´odigo)
Utiliza o Google Code Search Engine (desativado)
3
Thummalapenta e Xie, “Parseweb: a programmer assistant for reusing open
source code on the web”.
19 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
Cria um grafo utilizando como n´os os comandos no c´odigo
fonte
As arestas representam o controle de fluxo entre os comandos
(if, for, while, dentre outros)
Cada sequˆencia de chamadas corresponde a um caminho
dentro do grafo
A ordem das chamadas de m´etodo (n´os internos do caminho)
nao interferem no c´alculo da similaridade
Utiliza c´alculo de ”distˆancia”para a similaridade dos caminhos
(caminhos que diferem em at´e x n´os s˜ao considerados
similares)
20 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Tela inicial do PARSEWeb
21 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Entrada de Dados do PARSEWeb
22 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Recomenda¸c˜oes do PARSEWeb
23 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
D´uvidas??? Perguntas???
24 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias I
[1] Satnam Alag e Richard MacManus. Collective intelligence in
action. Manning, 2009.
[2] S´ılvio C´esar Cazella e Eliseo Berni REATEGUI. “Sistemas de
Recomenda¸c˜ao”. Em: XXV Congresso da Sociedade Brasileira
de Computa¸c˜ao. 2005.
[3] Paul B Kantor et al. “Recommender systems handbook”. Em:
(2010).
[4] Daniel Lew et al. Memory-based algorithms. Online. Acessado
em 26 de Fevereiro de 2013. 2013. url:
http://www.cs.carleton.edu/cs_comps/0607/
recommend/recommender/memorybased.html.
25 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias II
[5] Daniel Lew et al. Model-based algorithms. Online. Acessado
em 26 de Fevereiro de 2013. 2013. url:
http://www.cs.carleton.edu/cs_comps/0607/
recommend/recommender/modelbased.html.
[6] Paul Resnick, Hal R Varian e Guest Editors. “Recommender
Systems”. Em: Communications of the ACM 40.3 (1997).
Ed. por Max Chevalier, pp. 56–58. issn: 00010782. doi:
10.1145/245108.245121. arXiv:1202.1112v1. url: http:
//portal.acm.org/citation.cfm?doid=245108.245121.
[7] Martin Robillard, Robert Walker e Thomas Zimmermann.
“Recommendation systems for software engineering”. Em:
Software, IEEE 27.4 (2010), pp. 80–86.
26 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias III
[8] Toby Segaran. Programming collective intelligence: building
smart web 2.0 applications. O’Reilly Media, Incorporated,
2007.
[9] Suresh Thummalapenta e Tao Xie. “Parseweb: a programmer
assistant for reusing open source code on the web”. Em:
Proceedings of the twenty-second IEEE/ACM international
conference on Automated software engineering. ACM. 2007,
pp. 204–213.
27 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
28 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software

Más contenido relacionado

Destacado

ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)
ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)
ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)El Somni de Copèrnic
 
Computer central unit and motherboard
Computer central unit and motherboardComputer central unit and motherboard
Computer central unit and motherboardRita Mui
 
Clase1 au liderazgo sep 2011 nueva
Clase1 au liderazgo  sep 2011 nuevaClase1 au liderazgo  sep 2011 nueva
Clase1 au liderazgo sep 2011 nuevaJavier Juliac
 
Tasca 5 cinc sentits per comunicar nos
Tasca 5 cinc sentits per comunicar nosTasca 5 cinc sentits per comunicar nos
Tasca 5 cinc sentits per comunicar nosvrgandia
 
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)ysariipek
 
Comentários da prova pmsp.doc
Comentários da prova pmsp.docComentários da prova pmsp.doc
Comentários da prova pmsp.docValmir
 
Catalogue 6A
Catalogue 6ACatalogue 6A
Catalogue 6Aloxarte
 
Albert figueras mercadé i pere moret pàmies
Albert figueras mercadé i pere moret pàmiesAlbert figueras mercadé i pere moret pàmies
Albert figueras mercadé i pere moret pàmiesCRP del Tarragonès
 
Tempero Da InteligêNcia Salgados
Tempero Da InteligêNcia   SalgadosTempero Da InteligêNcia   Salgados
Tempero Da InteligêNcia SalgadosClaudia Cozinha
 
10. obrázky projekt
10. obrázky projekt10. obrázky projekt
10. obrázky projektSkola lamac
 

Destacado (19)

ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)
ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)
ÀLbum familiar de R.I.P! - Un Funeral Musical (El Somni de Copèrnic)
 
bunnies
bunniesbunnies
bunnies
 
Computer central unit and motherboard
Computer central unit and motherboardComputer central unit and motherboard
Computer central unit and motherboard
 
Presentación1
Presentación1Presentación1
Presentación1
 
Los 4 fantasticos
Los 4 fantasticosLos 4 fantasticos
Los 4 fantasticos
 
Clase3bus333
Clase3bus333Clase3bus333
Clase3bus333
 
Clase1 au liderazgo sep 2011 nueva
Clase1 au liderazgo  sep 2011 nuevaClase1 au liderazgo  sep 2011 nueva
Clase1 au liderazgo sep 2011 nueva
 
Opening gCS
Opening gCSOpening gCS
Opening gCS
 
Tasca 5 cinc sentits per comunicar nos
Tasca 5 cinc sentits per comunicar nosTasca 5 cinc sentits per comunicar nos
Tasca 5 cinc sentits per comunicar nos
 
O Coelho
O CoelhoO Coelho
O Coelho
 
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)
Direkli i̇lköğretim okulu fotoğraf arşivi (nostalji)
 
Comentários da prova pmsp.doc
Comentários da prova pmsp.docComentários da prova pmsp.doc
Comentários da prova pmsp.doc
 
Aborto
AbortoAborto
Aborto
 
AbóBora Madura
AbóBora MaduraAbóBora Madura
AbóBora Madura
 
TecladoA
TecladoATecladoA
TecladoA
 
Catalogue 6A
Catalogue 6ACatalogue 6A
Catalogue 6A
 
Albert figueras mercadé i pere moret pàmies
Albert figueras mercadé i pere moret pàmiesAlbert figueras mercadé i pere moret pàmies
Albert figueras mercadé i pere moret pàmies
 
Tempero Da InteligêNcia Salgados
Tempero Da InteligêNcia   SalgadosTempero Da InteligêNcia   Salgados
Tempero Da InteligêNcia Salgados
 
10. obrázky projekt
10. obrázky projekt10. obrázky projekt
10. obrázky projekt
 

Similar a Sistemas de Recomendação e Evolução de Software

Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.
Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.
Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.Misael Jr
 
Tcc Parte 1 Desenvolvendo Plano De Trabalho
Tcc   Parte 1  Desenvolvendo Plano De TrabalhoTcc   Parte 1  Desenvolvendo Plano De Trabalho
Tcc Parte 1 Desenvolvendo Plano De TrabalhoJordan Oliveira
 
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Erivan de Sena Ramos
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processocrc1404
 
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de Software
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de SoftwareAlgoritmos de Estimação de Distribuição Aplicados à Estimativa de Software
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de SoftwareJosé Corrêa Viana
 
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"Alejandro Frery
 
Técnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter CybisTécnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter CybisLuiz Agner
 
Engenharia de software i 3 - processos de engenharia de requisitos
Engenharia de software i   3 - processos de engenharia de requisitosEngenharia de software i   3 - processos de engenharia de requisitos
Engenharia de software i 3 - processos de engenharia de requisitosWillian Moreira Figueiredo de Souza
 
Ferramentas de Recomendação
Ferramentas de RecomendaçãoFerramentas de Recomendação
Ferramentas de RecomendaçãoJoao Alqueres
 
Cap 1
Cap 1Cap 1
Cap 1UFRJ
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemasFelipe Oliveira
 
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...Arthur Santos
 
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)Leinylson Fontinele
 
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gilmar Pupo
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...Juliana Cindra
 

Similar a Sistemas de Recomendação e Evolução de Software (20)

Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.
Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.
Técnicas de modelagem formal aplicadas na avaliação de sistemas biomédicos.
 
Tcc Parte 1 Desenvolvendo Plano De Trabalho
Tcc   Parte 1  Desenvolvendo Plano De TrabalhoTcc   Parte 1  Desenvolvendo Plano De Trabalho
Tcc Parte 1 Desenvolvendo Plano De Trabalho
 
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenhari...
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
Ciclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemasCiclo desenvolvimento de sistemas
Ciclo desenvolvimento de sistemas
 
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de Software
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de SoftwareAlgoritmos de Estimação de Distribuição Aplicados à Estimativa de Software
Algoritmos de Estimação de Distribuição Aplicados à Estimativa de Software
 
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
Análise Numérica Aplicada, ou "Mamãe, Excel dá Errado!"
 
Técnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter CybisTécnicas de Análise Contextual - Livro de Walter Cybis
Técnicas de Análise Contextual - Livro de Walter Cybis
 
Engenharia de software i 3 - processos de engenharia de requisitos
Engenharia de software i   3 - processos de engenharia de requisitosEngenharia de software i   3 - processos de engenharia de requisitos
Engenharia de software i 3 - processos de engenharia de requisitos
 
Ferramentas de Recomendação
Ferramentas de RecomendaçãoFerramentas de Recomendação
Ferramentas de Recomendação
 
Medindo O Desempenho De Processadores
Medindo O Desempenho De ProcessadoresMedindo O Desempenho De Processadores
Medindo O Desempenho De Processadores
 
www.hotel1.com.br
www.hotel1.com.brwww.hotel1.com.br
www.hotel1.com.br
 
Cap 1
Cap 1Cap 1
Cap 1
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Apresentação FITEM 2012
Apresentação FITEM 2012Apresentação FITEM 2012
Apresentação FITEM 2012
 
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...
A Adaptação e Implantação de um ERP Open Source em uma Microempresa - Um Estu...
 
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)
Sistemas Cooperativos Aula 14 - Técnicas (Sistemas de recomendação)
 
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
 
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
AVALIAÇÃO DA QUALIDADE DE UM SISTEMA DE GESTÃO ACADÊMICA ATRAVÉS DA MINERAÇÃO...
 
Computacao
ComputacaoComputacao
Computacao
 

Sistemas de Recomendação e Evolução de Software

  • 1. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Sistemas de Recomenda¸c˜ao e Evolu¸c˜ao de Software Leandro Soriano Ferreira Universidade Federal da Bahia sfohart@gmail.com 16 de julho de 2013 1 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 2. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Overview 1 Motiva¸c˜ao 2 Sistemas de Recomenda¸c˜ao Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem por Conte´udo Filtragem Colaborativa Filtragem H´ıbrida 3 Aplicabilidade Reuso de Componentes 2 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 3. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 3 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 4. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 4 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 5. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Defini¸c˜ao - Sistema de Recomenda¸c˜ao [Recommendation] systems are software applications that aim to support users in their decision-making while interacting with large information spaces. They recommend items of interest to users based on preferences they have expressed, either explicitly or implicitly.a a Robillard, Walker e Zimmermann, “Recommendation systems for software engineering”. 5 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 6. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Defini¸c˜ao - Sistema de Recomenda¸c˜ao [Recommendation] systems help overcome the information overload problem by exposing users to the most interesting items, and by offering novelty, surprise, and relevance.a a Robillard, Walker e Zimmermann, “Recommendation systems for software engineering”. 6 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 7. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Defini¸c˜ao - Sistemas de Recomenda¸c˜ao para Engenharia de Software An [Recommendation Sistem for Software Engineering - RSSE] is a software application that provides information items estimated to be valuable for a software engineering task in a given context.a a Robillard, Walker e Zimmermann, “Recommendation systems for software engineering”. 7 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 8. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Coleta Impl´ıcita Figura: Google Play - Meus Aplicativos 8 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 9. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Coleta Expl´ıcita Figura: Formul´ario de Avalia¸c˜ao do Consumidor - Buscap´e 9 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 10. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem por Conte´udo O sistema aprende a recomendar itens que s˜ao similares `aqueles preteridos pelo usu´ario no passado. A similaridade dos ´ıtens ´e calculada baseada em caracter´ısticas associadas aos ´ıtens comparados. Por exemplo, se um usu´ario avaliou positivamente um filme que se enquadra no gˆenero de com´edia, o sistema pode aprender a recomendar outros itens deste gˆenero.1 1 Kantor et al., “Recommender systems handbook”. 10 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 11. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem por Conte´udo Vantagens Independˆencia de Usu´ario: Exploram apenas as avalia¸c˜oes fornecidas pelo usu´ario ativo para construir seu pr´oprio perfila Transparˆencia: Explica¸c˜oes sobre como o sistema de recomenda¸c˜ao trabalha podem ser fornecidas explicitamente listando as caracter´ısticas do conte´udo ou descri¸c˜oes que fizeram um ´ıtem estar presente na lista de recomenda¸c˜oes.b Novos ´Itens: S˜ao capazes de recomendar itens ainda n˜ao avaliados por qualquer usu´arioc a Kantor et al., “Recommender systems handbook”. b Ibid. c Ibid. 11 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 12. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem por Conte´udo Desantagens An´alise Limitada de Conteudo: Nenhum sistema desse tipo pode fornecer recomenda¸c˜oes adequadas se o conte´udo analisado n˜ao cont´em informa¸c˜ao suficiente para diferenciar os itens que o usu´ario gosta daqueles que ele n˜ao gostaa a Kantor et al., “Recommender systems handbook”. 12 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 13. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem por Conte´udo Desantagens Superespecializa¸c˜ao: ”Problema da serendipidadea” para destacar a tendˆencia destes sistemas de produzir recomenda¸c˜oes com um limitado grau de novidadeb Novos Usu´arios: Muitas recomenda¸c˜oes s˜ao necess´arias antes que o sistema possa realmente entender as preferˆencias do usu´ario e fornecer recomenda¸c˜oes precisas.c a Faculdade de fazer descobertas afortunadas por acidente. b Kantor et al., “Recommender systems handbook”. c Ibid. 13 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 14. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem Colaborativa O sistema recomenda ao usu´ario ativo itens relacionados a outros usu´arios com gostos semelhantes. A similaridade de gostos entre dois usu´arios ´e calculada baseado na similaridade do historico de avalia¸c˜ao daqueles usu´arios.2 2 Kantor et al., “Recommender systems handbook”. 14 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 15. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem Colaborativa Vantagens Simplicidade de Implementa¸c˜ao: Em sua forma mais simples, apenas um parˆametro (o n´umero de vizinhos usados na predi¸c˜ao) necessita de calibra¸c˜ao;a Estabilidade: S˜ao pouco afetados por constantes adi¸c˜oes de usu´arios, ´ıtens e avalia¸c˜oes, fato tipicamente observado em aplica¸c˜oes comerciais de grande porte. Al´em disso, mesmo que poucas avalia¸c˜oes sejam fornecidas para um novo item, apenas a similaridade entre este e outros j´a presentes no sistema precisam ser computadas.b a Kantor et al., “Recommender systems handbook”. b Ibid. 15 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 16. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem Colaborativa Desantagens Problema do primeiro avaliador: Quando um novo item aparece no banco de dados n˜ao existe maneira deste ser recomendado para o usu´ario at´e que mais informa¸c˜oes sejam obtidas atrav´es de outro usu´ario.a Problema de pontua¸c˜oes esparsas: Caso o n´umero de usu´arios seja pequeno em rela¸c˜ao ao volume de informa¸c˜oes no sistema existe um grande risco das pontua¸c˜oes tornarem-se muito esparsas.b a Cazella e REATEGUI, “Sistemas de Recomenda¸c˜ao”. b Ibid. 16 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 17. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem Colaborativa Desantagens Similaridade: caso um usu´ario tenha gostos que variam do normal este ter´a dificuldades para encontrar outros usu´arios com gostos similares, sendo assim suas recomenda¸c˜oes podem se tornar pobres.a a Cazella e REATEGUI, “Sistemas de Recomenda¸c˜ao”. 17 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 18. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Defini¸c˜ao Coleta de Informa¸c˜oes Classifica¸c˜ao Filtragem H´ıbrida Filtragem H´ıbrida Estes sistemas de recomenda¸c˜ao s˜ao baseados na combina¸c˜ao das t´ecnicas mencionadas anteriormente. Um sistema h´ıbrido que utiliza as t´ecnicas A e B tenta utilizar as vantagens da t´ecnica A para corrigir as desvantagens da t´ecnica B. Dadas duas ou mais t´ecnicas b´asicas, muitas combina¸c˜oes podem ser propostas para criar um novo sistema h´ıbrido de recomenda¸c˜ao. 18 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 19. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes PARSEWeb PARSEWeb3 ´e um exemplo de sistema de recomenda¸c˜ao para reuso de componentes de software Auxilia os usu´arios a codificar uma sequˆencia de invoca¸c˜oes (chamadas) de m´etodos que retornem uma instˆancia de uma classe Y dada uma instˆancia da classe X Pede como entrada uma query do tipo X −→ Y Retorna o trecho de c´odigo fonte com a implementa¸c˜ao de interesse para o desenvolvedor Classifica os resultados (sequˆencias de chamadas de m´etodos) de acordo com a sua frequˆencia de uso e tamanho (quantidade de linhas de c´odigo) Utiliza o Google Code Search Engine (desativado) 3 Thummalapenta e Xie, “Parseweb: a programmer assistant for reusing open source code on the web”. 19 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 20. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes Cria um grafo utilizando como n´os os comandos no c´odigo fonte As arestas representam o controle de fluxo entre os comandos (if, for, while, dentre outros) Cada sequˆencia de chamadas corresponde a um caminho dentro do grafo A ordem das chamadas de m´etodo (n´os internos do caminho) nao interferem no c´alculo da similaridade Utiliza c´alculo de ”distˆancia”para a similaridade dos caminhos (caminhos que diferem em at´e x n´os s˜ao considerados similares) 20 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 21. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes PARSEWeb - screenshot Figura: Tela inicial do PARSEWeb 21 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 22. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes PARSEWeb - screenshot Figura: Entrada de Dados do PARSEWeb 22 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 23. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes PARSEWeb - screenshot Figura: Recomenda¸c˜oes do PARSEWeb 23 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 24. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Reuso de Componentes D´uvidas??? Perguntas??? 24 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 25. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Referˆencias I [1] Satnam Alag e Richard MacManus. Collective intelligence in action. Manning, 2009. [2] S´ılvio C´esar Cazella e Eliseo Berni REATEGUI. “Sistemas de Recomenda¸c˜ao”. Em: XXV Congresso da Sociedade Brasileira de Computa¸c˜ao. 2005. [3] Paul B Kantor et al. “Recommender systems handbook”. Em: (2010). [4] Daniel Lew et al. Memory-based algorithms. Online. Acessado em 26 de Fevereiro de 2013. 2013. url: http://www.cs.carleton.edu/cs_comps/0607/ recommend/recommender/memorybased.html. 25 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 26. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Referˆencias II [5] Daniel Lew et al. Model-based algorithms. Online. Acessado em 26 de Fevereiro de 2013. 2013. url: http://www.cs.carleton.edu/cs_comps/0607/ recommend/recommender/modelbased.html. [6] Paul Resnick, Hal R Varian e Guest Editors. “Recommender Systems”. Em: Communications of the ACM 40.3 (1997). Ed. por Max Chevalier, pp. 56–58. issn: 00010782. doi: 10.1145/245108.245121. arXiv:1202.1112v1. url: http: //portal.acm.org/citation.cfm?doid=245108.245121. [7] Martin Robillard, Robert Walker e Thomas Zimmermann. “Recommendation systems for software engineering”. Em: Software, IEEE 27.4 (2010), pp. 80–86. 26 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 27. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias Referˆencias III [8] Toby Segaran. Programming collective intelligence: building smart web 2.0 applications. O’Reilly Media, Incorporated, 2007. [9] Suresh Thummalapenta e Tao Xie. “Parseweb: a programmer assistant for reusing open source code on the web”. Em: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering. ACM. 2007, pp. 204–213. 27 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  • 28. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 28 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software