O documento discute sistemas de recomendação e sua aplicabilidade no reuso de componentes de software. Ele define sistemas de recomendação como aplicações que recomendam itens aos usuários baseados em suas preferências. Explora técnicas como filtragem por conteúdo, colaborativa e híbrida, e discute como sistemas de recomendação podem auxiliar no reuso de componentes, citando o exemplo do PARSEWeb.
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
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
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