TV digital com tela de cristal líquido · 2013-09-28 · TV digital com tela de cristal líquido ... tv
Sistema de recomendação TV - repositorio-aberto.up.pt · goritmo irá tentar extrair informação...
Transcript of Sistema de recomendação TV - repositorio-aberto.up.pt · goritmo irá tentar extrair informação...
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
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
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
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
"We are leaving the Age of Information and entering the Age of Recommendation"
Chris Anderson - Editor chefe da revista Wired
ix
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
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
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.
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
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
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.
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
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.