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 [email protected]16 de julho de 2013 1 / 28 Leandro Soriano Ferreira MATE08 - Evolu¸ c˜ ao de Software
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
[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”.
[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”.
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”.
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.
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
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.
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.
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.
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
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.
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)
[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.
[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.