Sistemas de Recomendação e Evolução de Software
-
Upload
leandro-ferreira -
Category
Documents
-
view
97 -
download
0
Transcript of Sistemas de Recomendação e Evolução de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Sistemas de Recomendacao e Evolucao deSoftware
Leandro Soriano Ferreira
Universidade Federal da Bahia
16 de julho de 2013
1 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Overview
1 Motivacao
2 Sistemas de RecomendacaoDefinicaoColeta de InformacoesClassificacao
Filtragem por ConteudoFiltragem ColaborativaFiltragem Hıbrida
3 AplicabilidadeReuso de Componentes
2 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
3 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
4 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Definicao - Sistema de Recomendacao
[Recommendation] systems are software applications that aim tosupport users in their decision-making while interacting with largeinformation spaces. They recommend items of interest to usersbased on preferences they have expressed, either explicitly orimplicitly.a
aRobillard, Walker e Zimmermann, “Recommendation systems for softwareengineering”.
5 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Definicao - Sistema de Recomendacao
[Recommendation] systems help overcome the informationoverload problem by exposing users to the most interesting items,and by offering novelty, surprise, and relevance.a
aRobillard, Walker e Zimmermann, “Recommendation systems for softwareengineering”.
6 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Definicao - Sistemas de Recomendacao para Engenharia deSoftware
An [Recommendation Sistem for Software Engineering - RSSE] is asoftware application that provides information items estimated tobe valuable for a software engineering task in a given context.a
aRobillard, Walker e Zimmermann, “Recommendation systems for softwareengineering”.
7 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Coleta Implıcita
Figura: Google Play - Meus Aplicativos
8 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Coleta Explıcita
Figura: Formulario de Avaliacao do Consumidor - Buscape
9 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem por Conteudo
O sistema aprende a recomendar itens que sao similares aquelespreteridos pelo usuario no passado. A similaridade dos ıtens ecalculada baseada em caracterısticas associadas aos ıtenscomparados. Por exemplo, se um usuario avaliou positivamenteum filme que se enquadra no genero de comedia, o sistema podeaprender a recomendar outros itens deste genero.1
1Kantor et al., “Recommender systems handbook”.10 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem por Conteudo
Vantagens
Independencia de Usuario: Exploram apenas as avaliacoesfornecidas pelo usuario ativo para construir seu proprio perfila
Transparencia: Explicacoes sobre como o sistema derecomendacao trabalha podem ser fornecidas explicitamentelistando as caracterısticas do conteudo ou descricoes quefizeram um ıtem estar presente na lista de recomendacoes.b
Novos Itens: Sao capazes de recomendar itens ainda naoavaliados por qualquer usuarioc
aKantor et al., “Recommender systems handbook”.bIbid.cIbid.
11 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem por Conteudo
Desantagens
Analise Limitada de Conteudo: Nenhum sistema desse tipopode fornecer recomendacoes adequadas se o conteudoanalisado nao contem informacao suficiente para diferenciar ositens que o usuario gosta daqueles que ele nao gostaa
aKantor et al., “Recommender systems handbook”.
12 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem por Conteudo
Desantagens
Superespecializacao: ”Problema da serendipidadea” paradestacar a tendencia destes sistemas de produzirrecomendacoes com um limitado grau de novidadeb
Novos Usuarios: Muitas recomendacoes sao necessariasantes que o sistema possa realmente entender as preferenciasdo usuario e fornecer recomendacoes precisas.c
aFaculdade de fazer descobertas afortunadas por acidente.bKantor et al., “Recommender systems handbook”.cIbid.
13 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem Colaborativa
O sistema recomenda ao usuario ativo itens relacionados a outrosusuarios com gostos semelhantes. A similaridade de gostos entredois usuarios e calculada baseado na similaridade do historico deavaliacao daqueles usuarios.2
2Kantor et al., “Recommender systems handbook”.14 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem Colaborativa
Vantagens
Simplicidade de Implementacao: Em sua forma maissimples, apenas um parametro (o numero de vizinhos usadosna predicao) necessita de calibracao;a
Estabilidade: Sao pouco afetados por constantes adicoes deusuarios, ıtens e avaliacoes, fato tipicamente observado emaplicacoes comerciais de grande porte. Alem disso, mesmoque poucas avaliacoes sejam fornecidas para um novo item,apenas a similaridade entre este e outros ja presentes nosistema precisam ser computadas.b
aKantor et al., “Recommender systems handbook”.bIbid.
15 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem Colaborativa
Desantagens
Problema do primeiro avaliador: Quando um novo itemaparece no banco de dados nao existe maneira deste serrecomendado para o usuario ate que mais informacoes sejamobtidas atraves de outro usuario.a
Problema de pontuacoes esparsas: Caso o numero deusuarios seja pequeno em relacao ao volume de informacoesno sistema existe um grande risco das pontuacoes tornarem-semuito esparsas.b
aCazella e REATEGUI, “Sistemas de Recomendacao”.bIbid.
16 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem Colaborativa
Desantagens
Similaridade: caso um usuario tenha gostos que variam donormal este tera dificuldades para encontrar outros usuarioscom gostos similares, sendo assim suas recomendacoes podemse tornar pobres.a
aCazella e REATEGUI, “Sistemas de Recomendacao”.
17 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
DefinicaoColeta de InformacoesClassificacao
Filtragem Hıbrida
Filtragem Hıbrida
Estes sistemas de recomendacao sao baseados na combinacao dastecnicas mencionadas anteriormente. Um sistema hıbrido queutiliza as tecnicas A e B tenta utilizar as vantagens da tecnica Apara corrigir as desvantagens da tecnica B. Dadas duas ou maistecnicas basicas, muitas combinacoes podem ser propostas paracriar um novo sistema hıbrido de recomendacao.
18 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
PARSEWeb
PARSEWeb3 e um exemplo de sistema de recomendacao parareuso de componentes de software
Auxilia os usuarios a codificar uma sequencia de invocacoes(chamadas) de metodos que retornem uma instancia de umaclasse Y dada uma instancia da classe X
Pede como entrada uma query do tipo X −→ Y
Retorna o trecho de codigo fonte com a implementacao deinteresse para o desenvolvedor
Classifica os resultados (sequencias de chamadas demetodos) de acordo com a sua frequencia de uso etamanho (quantidade de linhas de codigo)
Utiliza o Google Code Search Engine (desativado)3Thummalapenta e Xie, “Parseweb: a programmer assistant for reusing open
source code on the web”.19 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
Cria um grafo utilizando como nos os comandos no codigofonte
As arestas representam o controle de fluxo entre os comandos(if, for, while, dentre outros)
Cada sequencia de chamadas corresponde a um caminhodentro do grafo
A ordem das chamadas de metodo (nos internos do caminho)nao interferem no calculo da similaridade
Utiliza calculo de ”distancia”para a similaridade dos caminhos(caminhos que diferem em ate x nos sao consideradossimilares)
20 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Tela inicial do PARSEWeb
21 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Entrada de Dados do PARSEWeb
22 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
PARSEWeb - screenshot
Figura: Recomendacoes do PARSEWeb
23 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Reuso de Componentes
Duvidas??? Perguntas???
24 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Referencias I
[1] Satnam Alag e Richard MacManus. Collective intelligence inaction. Manning, 2009.
[2] Sılvio Cesar Cazella e Eliseo Berni REATEGUI. “Sistemas deRecomendacao”. Em: XXV Congresso da Sociedade Brasileirade Computacao. 2005.
[3] Paul B Kantor et al. “Recommender systems handbook”. Em:(2010).
[4] Daniel Lew et al. Memory-based algorithms. Online. Acessadoem 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 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Referencias II
[5] Daniel Lew et al. Model-based algorithms. Online. Acessadoem 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. “RecommenderSystems”. 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 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
Referencias III
[8] Toby Segaran. Programming collective intelligence: buildingsmart web 2.0 applications. O’Reilly Media, Incorporated,2007.
[9] Suresh Thummalapenta e Tao Xie. “Parseweb: a programmerassistant for reusing open source code on the web”. Em:Proceedings of the twenty-second IEEE/ACM internationalconference on Automated software engineering. ACM. 2007,pp. 204–213.
27 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software
MotivacaoSistemas de Recomendacao
AplicabilidadeReferencias
28 / 28 Leandro Soriano Ferreira MATE08 - Evolucao de Software