72
FACULDADE DE E NGENHARIA DA UNIVERSIDADE DO P ORTO Sistema de recomendação TV João Pereira Programa de Mestrado integrado em Engenharia Electrotécnica e de Computadores Orientador: Maria Teresa Andrade (PhD) Co-orientador: Telma Mota (MSc) Junho de 2010

Sistema de recomendação TV - repositorio-aberto.up.pt · goritmo irá tentar extrair informação sobre os géneros ao Website IMDB. ... Um domínio bem popular como a TV alarga

Embed Size (px)

Citation preview

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Sistema de recomendação TV

João Pereira

Programa de Mestrado integrado em Engenharia Electrotécnica e de Computadores

Orientador: Maria Teresa Andrade (PhD)

Co-orientador: Telma Mota (MSc)

Junho de 2010

c© João Pereira, 2010

i

ii

Resumo

Domínios como a televisão alteram-se todos os dias, torna-se difícil para um utilizador estaractualizado com tudo o que se passa. A tendência é muitas vezes ignorar esse crescimento e ficarpelo que se conhece, os mesmos canais e os mesmos programas. Nos piores casos há quem recorraapenas aos domínios Web para fazer download dos programas que gosta.

Neste documento será apresentada uma implementação de um sistema de recomendação paratelevisão a partir de informação recolhida pelas STB (Set-top-box) Meo. A recomendação é tecni-camente filtragem de informação, neste caso de conteúdo, com o objectivo de ajudar utilizadoresa descobrir novos programas que gostem.

A informação recolhida das STB permite detectar as preferências dos utilizadores e construirsobre eles um perfil. Conhecendo os gostos é então possível inferir e recomendar todo leque deprodutos que a televisão tem para oferecer. Aqui o trabalho realizado cobre apenas programas,inferindo sobre o seu tipo, géneros e ainda os canais em que costumam passar.

O conteúdo visualizado é extraído das STB em formato XML. Este conteúdo contém infor-mação sobre a data e hora de visualização, título, sinopse, canal e duração total. Caso se detecteuma visualização, o algoritmo classificá-la-á sob determinados géneros que dependem do tipo deprograma e análise da sinopse, se tal não for possível e se o programa for filme ou série o al-goritmo irá tentar extrair informação sobre os géneros ao Website IMDB. Com as visualizaçõesactualiza-se então o perfil do utilizador/histórico.

Por outro lado, tem-se a informação recolhida dos EPG que inclui informação alargada sobrea lista de candidatos a classificação. Esta lista de candidatos é classificada do mesmo modo queas visualizações. Na presença da lista de candidatos prossegue-se então à filtragem (classificação)de conteúdo que origina a lista final para recomendação.

O trabalho realizado nesta dissertação será apenas um ponto de partida para um motor bemmais robusto possivelmente integrando filtragem colaborativa. As suas aplicações poder-se-ão es-tender além dos programas normais, como na publicidade direccionada ou reforçando um serviçopay-per-view.

iii

iv

Abstract

Domains like the television suffer changes every day, it becomes difficult for a user to be upto date with everything that is happening. The trend most of the times is ignoring that growth andsimply watch what’s familiar, the same channels and the same programs. In the worst cases, someturn solely to Web domains in order to download the programs they like.

In this document will be presented an implementation of a television recommender based oninformation retrieved from the Meo STB (Set-top-box). Recommendation is technically informa-tion filtering, content-based in this case, whose main goal is helping the users to discover newprograms they might like.

The information extracted from the STB allows the detection of the preferences of the usersand build upon them a profile. Knowing their tastes it is then possible to infere and recommend allthe products that the television has to offer. The work developed covers only programs, inferingabout their type, genres and even channels.

The watched content is extracted from the STB in XML format. This content contains infor-mation about the time and date of the visualization, title, synopsis, channel and total duration. Ifa visualization is detected, the algorithm will classify it according to certain genres which dependon the type of the program and its synopsis, in case that fails and if the type of the program is filmor serie the algorithm will then try to extract the information required to the Website IMDB.

On the other hand, there’s the information available in the EPG which include more informa-tion about the list of the candidates to the classification. This list of candidates is classified thesame way as the visualizations. Having the list of candidates it is then possible to filter it accordingto it’s content. The result is a final list for recommendation.

The work developed on this dissertation is only the beginning for a more complex recommen-dation system which most likely will integrate collaborative filtering. This work can be usefulalso for possible extensions beyond normal programs, like targeted publicity or to reinforce apay-per-view service

v

vi

Agradecimentos

Em primeiro lugar gostaria de agradecer à minha orientadora Maria Teresa Andrade pelasoportunidades que me disponibilizou. Foi graças a ela que obtive a minha experiência comocolaborador do INESC e a junção do projecto à PT Inovação, para além disso gostaria também deagradecer o seu aconselhamento que me guiou durante a os últimos meses.

Em seguida, gostaria de agradecer aos meus pais e especialmente a minha mãe que sempre meapoiou e me deu confiança para ultrapassar as barreiras, não só agora mas sempre durante todo ocurso.

Finalmente, a todos os meus colegas que tal como eu, encontram-se nesta etapa final do cursoe ajudaram a manter um bom espírito no decorrer dele.

João Pereira

vii

viii

"We are leaving the Age of Information and entering the Age of Recommendation"

Chris Anderson - Editor chefe da revista Wired

ix

x

Conteúdo

1 Introdução 11.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Estrutura da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Levantamento do Estado da Arte 52.1 Metadados em Televisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 MPEG-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.1.2 DVB-SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Sistemas de recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.1 Content-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Collaborative-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.3 Hybrid-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.4 Capacidade de expansão/melhoramento dos recomendadores . . . . . . . 14

2.3 Análise e escolha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Descrição do Sistema 173.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2 Visão geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.3 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.3.1 Classificação das visualizações . . . . . . . . . . . . . . . . . . . . . . . 183.3.2 Extracção de candidatos . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3.3 Perfil de utilizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3.4 Motor de recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.5 Gestão da lista final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.4 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 Análise e trabalho futuro 274.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2 Casos de utilização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.1 Descrição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.2 Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.3 Comportamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.4 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Conclusão 375.1 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

xi

xii CONTEÚDO

A Descrição das técnicas 39A.1 Família Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

A.1.1 Naïve Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39A.1.2 Redes de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

A.2 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40A.3 Árvores de decisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

A.3.1 Algoritmo de Hunt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41A.4 Redes neuronais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

A.4.1 Redes planares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42A.4.2 Redes por camadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

A.5 Regressao linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43A.5.1 Método dos mínimos quadrados . . . . . . . . . . . . . . . . . . . . . . 43

A.6 K Vizinho mais próximo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44A.7 Teoria de grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44A.8 TF-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

B Listas de géneros 47B.1 Filme e série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

B.1.1 Drama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.1.2 Horror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.1.3 Fiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.1.4 Comedy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47B.1.5 Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

B.2 Desporto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.1 Tennis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.2 Football . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.3 Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.4 Basketball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.5 Handball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.6 Athletics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.2.7 Hipismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

B.3 Informativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.3.1 News . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.3.2 Documentary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48B.3.3 Weather . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

C Imagens de execução do programa 51C.1 Actualização dos EPGs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51C.2 Classificação dos candidatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Referências 53

Lista de Figuras

3.1 Arquitectura de nível superior - Serviços de valor acrescentado PT Inovação . . . 183.2 Modelo geral do sistema de recomendação . . . . . . . . . . . . . . . . . . . . . 193.3 Extracção de candidatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.4 XML exemplo de um programa . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.5 Excerto exemplo de formatação do perfil para data e géneros . . . . . . . . . . . 243.6 Motor de classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.7 Gestão da lista final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.1 Casos de utilização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2 Diagrama de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Perfil de teste utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.4 Excerto de programas formatados pré-recomendação . . . . . . . . . . . . . . . 324.5 Resultado de recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

A.1 Modelo de neurónio básico extraído de (Moreira, 1997) . . . . . . . . . . . . . 42

C.1 Actualização dos EPG em decurso . . . . . . . . . . . . . . . . . . . . . . . . . 51C.2 Classificação dos candidatos e geração de recomendação . . . . . . . . . . . . . 52

xiii

xiv LISTA DE FIGURAS

Abreviaturas e Símbolos

AI Artificial intelligenceDM Data MiningDVB-SI Digital Video Broadcasting - Service InformationEPG Electronic Programming GuideGPS Global Positioning SystemHCI Human-Computer interactionIA Inteligência ArtificialIMDB Internet Movie DatabaseIR Information RetrievalML Machine LearningMPEG Moving Picture Experts GroupNBC Naïve Bayes ClassifierSTB Set-top-boxSMIL Synchronized Multimedia Integration LanguageTF-IDF Técnica de classificação de textoTV TelevisãoWeb ou WWW World Wide WebXML Extended Markup LanguageXMPP Extensible Messaging and Presence Protocol

xv

xvi ABREVIATURAS E SÍMBOLOS

Capítulo 1

Introdução

Neste capítulo introduz-se a dissertação começando por um breve texto de motivação seguido

da relevância no contexto. Os objectivos são estabelecidos em terceiro lugar e finalmente será

apresentada a estrutura do documento.

1.1 Motivação

A personalização é uma palavra cada vez mais comum no dia-a-dia. Todos gostam que bem

os sirvam e compreendam, seja em que contexto for. Ainda assim, é complicado não falar em

componente humana aquando se fala de personalização, sem ela dificilmente se compreendem os

desejos dos utilizadores. Adicionalmente tirar conclusões sobre a personalidade humana do ponto

de vista da máquina é sempre arriscado por diversas razões. Os seres humanos são imprevisíveis

muitas vezes e mudam as suas preferências de acordo com o estado de espírito actual, ou mesmo,

porque alguns conceitos podem estar fora de moda (ou não!). Ainda para além disso, quer-se que

uma única máquina seja capaz de reconhecer os diversos utilizadores que a utilizam, que poderão

ser de idades ou mentalidades bem diferentes.

Como se pode ver inputs é que não faltam num sistema em que se pretende modelizar os

utilizadores. Por isso hoje em dia muito esforço é dedicado a áreas como ML e AI. O cérebro

humano é ainda uma "máquina"incompreensível para um computador, no entanto espera-se que ao

repartir e classificar todo o tipo de tarefas por diferentes unidades de processamento especializadas

e correctamente interligadas, um dia talvez possa ser possível que um computador compreenda o

ser humano como que um velho amigo.

1.2 Contexto

Um domínio bem popular como a TV alarga o seu conteúdo quase dia-a-dia, os canais tentam

acompanhar celeremente a actualidade e novos serviços são criados com objectivo de criar valor.

1

2 Introdução

O problema é que para os utilizadores já é stressante o suficiente o trabalho que levam no do dia-

a-dia e não há tempo para acompanhar o que se passa no domínio da TV. Uma solução óbvia é

recorrer a outros para recomendação ou ficar pelo que se conhece. Para alguns até, a TV deixou

de ser a principal fonte de entretenimento pós-laboral ou então é vista como "frustrante"que mais

vale recorrer à Web para atingir o que se quer. Felizmente, na presença de evoluções tecnológi-

cas que fornecem metadados úteis e a fim de recolher mais informação sobre as preferências dos

utilizadores e de direccionar a informação certa até às pessoas certas, existem métodos que per-

mitem às máquinas utilizar a sua capacidade de processamento e filtrar a imensa quantidade de

informação, de modo a atingirem resultados satisfatórios no cumprimento de tal objectivo.

Neste trabalho no entanto, os gostos não serão directamente questionados mas sim inferidos

através da observação do comportamento do utilizador, tal se denomina como construção de um

perfil implícito. As STB permitem a transferência de metadados periodicamente sobre o programa

visualizado na hora. Se se estabelecerem algumas regras eficientes quanto à classificação do que

é visto e do que não é, é então possível extrair o conteúdo relevante através dos metadados e

proceder-se a uma selecção de candidatos que possam satisfazer as preferências do utilizador. A

este tipo de abordagem chama-se recomendação baseada em filtragem de conteúdo.

1.3 Objectivos

O objectivo principal é o desenvolvimento de um sistema de recomendação que integre fil-

tragem de conteúdo, aplicado no domínio da TV. Começar-se-á por escolher e treinar um clas-

sificador para conteúdo baseado num perfil de teste. A razão para o uso de dados de teste de

utilizador deve-se principalmente a limitações iniciais quanto à disponibilização imediata dos da-

dos das STB. Todo o trabalho desenvolvido terá então maior foco nos restantes requisitos.

Em paralelo ter-se-á como requisito a versatilidade do código que permita a sua fácil adap-

tação a outro contexto que não a TV, como por exemplo viagens, restauração ou outro qualquer

que inclua informação possível de classificar quanto às suas características. Dado que se de-

sconhece a princípio a estrutura dos dados a serem tratados, criar-se-ão formatações "internas"ao

algoritmo que necessitarão posteriormente de adaptação para que seja possível a integração com a

informação fornecida.

Dada a informação limitada disponibilizada nos EPG sobre os programas será também necessário

desenvolver um módulo para classificá-los quanto aos géneros, visto que estes baseiam-se mais

nas sinopses disponibilizadas que muitas vezes não permitem a sua correcta classificação.

Finalmente após a estipulação dos formatos sobre o qual o motor de classificação irá operar e

na presença dos programas candidatos correctamente classificados, proceder-se-á então ao desen-

volvimento dos módulos de classificação baseados no teorema de Bayes, para géneros e data, tipo

e canal. A razão de tal escolha será discutida adiante no capítulo 2.

Desenvolvido este trabalho proceder-se-á à integração no context broker da PT que gere toda

a informação. Mais informação sobre o enquadramento será discutida no capítulo 3.

1.4 Estrutura da Dissertação 3

1.4 Estrutura da Dissertação

Para além da introdução, esta dissertação contém mais 4 capítulos:

• No capítulo 2, é descrito o estado da arte e são apresentados trabalhos relacionados, bem

como explicada a razão de algumas escolhas tomadas.

• No capítulo 3, tem-se o desenho do sistema, começando com uma visão geral e enquadra-

mento seguida pela descrição da implementação.

• No capítulo 4, é feita uma pequena análise sobre o que se encontra feito e é discutido tópicos

de trabalho futuro.

• No capítulo 5 é finalizado o documento e é discutido como foram cumpridos os objectivos.

4 Introdução

Capítulo 2

Levantamento do Estado da Arte

Neste capítulo é apresentada a actualidade no que toca a sistemas de recomendação. Mas antes

de entrar concretamente nesse mundo é feita uma breve apresentação dos sistemas que possibil-

itarão a aplicação das técnicas de recomendação. Finalmente é feito um sumário de justificação

das escolhas tomadas.

2.1 Metadados em Televisão

2.1.1 MPEG-7

Este standard tem como principal objectivo a descrição do conteúdo multimédia. Isto é pos-

sível graças aos diversos elementos que o constituem (Li e Drew, 2004) que são essencialmente

os seguintes:

• Um descritor que especifica a representação de características multimédia de conteúdo que

vão desde o baixo nível audiovisual até características semânticas de alto nível.

• Esquemas de descrição que permitem a combinação de descritores individuais. Estes esque-

mas definem o desenho e a semântica das relações entre os componentes.

• A linguagem de descrição baseada em XML que facilita a especificação dos descritores e

dos seus esquemas.

O MPEG-7 disponibiliza ferramentas que permitem criar, descrever, indexar, procurar, usar,

guardar e gerir conteúdo multimédia. Para além disso permite ainda incluir informação extra tal

como perfis de utilizador, acesso de dados ou direitos de consumo.

2.1.1.1 TV-Anytime

É uma aplicação que engloba diversos cenários de utilização do MPEG-7. Tem como objectivo

o desenvolvimento de um conjunto de especificações que satisfazem as necessidades dos actores

5

6 Levantamento do Estado da Arte

do domínio TV tais como produtores, provedores de conteúdo, consumidores e publicitadores. TV-

Anytime inclui definições direccionadas às áreas dos metadados e referenciamento do conteúdo

e é desenhada em duas fases. A primeira fase tem em vista a criação de metadados, procura

baseada em características para programas, acesso aos horários da TV, adição de informação de

segmentação para conteúdo gravado e agregação de metadados. A segunda fase então focar-se-

ia em target advertising, distribuição de conteúdo e inclusão de outro tipo de media tal como

websites, música ou jogos.

São definidos os seguintes tipos de metadados:

• Descritor de conteúdo: cobre atributos como título, descrição e géneros.

• Descritor de instâncias: inclui informação quanto a localização, condições de utilização e

formato do conteúdo audiovisual.

• Descritor de consumidor: contém informação quanto às preferências do utilizador e histórico

de utilização.

Há também suporte de exploração de características mais avançadas tal como gravação de

conteúdo, através da segmentação de programas e funções de referenciação.

Infelizmente ferramentas como MPEG-7 ou TV-Anytime ainda não estão disponíveis nos

equipamentos, ou pelo menos como o desejado. Encontram-se portanto ainda em fase de in-

vestigação (Rui J. Lopes e Hutchison, 2003) e ainda não atingiram a TV Digital completamente.

Apesar disto já há desenvolvimento na transmissão de metadados MPEG-7 em stream MPEG-2

(A. Lopez e Fernandez, 2003).

Finalmente só nos foi disponibilizado realmente os EPG, pelo que nesta dissertação só se

explorou essa alternativa.

2.1.2 DVB-SI

A passagem para TV digital na Europa seguiu um conjunto de normas e standards aos quais

normalmente se refere pelo nome de DVB. É constituídos por vários protocolos que incluem el-

ementos bem conhecidos e patentados como MPEG-2, por exemplo. Um desses protocolos é o

SI que tem como objectivos fornecer informação sobre os serviços disponíveis, frequências que

os transportam, eventos que irão ocorrer e faz agregação dos próprios em diferentes categorias.

Para além dessa informação inclui ainda informação utilizada pelos operadores da rede, permite

decisões de compra e ajuda a gerir o fluxo de receitas pelos provedores de serviços (Publisher,

1997).

A importância do DVB-SI no contexto desta dissertação é porque é graças a ele que é possível

criar os EPG.

2.1.2.1 EPG

Os EPG são uma característica única da TV digital. De um modo simples, é como que um

jornal da TV e é criado pelo provedor do serviço. Para os broadcasters, um EPG bem desenhado

2.2 Sistemas de recomendação 7

e sem erros é uma mais-valia pois abre caminho para melhor anunciar os seus novos produtos,

como por exemplo o bem conhecido pay-per-view. Para além disso também tem como objectivo a

facilitação do uso da STB para o utilizador. Muito tempo e esforço é despendido (Publisher, 1997)

com o objectivo de alcançar vantagem competitiva.

Tem-se várias ferramentas que permitem recolher toda a informação necessária:

• Descritor de conteúdo: é o mais importante do ponto de vista de filtragem de conteúdo.

Permite obter-se informação como géneros e subgéneros. Os géneros possíveis encontram-

se secção de descritores de conteúdo em (Zoicas, 1997).

• Descritor de componente: este contém dados sobre a linguagem, tipo de componente, tipo

de vídeo e áudio.

Os restantes descritores foram omitidos dada a irrelevância, pelo que podem ser consultados

em (Zoicas, 1997).

2.2 Sistemas de recomendação

A origem dos recomendadores é algo difícil de definir ao certo, as suas raízes estão associ-

adas a ciência cognitiva, teoria de aproximação, teoria de previsão e até mesmo gestão científica

(Adomavicius e Tuzhilin, 2005). Mas foi em meados dos anos 1990 que realmente emergiu como

ciência ou área de investigação com as primeiras publicações sobre Collaborative filtering (Hill

et al., 1995). As primeiras abordagens baseavam-se em sistemas de votação, os itens eram classifi-

cados "relevantes"ou "não relevantes"para o utilizador baseado na estimativa de votação de outros

utilizadores.

Um outro conceito a ter em conta quando se fala em sistemas de recomendação é a confiança.

Este conceito é importante no desenho de um recomendador e deverá estar presente em cada

decisão tomada que implique o utilizador directamente. O que se quer dizer com isto é que se

um utilizador perde a confiança no sistema ou acha o sistema pouco fiável, dificilmente voltará a

utilizá-lo, o que tornará o sistema obsoleto.

Em geral um problema de recomendação é formulado da seguinte maneira: Digamos que

temos dois grandes grupos, um de utilizadores (C) e outro de itens para recomendação (I), estes

podem ser livros, filmes, restaurantes, etc. Considere-se a função de avaliação de utilidade u e e o

cerne do motor de recomendação.

O nosso objectivo é então para cada

c ∈ C

seleccionar o item

i′c ∈ I

que maximiza a função de utilidade, formalmente:

8 Levantamento do Estado da Arte

∀c ∈ C, i′c = argmaxi∈Iu(c, i) (2.1)

Existem três grandes famílias (de conteúdo, colaborativos e híbridos) e duas categorias (mod-

elo ou heurísticos) de recomendadores que serão analisados de seguida. Todas as técnicas men-

cionadas serão detalhadas no anexo A.

2.2.1 Content-based

Este tipo de recomendadores são baseados nos conteúdos do contexto, isto é, a função de util-

idade baseia-se nas preferências do utilizador e votações dele próprio sobre itens que conhece e

irá classificar outros itens desconhecidos através das suas características. Por outras palavras, a

função calcula o nível de semelhança entre o perfil do utilizador e os itens candidatos a recomen-

dação, o resultado para recomendação são os itens que maximizam a função.

Os perfis podem ser baseados em dados inseridos pelo utilizador (perfil explícito) ou em dados

inferidos pelo algoritmo tendo em conta as acções do utilizador (perfil implícito).

2.2.1.1 Heurísticos

Nesta família de recomendadores, os heurísticos (ou de memória) são aqueles que se baseiam

mais em técnicas de IR e são bastante utilizados em aplicações baseadas em muitas linhas de texto,

recomendando itens com informação textual semelhante. É comum encontrá-los na recomendação

de websites, notícias e afins.

Como geralmente lidam com imensos textos e descrições, tipicamente os algoritmos extraem

informação através de palavras-chave, diga-se 100 de um texto por exemplo, em seguida estas

palavras-chave são comparadas às palavras-chave do perfil utilizador. Se atribuir-se um peso às

palavras-chave (TF-IDF bastante popular na atribuição de pesos (Adomavicius e Tuzhilin, 2005)

(Joachims, 1997) (Enza Messina e Archetti, 2006)) podemos definir dois vectores, um com os

pesos atribuídos às palavras-chave do documento e outro de pesos atribuídos às palavras-chave

das preferências do utilizador. Com estes vectores podemos calcular a bem conhecida diferença

angular:

cos(θ) =〈u,v〉‖u‖.‖v‖

(2.2)

Em que u é o vector de pesos das palavras-chave do documento e v o vector de pesos atribuídos

às palavras-chave das preferências do utilizador. A expressão do numerador simboliza o produto

interno entre os dois vectores e a do denominador o produto das normas dos vectores.

Com esta diferença temos uma boa medida de avaliação do que é "relevante"e do que é "não

relevante".

Técnicas normalmente associadas a esta categoria:

2.2 Sistemas de recomendação 9

• TF-IDF

• Clustering

2.2.1.2 De modelo

Recomendadores de conteúdo desta categoria utilizam uma abordagem diferente. Aqui, através

dos dados (históricos de utilizador ou logs) constrói-se um modelo do utilizador a partir dos dados

subjacentes. Em seguida aplicam-se métodos estatísticos para o cálculo das diferentes classes de

classificação. Considere-se o exemplo: Um conjunto de itens é considerado "relavante"ou "não-

relevante"pelo/para o utilizador (modelo de treino). Aplica-se um método estatístico como Naïve

Bayes classifier (Joachims, 1997) (Hölbling et al., 2010) (Srinivas Gutta e Zimmerman, 2000) à

lista de candidatos, tendo em conta o modelo de treino e serão estimados probabilisticamente a que

classes pertencem os candidatos. O resultado embora muitas vezes um pouco "desviado"quanto

às proporções estatísticas, proporciona uma classificação binária com alta taxa de sucesso.

Técnicas normalmente associadas a esta categoria:

• Classificadores Bayes

• Clustering

• Árvores de decisão

• Redes neuronais

2.2.1.3 Limitações e dificuldades

Sobre-especialização

A recomendação gira sempre em torno do perfil de utilizador. Com o passar do tempo o

sistema torna-se sobre-especializado e irá recomendar apenas o que o utilizador gosta, o problema

é: gostos mudam ou então há o risco de a sobre-especialização ocorrer em torno de um tópico

específico.

Normalmente este aspecto é abordado tentando introduzir algum critério de aleatoriedade na

escolha de recomendações, por exemplo, se se recomenda um conjunto máximo de x itens, desses

x pode-se atribuir um sub-conjunto y (y<x) em que em y recomendam-se outros itens de géneros

diferentes ou simplesmente de modo aleatório.

Adicionalmente, por vezes o problema até nem é o conteúdo de qualidade que fica fora do

campo de visão do recomendador mas os itens que são recomendados e não deviam por serem

demasiado semelhantes àquilo que o utilizador já conhece (Adomavicius e Tuzhilin, 2005), isto

é, acabam por não ter interesse algum. Um exemplo deste caso pode ser dois artigos de jornais

diferentes sobre o mesmo acontecimento, é sugerido nestes casos que a filtragem também exclua

itens demasiado semelhantes. Esta solução no entanto deverá ser abordada de uma maneira bem

ponderada, pois pode não ser fácil a exclusão automática de itens aparentemente "semelhantes".

10 Levantamento do Estado da Arte

Procura de características apropriadas

Num contexto amplo, por exemplo Multimédia, pode não ser tão fácil estabelecer recomen-

dações sobre conteúdos de naturezas completamente diferentes (imagens, filmes, música, etc).

Isto porque neste tipo de recomendadores a forte ligação às características dos itens pode ser

problemática caso não seja possível a extracção automática de características de "boa quali-

dade" (Pechenizkiy, 2009). Desenhar um recomendador que trabalhe de maneira precisa em con-

textos amplos ou pouco/mal documentados não é trivial.

Novos utilizadores

Caso não haja nenhum perfil explícito pelo utilizador estamos perante o famoso Cold Stard

Problem, o sistema não saberá como lidar com os novos utilizadores pois não tem qualquer fonte

de referência quanto às suas preferências. Existem várias abordagens para contornar este problema

mas não há uma solução óbvia para esta questão controversa. Há quem defenda o uso de itens

Blockbuster como ponto de partida (ligação híbrida de recomendação apresentada em 2.2.3 ), no

entanto nem todos os utilizadores podem gostar dessa solução, o resultado pode ser a perda de

confiança (!) no sistema.

Outra solução será simplesmente deixar o algoritmo correr, criando um perfil implícito, até

atingir um certo valor de confiança e a partir daí começar a recomendação. Tal solução também não

é perfeita e depende do contexto. Do ponto de vista do utilizador até poderá levar ao esquecimento,

por exemplo.

2.2.1.4 Vantagens

Para contextos em que os candidatos de recomendação incluem ou são documentos de texto, o

resultado é bastante preciso. Técnicas estatísticas de Bayes ainda apresentam performances muito

satisfatórias com custos computacionais baixos (lightweight). Para além disso, a combinação de

um ou vários classificadores lightweight são boa solução (Hölbling et al., 2010) para ambientes

em que os recursos são escassos, por exemplo se a aplicação for a correr numa STB.

A simplicidade é muitas vezes uma vantagem e embora os modelos colaborativos sejam (nor-

malmente) mais complexos conseguindo relacionar os itens de mais variada natureza, precisam

também de um poder computacional maior.

2.2.2 Collaborative-based

Esta família ao contrário dos anteriores de conteúdo, prevêem a utilidade dos itens para um

utilizador a partir de itens previamente cotados/avaliados por outros utilizadores. A expressão-

chave é "se os outros utilizadores gostaram do item i então é provável que o utilizador c também

goste".

2.2 Sistemas de recomendação 11

2.2.2.1 Heurísticos

Tipicamente funcionam percorrendo todos os itens avaliados pelos utilizadores, isto é, o valor

de utilidade u para um utilizador c e item i é calculado através do agregado de avaliações atribuídas

pelos N utilizadores mais semelhantes a c. No caso mais simples, o caso de agregação pode ser

apenas uma soma de médias ponderadas e quanto à semelhança de utilizadores poder-se-á utilizar

outra vez a diferença angular ou outro tipo de diferenciação heurística (N vizinhos mais próximos).

Note-se que a diferença angular aplicada no contexto colaborativo é diferente da do contexto de

conteúdo. Aqui os vectores de pesos são mesmo especificados pelo/para o utilizador e não pelo

cálculo de TF-IDF, ou seja comparam-se preferências entre utilizadores e não entre utilizadores e

os itens.

Técnicas normalmente associadas a esta categoria:

• K vizinho mais próximo

• Clustering

• Teoria de grafos

2.2.2.2 De modelo

Novamente a ideia é criar um modelo, desta feita, não a partir das características do conteúdo

mas a partir das avaliações de outros utilizadores. Esta categoria sugere então a identificação de

"estereótipos", obviamente uma técnica normalmente encontrada será a de clustering e a estrutura

é normalmente associada a técnicas de Bayes ou quaisquer outras que lidem com redes/grupos de

utilizadores.

Técnicas normalmente associadas a esta categoria:

• Redes de Bayes

• Clustering

• Redes neuronais

• Regressão linear

• Modelos probabilísticos variados

2.2.2.3 Limitações e dificuldades

Novos utilizadores

Do mesmo modo que um novo utilizador afecta um sistema de recomendação de conteúdo,

aqui o efeito é semelhante. É necessário que o sistema aprenda as preferências dos novos uti-

lizadores através de votações por eles efectuadas. Novamente as soluções para contornar o prob-

lema são baseadas em dois tipos (Adomavicius e Tuzhilin, 2005) (Al Mamunur Rashid e Riedl,

12 Levantamento do Estado da Arte

2002): Ou utilizam-se abordagens híbridas (com recomendadores de conteúdo) ou exploram-se

aspectos como popularidade dos itens (blockbusters), entropia do item e personalização de uti-

lizadores.

Novos itens

Como seria de esperar, neste tipo de recomendadores que dependem somente de avaliações de

utilizadores, um novo item não avaliado dificilmente será integrado no processo de recomendação.

Normalmente este tipo de problema é corrigido ao integrar recomendação de conteúdo (sistema

híbrido).

Escalabilidade

Outro problema óbvio é a escalibilidade. Se em recomendadores de conteúdo já há possibil-

idade de haver imensos itens, aqui para além disso existem imensos utilizadores e dependendo

dos contextos, imensas acções a acontecer por segundo no sistema. Uma das soluções é limitar o

espaço de avaliação de acordo com o poder computacional (Pechenizkiy, 2009).

Esparsidade

A esparsidade e um problema presente em vários casos. Uma questão-chave nos recomen-

dadores colaborativos é a massa crítica de utilizadores. Se existem alguns itens de grande qual-

idade que são avaliados por poucos utilizadores então nunca esses itens nunca atingirão a massa

crítica necessária para "entrar"no sistema.

Outro exemplo é a semelhança de itens que é ignorada, tratam-se como se fossem diferentes, o

resultado é o aumento da esparsidade, perda de transitividade e fraca qualidade de recomendação

(Pechenizkiy, 2009).

Finalmente há a possibilidade de utilizadores serem "únicos"e o sistema é incapaz de relacioná-

los com outros. Este facto depende do contexto e se a abrangência dos itens for elevada.

A unicidade poderá ocorrer de maneira semelhante com os itens, muitos não são relacionáveis.

Fraude

Um aspecto importantíssimo e sempre relacionado com a componente social destes recomen-

dadores é a possibilidade de fraude. O caso típico é o denominado "ataque de injecção de perfis".

Os objectivos são simples e normalmente das duas uma: ou realçar/desfalcar opiniões de outros

utilizadores ou realçar/desfalcar avaliações de determinados itens. O efeito de realce é também

conhecido como chilling. Este tipo de ataque só é possível caso o mesmo utilizador tenha facil-

idade em subscrever vários perfis simulando diferentes utilizadores, pior ainda caso o utilizador

malicioso crie um programa para efectuar a mesma operação muito mais depressa. O ataque pode

seguir várias estratégias, as mais conhecidas são: "aleatório", "média", "segmentação", "love-

hate", "bandwagon".

2.2 Sistemas de recomendação 13

Existem diversas propostas para solução (Pechenizkiy, 2009) (Paul-Alexandru Chirita e Zam-

fir, 2005). Recomendadores baseados em modelos são normalmente mais resistentes a ataques

visto que são baseados em técnicas de clustering. O uso de recomendadores híbridos também

atenua o efeito. Uma solução interessante também discutida abaixo em Grupos, é desafiar o uti-

lizador a definir explicitamente algumas relações de confiança.

Existem também métodos de detecção e resposta. Estes métodos passam por dois tipos: classi-

ficação de perfis e detecção de anomalias. A ideia da primeira é desenvolver um módulo inteligente

que identifica e aprende "perfis de ataque", eventualmente o custo dos ataques crescerá ao ponto

de torná-los pouco interessantes para os utilizadores maliciosos. Em detecção de anomalias a

abordagem é classificar os itens (sob ataque ou não) e podem-se identificar itens que estão mais

propensos a ataques e monitorizá-los mais frequentemente. Na prática este tipo de métodos de

segurança requer um desenho de sistema muito sofisticado.

Grupos

Pode-se considerar um problema a recomendação de filmes, por exemplo, visto que são muitas

vezes vistos em grupo. Para um sistema colaborativo não há tratamento de grupos de utilizadores,

são todos vistos como indivíduos independentes.

A solução seria criar um recomendador específico para grupos mas isso também traz proble-

mas associados tais como: reconhecimento de grupos, regras, composição, algoritmos para gru-

pos, interface, etc. No entanto (Bonhard) sugere que a identificação explícita de "amigos"ajuda

imenso no processo de recomendação (atribui-se maior peso caso os utilizadores que suportam o

item sejam "amigos").

Confiança

Note-se que este tipo de confiança não se refere à abordada no início do subcapítulo de sistemas

de recomendação, mas refere-se sim a confiança entre utilizadores.

Este factor é normalmente questionado mais no aspecto colaborativo do que em conteúdo. Nat-

uralmente em conteúdo as recomendações são baseadas no que foi visto pelo próprio utilizador, en-

quanto que num sistema colaborativo é normal que os utilizadores se questionem quanto à opinião

dos outros (Pechenizkiy, 2009). Uma boa prática é a explicação de alguma maneira (simples) das

recomendações. Considerando o exemplo do Youtube, as recomendações são suportadas por uma

pequena frase que representa a razão da recomendação.

Uma solução um pouco mais difícil de implementar é dar a oportunidade para outros uti-

lizadores corrigirem dados não correctos, como em wikis.

2.2.2.4 Vantagens

Mesmo havendo mais critérios a ter em conta no desenho de um filtro colaborativo, este é

reconhecido como o método de recomendação preferido (Systems e Zeng). O espaco de re-

comendacão é mais vasto e pode ser aplicado em mais contextos com os mais variados produtos.

14 Levantamento do Estado da Arte

Para além disso é psicologicamente reconhecido que as decisões são muitas vezes partilhadas e

influenciadas por outros, daí fazer todo o sentido uma filtragem colaborativa bem desenhada.

2.2.3 Hybrid-based

A combinação de métodos colaborativos com de conteúdo pode ser muito vantajoso, muitas

dificuldades podem ser ultrapassadas. No entanto na maior parte dos casos não é um processo

trivial, pelo que analisar-se-á agora de seguida os principais passos a seguir para tal.

2.2.3.1 Implementação colaborativa e de conteúdo separada com combinação final de predições

Podem haver dois cenários a considerar nesta abordagem. Uma maneira será combinar os

outputs, em forma de rácios, num só valor através de combinação linear ou esquema de votação.

Outra opção é escolher o recomendador através de um processo de decisão que decide qual dos

dois a utilizar, um bom exemplo é escolher o recomendador com maior nível de confiança e reen-

caminhar esse como output.

2.2.3.2 Construção de um modelo unificador que incorpora filtragem de conteúdo e colab-orativa

É um domínio emergente que combina características de ambas as abordagens num único clas-

sificador baseado em regras. Existem implementações que criam modelos estatísticos baseados no

teorema de Bayes, combinando um perfil construído a partir da informação de vários utilizadores

e informação de itens num só, o output é uma avaliação ri,j para o utilizador i e item j. Um

caso particular utiliza os atributos do perfil de utilizador, os do perfil do item e ainda atributos de

interacção entre os dois perfis para o calculo final de avaliação (Adomavicius e Tuzhilin, 2005).

Sistemas híbridos podem também ser melhorados através de técnicas de conhecimento, em-

bora estas constituam um dos actuais bottlenecks dos sistemas de IA. Em todo o caso existem

recomendadores baseados em conhecimento onde o conhecimento já vem "digerido"numa estru-

tura aceitável para o processamento das máquinas.

2.2.4 Capacidade de expansão/melhoramento dos recomendadores

Construir um sistema de recomendação sofisticado não é fácil. Normalmente começa-se por

desenvolver um sistema simples que satisfaça parcialmente o que se quer e depois então parte-se

para melhoramentos focados nos verdadeiros objectivos. Estes objectivos podem ser variados e

serão agora brevemente discutidos os mais relevantes no contexto TV.

2.2.4.1 Melhoramento na compreensão dos utilizadores

Os perfis dos itens e dos utilizadores muitas vezes são limitados e como consequência não se

tira o máximo proveito da informação.

2.2 Sistemas de recomendação 15

Os esquemas clássicos de recomendação colaborativa (Hill et al., 1995) nem usam perfis

de utilizador ou item e baseiam todas as conclusões apenas nas votações disponíveis. Existem

claro melhoramentos desde aí mas mesmo assim, os perfis tendem a ser compostos por simples

palavras-chave ou referências demográficas.

O uso de técnicas avançadas de profiling de DM será uma opção a ponderar caso se pretenda

expandir um sistema de recomendação neste sentido.

Para sistemas que operam em Web ou outro contexto em que haja alguma acção de navegação,

será também interessante a exploração dos comportamentos dos utilizadores. Podem-se descobrir

padrões interessantes ou sequências de navegação sempre comuns que permitirão recomendações

melhores.

2.2.4.2 Recomendações multidimensionais

A maior parte dos recomendadores trabalha nas duas dimensões do espaço: utilizador x item.

No entanto em alguns contextos pode ser benéfico explorar outra informação. Existem itens cuja

utilidade depende de factores temporais, locais, acontecimentos extraordinários. Um utilizador

pode preferir géneros de filmes diferentes ao fim de semana quando vai ao cinema do que quando

assiste em casa a meio da semana. Programas vistos durante o dia são diferentes dos vistos à noite.

Enfim existem muitos exemplos semelhantes que merecem ser explorados.

Uma maneira para explorar este conceito multidimensional é dimensionar um recomendador

com várias hierarquias ou múltiplos classificadores, que facilite a integração de outros módulos

facilmente.

2.2.4.3 Votações multicritério

Ainda no seguimento do tópico anterior, pode-se ainda extender os tipos de votações overall

dos itens e criar mais critérios para avaliação por parte do utilizador. Por exemplo em restauração

interessa, não só saber se um local é bom ou não, mas se o serviço, a comida ou a decoração são

bons.

Para atingir votações multicritério existem 4 típicas soluções para tal (Adomavicius e Tuzhilin,

2005):

• Combinação linear dos múltiplos critérios e reduzir o problema a optimização de um único

critério

• Optimizar o critério mais importante e converter os restantes a constantes

• Optimizar consecutivamente um critério de cada vez, converter solução final a constante(s)

e repetir o processo para os restantes critérios

• Descobrir soluções óptimas de Pareto1

1Optimização de Pareto

16 Levantamento do Estado da Arte

2.2.4.4 Intrusividade

Este termo refere-se ao facto de pedir feedback explícito ao utilizador. Pode não ser prático

pedir sempre votações aos utilizadores sobre tudo. Por exemplo se um utilizador visualiza 80% de

um programa será normal assumir que houve interesse por parte dele e que, pelo menos em termos

de votação, o programa é "razoável"a "bom". São inferências deste género que poderão tornar o

sistema mais agradável para o utilizador.

Outra maneira de explorar este problema poderá ser definir à partida um número de votações

máximo que um sistema poderá fazer ao utilizador. Tal acontece em (MovieLens), em que se

pede ao utilizador inicial que preencha um número pré-definido de filmes, antes de recomendar.

2.3 Análise e escolha

O uso das STB individuais neste trabalho sugere a partida uma abordagem de recomendação

de conteúdo, dado que a "ligação"entre utilizadores é limitada. No entanto o uso de classifi-

cadores baseados no teorema de Bayes, mais propriamente Naïve Bayes, não se deveu a tal facto.

Dados os recursos escassos disponíveis: sinopse, data e hora de visualização, duração, título, tipo

e canal; não houve muita escolha quanto ao método de classificação de texto, optou-se por classi-

ficadores "leves". Ainda quanto ao conteúdo, ir-se-á explorar a opção de extracção de informação

ao domínio web. Para além disso, tal como foi dito nos objectivos, é esperado que o classificador

na presença de outro contexto ou mesmo correndo sob outra plataforma, seja capaz de ainda assim

produzir resultados satisfatórios.

Em (Rish, 2001) (Jason D. M. Rennie e Karger, 2003), estudos empíricos comprovam que

o classificador acima referido produz resultados quase-óptimos em contextos em que as carac-

terísticas seguem uma distribuição de baixa entropia. Note-se que o termo entropia é utilizado

meramente como denominação de espaço de características limitado.

Finalmente esperam-se resultados binários em termos de classificação, isto é o mínimo número

de classes. No entanto ver-se-á que algumas variações existem quanto ao número de classes, na

descrição do sistema.

Para já ficaram aqui apresentadas as principais extensões híbridas que serão discutidas como

possíveis extensões da actual implementação. Estas decisões estão mais dependentes do contexto

da expansão.

Capítulo 3

Descrição do Sistema

3.1 Introdução

Aqui far-se-á a descrição da actual do sistema, de acordo com a implementação. Começar-se-á

por uma visão geral e em seguida uma descrição mais detalhada.

Para todas as figuras esquemáticas presentes neste capítulo o código é o seguinte:

• Losangos - Decisões

• Rectângulos - Módulos, processos ou sistemas.

• Paralelogramos diagonais - Módulos, processos ou sistemas externos.

3.2 Visão geral

É no bloco que gere serviços de valor acrescentado da PT que o trabalho desta dissertação

se insere. Este módulo será uma das muitas partes ligadas ao broker de contexto que manipula

informação recolhida, desde redes sociais, sensores, GPS, comunicação(XMPP), etc. Na figura

3.1 temos a arquitectura de nível superior onde tem-se assinalado a posição do recomendador TV.

Como se pode constatar a informação das STB encontra-se disponível a este broker através do

nível de consumidor, mediante o servidor ou broker de contexto.

O esquema que descreve o modelo geral do sistema é exposto na figura 3.2. A decisão é por-

tanto,definida através de três classificadores NBC: um para o tipo de programa, um para géneros

e data/hora e um terceiro para os canais visualizados.

Há facilidade para expansão com novos módulos, a maior dificuldade será em atribuir pesos

aos diferentes classificadores. O paralelogramo a laranja é o módulo mais provável a implementar

no futuro, com objectivo de melhorar a filtragem da lista final de candidatos.

Os itens assinalados com contornos a cores serão detalhados em maior pormenor, os restantes

como ainda encontram-se em desenvolvimento serão discutidos.

17

18 Descrição do Sistema

Broker de

contextoHistórico

Repositório de

contexto

Proximidade Localizador Redes sociais Perfis de utilizador

Recomendador

TVPresença Caps terminal Sensores

Nível de gestão de

contexto

Nível fornecedores

de contexto

Gestor de gruposSelecção de

conteúdos

Apps

Sapo Meo Dino

Nível de

fornecedores de

conteúdo

Nível de consumidor e

decisor

Nível de consumidor

Figura 3.1: Arquitectura de nível superior - Serviços de valor acrescentado PT Inovação

3.3 Descrição

3.3.1 Classificação das visualizações

Dado que a informação das STB ainda não se encontra disponível como pretendido (ajustes

ainda estão a ser feitos para que transmitam correctamente a informação para o servidor), este

processo ainda se encontra em desenvolvimento, pelo que far-se-á aqui uma análise para a sua

abordagem. Os restantes processos foram mais focados por esta razão.

O conceito-chave aqui é reduzir de uma maneira eficaz o número de falsos positivos de classi-

ficação, isto é reduzir o número programas classificados como "visualizados"mas que na realidade

não o foram.

O perfil de utilizador é construído de acordo com a maneira em como se classificam as visu-

alizações. Recorde-se que uma STB muitas vezes está ligada todos os dias. Os utilizadores, na

3.3 Descrição 19

Classificação das

visualizações

Classificador

Naïve Bayes para

géneros e data

Classificador

Naïve Bayes para

o canal

Decisão

conjunta

Extracção de

candidatos

Perfil de utilizador

Classificador

Naïve Bayes para

o tipo

Processamento

final

Serviço

WEB da

SAPO

Módulo de

filtragem

colaborativa

Broker

Figura 3.2: Modelo geral do sistema de recomendação

maior parte dos casos, preferem desligar a sua TV, deixando as STB ligadas. O resultado implica

dificuldades em decidir implicitamente o que é visto e o que não é. Intuitivamente, será de es-

perar que caso haja interesse no programa visualizado, ou simplesmente em ver televisão, haverá

alguma acção de zapping por parte do utilizador num futuro próximo, mesmo que seja por uma

curta duração. Em (Geng Yu e Oedling, 2009), embora num contexto com objectivos diferentes,

os autores constatam que resultados empíricos demonstram sessões (acção de visualização de TV,

activamente) sem zapping superiores a uma hora para cerca de 4% a 5% dos utilizadores, tanto

para períodos matinais como para períodos de final de dia/nocturnos. Tendo em conta estes resul-

tados é proposto que sejam considerados períodos "activos"de no máximo 90 a 120 minutos sem

acção por parte dos utilizadores, acima destes valores é considerado período "inactivo"e todos os

programas subsequentes são ignorados até nova acção por parte do utilizador.

Consequentemente, dada a limitação temporária, sugere-se que os programas sejam classi-

ficados como "visualizados", se efectivamente forem visualizados em cerca de 70%-90% da sua

duração em período "activo". Assim resolve-se também o problema de zapping causado por publi-

20 Descrição do Sistema

cidade1 e será seguro admitir que houve interesse por parte do utilizador. Se se baixar essa margem

haverá tendência de adicionar ao histórico mais itens com probabilidade de serem "parasitas"em

transacções "activo"para "inactivo". Mesmo que alguns desses itens não sejam realmente "para-

sitas", a longo prazo, não serão relevantes pois o algoritmo tenderá a especializar-se. Uma maneira

mais sofisticada seria o ajuste automático do tempo do timeout para as transições activo/passivo,

combinando o perfil de utilizador: caso o utilizador inclua no seu perfil uma grande quantidade

de filmes em comparação com os restantes tipos, poder-se-ia alargar o tempo de transição. O

contrário também seria válido, se o utilizador tivesse no seu perfil uma quantidade significativa de

programas cuja duração é inferior a uma hora então encurtava-se o tempo de transição. A primeira

vista até poderá parecer sensato proceder desta maneira, mas só com experiência se poderia evi-

dentemente comparar e decidir sobre como evitar melhor a geração de "lixo".

Se um programa é então classificado como "visualizado", em seguida o processo de atribuição

de géneros e tipo será efectuado da mesma maneira que será explicada no subcapítulo 3.3.2 sobre

a extracção de candidatos.

Outra solução original proposta em (Hölbling et al., 2010) é: considerar uma TV como um

sistema de e-mail. A ideia baseia-se na utilização de filtros SPAM, tais como os utilizados em

e-mail muito eficazmente. No entanto o que normalmente seria considerado SPAM em e-mail,

no contexto TV seria HAM e o recíproco SPAM. A razão para tal é simples, os filtros SPAM

são eficazes no contexto em que a maior parte dos documentos são HAM, em TV a quantidade de

programas a serem transmitidos na hora são imensos, é imensamente improvável que um utilizador

esteja interessado em tudo (aliás é impossível estar actualizado com tudo ao mesmo tempo), daí

considerar-se que em TV a maior parte dos "documentos"são SPAM. O que leva à conclusão:

utilizadores estão interessados em programas "particulares"e não na "generalidade"do que se passa

na TV. Na prática esta solução até é muito parecida a actual implementação no que toca ao uso

de classificadores combinados Naïve Bayes. No entanto a sua aplicação seria diferente. Seria

necessário estar consciente em qualquer hora com tudo o que se está a passar em todos os canais,

isto geraria um fluxo de informação bem superior. O processamento da informação do perfil seria

também mais complexa dada a extensa quantidade de informação.

Finalmente mas ainda muito importante é o facto que os autores também partem do princípio

que tem-se toda a informação disponibilizada pelo MPEG-7 e TV-Anytime, o que os permite inferir

de maneira diferente tendo em conta que tem metadados em maior quantidade e de melhor quali-

dade, inclusive até um perfil de utilizador gerado automaticamente, que ultrapassa o problema de

Cold Start.

3.3.2 Extracção de candidatos

Pode-se ver a arquitectura deste módulo na figura 3.3. A lista de candidatos a recomendação é

extraída automaticamente com uma janela de selecção a partir do dia corrente até ao dia seguinte.

O provedor é o website SAPO que disponibiliza diversos serviços, entre eles os EPG semelhantes

1Note-se que a duração dos programas nos EPG não conta com a publicidade

3.3 Descrição 21

Actualização das

listas de

candidatos de

acordo com a data

Candidatos

guardados em

ficheiros

diferentes, por

canal

Serviço

WEB da

SAPO

Processamento do

ficheiro de canal

Classificação do

programa

Final de

ficheiro?

SIM

Final de

processamento

?

NÃO

NÃO

SIM

Dados guardados

em diferentes

ficheiros

Data e géneros dos programas

Tipos dos programas

Canais dos programas

Classificador

Naïve Bayes

para géneros

e data

Classificador

Naïve Bayes

para o tipo

Classificador

Naïve Bayes

para o canal

Extracção de

candidatos

IMDB

Bem

sucedida?

NÃO

SIM

Figura 3.3: Extracção de candidatos

aos presentes nas STB Meo. Os candidatos são seleccionados por canal e a lista de canais pode ser

ajustada com mais ou menos canais consoante a população que se pretende avaliar. A informação

encontra-se em formato XML e é guardada num ficheiro temporário onde então se procede à

classificação do programa quanto ao tipo, géneros, canal e data.

Como se pode reparar na figura 3.4 não existe muita informação que permita inferências muito

sofisticadas, pelo que se se falhar na classificação do programa quanto a géneros, para os tipos

"filme"e "série", recorrer-se-á ao website IMDB (Database) para a sua classificação.

A utilização do website IMDB é seguramente a melhor fonte primária para classificação de

filmes e séries, com a excepção das séries Portuguesas que não retornam resultados, torna-se então

necessário que ainda assim haja uma análise da sinopse por parte desses tipos caso a procura no

Website não retorne resultados. Note-se que as sinopses estão assinaladas como <Description> na

figura 3.4.

3.3.2.1 Géneros e tipo

Este e o cerne de um recomendador baseado em filtragem de conteúdo. Infelizmente, dado que

a informação dos EPG era limitada tomaram-se algumas decisões de modo a simplificar/contornar

o problema.

Neste momento existem 5 tipos de programas: desporto, jornal/informativo, filme, série e

outro. Se o candidato não pertence a nenhum dos primeiros 4 tipos então é classificado como

22 Descrição do Sistema

Figura 3.4: XML exemplo de um programa

"outro". Para cada tipo existe uma lista de géneros admissíveis e caso o programa seja do tipo

"outro"então as listas dos géneros são combinadas de modo a tentar, ainda assim, classificá-lo

quanto a géneros.

Os tipos actualmente identificados são:

• Série: Nos EPG, as séries contêm no seu título dois números correspondentes à temporada

e ao número do episódio. É portanto o tipo mais evidente de se classificar e é feita logo a

distinção entre o que é série e o que não é.

• Filme: Os filmes contêm uma lista de géneros equivalente ao das séries e são detectados

através da duração do programa. Se forem detectados géneros de filme e se a duração for

superior a 80 minutos então o programa será classificado como "filme".

• Desporto: No tipo "desporto"a duração não é tão fixa como em "filme", pelo que é feito o

teste de pesquisa de géneros em toda a gama de duração.

• Jornal/informativo: Os programas informativos são tipicamente de duração inferior a 80

minutos. Caso sejam detectados géneros correspondentes a este tipo então o programa será

classificado como "jornal".

• Outro: Se nenhum dos tipos acima indicados forem detectados então o programa será clas-

sificado como "outro"e será feita pesquisa de géneros recorrendo a todas as listas de géneros

combinadas.

As actuais listas de géneros estão detalhadas no anexo B. A geração dessas listas será analisada

no próximo capítulo.

3.3 Descrição 23

3.3.2.2 Data

A ideia da data é simples: para além de fornecer filtragem de conteúdo baseada em géneros,

filtrar também tendo em conta as alturas do dia e da semana. Esta ideia para já, simples, vai de

encontro com o estudo de capacidade de expansão em recomendadores apresentado em 2.2.4.2.

Na prática é tido em conta dois parâmetros: a data e a hora. Com a data do programa guarda-se

a altura da semana, se "fim-de-semana"ou não e com a hora pretende-se fazer a separação "manhã

e "noite". Serão de esperar algumas mudanças de hábitos nestas ocasiões, isto porque dependendo

da altura da semana e da hora o utilizador pode ser diferente ou preferir diferentes conteúdos. Por

exemplo, um utilizador poderá estar mais interessado em ver notícias durante o período matinal e

visualizar filmes ao fim do dia, ou então ter hábitos de visualização nos dias úteis diferentes dos

dias de fim-de-semana.

Este tipo de pressupostos é um ponto de partida no que toca a tentativa de diferenciação de

utilizadores numa mesma STB.

Este componente para já está apenas associado aos géneros, mas nada impede o uso combinado

com os restantes classificadores de canal e tipo.

3.3.2.3 Canal

O canal é imediatamente guardado aquando a abertura do ficheiro EPG correspondente.

3.3.3 Perfil de utilizador

O perfil de utilizador não e mais do que o histórico construído a partir da classificação das

visualizações. Neste momento os perfis criados (fictícios) com objectivo de testar o algoritmo

seguem três tipos de formatação (um para cada classificador). Na figura 3.5 encontra-se uma

amostra exemplo do perfil para o caso de data e géneros. O significado de cada linha é semelhante

nos três casos. As linhas ímpares são as classificações das visualizações das linhas pares seguintes.

Os valores das linhas ímpares simbolizam o seguinte:

• 0: rejeição de recomendação/não visualização da recomendação.

• 1: aceitação da recomendação/visualização da recomendação.

• 2: visualização normal

Para as formatações de canal ou tipo nas linhas pares temos simplesmente o próprio canal ou

o tipo. Neste caso dos géneros e data, nas linhas pares temos então pelo menos 3 parâmetros e

no máximo 5. Os primeiros dois referem-se à componente temporal descrita em 3.3.2.2 e cor-

respondem a duas variáveis binárias que simbolizam "fim-de-semana"ou "não-fim-de-semana"e

"manhã"ou "noite", respectivamente. Os restantes parâmetros de são os géneros detectados aquando

a classificação das visualizações.

24 Descrição do Sistema

Figura 3.5: Excerto exemplo de formatação do perfil para data e géneros

3.3.4 Motor de recomendação

O modo de funcionamento é equivalente nos três classificadores. O peso multiplicativo é

atribuído a cada decisão, é esta que pode ser alterada consoante o que se pretende focar. Os can-

didatos que não foram possíveis de classificar quanto a géneros não são considerados no processo

de geração da lista final.

Considere-se o funcionamento ilustrado na figura 3.6. Começa-se então por extrair o perfil do

utilizador respectivo ao classificador. Em seguida calculam-se as probabilidades totais de "visu-

alização normal", "rejeição de recomendação"e "aceitação de recomendação". Note-se que estes

termos agora serão utilizados para avaliação dos candidatos pelo que poder-se-á referir a eles como

probabilidades "relevante", "não-relevante"e "recomendação relevante"respectivamente.

Será de esperar que qualquer perfil de utilizador seja composto maioritariamente por "visual-

izações normais", isto poderá gerar problemas dentro do algoritmo Naïve Bayes. Alguns estudos

( (Tommi Jaakkola, 2001) (Mladenic e Grobelnik, 1999)) alertam o facto de se criar um biasing

natural dentro do algoritmo caso uma das classes predomine sobre as outras, é provado que na pre-

sença de classes com poucas ocorrências (em comparação com as outras) essas terão uma variância

muito superior às restantes, o resultado é normalmente avaliações erráticas na classificação.

É com objectivo de combater este efeito que se criaram diferentes níveis de relevância de

3.3 Descrição 25

Extracção

de

candidatos

Leitura do

candidato

Leitura do perfil do

utilizador

Cálculo das

probabilidades

“relavante” ou

“não-relevante”

Cálculo das

probabilidades

condicionadas

SIM

Decisão

global

Avaliação do

candidatoDescarte NÃO

Classificador

Naïve Bayes

genérico

Figura 3.6: Motor de classificação

modo a tentar balancear as classes menos dominantes. As classes "rejeição de recomendação"e

"aceitação recomendação"aplicam portanto diferentes pesos no processo de avaliação. Estes pesos

para já são estáticos mas podem ser alterados também no futuro de modo a melhor modelar o perfil

do utilizador caso tal seja necessário.

Adicionalmente é também fácil adicionar novas classes, tais como "gravação de programa"ou

"não visualização normal", (esta embora muito difícil de detectar por razões previamente discuti-

das) com o propósito de melhorar ainda mais o processo de classificação no futuro.

Um pequeno pormenor incluído neste módulo é o funcionamento do algoritmo mesmo na

presença de novos parâmetros de classificação até ali desconhecidos. O que acontece é que é

atribuída uma probabilidade de relevância de 50% a esse novo parâmetro, a razão para tal foi mero

senso comum. Assim é permitida a aprendizagem automática do classificador e fica apenas a cargo

do extractor de candidatos e classificação de visualizações a quantidade de parâmetros presente no

sistema.

3.3.5 Gestão da lista final

A lista final é o produto dos classificadores de conteúdo. Após o cálculo das probabilidades

"relevante"e "não-relevante"(ou "sim"e "não"), os que tiverem valores de "relevante"superior às

do "não-relevante"serão seleccionados para a lista final.

Assinalado na figura 3.7 (ou 3.2) a laranja, tem-se ilustrado o ponto de junção com outros

módulos, possivelmente filtragem colaborativa ou outro qualquer módulo auxiliar para filtragem

26 Descrição do Sistema

Decisão

conjunta

(Naïve

Bayes)

Broker

Processamento

final

Módulo de

filtragem

colaborativa

Avaliação global

dos candidatos

Construção da

lista final

Selecção variada

de diferentes

recomendações

Envio

Figura 3.7: Gestão da lista final

das recomendações, que não foi objectivo desta dissertação mas que poderá ser um objectivo futuro

do projecto.

A lista final poderá ser muito extensa pelo que haverá, ainda a definir, um processo de se-

lecção e de disponibilização ao utilizador. Esta disponibilização pode ter várias abordagens. Uma

poderá ser o feedback do Broker para as STB em que no EPG é assinalado, com alguma imagem

marcadora, todas recomendações relevantes. Outra opção poderá ser desenvolver uma interface

tipo "grelha"que selecciona um número X de recomendações de cariz diferente. Neste caso seria

preciso realizar uma filtragem cuidada da lista final, de modo a seleccionar os mais relevantes ou

então de géneros diferentes de modo a evitar sobre-especialização.

3.4 Sumário

Viu-se aqui como foi abordado o problema de recomendação. No próximo capítulo será estu-

dado o resultado e a performance da actual implementação, bem como o trabalho futuro.

Capítulo 4

Análise e trabalho futuro

4.1 Introdução

Agora que o sistema foi apresentado e detalhado, resta então analisar o caso de utilização para

geração das recomendações, o seu comportamento bem como os actuais pressupostos e conse-

quências.

4.2 Casos de utilização

Aqui serão apresentados os casos de utilização bem como a execução de um deles.

Considere-se os actores:

1. Aplicação cliente - é aquela que satisfará o pedido para gerar recomendações ou actualizar

o perfil do utilizador.

2. Set-top-box - é aquele que gera pedidos de listas de recomendações actualizadas

Na figura 4.1 tem-se os casos de utilização identificados inicialmente.

O caso de utilização de recomendação acontecerá sempre que for requisitado uma lista ac-

tualizada de recomendações. Este processo poderá acontecer no acesso ao EPG local da STB

ou no desencadear de um pedido directo por parte do utilizador. Como a "Classificação de

visualizações"encontra-se em desenvolvimento, pelos motivos já mencionados, será agora expli-

cada a execução do caso de utilização "Geração de classificações".

27

28 Análise e trabalho futuro

Publicação de

evento

Set-top-

Box

Geração de

recomendações

Sistema de Recomendação TV

Client

Application

Actualização de perfil

Sistema PubSub

(Publish-subscribe)

Broker de contexto

Pedido de

recomendações

Nova actividadeClassificação de

visualizações

Extracção e geração

de recomendações

Figura 4.1: Casos de utilização

4.2.1 Descrição

4.2.1.1 Diagrama de classes

O diagrama de classes associado a este caso de utilização encontra-se figurado na figura 4.2.

Class Client

Esta é a classe de implementação que irá fazer o tratamento de todos os pedidos, neste caso

de utilização é inicializada e irá instanciar a classe de recomendação (NBC), extracção de direc-

tório(GetDir) e extracção de candidatos(Readcand). Finalmente cria a lista final ao atribuir os

diferentes pesos às decisões da classe de recomendação.

Class GetDir

Esta é a classe para extracção de ficheiros em directórios e é instanciada tanto na inicialização

do "Cliente"como na "Extracção de candidatos". O primeiro com objectivo de extrair todos os

utilizadores da base de dados e a segunda para extracção de todos os ficheiros EPG após a sua

actualização.

Class Readcand

Esta é a classe que trata do processo de extracção de candidatos, começa por actualizar os

EPG (instancia Websc para pesquisa SAPO) e em seguida irá fazer o tratamento de cada um deles,

programa a programa. No decorrer do processo aquando o tratamento das sinopses (handledesc())

é instanciada uma pesquisa de géneros (GenreSearch).

4.2 Casos de utilização 29

+C->Client() : void

+C->start() : void

+r->readcandstart() : wchar_t

+N->NBCcalcG() : double

+N->NBCcalcT() : double

+N->NBCcalcC() : double

+N->getNBCT() : double

+N->getNBCC() : double

+N->getNBCT() : float

+N->getNBCT() : float

+Decide() : bool

+r->~readcand() : void

+N->~NBC() : void

+C->~Client() : void

-dir1 : wchar_t = "Historicals/"+user+"/recomlist.txt"

-dir2 : wchar_t = "Historicals/"+user+"/candidates.txt"

-dir3 : wchar_t = "Historicals/"+user+"/candnames.txt"

-CalcNBC : float = NULL

-CalcNBC2 : float = NULL

-CalcNBC3 : float = NULL

-CalcS : double = 0

-CalcN : double = 0

-allcands : wchar_t = NULL

-allcandsna : wchar_t = NULL

-users : wchar_t = NULL

-result : wchar_t = NULL

-gd : GetDir = new GetDir()

-r : Readcand = new Readcand()

-N : NBC = new NBC()

+Client() : void

+~Client() : void

«implementation class»

Client

+getUsers() : wchar_t

+getEPG() : wchar_t

-Users : wchar_t = NULL

-EPGFiles : wchar_t = NULL

+getUsersFiles() : void

+getEPGFiles() : void

+GetDir() : void

+~GetDir() : void

GetDir

+readcandstart() : void

+refreshEPGfiles->DownloadPage() : Websc

+getEPGfiles() : void

+handlefile() : candidates

+handleprogram() : void

+handletitle() : wchar_t

+handledesc() : void

+GS->handlefeatures() : GenreSearch

+handletime() : void

+normalizeclassification() : void

+format() : void

-type : tipos

-timestring : wchar_t

-handlefilecandidate : candidates

-result : product

+readcand() : void

+~readcand() : void

Readcand

+getNBCG() : float

+getNBCC() : float

+getNBCT() : float

-NBCG : float

-NBCC : float

-NBCT : float

+NBC() : void

+~NBC() : void

+NBCcalcG() : void

+NBCcalcT() : void

+NBCcalcC() : void

NBC

+SearchWEBP() : Info

+DownloadPage() : void

+ExtractSearchResults() : void

+ExtractCode() : void

+verifyTitle() : void

+ExtractInfo() : void

+GetGen() : void

-SRS : wchar_t

-CS : wchar_t

-VTS : wchar_t

-GGS : wchar_t

-ExI : Info

+Websc : void

+~Websc : void

Websc

+releaseDate : wchar_t

+genres : wchar_t

+creators : wchar_t

+cast : wchar_t

«struct»Info

+type : wchar_t

+ep : wchar_t

+se : wchar_t

+name : wchar_t

+genres : wchar_t

«struct»tipos

+titles : wchar_t

+type : wchar_t

+description : wchar_t

+time : wchar_t

«struct»candidates

+channel : wchar_t

+list : candidates

«struct»product

«uses»

«uses»

«uses» «uses»

+handlefeatures()() : candidates

+token() : wchar_t

+Search->SearchWEBP() : Info

+GenreSearch() : void

+~GenreSearch : void

GenreSearch1..*

1

1

1..*

11..*

1

1

1

1

1

1

1

1

Figura 4.2: Diagrama de classes

Class GenreSearch

É a classe irá tratar da classificação quanto a géneros recorrendo primeiramente a uma análise

de palavras-chave das sinopses e em seguida se necessário uma pesquisa Web.

30 Análise e trabalho futuro

Class Websc

É a classe que trata das navegações Web, é utilizada duas vezes. Primeiramente na "Extracção

de candidatos"para actualização dos EPG e também sempre que é necessária uma busca no Website

IMDB.

Class NBC

Após a "Extracção de candidatos", é esta a classe que irá classificá-los sequencialmente de

acordo com o perfil de teste. Esta classe resolve os três processos de recomendação através de três

métodos específicos para tal.

4.2.2 Simulação

4.2.2.1 Dados de entrada

Nesta simulação utilizaram-se os seguintes elementos:

• Perfil de teste figurado em 4.3.

• Lista de canais a procurar informação: "TVI","SIC","SPTV1","RTP1","AXN","FOX","TVC1".

• Hora de simulação 14:25 de uma Terça-feira. Estes parâmetro influenciam a extracção dos

EPG pois irá considerar um período de 24 horas desde essa hora até ao dia seguinte.

• As listas de palavras-chave para análise das sinopses são as mesmas que se encontram no

anexo B.

Note-se: O Perfil de teste é composto por três partes, uma para cada entrada (método) do motor

de recomendação (Class NBC).

As listas de programas (dos EPG) são actualizadas automáticamente.

4.2 Casos de utilização 31

Figura 4.3: Perfil de teste utilizado

4.2.2.2 Execução

Quanto à execução as imagens que melhor a ilustram encontram-se no anexo C. Pode-se con-

statar na figura C.1 o acto de actualização dos EPG dos canais teste automaticamente. Na figura

C.2 temos o restante tratamento que formata os programas pré-recomendação da figura 4.4 e

"alimenta-os"ao motor de recomendação. Termina finalmente com atribuição de pesos e gera a

32 Análise e trabalho futuro

lista final ilustrada na figura 4.5.

Figura 4.4: Excerto de programas formatados pré-recomendação

4.2 Casos de utilização 33

4.2.2.3 Resultados

Figura 4.5: Resultado de recomendação

4.2.2.4 Discussão

O resultado como podemos ver é satisfatório. Os géneros escolhidos estão muito de acordo

com o do perfil de teste, no entanto há a salientar vários aspectos:

1. Existem alguns erros de classificação (Ex."Televendas"com género "football"), no entanto

estes erros são produto do use das listas de palavras-chave actuais, este problema será ob-

jecto de melhoramento no futuro. O uso de géneros com letras todas maiúsculas em alguns

dos casos foi propositado para demonstrar a diferença de atribuição de géneros através do

Website IMDB (géneros com letras minúsculas) e listas de palavras-chave (géneros com

letras todas maiúsculas)

2. No perfil de teste note-se que há rejeições de programas de desporto, o resultado são re-

jeições de programas desportivos, daí os poucos resultados para o canal "SPTV1"que dis-

tribuí essencialmente programas desportivos.

3. A simulação ocorreu durante a tarde e por mero acaso, detectou apenas programas de in-

teresse durante o horário "noite"e "não-fim-de-semana"(este último como seria de esperar

já).

4. Uma das limitações está também no facto que os programas recomendados são "demasi-

ado"parecidos com os do perfil, quer isto dizer que novas combinações de géneros são

34 Análise e trabalho futuro

muitas vezes rejeitadas. Será isto também um detalhe a corrigir. Poder-se-á ver na figura

4.4 um excerto da lista de programas antes do processo de classificação, bem como algumas

das combinações de géneros referidas.

4.3 Comportamento

Quanto ao comportamento o poder computacional necessário não é nada exigente. No entanto

muito ainda resta a fazer e muitas decisões a tomar. Poder-se-á por exemplo correr filtragem de

conteúdo nas STB e deixar filtragem colaborativa para um servidor à parte. Se se decidir construir

um módulo composto de recomendação com a junção de técnicas colaborativas e de conteúdo, aí

a complexidade aumentará e o ajuste para que tudo funcione terá que ser bem ponderada, para não

falar da necessidade de uma máquina de maior poder computacional.

As listas de géneros e palavras-chave a eles relacionadas foram geradas manualmente e de

modo iterativo, quer isto dizer que iterativamente tentou-se adicionar às listas palavras relacionadas

a certos géneros. O maior problema desta abordagem é que limita o número de géneros admis-

síveis, isto porque haverão palavras que estarão relacionadas a vários géneros por serem um pouco

"gerais". Para além disso por vezes as sinopses são também muito curtas o que dificulta mais

o processo de atribuição de géneros, se nenhum género for atribuído ao programa o algoritmo

irá ignorá-lo como candidato. Apesar disto, estas listas são importantes, pois contribuem para a

detecção de tipo de programa.

4.4 Trabalho futuro

O actual objectivo é o de finalizar o processo "classificação das visualizações". As STB ainda

não transmitem como pretendido, isto é, existem ainda falhas no envio para o broker o que tem

vindo a dificultar avanços neste processo, este problema deve-se a factores exteriores aos objec-

tivos desta dissertação.

Em contrapartida, após a análise do tipo de dados que as STB transmitem realmente foi pos-

sível verificar que a informação XML da sintonização actual é completamente idêntica àquela

figurada em 3.4, com a excepção do campo da sinopse («description>"). Quer isto dizer essencial-

mente que irá ser necessário resolver esta questão para que se possa atingir o perfil de utilizador

pretendido. Para isso será necessário melhorar a classificação de géneros de uma das seguintes

maneiras:

1. Desenvolver um motor de busca. Assim seria possível extrair, para qualquer tipo de con-

teúdo, a sua correcta classificação através da Web. Esta é a opção também mais "pesada"e

difícil de implementar. Apesar disto poder-se-ia explorar a integração com a API da Google,

visto que são disponibilizados muitos serviços para tal. No entanto haveria uma limitação

devido à linguagem de programação que teria de ser alterada pois não há suporte em C++.

4.4 Trabalho futuro 35

2. Com a ligação bem sucedida ao Website IMDB, poder-se-á considerar outro Website que

permita ajudar a identificar os géneros dos programas de modo semelhante. Esta será uma

opção intermédia quanto à dificuldade implementação dado que a maior parte dos Websites

dificultam as ligações a eles feitas através de scratching1.

3. A última opção é mais simples mas a sua solução recai mais no sistema da PT. A ideia seria

utilizar algum outro serviço já existente, possivelmente equivalente ao da SAPO. Então aí

poucas alterações seriam necessárias.

Com estas alterações fará sentido também abandonar o uso das listas de palavras-chave que

provaram ser menos eficientes na atribuição de géneros.

Antes de partir para a simulação de vários utilizadores deverá então proceder-se ao melhora-

mento da performance e correcção de pequenos bugs (maior variedade na combinação de géneros,

como exemplo).

O próximo objectivo será simular a presença de vários utilizadores e tentar captar itens block-

buster. Considerando novamente a figura 3.7 e o processo "Selecção variada de diferentes re-

comendações", pensa-se que seria uma boa adição o uso desses itens populares à grelha de apre-

sentação de recomendações.

Finalizando com a junção dos dois tipos de filtragem, foram apresentadas algumas soluções no

capítulo 2. Na continuação do que foi descrito quanto a filtragem colaborativa, ficou assinalada a

possibilidade desse módulo seguir métodos heurísticos de comparação de utilizadores baseado em

históricos de conteúdo (ou perfis). Para tal criavam-se vectores correspondentes aos utilizadores

em que compareciam os pesos (ocorrências em visualizações) dos géneros/data/canal/tipo e isso

permitiria a comparação entre utilizadores. O processo de geração da lista final teria em conta

programas visualizados por utilizadores semelhantes juntamente com filtragem de conteúdo.

1Técnica utilizada para ligação ao Website IMDB que consiste basicamente, na análise do próprio código HTMLdos Websites para construção de ligações seguintes

36 Análise e trabalho futuro

Capítulo 5

Conclusão

Neste capítulo irá ser feita a conclusão ao documento que retratou o trabalho desenvolvido nos

últimos meses. O projecto em si continuará a ser desenvolvido até se atingirem todos os objectivos.

5.1 Conclusão

Foi aqui apresentado o desenvolvimento de um sistema de recomendação para TV. Com a falta

apenas do perfil de utilizador, que deveria ser construído através da classificação de visualizações.

É essa portanto a prioridade para finalizar logo que a informação proveniente das STB esteja a

publicar convenientemente. Refira-se no entanto que a "classificação de visualizações"não foi

finalizada dado que falhou o bom funcionamento na troca de informação entre as STB e o broker

que não esteve dentro do âmbito desta dissertação. Apesar disto, o actual resultado na geração da

lista final é satisfatório, apesar de haver alguma dificuldade em atribuir correctamente os géneros

a programas que não "séries"e "filmes", partindo apenas da sinopse.

A escolha do motor de classificação utilizado parece ser satisfatória, tendo em conta os recur-

sos para já disponíveis. Para além disso, cumpriu-se o objectivo de "poli-valência"do código. O

algoritmo corre rapidamente mesmo sem grande poder computacional pelo que até poderia correr

em plataformas móveis por exemplo. Dos poucos pressupostos do sistema é o uso de informação

de input dos candidatos em formato XML que é um dos formatos mais populares e eficientes.

Adicionalmente caso se pretenda abordar temas como targeted advertisement também e pos-

sível desde que os anúncios contenham descrições sobre o conteúdo em géneros bem definidos.

Finalmente Prevêem-se também que pequenos ajustes terão que ser efectuados caso se pre-

tenda a aplicação do programa noutro domínio. Especialmente quanto à extracção automática de

informação na Web, pois depende muito da formatação e estrutura do website que se pretende

aceder.

37

38 Conclusão

Anexo A

Descrição das técnicas

Todas as técnicas enumeradas nos diferentes sistemas de recomendação serão agora descritas

na sua generalidade.

A.1 Família Bayes

Existem diversas variantes do teorema probabilístico de Bayes. Simplesmente posto pode-se

deduzir o teorema de Bayes a partir da definição de probabilidade condicionada. Considere-se Ae B como dois acontecimentos então:

P(A|B) = P(A∧B)P(B)

,P(B)≥ 0 (A.1)

e do mesmo modo podemos afirmar que

P(B|A) = P(A∧B)P(A)

,P(A)≥ 0 (A.2)

se combinarmos ambas,

P(A|B)P(B) = P(A∧B) = P(B|A)P(A) (A.3)

o que conclui o teorema

P(A|B) = P(B|A)P(A)P(B) (A.4)

A.1.1 Naïve Bayes

Um caso particular de utilização muito popular e o chamado Naïve Bayes utilizado em diversas

áreas que envolvem classificação de texto. A simplificação é simples: cada elemento é considerado

39

40 Descrição das técnicas

independente em relação aos outros.Classificação é normalmente um problema do género:

p(C|F1, ...,Fn) (A.5)

Em que C é a classe respectiva tendo em conta os atributos F do candidato. Ora através da

regra de Bayes e para atributos independentes é possível afirmar que:

p(C,F1, ...,Fn) = p(C)p(F1|C)p(F2|C)p(F3|C)...= p(C)N

∏i=1

p(Fi|C) (A.6)

Isto quer dizer que na presença de vários candidatos de treino (conhecidos) é possível resolver

o problema de classificação através do cálculo das probabilidades associadas.

A.1.2 Redes de Bayes

É um método para geração de um modelo gráfico probabilístico. A ideia é a geração de um

modelo em que os nós são variáveis e os ramos a conexão directa entre elas. A partir do modelo

pode-se então inferir diversas conclusões baseadas na probabilidade total percorrida pelo caminho

desde o nó inicial até ao nó final.

Este método implica saber as probabilidades de todos os acontecimentos da rede e tem como

principal vantagem a melhor exposição das causas e efeitos.

A.2 Clustering

É o processo de agrupar um conjunto de objectos em classes não-pré-definidas de objectos

semelhantes. É provavelmente a técnica mais importante de aprendizagem não supervisionada (a

partir dos dados em "bruto") existente. Trata-se de uma técnica complexa com diversos tipos e

abordagens, dependendo do contexto.

Existem dois tipos de clustering: hierárquico e particional.

Em clustering hierárquico o conjunto de objectos a classificar são decompostos em grupos

mais pequenos sob um critério de avaliação e podem seguir uma de duas diferentes estratégias:

• Bottom-up - Em Bottom-up cada elemento é um cluster e sob o critério de avaliação são

procurados os melhores pares que possam ser fundidos no mesmo cluster. O processo é

iterativo até não se verificarem alterações ou até se atingir o critério de paragem.

• Top-down - Por outro lado em Top-down parte-se do conjunto total dos dados e calculam-se

todas as maneiras de dividir o cluster inicial em dois. Escolhe-se a melhor divisao e repete-

se o processo para todas as sub-divisões até não se verificarem divisões ou até se atingir o

critério de paragem.

Em clustering particional cada instância é colocada em um dos K clusters não sobrepostos.

Como apenas um conjunto de clusters é desejado, o utilizador normalmente tera que introduzir a

A.3 Árvores de decisão 41

priori o número de clusters K. Este método é denominado normalmente por K-means e segue o

seguinte algoritmo:

1. Selecciona K pontos como centroides iniciais

2. Repetir:

• Formar K clusters afectando todos os pontos ao centroide mais próximo

• Recalcular o centro de cada cluster

• Avaliar se houve deslocamento dos centroides ou se se atingiu o critério de paragem

A.3 Árvores de decisão

No contexto de ML as árvores de decisão são utilizadas para construção de modelos preditivos.

São feitas observações sobre o objecto a classificar que são mapeadas em forma de árvore, as folhas

são classificações e os ramos conjunções que levaram a essa decisão.

Na verdade existem imensas maneiras para construir uma árvore de decisão e o tamanho das

árvores depende do tipo de algoritmo e com que objectivo foi aplicado. Um dos mais conhecidos

algoritmos para geração de árvores é o de Hunt e serve de base para muitos outros

A.3.1 Algoritmo de Hunt

A árvore é recursivamente aumentada através da partição dos dados de treino em subgrupos

mais pequenos e mais "puros". Considere-se Dt o grupo de dados de treino que estão associados

ao nó t e yt as classes possíveis, o algoritmo funciona da seguinte maneira:

1. Se todos os dados em Dt pertencem à mesma classe yt então t é um nó folha classificado

como yt.

2. Se Dt contém dados que pertencem a uma ou mais classes, então uma condição de atributo

teste é seleccionada para particionar os dados em subgrupos mais pequenos. Um nó filho é

criado para cada resultado da condição de teste e os dados em Dt são distribuídos pelos nós

filhos baseado nos resultados.

3. Repete-se 1o e 2o para todos os nós.

A.4 Redes neuronais

Tal como o nome sugere trata-se de um processo computacional baseado em nós interligados,

cada nó possui alguma memória local e processa informação que pode ser output para outros nós

em diferentes camadas. Finalmente somam-se as entradas e a saída é decidida sobre esse valor.

Estes nós são também denominados por neurónios (por semelhança com a unidade cerebral) e o

modelo normal é apresentado na figura A.1.

42 Descrição das técnicas

Figura A.1: Modelo de neurónio básico extraído de (Moreira, 1997)

1. Recebe as entradas x1,x2,...,xn em n sinapses de excitação e as entradas y1,y2,...,ym em msinapses inibidoras

2. Se pelo menos uma das entradas inibidoras y1,y2,...,ym é 1 então a unidade computacional

é inibida apresentando como saída o valor 0

3. Se todas as entradas inibidoras y1,y2,...,ym são 0 então a unidade computacional apresenta

o sinal de saída f(x1+x2+...+xn-b) em que f é a função degrau unitário e a constante b repre-

senta o desvio (bias)

As redes neuronais artificiais podem então ser modeladas como um grafo orientado em que

os nós são os neurónios e as arestas sinapses. As funções de cada neurónio podem ser simples

degraus a funções lineares, funções Gaussianas entre outras.

A.4.1 Redes planares

As redes neuronais planares são constituídas por neurónios escondidos e por neurónios per-

iféricos todos eles dispostos numa superfície bidimensional. Estes últimos podem subdividir-se

em neurónios de entrada (input neurons) e de saída (output neurons). A disposição dos diferentes

neurónios pode ou não estar organizada por camadas. Se as respostas dos neurónios de uma rede

é binária (0/1 ou -1/+1, por exemplo) esta pode designar-se binária. Redes neuronais constituídas

por neurónios binários e arestas binárias são conhecidas por redes McCulloch-Pitts.

A.4.2 Redes por camadas

As redes neuronais artificiais planares podem ser constituídas por diferentes camadas (layers)

dispostas paralelamente. A primeira é designada por camada de entrada e a última por camada de

saída. As camadas intermédias são designadas por camadas escondidas. As redes constituídas por

camadas constituem casos particulares das redes planares. Quando a informação de cada camada

não constitui informação de entrada de nenhuma camada anterior a rede designa-se por rede de

alimentação directa (feed-forward network). Caso contrário designam-se por redes recorrentes

(recurrent networks).

As redes de camadas com alimentação directa e em que a informação de saída é constituída por

padrões binários são designadas por alguns autores por redes de perceptrões. Mais rigorosamente,

um perceptrão é considerado uma unidade computacional que calcula o sinal duma combinação

linear das variáveis de entrada. Em algumas situações certas camadas possuem neurónios cujas

funções transferência são lineares. Neste caso estas camadas designam-se lineares. Uma rede

apenas com camadas lineares designa-se rede linear. As camadas não lineares designam-se nor-

malmente pelo nome da função transferência comum aos diferentes neurónios utilizados nessas

A.5 Regressao linear 43

camadas. As redes com uma ou mais camadas não lineares podem designar-se redes não lineares.

Redes com camadas sigmoidais ou Gaussianas constituem exemplos de redes não lineares. Redes

com camadas deste último tipo podem designar-se por redes de base radial.

A.5 Regressao linear

é um método também muito conhecido e aplicado. O modelo de regressão linear procura

calcular o valor mais provável de uma variável através de um relacionamento linear com um

conjunto de outras variáveis. Isto é, calcula a recta (no caso mais simples) que melhor aproxima

uma distribuição de parâmetros. Um método para o cálculo dessa recta e o método dos mínimos

quadrados que será agora explicado.

A.5.1 Método dos mínimos quadrados

Considere-se várias observações (Xi,Yi), i = 1,...,n temos então o modelo:

Yi = β0 +β1Xi + εi, i = 1, ...,n (A.7)

O objectivo é então ajustar ambos os valores das variáveis beta. Para tal calculam-se os desvios de

Y em relação ao seu valor esperado(E(Yi)):

Yi− (β0 +β1Xi) (A.8)

Se elevarmos ao quadrado esses desvios e aplicarmos o somatório temos o critério Q:

Q =n

∑i=1

(Yi−β0−β1Xi)2 (A.9)

De acordo com o método, se se igualarem as derivadas parciais de Q em relação às variáveis beta

a 0 podemos obter os estimadores pontuais b0 e b1 definidos por:

b1 =∑((Xi−Xmed)(Yi−Ymed))

∑((Xi−Xmed)2)(A.10)

b0 = Ymed−b1Xmed (A.11)

Em que Xmed e Ymed são os respectivos valores médios. Com estes valores podemos então

proceder ao cálculo da recta pretendida.

44 Descrição das técnicas

A.6 K Vizinho mais próximo

Também denominada kNN é uma maneira simples para classificação de objectos baseada

numa lista de treino, com objectos correctamente classificados. O processo é simples, o objecto

candidato é classificado comparando as suas características com os k vizinhos mais próximos da

lista de treino.

Esta técnica é mais comum no contexto colaborativo dos recomendadores em que é normal o

cálculo de uma medida d e semelhança entre utilizadores. Esta medida permite saber a "proximi-

dade"entre os utilizadores e possivelmente seleccionar então os tais cuja opinião poderá ser mais

relevante para o utilizador em questão.

Normalmente a medida de semelhança mais aplicada neste contexto é a diferença angular:

cos(θ) =〈u,v〉‖u‖.‖v‖

(A.12)

Em que A e B podem ser vectores de pesos calculados anteriormente através de TF-IDF, por

exemplo.

A.7 Teoria de grafos

Um dos componentes do Intelligent Recommendation Algorithm da IBM (Charu C. Aggarwal

e Yu, 1999) baseia-se nos conceitos de horting e preditibilidade da teoria de grafos. Os resultados

aparentemente são prometedores para sistemas de recomendação online para produtos "homogé-

neos"tais como CDs, livros, software, etc.

A principal vantagem desta abordagem é a redução do problema da esparsidade. A ideia é

construir e manter um grafo direccionado cujos nós são os utilizadores e as arestas correspondem

à noção de preditibilidade. O algoritmo calcula os vizinhos mais próximos sem ter que recorrer

com uma função de distância para todos os utilizadores, tornando o algoritmo mais "leve".

A.8 TF-IDF

É uma das mais conhecidas e utilizadas técnicas para cálculo de pesos de palavras-chave em

extracção de informação. Considere-se N o número de documentos candidatos a recomendação e

kj as palavras-chave presentes em ni deles. Se se considerar fi,j o número de vezes que kj aparece

no documento dj, então a denominada frequência de termo poderá ser descrita por:

T Fi, j =fi, j

maxz( fz, j)(A.13)

Em que o máximo é calculado a partir das frequências fz,j de todas as palavras-chave kz que

aparecem em dj. Em todo o caso o facto de sabermos que palavras-chave são as mais frequentes

não nos ajuda a saber se os documentos são relevantes ou não. Para isso a medida de frequência

A.8 TF-IDF 45

inversa (IDFi) é usada em combinação com a frequência de termo. Para calcular a frequência

inversa temos:

IDFi = log(Nni) (A.14)

Finalmente para a palavra-chave ki no documento dj ter-se-á um peso definido por:

Wi, j = T Fi, j× IDFi (A.15)

Os documentos são descritos como um vector de conteúdo em que os seus elementos são pesos

Wi,j atribuídos às palavras-chave.

46 Descrição das técnicas

Anexo B

Listas de géneros

Estas listas referem-se às palavras associadas aos géneros aquando a pesquisa deles na classi-

ficação.

B.1 Filme e série

B.1.1 Drama

Choro, Chorar, Sequestro, Sequestros, Sequestrou, Saber, Desconfia, Desconfiar, Vida, Vidas,

Conversa, Conversar, Conversas, Detective, Detectives, Traição, Atraiçoado, Traições, Suspeito,

Suspeitos, Suspeita, Transplante, Transplantes, Mistério, Mistérios, Misterioso, Misteriosos, In-

triga, Intrigas, Intrigante, Desaparecimento,Desaparecimentos, Descobre, Descoberta, Descoberto,

Paixão, Paixões, Amor, Amores, Doutor, Dr., Dra., Doutora, Doutores

B.1.2 Horror

Monstro, Monstros, Violência, Violento, Violenta, Sangue, Tortura, Torturas, Torturado, Tor-

turados, Tormento, Atormentados, Atormentado

B.1.3 Fiction

Alien, Aliens, Ficção, Científica, Futuro, Computador, Computadores, Ovni, Sistema, Sis-

temas, Espaço, Extraterrestre, Extraterrestres

B.1.4 Comedy

Hilariante, Humor, Disposição

47

48 Listas de géneros

B.1.5 Action

Acção, Explosão, Explosões, Investigação, Criminais, Criminosos, Criminal, Criminoso, In-

vestigações, Crime, Batalha, Batalhas, Exército, Exércitos, Crimes, Vingança, Tecnologia, Vin-

ganças, Esquadrão, Esquadrões, FBI, DEA, PSP, Busca, Buscas, Assassínio, Assassinado, Assas-

sinato, Assassino, Assassinos, Arma, Armas, Justiça, Acções, Salvamento, Salvar

B.2 Desporto

B.2.1 Tennis

Ténis, Tenista, Tenistas, Squash

B.2.2 Football

Futebol, Rei, Liga, Campeões

B.2.3 Motor

Motor, Motores, Fórmula, Automóvel, Grande, Prémio, Automóveis, Carro, Carros

B.2.4 Basketball

Basquetebol, NBA

B.2.5 Handball

Andebol

B.2.6 Athletics

Marciais, Atleta, Atletas, Atletismo, Luta, Lutas, Radical, Radicais, Combate, Combates

B.2.7 Hipismo

Cavalo, Cavalos, Hipismo

B.3 Informativo

B.3.1 News

Notícias, Notícia, Entrevista, Entrevistas, Informação, Actualidade, Novidade, Novidades

B.3.2 Documentary

Documentário, Documentários

B.3 Informativo 49

B.3.3 Weather

Tempo, Tempestade, Tempestades

50 Listas de géneros

Anexo C

Imagens de execução do programa

C.1 Actualização dos EPGs

Figura C.1: Actualização dos EPG em decurso

51

52 Imagens de execução do programa

C.2 Classificação dos candidatos

Figura C.2: Classificação dos candidatos e geração de recomendação

Referências

J. Fabregat A. Puig J. Mas M. Noe E. Villalon F. Enrich V. Domingo A. Lopez, D. Gonzaleze G. Fernandez. Synchronized mpeg-7 metadata broadcasting over dvb networks in an mhpapplication framework, 2003.

Gediminas Adomavicius e Alexander Tuzhilin. Toward the next generation of recommender sys-tems: A survey of the state-of-the-art and possible extensions. IEEE Transactions on Knowledgeand Data Engineering, pages 734–749, Junho 2005.

Dan Cosley Shyong K. Lam Sean M. Mcnee Joseph A. Konstan Al Mamunur Rashid, Istvan Alberte John Riedl. Getting to know you: Learning new user preferences in recommender systems.pages 127–134. ACM Press, 2002.

Philip Bonhard. Who do trust? combining recommender systems and social networking for betteradvice.

Kun-lung Wu Charu C. Aggarwal, Joel L. Wolf e Philip S. Yu. Horting hatches an egg: Anew graph-theoretic approach to collaborative filtering. In In Proceedings of the Fifth ACMSIGKDD International Conference on Knowledge discovery and data mining, pages 201–212.ACM Press, 1999.

Internet Movie Database. Internet movie database. http://www.imdb.com/.

Daniele Toscani Enza Messina e Francesco Archetti. Up-dres user profiling for a dynamic recom-mendation system. In Advances in Data Mining, pages 146–160. Springer Berlin/ Heidelberg,2006. ISBN 978-3-540-36036-0. doi: 10.1007/11790853_12.

Maria Kihl Inigo Sedano Andreas Aurelius Christina Lagerstedt Geng Yu, Tord Westholm e PerOedling. Analysis and characterization of iptv user behavior. In IEEE Symposium on BroadbandMultimedia Systems and Broadcasting, pages 201–212, 2009.

Will Hill, Larry Stead, Mark Rosenstein e George Furnas. Recommending and evaluating choicesin a virtual community of use. In CHI ’95: Proceedings of the SIGCHI conference on Humanfactors in computing systems, pages 194–201, New York, USA, 1995. ACM Press/Addison-Wesley Publishing Co. ISBN 0-201-84705-1. doi: http://doi.acm.org/10.1145/223904.223929.

Günther Hölbling, Michael Pleschgatternig, Kosch e Harald. Personaltv, a tv recommendationsystem using program metadata for content filtering. Multimedia Tools Appl., 46(2-3):259–288,2010. ISSN 1380-7501. doi: http://dx.doi.org/10.1007/s11042-009-0352-2.

Jaime Teevan Jason D. M. Rennie, Lawrence Shih e David R. Karger. Tackling the poor assump-tions of naive bayes text classifiers. In In Proceedings of the Twentieth International Conferenceon Machine Learning, pages 616–623, 2003.

53

54 REFERÊNCIAS

Thorsten Joachims. A probabilistic analysis of the rocchio algorithm with tfidf for text categoriza-tion. pages 143–151, 1997.

Ze-Nian Li e Mark S. Drew. Fundamentals of Multimedia. Prentice Hall, 2004. ISBN 0130618721, 9780130618726.

Dunja Mladenic e Marko Grobelnik. Feature selection for unbalanced class distribution and naivebayes. In In Proceedings of the 16th International Conference on Machine Learning (ICML,pages 258–267. Morgan Kaufmann Publishers, 1999.

Miguel Angelo Moreira. Introdução às redes neuronais artificiais, 1997.

MovieLens. Movielens. http://www.movielens.org/.

Wolfgang Nejdl Paul-Alexandru Chirita e Cristian Zamfir. Preventing shilling attacks in onlinerecommender systems. In Proceedings of the 7th annual ACM International workshop on WEBInformation and Data Management, pages 67–74. ACM Press, 2005.

Mykola Pechenizkiy. Machine learning course handouts, Outubro 2009. Technische UniversiteitEindhoven, disponÃvel em http://pcwin889.win.tue.nl:8080/portal/.

Hewlett Packard Publisher. Using si tables to create electronic program guides. Technical report,Hewlett Packard, Maio 1997.

Irina Rish. An empirical study of the naive bayes classifier. Technical report, IBM, Workshop onEmpirical Methods in AI, 2001.

Adam T. Lindsay Rui J. Lopes e David Hutchison. The utility of mpeg-7 systems in audio-visualapplications with multiple streams. IEEE Trans. Circuits Syst. Video Techn., 13(1):16–25, 2003.

Kp Lee Jacquelyn Martino John Milanski J. David Schaffer Srinivas Gutta, Kaushal Kurapati eJohn Zimmerman. Tv content recommender system. In In Proceedings of the 17th NationalConference on Artificial Intelligence, pages 1121–1122. AAAI Press / The MIT Press, 2000.

Information Systems e Daniel D. Zeng. Why does collaborative filtering work, recommendationmodel validation and selection by analyzing bipartite random graphs zan huang.

Jason D. M. Rennie Tommi Jaakkola, Jason D. M. Rennie. Improving multi-class text classifica-tion with naive bayes, 2001.

Adrian Zoicas. Electronic programme guide (epg); protocol for a tv guide using electronic datatransmission. Technical report, European Broadcasting Union and European Telecommunica-tions Standards Institute, Maio 1997.