leandro de souza tavares agentes para recomendaÇÃo de ... · ava ambientes virtuais de...
TRANSCRIPT
0
LEANDRO DE SOUZA TAVARES
AGENTES PARA RECOMENDAÇÃO DE VÍDEOS NA INTERNET
CANOAS, 2012
1
LEANDRO DE SOUZA TAVARES
AGENTES PARA RECOMENDAÇÃO DE VÍDEOS NA INTERNET
Trabalho de conclusão do Curso de
Ciência da Computação do Centro
Universitário La Salle – Unilasalle.
Canoas - RS
Orientador: Patrícia Kayser Vargas Mangan
CANOAS, 2012
2
LEANDRO DE SOUZA TAVARES
AGENTES PARA RECOMENDAÇÃO DE VÍDEOS NA INTERNET
Trabalho de conclusão aprovado como requesito parcial para obtenção do grau de bacharel em Ciência da Computação pelo Centro Universitário La Salle – Unilasalle.
Aprovado pela banca examinadora em 02 de julho de 2012.
BANCA EXAMINADORA:
__________________________________________________
Profº Dr. Patrícia Kayser Vargas Mangan Unilasalle
__________________________________________________
Profº Me. Eder Stone Fontoura Unilasalle
__________________________________________________
Profº Me. Ricardo de Moura Rivaldo Unilasalle
3
Dedico este trabalho de conclusão aos meus pais, cuja ajuda e incentivo tornaram possível alcançar esta conquista e aos amigos que estiveram ao meu lado durante o trajeto.
4
AGRADECIMENTOS
Agradeço em primeiro lugar a meus pais cujo apoio foi fundamental para
realização desta conquista. Sem eles não teria sido possível alcançar este objetivo.
A minha orientadora Patrícia Kayser por todos esses anos dividindo
conhecimento e amizade dentro e fora de sala de aula, demonstrando sempre muita
cordialidade e paciência.
A todos os colegas que propiciaram momentos inesquecíveis e também compartilharam seu conhecimento durante esses anos de graduação. Muito obrigado a todos.
5
“O verdadeiro homem mede a
sua força, quando se defronta
com o obstáculo.”
(Antoine de Saint-Exupéry)
6
RESUMO
Na internet existe uma grande quantidade de informações, mas nem sempre é trivial
aos usuários encontrar conteúdo que satisfaça suas necessidades. Os sistemas de
recomendação têm como objetivo auxiliar os usuários a encontrar o conteúdo que
lhes seja útil, reduzindo a sobrecarga de informações e realizando uma seleção de
acordo com suas preferências e necessidades. Diversas estratégias são propostas
para o processo de recomendar itens. Modelos híbridos vêm apresentando
resultados mais satisfatórios ao combinarem mais de uma estratégia ou técnica. A
proposta deste trabalho é construir um modelo de sistema de recomendação para
vídeos na internet, aliando uma solução híbrida com a utilização de agentes
inteligentes. O modelo proposto combina uma abordagem colaborativa, onde
opiniões dos usuários são aproveitadas para gerar recomendações para outros
usuários, com uma abordagem baseada em conteúdo, onde as informações dos
itens auxiliam no entendimento do comportamento do usuário. Os resultados obtidos
com esta solução demonstram que a combinação de estratégias diferentes de
recomendação com agentes inteligentes, aumenta o grau de precisão das
recomendações.
Palavras-chave: Sistemas de recomendação. Collaborative Tagging. Agentes
inteligentes. Filtragem colaborativa.
7
ABSTRACT
There is a great amount of information on the internet, but it’s not always trivial to
users finding content that satisfies their needs. Recommender systems have as an
objective to help users find content that is useful to them, reducing the overload of
information and performing a selection according to their preferences and needs.
Several strategies are proposed for the process of recommending items. Hybrid
models have been presenting more satisfying results by combining more than one
strategy or technique. This paper’s proposal is to construct a model of a
recommender system for internet videos, allying a hybrid solution with the use of
intelligent agents. The model proposed combines a collaborative approach, where
user’s opinions are utilized to generate recommendations for other users, with an
approach based on content, where item information helps with the understanding of
user behavior. The results obtained with this solution demonstrate that the
combination of different recommendation strategies with intelligent agents increases
the degree of recommendation precision.
Keywords: Recommender Systems. Collaborative Tagging. Intelligent Agents.
Collaborative Filtering.
8
LISTA DE FIGURAS
Figura 1 – Fontes de dados para geração de recomendações................................22
Figura 2 – Comparação do usuário Alice com dois usuários....................................27
Figura 3 – Dados básicos para o perfil de usuário....................................................33
Figura 4 – Arquitetura do sistema IBD......................................................................43
Figura 5 – Arquitetura do modelo de Ferro et al. (2011)...........................................47
Figura 6 – Modelo conceitual do sistema..................................................................50
Figura 7 – Arquitetura do sistema de recomendação...............................................54
Figura 8 – Ciclo de requisição no framework CakePHP...........................................56
Figura 9 – Reprodutor de vídeo e escala de classificação........................................57
Figura 10 – Diagrama de atividades de acesso ao sistema......................................58
Figura 11 – Casos de uso do sistema.......................................................................59
Figura 12 – Diagrama entidade relacionamento do perfil de usuário.......................60
Figura 13 – Fragmento do arquivo de classificações e usuários..............................68
Figura 14 – Descrição das tags importadas no banco de dados..............................69
9
LISTA DE QUADROS
Quadro 1 – Tipos de dados utilizados nas abordagens............................................23
Quadro 2 – Base de classificações para recomendação colaborativa......................25
Quadro 3 – Características relevantes dos trabalhos relacionados..........................51
Quadro 4 – Classificação do ambiente de tarefas.....................................................53
Quadro 5 – Combinação recomendações.................................................................62
Quadro 6 – Primeira rodada do exemplo de teste.....................................................72
Quadro 7 – Segunda rodada do exemplo de teste....................................................72
Quadro 8 – Terceira rodada do exemplo de teste.....................................................73
10
LISTA DE TABELAS
Tabela 1 – Resultados dos testes da técnica colaborativa........................................74
Tabela 2 – Resultados dos testes da técnica baseada em conteúdo......................75
11
LISTA DE SIGLAS
ACO Agente de Colaboração
ACT Agente de Collaborative Tagging
AGR Agente de Recomendação
AGU Agente de Usuário
ASF Apache Software Foundation
AVA Ambientes Virtuais de Aprendizagem
BSD Berkeley Source Distribution
CO Completamente Observável
CT Collaborative Tagging
DER Diagrama entidade relacionamento
HTML HyperText Markup Language
HTTP Hypertext Transfer Protocol
IA Inteligência Artificial
IBR Interest Based Recommendation
IBRS Interest-Based Recommender System
MVC Model View Controller
PHP Hypertext Preprocessor
PO Parcialmente Observável
SGBD Sistema gerenciador de banco de dados
SR Sistemas de Recomendação.
XML Extensible Markup Language
12
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................................... 14
1.1 METODOLOGIA .................................................................................................................................. 16
1.2 Estrutura do texto ............................ ............................................................................................17
2 RECOMENDAÇÃO DE CONTEÚDO ........................ ........................................................................ 18
2.1 Sistemas de recomendação....................... .................................................................................18
2.2 Domínios ...................................... ............................................................................................19
2.3 Abordagens .................................... ............................................................................................21
2.3.1 Abordagem colaborativa .............................................................................................................. 22
2.3.2 Abordagem baseada em conteúdo .............................................................................................. 27
2.3.3 Abordagens híbridas .................................................................................................................... 30
2.4 Perfil de usuário ............................. .........................................................................................31
2.5 Considerações finais .......................... ................................................................................32
3 AGENTES INTELIGENTES ............................ ................................................................................... 34
3.1 Ambientes .............................................................................................................35
3.2 Tipos de agentes ............................. .........................................................................................37
3.2.1 Agentes reativos simples ............................................................................................................. 37
3.2.2 Agentes reativos baseados em modelo ....................................................................................... 38
3.2.3 Agentes baseados em objetivos .................................................................................................. 38
3.2.4 Agentes baseados em utilidade ................................................................................................... 38
3.3 Agentes de recomendação ....................... .................................................................................39
3.4 Considerações finais ...............................................................................................40
4 TRABALHOS RELACIONADOS........................... ............................................................................ 41
4.1 A proposta de Vashisth e Bedi (2011) .......... .............................................................................41
4.2 A proposta de Liang et al. (2009) ............ ..................................................................................42
4.3 A proposta de Ferro et al. (2011) ............ ..................................................................................42
4.4 Considerações finais ..............................................................................................47
5 PROPOSTA/MODELO ................................. ..................................................................................... 49
5.1 Modelo ........................................ ................................................................................................50
5.2 Estrutura ...............................................................................................................52
5.2.1 Arquitetura e tecnologias.............................................................................................................. 53
5.2.1.1 Interface de usuário ................................................................................................................... 55
5.2.1.2 Agente de usuário ..................................................................................................................... 57
5.2.1.3 Agente de Recomendação ........................................................................................................ 60
5.2.1.4 Agente de Colaboração ............................................................................................................. 61
5.2.1.5 Agente de Collaborative Tagging .............................................................................................. 62
6 AVALIAÇÃO ....................................... ............................................................................................... 64
6.1 Considerações iniciais ..............................................................................................................64
6.2 Metodologia ................................... .............................................................................................66
13
6.3 Resultados obtidos ....................................................................................................................69
7 CONCLUSÃO ....................................... ............................................................................................. 75
REFERÊNCIAS ..................................................................................................................................... 75
14
1 INTRODUÇÃO
A web apresenta-se como um espaço para compartilhamento de informações
e comunicação, existindo diferentes formas de interagir inclusive para propiciar o
autodesenvolvimento. Maes e Shardanand (1995) expõem que a tecnologia é
necessária para ajudar as pessoas a encontrar o conteúdo realmente importante – o
que elas realmente precisam – e omitir o que é desnecessário. Considerando o fácil
acesso a esse montante de informações muitas vezes os usuários de internet se
encontram em um estado de dúvida referente ao que realmente precisam. Zheng
(2005) chama este fenômeno de sobrecarga da informação. As dificuldades
encontradas impactam tanto no lazer quanto em pesquisas autônomas e atividades
do ensino formal.
Apesar das dificuldades relacionadas à procura de informações, o crescente
avanço das tecnologias da informação vem possibilitando novas compreensões
sobre as possibilidades de busca e aprendizado, baseadas em recursos que
permitem a comunicação e intensificam relações entre as pessoas. Um exemplo é o
ensino à distância (EAD) que esta se tornando prática comum em instituições de
ensino, onde é mediado por recursos tecnológicos sendo recomendada a alunos e
profissionais (FERREIRA et al., 2004).
Deve-se considerar, no entanto, que as tecnologias não transformam a
sociedade por si só, mas são utilizadas por pessoas em seus contextos sociais
criando uma nova comunidade local e global (LEITE; BRANDÃO, 2008). Neste
contexto é essencial que as ferramentas existentes atribuam à importância
necessária não só ao compartilhamento dos dados em si, mas que permitam uma
experiência realmente construtiva onde o conhecimento seja desenvolvido levando
em consideração as necessidades e preferências dos usuários.
Ambientes colaborativos como Blogger (www.blogger.com) e WikiSpaces
(http://www.wikispaces.com), bem como redes sociais na Internet como Orkut
(http://www.orkut.com), Facebook (http://www.facebook.com) e Twitter
(http://www.twitter.com), e ambientes virtuais de aprendizagem (AVA) com o Moodle
(http://www.moodle.org) e Blackboard (http://www.blackboard.com) podem ser
usados para busca de conhecimento.
15
Entretanto, nenhum destes ambientes utiliza técnicas que permitam
compreender os interesses individuais de seus utilizadores. Até mesmo nos AVA’s,
que são direcionados a complementar atividades de sala de aula, são
disponibilizados conteúdos padronizados sem adaptação aos indivíduos.
Esta pesquisa tem como tema a obtenção e utilização de informações
relevantes dos usuários, para que o conteúdo e as relações existentes em um
ambiente virtual possam ser explorados, a fim de propiciar comunicação fácil e
objetiva, bem como recuperação de conteúdo de acordo com análise de
preferências. Para isto faz-se necessário um maior entendimento do comportamento
dos usuários, com intuito de compartilhar informações de forma coletiva.
A fim de prover uma fonte diferenciada de informações que enriqueça não só
ao aluno, mas a demais interessados no meio acadêmico, este estudo visa à criação
de um portal streaming inteligente. Através de técnicas de sistemas de
recomendação e inteligência artificial (IA) que permitam análise de comportamento,
torna-se possível prover conteúdo de acordo com as preferências individuais. Além
disso, oferece uma forma interativa, através de tecnologias web, para guiar os
usuários a informações úteis, conforme o interesse manifestado.
Deste modo, apresenta-se como problema de pesquisa: como detectar
interesses de usuários de um sistema web a partir de experimentação e realizar
recomendações de conteúdo adequadas a seus perfis. Define-se como objeto de
pesquisa um portal streaming com análise comportamental dos utilizadores e
técnicas que exploram características colaborativas e do conteúdo disponível, o qual
contém programação de cunho informativo e institucional.
Neste contexto, define-se como objetivo geral do estudo fornecer um meio de
análise do comportamento dos usuários para obter maior interatividade, participação
e conhecimento sobre eles, gerando recomendações de vídeos de acordo com seus
interesses afins. Como objetivos específicos (metas) definem-se:
a) Desenvolvimento de um sistema web com características colaborativas que
realize recomendações personalizadas. A arquitetura proposta envolve
utilização de agentes inteligentes com tarefas específicas, utilizando meta-
dados e opiniões dos usuários para análise comportamental e oferta de
conteúdo;
16
b) Estudo e análise de agentes inteligentes visando identificar os mais
apropriados para o problema;
c) Estudo e análise de técnicas de recomendação de acordo com as abordagens
existentes.
d) Definição de um modelo de perfil de usuário;
e) Obtenção de dados sintéticos para testes qualitativos;
f) Construção da base de itens, tags (palavras-chave para descrição do
conteúdo), usuários e classificações dos usuários para os itens;
g) Estratégia não personalizada para oferta de itens no primeiro acesso de
usuários novos, onde não existem preferências para análise.
1.1 Metodologia
A presente pesquisa é classificada na área de ciências exatas e da terra e
envolve a elaboração de estudos para resolver um problema, o que a torna uma
pesquisa aplicada. É também dita exploratória, pois visa fornecer maior familiaridade
com o tema proposto. Trata-se ainda de uma pesquisa de campo, devido à natureza
de obtenção dos dados via os sítios GroupLens (http://www.grouplens.org) e
Stumbleupon (http://www.stumbleupon.com). O material utilizado já está publicado,
sendo assim uma pesquisa bibliográfica.
Para alcançar o objetivo de criação do portal de vídeos será necessária uma
abordagem híbrida de técnicas conhecidas, que demonstraram até agora resultados
satisfatórios em recomendação, análise de usuários e dos itens disponíveis.
Conforme evidenciado no estudo de abordagens na seção 2.3 é demonstrado que
não existe uma solução adotada como padrão ou absoluta em diferentes domínios.
Diversos aspectos podem ser abordados de formas diferentes como:
a) Dados a serem utilizados;
b) Forma de coleta dessas informações;
c) Quantas e quais etapas serão empregadas no processo;
d) Soluções adotadas para novos usuários/itens.
Isto caracteriza uma das fases que é referente ao estudo e seleção de técnicas
que tenham demonstrado bom desempenho em recomendação de conteúdo, tanto
baseado nos itens atualmente vistos, quanto em processos baseados em histórico
17
de comportamento. Uma vez decidida à infraestrutura e os processos necessários
representados, serão selecionadas as ferramentas de desenvolvimento necessárias.
Tais recursos estarão dentro da licença GPL
(http://www.gnu.org/licenses/licenses.pt-br.html), visto que existem hoje linguagens
de programação e bancos de dados que permitam desenvolvimento sem custos.
Conforme descrito na introdução, a contribuição para a área de ciência da
computação será oferecida na forma de uma ferramenta que oferece uma
perspectiva ainda não explorada em instituições de ensino, automatizando a seleção
de conteúdo institucional personalizado.
Os resultados esperados incluem a ferramenta de recomendações que pode
ser utilizada em servidores web para streaming de vídeos, provendo conteúdo útil
aos usuários através da análise de suas necessidades.
1.2 Estrutura do texto
O restante deste projeto encontra-se organizado em seis capítulos. No capítulo
2 são contextualizados sistemas de recomendação e introduzidos conceitos
relevantes para esta pesquisa. O capítulo 3 contém a análise sobre agentes
inteligentes e considerações sobre os tipos de agentes e ambientes. Finalizando a
fundamentação, os trabalhos relacionados são descritos no capítulo 4.
No capítulo 5 é está descrita a proposta construída como solução para o
problema de recomendação, apresentando um modelo de sistema híbrido e
explicações sobre seu funcionamento. O capítulo 6 apresenta a avaliação do
modelo, juntamente com os dados coletados e os resultados obtidos. No capítulo 7
encontra-se a conclusão da pesquisa, juntamente com as dificuldades encontradas e
sugestões de trabalhos futuros.
18
2 RECOMENDAÇÃO DE CONTEÚDO
Neste capitulo serão descritas as premissas necessárias para dar início aos
estudos desta pesquisa e criação dos Sistemas de Recomendação (SR). Além de
contextualizar o campo de estudo, serão descritas motivações e técnicas
relacionadas.
2.1 Sistemas de recomendação
O conceito de sistemas de recomendação remete a década de 90, onde o
sistema Tapestry (GOLDBERG et al., 1992) foi o pioneiro, originando o termo
filtragem colaborativa e demostrando como dados comportamentais podem ser
aproveitados para produzir filtros pessoais.
Segundo Torres (2004) sistemas de recomendação foram desenvolvidos com o
objetivo de reduzir a sobrecarga de informações existente em diversos domínios
como de notícias, filmes, músicas, guias de televisão, entre outros. A ideia é reduzir
o excesso de informações que leva os utilizadores a uma seleção de conteúdo que
demanda tempo e muitas vezes habilidade para buscas efetivas.
Diferente de outros tipos de software, sistemas de recomendação não são
definidos por um tipo particular de computação, mas sim por semânticas de
interação com o usuário (BURKE; RAMEZANI, 2011). Isto significa que para realizar
filtragem e recomendação de conteúdo não existem algoritmos, arquiteturas ou
abordagens absolutas. Por isso diversas técnicas foram criadas para analisar tanto o
comportamento dos usuários quanto as características dos itens disponíveis.
De forma geral as ferramentas existentes procuram cumprir os seguintes objetivos
(RICCI et al., 2011):
a) Aumentar a satisfação dos usuários
b) Compreender suas necessidades
c) Aumentar sua fidelidade,
d) Aumentar a quantidade de itens visualizados
e) Obter a opinião dos usuários para aperfeiçoar o processo de
recomendação
19
2.2 Domínios
Um fator muito importante a ser considerado na escolha da abordagem é o
domínio dos dados a serem utilizados, ou seja, a natureza das informações
disponíveis no catálogo. Montaner et al. (2003) identificou uma grande diversidade
de dados, através da análise de trinta e sete sistemas, classificando-os em oito
dimensões:
a) Filtragem de notícias;
b) Comércio eletrônico;
c) Recomendação web;
d) Jornais personalizados;
e) Recomendação de filmes;
f) Recomendação de documentos;
g) Recomendação de viagens/ lojas;
h) Recomendação de músicas.
Embora não sejam os únicos domínios existentes, neste estudo é demonstrado
que, as abordagens e técnicas utilizadas são fortemente ligadas ao tipo de dado.
Entre diversas informações relevantes podem ser utilizadas preferências de usuários
aprendidas pelo sistema, regras de conhecimento armazenadas por especialistas,
regras de associação, mineração de dados, características dos itens, entre outros.
Assim é necessário compreender a melhor forma de trabalhar com os dados
considerando o catálogo de itens e o propósito da aplicação.
No estudo realizado por Burke e Ramezani (2011) é evidenciado que o sistema
deve ser capaz de criar e manter um modelo ou perfil de usuário contendo suas
preferências ou comportamento, realizando coleta e armazenamento de dados.
Além disso, dependendo da abordagem, pode ser necessário conhecer
características detalhadas dos itens.
Independente do processo a ser realizado as informações essenciais segundo
Burke e Ramezani (2011) são:
a) Itens: objetos a serem recomendados. Independente do contexto ocorre um
processo de filtragem onde o valor é expresso em função da utilidade do item
para o usuário. Caso não seja apropriado, o valor será negativo ou muito
baixo, caso contrário estima-se um grau positivo adequado de utilidade. Os
20
objetos podem então ser armazenados com simples identificadores ou
informações mais completas que expressem as características necessárias
para processos que dependam destas informações.
b) Usuários: pessoas que utilizam o serviço. A maneira de armazenamento
varia de acordo com as técnicas utilizadas, porém é necessária a criação de
um modelo ou perfil que represente seu comportamento. Dependendo do
contexto dados como: idade, grau de escolaridade, atividades de lazer, entre
outros, podem ser usados para aumentar a precisão da recomendação.
c) Transações: dados armazenados que representam as interações do usuário
com o sistema. Tipicamente são as classificações atribuídas a itens
visualizados ou adquiridos que expressam a opinião dos usuários. É possível
também registrar os itens que o usuário visualizou, mas não classificou,
registrando como conteúdo que despertou seu interesse.
A forma padrão de apresentação das recomendações ocorre com a criação de
uma lista de itens que visa identificar os serviços ou produtos que melhor atendem
as preferências do usuário. Essas informações podem ser adquiridas através de seu
histórico de utilização do sistema. Existem duas formas de se coletar estes dados
(ADOMAVICIUS; TUZHILIN, 2005):
a) Coleta explícita : O sistema pede que o usuário expresse sua opinião sobre
os itens visualizados e utiliza essas informações para omitir ou adicionar mais
itens, conforme as preferências identificadas. É considerada mais precisa
devido à informação ser fornecida abertamente, porém, caracteriza um
esforço do usuário que pode acabar classificando poucos itens. Não existem
regras sobre utilização de escalas ideias e, segundo Jannach et al. (2011), a
definição de qual a melhor a ser utilizada está em aberto no campo de estudo.
b) Coleta implícita : Os dados são interpretados e coletados pela aplicação de
forma automática através da interação do usuário, ocorrendo de forma
transparente. Diversas técnicas podem ser utilizadas como avaliar itens
adquiridos, tempo de permanência em uma página web, registro das páginas
visitadas, entre outras. Apesar de não requerer esforço do usuário, existe a
possibilidade de que o sistema realize uma má interpretação de seu
comportamento.
21
Os dados acima descritos e a forma de coleta variam conforme a abordagem e
serão detalhados juntamente com o modelo proposto no capítulo 5. Estas
informações podem ser usadas como entradas para o algoritmo ou componente de
recomendação responsável por gerar as listas de ofertas. Além destes dados,
informações dos itens e as classificações também são utilizados como entrada. A
figura 1 ilustra de forma genérica as os possíveis dados sendo utilizados por um
componente de recomendação. Este componente varia conforme a metodologia
utilizada e está presente na taxonomia de domínios proposta por Montaner et al.
(2003). Após o processamento é gerada a lista de recomendações para o usuário
atual.
Figura 1 - Fontes de dados para geração de recomendações
Fonte: Traduzido de Burke e Ramezani (2011) p. 125.
2.3 Abordagens
Devido à diversidade de domínios e técnicas existentes não existem
abordagens específicas para SR, porém algumas taxonomias são comumente
encontradas na literatura. Burke (2007) sugere cinco possíveis abordagens:
colaborativa, baseada em conteúdo, demográfica, baseada em conhecimento e
híbrida. Em referências mais atuais como a pesquisa realizada por Jannach et al.,
(2011) são exploradas quatro abordagens: colaborativa, baseada em conteúdo,
baseada em conhecimento e híbrida. O livro de Ricci et al. (2011) apresenta as
mesmas classificações de Jannach et al., (2011) acrescentando a abordagem
22
demográfica. Apesar dessa diversidade as metodologias mais frequentes são:
Abordagem colaborativa, baseada em conteúdo e Híbrida, (BALABANOVIC;
SHOHAM, 1997; ADOMAVICIUS; TUZHILIN, 2005).
Segundo o estudo de Dell'aglio et al. (2010) sistemas baseados em
conhecimento sugerem itens aos usuários de acordo com o entendimento de ambas
características de itens e perfis de usuários. Assim é necessária uma modelagem
completa destas informações, para que o processo de recomendação de itens esteja
em acordo com as necessidades. Devido a esta extensa participação humana
requerida, esta abordagem não será considerada, visto que o sistema proposto visa
utilizar agentes inteligentes que permitam autonomia no processo. Também não
será explorada a abordagem demográfica, pois conforme Ricci et al. (2011) embora
muito popular em literatura de marketing, existe relativamente pouco estudo no
campo dos SR.
Esta pesquisa compreende, portanto, técnicas e trabalhos que estejam dentro
do escopo de abordagem colaborativa, abordagem baseada em conteúdo e
possíveis soluções híbridas. A escolha do paradigma de recomendação influencia o
tipo de dados de entrada necessários. O quadro 1 mapeia dados utilizados de
acordo com as abordagens.
Quadro 1 – Tipos de dados utilizados nas abordagens
Fonte: Adaptado e traduzido de Jannach et al.(2011, p. 128)
Segundo o quadro são necessários conhecimentos sobre perfis de usuários,
dados da comunidade e características dos itens. Nas seções seguintes estas
abordagens são contextualizadas.
2.3.1 Abordagem colaborativa
23
Este tipo de abordagem parte da observação de que pessoas frequentemente
utilizam recomendações de outras pessoas para tomar decisões. Estas relações são
ditas colaborativas, visto que existe uma comunidade que compartilha informações
entre seus membros com intuito de ajudar o próximo e obter ajuda.
Segundo Ricci et al. (2011) na ideia original a recomendação é feita ao usuário
atual através de itens que usuários semelhantes a ele gostaram no passado. Estes
usuários são definidos de acordo com a semelhança de seus históricos de
classificação com o histórico de classificação do usuário atual.
É considerada simples, eficiente e capaz de produzir recomendações
personalizadas com boa precisão, além de não ser necessário nenhum
conhecimento das características dos itens. Ao final obtêm-se uma lista de itens não
vistos que foram bem classificados no processo. (JANNACH et al., 2011).
Segundo o estudo de Jannach et al. (2011) comumente são necessários:
a) Uma medida de similaridade para gerar a vizinhança de usuários semelhantes
ao atual;
b) Um algoritmo para gerar a recomendação a partir desses vizinhos;
c) Métodos para coletar a opinião dos usuários sobre os itens recomendados.
Na forma básica uma matriz de classificações de usuário-item serve de entrada
e produz duas saídas: uma predição indicando quanto um usuário vai gostar ou não
de um item e uma lista de N itens recomendados de acordo com seus interesses.
2.3.1.1 Recomendação dos vizinhos próximos baseado em usuário
O processo de utilizar informações de outros usuários, através da comparação
de seus históricos, visa realizar uma predição de quanto um usuário irá gostar de um
item ainda não visto por ele, que os demais usuários já tenham classificado. O
método de procura por vizinhos mais próximos ao usuário é baseado nessa
premissa, e assume que se estes gostos eram semelhantes no passado, irão se
manter semelhantes no futuro.
Esta técnica consiste em pelo menos duas etapas, sendo uma para definição
da vizinhança, calculando-se similaridade de históricos, e a segunda que gera a
predição baseada nos usuários selecionados. A seleção dos vizinhos impacta
diretamente no desempenho computacional, pois o cálculo de similaridade ocorre
24
para cada usuário. Uma quantidade muito alta pode levar muito tempo para gerar a
predição, enquanto um número muito baixo pode influenciar a precisão da
recomendação.
Segundo Jannach et al. (2011) existem duas soluções tipicamente utilizadas:
a) Valor mínimo de similaridade : Estipula-se um valor mínimo de semelhança
que definirá se o usuário fará parte da vizinhança. Se este valor for muito alto,
indicando alto grau de similaridade, vários usuários podem acabar recebendo
uma vizinhança muito pequena e determinados itens não receberão
predições. Este problema é conhecido como redução de cobertura. Caso o
valor seja muito baixo pode ocorrer perda de precisão na recomendação.
b) Quantidade específica de vizinhos : A vizinhança é reduzida a um número
pré-definido para evitar que a utilização de muitos usuários influencie
negativamente a precisão. Desta forma o valor não pode ser alto para que
não sejam utilizados usuários com similaridade baixa. Nos experimentos de
Herlocker et al. (1999) quantidades inferiores a dez vizinhos apresentaram
impacto negativo, enquanto testes realizados pelo sítio MovieLens
(http://www.movielens.org) em bases muito grandes de sistemas reais,
indicam uma quantidade razoável entre vinte e cinquenta pessoas.
Jannach et al. (2011) apresenta duas fórmulas efetivas e de complexidade
razoável para o cálculo de similaridade e predição. Para exemplificar seu
funcionamento serão consideradas as seguintes classificações:
Quadro 2 – Base de classificações para recomendação colaborativa
Fonte: Traduzido de Jannach et, al. 2011, p. 14
O quadro 2 apresentada mostra o histórico de classificações de cinco usuários
para cinco itens disponíveis, onde o item 5 ainda não foi visualizado ou adquirido
25
pelo usuário Alice. O objetivo é definir se este item fará parte da lista de
recomendações deste usuário, identificando os vizinhhos e utilizando as
classificações atribuídas por eles para o item 5. Assim o primeiro cálculo utilizado é o
de similaridade, onde as convenções necessárias são apresentadas a seguir:
a) 1 2 nU {u ,u ,..., u }= : Grupo de usuários.
b) 1 2 nP {p ,p ,..., p }= : Grupo de itens.
c) R: Matriz n x m de classificações i, jr com i 1...n∈ e j 1...m∈ . Para itens
ainda não vistos pelo usuário a posição i, jr correspondente não terá valor
definido.
d) Valores de classificação: 1 a 5 indicando o grau de satisfação do usuário,
obtidos do cálculo de similaridade sim(a,b) apresentado a seguir.
Estas definições são utilizadas em uma medida comum de similaridade para
sistemas colaborativos, denominada Coeficiente de Correlação de Pearson. Assim o
cálculo para similaridade de Alice e o usuário um é realizado a seguir:
O resultado é o grau de similaridade entre os dois usuários, que na Correlação
de Pearson considera valores entre -1 e 1, indicando o grau de similaridade. Os
valores de similaridade para os usuários dois, três e quatro são respectivamente
0.70, 0.00 e -0.79.
Estes resultados demonstram que o cálculo torna os usuários comparáveis de
acordo com seu comportamento, não sendo afetado negativamente nos casos em
que fornecem apenas classificações altas ou que não classificam nenhum item com
valor máximo. Assim, mesmo quando os valores de classificação forem diferentes é
26
possível identificar comportamentos semelhantes, conforme demonstrado na
comparação na figura 2.
Figura 2 – Comparação do usuário Alice com dois usuários
Fonte: Traduzido de Jannach et al. (2011) p. 15
Embora os valores não sejam os mesmos, é possível identificar uma
semelhança no histórico de Alice e do usuário 1. Com esta comparação aplicada a
todos os usuários é possível decidir quais formarão a vizinhança. Na próxima etapa
a seguinte fórmula é utilizada para realizar a predição do item em questão, ainda
sem classificação, pra o usuário atual:
Assim a predição de Alice para o item desejado (item cinco) será: 4 + 1/ (0.85 +
0.7) * (0.85 * (3 - 2.4) + 0.70 * (5 - 3.8)) = 4.87. Considerando a escala de um a cinco
nesta técnica a predição de 4.87 gerada para o item cinco apresenta grandes
chances de aceitação do usuário. Dados estes cálculos é possível obter uma
predição para itens não vistos por Alice.
Esta abordagem sofre do problema de início frio, pois se não houver históricos
não é possível aplicar o cálculo considerando a similaridade. Além disso, o tamanho
27
da base de usuários e itens disponíveis pode influenciar negativamente o tempo dos
cálculos, pois os usuários podem classificar um grupo pequeno de itens.
2.3.2 Abordagem baseada em conteúdo
O processo básico consiste em comparar atributos ou palavras-chave de itens
classificados anteriormente pelo usuário, com os atributos de itens ainda não vistos,
a fim de recomendar aqueles que possam despertar seu interesse (JANNACH et al,
2011).
Segundo Meteren e Someren (2002) sistemas de filtragem baseada em
conteúdo selecionam itens através da correlação entre o conteúdo dos itens, muitas
vezes extraído de forma automática pela aplicação, e as preferências do usuário.
Esta ideia contrasta com a filtragem colaborativa que escolhe itens com base na
correlação entre pessoas com preferências similares. Uma definição similar é
oferecida por Lops et al. (2011):
[...] o processo básico realizado por um sistema de recomendação baseado em conteúdo consiste em combinar os atributos de um perfil de usuário, no qual preferências e interesses estão armazenados, com os atributos de um dado objeto (item) a fim de recomendar ao usuário novos itens interessantes.
Esta abordagem é originada do campo de Recuperação da Informação, e por
isso é amplamente utilizada em domínios de itens com conteúdo textual como
notícias, páginas web e artigos (ADOMAVICIUS; TUZHILIN, 2005). Em geral o perfil
de usuário é composto por uma série de palavras-chave com pesos associados,
indicando o grau de importância da palavra no processo de recomendação.
Para isso, geralmente as estruturas de dados são criadas com características
extraídas do texto do documento, onde frequentemente são usados pesos para
determinar a importância de cada termo. Caso o usuário demonstre interesse em
algum item estes pesos podem ser adicionados às palavras correspondentes em
seu perfil. Este processo é considerado simples e rápido, e empiricamente
conhecido por prover bons resultados (BUCKLEY et al. apud BALABANOVIC;
SHOHAM, 1997).
28
Para usuários novos não existem opções de conteúdo a ser oferecido, visto
que nenhum objeto foi acessado e não existe um histórico de preferências. Todavia
devido à necessidade de armazenar e atualizar dados dos itens um único usuário
pode tornar o sistema funcional (JANNACH et al., 2011), pois todo objeto representa
uma recomendação em potencial. Além disso, poucas classificações ou interações
são necessárias para encontrar conteúdos semelhantes.
2.3.2.1 Collaborative Tagging
Conforme descrito à abordagem baseada em conteúdo trabalha
tradicionalmente através de palavras chave, sejam elas extraídas pelo sistema ou
inseridas manualmente. Independente da forma de extração é preciso que as
informações apresentem o maior número de características possíveis.
Esta metodologia, apesar de demonstrar resultados satisfatórios, não permite
ao usuário definir quais palavras-chave são mais apropriadas ao item sob seu ponto
de vista. Conforme Balanovic e Shoham (1997) comumente os sistemas procuram
atribuir pesos a essas palavras e, caso o usuário classifique bem os itens, eles serão
ajustados para expressar maior importância para o usuário.
Porém, embora caracterizem personalização de recomendações, não oferecem
maneiras de compartilhamento e caracterização das palavras-chave por parte dos
usuários. Além disso, é essencial a intervenção de responsáveis para cadastro e
manutenção dos atributos caso o domínio não seja formado por itens textuais.
Devido ao ambiente web proposto por esta pesquisa e a natureza do conteúdo,
a metodologia conhecida por de Collaborative Tagging1 (CT) será utilizada para
aumentar a participação dos usuários e permitir a definição do conteúdo de acordo
com seus pontos de vista. Segundo Golder e Huberman (2005) CT é o processo
pelo qual os usuários adicionam meta-dados ou tags (palavras-chave) em forma de
palavras a conteúdos compartilhados.
No estudo realizado por Golder e Huberman (2005) é dito que as palavras-
chave devem ser organizadas por alguma taxonomia tradicional. Isto é necessário
para relacionar semanticamente o conteúdo a fim de evitar ambiguidades e tratar
1 Tradução: Marcação colaborativa.
29
palavras sinônimas. Em contraste, CT (também chamado de Social Bookmark –
marcação social) não é nem exclusiva, nem hierárquica e, portanto, pode em
algumas circunstâncias oferecer vantagens sobre taxonomias hierárquicas.
Utilizando o exemplo de Golder e Huberman (2005), se supõe um pesquisador
que obtém um artigo na internet sobre espécies de gatos nativas da África. A ideia
das taxonomias mais comuns seria organizar todos os seus artigos baixados numa
hierarquia de pastas. Existem várias opções hipotéticas, dos quais quatro foram
consideradas:
1. \artigos\gatos : Diretório contendo todos os artigos sobre gatos;
2. \artigos\África: Diretório contendo todos os artigos sobre a África;
3. \artigos\África\gatos: Todos os artigos sobre gatos africanos;
4. \artigos\gatos\África: Todos os artigos de gatos da África.
Cada escolha reflete uma decisão sobre a importância relativa de cada
característica. Os nomes de pasta e os níveis são por eles mesmos informativos e
descrevem a informação mantida dentro deles. (JONES et al. apud GOLDER;
HUBERMAN, 2005).
Os dois primeiros diretórios informam que são pastas sobre gatos e África, mas
eliminam todas as informações sobre outras categorias. Outros dois organizam
arquivos por ambas as categorias, mas estabelecem a primeira como mais saliente,
e a segunda como secundária, sendo mais específica. Apesar dessas limitações, há
várias razões para impor tal organização. Embora possa haver muitas pastas, em
uma hierarquia eficiente de arquivos organizada e sem ambiguidades, limita o
conteúdo da pasta.
Diferente de uma pesquisa baseada em palavras-chave aonde o pesquisador
não pode ter certeza se a consulta retornou todos os itens relevantes, uma
hierarquia de pastas assegura que todos os arquivos estão contidos em um lugar
estável (GOLDER; HUBERMAN, 2005).
Em contraste a um sistema hierárquico de arquivos, um sistema de CT,
diferentemente do sistema descrito anteriormente, pode identificar tal artigo sob uma
grande variedade de classificações simultaneamente, incluindo “África” e “gatos”,
bem como “animais”, mais genericamente, ou ainda ”chitas”, mais especificamente.
Como exemplo, supondo usuários fictícios, algumas possíveis marcações seriam:
a) Usuário Paulo marcando com: “Artigo escolar”, ”Felinos”, “África”;
30
b) Usuário Lucas marcando com: “Biologia”, “Gatos”;
c) Usuário Maria marcando com: “Animais”.
Conforme o exemplo, diversas palavras podem ser úteis para detalhar os itens
do catálogo aumentando a possibilidade de serem retornados na pesquisa do
usuário ou na busca por similaridade.
LIANG et al. (2009) mostra em seu estudo uma metodologia para utilização de
CT baseada em relações de três dimensões utilizando informações de usuários, tags
e itens. O trabalho de Tso-Sutter (TSO-SUTTER et al. apud LIANG et al., 2009),
citado no estudo, procura estender a técnica através da utilização das tags como
itens adicionais. Porém se mostra limitado ao tratar somente tags utilizadas pelos
usuários como classificação implícita, ignorando medidas de similaridade nas
relações de tags e itens.
Os resultados obtidos por Liang et al. (2009) demonstram que considerar essas
três dimensões leva a resultados mais precisos, sendo que o processo é aplicado
para cada usuário. No entanto é necessário que o sistema controle a quantidade e a
coerência dessas tags para que não ocorram atributos controversos e para evitar
que quantidades muito grandes de palavras sejam associadas ao mesmo item.
2.3.3 Abordagens híbridas
A construção de sistemas híbridos combina os pontos fortes de diferentes
algoritmos ou modelos para superar alguns dos problemas e deficiências,
constituindo a motivação para diversas pesquisas no campo. A utilização conjunta
de estratégias é uma alternativa utilizada tanto para obtenção de resultados mais
satisfatórios, com recomendações mais precisas, como para otimização dos
processos (RICCI et al., 2011).
Um sistema de recomendação poderia ser aprimorado através da combinação
das técnicas colaborativas e técnicas baseadas em conteúdo, aplicadas em conjunto
quando o conhecimento sobre usuários e informações detalhadas sobre os itens
individuais estão disponíveis. Na prática são descritos como combinação de
algoritmos ou componentes de recomendação (JANNACH et al, 2011).
31
Segundo Ricci et al, (2011) um sistema híbrido combinando técnicas de
abordagens A e B tenta usar as vantagens de A para corrigir as desvantagens de B
(RICCI et al., 2011). O autor também ilustra uma possível situação de combinação:
[...] métodos de filtragem colaborativa sofrem do problema de itens novos, ou seja, não podem recomendar itens sem classificação. Isto não limita abordagens baseadas em conteúdo visto que a previsão de novos itens é baseada em sua descrição, que normalmente estão facilmente disponíveis.
As dificuldades e melhorias encontradas, no entanto, são particularidades de
cada modelo, cujos resultados servem como base para futuras melhorias, e não
como uma solução aplicável para todas as soluções híbridas. Este contexto será
explorado no decorrer deste estudo onde o modelo proposto mostra a combinação
das técnicas a fim de construir um modelo adequado.
2.4 Perfil de usuário
Para a formação do perfil de usuário nesta pesquisa são consideradas as
abordagens de colaboração entre os usuários e a marcação de conteúdo com a
utilização tags. Assim dois trabalhos serão utilizados como base de fundamentação
para a coleta de preferências.
No trabalho de Burke (2002) a forma colaborativa é expressa por um vetor de
itens e suas classificações, continuamente atualizada conforme o usuário interage
com o sistema. Assim, a forma de coleta explícita que o sistema irá utilizar, permite
ao usuário decidir se quer ou não registrar um valor de utilidade para o item, através
de uma escala com os seguintes valores para expressar a opinião:
a) Nada: O item não representa nenhuma utilidade;
b) Pouco: O item representa utilidade baixa;
c) Razoável: O item oferece certa utilidade;
d) Bastante: O item demonstra ser muito útil;
e) Muito: O item satisfaz a necessidade por completo;
A opção selecionada será armazenada na base de classificações,
representando quanto o item foi útil ao usuário. A alteração de preferências ao longo
do tempo pode influenciar nos itens oferecidos. Embora nesta abordagem se
pretenda oferecer itens não vistos, a combinação de estratégias com a CT pode
32
eventualmente retornar o mesmo item em pesquisas futuras, e dependendo da
necessidade atual, o mesmo pode receber outra classificação.
Na coleta implícita, seguindo o trabalho de Liang et al. (2009) as informações
necessárias, considerando um usuário u são:
a) Tu : Conjunto de tags do usuário u ;
b) Pu : Conjunto de itens marcados por u ;
c) iTP : Relação entre as tags e os itens;
O perfil de u é então expresso por i i i iUF = (Tu , Pu , TP ) , enquanto o perfil de
todos os usuários é denotado como UF , sendo iUF={UF|i=1..n } . Devido a essa
classificação não ser espontânea, o sistema simplesmente assumirá que ele
apresentou interesse nas palavras relacionadas ao item. Os detalhes do modelo
serão descritos no capítulo 5, bem como as demais notações necessárias para
calcular a similaridade, gerando a vizinhança e calculando as predições.
Para que os dois tipos de coleta e as relações necessárias sejam analisados,
as informações serão armazenadas em um de banco de dados local. Assim, os
agentes propostos realizarão a procura e atualização dos dados de forma mais
efetiva. A figura 3 ilustra as entidades de dados básicas necessárias para o perfil.
Figura 3 – Dados básicos para o perfil de usuário
Fonte: Autoria própria, 2012.
2.5 Considerações finais
Conforme apontado por Burke e Ramezani (2011), sistemas de recomendação
são projetados considerando a interação dos usuários. Independente da abordagem
é necessário entender suas preferências e refinar os resultados de acordo com elas.
Este trabalho se utiliza de duas abordagens, para melhorar a precisão das
recomendações.
33
A metodologia colaborativa apresentada por Jannach (2011) permite que as
opiniões da comunidade sejam aproveitadas para ajudar os indivíduos. No entanto,
o problema conhecido como início frio, torna inviável o processo quando não há
históricos disponíveis. Este problema pode ser agravado se a base de usuários e
itens for muito grande, gerando uma matriz em memória muito esparsa com poucos
itens classificados. Pode ser necessário muito tempo de utilização do sistema para
começar a gerar recomendações que tendem a ser imprecisas, no início, pela
insuficiência de informações comportamentais.
Assim a técnica de CT é apresentada com a finalidade de aproveitar
informações dos itens no processo. Embora inicialmente o sistema tenha poucas, ou
nenhuma, tag de usuário para comparação, os itens podem ser cadastrados com
palavras chaves por usuários com privilégios adequados. Conforme apontado por
Jannach et al. (2011), em filtragem baseada em conteúdo, um único usuário poderá
iniciar o processo de recomendações, pois as informações dos itens estarão
disponíveis desde o começo.
Estas abordagens apresentam diferenças em principalmente em três aspectos
práticos:
a) Tempo de processamento.
b) Algoritmos e medida de similaridade.
c) Dados utilizados no cálculo.
34
3 AGENTES INTELIGENTES
A IA é um campo da ciência da computação que estuda a utilização de técnicas
inteligentes para realização de tarefas especificas. Entre diversos subcampos estão
os agentes inteligentes, que podem ser vistos como programas inteligentes que
apresentam autonomia para cumprir determinados objetivos (RUSSEL; NORVIG,
2004).
Russel e Norvig (2004) utilizam a seguinte definição:
Um agente é tudo que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores.
Assim, a composição de um agente básico é descrita a seguir (RUSSEL;
NORVIG, 2004):
a) Percepção : São as entradas perceptivas do agente, correspondentes a
eventos ocorridos no ambiente, em qualquer momento dado.
b) Sequência de percepções : Histórico de tudo que o agente já percebeu. As
ações podem mudar considerando a percepção atual ou todo o histórico;
c) Função de agente : Expressa em termos matemáticos. Mapeia qualquer
sequência de percepções específica para uma ação a ser realizada.
A função de agente é comumente expressa por uma tabela, onde para todas as
sequências possíveis de entrada existe uma ação correspondente. Em geral é
inviável a utilização na prática devido à vasta quantidade de dados a serem
mantidos. Esta é uma descrição matemática abstrata representada externamente ao
agente. (RUSSEL; NORVIG, 2004).
A partir desses elementos espera-se que o agente possa agir racionalmente,
ou seja, fazendo tudo de forma correta. Segundo Russel e Norvig (2004) o
comportamento correto é baseado nas ações que farão o agente obter o maior
sucesso possível. É necessário então algum método de medir o sucesso.
Juntamente com a descrição do ambiente e dos sensores e atuadores, é possível
especificar de forma completa a tarefa que o agente deve realizar.
Assim, independente do tipo de agente utilizado e do contexto onde está
aplicado, o comportamento racional deve ser analisado sobre quatro aspectos
(RUSSEL; NORVIG, 1995):
a) Uma medida de desempenho de atuação, que define o grau de sucesso;
35
b) Tudo que o agente tenha percebido até o momento;
c) O que o agente sabe sobre o ambiente;
d) As ações que o agente pode realizar.
Para cada possível sequência de percepções, um agente racional deve
selecionar uma ação aonde é esperado que sua medida de desempenho seja
maximizada.
3.1 Ambientes
Esta seção segue o estudo de caracterização de ambientes realizado por
Russel e Norvig (2004).
Os ambientes onde os agentes atuam, chamados de ambientes de tarefas,
podem ser descritos como problemas para os quais os agentes racionais são as
soluções. Ao projetar um agente a primeira etapa deve ser especificar da forma mais
completa possível o ambiente de tarefas.
Apesar da grande variedade de ambientes existentes é possível identificar uma
quantidade reduzida de dimensões ao longo das quais os ambientes podem ser
separados em categorias. Na maioria das vezes determinam as técnicas
necessárias para implementar os agentes, influenciando fortemente o projeto. Essas
dimensões são contextualizadas a seguir:
a) Completamente observável (CO) x parcialmente observ ável (PO) : Em
ambientes CO o agente tem acesso ao estado completo do ambiente em
cada instante, considerando fatores relevantes para o agente. São
convenientes porque o agente não precisa manter qualquer dado interno para
controlar o mundo. Um ambiente é dito PO quando existem ruído ou sensores
imprecisos, ou quando partes do estado estão ausentes nos dados dos
sensores;
b) Determinístico x estocástico: Se o próximo estado é completamente
determinado pelo estado atual e pela ação executada pelo agente dizemos
que o ambiente é determinístico, caso contrário é estocástico. Em princípio
um agente não precisa se preocupar com a incerteza em um ambiente CO e
determinístico. Porém se for PO ele poderá parecer estocástico;
36
c) Episódico x Sequencial : Nos ambientes episódicos a experiência do agente
é dividida em episódios atômicos, onde cada um consiste na percepção do
agente e, após, a execução de uma única ação. É necessário que o próximo
episódio não dependa das ações executadas em episódios anteriores, ou
seja, a escolha da ação no episódio só depende dele mesmo. São ambientes
muito mais simples porque o agente não precisa pensar a frente.
Contrastante a isto, nos ambientes sequenciais a decisão atual pode afetar
decisões futuras;
d) Estático x dinâmico : Se um ambiente puder se alterar enquanto um agente
está atuando, dizemos que o ambiente é dinâmico para este agente, caso
contrário ele é estático. Ambientes estáticos são fáceis de manipular porque o
agente não precisa continuar a observar o mundo enquanto decide sobre a
realização de uma ação, nem se preocupar com a passagem do tempo.
Ambientes dinâmicos continuamente perguntam ao agente o que ele deseja
fazer. Caso ele ainda não tenha decidido, o ambiente interpreta como a ação
de não fazer nada;
e) Discreto X Contínuo : Relacionado com a forma como o tempo é tratado
considerando as percepções e ações do agente. Por exemplo, um ambiente
de estados discretos como um jogo de xadrez tem um número finito de
estados distintos. O xadrez também tem um conjunto finito de percepções e
ações. Dirigir um carro é um problema de estado e tempo contínuos, pois a
velocidade e posição do carro e demais veículos passam por um intervalo de
valores contínuos, fazendo isso suavemente ao longo do tempo.
f) Agente único x multiagente: A distinção destes ambientes é bastante
simples. Por exemplo, um agente que resolve palavras-cruzadas, sozinho,
está inserido em um ambiente de agente único, enquanto um agente que joga
xadrez está em um ambiente de dois agentes. A distinção fundamental é
saber se o comportamento do agente B é ou não mais bem descrito como a
maximização de uma medida de desempenho cujo valor depende do agente
A. Por exemplo, em um jogo de xadrez a entidade oponente B está tentando
maximizar sua medida de desempenho que, pelas regras do jogo, minimiza a
medida de desempenho do agente A. Desse modo o ambiente do jogo de
xadrez é um ambiente de multiagentes competitivos.
37
Por outro lado no ambiente de direção de um taxi, evitar colisões maximiza a
medida de desempenho de todos os agentes, tornando-o multiagente
parcialmente cooperativo. Também é parcialmente competitivo por que, por
exemplo, apenas um carro pode ocupar um espaço no estacionamento. Os
problemas de ambientes multiagente muitas vezes são diferentes daqueles
que surgem em ambientes de um agente, por exemplo, a comunicação com
frequência emerge como um comportamento racional em ambientes
multiagentes.
3.2 Tipos de agentes
Os agentes propostos para fundamentação possuem a mesma estrutura básica
composta pela percepção atual como entrada para os sensores que retornam uma
ação para os atuadores. O programa de agente (PA) toma apenas a percepção atual
como entrada, diferente da função do agente que recebe o histórico de percepções
completo.
No estudo de Russel e Norvig (2004). Quatro tipos de programas de agente
são propostos, incorporando princípios comuns a quase todos os sistemas
inteligentes. Estes agentes são contextualizados nas seções seguintes.
3.2.1 Agentes reativos simples
Tipo mais simples de agentes. Selecionam ações baseados na percepção
atual, ignorando o histórico de percepções. Por exemplo, supondo um agente
motorista de taxi, se um carro a frente frear, a entrada da luz de freio deve iniciar o
processo da ação de frenagem. Este fenômeno é chamado de "regra condição-
ação", escrita como "se carro-da-frente-esta-frenando então começar-a-frenar".
De forma geral primeiro deve ser construído um interpretador de uso geral para
regras condição-ação e depois criar conjunto de regras para o ambiente desejado.
Muitas vezes o agente funcionará somente se a decisão correta puder ser realizada
apenas com a entrada atual.
38
3.2.2 Agentes reativos baseados em modelo
O modo mais efetivo de lidar com observação parcial é o agente controlar a
parte do mundo que ele não pode ver agora. O agente deve manter algum tipo de
estado interno que dependa do histórico de percepções, e assim reflita pelo menos
alguns dos aspectos não observados do estado atual.
A atualização de informações internas de estado à medida que o tempo passa
exige que dois tipos de conhecimento sejam codificados no programa do agente.
Primeiro são necessárias informações sobre o modo como o mundo evoluiu
independente do agente. Em segundo algumas informações sobre como as ações
do próprio agente afetam o mundo. Este conhecimento é chamado de "modelo do
mundo".
3.2.3 Agentes baseados em objetivos
Conhecer o estado atual do ambiente pode não ser suficiente para tomar uma
decisão, sendo necessárias informações sobre objetivos, descrevendo situações
desejáveis. O programa de agente pode combinar isso com informações dos
resultados de ações possíveis (as mesmas utilizadas para atualizar o estado interno
do agente reativo) a fim de escolher ações que alcancem o objetivo. A seleção pode
ser direta quando uma ação imediata alcança o objetivo ou complicada dependendo
da análise de longas sequências de ações pelo agente.
Este tipo de decisão difere das regras ação-condição pelo fato de envolver
considerações do futuro. É possível que este agente atualize seu conhecimento de
como realizar uma determinada tarefa, enquanto, para uma agente reativo seria
necessário reescrever muitas regras de condição-ação.
3.2.4 Agentes baseados em utilidade
Sozinhos os objetivos não são realmente suficientes para gerar um
comportamento de alta qualidade, pois embora possam existir diversas ações que
levem a um mesmo objetivo, os passos realizados podem ser diferentes. Por
exemplo, utilizar uma rua mais extensa que outra onde as duas levam ao local
39
desejado. Chegar ao local simplesmente indica que o objetivo foi alcançado, mas
não se sabe se foi da melhor forma possível. Assim é implementada uma função de
utilidade que mapeia um estado, ou sequencia de estados, em um número real,
descrevendo o grau de satisfação associado.
Uma especificação completa dessa função permite decisões racionais quando
existem objetivos contraditórios, dos quais apenas alguns podem ser atingidos, a
função especifica o compromisso apropriado. Além disso, é útil quando existirem
vários objetivos que o agente deve alcançar e nenhum pode ser atingido com
certeza. Neste caso a função fornece um meio pelo qual a probabilidade de sucesso
pode ser ponderada em relação à importância dos objetivos.
3.3 Agentes de recomendação
Conforme evidenciado anteriormente tanto os ambientes quanto os tipo de
agentes podem variar em diversos aspectos. É necessário, portanto, a partir do
ambiente de tarefas especificado, que os agentes sejam projetados considerando as
propriedades e regras deste ambiente.
Vashisth e Bedi (2011) propõe uma arquitetura de agentes, empregados em
um sistema de recomendação, onde cada um assume um papel distinto e realizam
troca de informações entre si. Além de utilizar as técnicas híbridas baseada em
conteúdo e colaborativa, os agentes analisam as opiniões sobre os itens ofertados
para refinar predições futuras.
Cada agente executa um trabalho específico, atuando simultaneamente em
duas fases distintas: modelagem e recomendação. Para a fase de modelagem são
necessárias poucas entradas dos usuários. Na fase de recomendação o agente de
recomendações trabalha para gerar as listas baseado nos interesses aprendidos.
Fora o processo de coleta de dados na seção o restante pode ser realizado mesmo
se o usuário não estiver conectado, devido aos dados implícitos aprendidos. Isto
define que a divisão de funções é, portanto, fundamental em um sistema de agentes
(VASHISTH; BEDI, 2011).
Um agente, denominado agente de usuário realiza coleta de preferências do
usuário quando acessa o sistema e se comunica com outros agentes para obter
informações. Esta habilidade de comunicação está presente em todos os agentes.
40
Existe um agente de gerenciamento de informações que armazena
informações dos itens juntamente com valores quantitativos que indicam o grau de
satisfação do usuário. Tais informações são atualizadas sempre que as preferências
armazenadas pelo agente de usuário apresentam mudanças.
O último agente é o agente de recomendação, que decide, requisitando
informações de outros agentes se a recomendação de um produto corresponde ou
não ao usuário. Este agente também é responsável pela validação de desempenho
das recomendações, medindo o número de recomendações corretas e a aceitação
do usuário (VASHISTH; BEDI, 2011).
3.4 Considerações finais
Os agentes inteligentes, conforme apresentado por Vashisth e Bedi (2011),
apresentam recursos de inferência e possuem conhecimento e habilidade de
comunicação, necessários para executar as tarefas de acordo com o contexto atual.
Este estudo demonstra a utilização multiagentes com objetivos e recursos para
sentir e atuar sobre o ambiente realizando tarefas específicas.
Os papéis de cada agente são projetados conforme fases distintas presentes
em sistemas de recomendação como coleta de dados, predição de valor de utilidade
para os itens e manutenção do perfil do usuário. Não são informados casos onde é
possível ocorrer situações onde os objetivos tornem-se contraditórios.
As características identificadas como pertinentes ao presente estudo serão
detalhadas na seção 5.2.
41
4 TRABALHOS RELACIONADOS
Nesse capítulo são apresentados trabalhos que seguem a mesma linha de
pesquisa em sistemas de recomendação. Entre diversas fontes analisadas, estes
apresentam metodologias e arquiteturas com características importantes para a
solução proposta. O modelo final é descrito no capítulo 5.
4.1 A proposta de Vashisth e Bedi (2011)
Aborda um método baseado nos interesses dos usuários, denominado Interest-
Based Recommendation (IBR) empregado no sistema Interest-Based Recommender
System (IBRS). A técnica utiliza multiagentes autônomos e interativos. As
informações trocadas entre eles garantem habilidades de inferência e comunicação
para gerar recomendações. São utilizadas técnicas de recomendação colaborativa e
baseada em conteúdo sendo, portanto uma solução híbrida. Os agentes
empregados são descritos a seguir:
a) Agente do usuário : ativado quando o usuário acessa o sistema. Além de
realizar coletar de preferências e interesses na sessão atual, também se
comunica com outros agentes de usuários para obter informações. Com os
dados da sessão e os dados aprendidos, cria e mantém o modelo do usuário.
b) Agente de gerenciamento de informações : responsável por transformar um
item em um conjunto de atributos definidos pelo sistema. Mantendo valores
quantitativos que indicam quanto um usuário gosta de um item, a avaliação
de utilidade é então definida por este agente. Sua base de informações é
atualizada sempre que as preferências armazenadas pelo agente de usuário
apresentam mudanças.
c) Agente de recomendação : Através do conhecimento do agente de usuário e
das preferências armazenadas pelo agente de informações, este agente
decide se a recomendação de um produto corresponde ou não ao usuário.
Para este propósito são utilizadas técnicas de filtragem colaborativa e
filtragem baseada em conteúdo, em conjunto com o grau de utilidades
correspondente aos itens. Outra tarefa do agente é a validação de
42
desempenho das recomendações, realizada pela análise do número de
recomendações corretas e sua aceitação pelo usuário.
Através da validação do agente de recomendação é decidido se uma operação
de reparo de recomendações é ativada ou não. Sua finalidade é melhorar as
recomendações atuais ajustando-as as preferências do usuário e oferecer
explicações de como seu comportamento foi interpretado e utilizado. O desempenho
das recomendações é passado ao agente de gerenciamento, para determinar se o
usuário gosta ou não gosta do item, através da utilidade que ele representa. A figura
4 mostra a arquitetura utilizada:
Figura 4 - Arquitetura do sistema IBD
Fonte: Traduzido de Vashisth e Bedi (2011)
Na fase de recomendação o agente de recomendação trabalha para gerar as
recomendações baseada nos interesses do usuário. Fora o processo de coleta de
dados na sessão o restante pode ser realizado mesmo se o usuário não estiver
conectado, devido aos dados implícitos aprendidos.
4.2 A proposta de Liang et al. (2009)
Aborda a utilização de Collaborative Tagging para realizar recomendações
personalizadas, sendo baseado em relações de três dimensões entre usuários, tags
e itens, propondo uma nova medida de similaridade e criação de perfil de usuário. O
diferencial apresentado nesse estudo é a exploração das relações de tags e itens
43
para cada usuário, considerando a utilização de suas próprias tags para aumentar a
precisão. Três aspectos são utilizados para criar o perfil:
a) Tags usadas pelo usuário;
b) Itens marcados pelo usuário;
c) Relação entre as tags e os itens marcados.
As seguintes convenções são apresentadas para facilitar o entendimento dos
cálculos:
a) 1 2 nU (u , u ,..., u )= : Grupo de usuários
b) 1 2 nP (p ,p ,..., p )= : Grupo de itens marcados pelos usuários
c) 1 2 nT (t , t ,..., t )= : Conjunto de tags que foram usadas pelos usuários
d) i j kE(u t p ) {0,1}= : Função que especifica se o usuário iu usou a tag jt no
item kp
Para um usuário iu , com i 1..n= , o perfil é definido da seguinte forma:
a) iTu : conjunto de tags de iu , i j jTu {t | t T,= ∈ kp P,∃ ∈i j kE(u t p ) 1}= , iTu T⊆ ;
b) iPu : conjunto de itens de iu , i k kPu {p | p T,∈ jt P,∃ ∈ i j kE(u t p ) 1}= , iPu P⊆ ;
c) iTP : relação entre as tags de iu e o conjunto de itens,
i j k j k i j kTP { t ,p | t T,p P, E(u t p ) 1}= < > ∈ ∈ = ;
d) i i iUF (Tu ,Pu ,TPi)= define o perfil do usuário iu . O perfil de todos os
usuários é denotado como
UF, iUF {UF | i 1...n}= = .
Ocorre o processo de seleção de vizinhança, onde para medir a similaridade
entre dois usuários são utilizadas três medidas:
a) i jUTsim(u , u ) : Similaridade das tags dos usuários, medida pela porcentagem
de tags comuns usadas por dois usuários.
i jUTsim(u , u ) = i j
k
k
| Tu Tu |
max{| Tu |}
u U
∩
∈
44
b) i jUPsim(u ,u ) : Similaridade dos itens dos usuários, medida pela porcentagem
de itens comuns marcados por ambos os usuários.
i jUPsim(u , u ) = i j
k
k
| Pu Pu |
max{| Pu |}
u U
∩
∈
c) i jUTPsim(u , u ) : Similaridade da relação tag-item dos usuários, medida pelo
percentual de relações comuns compartilhadas pelos dois usuários.
i jUTPsim(u , u ) = i j
k
k
| TP TP |
max{| TP |}
u U
∩
∈
Assim, a medida geral de similaridade entre dois usuários é definida como:
i j UT i j UP i, j UTP i jSimu(u ,u ) w *UTsim(u ,u ) w *UPsim(u u ) w *UTPsim(u ,u )= + +
Onde:
UT UP UTPw w w 1+ + = ,
Sendo UTw , UPw e UTPw os pesos para as três medidas de similaridade,
respectivamente.
A medida de similaridade entre dois itens é definida como:
i j PU i j PT i, j PUT i jSimp(p , p ) w * PUsim(p , p ) w * PTsim(p p ) w * PUTsim(p , p )= + +
Onde
PUw , PTw e PUTw são os pesos e sua soma é igual a um.
i jPUsim(p ,p ) , i, jPTsim(p p ) e i jPUTsim(p , p ) são definidos da seguinte
maneira:
a) i, jPTsim(p p ) : Similaridade de dois itens baseado na porcentagem de serem
colocados na mesma tag.
i ji j
k
k
| Tp Tp |PTsim(p ,p )
max{| Tp |}
p P
∩=
∈
,
Onde kTp é o conjunto de tags do item kp . i j k jTpk= {t | t T,E(p , t ) 1}∈ = .
45
b) i jPUsim(p ,p ) : Similaridade de dois itens baseado na porcentagem de serem
marcados pelo mesmo usuário.
i ji j
k
k
| Up Up |PUsim(p , p )
max{| Up |}
p P
∩=
∈
Onde kUp é o conjunto de usuários do item kp .
i i j i j kUpk= {u | u U, t T,E(u , t , p ) 1}∈ ∃ ∈ = .
c) i jPUTsim(p , p ) : Similaridade de dois itens baseado na porcentagem de
relações tag-item em comum.
i ji j
k
k
| UP UP |PUTsim(p ,p )
max{| UP |}
p P
∩=
∈
Onde jUP é o usuário e o grupo de itens da tag jt ,
j i k i k i j kUP { u , p | u U, p P,E(u t p ) 1}= < > ∈ ∈ = .
Dois métodos são propostos para recomendar itens ao usuário. O primeiro,
baseado em usuário, utiliza as listas de itens de outros usuários. O segundo é
baseado em item e considera a similaridade encontrada entre os itens. Sendo iC(u )
a vizinhança do usuário iu , para a abordagem baseada em usuário os itens
candidatos para iu são obtidos dos itens marcados pelos usuários em iC(u ) .
Para cada item candidato kp , baseado na similaridade entre iu e as
classificações implícitas de seus usuários vizinhos para kp denotado como jR(u , pk) ,
o valor da predição denotado como ui kA (u , p ) é calculado usando a seguinte
equação:
i j j k
j iui k
i
simu(u , u )*R(u , p )
u C(u )A (u , p )
| C(u ) |
∈=
∑
46
Os N itens de valor mais alto serão recomendados para iu . Para a abordagem
baseada em item, o valor de predição é calculado usando similaridade de itens
através da fórmula:
pk ji k
j i
simp(p p )A (u ,p )
p Pu
=∈
∑ .
4.3 A proposta de Ferro et al. (2011)
Um exemplo de sistema com composição de técnicas foi proposto por Ferro et
al. (2011), com a finalidade de realizar recomendações de materiais didáticos para
ambientes virtuais de aprendizagem. A arquitetura criada ilustra o contexto de
utilização de técnicas colaborativas e baseadas em conteúdo, adicionando uma
estratégia não personalizada.
A figura 5 a seguir demonstra a organização do componente de geração de
recomendações:
Figura 5 – Arquitetura do modelo de Ferro et al. (2011)
Fonte: Ferro et al. ,2011.
As etapas de geração são apresentadas a seguir:
47
1. Através de filtragem colaborativa é gerada uma lista de materiais. Estes
itens possuem grau de premeditação correspondente ao do usuário em
relação ao material;
2. Através da técnica baseada em conteúdo é calculado um grau de utilidade
de cada item e uma nova lista é gerada com os mesmos itens ordenados
por este coeficiente;
3. Utilizando recomendação não personalizada a lista usada na primeira etapa
é novamente analisada para verificar os itens de melhor classificação no
sistema. Uma nova lista é gerada considerando-se o valor de classificação;
4. As três listas são então utilizadas para encontrar o grau de utilidade híbrida
de cada item.
A última lista gerada permite a geração de recomendações das seguintes
formas:
a) Itens adquiridos e avaliados positivamente por usuários similares;
b) Itens semelhantes a outros itens já adquiridos no passado pelo próprio
usuário;
c) Itens bem classificados no AVA devido à quantidade de usuários que os
adquiriram.
O trabalho exemplifica como combinar estratégias de recomendação
diferenciadas em um modelo híbrido considerando abordagem de usuários, de itens
e utilizando uma estratégia não personalizada como recuso para estender a forma
de ofertar itens. Porém não resolve um dos problemas de SR, que é à entrada de
novos usuários sem histórico de utilização.
4.4 Considerações finais
Os trabalhos previamente descritos apresentam características e abordagens
relevantes a esta pesquisa. A arquitetura proposta por Vashisth e Bedi (2011) será
usada como base para definição dos agentes inteligentes e definir e como se
comportarão em um ambiente de tarefas multiagentes. As características
apresentadas no capítulo 3 sobre agentes inteligentes servirão para classificar e
identificar os agentes necessários.
48
Tanto a divisão de tarefas quanto a combinação de técnicas colaborativa e
baseada em conteúdo, serão exploradas a fim de se alcançar um comportamento
racional dos agentes que satisfaça a metodologia híbrida proposta. Com o ambiente
e os agentes definidos, as técnicas empregadas serão executadas de forma
independente.
Esta característica é herdada do trabalho apresentado por Ferro et al. (2011),
onde as técnicas são executadas em etapas diferentes. Será feita uma adaptação
para o modelo, proposto no capítulo 5, onde os algoritmos e passos utilizados não
são executados sequencialmente sobre uma lista, mas sim atribuídas a agentes
específicos que trabalham de forma independente. Os resultados são informados a
outro agente responsável por analisar essas listas e criar uma única lista final de
itens recomendados
As estratégias a serem executadas separadamente nos agentes são:
a) Filtragem colaborativa, empregando a recomendação baseada nos vizinhos
próximos, apresentada por Jannach et al. (2011) na seção 2.3.1.1;
b) Filtragem baseada em conteúdo utilizando a metodologia proposta por Liang
et al. (2009) na seção 4.2. As fórmulas apresentadas serão empregadas
como solução para trabalhar com a CT.
49
5 PROPOSTA/MODELO
O modelo contempla um conjunto de agentes, os quais constituem um
ambiente multiagente cooperativos. Assim, conforme as definições para o modelo
pretendido nesta pesquisa foi identificada a necessidade de utilizar uma solução
híbrida com técnicas previamente apresentadas. A figura 8 ilustra a organização dos
agentes para atender as solicitações.
Figura 6 - Modelo conceitual do sistema
Fonte: Autoria própria, 2012.
Os trabalhos de Vashisth e Bedi (2011), Liang et al. (2009) e Ferro et al. (2011)
possuem características relevantes que podem ser combinadas para este tipo de
modelo. Assim as melhores práticas identificadas, considerando-se o contexto e o
ambiente proposto, serão utilizadas na solução. O quadro 3 mostra essas
características.
50
Quadro 3 - Características relevantes dos trabalhos relacionados
Fonte: Autoria própria, 2012.
A combinação dessas características é empregada a fim de se cumprir o
objetivo do sistema proposto: gerar recomendações com grandes chances de
aceitação do usuário, sob a investigação de quais itens possam ser úteis.
5.1 Modelo
Conforme as definições apresentadas por Russel e Norvig (2004),
primeiramente é necessário, entender o ambiente onde os agentes atuarão. Devido
a algumas características serem determinadas sob o ponto de vista de cada agente,
são apresentados inicialmente papéis que cada um assume no sistema.
a) Agente de usuário (AGU) : Responsável por criar e atualizar o perfil de
usuário. Lida com o acesso (criando e gerenciando a sessão atual) e as
interações que o usuário realiza através do navegador. Estas interações
disparam eventos para o agente, que pode solicitar recomendações ao
agente de recomendação, realizar busca de acordo com termos inseridos no
módulo de busca e atualizar as classificações fornecidas aos itens; É um
agente baseado em modelo, visto que conhece as consequências de suas
ações e o mundo evolui independente do agente.
51
b) Agente de recomendação (AGR) : Sua tarefa principal é atender a
solicitação de recomendações vinda do agente de usuário. Para isto recebe
informações do estado atual do ambiente, relativo às interações do usuário
capturadas pelo agente de usuário, e procura responder da melhor forma
possível. Para obter os itens recomendados dispara solicitações aos agentes
de CT e de colaboração, que realizam os processos de filtragem baseada em
conteúdo e filtragem colaborativa respectivamente. Com estes dados, o
agente de recomendação utiliza seu conhecimento e percepções para
combinar os resultados e refinar a lista para o usuário. É um agente baseado
em utilidade visto que procura alcançar um objetivo da melhor forma
possível.
c) Agente de CT (ACT) e agente de colaboração (ACO) : São agentes reativos
simples que recebem solicitações para executar as técnicas de filtragem. O
conhecimento necessário não envolve o estado atual do ambiente e a ação,
ou sequencia de ações, que o usuário manifesta no navegador. As únicas
informações consideradas são parâmetros passados pelo agente de
recomendação para customizar as etapas de busca.
Através desta descrição inicial dos agentes é possível interpretar o ambiente de
forma mais precisa. Este conhecimento prévio facilita a modelagem tanto dos
agentes quanto dos processos do sistema, principalmente na descrição das tarefas.
Além disso, permite identificar a existência de possíveis objetivos contraditórios,
incertos ou inalcançáveis. Assim o ambiente do portal foi classificado conforme o
quadro 4.
52
Quadro 4 - Classificação do ambiente de tarefas
Fonte: Autoria própria, 2012.
Considerando que a navegação web é dinâmica, o sistema constantemente
observa qual evento foi gerado pelo usuário no momento atual, e, caso existam,
eventos gerados anteriormente que ainda estejam em execução.
O processo geral de recomendação é iniciado por eventos gerados a partir da
interface de usuário. A interface de usuário é o meio pelo qual o usuário utiliza o
sistema, ativando o comportamento do AGU. Dependendo da interação apresentada
este agente realiza acesso diretamente a base ou solicita recomendações para
AGR. Os ACO e ACT são os responsáveis pela execução dos algoritmos. A interface
e os agentes serão descritos nas seções seguintes.
5.2 Estrutura
Esta seção complementa o ambiente proposto para agentes fornecendo a
descrição arquitetural necessária. Conforme o resultado esperado com o modelo o
53
sistema deve ser projetado sob uma arquitetura web, viabilizando acesso através da
rede, seja ela local ou via internet.
5.2.1 Arquitetura e tecnologias
Devido ao sistema realizar transmissão online de conteúdo, a arquitetura
cliente-servidor é essencial para realização das requisições. Neste tipo de
arquitetura há um hospedeiro sempre em funcionamento, denominado servidor, que
atende requisições de outros hospedeiros, denominados clientes. O exemplo mais
comum é uma aplicação de internet na qual um servidor web, que está sempre em
funcionamento, atende a requisição de browsers de hospedeiros clientes.
Quando recebe uma requisição de um objeto de um hospedeiro cliente, o
servidor web responde enviando o objeto requisitado a ele. O servidor web além de
estar sempre funcionando, mantém o mesmo endereço IP. A figura 6 ilustra a
arquitetura cliente-servidor utilizada no modelo, onde o usuário requisita o acesso ao
sistema, através de dispositivos que ofereçam um navegador para acesso a internet.
O pedido é enviado ao servidor de aplicação onde o sistema está efetivamente
sendo executado.
Figura 7 - Arquitetura do sistema de recomendação
Fonte: Autoria própria, 2012.
54
No servidor de aplicação está instalado o servidor web necessário para tratar
as requisições e fornecer as páginas geradas com HyperText Markup Language
(HTML), utilizando o protocolo Hypertext Transfer Protocol (HTTP). Estas páginas
contêm os vídeos, recomendações e demais componentes da interface de usuário,
que serão detalhados na seção 5.2. O servidor web escolhido foi o Apache
(http://www.apache.org) na versão 2.2.11, disponibilizado sob a licença de software
livre (open source) de autoria da Apache Software Foundation2 (ASF).
No mesmo servidor está instalado o pacote e interpretador da linguagem PHP3
(Hypertext Preprocessor) na versão 5.3.0, utilizada para a programação do sistema.
É uma linguagem de programação de código aberto utilizada para criação de scripts,
que são executados a partir do servidor web. Foi utilizado o framework de
desenvolvimento ágil CakePHP (http://cakephp.org/), que oferece uma estrutura
para criação de aplicações web. Sua organização segue o padrão de arquitetura
MVC (Model-View-Controller), que separa a aplicação em três partes principais:
a) Camada de modelo : Representa a parte da aplicação responsável
pelo tratamento dos dados. Realiza processamento, validação, associação e
qualquer outra tarefa relativa às informações disponíveis. Formam a primeira
camada de interação com as bases de dados associadas ao sistema. Em
geral significam os conceitos principais em volta dos quais a aplicação é
construída.
b) Camada de visão : Responsável por montar e apresentação dos dados
modelados, utilizando a informação disponível para produzir qualquer página
que a aplicação necessitar. Também possui recursos para montar a saída dos
dados para XML (extensible markup language), apresentação de vídeos e
músicas, arquivos de texto simples, entre outros formatos.
c) Camada de controle : Responsável por tratar as requisições dos
usuários, retornando uma resposta com a ajuda do modelo e da camada de
visão. Aguarda requisições dos clientes, verifica a sua validade segundo
autenticação ou regras de autorização, solicita recuperação ou
processamento de dados para a camada de modelo e seleciona o tipo correto
de apresentação dos dados que o cliente deve receber.
2 Informações sobre a ASF podem ser encontradas em http://www.apache.org/foundation/ 3 Informações e download do PHP são disponibilizados em www.php.net
55
O ciclo do CakePHP inicia com um usuário realizando uma requisição a uma
página ou recurso da aplicação, sendo processada por um dispatcher
(despachante), que seleciona o objeto controller (controlador) específico para lidar
com a solicitação. Este utiliza a camada de modelo para executar qualquer operação
necessária sobre os dados. O ciclo é ilustrado na figura 7.
Figura 8 - Ciclo de requisição no framework CakePHP
Fonte: Traduzido de http://book.cakephp.org/2.0/en/cakephp-verview/understanding-model-view-controller.html.
Os dados estão armazenados em um servidor secundário, onde está instalado
o banco de dados, aliviando os processos de busca e atualização de informações,
enquanto os agentes executam no servidor principal que lida com os eventos
disparados pela interação do usuário. O banco utilizado é o PostgreSQL, distribuído
sob a licença BSD (Berkeley Source Distribution), relativamente próxima ao domínio
público. A versão utilizada é a 8.3.
Ambos os servidores mantem comunicação entre si, porém somente o servidor
primário está conectado na internet e pode processar requisições. Assim a
separação é transparente ao usuário, que só visualiza o conteúdo apresentado pelo
navegador.
5.2.1.1 Interface de usuário
Conforme ilustrado, as operações possíveis na interface de usuário são
bastante simples e os elementos são mostrados de acordo com as interações
durante a navegação. No primeiro acesso são exibidas a caixa de pesquisa e uma
lista de recomendações. Estes componentes permitem a busca e seleção de
conteúdo, estando presentes em todas as páginas geradas pela camada de visão.
56
Já a escala de classificação é disponibilizada quando o usuário seleciona um
vídeo, devido à escala ser para classificação individual, gerando o índice de
satisfação para o item que está sendo exibido e caracterizando a coleta explícita de
dados. O mesmo ocorre com o reprodutor de vídeo, pois somente é possível
visualizar um vídeo por vez. A figura 9 mostra o reprodutor de vídeo e a escala de
classificação padrão para todos os itens.
Figura 9 - Reprodutor de vídeo e escala de classificação
Fonte: Autoria própria, 2012.
A lista de recomendações oferece conteúdo de forma dinâmica, sendo
constantemente alterada de acordo com a interação do usuário no navegador e as
preferências armazenadas em seu perfil. Através do registro de acesso do usuário
no sistema, mediante e-mail e senha, as estratégias podem ser solicitadas, seguindo
a sequência apresentada no diagrama de atividades da figura 10.
57
Figura 10 - Diagrama de atividades de acesso ao sistema
Fonte: Autoria própria, 2012.
Conforme o diagrama o sistema primeiramente identifica se o usuário é novo
ou se já interagiu com o sistema em algum momento. Para isto é verificado se existe
registro de histórico de classificações, pesquisa ou marcação de conteúdo. Caso
seja o primeiro acesso, o AGR gera uma lista não personalizada de itens. Esta
seleção é feita baseada em itens com as classificações globais mais altas atribuídas
pelos usuários.
Caso o usuário já tenha um perfil armazenado na base de dados, o AGR
solicita recomendações para o ACO e ACT. Ambos agentes aplicam suas etapas
para geração das predições e enviam suas listas resultantes ao AGR. Seja a lista
não personalizada ou gerada pelos agentes, ela será enviada ao AGU que
apresenta as recomendações ao usuário.
5.2.1.2 Agente de usuário
As ações realizadas no browser, considerando operações de sistema, são
percebidas pelo AGU, que atua como elo entre o usuário e os demais agentes. Cabe
a ele realizar a ação correspondente ao evento gerado.
58
Devido às ações constituírem um conjunto finito de estados conhecidos, foi
utilizado um mapeamento de condição-ação, onde cada interação possível está
ligada a uma ação do agente. Cada comportamento é representado por um método
interno, estando ilustrados na figura 11, em um diagrama de casos de uso para este
contexto.
Figura 11 - Diagrama de uso do sistema
Fonte: Autoria própria, 2012.
O caso de uso “Acessar Sistema” é essencial a todos os outros, onde o usuário
deve se identificar através de seu endereço de e-mail e senha. Conforme o
diagrama de atividades o AGU identifica se esse usuário já possui histórico de
acesso, verificando seu perfil. O conteúdo inicial será composto pela caixa de
pesquisa e por uma lista de sugestões, independente da existência de histórico, pois
nenhum vídeo foi selecionado ainda.
A partir destes componentes o usuário pode visualizar os vídeos desejados. A
lista inicial é limitada em dez itens e pode ser obtida de duas formas:
a) Usuário novo : O AGU gera a lista não personalizada selecionando dez itens
com as maiores classificações globais. No caso de mais de dez itens com
mesmo valor de classificação são priorizados aqueles com maior quantidade
de tags adicionadas por usuários.
b) Usuário com histórico : O AGU solicita uma lista personalizada para o AGR,
que inicia o processo de gerar recomendações, retornando os itens gerados.
59
A criação desta lista e o comportamento do AGR são explicados na seção
5.2.3.
Cada vídeo visualizado pelo usuário é registrado, para saber se houve
interação com o item. O AGU registra este acesso por item e não diretamente no
perfil do usuário. Esta é a informação mais básica de interação registrada no
sistema. Além deste registro é possível que o usuário atribua tags ou forneça uma
classificação para o item, indicando o grau de utilidade, através dos casos de uso
“Marcar conteúdo” e “Classificar conteúdo”.
Cabe ao AGU registrar essas informações, caracterizando a manutenção de
perfil do usuário, que será utilizado pelas técnicas dos ACO e ACT. Assim é
necessário que a base de dados armazene de forma coerente estas informações.
Na figura 12 o DER (diagrama entidade relacionamento) exibe o fragmento da base
de dados onde estão definidos os relacionamentos que formam o perfil de usuário.
Figura 12 - Diagrama entidade relacionamento do perfil de usuário
Fonte: Autoria própria, 2012.
Conforme o diagrama o sistema é capaz de obter os seguintes conhecimentos:
a) Tags utilizadas nos itens. O campo “origem” da tabela de tags identifica se a
tag foi originada pelo usuário ou cadastro do item;
b) Itens marcados pelo usuário;
c) Itens classificados pelo usuário;
d) Valor de classificação atribuído aos itens;
60
e) Itens visualizados pelo usuário (campo “visualização” da tabela “usuario-
item”);
f) Através do campo “origem_preferencia” da tabela “usuário-item” o sistema
identifica se a visualização, marcação ou classificação fornecida pelo usuário
ocorreu em itens pesquisados por ele ou recomendados pelo AGR. Através
desta informação o AGR identifica se os itens oferecidos despertaram
interesse do usuário.
5.2.1.3 Agente de Recomendação
O AGR é o responsável por prover a lista final de recomendações, que será
apresentada ao usuário caso este já possua histórico de utilização do sistema. Sua
atividade é iniciada com a solicitação de recomendações pelo AGU. Neste momento
o agente sabe que o usuário já está ativo no sistema. Assim sua próxima tarefa é
requisitar as recomendações aos ACT e ACO, que executam as técnicas
colaborativa e baseada em conteúdo respectivamente.
Após processarem os itens os agentes de estratégia retornam suas listas para
o AGR, que deve formar uma lista final com os itens providos por ambas as
estratégias. A quantidade de itens e os valores de predição são analisados pelo
agente que realiza uma combinação de itens.
O processo inicia analisando a lista colaborativa a fim de selecionar os itens
com melhores classificações. Como os resultados dos cálculos de predição, de
ambas as estratégias, são números fracionários, o agente realiza um
arredondamento da seguinte forma:
a) Números com parte fracionária maior ou igual a 0.5 são arredondados para
cima
b) Números com parte fracionária menor que cinco são arredondados para
baixo.
Este processo é aplicado para ambas às listas. Antes de iniciar o processo de
formação da lista final, o AGR elimina duplicidade, caso exista, de itens presentes
nas duas listas. Após o ajuste dos valores o agente verifica a quantidade de itens
existentes para cada valor de predição. O quadro 5 ilustra este processo.
61
Quadro 5 – Combinação de recomendações
Fonte: Autoria própria, 2012.
De posse destes dados o agente inicia o processo pela lista colaborativa.
Como seu objetivo é fornecer uma lista com os itens que ofereçam maiores chances
de aceitação o primeiro passo é contabilizar os itens que receberam valor de
predição quatro ou cinco.
Se a quantidade desses itens bem classificados for igual ou maior ao limite da
lista da interface, os itens são limitados a dez unidades e enviados ao AGU como
lista final de recomendação, sendo apresentada ao usuário.
Se esta soma for menor que dez, ela será preenchida com os melhores itens
da lista resultante da estratégia baseada em conteúdo. Ao final, a lista resultante é
ordenada de forma decrescente pelo valor de predição.
5.2.1.4 Agente de Colaboração
O ACO é responsável por executar as etapas da estratégia colaborativa,
encontrando similaridade entre usuários. Seu objetivo é definir um valor de predição,
indicando um grau de aceitação do usuário para itens não vistos por ele. O processo
ocorre em duas etapas sendo a primeira para definir a vizinhança, calculando a
similaridade, e a segunda para gerar a predição. Devido ao alto custo computacional
foram utilizadas as duas soluções propostas por Jannach et al. (2011), cujos valores
foram definidos a fim de não comprometer o desempenho do algoritmo:
62
a) Valor mínimo de similaridade: Sendo os valores possíveis de -1 a 1, o valor
mínimo estabelecido para o modelo é 0.4, representando 40% de similaridade
mínima.
b) Redução de vizinhança a um valor fixo: A vizinhança foi reduzida a vinte
usuários.
O cálculo permite que os usuários sejam identificados como similares mesmo
quando fornecem apenas classificações altas ou quando não classificam nenhum
item com valor máximo da escala. Assim mesmo com valores diferentes o agente
identifica comportamentos semelhantes.
5.2.1.5 Agente de Collaborative Tagging
O objetivo do ACT também é obter uma lista de itens com predição para itens
não vistos, porém, empregando a estratégia baseada em conteúdo. Embora as
etapas sejam as mesmas definidas no ACO a técnica utilizada é baseada em
conteúdo, permitindo explorar relações de tags e itens para cada usuário. Para
usuários que marcaram conteúdo adicionando tags o cálculo mostra-se mais
preciso.
Este processo é baseado no estudo que Liang et al. (2009) que considera as
relações a seguir de tags usadas pelo usuário, itens que foram marcados por ele e a
relação entre as tags e os itens marcados.
Conforme evidenciado na seção 2.3.2.1, esta organização assegura que os
itens são armazenados de forma que as palavras-chave não sejam interpretadas de
forma negativa, como ocorre em taxonomias hierárquicas.
Embora o trabalho de Liang et al. (2009) , de onde foram obtidas as fórmulas
para o algoritmo, ofereça um cálculo para gerar predição baseada também em
usuários, o ACT realiza somente a predição baseada em itens, visto que o ACO
executa a estratégia que realiza análise de perfis.
Assim, de forma semelhante à abordagem colaborativa, a primeira etapa
consiste em determinar a vizinhança, onde as medidas utilizadas são baseadas em
similaridades dos itens. Para este agente somente a redução da vizinhança a um
valor fixo foi aplicada, também limitada em vinte usuários. As três medidas utilizadas
para calcular a similaridade baseiam-se em:
63
a) Porcentagem de serem colocados na mesma tag.
b) Porcentagem de serem marcados pelo mesmo usuário.
c) Porcentagem de relações tag-item em comum.
A cada percentual é associado um peso, determinando a importância no
cálculo de predição segundo a equação:
i j UT i j UP i, j UTP i jSimu(u ,u ) w *UTsim(u ,u ) w *UPsim(u u ) w *UTPsim(u ,u )= + +
Conforme evidenciado os pesos UT UP UTPw w w 1+ + = definem o grau de
importância de cada medida de similaridade no cálculo. Estes valores foram
definidos da forma fixa no sistema como:
a) UTw 0.4= ;
b) UPw 0.3= ;
c) UTPw 0.3= ;
Foi definido assim um leve aumento do grau de importância na relação de itens
serem colocados na mesma tag. Esta escolha deve unicamente ao fato desta
pesquisa não realizar testes específicos relativos a como os pesos de cada medida
influenciam no processo. Assim valores medianos foram selecionados para manter o
equilíbrio no cálculo de similaridade.
Em outro cenário seria possível que estes valores fossem informados pelo
AGR, supondo que este seja sensível ao contexto e possuam conhecimento de
situações que apresentaram bons resultados devido a diferença de valores aplicada.
Ao final a fórmula para gerar predição baseada em itens é utilizada, caracterizando a
segunda etapa do processo.
64
6 AVALIAÇÃO
O objetivo deste capítulo é descrever a avaliação do modelo desenvolvido.
Além de contextualizar o cenário de avaliação e a metodologia, são apresentados os
resultados obtidos nos testes.
6.1 Considerações iniciais
Esta seção contextualiza questões importantes definidas por Shani e
Gunawardana (2011) sobre avaliação de SR, sendo estruturada com base no
trabalho dos autores. No estudo são identificadas diversas maneiras possíveis de se
avaliar propriedades deste tipo de sistemas, considerando três principais cenários:
a) Avaliação sem usuários, ou seja, de forma automatizada;
b) Avaliação com usuários cientes de estarem testando o sistema;
c) Avaliação com usuários não sabem que um teste está sendo realizado
Segundo os autores a avaliação ideal ocorre com a participação de usuários,
sem conhecimento do teste sendo aplicado, refletindo uma situação real. Esta
diferença deve-se ao fato de que usuários cientes da aplicação do teste podem ser
tendenciosos ao avaliar os itens
Embora esta solução também seja mais adequada para a presente pesquisa,
devido, as seguintes dificuldades são encontradas:
a) Dificuldade de obtenção de voluntários;
b) Falta de tempo para realização dos testes;
c) Utilização de protótipo, que não permite esconder a realização do teste do
usuário.
A avaliação, portanto, seguirá premissas de avaliação em dados sem usuários,
ocorrendo de forma off-line. Conforme o estudo apresentado por Shani e
Gunawardana (2011) um experimento off-line é realizado utilizando-se dados
coletados previamente de usuários visualizando ou classificando itens.
Através desse conjunto de dados é possível simular o comportamento dos
usuários que interagem com o sistema de recomendação. Assume-se assim que o
comportamento adquirido na coleta dos dados será suficientemente similar ao
comportamento online quando o sistema de recomendação for construído. É
possível, portanto tomar decisões confiáveis baseadas em simulação.
Este tipo de experimento não requer nenhuma interação com usuários reais, e
permite comparar, com baixo custo, uma ampla quantidade de algoritmos e técnicas.
65
O aspecto negativo para este tipo de teste é a limitação do conjunto de questões
que podem responder, sendo tipicamente sobre o poder de predição do algoritmo.
Deve ser assumido que o comportamento dos usuários, quando interagindo com o
sistema escolhido, será modelado antes da utilização do sistema. Por isso, não é
possível medir diretamente a influência do SR no comportamento.
Assim, o objetivo dos testes off-line é eliminar abordagens inapropriadas,
deixando um grupo menor de usuários serem testados por experimentos mais
custosos, como estudar casos de usuários ou experimentação online com o sistema
em funcionamento.
Os dados utilizados neste tipo de avaliação devem ser o mais próximo possível
dos dados reais que serão utilizados no Sistema. Deve-se ter muito cuidado para
garantir que não há nenhuma tendência nas distribuições de usuários, itens e
classificações selecionadas. Por exemplo, em casos onde os dados disponíveis são
obtidos de sistemas existentes, como em sistemas que não realizam
recomendações ou ainda que recomendem itens, mas a participação de seus
usuários seja muito baixa, uma filtragem prévia dos dados pode ser muito útil.
Este procedimento serve para eliminar usuários que não irão contribuir na
avaliação, por exemplo, com número insignificante de classificações, que somente
adicionarão ruído aos testes. Porém é preciso estar ciente que embora não exista
tendência na distribuição dos dados, existirá uma tendência no comportamento
regular dos usuários, afetando positivamente a execução do algoritmo.
Quando o sistema estiver em funcionamento por um período suficiente para
registrar maiores históricos de participação, existem grandes chances de que o
processo de geração de recomendações apresente resultados um pouco diferentes
dos obtidos durante o treino. Este fator é fortemente ligado a característica que está
sendo testada.
Por exemplo, se a velocidade ou quantidade de memória utilizada estiverem
sendo testadas, é importante considerar que no ambiente de execução existem
grandes chances do desempenho ser fortemente influenciado, pois o ruído que
antes não existia estará presente em situações reais. Porém se características
relativas a qualidade forem o foco do teste, o ambiente de testes pode fornecer
resultados suficientemente semelhantes.
66
Além de uma organização adequada dos dados é necessário simular o
processo online, onde o sistema realiza predições ou recomendações, e o usuário
corrige as predições ou utiliza as recomendações. Isto é tipicamente realizado
armazenando-se dados de usuários e então escondendo algumas dessas interações
a fim de simular o conhecimento de como um usuário irá classificar um item, ou
quais recomendações ele irá utilizar. A forma de seleção das classificações e itens
deve procurar refletir, da forma mais próxima possível, os dados reais que serão
utilizados, considerando, por exemplo, a quantidade de itens que estarão
disponíveis.
6.2 Coleta dos dados
Devido aos usuários serem as únicas informações em comum na execução das
técnicas baseada em conteúdo e colaborativa, não foi possível encontrar em uma
única base de dados com todas estas informações disponíveis e inter-relacionadas.
Esse é um fator crítico para o modelo desta pesquisa, pois é necessário alimentar as
tabelas que compõem o perfil de usuário, conforme identificado no DER na seção
5.2.2. Assim, a solução para testar ambas as estratégias foi a obtenção de duas
bases distintas, onde todos os dados foram importados.
Para a abordagem colaborativa foram utilizados dados do sítio GroupLens, que
fornece dados coletados em períodos diversos. A base escolhida é disponibilizada
para testes públicos, sendo obtida diretamente pelo sítio. O tamanho é de 100Kb
(Kilobytes) e consiste de 100.000 classificações de 1.000 usuários em 1.700 filmes.
São fornecidas diversas informações sobre os usuários e itens, porém somente o
conteúdo que alimenta as tabelas de itens, usuários e classificações foi importado.
A figura 13 mostra o fragmento de um dos arquivos importados na base de
dados, contendo informações das classificações. As colunas representam,
respectivamente:
a) O identificador do usuário;
b) O identificador do item;
c) A classificação fornecida;
d) E a data e hora da classificação.
67
Outros dois arquivos, que contém as informações de itens e usuários, são
fornecidos no mesmo padrão, em formato de texto. Devido a este formato de
disponibilização, as restrições e chaves para os relacionamentos foram definidos
conforme o as diretrizes do PostgreSql.
Figura 13 - Fragmento do arquivo de classificações e usuários.
Fonte: Grouplens research, 2012-07-27
A base obtida para a abordagem baseada em conteúdo foi criada no período
de setembro a dezembro de 2009, sendo disponibilizada no sítio
(http://datamob.org). Esta base reúne informações dos sítios Delicious
(http://delicious.com/), Dmoz (http://www.dmoz.org/) e StumbleUpon
(http://www.stumbleupon.com/) em um único arquivo no formato XML.
O arquivo é composto por informações de 12.616 URL’s (Uniform Resource
Locator) únicas, cujos usuários adicionam anotações sobre o conteúdo, marcam
como páginas favoritas e adicionam tags para facilitar busca e compartilhamento
com demais usuários.
As informações importadas foram:
a) Usuários;
b) Tags;
c) URL’s.
A inserção e configuração das tabelas também foram aplicadas diretamente
conforme diretrizes do PostgreSQL. A figura 14 apresenta a descrição das
informações contidas no arquivo.
68
Figura 14 - Descrição das tags importadas no banco de dados
Fonte: Traduzido de nlp.uned.es, 2012.
Devido aos testes serem executados utilizando informações do banco de dados
do modelo, e não sendo necessários arquivos de vídeo para análise, os itens
obtidos, embora sejam filmes e páginas web, servem ao propósito de teste dos
algoritmos. Embora o domínio seja diferente, os itens contidos em cada base de
dados são todos do mesmo tipo, representados somente por filmes e URL’s.
Os totais de dados na base local são:
a) Usuários: 1.100;
b) Itens: 10.815;
c) Classificações: 31.211;
d) Tags: 21.000.
69
6.2 Metodologia
Segundo Shani e Gunawardana (2011) uma forma pouco custosa e bastante
utilizada é coletar uma amostra de usuários de teste e definir um período de
amostragem, ocultando todos os itens após este período para cada usuário de teste.
Isso simula uma situação onde o SR é construído desde o período de testes, e faz
recomendações sem considerar qualquer novo dado que chega o após tempo
selecionado.
Outra alternativa é definir uma amostra de tempo de teste para cada usuário de
teste e esconder os itens de teste do usuário, depois desse período, sem manter
uma consistência temporal entre os usuários. Isto assume efetivamente que a
sequencia na qual os itens são selecionados é importante e não o tempo absoluto
quando a seleção é realizada.
Uma última alternativa proposta é ignorar o tempo. Neste caso primeiro é
definida uma amostra de usuários de teste e então definida uma amostra de itens
para esconder para cada usuário. Isto assume que os aspectos temporais da
seleção de usuários não são importantes. Isto ocorrerá obrigatoriamente quando as
informações de data e hora não estiverem disponíveis.
Uma medida comum utilizada em muitas pesquisas consiste em definir um
número fixo de itens conhecidos ou de itens escondidos por usuário de teste. Isto é
útil para diagnóstico de algoritmos e identificação de quais casos eles funcionam
melhor. Porém quando o objetivo for tomar decisões no algoritmo que será usado,
deve-se considerar o fato de que as recomendações serão apresentadas somente
para usuários que classificaram exatamente N itens ou que se espera que
classifiquem exatamente N itens a mais. Deve-se estar ciente que estas formas de
testes não permitem testar o comportamento dos usuários quando estiverem
interagindo com o sistema.
Diante destas propostas a presente avaliação irá simular a recomendação de
itens a usuários desconsiderando o tempo em que elas ocorreram. Isto se deve a
dois fatores:
a) Os algoritmos não são competitivos e o objetivo não é validar o desempenho
e as listas de resultados obtidos de cada um. Além das recomendações
serem combinadas pelo AGR a técnica colaborativa é focada em usuários e
70
suas classificações, enquanto a técnica baseada em conteúdo explora
informações de usuários, itens e tags.
b) A base de dados utilizada na abordagem de CT não informa a data e hora das
interações dos usuários.
O processo de testes é executado separadamente para cada algoritmo,
iniciando com a seleção de usuários mediante a quantidade de classificações
fornecidas por eles. Esta primeira etapa é realizada devido à necessidade de existir
uma quantidade suficiente de itens classificados para que uma parte possa ser
escondida e comparada com as recomendações.
Assim foram selecionados usuários com pelo menos 20 itens classificados,
para fornecer histórico suficiente ao algoritmo, visto que serão utilizadas etapas que
ocorrem de forma evolutiva, onde os resultados são comparados com a etapa
anterior a atual.
Para exemplificar o processo, descrevendo um cenário ideal, é utilizado um
usuário hipotético com vinte itens classificados. A primeira ação do algoritmo de
testes é dividir ao meio o histórico de itens, caso seja um número impar os itens
escondidos correspondem a (N/2)-1, onde N é o total de itens classificados, e o
restante é mantido como histórico.
Feito isto o agente correspondente a estratégia (ACO ou ACT) gera as
recomendações para o usuário. Destas recomendações são contabilizadas quantas
estão entre as que foram escondidas, para avaliar se o algoritmo é capaz de
oferecer os itens escondidos. Esta é a primeira de N rodadas executadas e é
exemplificada no quadro 6.
71
Quadro 6 - Primeira rodada do exemplo de teste
Fonte: Autoria própria, 2012.
Na próxima etapa os quatro itens que corresponderam aos escondidos são
adicionados ao histórico e retirados da lista de itens escondidos e uma nova rodada
é executada. O quadro 7 ilustra a segunda rodada.
Quadro 7 - Segunda rodada do exemplo de teste
Fonte: Autoria própria, 2012.
Na segunda rodada foram encontrados cinco itens iguais aos escondidos,
representando um item a mais em relação aos quatro correspondentes da rodada
anterior. Isto representa uma melhoria no processo, devido ao aumento de histórico
disponível permitir encontrar uma quantidade maior de itens em relação a rodada
anterior, onde o histórico era menor. Após a execução da segunda rodada somente
um item permaneceu escondido. A terceira rodada é então executada, porém o item
72
não é encontrado na lista de recomendações O quadro 8 apresenta os dados finais
do caso de teste hipotético.
Quadro 8 - Terceira rodada do exemplo de teste
Fonte: Autoria própria, 2012.
Neste exemplo o teste foi finalizado devido a lista de recomendações não
incluir o item escondido X12. É importante ressaltar que a condição de parada pode
ocorrer logo na primeira execução, para outros casos de teste, pois o algoritmo pode
não ser capaz de encontrar nenhum item escondido.
6.3 Resultados obtidos
A metodologia explicada na seção anterior foi aplicada para 20 usuários de
teste, sendo 10 utilizados na técnica FC e 10 na BC. Para seleção dos usuários
foram definidos os seguintes parâmetros:
a) Mínimo de 20 e máximo de 35 itens classificados, para a estratégia de FC;
b) Mínimo de 20 e máximo de 35 itens marcados com tags, para a estratégia
BC.
A tabela 1 exibe os resultados obtidos da técnica colaborativa.
73
Tabela 1 - Resultados dos testes da técnica colaborativa
Fonte: Autoria própria, 2012.
Nos resultados apresentados a coluna “itens não recomendados” apresenta a
quantidade de itens escondidos que não foram gerados como recomendação.
Analisando os percentuais, o pior caso obtido foi do usuário 249, onde 57,2% dos
itens escondidos não foram recomendados, representando efetividade média.
Próximo a estes resultados estão os usuários 548, 56 e 326.
Os resultados ótimos obtidos, onde todos os itens foram recomendados,
representam 40% do total. Para os usuários 324 e 115 uma margem baixa de itens
não foram incluídos nas recomendações, e pode ser dito que estes resultados foram
satisfatórios.
De forma geral pode ser observado que dos 10 usuários analisados 70%
receberam uma boa quantidade de recomendações, representando um bom
desempenho do algoritmo. Os itens recomendados para os 30% restantes, de certa
forma não podem ser considerados resultados ruins, visto que o algoritmo
apresentou precisão de 50%,
Os resultados obtidos pela estratégia baseada em conteúdo apresentam um
grau maior de imprecisão, conforme demonstrado na tabela 2.
74
Tabela 2 - Resultados dos testes da técnica baseada em conteúdo
Fonte: Autoria própria, 2012.
Conforme a tabela os resultados ótimos representam 30% do total, sendo dos
usuários 68, 391 e 25. Porém nenhum usuário ultrapassou 50% de itens escondidos
não recomendados, sendo o pior caso o usuário 477 com 41,7%.
Assim os usuários 477 e 102 representam a porcentagem de piores casos do
algoritmo, que equivalem a 20% do total. Estes resultados são satisfatórios, visto
que o algoritmo atingiu 80% de precisão em recomendações, enquanto o restante,
que representa menor grau de precisão, ainda demonstrou 10% de melhoria em
relação ao algoritmo colaborativo.
Para as duas técnicas testadas a precisão foi medida com base em itens
previamente caracterizados pelos usuários, porém, os demais itens que não foram
encontrados no histórico poderiam ser uteis. Desta forma a lista de recomendação
gerada pôde tanto encontrar itens com certeza satisfatórios, como outros que
apresentam boas chances de serem classificados ou marcados pelos usuários em
situações online.
Em ambas as abordagens os dados são carregados em memória, montando as
matrizes para processamento. O tempo médio de geração das predições por usuário
na abordagem colaborativa foi de 8 minutos, enquanto na baseada em conteúdo a
média sobe para 13 minutos. Esta demora de processamento demonstra que o
processo necessita de aperfeiçoamento para que as recomendações, sendo
baseadas em memória, possam ser executadas em tempo real, pois a resposta
precisa ser fornecida conforme atual dos usuários.
75
7 CONCLUSÃO
O presente estudo realiza a combinação de duas diferentes estratégias para
compor uma solução híbrida de sistema de recomendação. Através das abordagens
colaborativa e baseada em conteúdo foi possível extrapolar, para toda a base de
dados, a predição de utilidade dos itens não vistos pelos usuários. Porém as listas
geradas por cada abordagem não podem simplesmente serem combinadas, pois o
objetivo dos sistemas de recomendação é reduzir a sobrecarga de informação e
selecionar conteúdo de acordo com preferências.
Assim se fez necessário agregar um processo inteligente ao modelo criado,
permitindo elevar a predição de predição das recomendações. Também foi possível
extrapolar a predição de itens para toda base de dados.
O funcionamento do sistema é realizado por agentes inteligentes, que
automatizam o processo desde a interação do usuário até a montagem final da lista
de recomendações. Foram apresentados quatro agentes, que juntamente com o
ambiente e, foram contextualizados para melhor entendimento e modelagem do
sistema. O sistema pode ser classificado como cooperativo, pois as tarefas de cada
agente procuram satisfazer objetivos de outros agentes.
Para o problema de usuários novos a solução encontrada foi organizar itens
melhor classificados globalmente no sistema, caracterizando uma listagem de itens
não personalizados. Esta lista foi baseada em classificações e não em palavras-
chave, pois a intenção é apresentar resultados que demonstraram utilidade para
uma quantidade grande de número grande de pessoas.
O objetivo de gerar recomendações com boa qualidade foi alcançado. Os
resultados obtidos demonstraram que a utilização de listas diversas, aliadas a
utilização dos agentes, foi capaz de predizer itens realmente úteis aos usuários. Os
testes foram baseados em usuários com histórico significativo de classificações,
devido à falta de tempo e usuários reais para teste. Assim se fez necessário um
processo de testes off-line, onde foi necessário explorar históricos reais.
Esta pesquisa, no entanto, não procurou analisar e resolver problemas
relacionados a desempenho dos algoritmos. O tempo de execução foi demasiado
grande, sendo necessárias técnicas mais apuradas para processamento dos dados.
76
Estas otimizações são essências para viabilizar a utilização do modelo em
ambientes reais.
Além disso, não foi implementado um controle relacionado à coerência e
quantidade das tags. O protótipo permite que palavras-chave redundantes sejam
utilizadas tanto pelos usuários quanto pelos responsáveis pelo cadastro dos itens.
Sugestões de trabalhos complementares a esta pesquisa são apresentados a
seguir:
a) Utilizar feedback e explicações para os usuários a fim de evidenciar os
motivos que levaram a construção da lista atual de recomendações;
b) Reduzir o tempo de processamento das recomendações. Uma
alternativa é utilizar pré-processamento dos dados em bases de dados
com maior escalabilidade. Neste caso quando o usuário acessa o
sistema, as recomendações já estarão prontas, diferente do protótipo
desta pesquisa que monta a matriz de dados em memória.
c) Tratamento de coerência e quantidade de tags utilizadas. O controle
sobre a utilização de tags que não sejam sinônimas ou que tenham
diferentes significados, dependendo do contexto de utilização
(polissemia);
d) Correção ortográfica de tags, para que erros de escrita não
comprometam a seleção de conteúdo;
e) Aprimorar o aprendizado sobre comportamento do usuário considerando
alteração de preferências manifestadas ao longo do tempo.
f) Utilização de técnicas de processamento paralelo para reduzir o tempo
de análise e geração das recomendações.
g) Utilização de redes neurais para aprendizado de máquina referente ao
perfil de usuário;
77
REFERÊNCIAS
ADOMAVICIUS, Gediminas; TUZHILIN, Alexander. Toward the Next Generation of
Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions.
IEEE Transactions on Knowledge and Data Engineering , v. 17, p. 734-749. 2005
BALABANOVIC, Marko; SHOHAM, Yoav. Fab: content-based, collaborative recommendation. Communications of the ACM , v. 40, n. 3, p. 66–72. 1997. BURKE, Robin. Hybrid Recommender Systems: Survey and Experiments. Department of Information Systems and Decision Sciences, California State University, Fullerton. 2002 BURKE, Robin. Hybrid web recommender systems. Telecommunications and Information Systems. DePaul University. (Eds.): The Adaptive Web, LNCS 4321, p. 377 – 408, 2007 Chicago, USA. Springer: 2007 p. 377–408. BURKE, Robin; RAMEZANI, Maryam (Ed.). Matching Recommendation Technologies and Domains. In: RICCI, Francesco; ROKACK, Lior; SHAPIRA, Bracha (Comp.). Recommender Systems Handbook . New York: Springer, 2011. Cap. 11, p. 367-382. FERREIRA, André; BOAS, Ana Alice Vilas; CURTY, Ilton Leal Junior. O E-Learning Como Instrumento de Educação Corporativa: Um Estudo de Caso - Universidade Federal Rural do Rio de Janeiro, 2004.Rio de Janeiro. FERRO, M. R. da Costa; MARTINS H. do Nascimento Júnior; PARAGUAÇU, Fábio Um modelo de sistema de recomendação de materiais d idáticos para ambientes virtuais de aprendizagem - Anais do XXII SBIE - XVII WIE, 2011. Aracaju, Sergipe. GOLDBERG, David; NICHOLS, David; OKI, Brian M. Using collaborative filtering to weave an information tapestry. Communications of the ACM, v. 35, n. 12, p. 61–70. 1992. GOLDER, Scott A; HUBERMAN Bernardo A - The Structure of Collaborative Tagging Systems - Information Dynamics Lab 2005, HP Labs. HERLOCKER, Jonathan L.; KONSTAN, RIEDL John. An Algorithmic Framework for Performing Collaborative Filtering , 22nd Annual International ACM Conference.,1999. p 230–237. JANNACH, Dietmar et al. Recommender Systems: An Introduction. New York: Cambridge, 2011. 353
78
LÁZARO, Alexsandra da Silva. Análise e seleção de Algoritmos de filtragem de informação para solução do problema C old-start Item. Universidade Federal de Lavras. 2010, MG. LEITE, Martinho de Souza; BRANDÃO, Lídia M. B. - Interação humano-computador no contexto da inclusão digital . UFBA - Universidade Federal da Bahia. Bahia. 2008 LIANG, Huizhi; XU, Yue; LI, Yufeng; NAYAK, richi. Collaborative Filtering Recommender Systems Using Tag Information - Faculty of Information Technology Queensland University of Technology, 2009. Brisbane, Australia. METEREN, Robin van Meteren; SOMEREN Maarten van - Using Content-Based Filtering for Recommendation - NetlinQ Group 2002, Gerard Brandtstraat 26-28, 1054 JK, Amsterdam, The Netherlands. MONTANER, Miquel; LÓPEZ, Beatriz; ROSA, Josep. A Taxonomy of Recommender Agents on the Internet. Institut d’Informàtica i Aplicacions, Universitat de Girona, Campus Montilivi 2003, 17071 Girona, Spain. RICCI, Francesco; ROKACH, Lior; SHAPIRA, Bracha. Introduction to Recommender Systems Handbook . In: RICCI, Francesco; ROKACH, Lior; SHAPIRA, Bracha. Recommender Systems Handbook: An Introduction. New York: Springer, 2011. Cap. 1, p. 1-29. RUSSEL, S; NORVIG, P. Inteligência Artificial . 2ª. Ed.. São Paulo: Campus. 2004. Shani, Guy; GUNAWARDANA, Asela (Ed.). Content-based Recommender Systems: Evaluating Recommendation Systems ; In: RICCI, Francesco ROKACK, Lior; SHAPIRA, Bracha (Comp.). Recommender Systems Handbook. New York: Springer, 2011. Cap. 11, p. 73-100. SHARDANAND, Upendra; MAES, Pattie - Social Information Filtering: Algorithms for Automating “Word of Mouth . Proceedings of Conference of Human Factors in Computing Systems, ACM Press p.210—217. 1995. TORRES, Roberto Dias Júnior. Combining Collaborative and Content-Based Filtering to Recomend Research Papers. Dissertação para obtenção de grau de mestre em computação. Universidade Federal do Rio Grande do Sul Porto Alegre. 2004. VASHISTH Pooja; BEDI, Punam; Interest-Based Personalized Recommender System. Department of Computer Science University of Delhi 2011, Delhi, INDIA WEI, Yan Zheng; MOREAU, Luc; JENNINGS, Nicholas - R.Learning users' interests in a market-based recommender system . 5th International Conference on Intelligent Data Engineering and Automated Learning, Exeter, UK. 2005. pp. 833-840