Conteúdo


Sugestões de entretenimento usando computação cognitiva

O sistema proposto utiliza técnicas cognitivas de aprendizado supervisionado para coletar amostras de personalidades e informações de filmes do website IMDb, e induz a aprendizagem ao longo do tempo com os feedbacks positivos recebidos de usuários

Comments

1 Introdução

O conceito de computação cognitiva é recente na era da tecnologia da informática, 2 antes apenas era possível produzir conhecimento através do cérebro humano, agora existe um novo mecanismo de cognição para produzir conhecimento (GANDOUR, 2014). Uma das categorias de aplicação utilizando a computação cognitiva para ajudara humanidade é em um sistema de recomendação, que auxiliaria na formação de sugestões apuradas para um determinado assunto ao qual a pessoa não tem conhecimento aprofundado (RESNICK; VARIAN, 1997). Por que não utilizar esse artefato para sugerir opções de lazer, que é uma necessidade crucial para o ser humano? (CALVET, 2006) sim, assistir filme, por exemplo, é uma atividade de lazer (BUENO; CAMARGO, 2003) com diversas opções.

Logo, o objetivo deste trabalho é desenvolver um sistema de pesquisa para avaliar o uso de cognição para recomendação de filmes, tendo como base os traços de personalidade do usuário, assim como proposto e realizado pela pesquisadora NUNES (2008).

O sistema aqui proposto possui nome fictício Whamovie e foi desenvolvido para plataforma móvel que depende de uma rede social, como Twitter ou Facebook, para sua utilização. O sistema faz uso de serviços disponibilizados na nova plataforma da IBM, o Bluemix, entre eles, um servidor virtual com a plataforma Node.js instalada juntamente com a ferramenta Node-RED.

O sistema Whamovie também faz uso do banco de dados Cloudant NoSQL e dois serviços do IBM Watson, o Personality Insights ao qual é possível fazer a leitura de linguagem natural e retornar uma análise cognitiva da personalidade do usuário baseada em modelos da área da psicologia (IBM, 2016), e o Language Translation que identifica o idioma do texto e traduz de forma cognitiva (IBM, 2016). Através do Node-RED, esses recursos foram integrados e disponibilizados ao aplicativo móvel na forma de web services REST.

2 Referencial teórico

Sistema de recomendação é uma ferramenta para auxiliar na decisão de escolhas, ele sugere diversas opções de um assunto ao qual ele é especialista (RESNICK; VARIAN, 1997).

Como exemplo de sistemas de recomendação pode-se citar o do Netflix, que baseado nas experiências dos usuários e de seus amigos, sugere filmes e séries utilizando algoritmos com técnicas de matriz de fatoração (KOREN; BELL; VOLINSKY, 2009). Também foi utilizado diversos algoritmos com técnicas de estatísticas e de aprendizado de máquina onde é utilizada abordagem supervisionada (classificação e regressão) e não supervisionada (redução de dimensão) para serem usados com técnica de teste A/B (GOMEZ-URIBE; HUNT, 2015).

No desenvolvimento destes sistemas, três técnicas clássicas são usadas: colaborativa, baseada em conteúdo e híbrida (ADOMAVICIUS; TUZHILIN, 2005), porém, existem outras técnicas: demográfica, baseada em conhecimento, baseada em utilitários e a baseada em traços de personalidade (NUNES, 2008).

O sistema de recomendação, proposto pela pesquisadora, foi capaz de equiparar usuários com similaridades nos traços de suas personalidades onde, primeiramente, foram coletadas as respostas do questionário da psicologia NEO-IPIP e inseridos na base de dados para serem, posteriormente, processadas no sistema através de uma função de normalização, distância, classificação e similaridade, exatamente nesta ordem. O resultado dessa última função é encaminhado ao módulo de decisão (que age de maneira recursiva ao sistema caso o resultado não seja aprovado), para uma possível recomendação ao usuário. Na figura 1 é mostrado a arquitetura desse sistema.

Figura 1 – Arquitetura do sistema de recomendação baseado em traços de personalidade (Big Five)
Figura 1 – Arquitetura do sistema de recomendação baseado em traços de personalidade (Big Five)

Figura 1 – Arquitetura do sistema de recomendação baseado em traços de personalidade (Big Five)
Fonte: (NUNES, 2008)

Os resultados do sistema da figura 1 foram positivos apesar dos problemas encontrados, onde somente 10% dos entrevistados responderam o enorme questionário de 300 questões (NUNES, 2008).

O modelo de personalidade Big Five (COSTA; MACCRAE, 1992) inclui cinco dimensões primárias os quais permitem mensurar a personalidade de uma pessoa, são elas:

  • Openness (abertura): Indivíduos com alta pontuação nessa dimensão, geralmente, são francos, imaginativos, espirituosos, originais e artísticos. Por outro lado, indivíduos com baixa pontuação nessa dimensão são superficiais, comuns ou simples. O fator também descreve a complexidade, abertura e profundidade da mente humana (ANDRADE, 2008);
  • Conscientiousness (conscienciosidade): Nesse fator é característico o controle de impulsos, bem como comportamentos direcionados a um objetivo específico, que podem facilitar a execução de obrigações e deveres. São geralmente cautelosos, dignos de confiança, organizados e responsáveis. Por outro lado, indivíduos com baixos escores nessa dimensão tendem a ser descuidados, desordenados e pouco-confiáveis. Bom desempenho escolar, desempenho no treinamento e no trabalho (ANDRADE, 2008);
  • Extraversion (extroversão): Indivíduos extrovertidos tendem a serem ativos, entusiasmados, dominantes, sociáveis e eloquentes ou falantes. Por outro lado, indivíduos introvertidos tendem a ser retraídos, submissos e quietos. É relacionada com atividade e energia, dominância, expressividade e emoções. Os extrovertidos buscam agitação e têm características alegres. Os introvertidos, por sua vez, são sérios, inibidos e demonstram certa necessidade de solidão. Os introvertidos não são necessariamente tímidos, podendo até ter boas habilidades sociais e ser livres de ansiedade social. Muitas vezes, os introvertidos simplesmente preferem evitar a companhia de outras pessoas (ANDRADE, 2008);
  • Agreeableness (amabilidade): Indivíduos com altas pontuações nesse traço são agradáveis, amáveis, cooperativos e afetuosos. Indivíduos com uma classificação baixa nessa dimensão podem ser frios e indelicados. A referida dimensão caracteriza-se por uma orientação em direção aos demais, incluindo traços como altruísmo, confiança e modéstia (ANDRADE, 2008);
  • Neuroticism (neuroticismo): Indivíduos neuróticos são geralmente nervosos, altamente sensíveis, tensos e preocupados. Por outro lado, indivíduos emocionalmente estáveis são calmos e satisfeitos. Contrasta estabilidade emocional com afetos negativos, incluindo ansiedade, tristeza, irritabilidade e tensão nervosa. Os indivíduos com alta pontuação tendem a experimentar com maior frequência irritação, melancolia e vergonha. Eles possuem crenças de que devem fazer tudo corretamente e possuem baixo controle de seus impulsos, pois a frustração de seus desejos os perturbam muito (ANDRADE, 2008).

Hoje o Big Five permite o reconhecimento da personalidade de um indivíduo por computadores através da leitura de linguagem natural (MAIRESSE; WALKER, 2006), ou seja, através da interpretação automatizada de textos escritos pelo indivíduo é possível estimar as pontuações relacionadas a cada uma das cinco dimensões, dispensado a aplicação de questionários (normalmente extensos). O serviço Personality Insights do Watson faz exatamente esse processamento, sendo ele disponível na plataforma Bluemix da IBM, porém, a efetividade do método utilizado por este serviço depende fortemente da quantidade de palavras extraídas para a análise (IBM, 2016).

2.1 Personality Insights

Personality Insights é um serviço oferecido pelo IBM Watson, que se baseia na psicologia de linguagem combinada com algoritmos de análise de dados que permite uma aplicação extrair dados de um texto usando analise linguística, resultando como retorno, uma resposta em três modelos:

  • Big Five (cinco grandes fatores), que representa o modelo mais abrangente usado para descrever um indivíduo;
  • Needs (necessidades), que descreve quais aspectos um determinado produto ressoa para o indivíduo;
  • Values (valores), que descreve fatores motivadores que influenciam na decisão do indivíduo.

Pesquisas dentro e fora da IBM mostram bons resultados na coincidência da personalidade a partir de textos, apesar de nem sempre coincidir. A IBM usou diversas pesquisas para validar a precisão dos resultados (IBM, 2016).

Na figura 2 foi exemplificado, visualmente, os traços da personalidade (e suas subcategorias) do atual presidente dos Estados Unidos, Barack Obama nos três modelos, como resultado da análise de um de seus debates (em texto) de 2012 na aplicação demonstrativa do serviço (IBM, 2016).

Figura 2 – Resultado da análise de personalidade do presidente Barack Obama na aplicação demonstrativa do serviço Personality Insights
Fonte: (IBM, 2016)

Conforme observado na figura 2, a análise do modelo Big Five do presidente Barack Obama apresentou um traço agreeableness elevado, significando que é um individuo afetuoso e cooperativo. Por outro lado, o traço conscientiousness tem classificação baixa, o que pode significar uma tendência de ser um individuo descuidado. Os outros 3 traços apresentaram níveis médios e uma análise mais criteriosa e válida deve ser feita por um especialista da área de psicologia (ANDRADE, 2008).

2.2 Sistemas cognitivos - IBM Watson

Sistemas cognitivos formam uma categoria de tecnologias que usam processamento de linguagem natural (conversação, reconhecimento de imagem e visão computacional) e aprendizado de máquina para possibilitar que pessoas e maquinas interajam com naturalidade resultando em pessoas sendo auxiliadas em suas tarefas (GRECO, 2015).

Watson é um sistema de computação cognitiva que inicialmente era apenas um sistema baseado em perguntas e respostas, porém, hoje em dia ele engloba diversos serviços cognitivos, sendo estes disponibilizados na plataforma Bluemix através de APIs cognitivas (IBM, 2016). O serviço de perguntas e respostas, que é a raiz do sistema cognitivo, realiza uma análise contextual utilizando leitura de linguagem natural para as questões de entrada, produzindo como saída respostas precisas com alta confiabilidade. Esse sistema interage com humanos, auxilia e aprende com essas interações, o mecanismo contém um pacote de algoritmos que são baseados no processamento de pensamentos de uma pessoa onde se faz hipóteses da pergunta original e traz uma resposta (LALLY et al., 2014).

Figura 3 – Arquitetura do serviço de perguntas e respostas do Watson em tempo de execução
Fonte: (GRECO, 2015)

No fluxo da figura 3, observa-se o UIMA (Unstructured Information Management Architecture) pipeline (APACHE, 2016) do serviço, provido pelo Watson, de perguntas e respostas. Primeiramente, a pergunta, que é a entrada, passa por um processo de análise de tópico e posteriormente uma decomposição para ser gerada diversas hipóteses onde é realizado, para cada uma delas, uma busca primária na fonte de respostas para encontrar uma candidata, na qual é feita uma pontuação a fim de encontrar uma evidência em outra fonte (evidências) que a sustente. Tendo todas as evidências e hipóteses pontuadas, a síntese da pergunta é feita onde ocorre também, a escolha da resposta e, posteriormente, é mesclado junto a esta, o seu nível de confiabilidade e classificação de acordo com os modelos de aprendizagem treinados, tornando a resposta final e a retorna a resposta final como saída.

2.3 IBM Bluemix

Bluemix é uma plataforma de Cloud Computing para construir, gerenciar e executar aplicações de todos os tipos, como por exemplo, aplicações para web, dispositivos móveis, Big Data, entre outros (IBM, 2016).

Não é preciso se preocupar com sistemas operacionais ou infraestrutura para executar sua aplicação no Bluemix já que tudo é gerenciado pela própria plataforma, cumprindo o dever de um bom PaaS (Platform as a Service). A interação das aplicações, serviços e sistemas na plataforma são realizadas via web services REST.

O fluxo de comunicação entre cliente (que pode ser tanto os usuários comuns quanto desenvolvedores que utilizam a plataforma) e servidor, que é sempre feito com requisições HTTP REST. Desenvolvedores acessam a plataforma via painel de controle web (disponibilizado pela própria) ou por linha de comando. As aplicações são otimizadas para serem armazenadas e rodarem dentro do Bluemix utilizando o conceito de DEA (Droplet Execution Agent) que é uma estrutura de servidor virtual contendo um ou múltiplos containers, os quais englobam um framework ligado a uma plataforma de execução (runtime) especifica que hospeda uma aplicação. Containers trazem os benefícios de isolamento entre as aplicações hospedadas e otimização das mesmas (IBM, 2016). SoftLayer é um serviço da IBM que fornece infraestrutura (IaaS – Infrastructure as a Service) ao Bluemix (IBM, 2016). Na figura 4 foi apresentado a arquitetura de alto nível desta plataforma.

Figura 4 – Arquitetura Bluemix
Fonte: (IBM, 2016)

Na figura 4 observa-se um componente hexagonal do Bluemix, que compreende todos os serviços disponíveis por ele, como por exemplo, o Language Translation, a plataforma de execução Node.js com a ferramenta Node-RED e o serviço de banco de dados Cloudant NoSQL.

2.3.1 Language Translation

Language Translation é um serviço do Watson disponibilizado pelo Bluemix que provém traduções utilizando cognição para as realizar com técnicas de aprendizado de máquina. O serviço é dotado de recursos robustos como diferenciação de domínios, sendo possível traduzir uma conversa coloquial, um texto técnico ou legal e até artigos, e também identifica automaticamente o idioma fonte do texto a ser processado (IBM, 2016).

2.3.2 Node-RED

Node-RED é uma ferramenta baseada em web que pode ligar dispositivos, APIs e serviços online com facilidade, onde seus programas são fluxos de nós conectados por ligações que podem ser arrastados de um painel. A ferramenta é suportada pela IBM e por uma grande comunidade de usuários que contribuem com novos serviços em formatos de nós, estes que podem ter sua programação implementada na linguagem JavaScript acompanhada de um arquivo HTML para realizar o interfaceamento entre o serviço e o desenvolvedor (BLACKSTOCK; LEA, 2014). O Node-RED foi implementado na plataforma Node.js, sendo essa crucial para o funcionamento dos fluxos desenvolvidos (IBM, 2016).

Node.js é uma plataforma JavaScript implementado em sua maior parte em C e C++ buscando desempenho e baixo uso de memória, onde o foco é suportar processos com longo tempo de execução. Utiliza um modelo orientado a eventos de entrada e saída assíncronos onde oferece eficiência com chamadas não bloqueantes pois não ficam aguardando uma operação terminar para iniciar outra. Como um framework muito conhecido, um ecossistema amplo de bibliotecas de código aberto, possíveis de serem instaladas através do gerenciador de pacotes NPM. Dado o fato da grande maioria dos desenvolvedores web utilizarem o JavaScript para interações com o usuário, o Node.js é uma vantagem para programar a parte de servidor sem perda de desempenho (TILKOV; VINOSKI, 2010).

2.3.3 Cloudant NoSQL

Cloudant NoSQL é um DBaaS (Database as a Service) baseado no Apache CouchDB que possui um paradigma de banco de dados orientado a documentos (APACHE, 2016). O serviço fornece um conjunto de web services HTTP REST para manipular documentos em formato JSON (IBM, 2016). O diferencial deste banco de dados é a utilização da tecnologia Lucene Query Parser Syntax (APACHE, 2016) para realizar as buscas otimizadas através de Search Indexes, provendo desempenho nas consultas, porém uma desvantagem conhecida destes é a limitação de 200 resultados por consulta, contudo é possível realizar a técnica de paginação nesta a fim de obter o resto dos resultados (IBM, 2016).

3 Cloudant NoSQL

Para o desenvolvimento deste trabalho foi escolhido trabalhar com a técnica baseada em traços de personalidade, pois foi seguido o mesmo padrão da metodologia proposta e realizada pela pesquisadora NUNES (2008), porém o processo de captação de textos para a análise de personalidade foi automatizado segundo o método proposto pelo pesquisador YARKONI (2010), no qual é realizado a leitura de linguagem natural para responder o questionário Big Five.

Foi desenvolvido na plataforma Node-RED versão 0.13.4 (IBM, 2016), 4 web services REST (com autenticação HTTP e respostas JSON) que compõem todo o conjunto responsável pela integração dos serviços Language Translation, Personality Insights e o banco de dados Cloudant NoSQL, a fim de prover comunicação entre estes e as aplicações data manager (web) e iOS (ambas explicadas posteriormente).

Na figura 5 foi ilustrado o fluxo de funcionamento do web service recomendador de filmes com personalidades similares.

Figura 5 – Web service recomendador de filmes com personalidade similares no Node-RED

Esse web service ilustrado na figura 5, recebe no passo 1 a requisição HTTP do tipo GET com a personalidade de um usuário como argumento e no passo 2 realiza uma busca no banco de dados do sistema, utilizando o search index de filmes, para buscar todos eles e os armazenar dentro de um vetor. Já no passo 3, para cada um dos filmes presentes no vetor, a função compara a personalidade do usuário com todas as amostras de personalidade relacionadas ao filme corrente, realizando a somatória dos erros absolutos dos traços Big Five para cada uma delas, ilustrada na equação 1, onde é armazenada apenas a somatória de menor valor neste filme como uma propriedade do mesmo. Feito isso, no passo 4, a função classifica e ordena o vetor de filmes tendo como critério de ordenação o atributo de somatório dos erros absolutos, em ordem crescente, utilizando o algoritmo QuickSort. Por último, este vetor é retornado como resposta HTTP.

Equação 1 – Somatória do erro absoluto dos traços de personalidade Big Five

Na equação 1, δ é o valor da somatória dos erros absolutos onde xi é o traço atual da personalidade de um usuário e yi é o traço atual da amostra de personalidade de um filme. Na figura 6 foi ilustrado o fluxo de funcionamento do web service conversor de texto para personalidade em modelo Big Five.

Figura 6 – Web service conversor de texto para personalidades Big Five no Node-RED

Conforme a figura 6 demonstrou, o web service recebe no passo 1 a requisição HTTP do tipo POST com o texto escrito por um usuário como argumento e no passo 2 realiza um tratamento no texto de modo a retirar irrelevâncias, como espaços em branco, quebra de linhas e tabulações, preparando-o para conversão. No passo 3 é requisitado o serviço Language Translator para traduzir o texto tratado no passo anterior. Com a tradução já pronta, ela é submetida no passo 4 ao serviço Personality Insights, que por sua vez, realiza a conversão do texto para a personalidade identificado do usuário e a retorna no passo 5 como resposta HTTP.

Na figura 7 foi ilustrado o fluxo de funcionamento do web service indutor de cognição da base de dados.

Figura 7 – Web service indutor de cognição da base de dados no Node-RED

No fluxo apresentado na figura 7 observa-se que o web service recebe no passo 1 a requisição HTTP do tipo PUT com os feedbacks realizados por um usuário como argumento e no passo 2 é feita a extração somente dos positivos, e com isso, no passo 3 é realizado a busca dos filmes dessa extração e armazenados em um vetor. No decorrer do fluxo, mais precisamente no passo 4, para cada filme (presentes no vetor) que o usuário gostou, é criado um relacionamento entre a personalidade do usuário com este. Com isso, os filmes com novos relacionamentos, presentes no vetor, são atualizados no banco de dados durante o passo 5 e é retornado o estado dessa operação no passo 6 como resposta HTTP.

Na figura 8 foi ilustrado o fluxo de funcionamento do web service adicionador de filmes e usuários.

Figura 8 – Web service adicionador de filmes e usuários no Node-RED

O web service exibido na figura 8 recebe no passo 1 a requisição HTTP do tipo POST com um filme com personalidades vinculadas, ou um usuário com sua personalidade e no passo 2 é identificado qual o tipo de entidade a ser inserida no banco de dados no passo 3. Após feita a operação de inserção, é retornado no passo 4 o estado da mesma como resposta HTTP.

O sistema inicialmente foi desenvolvido para ser utilizado pela aplicação móvel, desenvolvida para a plataforma iOS 9.3.2 (APPLE, 2016), que é o sistema operacional para dispositivos móveis da Apple, sendo também uma plataforma ampla de desenvolvimento para os mesmos, ele gerencia o hardware e fornece as tecnologias necessárias para implementar as aplicações (APPLE, 2016). Vários fatores significativos como a grande popularidade das aplicações para dispositivos móveis, constantes pesquisas, abundância de informações disponíveis para os desenvolvedores e uma vibrante comunidade sendo formada em torno dessa tecnologia contribuem na tendência em novas pesquisas na área de engenharia de software para dispositivos móveis, logo os desenvolvedores tem atração em desenvolver nessa plataforma (NAGAPPAN; SHIHAB, 2016).

Esta aplicação móvel foi desenvolvida utilizando a linguagem pioneira da plataforma, Objective-C em sua versão 2.0, que possui paradigma de orientação a objetos e permite o uso dos frameworks Cocoa e CocoaTouch (APPLE, 2016) com sintaxe concisa e eficiente (KOCHAN, 2011).

A aplicação possibilita o usuário se conectar a uma rede social (Facebook ou Twitter), conforme a figura 9 demonstra, para possibilitar a busca de todo conteúdo de sua autoria através do Facebook SDK versão 4.12.0 (FACEBOOK, 2016) ou do Twitter Kit (Fabric) versão 2.1.1 (TWITTER, 2016). Após feito esta busca, ocorre uma validação para verificar se o total de palavras dos conteúdos captados é suficiente para realizar a análise da personalidade (mínimo de 150 palavras), conforme a figura 10 demonstra, e caso não seja, a aplicação interrompe o teste com uma mensagem de inelegibilidade de uso da mesma.

Sendo um usuário elegível, a aplicação requisita o web service do sistema de recomendação para converter estes conteúdos do usuário em sua personalidade e o adiciona no banco de dados através de outro web service (adicionador de filmes e usuários). Feito tal, a aplicação requisita o web service recomendador de filmes com personalidades similares a do usuário e recomenda as 10 melhores sugestões de filmes para ele assistir, com a opção de realização de um feedback positivo ou negativo através de um simples gesto de arraste de tela, conforme demonstrado na a figura 11.

Quando dado todos os feedbacks das sugestões propostas ao usuário, a aplicação encaminha estes resultados ao sistema de recomendação a fim de aumentar a capacidade cognitiva do mesmo, através do web service indutor de cognição da base de dados, e encerra o teste, retornando a tela inicial.

Figura 9 – Tela de login das redes sociais da aplicação Whamovie

Na figura 9 foi demonstrado a tela de login da aplicação, onde existem dois botões de acesso a redes sociais distintas, entre elas, o Facebook e o Twitter. A etapa de login é obrigatório para prosseguir com o uso da aplicação.

Figura 10 – Processo de análise de personalidade e busca de recomendações da aplicação Whamovie

Na figura 10 foi demonstrado o fluxo onde a aplicação executa a análise de personalidade juntamente com a busca de recomendações baseadas nela. No final do processo, é possível visualizar a classificação da análise e o número de recomendações encontradas.

Figura 11 – Exemplo das duas opções de feedback disponíveis pela aplicação Whamovie

Na figura 11 foi demonstrado como o gesto de arraste de tela é feito para realizar o feedback das sugestões propostas por um usuário qualquer, possibilitando o sistema a aumentar sua cognição através dos positivos.

Na figura 12 foi ilustrado a arquitetura do sistema por completo (back-end e front-end), deixando explicito as comunicações da aplicação iOS com os demais componentes presentes.

Figura 12 – Arquitetura completa do sistema Whamovie

Na figura 12 se observou que a aplicação iOS se comunica através de requisições HTTP com o back-end da aplicação, mais especificamente, com os web services desenvolvidos na ferramenta Node-RED, que por sua vez se comunica com todos os serviços utilizados na plataforma Bluemix, são eles: os serviços do Watson, Personality Insights e o Language Translator, e o banco de dados Cloudant NoSQL. A aplicação (iOS) também se comunica com as redes sociais Facebook e Twitter através dos kits de desenvolvimento (SDKs) providos por estas a fim de coletar informações de autoria do usuário.

3.1 Treinamento

Foi desenvolvido um data manager na linguagem PHP versão 5.6 (PHP, 2016) para incluir filmes com suas personalidades relacionadas no banco de dados Cloudant NoSQL para o sistema de recomendação. Inicialmente foi realizado um treinamento na aplicação através de um web crawler, ferramenta script implementada na linguagem PHP versão 5.6 (PHP, 2016) com o objetivo de percorrer websites e coletar dados (HEYDON; NAJORK, 1999), mais precisamente, dados do website IMDb (Internet Movie Database), que é a mais popular fonte de filmes do mundo (AMAZON, 2016), em conjunto com a OMDb API, que é um web service gratuito para obter informações de filmes do IMDb, como título, gêneros, entre outros (FRITZ, 2016).

Filmes foram escolhidos aleatoriamente para esta pesquisa, onde o web crawler foi programado para coletar até 12 reviews por filme juntamente com seus dados, analisando os seguintes critérios a partir da inserção de sua URL do website IMDb:

  • Reviews com classificação acima de 7 numa escala de 1 a 10, considerado uma classificação boa (THOMAS, 2016), apesar da maioria dos usuários que postam reviews não seguirem nenhum padrão de escala para tal classificação. O IMDb classifica os filmes com um método próprio (AMAZON, 2016) que não foi considerado para essa pesquisa;
  • A review possui total mínimo de palavras igual ou superior a 400;
  • Após identificada uma review com critérios aceitáveis (citados acima), foi buscado até 40 reviews complementares do mesmo usuário onde ocorreu a concatenação de todas elas com a originária, gerando um único texto.

O web crawler fez uma requisição ao web service conversor de texto para personalidade do sistema de recomendação enviando a concatenação de textos, desse usuário que classificou positivamente o filme, para o back-end e este retornou as personalidades relacionadas aos filmes, conforme ilustrado na figura 13.

Figura 13 – Fluxo de funcionamento do treinamento do sistema de recomendação

No fluxo da figura 13 ficou explicito que os dados do website IMDb foram consumidos pelo web crawler e OMDb API, com o intuito de gerar filmes com reviews relacionadas. Posteriormente parte dessa combinação, as reviews, são processadas pelo back-end, convertendo estas em personalidades, gerando a combinação de filmes com suas personalidades relacionadas. Já com essa nova combinação no data manager, este requisita o web service adicionador de filmes e usuários do back-end.

3.2 Teste

Foram realizados testes com indivíduos aleatórios na cidade de São Paulo, porém, antes destes uma entrevista de perfil foi conduzida com cada um dos usuários, com o intuito de identificar o gênero, idade, e frequência de uso de redes sociais, a fim de formalizar a pesquisa e descobrir uma elegibilidade prévia ao teste. O questionário foi composto com as seguintes perguntas, ilustradas no quadro 1.

Sexo: ( ) masculino ( ) feminino
Qual a sua idade?
Utiliza Facebook ou Twitter?
Qual a sua frequência de postagem na rede social?

Quadro 1 – Questionário pré-teste

Após o questionário, os usuários foram submetidos a entrar com seu perfil da rede social em um dispositivo iOS fornecido para o teste, e após a recomendação dos filmes foi realizado o feedback das sugestões para o sistema de recomendação com as opções:

  • Gostei (assistiria ou já assisti e gostei);
  • Não gostei (não assistiria ou já assisti e não gostei).

4 Resultados

Após a realização da carga inicial de 528 filmes no banco de dados da aplicação, foram inseridas 5780 amostras de personalidades e calculadas as médias e desvios padrões dos traços, no modelo Big Five, das mesmas, apresentados na tabela 1. Todas as amostras do treinamento estão representadas no gráfico da figura 14.

Tabela 1 – Estatística descritiva dos traços de personalidades das amostras do treinamento inicial da aplicação

OpenessConscientiousnessExtraversionAgreeablenessNeuroticism
Média91%50%29%22%36%
Desvio padrão9%19%16%17%18%

Figura 14 – Representação de todas as amostras de personalidade do treinamento da aplicação

Como visto na figura 14, foi constatada uma ampla diversidade de personalidades, porém estima-se um número máximo de amostras distintas igual a 1005, que seria a combinação em 5 dimensões (traços Big Five) com valores variando de 0 a 100.

Foi escolhido, de maneira aleatória, dois filmes da base de dados e realizado um estudo onde foram calculadas as médias e desvios padrões dos traços de personalidades de cada um deles, apresentados nas tabelas 2 e 3, mostrados graficamente na figura 15 e 16, respectivamente, com diferenças de várias amostras a fim de demonstrar a diversidade de personalidades para um único título.

Tabela 2 – Estatística descritiva dos traços de personalidades das amostras de um filme aleatório A da base de dados da aplicação

OpenessConscientiousnessExtraversionAgreeablenessNeuroticism
Média89%42%33%16%44%
Desvio padrão21%18%28%29%21%

Tabela 3 – Estatística descritiva dos traços de personalidades das amostras de um filme aleatório B da base de dados da aplicação

OpenessConscientiousnessExtraversionAgreeablenessNeuroticism
Média89%33%31%23%52%
Desvio padrão13%23%13%17%23%

Figura 15 – Representação de todas as amostras de personalidade de um filme aleatório A em radar

Figura 16 – Representação de todas as amostras de personalidade de um filme aleatório B em radar

Como visto nas figuras 15 e 16, foi constatada diversidade para ambos os filmes aleatórios, mas também se nota que o padrão generalizado de cada um dos gráficos é diferente, o que significa que as personalidades tinham gostos e preferencias diferentes.

O teste da aplicação foi realizado por 7 indivíduos, com média de idade de 33 anos e desvio padrão de 12,68% sendo 43% do sexo feminino e 57% do sexo oposto, o que resultou em 70 amostras de personalidades similares e 40460 comparações de similaridades pelo sistema de recomendação. Foram calculadas as médias e desvios padrões dos traços das personalidades, no modelo Big Five, das amostras de personalidade dos usuários, apresentados na tabela 4.

Tabela 4 – Estatística descritiva dos traços de personalidades das amostras dos usuários da aplicação

OpenessConscientiousnessExtraversionAgreeablenessNeuroticism
Média57%53%56%47%49%
Desvio padrão49%27%42%44%23%

O resultado final dos feedbacks dos usuários da aplicação mostra que 74% das recomendações foram positivas. Foi escolhida, aleatoriamente, uma comparação dos traços da personalidade no modelo Big Five que resultou em uma recomendação positiva para ser mostrada graficamente na figura 17, com os erros absolutos mostrados na tabela 5.

Tabela 5 – Estatística descritiva dos traços de personalidade de um usuário e uma amostra do banco de dados da aplicação de uma recomendação positiva

OpenessConscientiousnessExtraversionAgreeablenessNeuroticismPalavrasErro amostral
Usuário99%94%1%1%11%9660~ 6%
Amostra99%88%7%3%12%5186~ 7%
Erro absoluto0%6%6%2%1%--

Figura 17 – Representação da similaridade de personalidade entre um usuário e uma amostra de personalidade de um filme no cenário de uma recomendação positiva aleatória

Como ilustrado na figura 17, percebe-se visualmente duas personalidades muito similares no cenário de uma recomendação positiva, sendo o traçado azul o usuário e o laranja a amostra, o que significa que a somatória do erro absoluto desta recomendação é muito baixa, sendo uma das melhores sugestões disponível para este usuário em questão.

5 Conclusão

O trabalho mostrou que é possível desenvolver um sistema cognitivo de recomendações baseado nos traços da personalidade de uma pessoa onde o sistema coletou textos escritos pelo usuário a partir de uma rede social, analisou-os através de leitura de linguagem natural e mensurou a personalidade no modelo Big Five. O sistema comparou a similaridade da personalidade do usuário com as personalidades do banco de dados e classificou os 10 filmes com as personalidades mais similares onde a aplicação móvel os recomendou como sugestões ao usuário. O usuário escolheu entre as opções gostei ou não gostei para todas as 10 recomendações, fazendo que a aplicação relacionasse os filmes classificados positivamente com a personalidade do usuário e a inseriu no banco de dados.

O sistema utilizou dois serviços cognitivos do Watson, porém também apresentou cognição na funcionalidade de treinamento de personalidades a partir do web crawler no website do IMDb, onde o sistema ganhou conhecimento. O sistema conseguiu identificar personalidades similares e também aprendeu cognitivamente que o usuário gostou de um determinado filme a partir de seus feedbacks.

O desenvolvimento foi muito simples utilizando as novas tecnologias disponíveis no mercado, o Bluemix possibilitou fácil integração de todos os componentes do sistema, hospedagem e disponibilidade para um serviço web. O sistema integrou com facilidade os serviços do Watson, Personality Insights e Language Translation. O banco de dados Cloudant NoSQL foi uma ótima opção para pesquisa pois suportou os documentos com muitas informações no banco de dados sem a necessidade de modelagem dados. O Node-RED possibilitou a construção de web services sem a necessidade de implementar muitas linhas de código, tornando o fluxo da programação visível e de fácil entendimento e manutenção. O sistema interagiu com a aplicação móvel via web services com eficiência.

Os resultados foram positivos porem está claro que há erros para serem calculados, o serviço Personality Insights não realiza a análise psicológica com exatidão, não suporta o idioma português e os resultados foram mensurados estatisticamente com uma pequena população.

Baseado nos resultados dos testes realizados, são propostos os possíveis trabalhos futuros:

  • Expandir o modelo do sistema de recomendação atual para híbrido, onde outros fatores podem ser usados, além dos traços de personalidade, para recomendar sugestões aos usuários, com o objetivo de aumentar a eficácia e, consequentemente, melhorar ainda mais os resultados do sistema;
  • Adicionar uma vertente de feedbacks negativos ao indutor de cognição da base de dados a fim de melhorar a cognição do sistema através de uma filtragem ainda mais precisa das sugestões, utilizando pesos;
  • Incluir análise de sentimentos na aplicação iOS para tornar possível a mensuração do humor atual do usuário e utiliza-lo como outro fator no sistema de recomendação híbrido (proposto no primeiro item);
  • Realizar um estudo sobre padronização de classificação de reviews de filmes, feitas pelos usuários do website IMDb;
  • Utilizar outras técnicas e métodos estatísticos a fim de medir precisamente, e mais detalhadamente, os resultados do sistema de recomendação atual, fazendo o uso de pilares da psicologia para validar as similaridades das personalidades e minimizar o erro acumulado das sugestões com alguns ajustes no serviço Personality Insights;
  • Utilizar técnicas da área de Inteligência Artificial, mais precisamente, aprendizagem não supervisionada para realizar agrupamentos a fim de satisfazer uma préfiltragem de recomendações e, consequentemente, otimizar a eficiência do sistema.

6 Referências

ADOMAVICIUS, G.; TUZHILIN, A. Toward the next generation of recommender systems:
A survey of the state-of-the-art and possible extensions
. Knowledge and Data Engineering, IEEE Transactions on, IEEE, v. 17, n. 6, p. 734 – 749, 2005.

AMAZON. What is IMDb?. 2016. Acesso em: 31/05/2016. Disponível em:
http://www.imdb.com/help/show_leaf?ratingsexplanation.

AMAZON. IMDb Weighted Average Ratings. 2016. Acesso em: 25/05/2016. Disponível em:
http://www.imdb.com/help/show_leaf?about.

ANDRADE, J. M. de. Evidências de validade do inventário dos cinco grandes fatores de personalidade para o Brasil. 2008.

APACHE. CouchDB. 2016. Acesso em: 19/05/2016. Disponível em:
http://couchdb.apache.org/.

APACHE. Lucene Query Syntax. 2016. Acesso em: 19/05/2016. Disponível em:
http://lucene.apache.org/core/4_3_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html.

APACHE. UIMA. 2016. Acesso em: 08/08/2016. Disponível em:
https://uima.apache.org/.

APPLE. Developing for iOS 9. 2016. Acesso em: 31/05/2016. Disponível em:
https://developer.apple.com/ios/.

APPLE. About the iOS Technologies. 2016. Acesso em: 19/05/2016. Disponível em:
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/Introduction/Introduction.html.

APPLE. Object-Oriented Programming with Objective-C. 2016. Acesso em: 20/05/2016.
Disponível em:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/OOP_ObjC/Introduction/Introduction.html.

BLACKSTOCK, M.; LEA, R. Toward a distributed data flow platform for the web of things (distributed Node-RED). In: ACM.Proceedings of the 5th International Workshop on Web of Things. [S.l.], 2014.

BUENO, V. M. S.; CAMARGO, A. A. R. Lazer, a vida além do trabalho para uma equipe de futebol entre trabalhadores de hospital. Rev Latino-Am. Enfermagem, SciELO Brasil, v. 11, n. 4, p. 490 – 8, 2003.

CALVET, O. A. Direito ao lazer nas relações de trabalho. [S.l.]: Editora LTr, 2006.

COSTA, P. T.; MACCRAE, R. R. Revised NEO personality inventory (NEO PI-R) and NEO five-factor inventory (NEO FFI): Professional manual. [S.l.]: Psychological Assessment Resources, 1992.

FACEBOOK. Facebook SDK for iOS. 2016. Acesso em: 31/05/2016. Disponível em:
https://developers.facebook.com/docs/ios/

FRITZ, B. OMDb API. 2016. Acesso em: 31/05/2016. Disponível em: http://omdbapi.com/.

GANDOUR, F. O que muda com a computação cognitiva?. Revista da ESPM | setembro / outubro, 2014.

GOMEZ-URIBE, C. A.; HUNT, N. The Netflix Recommender System: Algorithms, Business Value, and Innovation. ACM Transactions on Management Information Systems (TMIS), ACM, v. 6, n. 4, 2015.

GRECO, F. IBM Cognitive Computing. 2015.

HEYDON, A.; NAJORK, M. M. A scalable, extensible web crawler. World Wide Web. Springer. v. 2, n. 4, p. 219 – 229, 1999.

IBM. Bluemix Catalog. 2016. Acesso em: 30/05/2016. Disponível em:
https://console.ng.bluemix.net/catalog/

IBM. Bluemix Docs. 2016. Acesso em: 19/05/2016. Disponível em:
https://console.ng.bluemix.net/docs/overview/glossary/index.html#glossb.

IBM. Bluemix Public. 2016. Acesso em: 19/05/2016. Disponível em:
https://console.ng.bluemix.net/docs/public/index.html#public.

IBM. Cloudant Search Indexes. 2016. Acesso em: 19/05/2016. Disponível em:
https://docs.cloudant.com/search.html.

IBM. Language Translation Docs. 2016. Acesso em: 20/05/2016. Disponível em:
https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/languagetranslation/.

IBM. Node-RED. 2016. Acesso em: 19/05/2016. Disponível em: http://nodered.org/.

IBM. Personality Insights Demonstration. 2016. Acesso em: 19/05/2016. Disponível em:
https://personality-insights-livedemo.mybluemix.net.

IBM. Personality Insights Docs. 2016. Acesso em: 19/05/2016. Disponível em:
http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/personalityinsights/.

IBM. Personality Insights Science. 2016. Acesso em: 20/05/2016. Disponível em:
https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/personalityinsights/science.shtml.

KOCHAN, S. G. Programming in Objective-C. [S.l.]: Addison-Wesley Professional, 2011.

KOREN, Y.; BELL, R.; VOLINSKY, C. Matrix factorization techniques for recommender systems. Computer, IEEE, n. 8, p. 30 – 37, 2009.

LALLY, A. et al. Watson Paths: scenario-based question answering and inference over unstructured information. Yorktown Heights: IBM Research, 2014.

MAIRESSE, F.; WALKER, M. Words mark the nerds: Computational models of personality recognition through language. In: Proceedings of the 28th Annual Conference of the Cognitive Science Society. [S.l.: s.n.], 2006. p. 543 – 548.

NAGAPPAN, M.; SHIHAB, E. Future trends in software engineering research for mobile apps. In: 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering SANER16. [S.l.: s.n.], 2016.

NUNES, M. A. S. N. Recommender systems based on personality traits. Tese (doutorado) – Université Montpellier II – Sciences et Techniques du Languedoc, 2008.

PHP. Migrating from PHP 5.5.x to PHP 5.6.x. 2016. Acesso em: 31/05/2016. Disponível em:
http://php.net/manual/en/migration56.php.

RESNICK, P.; VARIAN, H. R. Recommender systems. Communications of the ACM, ACM, v. 40, n. 3, p. 56 – 58, 1997.

THOMAS, A. IMDb Movie Rating Scale Proposal. 2016. Acesso em: 25/05/2016.
Disponível em:
http://www.dr-lex.be/info-stuff/movieratings.html.

TILKOV, S.; VINOSKI, S. Node.js: Using JavaScript to build high-performance network programs. IEEE Internet Computing, IEEE Computer Society, v. 14, n. 6, 2010.

TWITTER. Twitter for iOS. 2016. Acesso em: 31/05/2016. Disponível em:
https://fabric.io/kits/ios/twitterkit.

YARKONI, T. Personality in 100,000 words: A large-scale analysis of personality and word use among bloggers. Journal of research in personality, Elsevier, v. 44, n. 3, p. 363 – 373, 2010.


Recursos para download


Comentários

Acesse ou registre-se para adicionar e acompanhar os comentários.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing
ArticleID=1039148
ArticleTitle=Sugestões de entretenimento usando computação cognitiva
publish-date=10192016