SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
REDES COMPLEXAS 2016/17PROJECTO 1
GRUPO 22
CARINA ANTUNES Nº73161
DIOGO NICOLAU Nº72935
RECOMENDAÇÃO DE APLICAÇÕES ANDROID
ANÁLISE E AVALIAÇÃO DO DATASET REAL COMO UMA REDE COMPLEXA
Introdução
Lojas online procuram cada vez mais reter os seus clientes. Seja através de atrativas
promoções ou novos e exclusivos produtos, qualquer market online acaba inevitavelmente por se
deparar com um problema amplamente conhecido: como apresentar novas ofertas a utilizadores já
saturados de informação? Muitos markets online, desde filmes a sabonetes, procuram apresentar as
suas ofertas da forma mais eficiente possível. A pequena janela de interesse dos utilizadores obriga a
um refinamento quase mágico das ofertas a apresentar e que de certa forma entenda os utilizadores,
prevendo os seus interesses e as suas tendências de compra.
A solução encontrada passa por sistemas de recomendação, um ramo de information retrievel
que muito tem crescido desde o “boom” de machine learning. Juntando diferentes técnicas de
predição e filtragem é possível apresentar resultados personalizados a cada utilizador.
Acontece que avaliar diferentes sistemas de recomendação não é imediato. Uma boa recomendação
é algo subjetivo, como tal não existe uma fórmula única que solucione este problema. Atualmente
existem diferentes métricas de avaliação, tais como: RMSE, DCG e prediction/recall[1]. Cada uma
destas métricas procura cobrir diferentes aspetos da recomendação, no entanto nenhuma avalia a
diversidade e distribuição dos resultados. É aqui que entra o estudo de Redes Complexas. Neste
relatório iremos demonstrar como as métricas utilizadas na avaliação de networks poderão também
servir os sistemas de recomendações.
Tecnologia e Dataset usados:
O dataset é descrito como 110 mil aplicações e as suas 40 aplicações mais semelhantes, obtido
da utilização de aplicações android de cerca de 11 milhões de utilizadores. São consideradas
semelhantes as aplicações utilizadas por utilizadores que partilhem os mesmo padrões de utilização
1[2]
. Consideramos assim cada aplicação como um nó. Já quanto a arcos se considerarmos a network
direcionada podemos contar com arcos para fora e arcos para dentro, sendo os arcos-fora duma
aplicação as ligações das 40 recomendadas por esta, e arcos-dentro as ligações das aplicações que
recomendam esta mesma aplicação.
Para trabalhar com este dataset tentámos inicialmente o software Gephi mas rapidamente
percebemos que este não iria suportar a dimensão dos nossos dados. Assim decidimos utilizar a
plataforma Webgraph, a qual já demonstrou ser capaz de trabalhar dados bem maiores que o nosso
sem comprometer a simplicidade de utilização. Começando por carregar o nosso dataset existiu a
necessidade de transformar os nossos dados no formato:
1,(33031,0.9854372),(53525,0.9837637),(6937,0.98257303) …
2,(91318,0.9815927),(98841,0.9811823),(22338,0.98085517) …
3,(51127,0.99526876),(79391,0.9945507),(31703,0.9943191) …
onde o primeiro valor é o ID da aplicação e entre parênteses as aplicações recomendadas e os
respetivos valores de similaridade, em:
108910
79 1076 6936 7608 …
53524 55778 62215 62434 …
52 87 114 609 …
Sendo a primeira linha o número total de nós, seguindo-se por linha as recomendações de
cada aplicação ordenadas por ordem crescente. De forma a gerar este formato foi preciso
implementar em java uma simples classe (em anexo) que lê o nosso ficheiro input e produz um novo
ficheiro no formato desejado. Fazendo uso da classe it.unimi.dsi.webgraph.BVGraph produzimos os
ficheiros necessários ao uso da classe ConnectedComponents seguida de it.unimi.dsi.webgraph.Stats.
Feito isto obtemos um conjunto de ficheiros com informações bastante relevantes e também as
distribuições de degree. Podemos ainda fazer uso da implementação existente do algoritmo HyperBall
que devolve estimativas das distâncias entre vizinhos, e mais tarde utilizar os resultados com a classe
ApproximateNeighbourhoodFunctionStats e assim obter ainda mais informações sobre a nossa
network.
Resultados
Começamos por analisar o ficheiro “.stats” e os seus valores. A tabela em baixo relata como podem
as métricas deste ficheiro colaborar na avaliação de um sistema de recomendações:
nodes=108910
arcs=4285308
loops=36
 Como esperado o número de nós e arcos corresponde ao nosso
dataset inicial.
 O valor de loops é consideravelmente baixo, o que pode ser traduzido
em poucos ciclos fechados de aplicações a recomendarem-se entre
elas. Do ponto de vista da qualidade de recomendação isto é algo que
se procura.
minoutdegree=0  Caso em que a recomendação falha e não apresenta qualquer
resultado.
maxoutdegree=40  Como esperado, uma vez que "obrigamos" que cada aplicação crie 40
arcos para fora.
avgoutdegree=39.347
24084106143
 Pode ser tratado como uma métrica de forma a perceber quantas
aplicação não recomendaram o número esperado de aplicações
dangling=1
terminal=1
percdangling=9.1818
9330639978E-4
 Através de dangling percebemos quantas aplicações não recomendam
nem são recomendadas. Em príncipio queremos o menor valor
possível, uma vez que procuramos a maior diversividade possível no
nosso sistema.
minindegree=0
minindegreenode=108
909
 Aplicação nunca recomendada.
maxindegree=9750
maxindegreenode=346
88
 Aplicação mais recomendada
avgindegree=39.3472
4084106143
 Número médio de vezes que uma aplicação é recomendada. Este valor
por ser estranhamente exactamente igual ao avgoutdegree levantou
algumas suspeitas no grupo.
sccs=1
maxsccsize=108910
minsccsize=108910
 Apenas existe 1 componente fortemente ligado, que se traduz no
dataset todo. Idealmente teriamos diversos componentes a
representar categorias diferentes.
 Esta pode ser uma boa métrica, a qual podemos procurar aumentar e
assim garantir que por exemplo: um jogo apenas recomenda jogos.
 Para testar esta métrica imediatamente podiamos reduzir de 40 mais
semelhantes para 10, reduzindo algumas recomendações residuais.
Seguindo para o cálculo aproximado das distâncias entre vizinhanças podemos fazer uso dos
resultados devolvidos pela classe ApproximateNeighbourhoodFunctionStats. Para obter estes
resultados tivemos de correr o algoritmo HyperBall[3] o qual produz iterativamente o número de pares
de nós à distância t. Devido ao elevado consumo de memória, este algoritmo faz uso de técnicas
modernas como HyperLogLog que obriga ao uso de valores aproximados. Por este motivo
computamos o algoritmo HyperBall 5 vezes, minimizando o erro no cálculo das distâncias.
Dito isto recolhemos os seguintes resultados:
average distance: 3.7955519291892466 (+/- 0.006159179123813056)
effective diameter: 3.982939947577784 (+/- 0.004990141224530469)
harmonic diameter: 3.9956615731924154 (+/- 0.024043508889339964)
shortest-paths index of dispersion: 0.10258390989262252
Estes resultados demonstram que o utilizador estaria à distância de 4 recomendações para
chegar a qualquer aplicação presente no dataset. Este valor pode ser determinante nas decisões de
quem cria a user experience dum sistema de recomendações.
Ainda podemos classificar a nossa rede através do SPID como properly social[3], visto que este
valor é menor que 1. Estas redes favorecem ligações curtas, ao contrário de redes web-like onde
ligações longas não são incomuns. Uma experiência interessante seria calcular esta mesma métrica
para recomendações geradas por motores baseados em conteúdo, uma vez que estas
recomendações seguem um modelo baseado em padrões de utilização.
Fazendo plot com R dos ficheiros out e indegree(s) obtemos os gráficos que nos permitiram
tirar as seguintes conclusões:
 Do ficheiro outdegree obtemos a distribuição que nos permite visualizar que apesar
da maior parte das aplicações ter 40 ligações para fora, nem todas têm. Do ficheiro
outdegrees obtemos a densidade, que confirma este mesmo facto. Vem confirmar o
valor apresentado anteriormente para o average out degree perto de 40.
 Do ficheiro indegrees obtemos também a densidade para as ligações para uma
aplicação. Visualizamos que a maioria das aplicações são recomendadas poucas vezes,
existindo no entanto alguns outliers claramente visíveis. Em especial 6 aplicações
recomendadas perto de 10000 vezes. Estes dados seriam interessantes para o
refinamento do sistema de recomendação, possibilitando a remoção de aplicações
presente em quase todos os padrões de utilização.
 Por fim, do ficheiro indegree obtemos o gráfico de distribuição, ao qual aplicamos um
logaritmo em cada eixo, permitindo complementar as conclusões anteriores com a
visualização de uma aproximação a uma power law. Este facto permite-nos concluir
que a nossa rede se aproxima de uma rede scale free[4], em que existem poucos nós
com muitas ligações, tendo a maior parte deles poucas.
A intuição por trás destes valores diz-nos que sendo recomendações com base em
padrões de utilização, iriam existir poucas aplicações usadas pela maior das pessoas
(redes sociais, utilidades, tendências, etc), comum à maior parte dos padrões,
complementadas por aplicações outliers comum a poucos padrões. Previa-se assim
uma rede scale free, visto que quase todos os outliers terão incluídos nos seus nós de
recomendações estas aplicações padrão.

Referências
1. Avazpour, Iman; Pitakrat, Teerat; Grunske, Lars ; Grundy, John (2014), “Dimensions and Metrics for
Evaluating Recommendation Systems” in Recommendation Systems in Software Engineering, pp 245-
273. – http://www.ict.swin.edu.au/personal/jgrundy/papers/rsse2014.pdf
2. Ekstrand, Michael; Riedl, John; Konstan, Joseph. (2011), "Collaborative Filtering Recommender
Systems", Foundations and Trends® in Human–Computer Interaction: Vol. 4: No. 2, pp 81-173. –
http://dx.doi.org/10.1561/1100000009
3. Boldi, Paolo; Rosa, Marco; Vigna, Sebastiano (2010), “HyperANF: Approximating the Neighbourhood
Function of Very Large Graphs on a Budget” – arXiv:1011.5599 [cs.DS]
4. Barabási, Albert-László; Bonabeau, Eric (May 2003), “Scale Free Networks” –
http://barabasi.com/f/124.pdf

Mais conteúdo relacionado

Destaque

Arte quimbaya
Arte quimbayaArte quimbaya
Arte quimbayaladymami
 
Availability & access of e resources in au
Availability & access of e resources in auAvailability & access of e resources in au
Availability & access of e resources in auKishor Satpathy
 
How to Reinvent Your (Membership) Magazine for the Digital Age
How to Reinvent Your (Membership) Magazine for the Digital AgeHow to Reinvent Your (Membership) Magazine for the Digital Age
How to Reinvent Your (Membership) Magazine for the Digital AgePage Lizard
 
Achieving higher IOPS for NAS at Reasonable Cost
Achieving higher IOPS for NAS at Reasonable CostAchieving higher IOPS for NAS at Reasonable Cost
Achieving higher IOPS for NAS at Reasonable CostTyrone Systems
 
Graficos diario del eurodolar para el 30 04 2012
Graficos diario del eurodolar para el 30 04 2012Graficos diario del eurodolar para el 30 04 2012
Graficos diario del eurodolar para el 30 04 2012Experiencia Trading
 
Effects of Question Formats on Student and Item Performance
Effects of Question Formats on Student and Item PerformanceEffects of Question Formats on Student and Item Performance
Effects of Question Formats on Student and Item PerformanceExamSoft
 
Concorrencia geral UFPE 2014
Concorrencia geral UFPE 2014Concorrencia geral UFPE 2014
Concorrencia geral UFPE 2014Portal NE10
 
Ist.Santo Domingo
Ist.Santo DomingoIst.Santo Domingo
Ist.Santo Domingojuan cherre
 
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier Audun Farbrot
 

Destaque (12)

O Rei.
O Rei.O Rei.
O Rei.
 
Arte quimbaya
Arte quimbayaArte quimbaya
Arte quimbaya
 
Availability & access of e resources in au
Availability & access of e resources in auAvailability & access of e resources in au
Availability & access of e resources in au
 
How to Reinvent Your (Membership) Magazine for the Digital Age
How to Reinvent Your (Membership) Magazine for the Digital AgeHow to Reinvent Your (Membership) Magazine for the Digital Age
How to Reinvent Your (Membership) Magazine for the Digital Age
 
New poster
New posterNew poster
New poster
 
Achieving higher IOPS for NAS at Reasonable Cost
Achieving higher IOPS for NAS at Reasonable CostAchieving higher IOPS for NAS at Reasonable Cost
Achieving higher IOPS for NAS at Reasonable Cost
 
Local hack day
Local hack dayLocal hack day
Local hack day
 
Graficos diario del eurodolar para el 30 04 2012
Graficos diario del eurodolar para el 30 04 2012Graficos diario del eurodolar para el 30 04 2012
Graficos diario del eurodolar para el 30 04 2012
 
Effects of Question Formats on Student and Item Performance
Effects of Question Formats on Student and Item PerformanceEffects of Question Formats on Student and Item Performance
Effects of Question Formats on Student and Item Performance
 
Concorrencia geral UFPE 2014
Concorrencia geral UFPE 2014Concorrencia geral UFPE 2014
Concorrencia geral UFPE 2014
 
Ist.Santo Domingo
Ist.Santo DomingoIst.Santo Domingo
Ist.Santo Domingo
 
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier
Krasjkurs i twitter. Forskningskommunikasjon i sosiale medier
 

Semelhante a Relatвrio

Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Rogério Cardoso
 
Pre proposta trabalho final
Pre proposta trabalho finalPre proposta trabalho final
Pre proposta trabalho finalSergio Chaves
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Adilson Nascimento
 
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...Marcelo Veloso
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Geanderson Lenz
 
Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)marcondes da luz barros
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...João Gabriel Lima
 
Guiadohost.com host guide the best website hosting
Guiadohost.com host guide the best website hostingGuiadohost.com host guide the best website hosting
Guiadohost.com host guide the best website hostingSEO
 
Plano de projeto cafis
Plano de projeto cafisPlano de projeto cafis
Plano de projeto cafisJonathas Silva
 
Personalização de programas de tv no contexto da tv digital portátil interativa
Personalização de programas de tv no contexto da tv digital portátil interativaPersonalização de programas de tv no contexto da tv digital portátil interativa
Personalização de programas de tv no contexto da tv digital portátil interativaElaine Cecília Gatto
 

Semelhante a Relatвrio (20)

Trabalho PI I
Trabalho PI ITrabalho PI I
Trabalho PI I
 
Artigo
ArtigoArtigo
Artigo
 
Artigo Rafael
Artigo RafaelArtigo Rafael
Artigo Rafael
 
Planejamento rede
Planejamento rede Planejamento rede
Planejamento rede
 
Dfd
DfdDfd
Dfd
 
Aplicações de redes neurais 2010
Aplicações de redes neurais 2010Aplicações de redes neurais 2010
Aplicações de redes neurais 2010
 
Aula 6 semana
Aula 6 semanaAula 6 semana
Aula 6 semana
 
poster
posterposter
poster
 
Trabalho individual
Trabalho individualTrabalho individual
Trabalho individual
 
Pre proposta trabalho final
Pre proposta trabalho finalPre proposta trabalho final
Pre proposta trabalho final
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
 
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...
Artigo CONSAD 2013 - Cloud Computing: Necessidade e Benefícios Esperados Com ...
 
Analise Bay Area Bike Sharing
Analise Bay Area Bike SharingAnalise Bay Area Bike Sharing
Analise Bay Area Bike Sharing
 
Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...Guia completo para definição de estatística de modelos e algoritmos de machin...
Guia completo para definição de estatística de modelos e algoritmos de machin...
 
[Pereira IC'2011] Otimizacoes no LLVM
[Pereira IC'2011] Otimizacoes no LLVM[Pereira IC'2011] Otimizacoes no LLVM
[Pereira IC'2011] Otimizacoes no LLVM
 
Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)
 
Map reduce novas abordagens para o processo de datamining em grandes volumn...
Map reduce   novas abordagens para o processo de datamining em grandes volumn...Map reduce   novas abordagens para o processo de datamining em grandes volumn...
Map reduce novas abordagens para o processo de datamining em grandes volumn...
 
Guiadohost.com host guide the best website hosting
Guiadohost.com host guide the best website hostingGuiadohost.com host guide the best website hosting
Guiadohost.com host guide the best website hosting
 
Plano de projeto cafis
Plano de projeto cafisPlano de projeto cafis
Plano de projeto cafis
 
Personalização de programas de tv no contexto da tv digital portátil interativa
Personalização de programas de tv no contexto da tv digital portátil interativaPersonalização de programas de tv no contexto da tv digital portátil interativa
Personalização de programas de tv no contexto da tv digital portátil interativa
 

Relatвrio

  • 1. REDES COMPLEXAS 2016/17PROJECTO 1 GRUPO 22 CARINA ANTUNES Nº73161 DIOGO NICOLAU Nº72935 RECOMENDAÇÃO DE APLICAÇÕES ANDROID ANÁLISE E AVALIAÇÃO DO DATASET REAL COMO UMA REDE COMPLEXA Introdução Lojas online procuram cada vez mais reter os seus clientes. Seja através de atrativas promoções ou novos e exclusivos produtos, qualquer market online acaba inevitavelmente por se deparar com um problema amplamente conhecido: como apresentar novas ofertas a utilizadores já saturados de informação? Muitos markets online, desde filmes a sabonetes, procuram apresentar as suas ofertas da forma mais eficiente possível. A pequena janela de interesse dos utilizadores obriga a um refinamento quase mágico das ofertas a apresentar e que de certa forma entenda os utilizadores, prevendo os seus interesses e as suas tendências de compra. A solução encontrada passa por sistemas de recomendação, um ramo de information retrievel que muito tem crescido desde o “boom” de machine learning. Juntando diferentes técnicas de predição e filtragem é possível apresentar resultados personalizados a cada utilizador. Acontece que avaliar diferentes sistemas de recomendação não é imediato. Uma boa recomendação é algo subjetivo, como tal não existe uma fórmula única que solucione este problema. Atualmente existem diferentes métricas de avaliação, tais como: RMSE, DCG e prediction/recall[1]. Cada uma destas métricas procura cobrir diferentes aspetos da recomendação, no entanto nenhuma avalia a diversidade e distribuição dos resultados. É aqui que entra o estudo de Redes Complexas. Neste relatório iremos demonstrar como as métricas utilizadas na avaliação de networks poderão também servir os sistemas de recomendações. Tecnologia e Dataset usados: O dataset é descrito como 110 mil aplicações e as suas 40 aplicações mais semelhantes, obtido da utilização de aplicações android de cerca de 11 milhões de utilizadores. São consideradas semelhantes as aplicações utilizadas por utilizadores que partilhem os mesmo padrões de utilização 1[2] . Consideramos assim cada aplicação como um nó. Já quanto a arcos se considerarmos a network direcionada podemos contar com arcos para fora e arcos para dentro, sendo os arcos-fora duma aplicação as ligações das 40 recomendadas por esta, e arcos-dentro as ligações das aplicações que recomendam esta mesma aplicação. Para trabalhar com este dataset tentámos inicialmente o software Gephi mas rapidamente percebemos que este não iria suportar a dimensão dos nossos dados. Assim decidimos utilizar a plataforma Webgraph, a qual já demonstrou ser capaz de trabalhar dados bem maiores que o nosso sem comprometer a simplicidade de utilização. Começando por carregar o nosso dataset existiu a necessidade de transformar os nossos dados no formato: 1,(33031,0.9854372),(53525,0.9837637),(6937,0.98257303) … 2,(91318,0.9815927),(98841,0.9811823),(22338,0.98085517) … 3,(51127,0.99526876),(79391,0.9945507),(31703,0.9943191) …
  • 2. onde o primeiro valor é o ID da aplicação e entre parênteses as aplicações recomendadas e os respetivos valores de similaridade, em: 108910 79 1076 6936 7608 … 53524 55778 62215 62434 … 52 87 114 609 … Sendo a primeira linha o número total de nós, seguindo-se por linha as recomendações de cada aplicação ordenadas por ordem crescente. De forma a gerar este formato foi preciso implementar em java uma simples classe (em anexo) que lê o nosso ficheiro input e produz um novo ficheiro no formato desejado. Fazendo uso da classe it.unimi.dsi.webgraph.BVGraph produzimos os ficheiros necessários ao uso da classe ConnectedComponents seguida de it.unimi.dsi.webgraph.Stats. Feito isto obtemos um conjunto de ficheiros com informações bastante relevantes e também as distribuições de degree. Podemos ainda fazer uso da implementação existente do algoritmo HyperBall que devolve estimativas das distâncias entre vizinhos, e mais tarde utilizar os resultados com a classe ApproximateNeighbourhoodFunctionStats e assim obter ainda mais informações sobre a nossa network. Resultados Começamos por analisar o ficheiro “.stats” e os seus valores. A tabela em baixo relata como podem as métricas deste ficheiro colaborar na avaliação de um sistema de recomendações: nodes=108910 arcs=4285308 loops=36  Como esperado o número de nós e arcos corresponde ao nosso dataset inicial.  O valor de loops é consideravelmente baixo, o que pode ser traduzido em poucos ciclos fechados de aplicações a recomendarem-se entre elas. Do ponto de vista da qualidade de recomendação isto é algo que se procura. minoutdegree=0  Caso em que a recomendação falha e não apresenta qualquer resultado. maxoutdegree=40  Como esperado, uma vez que "obrigamos" que cada aplicação crie 40 arcos para fora. avgoutdegree=39.347 24084106143  Pode ser tratado como uma métrica de forma a perceber quantas aplicação não recomendaram o número esperado de aplicações dangling=1 terminal=1 percdangling=9.1818 9330639978E-4  Através de dangling percebemos quantas aplicações não recomendam nem são recomendadas. Em príncipio queremos o menor valor possível, uma vez que procuramos a maior diversividade possível no nosso sistema. minindegree=0 minindegreenode=108 909  Aplicação nunca recomendada. maxindegree=9750 maxindegreenode=346 88  Aplicação mais recomendada
  • 3. avgindegree=39.3472 4084106143  Número médio de vezes que uma aplicação é recomendada. Este valor por ser estranhamente exactamente igual ao avgoutdegree levantou algumas suspeitas no grupo. sccs=1 maxsccsize=108910 minsccsize=108910  Apenas existe 1 componente fortemente ligado, que se traduz no dataset todo. Idealmente teriamos diversos componentes a representar categorias diferentes.  Esta pode ser uma boa métrica, a qual podemos procurar aumentar e assim garantir que por exemplo: um jogo apenas recomenda jogos.  Para testar esta métrica imediatamente podiamos reduzir de 40 mais semelhantes para 10, reduzindo algumas recomendações residuais. Seguindo para o cálculo aproximado das distâncias entre vizinhanças podemos fazer uso dos resultados devolvidos pela classe ApproximateNeighbourhoodFunctionStats. Para obter estes resultados tivemos de correr o algoritmo HyperBall[3] o qual produz iterativamente o número de pares de nós à distância t. Devido ao elevado consumo de memória, este algoritmo faz uso de técnicas modernas como HyperLogLog que obriga ao uso de valores aproximados. Por este motivo computamos o algoritmo HyperBall 5 vezes, minimizando o erro no cálculo das distâncias. Dito isto recolhemos os seguintes resultados: average distance: 3.7955519291892466 (+/- 0.006159179123813056) effective diameter: 3.982939947577784 (+/- 0.004990141224530469) harmonic diameter: 3.9956615731924154 (+/- 0.024043508889339964) shortest-paths index of dispersion: 0.10258390989262252 Estes resultados demonstram que o utilizador estaria à distância de 4 recomendações para chegar a qualquer aplicação presente no dataset. Este valor pode ser determinante nas decisões de quem cria a user experience dum sistema de recomendações. Ainda podemos classificar a nossa rede através do SPID como properly social[3], visto que este valor é menor que 1. Estas redes favorecem ligações curtas, ao contrário de redes web-like onde ligações longas não são incomuns. Uma experiência interessante seria calcular esta mesma métrica para recomendações geradas por motores baseados em conteúdo, uma vez que estas recomendações seguem um modelo baseado em padrões de utilização.
  • 4. Fazendo plot com R dos ficheiros out e indegree(s) obtemos os gráficos que nos permitiram tirar as seguintes conclusões:  Do ficheiro outdegree obtemos a distribuição que nos permite visualizar que apesar da maior parte das aplicações ter 40 ligações para fora, nem todas têm. Do ficheiro outdegrees obtemos a densidade, que confirma este mesmo facto. Vem confirmar o valor apresentado anteriormente para o average out degree perto de 40.  Do ficheiro indegrees obtemos também a densidade para as ligações para uma aplicação. Visualizamos que a maioria das aplicações são recomendadas poucas vezes, existindo no entanto alguns outliers claramente visíveis. Em especial 6 aplicações recomendadas perto de 10000 vezes. Estes dados seriam interessantes para o refinamento do sistema de recomendação, possibilitando a remoção de aplicações presente em quase todos os padrões de utilização.  Por fim, do ficheiro indegree obtemos o gráfico de distribuição, ao qual aplicamos um logaritmo em cada eixo, permitindo complementar as conclusões anteriores com a visualização de uma aproximação a uma power law. Este facto permite-nos concluir que a nossa rede se aproxima de uma rede scale free[4], em que existem poucos nós com muitas ligações, tendo a maior parte deles poucas. A intuição por trás destes valores diz-nos que sendo recomendações com base em padrões de utilização, iriam existir poucas aplicações usadas pela maior das pessoas (redes sociais, utilidades, tendências, etc), comum à maior parte dos padrões, complementadas por aplicações outliers comum a poucos padrões. Previa-se assim uma rede scale free, visto que quase todos os outliers terão incluídos nos seus nós de recomendações estas aplicações padrão.
  • 5.  Referências 1. Avazpour, Iman; Pitakrat, Teerat; Grunske, Lars ; Grundy, John (2014), “Dimensions and Metrics for Evaluating Recommendation Systems” in Recommendation Systems in Software Engineering, pp 245- 273. – http://www.ict.swin.edu.au/personal/jgrundy/papers/rsse2014.pdf 2. Ekstrand, Michael; Riedl, John; Konstan, Joseph. (2011), "Collaborative Filtering Recommender Systems", Foundations and Trends® in Human–Computer Interaction: Vol. 4: No. 2, pp 81-173. – http://dx.doi.org/10.1561/1100000009 3. Boldi, Paolo; Rosa, Marco; Vigna, Sebastiano (2010), “HyperANF: Approximating the Neighbourhood Function of Very Large Graphs on a Budget” – arXiv:1011.5599 [cs.DS] 4. Barabási, Albert-László; Bonabeau, Eric (May 2003), “Scale Free Networks” – http://barabasi.com/f/124.pdf