• Nenhum resultado encontrado

Apache Mahout ´e uma biblioteca java de aprendizagem de m ´aquina, de c ´odigo aberto, iniciada em 2008 como um subprojeto da Apache Lucene, outra ferramenta de c ´odigo aberto gerenciada pela Apache Software Foundation, amplamente utilizada em problemas de busca e recuperac¸ ˜ao da informac¸ ˜ao (OWEN et al., 2011), (GIACO- MELLI, 2013). Trata-se de uma ferramenta altamente escal ´avel que tem como prin- cipal objetivo atuar como uma m ´aquina de recomendac¸ ˜ao (de filtragem colaborativa), clusterizac¸ ˜ao e classificac¸ ˜ao.

2.5.1 T ´ecnicas de Recomendac¸ ˜ao

O m ´odulo de recomendac¸ ˜ao do Mahout divide-se em quatro variac¸ ˜oes principais (OWEN et al., 2011):

Baseada em usu ´ario: Consiste na descoberta da semelhanc¸a entre os dife-

rentes usu ´arios do sistema. O objetivo ´e recomendar itens bem avaliados por pessoas semelhantes ao usu ´ario alvo.

Baseada em conte ´udo: Objetiva filtrar os itens que receberam melhor avaliac¸ ˜ao

por parte do usu ´ario para posteriormente identificar itens similares a serem re- comendados.

Slope-One: Uma t ´ecnica de recomendac¸ ˜ao baseada em item bastante r ´apida e

simples. Estima prefer ˆencias para novos itens com base na diferenc¸a m ´edia do valor de prefer ˆencia entre um novo item e outros itens bem avaliados pelo usu ´ario. Pode ser aplicada quando os usu ´arios atribuem determinadas classificac¸ ˜oes aos itens (e n ˜ao apenas prefer ˆencias de vari ´aveis booleanas). • Baseado em modelo: Tem por objetivo construir um modelo de prefer ˆencias

do usu ´ario com base em prefer ˆencias existentes e, em seguida, inferir novas prefer ˆencias.

Ambos os modelos contam com uma m ´etrica de similaridade, ou noc¸ ˜ao de semelhanc¸a entre usu ´arios ou itens. Apache Mahout fornece v ´arias implementac¸ ˜oes de algoritmos para o c ´alculo de similaridade, entre as quais pode-se destacar a Correlac¸ ˜ao de Pearson, Dist ˆancia Euclidiana, Coeficiente de Tanimoto e Correlac¸ ˜ao de Spearman. Um detalhamento maior acerca da l ´ogica de cada uma das classes pode ser encontrado em (TIWARY, 2015).

2.5.2 Clusterizac¸ ˜ao

Clusterizac¸ ˜ao refere-se `a organizac¸ ˜ao de itens de uma determinada colec¸ ˜ao em grupos de itens semelhantes. Estes grupos podem ser caracterizados como um con- junto de itens semelhantes um ao outro em alguns aspectos, por ´em, diferentes de elementos pertencentes a outros grupos (OWEN et al., 2011).

Apache Mahout suporta diversas implementac¸ ˜oes de algoritmos para armazena- mento em cluster, como K-Means, Fuzzy K-Means, Canopy e Spectral Clustering, cada um com caracter´ısticas pr ´oprias e crit ´erios espec´ıficos, conforme descrito a se- guir.

k-Means: Um algoritmo simples, mas bem conhecido para agrupamento de obje-

de caracter´ısticas num ´ericas. Al ´em disso, o utilizador deve especificar o n ´umero de clusters (referidos como K) que pretende identificar. Os itens s ˜ao armazena- dos nos k clusters tomando-se por base a dist ˆancia entre os itens e o centroide, ou centro, da iterac¸ ˜ao anterior.

Fuzzy K-Means: Uma extens ˜ao do algoritmo k-Means. Permite descobrir pontos

que podem pertencer a mais de um cluster.

Canopy: Um algoritmo de pr ´e-clusterizac¸ ˜ao n ˜ao-supervisionado, utilizado para

criar pontos de partida para outros algoritmos, como k-means e Fuzzy K-Means. • Spectral Clustering: O algoritmo faz uso do espectro (ou valores pr ´oprios)

da matriz de semelhanc¸a para analisar a conex ˜ao entre os dados, ao passo que outros algoritmos de agrupamento, como k-Means, usam a densidade para atribuic¸ ˜ao de clusters.

2.5.3 Classificac¸ ˜ao

A classificac¸ ˜ao pode ser caracterizada como um processo de utilizac¸ ˜ao de informac¸ ˜oes espec´ıficas (entrada) para escolha de uma ´unica selec¸ ˜ao (sa´ıda), a partir de uma lista de potenciais respostas pr ´e-determinadas (OWEN et al., 2011). Os algo- ritmos implementados pelo Mahout para classificac¸ ˜ao/categorizac¸ ˜ao s ˜ao descritos a seguir.

Naive Bayes - atualmente s ˜ao implementadas duas abordagens relacionadas

`a classificac¸ ˜ao de conte ´udo com base em estat´ısticas bayesianas. A primeira ´e um classificador padr ˜ao Naive Bayes e a segunda ´e uma extens ˜ao desse padr ˜ao, denominada de CBayes (Navi Bayes Complementar).

Modelo oculto de Markov - abordado em v ´arias ´areas de aprendizagem de

m ´aquina para o reconhecimento de padr ˜oes, como processamento de linguagem natural, reconhecimento de voz, reconhecimento de escrita `a m ˜ao, entre outros. • Regress ˜ao log´ıstica - um modelo utilizado para a previs ˜ao da probabilidade

de ocorr ˆencia de um evento. S ˜ao utilizadas m ´ultiplas vari ´aveis de previs ˜ao que podem ser tanto num ´ericas ou categorias.

2.5.4 Recomendac¸ ˜oes com Mahout

Atualmente a construc¸ ˜ao de um motor de recomendac¸ ˜ao r ´apido e flex´ıvel pode ser realizado atrav ´es da biblioteca Taste. Essa biblioteca suporta recomendac¸ ˜oes baseadas em usu ´ario ou em conte ´udo e consiste de cinco componentes principais:

DataModel: cont ´em as informac¸ ˜oes a serem analisadas pelo Mahout. Essas

informac¸ ˜oes devem estar em um formato espec´ıfico: UserId, ItemId, Avaliac¸ ˜ao. Neste trabalho o DataModel foi populado com dados obtidos diretamente da base de dados atrav ´es da utilizac¸ ˜ao da classe JDBCDataModel.

UserSimilarity: interface que possui v ´arias implementac¸ ˜oes de algoritmos para

o c ´alculo de similaridade entre usu ´arios.

ItemSimilarity: interface utilizada para o c ´alculo de similaridade entre itens.

UserNeighborhood: utilizada para determinac¸ ˜ao da vizinhanc¸a, ou seja, o n ´umero de usu ´arios similares que ser ˜ao utilizados no processo de recomendac¸ ˜ao.

Recommender: interface que deve ser instanciada para obtenc¸ ˜ao das recomendac¸ ˜oes.

Esses componentes possibilitam a construc¸ ˜ao de sistemas de recomendac¸ ˜ao com- plexos capazes de realizar recomendac¸ ˜oes em tempo real ou offline. Mahout possui ainda implementac¸ ˜oes espec´ıficas para avaliac¸ ˜ao da efici ˆencia do algoritmo escolhido para o processo de recomendac¸ ˜ao.

Maiores informac¸ ˜oes acerca de cada um dos algoritmos implementados podem ser encontradas na p ´agina do projeto em https://mahout.apache.org/. Nessa p ´agina s ˜ao disponibilizados tamb ´em tutoriais, e-books e exemplos de implementac¸ ˜ao e aplicac¸ ˜ao dos algoritmos de recomendac¸ ˜ao.

A recomendac¸ ˜ao de Objetos de Aprendizagem voltados para o ensino e apren- dizagem de l´ınguas ´e algo novo. No melhor de nosso conhecimento, n ˜ao se pode encontrar na literatura trabalhos espec´ıficos de recomendac¸ ˜ao deste tipo de objeto. Atrav ´es do estudo bibliogr ´afico em trabalhos voltados para a ´area de Sistemas de Recomendac¸ ˜ao e Objetos de Aprendizagem, percebe-se que a literatura fornece uma s ´erie de trabalhos relacionados. Estes trabalhos permitem analisar a viabilidade de aplicac¸ ˜ao da soluc¸ ˜ao proposta, atrav ´es do desenvolvimento de novas soluc¸ ˜oes ou agregando melhorias `as abordagens existentes. Dessa forma, foram analisados dois grupos de trabalhos: Recomendac¸ ˜ao de Objetos de Aprendizagem e Recomendac¸ ˜ao de Objetos associados `a diferentes contextos, descritos a seguir.