Você está na página 1de 10

Uma Investigao Literria Sobre Recomendao em Tempo

Real com Dados Massivos

Fernanda Almeida Duarte, Rafael de Oliveira Ribeiro

Curso de Bacharelado em Sistemas de Informao - Universidade Federal de Minas


Gerais
fernanda.aduarte@hotmail.com, radeori@gmail.com

Abstract. In an era that people are running, the information flying and every
moment need to be captured and shared, the Computer Science starts to care
about answering this request, called Big Data. The Tencent Inc. (the biggest
company of Web services in China, the most populous country), under this
context, developed the TencentRec, a massive data real-time recommender
system, for optimizing the satisfaction of the users of their applications.
Based on an article that presents this system, we decided to do a research in
the literature about related articles. This research was part of a study about
the validity and quality of the technologies employed on TencentRec and its
motivations.
Resumo. Em uma poca em que as pessoas correm, as informaes voam e
cada momento registrado e compartilhado, a Computao se preocupa com
atender a essa demanda, chamada de Big Data. A Tencent Inc. (maior
empresa de servios Web da China, o pas mas populoso), nesse contexto,
desenvolveu o TencentRec, um sistema de recomendao em tempo real de
dados massivos, para otimizar a satisfao dos usurios de suas aplicaes.
Tomando por base um artigo que apresenta esse sistema, decidimos fazer uma
pesquisa na literatura acadmica por artigos relacionados. Essa pesquisa
comps ento uma investigao sobre a validade e qualidade das tecnologias
do TencentRec e suas motivaes.

1. Introduo
O presente trabalho, desenvolvido para a disciplina de Bancos de Dados Avanados, tem
por objetivo realizar um Survey em torno do artigo [Huang et al. 2015], que nos
apresenta um sistema desenvolvido para resolver o problema de Recomendao em um
contexto de tempo real e dados massivos. Como apresentaremos melhor posteriormente,
o tempo real associado a dados massivos faz com que tenhamos uma quantidade enorme
de dados a serem processados em uma pequena unidade de tempo e esse processamento
ainda deve gerar uma resposta acurada para a recomendao.

1.1. Survey
De acordo com nosso conhecimento prvio e entendimento sobre a proposta do
trabalho, bem como uma pesquisa na literatura sobre artigos que focam em analisar
ideias apresentadas em outros artigos, definimos um conceito de Survey para guiar
nosso trabalho. De forma geral, como descrevemos no ttulo: uma investigao
literria.
De maneira prtica, o que pretendemos foi fazer uma busca por artigos
cientficos que tivessem relao com o artigo que tomamos como base, [Huang et al.
2015]. Depois ser melhor dissertado, no tpico Metodologia, sobre como realizamos
de fato esse trabalho, mas aqui j importante destacar que, a partir da leitura da
publicao principal, definimos seus pilares que eram de nosso interesse e traamos
ento objetivos que teramos ao analisar comparativamente esse artigo com outros.

2. Objetivos
2.1 Apresentao do artigo base
Como j foi dito, o trabalho de [Huang et al. 2015] era apresentar um sistema, o
TencentRec, desenvolvido para lidar com 3 problemas computacionais em interseo:
recomendao, tempo real e grande volume de dados (big data). Para entender melhor o
interesse desse desenvolvimento, precisamos conhecer o contexto desse sistema.
A Tencent, que proprietria desse software, a maior companhia de servios
de internet na China e em 2011 tornou-se a quinta maior do mundo nesse ramo. Por
conta disso, os produtos associados a essa empresa geram cerca de 1 PB de dados e seus
bancos de dados tem cerca de 10 bilhes de solicitaes por dia.
Nesse contexto, j ficam bem claros os motivos para a Tencent desejar um bom
software para lidar com grande volume de dados em pouco tempo. A questo da
recomendao acurada vem principalmente do lema da empresa: Ns buscamos criar
valor para nossos usurios (em traduo livre de We aim to create value for our
users) e do contexto atual da Web, em que os servios esto cada vez mais interessados
em entender seus usurios e recomendar ento produtos que estejam de acordo com seus
gostos (tambm como estratgia de negcio).
O artigo, a partir de tudo isso, explica ento as caractersticas do TencentRec,
que utiliza em sua arquitetura o Apache Storm para lidar com os problemas da
escalabilidade e velocidade e os detalhes do algoritmo de recomendao. Como o
presente trabalho escrito como artefato para uma disciplina de Banco de Dados,
focaremos nessa arquitetura, em detrimento de explicaes e anlises do algoritmo de
recomendao.

2.2 Definio de critrios para a investigao literria


Os critrios que guiaro nossa comparao entre publicaes so baseados nas tcnicas
utilizadas pelos diferentes sistemas e propostas para resolver os problemas relacionados
a big data e tempo real em processamento de dados. Dessa forma, o principal objetivo
validar a soluo do TencentRec, seguido de compar-la com outras, apontando
semelhanas e diferenas. Para isso, descreveremos antes essa soluo base.
A primeira caracterstica (praticamente obrigatria) dessa arquitetura
computacional a clusterizao fsica. Como um de seus objetivos a velocidade,
talvez fizesse sentido reunir todos os dados em apenas uma mquina, mas, por conta do
grande volume de dados (principalmente), a soluo envolve a utilizao de milhares de
mquinas em conjunto.
Em anlise superficial, essa caracterstica, apesar de dificultar a soluo da
velocidade, resolveria a escalabilidade. Um problema que surge aqui vem da
sincronizao e do paralelismo das mquinas, para realmente comportar um volume
massivo de dados e, mais do que isso, ser flexvel variao desse volume. E surge a
necessidade tambm de ser flexvel a falhas, uma vez que um cluster dessa proporo
tem uma probabilidade alta de ter falhas e o sistema deve ser tolerante a elas.
Praticamente todos esses problemas so resolvidos pela simples adoo do
Apache Storm como modelo de estrutura e gerenciamento desse paralelismo de dados.
Alm disso, ele tambm conta com ferramentas para tratar o paralelismo de
processamento, auxiliando, ao mesmo tempo, a soluo do problema de tempo real.
Dessa forma, explicaremos como essa arquitetura funciona, de maneira geral, para
finalmente chegarmos a nossos critrios de comparao.

2.2.1 Apache Storm


O Storm, alm de lidar com processamento em tempo real, permitir a adio/remoo
de mquinas do cluster e ter uma rpida recuperao a falhas, tambm simples de se
programar, permite diferentes linguagens e tem uma comunidade de cdigo aberto ativa
que assiste bem. Essas caractersticas tornaram-no a opo dos desenvolvedores da
Tencent, ainda que tivesse concorrentes no processo de deciso.
Em sua estrutura geral, o Storm delega papis para as diferentes mquinas que
compem um cluster e, para exemplificar, uma clula dessa organizao seria dessa
forma:

Figura 1. Estrutura geral de uma clula do Storm


Na estrutura mais interna, cada Worker um processo, em uma mquina, sendo que um
Supervisor, que executado separadamente, pode ter Workers em uma ou mais
mquinas e responsvel por gerenciar quais desses processos vo ou no trabalhar.
Em um nvel logo superior, temos a figura do Nimbus. A principal funo desse
elemento alocar os Workers sob a gerncia dos devidos Supervisors, de forma a
distribuir o cdigo a ser processado pela clula do cluster.
Por fim, o trabalho do Zookeeper Cluster coordenar as atividades dos
Supervisors com o Nimbus. Ele faz isso guardando os estados do trabalho de ambos, de
forma que eles prprios no tem esse registro e, caso eles falhem, o Zookeeper Cluster
simplesmente restaura-os e eles voltam a trabalhar como se nada tivesse acontecido; eis
aqui a caracterstica que garante a rpida recuperao a falhas do TencentRec.
Essa diviso em nveis, em que um deles responsvel por processar os dados
recebidos enquanto o outro gerencia a entrada e sada desses, bem como a sincronia
entre as subclulas e os processos, a chave para que o sistema seja eficiente em tempo
real, pois o paralelismo cuida da otimizao enquanto cria-se uma tolerncia a falhas
(um dos principais problemas do paralelismo fsico). Outro problema comum a
concorrncia no acesso aos dados e, para solucion-lo, o TencentRec utiliza a tecnologia
TDAccess (Tencent Data Access), que ser explicada a seguir.

Figura 2. Estrutura de acesso aos dados

Na explicao que consta no artigo, seguimos apenas pelo design da gerao da


recomendao, ou seja, os Producers na figura so as aplicaes Web, enquanto os
Consumers os clusters que foram apresentados anteriormente. Seguindo as setas cinzas,
assim como na figura anterior, temos a primeira etapa da comunicao, em que
Consumer ou Producer deve informar ao Master Server que deseja ler ou escrever
dados no Data Server.
O Master Server aloca ento o solicitante a um dos Data Servers, de forma a
balancear o acesso a eles. Sobre esses, uma caracterstica importante a presena de um
cache de seus dados, a fim de permitir o acesso sem restries, at em casos de falha na
conexo ou problemas com o tempo real. Alm disso, nota-se, pela figura, que seus
dados so divididos em parties, para melhorar ainda mais a concorrncia de acesso.
Por ltimo, cabe clarificar detalhes do Master Server. Alm das funes j
descritas, ele semelhante ao Zookeper Cluster, pois cuida dos estados dos Data
Servers, pela mesma vantagem adquirida na estrutura apresentada anteriormente. E um
ltimo detalhe a existncia de dois Master Servers: isso acontece para que o em
standby possa substituir o active, no caso deste falhar.
Existe ainda um detalhamento da TDStore (tecnologia responsvel por
administrar o armazenamento de dados em si), bem como a explicao do
funcionamento do algoritmo de recomendao, mas o primeiro serve mais como suporte
a esse algoritmo e, como j colocamos, no entraremos em detalhes sobre por no ser o
foco da anlise, nem da disciplina responsvel pelo presente artigo. De forma geral, s
essencial notar que essa parte tambm cumpre com sua meta, de ser uma recomendao
acurada, satisfazendo aos usurios.

3. Metodologia
Neste tpico, pretendemos retomar rapidamente o que foi apresentado at ento e
introduzir os prximos contedos, que edificam nossos resultados, para concretizarmos
uma concluso. Para tornar essa elucidao mais dinmica, seguiremos a cronologia real
da execuo do trabalho.
Aps recebimento da proposta, o primeiro passo foi a escolha do artigo, quando
chegamos ao [Huang et al. 2015], em meio a uma lista de possibilidades. J tnhamos
definido que faramos um Survey e o passo seguinte foi ler e entender o artigo, para
planejar ento os prximos passos.
Importante notar que, por uma questo de avaliao por parte da disciplina
relacionada proposta, dividimos esse cronograma por uma entrega intermediria e uma
final. A intermediria contou com todos os passos aqui mencionados, incluindo o
planejamento do que seria feito aps entender o artigo. A final inclui o resto tambm,
sobre o qual ser dito agora.
O planejamento feito decidiu que pesquisaramos ento por artigos que tratassem
de temas afins ao base, que validaramos a publicao sobre o Tencent e compararamos
o que seria analisado da soluo com as solues encontradas na literatura. Essa anlise
foi desenvolvida juntamente escrita das primeiras partes deste trabalho (at o tpico
anterior), para dar base ao referencial terico e suas decorrncias.
Pesquisamos ento por vrios artigos, selecionamos trs que tinham mais pontos
de interseo com o [Huang et al. 2015] e seguiu-se suas anlises individuais,
comparativas (resultados) e o que concluamos a partir de toda essa investigao
literria. Por fim, importante notar que o Resumo foi escrito aps todo esse processo e,
em seguida, foi traduzido para o Abstract.

4. Referencial Terico
4.1. Data-intensive applications, challenges, techniques and technologies: A survey
on Big Data
Big Data tem se transformado em um assunto muito popular atualmente. A quantidade
de dados produzidas diariamente no mundo vem aumentando, fazendo com que lidar
com tamanho volume de dados se torne mais complexo, com desafios na captura,
anlise e visualizao de dados.
O artigo Data-intensive applications, challenges, techniques and technologies: A
survey on Big Data tem como objetivo apresentar uma viso detalhada sobre Big Data,
falando sobre aplicaes, oportunidades, desafios, tcnicas e tecnologias para lidar com
problemas relacionados a Big Data. Aqui utilizaremos como base esse artigo para
analisar pontos do TencentRec.
Sobre acesso a dados, Big Data deve priorizar ao mximo o processo de
acessibilidade a esses, permitindo acesso fcil e imediato, para permitir um processo
efetivo de descoberta de conhecimento numa anlise mais aprofundada dos dados. No
TencentRec utilizado o TDAccess que utiliza mecanismos para permitir o uso dos
dados por diversos tipos de aplicaes com diversas caractersticas, fornecendo uma
interface unificada para coleta e distribuio de dados, separando a fonte do sistema de
processamento de dados. Dessa forma, TDAccess permite o consumo de dados em
tempo real por diversos sistemas de processamento.
Aplicaes em clusters de computao altamente escalveis possuem alta taxa
de concorrncia e transferncia de dados no servidor, atividades que os sistemas de
armazenamento atuais no realizam muito bem, de acordo com [Chen e Zhang 2014].
Em TencentRec, a ferramenta utilizada para tratar deste aspecto foi o Apache Storm, que
ter seu uso no TencentRec mais detalhado a frente.
[Chen e Zhang 2014] dizem que so necessrias plataformas para realizar Big
Data, sendo que as ferramentas atuais concentram-se em trs classes: ferramentas de
processamento em lote, de processamento de fluxo e de anlise interativa. O Storm,
utilizando pelo TencentRec se encontra na categoria de plataformas analticas de dados
em grande escala.
Sobre as Tcnicas de Big Data citadas por [Chen e Zhang 2014], TencentRec faz
uso da tcnica estatstica, que uma tcnica usada para explorar as correlaes e
relaes casuais entre diferentes objetos. Na camada de algoritmo do TencentRec
utilizada tal tcnica em Data Statistcs, como demonstra a figura abaixo. A anlise dos
dados do TencetRec em grande parte realizada por tcnicas de sistemas de
recomendao, como filtro colaborativo e no sero abordadas neste trabalho.
Figura 3: Topologia do framework do TencentRec.

Sobre ferramentas para processamento de dados massivos em tempo real [Chen e Zhang
2014] destacam que o Hadoop uma opo boa para processar grande quantidades de
dados em paralelo, porm ele no foi projetado para processamento em lote, no sendo
uma ferramenta para tempo real, devido a sua alta latncia, que, como j citado, deve
ser muito baixa para aplicaes em tempo real. Nessas aplicaes necessrio um
processamento de fluxo para anlises poderoso. As ferramentas indicadas como ideais
para tais aplicaes por [Chen e Zhang 2014] so SQLstream, Strom e StreamCloud,
que diz serem projetadas especialmente para anlise em fluxo de tempo real. Nota-se
que o Storm est dentre as citadas. A tabela abaixo, tambm apresentada por [Chen e
Zhang 2014] traz informaes relevantes sobre a aplicao de cada uma dessas
ferramentas.

Figura 4: Comparao entre ferramentas de Big Data em tempo real.

[Chen e Zhang 2014] discorrem sobre o Storm especificamente, porm esta


ferramenta ser abordada quando tratarmos do artigo Storm @Twitter, o qual apresenta
a ferramenta de forma mais detalhada.

4.2. Storm @Twitter


Este o principal artigo para a validao do uso do Storm no TencentRec e,
consequentemente, validao do prprio TencentRec e do artigo sobre ele. [Toshniwal
2014] traz a histria de criao do Storm, dentro do Twitter, bem como sua evoluo e
especificaes. Os detalhes mais tcnicos sero omitidos, pois pouco contribuem com
essa anlise comparativa, mas trataremos do que pertinente a essa validao.
O primeiro ponto interessante justamente sua criao. Inicialmente, o Storm
surgiu em uma companhia chamada BackType, mas essa foi comprada pela Twitter e,
dentro de uma empresa maior, o Storm se desenvolveu e cresceu para algo prximo do
que temos hoje. Sabe-se que o Twitter um dos servios Web mais utilizados no
mundo, alm de ser um dos maiores e mais importantes fornecedores de dados para
pesquisas de logs.
Ainda nesse artigo, de 2014, apresentado que o Storm era utilizado ou testado
por mais de 60 companhias, entre elas: Yahoo! e Baidu. A Alexa Internet Inc., servio de
internet da Amazon que estima a popularidade de servios desse tipo, coloca que o
Baidu o 4 servio mais popular, enquanto o Yahoo fica em 5, enquanto o QQ (da
Tencent) fica em 8 e o Twitter agora caiu para 14. Todos esses dados para mostrar que
esses servios, que dependem do Storm, tem bastante impacto na Web.
Sobre as caractersticas desse sistema, o artigo de [Toshniwal 2014] lista e
explica as seguintes: escalvel, tolerante a falhas, extensvel (flexvel), eficiente e fcil
de se administrar. Com isso, validamos que de fato o Storm uma tima escolha para
uma Tencent, uma vez que sua demanda por escalabilidade e tolerncia a falhas
diretamente atendida, sua demanda por flexibilidade de produtos e eficincia (para lidar
com o fluxo de dados em tempo real) contemplada e ainda temos o adicional de ser
fcil de se administrar; com tantos produtos e dados, uma caracterstica muito bem-
vinda. O autor do artigo ainda coloca, sobre essa ltima, que um requisito crtico
para uma aplicao como o Twitter e isso faz-se verdade para as aplicaes da Tencent
tambm, como pode ser comparado pelo tpico 2.1, em que dissertamos sobre a
grandeza de seu pblico.

4.3. StreamRec: a real-time recommender system


Este artigo tem um grande foco nas tcnicas utilizadas para compor o cdigo do sistema
StreamRec, que justamente a parte que decidimos abordar menos na anlise do
[Huang 2015]. Apesar disso, [Chandramouli 2011] apresenta rapidamente alguns
conceitos que esto envolvidos no sistema apresentado e essa apresentao que nos
permite comparar ambos artigos.
Primeiramente, importante notar que o StreamRec se baseia no software
Microsoft StreamInsight, de forma muito semelhante que o TencentRec se baseia no
Apache Storm. Uma pena que, por conta do sistema da Microsoft no ser open source,
no temos detalhes de sua implementao para comparar com o Storm, restando-nos
apenas investigar o que foi publicado no artigo em questo.
Como o ttulo diz, o StreamRec tambm um sistema de recomendao em
tempo real e os autores colocam que isso s possvel devido ao carter incremental
dos dados em stream, ainda que isso exija tambm um processamento desses dados em
tempo real. Sobre esse, percebemos que a base do algoritmo semelhante ao
TencentRec, utilizando Collaborative Filtering (CF).
Prximo a essa questo do processamento, temos algumas informaes sobre o
armazenamento dos dados, em que h uma preocupao em manter um equilbrio entre
dados novos e antigos, mas com maior prioridade aos dados novos. Ainda que no
tenhamos abordado essa informao neste artigo, o TencentRec tem uma preocupao
ainda maior sobre o equilbrio, justificando que dados mais antigos tambm tem o valor
de manter certa estabilidade nas recomendaes, evitando em parte que uma
tendncia de momento interfira drasticamente em todas as recomendaes.
Uma caracterstica apresentada que j nos familiar trata do modelo de
inscrio e mensagens, introduzida no tpico 2.2.1 do presente trabalho, quando
falamos do TDAccess. Assim como o TencentRec, o StreamRec tambm possibilita que
produtores ou consumidores de dados tenham um canal de comunicao fixo com o
servidor (a inscrio) e que, quando necessrio, enviem mensagem solicitando acesso de
leitura ou escrita a esses dados. H ainda uma boa dinmica para o desligamento dessas
inscries e essas questes so apresentadas de maneiras bem distintas nos artigos,
ainda que a funcionalidade seja equivalente.
Por fim, um aspecto do StreamRec que mencionado, mas pouqussimo
explicado, diretamente, que tambm se trata de um sistema com boa escalabilidade,
sendo que todas suas operaes so paralelizveis. Tantas semelhanas nos fazem
questionar o que o TencentRec traz de inovador e discutiremos isso melhor nos
resultados, com base em alguns detalhes e conhecimentos prprios.
5. Resultados
O artigo TencentRec: Real-time Stream Recommendation in Practice apresentou os
principais pontos sobre um sistema de processamento de dados massivos em tempo real,
destacando a forma de acesso, processamento e armazenamento dos dados.
O uso da ferramenta Storm para uso no TencentRec mostrou-se uma escolha
apropriada, por ser um sistema de computao em tempo real, escalvel, tolerante a
falhas e fcil de operar, de acordo com as referncias consultadas, tomando como base
os artigos de [Chen e Zhang 2014, Toshniwal 2014], principalmente. O primeiro foi
mais comparativo, enquanto o segundo trouxe o contexto histrico e de evoluo do
Storm para apoiar essa escolha.
O ltimo foi o mais destoante. O artigo de [Chandramouli 2011], ao apresentar o
sistema StreamRec, trouxe vrios pontos de semelhana entre esse sistema e o
TencentRec. So tantas semelhanas de boas ideias e caractersticas que surgiu o
questionamento sobre o TencentRec ser to bom como foi apresentado, uma vez que seu
artigo foi publicado cerca de 4 anos aps o referente ao StreamRec.
Aps revisar ambos artigos, decidimos dissertar e argumentar neste tpico de
Resultados sobre o que acreditamos. possvel que o sistema mais novo tenha se
inspirado no mais antigo, ainda mais que tenham nomes semelhantes. Um dos principais
pontos aqui que, apesar de oferecer vantagens parecidas, o StreamRec depende de um
software proprietrio da Microsoft, enquanto o TencentRec depende do Storm, que hoje
compe os servios Apache e de cdigo livre.
Alm disso, o sistema da Tencent aproveita melhor suas tecnologias (como lidar
melhor com o histrico de recomendaes), foi validado em uma gama maior de
aplicaes e est em constante evoluo, como foi apresentado pelos artigos que o
suportaram em nosso Survey e pelo prprio artigo de sua apresentao. Com isso,
acreditamos que eles sejam como concorrentes, ambos proprietrios e de uso exclusivo
de suas empresas desenvolvedoras (pelo menos por enquanto) e que, enquanto o
TencentRec de uso mais abrangente e flexvel, o StreamRec atende a um propsito
mais especfico.

6. Concluso
Foi encontrada grande dificuldade em encontrar artigos sobre aplicaes semelhantes ao
TencentRec, demonstrando que tais tecnologias podem no possuir boa documentao
cientfica sobre sua construo para acesso pela meio acadmico.
O TencentRec um sistema de recomendao de dados massivos em tempo real
baseado em tecnologias slidas, como o Apache Storm e tecnologias de uma corporao
gigante, a Tencent Inc, passando a impresso de ser uma aplicao robusta. Esse fato
consolidado pelo volume de dados que a Tencent lida por dia nas tecnologias utilizadas
pelo TencetRec e pela firme reputao do Apache Storm na comunidade.
Ao comparar TencetRec com o StreamRec, sistema de objetivo parecido, porm
construdo cerca de quatro anos antes, o primeiro, apesar de mais novo, no possui
muitas inovaes, apresentando vrias semelhanas com o StreamRec. Portanto
acreditamos que o TencetRec, apesar de cumprir seu papel, no foi um desenvolvimento
que se destacou dos demais.
Apesar disso, o TencentRec um sistema de recomendao que permite o uso
por diversas bases de dados, uma vez que o TDAccess lida com os dados para tornar
possvel o consumo de dados em tempo real por diversos sistemas de processamento,
sendo caracterizado como um sistema flexvel.

Referncias
Huang, Y. Cui, B. Zhang, W. Jiang, J. Xu, Y. TencentRec: Real-time Stream
Recommendation in Practice. In: Proceedings of the 2015 ACM SIGMOD
International Conference on Management of Data, p. 227-238, 2015. Disponvel:
http://dl.acm.org/citation.cfm?
id=2742785&dl=ACM&coll=DL&CFID=697951056&CFTOKEN=72344190.
Outubro/2016.
Chen, C.L. Philip.Zhang, Chun-Yang. Data-intensive applications, challenges,
techniques and technologies: A survey on Big Data. In: Information Sciences, p.
314-347, 2014. Disponvel: http://www-sciencedirect-
com.ez27.periodicos.capes.gov.br/science/article/pii/S0020025514000346.
Outubro/2016.
Toshniwal, Ankit.Taneja, Siddarth. Shukla, Amit. Ramasamy, Karthik. Patel, Jignesh
M.Kulkarni, Sanjeev. Jackson, Jason. Gade, Krishna. Fu, Maosong. Donham, Jake.
Bhagat, Nikunj. Mittal, Sailesh. Ryaboy, Dmitriy. Storm @Twitter. In: Proceedings
of the 2014 ACM SIGMOD International Conference on Management of Data, p.
147-156, 2014. Disponvel:
http://dl.acm.org.ez27.periodicos.capes.gov.br/citation.cfm?id=2595641.
Outubro/2016.
Chandramouli,Badrish. Levandoski, Justin J. Eldawy, Ahmed. Mokbel, Mohamed F.
StreamRec: a real-time recommender system. In: Proceedings of the 2011 ACM
SIGMOD International Conference on Management of data, p. 1243-1246, 2011.
Disponpivel: http://dl.acm.org.ez27.periodicos.capes.gov.br/citation.cfm?
id=1989465. Outubro/2016.
Universidade Federal do Par. Modelo de artigo no formato SBC. Disponvel:
http://www.aedmoodle.ufpa.br/mod/resource/view.php?id=9286. Outubro/2016

Você também pode gostar