Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Sistemas de Recomenda¸c˜ao e Evolu¸c˜ao de
Software
Lea...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Overview
1 Motiva¸c˜ao
2 Sistemas de Recomenda¸c˜ao
Defi...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
3 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de ...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
4 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de ...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Defini...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Colet...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Colet...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Defini¸c˜ao
Coleta de Informa¸c˜oes
Classifica¸c˜ao
Filtr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb
PARSEWeb3 ´e um exemplo d...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
Cria um grafo utilizando como n´os...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Tela...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Entr...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Reco...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Reuso de Componentes
D´uvidas??? Perguntas???
24 / 28 L...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias I
[1] Satnam Alag e Richard MacManus. Coll...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias II
[5] Daniel Lew et al. Model-based algor...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
Referˆencias III
[8] Toby Segaran. Programming collecti...
Motiva¸c˜ao
Sistemas de Recomenda¸c˜ao
Aplicabilidade
Referˆencias
28 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de...
Upcoming SlideShare
Loading in …5
×

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

221 views
157 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
221
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 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. 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. 3. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 3 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  4. 4. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 4 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. Motiva¸c˜ao Sistemas de Recomenda¸c˜ao Aplicabilidade Referˆencias 28 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸c˜ao de Software

×