Instituto Politécnico de Setúbal Escola Superior de Ciências Empresariais Recomendação de Navegação em Portais da Internet como um serviço suportado em ferramentas Web Analytics João Fernando dos Anjos Gomes Dissertação apresentada para cumprimento dos requisitos necessários à obtenção do grau de Mestre de Sistemas de Informação Organizacionais Orientadores: Cláudio Sapateiro Hernani Mourão Setúbal, 2016
51
Embed
Recomendação de Navegação em Portais da Internet como um ... MSIO-Joao... · Recomendação de Navegação em Portais da Internet como um serviço suportado em ferramentas Web
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.
Com o constante crescimento da utilização da Internet o número dewebsites e respetivaspáginascontínuaaevoluirtambém,porestemotivo,verifica-seumanecessidadedealinharaexperiência de utilização com os objetivos gerais de um website. Para satisfazer estanecessidadeosistemaderecomendaçãopropostosugerepáginasaoutilizadorquepossamserdo seu interesse combase emperfis de navegação de umwebsite em geral. Amaioria dossistemasderecomendaçãosãobaseadosemregrasdeassociaçãooupalavraschave(quandooconteúdo é considerado). No entanto, quando os dados não são suficientes ou são muitodispersoseaordeméconsiderada,umaabordagemtradicionalpodeserinadequada.Poroutrolado, assumindo outro paradigma, a área de Web Analytics, tem obtido um crescimentoconsiderável,atravésdeferramentasrobustasquepermitemarecolhaeanálisededadosdainternet,a fimdecompreendereotimizareficiênciaeeficáciadowebsite.Opresenteartigopropõeodesenvolvimentodeumsistemade recomendaçãobaseadona ferramentaGoogleAnalytics. O protótipo é composto por dois componentes principais que são: 1) um serviçoresponsávelpelaconstruçãoelógicaassociadaàcriaçãodasrecomendações;2)umabibliotecaincorporávelemqualquerwebsitequeprovidenciaráumwidgetderecomendaçãoconfigurável.Avaliaçõespreliminaresconstataramqueaimplementaçãoseguealógicadomodeloproposto.
1 Introdução1.1 MotivaçãoSendo que a Internet apresenta-se atualmente no dia a dia das pessoas e organizações, osfornecedoresadotamnovas formasdemelhorara informaçãoe serviçosdisponibilizadosaoconsumidorconsiderandotambémnovasformasdeinteração,hojeaoalcancedosutilizadores.
Torna-sefundamental,configurandoumavantagemcompetitiva,entenderasnecessidadesepreferênciasdosutilizadores/clientes.Esteconhecimentopodehojeseracionadodediferentesmaneiras,taiscomo,melhoramentodopróprioserviço/produtoe/oucanaismediadores,ouatémesmo dimensionamento de novos. No comércio não digital, as fontes de informação são,principalmente, estudos de mercado realizados por meio de pesquisas e entrevistas aconsumidores.Taismétodos,emboraúteis,sãomuitasvezescaroselimitadosnaamostra.
OsdadosrelacionadoscomanavegaçãoWebtornam-seumafonteprincipalparaexploraredarsentidoagrandesquantidadesdediferentestiposdedados.OsservidoresWebnãosófornecemos respetivos serviços, como também constituem uma fonte de informação útil para osproprietáriosdoswebsites,dadoqueregistamasvisitasàspáginasWeb.Durantealgunsanos,osWeb Logs foram analisados de forma automatizada para acompanhar os utilizadores dowebsiteeasrespetivassessões.
De facto, atualmente o mundo digital abre novos horizontes ao nível da compreensão docomportamentodoconsumidor/utilizador.Noentanto,os registosdeatividadenemsempresãofáceisdeprocessar,econverterestaanáliseemresultadosviáveisémuitasvezesdesafiante(areconstruçãodeumsiteémuitasvezescombaseemtentativaeerro). Infelizmente,nemtodososproprietáriostêmconhecimentoourecursospararealizarestaanáliseeconvergirosresultadoscomosobjetivos.
Paraalémdisso,enquantoosLogsdoservidorsãoalvodeumaanáliseintensiva,muitapesquisafoianexadaaestes,nuncatantotrabalhofoirealizadoaoredordanavegaçãoemgeral.Segundo(Chiarandini, 2014), a navegação pode ser definida de forma diferente do que o caso depesquisa;enquantooutilizadornavegaoobjetivoémenosclarodoqueumapesquisadirigidaporqueanavegaçãonãopodeserexpressaatravésdetexto.Tambémpodeacontecerqueoutilizador não tenha de todo um objetivo definido - navegação intensiva. Adicionalmente(Baeza-Yates,Ribeiro-Neto,&others,1999)classificouaindaqueatarefaemqueosutilizadoresde um sistema de recuperação de informação estão envolvidos, pode classificar-se de duasformas:informaçãooudadosdeconsulta(pesquisa)enavegação.Ambassãoformasemqueosutilizadoresacedemàinformação,sendoaprimeiradeacessoaleatórioeasegundadeacessosequencial.Pode-seentãoassumirqueestadistinçãotambémexistanaestruturadassessõesWeb.
Atualmente, uma atenção considerável é colocada nas aplicações de Data Mining, análisepreditivaeprospeçãodenegócios.Namaioriadasaplicações,ondenormalmenteaexpetativavemdestasprevisõeshánecessidadederecuperarficheirosderegistosdeacessosaowebsiteemquestão.Talcomojáfoimencionado,extrairconhecimentoapartirdestesdadosacarretaváriasexigênciasedestaforma,novosmétodosemergiram,talcomoéocasodasferramentasdeWebAnalytics discutidasna seção2.3.2queemcertamedida fundamentamcom rigor aabordagemdestetrabalho.
2
Apartirdeumaperspetivafuncional,cadawebsiteprecisadeintegraralógicaquemelhoraaconcretização dos objetivos pretendidos que fundamentam a sua própria existência. Taisobjetivos, podem variar consoante as visitas de um utilizador a uma página específica paraconverterpotenciaisinteressados.
Deste modo, sistemas de recomendação foram criados de forma a fornecer orientação,melhoraraexperiênciadeutilizaçãoefinalmenteatingirasmetaspretendidas.
As recomendações podem ajudar os utilizadores do website a focarem-se no objetivopretendidoparaevitardispersões.Podemserfornecidasalgumasindicaçõesdiretas,taiscomo,ondeéquesepodeobterdeterminadainformação?Comoéquesepodealcançaroobjetivo?Etambémassociarconteúdorelacionadoouprodutos/serviços.
Analisarestesdados,podeajudarasorganizaçõesadeterminarovalordotempodevidadeestratégias demarketing e produtos/serviços, assim como avaliar a eficácia das campanhaspromocionais,otimizandoa funcionalidadedasaplicaçõesbaseadasnaWeb, fornecendoumconteúdo personalizado/segmentado aos utilizadores e mais eficaz na estrutura lógica dowebsite.
MiningdeutilizaçãodaWebrefere-seàidentificaçãoautomáticaeanálisedepadrõesnofluxodecliquessubjacenteànavegação,assimcomodadosrecolhidosougeradoscomoumresultadodasinteraçõesdoutilizadorcomosrecursosdaWeb,numoumaiswebsites(Liu,Mobasher,&Nasraoui,2007).Oobjetivoécaptaromodeloeanalisarospadrõesdecomportamentoeosperfis de utilizadores nas suas interações. Os padrões identificados, são geralmenterepresentadoscomocoleçõese/ousequênciasdepáginas,objetosourecursosfrequentementeconsultadosporgruposdeutilizadorescominteressesounecessidadescomuns.
Existem alguns pontos fracos nesta lógica global, pois nem sempre é possível identificar outilizador(estaidentificaçãoéfeitaatravésdecookiesquepodemnãoestardisponíveisouserpermitidos), a informação mais detalhada sobre os utilizadores muitas vezes requerpreenchimentocompletodoperfil,omesmoutilizadorpodenavegaremdispositivosdiferentese diferentes utilizadores podem navegar num mesmo dispositivo (considerado o mesmoutilizador devido à chave guardadano cookie), omesmoutilizador emborapossa ter algunsinteressesalongoprazopodetambémterinteressesacurtoprazo,quesepodemalterardeformamaisdinâmica(porexemplo,outilizadormuitasvezespodeobterrecomendaçõessobreprodutossimilaresaosquejáadquiriu).
recomendados, embora o cliente possamanifestar interesse neles; falsos positivos, que sãoprodutosquesãorecomendadosmesmoqueoclientenãoapresentequalquertipodeinteresse.
Além disso, deve-se reconhecer que o resultado final dos sistemas de personalização nemsemprecoincidecomaperceçãodoutilizadorfinaldetalpersonalização(Li,2016).Noentanto,(Parra&Brusilovsky,2015)mostrouquepermitindoaoutilizadoralgumaformadecontrolarograudepersonalização,mantendoesteprocessoomenosintrusivopossível,produzummelhorenvolvimentoentreoutilizadoreaexperiênciageral.Istopodevircomoresultadoemquealémdosgrandesportaisemqueoperfildeutilizadoréatualizadoregularmenteeosmecanismosdeacompanhamento estão disponíveis devido à identificação do utilizador através deautenticação,eminúmeroswebsitesédifícilrecolherosdadospessoaise,portanto,conheceroutilizador.Destaforma,aidentificaçãodeumutilizadorreincidentenowebsiteeoseucontextoatualéquaseimpossíveldeobter.
Portanto,aorientaçãodestetrabalhosegueumalinhadeidentificaçãoeutilizaçãodepadrõesdenavegação semapreocupaçãodeumapersonalizaçãoaoutilizador. Istoé,não interessatantoa sua identificação,históricoe captaçãodeperfil;mas sim,oemparelhamentoda suanavegaçãonomomento(noseuatualcontextodenecessidades)comospadrõesdenavegaçãosemelhantes que tiveram sucesso considerando o objetivo definido para o website. Oalinhamento das necessidades dos utilizadores e objetivos para o website tem de serconsideradopeloseuadministrador,oâmbitodestetrabalhoabrangejustamentegarantirqueumavezdefinidosoencaminhamentodosutilizadores,esteéeficaz.
1.2 ObjetivosNopresentetrabalhodedissertação,pretende-seconstruirumaferramentaderecomendaçãodenavegaçãoincorporávelemqualquerwebsite.Tendoemcontaque,porvezesumutilizadorporinúmerasrazõespossanãocompreenderofluxodeumwebsite(porexemploporquestõesdedesignoucomplexidadedeumwebsite)estaferramentapodeorientá-lodeacordocomosobjetivos (para este problema concreto a solução passa por visitar determinada página)definidospeloadministradordowebsitequecontempleaestratégiadomesmo.
Aferramentapropostatemporbaseautilizaçãodohistóricodenavegaçãodisponibilizadopelaferramenta:GoogleAnalytics, sendo as recomendações a realizar orientadaspelos objetivosdefinidospeloadministradordowebsitenoGoogleAnalytics.
Oobjetivodestetrabalhopassaporgerartaisrecomendaçõesconsiderandooutilizadornoseucontextodenavegaçãoenãooutilizadorpersi.Assim,asessãodomesmoutilizadornãoéumacomponente necessária de contemplar no desenvolvimento do trabalho, uma vez que estainclusiveaindamantémalgunsdesafiosrelativamenteàidentificaçãodasuaduração,quetêmsido abordados ao longo dos anos numa base heurística. Estudos recentes sobre o assuntoapontaramparaum limiarde60minutos (Halfakeretal.,2015),oua indexaçãoàmédiadetemponaspáginasdowebsite(Dinucă,2012),contudo,namaioriadasvezesolimiaroriginalestabelecido de 30minutos é aplicado como exemplo (Berendt,Mobasher, & Spiliopoulou,2001).
Em termos funcionais, o objetivo do trabalho corrente passa pelo desenvolvimento de umabibliotecacombasenalinguagemJavascriptquedisponibilizaumwidgetaoutilizadorquando
AbibliotecaJavascriptconsomeumserviço,tambémpropostonodesenvolvimentoaplicacionalnumavertentedesoftwareasaservice(SaaS)responsávelporconsultarosdadosreunidospelaferramentaGoogleAnalyticscomosparâmetrosdepesquisa identificadoscomonecessários,produzindorecomendaçõescombasenosutilizadoresqueatingiramosobjetivosdefinidospeloadministrador dowebsite. Este serviço é o responsável por alimentar a biblioteca Javascriptmencionada anteriormente com as recomendações produzidas e indicar qual é omomentocertoaexibirasmesmas,tendoemcontaostemposmédiosdeabandonodeumadeterminadapágina.Alógicaimplementadanoserviçoédevidamentedetalhadanodecorrerdotrabalho.
1.3 MetodologiaPara a realização da presente dissertação é utilizada umametodologia de trabalho em queprimeiramentefoianalisadooestadodaartequesedivideemrevisãodaliteratura,ferramentasderecomendaçãoeWebAnalytics.
No capítulo de estado da arte são identificados os problemas e diferentes abordagensimplementadasnaáreaderecomendação/personalizaçãodeutilizadoresWeb.RelativamenteaocapítulodeFerramentasdeRecomendaçãoeWebAnalitycssãoapresentadasediscutidasalgumas ferramentas demachine learning utilizadas para recomendação e ferramentas deanáliseWeb com objetivo de recolha e criação de relatórios estatísticos do tráfego de umwebsite.ApósintroduzidootermoWebAnalyticseoseuconceito,éapresentadacommaiordetalheaferramentabasedesteprojetooGoogleAnalyticseosseusobjetivos.
Apósintegraçãocomoestadodaarteeabordagensderecomendação/WebAnalyticssegue-sea proposta de recomendação suportada em Web Analytics onde está descrito o modelopropostoe todaa sua lógica subjacente.Umavezestabelecidoomodeloprocede-se aumaimplementaçãodorespetivoprotótipofuncional.Paratal,define-seasuaarquiteturageralerelação entre os diferentes componentes domesmo. Após conclusão desta fase de análiseconcretiza-se a implementação/especificaçãodo serviçoGoRecommend queéo responsávelpelacriaçãodasrecomendaçõesebasedabibliotecaGoRecommendJS,queestáimplementadaseguidamente,responsávelpelacamadarepresentacionaldoprotótipo.
2 RevisãodaLiteratura2.1 ConceitosGeraisExtrairconhecimentosobreosutilizadoresdaInterneteoseuhistóricodenavegaçãotemsidoumaáreadepesquisaparamuitosdomíniosdeaplicação,desdeaprocurapormelhoriasnaexperiênciadeutilização(Ex:recomendaçãoepersonalização),àprocuradaeficácianoesforçodemarketingdigitalsegmentadoedestaformaalcançaroutilizadorcomconteúdosrelevantes.Independentementedoobjetivo,asdiferentesabordagensquetêmsidoadotadasenfrentamváriosdesafioscomuns.Nestecapítuloemqueseabordaumacaracterizaçãoglobaldotrabalhorelacionado na área, serve a presente subsecção para estabelecer a base sobre conceitos eterminologiaaserconsideradanassubsecçõesseguintes.
OtermoWebMiningtornou-semuitopopularprincipalmentedevidoàaplicaçãodetécnicasdeprospeção de dados para extrair conhecimento a partir de dados da Web, incluindodocumentos, hiperlinks, registos de utilização de websites, etc. (Mehtaa, Parekh, Modi, &Solanki,2012).
Web Mining de conteúdo é o processo de extração de informação semântica a partir deconteúdodedocumentosWeb,taiscomo,textosouimagenstransmitidasaoutilizadorfinal.Talprocessoenglobaadescobertaderecursos,categorizaçãoeagrupamento.
WebMiningdeestruturafoca-senaestruturadehiperlinks,normalmenteenvolvendoaanálisedoshiperlinksdeentradaesaídadepáginasWeb,estemétodoéusadopelosmotoresdebuscapara classificação de resultados (Mehtaa et al., 2012). Este tipo deMining permite extrairconhecimentosobreaorganizaçãointraeinterpáginas.
WebMiningdeutilização,consisteprincipalmentenaaplicaçãodetécnicasdeDataMiningparacompreender e servir as necessidades dos utilizadores das páginasWeb (Srivastava, Cooley,Deshpande,&Tan,2000).Tipicamente,nosdadosreunidosparatalanáliseinclui-seendereçosdeIP,navegadorutilizado,páginasvisitadas,origemetempoempágina,procurandoaeliciaçãode padrões de utilização para informar domínios de aplicação tais como: personalização,recomendação (orientada pela navegação, não a baseada em conteúdo) ou interfacesadaptativas.
OprocessodeWebMiningcompreendeofluxotípicoassociadoàs iniciativastradicionaisdeDataMining:recolhadedados,pré-processamento(limpeza,formatação,relacioná-losealinhá-losparaqueserevelemcompatíveis/acionáveisconsiderandoautilizaçãopretendida),aplicaro(s) método(s) de análise de eleito(s); e quando não se trata de uma iniciativa somenteexploratória e/ou descritiva, produzir consequentemente um modelo e utilizá-lo paraclassificaçãoe/ouprevisãoatendendoaosobjetivosfinaisdefinidos,porexemplo,sistemasderecomendaçãoe/oupersonalização.
6
AsprincipaisfontesdedadosusadasparaWebMiningsãoosLogsdeacessoaservidoresWebeLogs aplicacionais. Fontesdedadosadicionais tambémsãocomplementarmenteutilizadostantoparaapreparaçãodosdadoscomoparaseuprocessamentonaidentificaçãodepadrões,incluindo ficheiros dowebsite, metadados e bases de dados operacionais. Em alguns casospodemestardisponíveisdadosadicionaisdevidoàrecolhadosmesmosnoladodoutilizador,porexemplo,nainformaçãopersistidaemcookies,oudisponibilizadaemcontasquecontenhamperfisdeutilizadores(contemplando,e.g.dadosdemográficosepreferências).Tambémserviçosglobais de agregação de dados e monitorização de tendências como: ComScore(www.comscore.com),NetRatings(www.nielsen-netratings.com)eAcxiom(www.acxiom.com),constituempotenciaisfontesadicionaisacomporoucruzarnaexploraçãodosdados.
Análisedesessõeséumaabordagemcomumparagerarmedidasestatisticamenteagregadassobresessões.Técnicaspadrãodeestatísticasãoutilizadasparaadquirirconhecimentosobreocomportamento geral dos utilizadores, considerando, por exemplo, hora do dia, páginasfrequentementeacedidasoudeentradaesaída,tempoempágina,etc.Noentanto,outraformadeanálisedesessõeséaanáliseintegradadedadosdeutilizaçãoatravésdaabordagemOLAP(OnlineAnalyticalProcessing) (Alves,Belo,&Costa,2007).AabordagemOLAPassentanumaestrutura mais integrada para análise com maior flexibilidade e em diferentes níveis degranularidade.AfontededadosparaaanálisedeOLAPrecaigeralmentenaconstruçãodeum(híper) cubo. Um cubo de dados que pode ser visto como uma estrutura de matrizmultidimensional,emquecadadimensãorepresentaumconjuntodeatributosecadacélulaarmazena, o valor agregado de uma medida, como contagem, soma, etc. Este tipo derepresentação de dados suporta uma navegação exploratória através das dimensões erespetivosatributos.Osdadossãocarregadosatravésdeumabasededadosmultidimensionalque mantém um modelo de dados dimensional desnormalizado integrando as dimensõesselecionadas para análises (co)relacionadas. As ferramentas OLAP permitem hierarquias ealteraçõesnosníveisdeagregaçãoao longodecadadimensãoduranteaanálise.Análisededimensõesnestetipodeestruturaspodeserbaseadanosváriosatributosdisponíveis;atributosdomodelodimensionale.g.duração,domínio,recursoutilizado,navegador,origem;obtidosapartir de fontesoriginais (comopor exemploLogs) que carregaram segundooprocesso ETL(Extract-Transform-Load)omodelodimensional(Kimball&Ross,2015).Assimpermite-sequeaanálisesejaefetuadaempartesdoLogcorrespondentesaumperíododetempoouaumníveldiferentedeabstraçãocomrespeitoaqualquerdimensão.
A abordagem OLAP pode ser estendida a outros âmbitos deWeb Mining. Por exemplo, aintegraçãodedadosdee-commerce,quandopresentes,exploraaindamaisopotencialdestaorientação analítica para providenciar métricas importantes para o negócio (exemploparadigmáticonodomíniodeBusinessIntelligence,quepodeabrangerosváriosâmbitos).
Aanáliseporagrupamentodedados(clustering)constituiumadastécnicasdeDataMiningqueagrupaumconjuntodedadosquetenhamcaracterísticassemelhantes.Nodomíniodaanálisede utilização/navegação de um website, existem 2 tipos principais de agrupamentosinteressantesquepodemseridentificados:gruposdeutilizadoresegruposdepáginas(Hassan&Karim,2011).Agruparregistosdeutilizadores(sessõesoutransações)éumadastarefasmaisutilizadasemWebMiningdeutilizaçãoeWebAnalytics(queseráabordadonasecçãoseguinte),queprocuraestabelecergruposdeutilizadoresquecontêmpadrõesdenavegaçãosemelhantes.
Poroutrolado,oagrupamentoporpáginaspodeserefetuadocombasenascaracterísticasdeconteúdo associado (palavras chave ou atributos). No caso do agrupamento com base noconteúdo,osresultadospodemsergruposdepáginasouprodutosrelacionadoscomomesmotópicooucategoria.
Umaoutraabordagemsuporta-senadescobertaderegrasdeassociaçãoeanálisedecorrelaçãotendo como objetivo encontrar grupos de itens ou páginas frequentemente consultadas ouadquiridasemconjunto.Porsuavez,permiteorganizaroconteúdodewebsitese/ounavegaçãodeformamaiseficiente,oupromoverrecomendaçõestransversaiscomeficácia.
Na verdade, uma das principais aplicações deMining em regras de associação, quer emutilização Web, assim como dados e-commerce é a recomendação (que será discutidaespecificamentenasubsecçãoseguinte).
Seforintroduzida,adimensãotempo,tem-seumaorientaçãodiferentedaanálise.Atéaqui,foiconsideradaaorientaçãoporsemelhançasouassociações.Aanálisedepadrõestemporaiséuma técnica específica deMining que tenta encontrar tendências maioritariamente inter-sessões.Talanálisepermite,porexemplo,otimizaromarketingWebprevendoanaturezadevisitas futuras. Outros tipos de análise temporal que podem ser efetuados sobre padrõessequenciaisincluemdeteçãodepontosdemudança(detendência)eanálisedesimilaridadesesingularidades.
Muitos dos métodos acima referidos, permitem em última análise informar modelos deprevisão.Existemváriosmétodoscujasuanaturezaéaclassificaçãoeprevisão.Aclassificaçãoconsisteemmapearumconjuntodedadosemvárias classespredefinidas (e.g.previamenteidentificadas segundo alguma das abordagens anteriores). No domínioWeb tal consiste emdesenvolveroperfildosutilizadoresquepertencemaumaclasseoucategoriaemparticular.Oquerequeraextraçãoeseleçãodecaracterísticasquemelhordescrevemaspropriedadesdeumadeterminadaclasseoucategoria.Aclassificaçãopodeserefetuadapormeiodealgoritmosdeaprendizagemesupervisionados,taiscomo,árvoresdedecisão,classificadoresBayesianos(NaiveBayesnetworks),máquinasdevetoresdesuporte(SupportVectorMachines).Umaveztreinado,éavaliadooclassificador,eeste,poderáserutilizadoparaprevisão.
Apriorioriginal.Oobjetivodestesalgoritmoséencontrargruposdeitensquejuntosocorremfrequentemente em muitas transações, com a consideração de diversos critérioscomplementares (Slimani & Lazzez, 2014). Embora muito utilizados e com resultadossatisfatórios para a identificação de associações, a recomendação com base em regras deassociaçãoinerentementeenfrentadegradaçãoseoconjuntodosdadosfordisperso(Kasliwal&Katkar,2015)(Dinucă,2012).EsteéfrequentementeocasoemWebMiningdeutilizaçãopoisasvisitasdosutilizadorescobremapenasumapequenafraçãodositensdisponíveise,portanto,muitasvezesédifícilencontrarumnúmerosuficientedeitenscomunsnosdiferentesperfisdeutilizadores. Existem várias propostas para superar tais limitações (Liu et al., 2007)], porexemplo, reduçãodonúmerodedimensões (maspodemestara serdescartadasdimensõesinteressantesparaospadrõesfinais);ouemalternativa,reduzindooladoesquerdodasregrasnouniversoderegrasglobais,considerandoocaminhopercorridopelasessãoativa,reduzindoarestriçãodeumacompletacorrespondênciacomaregranoseuladoesquerdo.
Uma área com grande aplicação deWebMining é de facto a recomendação e ainda a suafrequenteutilizaçãoparapotenciarpersonalizaçãocomobjetivodemelhoraraexperiênciadoutilizador.Emborasejamáreas(recomendaçãoepersonalização)distintaspersi,nãoéincomumutilizarrecomendaçõesnapersonalização.Deformageral,ossistemasdepersonalizaçãoWeb,dada a sua finalidade e complexidade podem ser enquadrados de acordo com (Suguna &Sharmila, 2013) nos principais tipos seguintes: 1) memorização, a forma mais simples depersonalização,ondeasinformaçõesdoutilizadorcomoonomeehistóricodenavegaçãosãoarmazenadas(porexemplo,usandocookies),paramaistardereconheceroutilizadorquandoestevoltar;2)Personalização,recolherinformaçãosobreoutilizadoratravésdeformulárioscomoobjetivodepersonalizarconteúdoeestruturadowebsite(oprocessoglobaltendeasernomáximo semiautomático, pois exige sempre alguma resposta por parte do utilizador); 3)Orientação ou recomendação, recomendar/auxiliar navegação ou conteúdos consideradosrelevantesparaosinteressesdoutilizador(implicitamenteinferidos,comoporexemplo,perfilde navegação, ou explicitamente, como por exemplo, formulários de preferências dosutilizadores)afimdefacilitaroacessoàinformação/produtonumgrandewebsite;4)Apoioaodesempenhodetarefas,executandoaçõesemnomedoutilizador.
AlémdosalgoritmosdeMiningjámencionadosacima,comparticularrelevânciaparaasregrasde associação em sistemas de recomendação, existem duas abordagens complementaresutilizadas na recomendação e personalização: a recomendação baseada em filtragem deconteúdoearecomendaçãobaseadanafiltragemcolaborativa.
Natécnicadefiltragembaseadaemconteúdo,arecomendaçãodepáginasconsideraositensem que o utilizador tenha classificado anteriormente com base no seu perfil. O perfil doutilizadorpodeserconstruídoexaminandorespostasapequenosquestionários(porexemploformulários de registo que explicitamente recolhem preferências), classificação de itens ouhistórico e padrão de navegação do utilizador. Este método de recomendação dependefortementedaexperiênciapassadapeloutilizadoremesmoquandopossivelmentesabermaisacerca do mesmo. A sua caracterização contextual continua a ser um desafio, dados osinteressesdinâmicoseoportunistas(porexemploapósumacompraespecifica,oseuinteressepodemudaracurtoprazoouatémesmoofoconowebsite)(Nadi,2011).
Naabordagemdefiltragemcolaborativae.g.(Riecken,2000),páginasWeb (ouprodutos)sãorecomendadas a um utilizador particular quando outros utilizadores semelhantes tambémpreferem as mesmas páginas. A definição de "semelhança" entre utilizadores depende das
9
aplicações que utilizam os sistemas de recomendação, por exemplo, podem ser definidosutilizadores semelhantes quando estes atribuem classificações próximas a páginasWeb ouwebsites,assimcomo,utilizadorescompadrõesdenavegaçãosemelhantes.Estaabordagemtambéméalvodealgumacriticaapontandoduasdesvantagensespecíficas:1)Dispersãoe2)Escalabilidade (Suguna& Sharmila, 2013). Sendo a dispersão, a quantidadede classificaçõesobtidasanteriormente,podendoterordensdegrandezamenorqueonúmerodeclassificaçõesquenecessitamrealmentedeserprevistas.Emrelaçãoàescalabilidade,decorreque,emgeralcálculosmuitolongospodemsernecessáriosquerpelocrescimentodonúmerodeutilizadores,querpelonúmeroderecomendações(porexemploprodutos/páginas).
De acordo com (Nakatani& Chuang, 2011),WebAnalytics é utilizado para compreender osclientes online, assim como os seus comportamentos, a influência do design para que sejapossível tomardecisõesbenéficasparaonegócioealcançarosobjetivosdaorganização.Osautoresressalvam,noentanto,queoobjetivodaanáliseWebnãoéapenasotimizarpáginasdowebsite,masdeapoiaraconcretizaçãodosobjetivosglobaisdeumaorganização.
Tal como referido anteriormenteWeb Analytics tenta compreender os utilizadores de umwebsite através da análise das métricas recolhidas para que a eficácia dos websites sejamelhorada.ViaWebAnalyticspode-seinferircomportamentodosutilizadoresfaceaoscliquesrealizados,àssuaspesquisasdentrodedeterminadowebsite,permitindoaoanalistadetetaroslocaisexatosdecliques,asuafrequênciaefluxo.
2.5 FerramentasdeRecomendaçãoeWebAnalyticsNestaseçãosãoabordadasinicialmentealgumasferramentasderecomendação,objetivosdasmesmas e alguns exemplos. Posteriormente as ferramentas deWeb Analytics com maiordestaqueparaaferramentadeWebAnalyticsbasedestetrabalhooGoogleAnalytics.
2.5.1 FerramentasdeRecomendaçãoAsferramentasderecomendaçãoalteramaformacomoosutilizadoresdoswebsitesinteragemcomestes.Aoinvésdesecingiraumaexperiênciaestáticaemqueosutilizadorespesquisamdeterminados conteúdos/produtos, dotam-nos de uma interatividade adicional paraprovidenciar uma experiência melhorada de utilização. As ferramentas de recomendaçãopreveemasnecessidadeseexpectativasdeumutilizadorespecíficocombasenoseuhistóricodevisualizações,pesquisas,comportamentoepreferências,constituindoeconsiderandooseuperfil,operfildeoutrosutilizadoresecaracterizaçãodosconteúdos/produtos.
Pornorma, as listasde recomendaçãoproduzidasnestas ferramentas suportam-senumadeduas abordagens principais: filtragem colaborativa e filtragem com base em conteúdo, cujoprincípioelógicasubjacentesforamjáexpostosnasecçãoderevisãodaliteratura.
• Servidor de Eventos – Camada de Analytics para compilar eventos de múltiplasplataformas;
• Galeria deTemplates –Onde estão disponíveis os diferentes algoritmos demachine
learning.
12
Comofunciona:
O servidor de eventos coleciona continuamente os dados reportados pelas diferentesplataformas. Posteriormente os dados são tratados pelos algoritmos de machine learningescolhidosdagaleriadetemplatesesãoconstruídosmodelospreditivosquesãocompiladosparaumserviçoWebquerecebefiltroscomoparâmetroserespondecomprevisõesemreal-time.Aarquiteturalógicaestáilustradanafiguraabaixo.
GooglePredictionAPIOGooglePredictionAPIéumserviçotodoelebaseadonacloudquepermiteconstruirmodelosdemachinelearning.Providenciaumconjuntodeferramentasdeprevisãoquepodemajudaraanalisar os dados de um determinado modelo para alimentar outras aplicações, tais comoanálisedesentimentosdocliente,deteçãodespam,sistemasderecomendação,etc.
ApósotreinodosdadosédisponibilizadaumaAPIondeépossívelpesquisarporprevisõesemtempo real com base nos modelos treinados, tendo como vantagem o grande nível deperformancepoisarespostadaAPInuncaésuperiora200ms.
Adobe Analytics (Pago) – O Adobe Analytics é maiscompleto que oGoogleAnalytics, no entanto não existeuma versão gratuita desta ferramenta. O Adobe utilizarelatórios demarketing, de vendas, relatórios de todo ocomportamento do utilizador, entre outros. Trata-se deuma ferramenta que permite a análise em tempo real,funcionandomuitobememdispositivoscomoostablets,smartphonesedesktop.
Piwik (Gratuito) - é um software OpenSource, que permite acompanhar e analisar
Seguidamente,podemosverificarumatabelacomarelaçãofrequênciadepesquisaecotaçãodas ferramentas de Web Analytics, com origem na plataforma líder Trustradius
2.5.3 GoogleAnalyticsAs bibliotecas JavaScript do Google Analytics utilizam cookies HTTP (hypertext tranferprotocol)paraidentificaroutilizadornumwebsite.Estaidentificaçãoocorrearmazenandoumidentificadorúnicoparaqueositepossaleresseidentificadorseoutilizadorvoltarnovamentee desta forma reconhecê-lo com base nos dados colecionados anteriormente. O Google
Por exemplo, é com base nas informações colecionadas através do Google Analytics quepodemos analisar se os visitantes de um determinado site estão a ter um comportamentodesejadocomorespostaaumadadacampanhademarketingonline.
OGoogleAnalytics apresentavários instrumentosparaquantificaressasavaliações,quevãopara além do simples carregamento e monitorização do código de acompanhamento naspáginas. Um desses instrumentos do Google Analytics são os objetivos. Estes permitemmonitorizarumdesteselementos:
• quantaspessoaschegamaumacertapágina(predefinida);• quantaspessoasficamnosite/paginaumdeterminadointervalodetempo;• quantaspessoasviramumnúmeromínimodepáginasnosite;• quantas pessoas desencadearam um determinado evento (e.g. preencher um
formulário).
Porqueéqueosobjetivosdevemsercriados?
Os objetivos dão-nos uma boa quantidade de informação útil. Com objetivos podemosmonitorizar se as pessoas que estão num determinadowebsite, estão a fazer aquilo que ésuposto estarem a fazer (visitar uma página, uma venda, ver um vídeo, preencher umformulário,etc).Anavegaçãoquelevaàconcretizaçãodosobjetivosoriginaasconversões,i.e.,dosvisitantesquantosatingiramosobjetivosestabelecidosnamonitorização.Nafiguraabaixopodemosverificaracorrespondênciaentreonumerodevisitasetotaldeobjetivoscumpridos.
OconceitodedimensãoéimplementadonoGoogleAnalyticscomoumatributodescritivoouumacaracterísticadeumobjetoquepoderecebervaloresdiferentes.Porexemplo,umlocalgeográfico poderia ter uma dimensão chamada Latitude, Longitude ouNome da cidade. OsvaloresparaadimensãoNomedacidadepoderiamserSãoFrancisco,BerlimouLisboa.
Browser,Páginadesaída,DispositivoePaíssãoexemplosdedimensõesexibidasporpadrãonoGoogleAnalytics.Asdimensõespodemserexibidasemtodososrelatórios,aindaquesepossamver algumas dimensões diferentes, dependendo do relatório específico e sua customização.Estasdevemserusadasparaajudaraorganizar,segmentareanalisarosdados.
• Hyperlinks (outros sites): também chamados de tráfego de referência ou referral.Mostratodososwebsitesdeterceirosquelevaramvisitantesparaoseuwebsite.Nestalista,entramtambémasredessociais,comooFacebookeoTwitter.
Éumamedidaquantitativadosdadosdasdimensões.AsmétricasdoGoogleAnalyticspodemserfornecidasempercentagensounúmerosexatos.NºdePáginasporsessão,Duraçãomédiada sessão e tempo em página são exemplos demétricas noGoogleAnalytics. Abaixo serãodescritosalgunsexemplosdemétricasdisponíveis:
Visitas e visitantes são dois termos que podem facilmente ser confundidos. O número devisitantes(ouvisitantesúnicos)éaquantidadedepessoasquevisitaramdeterminadowebsite,independentementedaquantidadedevezesqueofizeram.Onúmerodevisitasmostraquantasvezes houve acesso aowebsite, sem levar em consideração a quantidade de pessoas que oacederam.Porexemplo,seomesmovisitanteacederaumdeterminadosite3vezesduranteomesmodia,oGoogleAnalyticssóirácontabilizar1visitantee3visitas.Estamétricaéimportantedeseracompanhadapoisrefletediariamenteaaudiênciaqueumsiteouumblogpossui.Porexemplo,umsitequemantémsempreestávelonúmerodevisitantesevisitaspodemostraremanálisequenãoestáaatrairnovosvisitantes,ouqueaspessoasqueestãoaacederaositesãoasmesmas.
OnúmerodevisualizaçõesdaspáginasouaschamadasPageviews,indicamquantaspáginasdowebsiteforamvisitadas,noentantoestamétricaporsisónãoéespecífica.Porexemplo,ter50.000 Pageviews e 100 visitantes numwebsite, é completamente diferente de ter 50.000Pageviewse50.000visitantes.Ambososcasossãoextremosediferentes.Umamétricaqueéderivadadasvisualizaçõesdepáginaseque traz informaçõesmais relevantesemrelaçãoaocomportamentodosvisitantesdosite sãoasvisitasporpágina,pois indica-nosonúmerodevisualizaçõesqueumapáginaobtém.
20
Ataxadeabandonomostraapercentagemdepessoasqueacedemapenasaumapáginadowebsiteenãocontinuamanavegaçãoparaumasegundapágina.Ataxadesaída,porsuavezmostraapercentagemdevisitantesqueestavamnumadeterminadapáginaesaíramdowebsite,noentanto,aocontráriodataxadeabandono,ataxadesaídanãotememconsideraçãoseé,ounão,aprimeirapáginadowebsitevisualizadaporumvisitante.Peloque,cadaumadaspáginasmaisimportantesdowebsitedeveterataxadesaídaanalisadadeformafrequente,parapoderemserfeitasotimizações.Apercentagemdenovasvisitasmostraquantosdosvisitantesnumdeterminadoperíododetempoestãoa visitarum site pelaprimeira vez. Para analisar estamétrica, épreciso algunscuidados:umataxamuitobaixasignificaquearetençãodositepodeestarnormalizada,porém,podenãoestaraatrairnovosvisitantes,porsuavezumataxamuitoaltasignificaqueositepodeestaraatrairmuitaspessoas,contudoestaspessoasacabampornãoregressaraosite.Assimocruzamentocomoutrasmétricaspodeajudaraesclarecer.Éaindaimportanteperceberqueaidentificaçãodevisitantesnovosedosvisitantesfrequenteséfeitaatravésdeumcookie,esteéguardadonobrowserdovisitantenaprimeiravezqueeleacedeaosite.Quandoestevisitantesetornafrequente,oGoogleAnalyticsreconheceocookieesabequeaqueleutilizadorjáestevealipelomenosumavez.Oqueaconteceéqueestecookiepodeserapagadomanualmente,oudesativado,equandoovisitantevoltaraosite,écontabilizadocomoumvisitantenovo.Apesardenãoseralgocomum,podeoriginarumamargemparaerro.
2.6 DiscussãoNestecapítulosãodiscutidasasabordagens,métodoseferramentasutilizadosnosdiferentestiposdeWebMiningeemparticularaquelesquesuportamarecomendação.Considerandoosobjetivos do trabalho e o seu enquadramento na vertente deWeb Mining de navegação,consideram-se mais pertinentes os trabalhos que abordam a recomendação suportada emfiltragem colaborativa ou em algoritmos de identificação de regras de associação. Contudo,ambostêmlimitaçõesinerentesqueforamdiscutidasequeseprendemcomanecessidadedevolume de dados não dispersos e no caso das regras da associação ainda também com a
21
impossibilidade prática de contemplar a ordem dos fluxos de navegação (i.e., da sequênciaordenadados itensconstantesna(esquerda)daregra).Adicionalmentequalquerabordagemsuportada em algoritmos de Data Mining tem inerentemente um enfoque na extração defeaturesquecaracterizamgrupose/ousegmentosrequerendoparatal(volumede)dadossobremuitas,nemsempreacessíveis,variáveis.Emalternativa,poderiamserconsideradosalgoritmoscapazesdemodelardadoscommenordimensão/volume,todavia,estesmuitasvezesacabamporgerarmodeloscomfracopoderexplicativoreal.
AsnovasalternativasemergentesdatradicionalabordagemOLAPfocadasnasestatísticasdenavegação (e não no utilizador) parecem constituir a alternativa considerando o âmbito dotrabalho(Alves&Belo,2004).Destaformaépossívelinquirirosdadospersistidosrespeitantesànavegação,queao contráriodealgunsmodelosobtidospor recursoa técnicasdeMining,estarãosemprealinhadoscomautilizaçãorealatual.Relativamenteàquestãodaperformance,à medida que estes dados tenhammais dimensões (variáveis) e volume de registos, que éjustamenteamotivaçãoparaasintetizaçãoqueosalgoritmosdeMiningpodemrealizar,estapode ser ultrapassada considerando restrições de dimensões e período temporal que sepretende em cada solicitação, atendendo às necessidades e contexto, facto que leva a ummodelo, e consequente implementação, parametrizável como proposto a partir do capítuloseguinte.
Esta é a orientação base das ferramentas Web Analytics eleitas, em particular, o GoogleAnalytics,adotadocomobasenodesenvolvimentodestetrabalho.Estaspermitemarecolhaeorganizaçãodedadosassimcomoasquestõesrelacionadascomagestãododesempenhoacimareferida.
Assumidamente, com esta abordagem não se encontram necessariamente padrões ocultos,nem se sintetizam características de grupo de utilizadores e/ou conteúdo, mas realizam-serecomendaçõescombaseempadrõesrealmenteexistentestenhamestaqualquerordemderepresentatividade.Ficaassimofoco,deacordocomoâmbitodotrabalho,noemparelhamentodanavegaçãodoutilizador(noseucontexto,qualquerqueesteseja)nopadrãoexistentemais“conveniente”emcadamomentoàmedidaquesecolecionaoseuprópriopadrão.Sendoquea “conveniência” neste trabalho se refere à experiência de utilização melhorada face aosobjetivosdenavegaçãoestabelecidosparaowebsite.
3 RecomendaçãosuportadaemWebAnalyticsUmutilizadorquandoprocuradeterminadowebsitepressupõe-sequeoconteúdodomesmosejadoseuinteresse,noentanto,aformacomoosconteúdosestãodispostosouanavegaçãoimplícita do mesmo pode não estar de acordo com as necessidades ou expectativas dosutilizadores, para isso existem e podem ser definidosKPI´s (key performance indicator) quepermitemavaliaretirarconclusões,relativamenteaocaminhoqueowebsiteestáalevareseesteéopretendido.CombasenoGoogleAnalytics,aferramentabasedestetrabalho,podemosdividirestesKPI´sem2componentes:
AsDimensõessãoessencialmenteascategoriasdosdados,ouseja,definemcaracterísticasdosdados por categorias identificadas e customizadas, por exemplo algumas das dimensõesdisponíveissãootipodeutilizador(novooufrequente),aorigemdoutilizador(owebsitedeondeomesmoéproveniente),onavegadorutilizado,dadosdemográficosdoutilizador(país,
Comreferidonosubcapítulo2.3.3,asdimensõeseasmétricassãoutilizadasemconjuntoparafornecerKPI’s que suportem comparação, pois as dimensões indicam-nos a informação queestamosatratareasmétricas,osnúmerosreaisparacomparação(Ex:onúmerodevisitasdeuma página à data de hoje comparativamente ao número de visitas após um determinadoperíododetempo).
3.1 ModeloPropostoO objetivo do modelo proposto passa por encaminhar o utilizador através de um fluxo depáginas, tendo em conta a página em que este se encontra até à página/ páginas que oadministradordowebsitetenhadefinidocomoobjetivo.Emcadapáginavisitadapeloutilizadoré-lhesugeridaumapáginaseguintequefaçapartedofluxoequeoiráorientaratéumobjetivo,percorrendoomenorcaminhopossível.
Subjacente ao mecanismo de recomendação está a definição inicial pelo administrador doobjetivodowebsite,materializando-osnoGoogleAnalytics.Comestabase,semprequeumapágina é visitada por um utilizador a GoRecommendJS, que implementa o modelo (aimplementaçãoédescritanocapitulo4),fazumpedidoderecomendações(recorrendoàapidoGoogleAnalytics)paraproporaspáginasparaoutilizadorvisitarseguidamente.
Caso contrário, são solicitadas ao Google Analytics as páginas seguintes à página atual,ordenadas pelo número de utilizadores por forma descendente (elegendo as 5 primeiras –
23
configurável) em que nesse caminho tenha ocorrido uma conversão para um objetivo. Estasolicitação aoGA é formulada atendendo a um conjunto de parâmetros (configuráveis) quepodemenriquecera lógicadomodelonaelaboraçãodasrecomendações.Osparâmetroseoseusignificadosãoapresentadosseguidamente:
• (Opcional) Data de Início: baliza o período sobre o qual serão calculadas asrecomendações;
• (Opcional) ChavedaDimensão customizadapara calcular o tempoempágina: estavariáveléutilizadaparacalcularotemporealemqueoutilizadordedicaasuaatençãoaowebsite,otempoqueapáginanãoestáemfoconãoécontabilizado.EstachaveéobtidaaocriarumadimensãopersonalizadanoGoogleAnalytics;
• (Obrigatório) Chave da propriedade: também identificada como código deacompanhamento, é o código único de acompanhamento dowebsite por parte doGoogleAnalytics,todasaspesquisasserãofeitascombasenestecódigo.
3.2 LógicadeNotificaçãoO modelo desenvolvido contém uma preocupação adicional/complementar à geração dasrecomendações.Emtermosdeexperiênciadeutilizadornãoénegligenciável,a intrusãoquepoderácausaraapresentaçãodasrecomendaçõesaoutilizador.
Ao clicar nesse mesmo ícone do widget é disponibilizado ao utilizador uma lista com asrecomendações existentes, ordenadas pela recomendação que mais converteu até àrecomendação que menos converteu. Caso o utilizador já tenha clicado em alguma dasrecomendaçõesestasdescemparao fimda listamantendo sempreaordenaçãopelomaiornúmerodeconversõescasotenhaclicadoemmaisqueuma.
Botõesdeaumentarediminuiratrasocomqueanotificaçãoéexibidacomummínimodeatrasode 0 ou com um máximo de atraso correspondente ao valor originalmente calculado(parametrizávelemfunçãodamédiaedesviopadrão).Cadacliquenosbotõesaumentaoureduzem10%dovalorcalculado.
3.3 SíntesedoModeloParasintetizaromodelorecorre-seaumdiagramadesequênciasdesenhadoabaixosegundoalinguagemUML(UnifiedModelingLanguage),que permite representar um sistema de forma padronizada, com o intuito de facilitar a compreensão antes da implementação.
O diagrama de sequências por sua vez representa a sequência de mensagens entre osparticipantes, onde o tempo decorre para baixo e mostra o fluxo de contacto entre osparticipantes.Atravésdestefluxosequencialépermitidoaoleitorvisualizardeformasimplesoconjuntodeaçõessubjacenteàlógicadomodeloquernageraçãoderecomendaçõesquernasuadisponibilização.
Figura11-Síntesedomodeloproposto
26
4 ProtótipoDesenvolvidoTal como descrito anteriormente, o objetivo do modelo passa por encaminhar o utilizadoratravésdeumfluxoqueoguieatéumapáginadefinidacomoobjetivopeloadministradordowebsite, sugerindo a(s) página(s) seguinte(s). Este fluxo é calculado através do histórico deutilizadores que atingiram o objetivo, histórico este que é obtido recorrendo à ferramentaGoogleAnalytics,apósaferiçãodofluxodenavegaçãoasrecomendaçõessãodisponibilizadasaoutilizadoratravésdeumwidgetquedeverásercontempladonowebsite.
O tempo em página é um desses casos, pois o GA calcula o tempo em página através dodiferencialdetempoentreaentradanumapáginaeumcliqueparaoutrapáginadomesmowebsite,ouseja,mesmoqueoutilizadorestejafocadonoconteúdodeumapáginaedemorealgunsminutosnamesmacasonãovisiteoutrapáginaotempocontabilizadoéiguala0,estecalculonãoéfeitonoeventodesaídadapáginaoudobrowserporquenãoégarantidoqueanotificaçãoassíncronasejaentregueantesdofechodapágina/browser,alémdissoexisteaindaoutrafalhanestemétododecálculoquepassapornãoterumanoçãoexatadotemporealqueoutilizadoresteveempáginapoisestepodeterowebsiteabertonumaabaeessamesmaabaestaremsegundoplanoouminimizada,ouseja,outilizadornãoestáefetivamenteaconsultarowebsiteapesardeteromesmoaberto.Existemalgumasabordagensquepassamnãosóporminimizar esta perda de dados,mas tambémotimizar osmesmos para que estejamomaispróximospossíveldarealidade.
Umaabordagempassaporcriareventoscom intervalosde tempoesemprequeeste forematingidosnotificaroGoogleAnalyticsedestaformaépossívelenquadrarostemposempáginaemintervalosdetempo,ouseja,comoexemplosãocriadosnoGoogleAnalytics3eventos,ointervalode0 – 10 segundos, 11– 30 segundos emais de30 segundos, após a criaçãodoseventoséadicionadaadevidalógicaaowebsitequenotificaoGoogleAnalyticssemprequeumintervaloéatingido.
Outra abordagem passa por utilizar a função javascript “sendBeacon”, que permite efetuarpedidosdeformaassíncronaemsegundoplano,quandoobrowseré fechadoedesta formaconseguimosnotificaroGoogleAnalytics,alimitaçãodestafunçãoéasuacompatibilidadecomosbrowsers, nestemomento sóé suportadaemGoogleChromeeFirefox, por issodeve sercomplementadautilizandooeventoonBeforeUnloadchamadoimediatamenteantesdofechodobrowsereefetuaranotificaçãodoeventoaoGoogleAnalyticsdeformasíncrona.
• Objetivo: Serviço responsável por toda a lógica de consulta no Google Analytics eformatação dos dados para construção das recomendações que são disponibilizadasatravésdeumaapi.
• device_width:Alarguraempixéisdodispositivo,estevalorseráenquadradodeacordocom a lógica do GA numa categoria (< 600px = mobile, >= 600px e <= 1024 =tablet,>1024=desktop),esteparâmetroéutilizadocasoodevice_filtersejaativado.
• country_filter: define se os resultados devem ser delimitados pelomesmo país, pordefeitoo valor é 0 (não filtrar), caso sepretenda filtrar atribuir o valor 1. CasoesteparâmetrosejaativadoseráutilizadaabibliotecaMaxmindGeoIPparacalcularopaísdeacordocomoipdoutilizador.
• device_filter: define se os resultados devem ser delimitados pelo mesmo tipo dedispositivo,pordefeitoovaloré0(nãofiltrar),casosepretendafiltraratribuirovalor1.
Os dados são formatados para serem enviados e de seguida oGoRecommend pergunta aoGoogleAnalyticsquaisostemposdeabandonodapáginaatual,calculaamédiaeoseudesviopadrãoeobtémotempodeatrasosobreoqualasrecomendaçõesdevemserexibidascombasenaseguintefórmula:
4.3 GoRecommendJSGoRecomendJS é uma biblioteca desenvolvida com base na linguagem de programaçãoJavascript,estabibliotecaintegracomoserviçoGoRecommendqueapósconfiguraçãoporpartedoadministradordowebsitecombasenumconjuntodeparâmetrosqueserãodescritosabaixodisponibilizaumacamadarepresentacionalcombasenumwidgetqueindicaasrecomendaçõesdisponíveis para uma determinada página dowebsite e alguns botões de configuração quepermitemumamaiorflexibilidadedomesmoperanteoutilizador.
• titles: lista composta por pares chave-valor, em que a chave é o código ISO 639 doidiomaeovalorotitulodowidgetcorrespondente,casoachavenãosejafornecida,otitulo será assumido por defeito quando não haja um idioma correspondente, porexemplo:[{value:“Recommendations”},{key:'pt-pt',value:”Recomendações”}],paraosnavegadoresemqueoidiomaépt-ptseráexibido“Recomendações”,paratodososoutros “Recommendations”, caso este atributo não seja fornecido será assumidosempreovalor“Recommendations”.
Quandoapáginaécarregada,aGoRecommendJScomeçaacontarotempoempágina,acada500msocorreumeventodeverificaçãodoestadodapágina,casoestaestejaemsegundoplanoocontadorpara,noentantooseventoscontinuamaocorrer,casooutilizadorvolteàpáginaomesmoeventoocorreeocontadorcontinuaasuacontagem.Quandoapáginaforfechadaqueresteja em segundo plano ou não, é enviado para o GA o valor real em página através dosmétodossendBeacon(casosejasuportado),ouatravésdacombinaçãodométodobeforeunloadcomumachamadasíncronaaoGA,destaformaconseguimosgarantirumamaiorprobabilidadedesucessonoenviodosdados.
32
ExemplodeutilizaçãodabibliotecaGoRecommendJS:
Importaroseguintecódigonofinaldapágina:
4.4 DescriçãoFuncionaldeAplicaçãoPara a demonstração da aplicação foram utilizados dados reais, contudo por questões deconfidencialidade estes dados forammascarados e incorporados num layout gratuito comamesma estrutura de navegação que o original. Ao longo desta seção tem-se como objetivoapresentaraexperiênciadoutilizadorrelativamenteaowidgetderecomendaçõesapresentado.
A estrutura para a demonstração contempla as seguintes páginas: Homepage, ‘Sobre nós’,‘Contactos’, ‘Portfolio’e ‘Forma’.Será tambémcontempladaapágina ‘Portfolio’ configuradapeloadministradordowebsitenoGoogleAnalyticscomopáginadeobjetivo.
Inicialmenteé apresentadoo conjuntodeanimaçõesquedãoentradaaowidget napágina,depois a dinâmica das recomendações nas diferentes páginas e finalmente o impacto dainteraçãodoutilizadorcomasaçõesdeconfiguraçãodisponíveisnowidget.
2. Aapresentaçãodowidgetaumentagradualmenteaetiquetaatéàtotalvisibilidadedotitulo e posterior diminuição até onde fica apenas o ícone. Para este caso oadministradordowebsiteconfigurouaGoRecommendJScomascoresdefundobranco,deletraapretoeposicionou-onocantosuperioresquerdosegundoaparametrizaçãodescritanoponto4.3.
4. As recomendações, onde o fluxo que corresponde em mais conversões a partir dahomepageéparaapágina‘portfolio’,sendoestaapáginaobjetivodowebsiteencontra-sena 1ª posição.De seguida as páginas commais conversões são respetivamente apágina‘Sobrenós’e‘Contactos’.EstaseriaarecomendaçãodaGoRecommendparaaHomepage. Tal como podemos verificar ainda a página ‘Sobre nós’ não se encontradisponívelàprimeiravistanomenu,umdoscasosemqueowidgetderecomendaçãoéumamaisvalia.
5. Omesmocasodarecomendaçãoanterior,masdestavezoutilizadorutilizouobotão na configuração dowidget indicando que pretende receber apenas as 2 primeirasrecomendaçõesdisponíveisenãomaisqueisso.Passoutambématerobotão ativo,podendoassimreporaslinhasdisponíveisatéaonúmerodisponívelderecomendações.Para os exemplos seguintes será restaurado o número de linhas para o número derecomendaçõesdisponíveis.
6. Nesteexemploédemonstradoaalteraçãonasrecomendaçõesnumcontextodiferente,ouseja,navega-separaapágina‘Contactos’eépossívelverificarqueapágina‘Portfolio’(Objetivo) consta na primeira posição das recomendações, sendo a que converte osutilizadores.Apágina‘Sobrenós’mantem-senasegundaposição,ouseja,aspessoasquemaisconvertememsegundolugarvisitamapágina‘Sobrenós’posteriormenteàpágina de ‘Contactos’. É possível verificar também que a página ‘Forma’ é uma
35
recomendaçãoquenãoconstavanaHomepage,oquepodelevaraduasconclusões:1)nãoexistemvisitasàpáginaformaapartirdaHomepage,2)apesardeexistiremvisitasàpáginaformaapartirdaHomepagenãoexistemconversõesemqueestasequênciaocorranofluxo.Porultimodeixa-sedeterapágina‘Contactos’comorecomendação,poiséaprópriaetemosaHomepagecomorecomendaçãopoisefetivamenteexistirãoconversõesondeo fluxo de navegação contenha a passagem pelaHomepage com origem na página‘Contactos’.
Apenasnãofoipossíveldemonstrarasaçõesdosbotões ,quepermitemaumentaroudiminuiratraso com que a notificação é apresentada pois trata-se de lógica de eventos não sendopossível demonstrar através de imagens, no entanto a lógica associada a estes botões estádescritanoponto4.3.
Tal como descrito em 3.1, sabem-se que o modelo proposto passa pela recomendação aoutilizadordapáginaseguintequeconstedeumfluxoqueoguieparaumapáginaobjetivo.Assimsendoéavaliadooprotótipoanalisandoatendênciadasrecomendaçõesparaoobjetivoatual,ouseja, comoa recomendaçãoécalculadaemtemporealapesquisaéexecutadade formadinâmicacontemplandoosobjetivosqueoadministradordefiniuatualmenteparaowebsite.Nestaabordagemsãoconsiderados2cenários,oprimeiroemqueoadministradordowebsitesubstituiumobjetivoporoutroeumsegundocenárioemqueoadministradorcomplementaoobjetivo já adicionado anteriormente com um novo objetivo, ficando assim com 2 oumaisobjetivos.
Para cada um dos casos descrito será exibida uma tabela com 3 colunas, onde a 1ª colunarepresentaapáginaemqueoutilizadorseencontra,a2ªcolunarepresentaarecomendaçãoeaúltimacolunarepresentaonúmerodeutilizadoresqueconverteramparaobjetivocomestarecomendação. Os dados serão agrupados pela página em que o utilizador se encontra eordenadas de forma descendente pelo número de utilizadores que converteram o objetivo,regrascontempladastambémparaarecomendaçãodomodelo.
5.1.2 2ºCaso–AdiçãodeumnovoobjetivoNo segundo caso foram recolhidos os dados quando o objetivo era visitar a página'/pt/contactos'.Épossívelverificaraquimaisumavezqueotopodasrecomendaçõesocorrediretamenteparaapáginaobjetivo,noentantoeporquepodefazersentidocontextualizaroutilizadorantesdeoencaminharparaapáginaobjetivoépossívelverificar,aindaquecomumadiferença substancialmente menor alguns utilizadores posteriormente à página inicialcontinuarempelapágina'/pt/onde-estamos'enãonapágina'/pt/contactos'.
60 dias após a criação de um novo objetivo '/pt/clientes' em complemento ao objetivo'/pt/contactos',ficandoassimcom2objetivosfoifeitaumanovarecolhadedadosverificandomaisumavez a tendênciadas recomendaçõesparaosobjetivos '/pt/clientes' aindaqueemmenor escala que '/pt/contactos', pois anteriormente o objetivo '/pt/clientes' não constavasequernasrecomendaçõeseagoranãosóopróprioobjetivotemumarelevânciamuitomaiorparaasrecomendaçõesassimcomoaspáginasrelacionadascomomesmo.
5.2 DiscussãoeAnálisedeLimitaçõesTratando-se de um modelo cujo protótipo não foi aplicado numa utilização prática quepermitiriaavaliaroseuimpactoefetivonasrecomendaçõesobrigouàabordagemdeavaliaçãodescritanopontoanterior,nãosendopossívelidentificarainterferênciacausadaaoutilizadoreeventual resistênciaouadoçãoàutilizaçãodowidgetderecomendações.Tambémnão foipossível testar as preocupações no âmbito da experiência de utilização contempladas naparametrização do modelo tais como: atraso na notificação, número de recomendações,posiçãodowidget,etc.
Porúltimo,comonãofoipossívelaplicaroprotótipoedestaformaavaliarasuaeficácianãoexiste termodecomparaçãocomoutrossistemasderecomendação,contudo,contata-sedaavaliaçãoexpressana secçãoanteriorquea implementação segueeficazmenteosprincípioslógicos subjacentes ao modelo proposto. O desempenho do protótipo não se mostra umalimitação,tendoaavaliaçãoreportadatidoporbaseordemdemilharesderegistos,cujotempoderespostanasconsultasaoGoogleAnalyticséinsignificante.
40
6 ConclusõeseTrabalhoFuturo6.1 ConclusõesA abordagem do protótipo desenvolvido distinguiu-se das abordagens de Data Mining emparticular as regras de associação por: rever o modelo em tempo real, ou seja, como estemodelo tem por base a estatística através de parâmetros previamente definidos econtextualizadosparapesquisapor recomendações combasenanavegaçãodosutilizadoresqueconverteramemobjetivosépossívelfazerrecomendaçãoconstantementeatualizada,aocontráriodasregrasdeassociaçãodeDataMiningquepararecomendaremrealtimetêmquerefazer constantemente o modelo de dados, o que pode implicar grandes perdas naperformance, caso contrário utiliza modelo desatualizado. Outra das vantagens do modeloproposto relativamente às regras de associação é o facto de este contemplar a ordem dasequênciadosdados,poispararecomendação,aordememqueaspáginassãovisitadasédeextremaimportânciapoisseguemumcontexto,nasregrasdeassociaçãodeDataMiningnãoépossívelcontemplarasequênciadadooinflacionardaordemdecomplexidadedaexecuçãodoalgoritmo.
Assimsendoasnovasalternativasfocadasnasestatísticasdenavegação(enãonoutilizador)parecem constituir uma alternativa considerando ser possível inquirir os dados persistidosrespeitantesànavegação,queaocontráriodosmodelosdeMining,estarãosemprealinhadoscomautilizaçãorealatual.Relativamenteàquestãodaperformance,àmedidaqueestesdadostenhammaisdimensões(variáveis)evolumederegistos,queéjustamenteamotivaçãoparaasintetizaçãoqueosalgoritmosdeMiningpodemrealizar,podeserultrapassadaconsiderandoasdimensões,restriçõeseperíodoquesepretendeemcadasolicitação.
Assumidamente,nãoseencontrampadrõesocultos,nemsesintetizamcaracterísticasdegrupode utilizadores e/ou conteúdo, mas realizam-se recomendações com base em padrõesrealmente existentes tenham estes, qualquer ordem de representatividade. Considerando ofoco no emparelhamento da navegação do utilizador, qualquer que seja o seu contexto nopadrãoexistente,éprovidenciadaumaexperiênciadeutilizaçãomelhoradafaceaosobjetivosdenavegaçãoestabelecidosparaowebsiteàmedidaqueospadrõessãoidentificados.
Esta dissertação assumiu como objetivo o desenvolvimento de uma ferramenta derecomendaçãodenavegaçãoincorporávelemqualquerwebsite,quesematerializouatravésda
construçãodeumabibliotecaJavascriptparametrizávelqueatravésdeconsultaaumserviçoserversideproduzidoemparaleloecombasenainteraçãocomaferramentaGoogleAnalyticspossaofereceraosseusutilizadoresrecomendaçõesdepáginasparaumdeterminadowebsite.Estasrecomendaçõessãoobtidascombaseemhistóricodeutilizadoresquefrequentaramasmesmaspáginasevisitaramaspáginasobjetivodefinidaspelosadministradoresdowebsite.Odesenvolvimentodabibliotecaedoserviçoalémdegratificantespelofactodeconsiderarumaferramentaorientadoraedebastanteutilidade,permitiramconsolidaroexercíciodearticulaçãodo desenvolvimento com as linguagensCss, Javascript e Php, assim como a integração comserviçosWebcomoeraocasodoGoogleAnalytics.
6.2 TrabalhoFuturoAAPI depesquisa doGoogleAnalytics restringe a quantidadededadosque são retornados(sampling) quandoumaconsulta inclui umgrandenúmerode variáveisdepesquisaouumagrandequantidadededados(maisde250000),ouseja,seosdadosdentrodeumdeterminadointervalo excederem um determinado número de resultados osmesmos serão agregados eselecionadosumsubconjunto,chamadosdeamostra.
Paratrabalhofuturoconsiderorelevanteapósutilizaçãopráticadoprotótipo,avaliaroimpactodosamplingnaprecisãodasrecomendaçõesemwebsitesdemaiorconsultaecasonecessáriotomar medidas para prevenir/diminuir o impacto desta restrição, tais como: otimização/alteraçãodaspesquisas,aumentarparametrizaçãodabibliotecaapesardeumadasmedidasjápensadasnodesenvolvimentodesteprotótipotersidoexatamenteapossibilidadedeconfiguraracoberturatemporaldaspesquisas,permitindomanteratualarecomendação.
Parra, D., & Brusilovsky, P. (2015). User-controllable personalization: A case study withSetFusion.InternationalJournalofHumanComputerStudies,78,43–67.
Slimani, T., & Lazzez, A. (2014). Efficient Analysis of Pattern and Association Rule MiningApproaches.InternationalJournalofInformationTechnologyandComputerScience,6(3),70–81.