Classificação Automática dos Usuários da Rede Social

Transcrição

Classificação Automática dos Usuários da Rede Social
Classificação Automática dos Usuários da Rede
Social Acadêmica Scientia.Net
Vinícius Ponte Machado1, Bruno Vicente Alves de Lima2, Heloína Alves Arnaldo3, Sanches Wendyl Ibiapina
Araújo4
Departamento de Informática e Estatística, Universidade Federal do Piauí
Campus Universitário Ministro Petrônio Portella - Bairro Ininga - Teresina - PI
1
[email protected]
2
[email protected]
3
[email protected]
4
[email protected]
Resumo – Redes sociais tornaram-se especialmente relevantes na
internet devido a grande adesão de usuários aos vários de sites
Web que utilizam o conceito, como Orkut, MySpace, Facebook e
Flickr. Seus usuários formam bases de dados que proveem um
importante meio de compartilhar, organizar e encontrar
conteúdo, além de estabelecer contatos através de interesses
comuns. Neste contexto foi criado o Scientia.Net – site de rede
social que integra informações contidas em diversos serviços da
Internet (fóruns, repositórios de artigos, sites, blogs e demais
redes sociais). Além disso, esta ferramenta promove a interação
de seus usuários (estudantes, professores e pesquisadores) para
fins acadêmicos, com base nos seus interesses em comum.
Este artigo apresenta uma aplicação Web, desenvolvida para
agrupar de forma automática os usuários do Scientia.Net,
utilizando Redes Neurais Artificiais. A aplicação foi criada a
partir de pesquisas sobre algoritmos de aprendizagem de
máquina e visa oferecer ao Scientia.Net um mecanismo de
classificação que apresente a cada usuário do site, uma relação
de outros pesquisadores com base nas suas pesquisas em comum.
Com isso pretende-se contribuir para a interação entre usuários
de perfis semelhantes e assim melhorar na produtividade de suas
pesquisas permitindo assim a troca de conhecimento.
Palavras-Chave: Redes Sociais, Aprendizagem de Máquina,
Redes Neurais Artificiais, WEKA
I. INTRODUÇÃO
Na área científica, a interação das pessoas é um fator
importante para o avanço das pesquisas. É crescente o número
de pesquisadores de diferentes instituições, muitas vezes
distantes geograficamente que têm colaborado entre si em
diversos projetos. Neste cenário acadêmico os sistemas de
redes sociais se destacam como uma ferramenta para reunir e
facilitar contato com pessoas que detêm o conhecimento.
Esses sistemas funcionam com o princípio da interação
social, ou seja, buscando conectar pessoas e proporcionar sua
comunicação forjando laços sociais. Uma rede social é
definida como um conjunto de dois elementos: atores
(pessoas, instituições ou grupos; os nós da rede) e suas
conexões (interações ou laços sociais) [7]. A rede social,
derivando deste conceito, passa a representar um conjunto de
participantes autônomos, unindo ideias e recursos em torno de
interesses compartilhados a partir das interações estabelecidas
entre eles.
O Scientia.Net é um site de rede social voltado ao
ambiente acadêmico que visa agregar aos seus usuários itens
de relevância acadêmica relacionados ao seu perfil. Dessa
forma, o Scientia.Net é uma agregador de informações
contidas em diversos serviços da Internet (fóruns, repositórios
de artigos, sites, blogs e demais redes sociais). Além disso, a
ferramenta provê a interação de seus usuários (estudantes,
professores e pesquisadores) com base nos seus interesses em
comum.
Este artigo apresenta um mecanismo de classificação
automático dos usuários da rede social Scientia.Net através do
algoritmo de aprendizagem de máquina (Redes Neurais
Artificiais - RNA). O objetivo é oferecer a cada usuário do
Scientia.Net uma relação de outros usuários com perfis e
interesses comuns a estes.
Algoritmos que utilizam técnicas de Aprendizagem de
Máquina melhoram automaticamente à medida que aprendem
com experiências passadas [5]. Estes algoritmos têm como
objetivo encontrar e descrever padrões a partir dos dados
obtidos do ambiente. A tarefa principal é aprender um modelo
a partir do ambiente e manter esse modelo consistente de
modo a atingir as finalidades de sua aplicação. A tarefa de
aprender consiste em escolher ou adaptar os parâmetros de
representação do modelo.
Tal mecanismo de classificação automático de usuários
contribui para que o usuário da rede social não desperdice
tempo buscando os perfis dos pesquisadores com os quais
deseja obter ou compartilhar informações, pois o algoritmo de
RNA se encarrega de identificar grupos de usuários por meio
da classificação de padrões na base de dados do Scientia.Net.
O algoritmo de Aprendizagem de Máquina RNA, utilizado
na implementação deste trabalho, foi adaptado do pacote
Waikato Environment for Knowledge Analysis – WEKA [9],
que consiste num conjunto de implementações de algoritmos
de Aprendizagem de Máquina, desenvolvido na Universidade
de Waikato na Nova Zelândia.
II. FUNDAMENTAÇÃO TEÓRICA
A. Aprendizagem de Máquina
A utilização de Algoritmos de Aprendizagem de máquina
tem como objetivo o desenvolvimento de técnicas
computacionais sobre o aprendizado bem como a construção
de sistemas capazes de adquirir conhecimento de forma
automática.
A intuição humana não pode ser inteiramente eliminada
nesse caso, desde que o desenvolvedor do sistema especifique
como os dados devem ser representados e que mecanismos
serão usados por uma caracterização dos dados. Existem três
principais tipos de técnicas de aprendizagem de máquina:
 O Aprendizado Supervisionado – implica necessariamente
a existência de dados de entradas e a indicação de uma
saída a ser apendida para ocorrer o processo de
aprendizagem [1].
 Aprendizado
Não-Supervisionado
–
envolve
a
aprendizagem de padrões na entrada, quando não são
fornecidos valores de saídas específicos [8].
 Aprendizado por Reforço – consiste em mapear situações
(estados do ambiente) para ações (o que fazer) de modo a
maximizar um sinal de recompensa numérico. A ideia
básica é simplesmente captar os aspectos mais importantes
do problema real posto diante de um agente aprendiz
interagindo com o ambiente para alcançar uma meta.
B. Redes Neurais Artificiais
As Redes Neurais foram criadas na década de 40 por
Walter Pitts e McCulloch, o primeiro matemático e o segundo
neurofisiologista [4]. Redes Neurais Artificiais são sistemas
que tentam simular o funcionamento do cérebro humano. São
compostas por unidades de processamento simples chamados
de Neurônios Artificiais [1].
C. Neurônio Artificial (Perceptron)
O modelo de neurônio artificial proposto por McCulloch e
Pitts é uma simplificação do neurônio biológico. O modelo
propõe que o neurônio artificial possui n entradas (x1,x2,x3,
...,xn) e apenas um terminal de saída y, sendo que cada entrada
possui um peso correspondente (w1,w2,w3,...,wn),visualizados
na Fig. 1.
Para gerar a saída o neurônio faz o somatório da
multiplicação de cada entrada com seu respectivo peso. Após
isso é levado à Função de Transferência e depois enviado para
a saída do neurônio. A saída geralmente é comparada com a
saída indicada e se houver erro, que é a diferença entre a saída
obtida e a saída desejada, será corrigido utilizando a regra
delta [5].
A Regra Delta ajusta os pesos do neurônio de tal forma que
este multiplicado pela entrada possa representar uma saída
correta. Para cada entrada do Perceptron soma-se o peso atual
com a multiplicação da entrada com a taxa de aprendizagem e
o erro. Esse processo é realizado com todos os pares de
entradas com seus respectivos pesos.
A Regra do Delta é utilizada para o treinamento do
Perceptron,(neurônio), também dito como o mais simples tipo
de rede neural. O Perceptron apresenta apenas um conjunto de
de entradas e uma saída, sem haver nenhuma camada de
neurônios intermediária.
Os neurônios são constituídos por uma função de ativação e
uma função de transferência. A função de ativação faz a soma
ponderada dos sinais de entrada e a função de transferência
determina a saída do neurônio, em função da soma ponderada.
Quando ocorre erro em alguma das entradas, é utilizada a
regra do delta para a correção dos erros, ou seja, o treinamento
do Perceptron.
Portanto os algoritmos de aprendizado das Redes Neurais
visam o desenvolvimento de técnicas para a obtenção de um
valor mais apropriado de pesos para a obtenção da solução do
problema depois que todos os pesos estiverem ajustados, e não
existir mais erro, ou o menor erro possível[1].
D. Redes Neurais de Múltipla Camadas
As redes Neurais de Múltiplas Camadas é uma rede com
uma camada de entrada, contendo as entradas da rede, com
uma ou mais camadas ocultas, que possui neurônios artificiais
e uma camada de saída, que tem como objetivo resolver
problemas não lineares. Um exemplo de rede neural é
mostrado na Fig. 2.
Fig.2. Exemplo de Rede Neural com Múltiplas Camadas (Adaptado de
Ludwing e Eduard, 2007).
Fig.1Modelo de Neurônio Artifical de McCulloch e Pitts. (Adaptado de
Ludwing e Eduard, 2007).
E. Algoritmo Back-Propagation
Algoritmo Back-Propagation é utilizado no treinamento
das Redes Perceptrons de Múltiplas Camadas. É dividido em
duas fases. A primeira é a forward que é onde é determinada a
saída da rede neural. A segunda é a fase backward, onde é
comparada a saída obtida com a saída desejada e assim
calculado o erro. Na fase forward é apresentado às entradas da
rede, e as saídas dos neurônios da primeira camada oculta são
calculadas.
As saídas da primeira camada oculta serão as entradas
utilizadas nos cálculos da saída da próxima camada. Esse
processo se repete até chegar a camada de saída, onde são
produzidas as saídas da rede. Por fim, a saída obtida é
comparada com a saída desejada, caso haja erro o algoritmo
passa para a fase backward.
Na fase backward o erro da camada de saída é utilizado
para ajustar diretamente os seus pesos. Posteriormente, esse
erro é propagado para a camada anterior, utilizando-se para
isso os pesos das conexões entre as camadas, que serão
multiplicadas com os erros correspondentes.
Esse processo é executado até a primeira camada oculta da
rede neural, chegando a camada de entrada, onde serão
ajustados os pesos das entradas finalizando o processo. [2]
F. Ferramenta Weka
Waikato Environment for Knowledge Analysis – WEKA [8]
é um conjunto de bibliotecas Java de KDD 1 que contempla
uma série de algoritmos de preparação de dados, de
aprendizagem de máquina, mineração de dados e de validação
de resultados (Fig. 3). WEKA foi desenvolvido na
Universidade de Waikato na Nova Zelândia, sendo escrito em
Java e possuindo código aberto disponível na Web (a atual
versão - 3.4.3 - demanda Java 1.4).
O WEKA possui interface gráfica e seus algoritmos
fornecem relatórios com dados analíticos e estatísticos do
domínio minerado. Grande parte de seus recursos é acessível
via sua interface, sendo que os demais podem ser utilizados
através de API´s2 em códigos criados por terceiros.
Para a utilização dos algoritmos implementados utilizandose a ferramenta WEKA no Scientia.Net, deve-se fornecer
dados para o treinamento. Esses dados são fornecidos através
de um arquivo com extensão .arff. Esse arquivo possui um
formado especial como mostra na Fig. 4. O Arquivo ARFF, é
dividido em 3 partes:
 Relação – primeira linha do arquivo que deve conter a
identificação da relação ou tarefa que esta sendo estudada,
sendo, antecedida da expressão @relation;
 Atributos – lista de atributos, onde cada linha inicia com
@attribute acompanhada do nome do atributo e seguida do
seu tipo, que pode ser nominal (as alternativas devem ser
relacionadas como uma lista separada por vírgulas e
cercadas por chaves) ou numérico (neste caso o nome deve
ser seguido do tipo de dado);
 Dados – relação de dados correspondentes aos atributos
que é iniciada com uma linha simples contendo a
expressão @data. Cada linha representa uma instância e
deve ter valores separados por vírgula correspondentes (e
na mesma ordem) dos atributos da seção Atributos.
Fig.4. Exemplo de Arquivo ARFF.
O Fato de o WEKA ser escrito em Java e ter suas
bibliotecas disponíveis, teve um peso relevante na decisão
de utilizá-lo no Scientia.Net. Com isso os algoritmos
podem ser utilizados em várias plataformas, deixando
assim, o trabalho com uma boa portabilidade e melhor
utilização no Joomla.
A criação do site Scientia.Net foi feita utilizando o
componente de redes sociais do CMS (Content Management
System) Joomla, o JomSocial. Este CMS é escrito em
linguagem PHP e roda no servidor Web Apache ou IIS3
(Internet Information Services) e banco de dados MySQL.
Fig.3.Janela do WEKA rodando algoritmo de Aprendizagem de Máquina.
1
Knowledge-discovery in databases (Extração do Conhecimento) é um
processo de extração de informações de base de dados, que cria relações de
interesse que não são observadas pelo especialista no assunto, bem como
auxilia a validação de conhecimento extraído.
2
API – Application Programming Interface (ou Interface de Programação de
Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um
software para a utilização das suas funcionalidades por programas aplicativos
que não querem envolver-se em detalhes da implementação do software, mas
apenas usar seus serviços.
G. Scientia.Net
O Scientia.Net é uma rede social voltada para o ambiente
acadêmico com conteúdos específicos para cientistas que
desejam compartilhar suas pesquisas ou avançar em seus
trabalhos por meio da interação com outros pesquisadores. É
baseada na Internet e foi criada implementando ferramentas
que permitem a interação de seus usuários (estudantes,
professores e pesquisadores) com base nos seus interesses em
comum por meio de algoritmos de aprendizagem de máquina.
3
Internet Information Services ou IIS é um servidor Web criado pela
Microsoft para seus sistemas operacionais para servidores.
Além disso, visa agregar aos seus usuários itens de
relevância relacionados ao seu perfil de forma automática. Ou
seja, de acordo com o perfil do pesquisador, são sugeridos
artigos, eventos e contatos de outros pesquisadores. Dessa
forma o Scientia.Net cria um grande agregador de
informações acadêmicas contidas em diversos serviços da
Internet (fóruns, repositórios de artigos, sites, blogs e demais
redes sociais) [Fig. 5], permitindo aos seus usuários uma
melhoria na produtividade de suas pesquisas, além de fornecer
mecanismos para interatividade e troca de conhecimento entre
pesquisadores.
Esta aplicação foi desenvolvida em java e posteriormente
integrada à uma aplicação Web com o framework JSF 1.2, que
foi escolhido visando facilitar a integração da aplicação ao
Scientia.Net. Uma vez incorporada ao Scientia.Net a aplicação
irá de forma automática, através de uma conexão JDBC 4, se
conectar ao banco de dados MySql, selecionar a tabela de
usuários, e converter esta tabela para um arquivo ARFF.
Após a implementação do conversor ARFF, os algoritmos
de RNA do WEKA foram integrados à aplicação, e iniciaramse os testes com as RNAs.
O primeiro passo para início dos testes consistiu em
conectar o conversor ARFF ao banco de dados MySql do
Scientia.Net, selecionar a tabela de usuários e então gerar o
arquivo ARFF correspondente . A Fig. 7 mostra um exemplo
da aplicação treinando uma RNA.
Fig.5. Serviços e Informações agregadas ao Scientia.Net
O Scientia.Net diferente de outras redes sociais oferece um
mecanismo de classificação automático de seus usuários e de
conteúdo. Esse diferencial tem como objetivo oferecer a cada
usuário do Scientia.Net uma relação de outros usuários cujos
perfis e interesses são semelhantes. Esta classificação é feita
de forma automática com base nos padrões descobertos pelos
algoritmos de Redes Neurais Artificiais.
III.
CLASSIFICAÇÃO AUTOMÁTICA DOS
USUÁRIOS
O WEKA utiliza uma base de dados chamada ARFF e o
Scientia.Net utiliza banco de dados MySql para armazenar
dados dos usuários (Fig. 6). Dessa forma, surgiu a necessidade
de desenvolver uma aplicação para converter a base de dados
do MySql para ARFF.
Fig. 7. Aplicação treinando uma rede neural com os dados do MySql
convertidos em ARFF.
O próximo passo foi escolher os atributos que os usuários
do Scientia.Net precisam ter para que a RNA os classifique
corretamente. Os seguintes atributos são levados em
consideração na hora da classificação do usuário: Graduação,
Mestrado, Doutorado, Pós-Doutorado e suas respectivas subáreas. O atributo classe escolhido para que a RNA classifique
os usuários foi a Área de Interesse.
Concluída essa etapa criou-se uma base de dados fictícia
para o Scientia.Net, dado que este projeto ainda está em fase
de desenvolvimento. Esta base de dados possui 60 usuários
cadastrados, dos quais foram escolhidos 40 para treinamento
da RNA e 20 para testes. Em seguida uma RNA com 5
camadas ocultas e 1 de saída, com taxa de aprendizagem e
erro médio de 0.1, foi submetida a um treinamento com os
dados de 40 usuários.
Com a Rede Neural treinada foram submetidos a ela, os
outros 20 usuários para classificação. Foram obtidos 100% de
acerto da Rede Neural, ou seja, todos os 20 usuários foram
classificados corretamente.
4
Fig 6. Comparação de um arquivo SQL com um arquivo ARFF
Java Database Connectivity ou JDBC é um conjunto de classes e interfaces
(API) escritas em Java que fazem o envio de instruções SQL para qualquer
banco de dados relacional.
Após escolher os atributos, criar o banco de dados, e testar
a Rede Neural, foi desenvolvido o site do Scientia.Net Joomla
utilizando o componente JomSocial, como mostra na Fig 8, e
na sua base de dados padrão foram adicionados os campos
escolhidos como atributos para os usuários.
Fig. 9. Scientia.Net apresentando de forma automática usuários em comum ao
perfil de outro usuário.
Fig. 8. Exemplo de tela do Scienta.Net.
Com a parte de desenvolvimento Web pronta, as RNAs
foram incorporadas ao site do Scientia.Net. Ainda utilizando
a base de dados criada, foi treinada novamente a Rede Neural,
e cadastrados novos usuários e submetidos à Rede Neural para
classificação. Como anteriormente, a Rede Neural classificou
os novos usuários com 100% de acertos.
Alguns desses usuários foram por exemplo: Aurileide
Frazão com graduação em Química, com a sub-área de
mestrado em Síntese Orgânica; Lilian Rosalina com formação
em Química, com a sub-área em Fotoquímica Orgânica; Ana
Carolina graduada em Química, sub-área Físico-Química
Orgânica; Amanda Lorena também graduada em Química,
com sub-área Polímeros e Coloides, todas classificadas pela
Rede Neural como Área de Interesse em Química Orgânica.
Assim o Scientia.Net apresenta, por exemplo, Lilian Rosalina,
Lorena Amanda e Ana Carolina como sendo de interesse a
Aurileide Frazão (Fig. 9).
IV. CONSIDERAÇÕES FINAIS
O Scientia.Net, rede social acadêmica, tem como objetivo
reunir pesquisadores nas mais diversas áreas do conhecimento
afim de possibilitar a troca de informações entre eles, e isto
feito de forma automática através de algoritmos de
Aprendizagem de Máquina. Neste trabalho estão sendo
utilizadas as Redes Neurais Artificiais.
As Redes Neurais Artificiais apresentaram um bom
desempenho na classificação dos usuários. Além disso, as
RNAs são métodos seguros quando implementados
corretamente, pois já existem e são estudados ha muito tempo.
Para um desempenho eficiente, as Redes Neurais
necessitam de treinamentos com uma enorme quantidade de
dados, para que não haja problemas nesse trabalho em relação
a isso, serão feitos treinamentos regularmente utilizando a
base de dados do Scientia.Net.
De forma a ampliar os estudos sobre o trabalho apresentado
pretende-se ainda desenvolver os seguintes tópicos:
implementação do mecanismo de classificação dos usuários
do Scientia.Net com dados reais; utilização de outras fontes de
usuários: Facebook, Orkut; classificação de artigos e eventos
científicos automaticamente a partir do perfil dos cientistas
cadastrados no Scientia.Net.
REFERÊNCIAS
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
BRAGA, A. P.; CARVALHO, A. P. L. F.; LUDERMIR T. B. Redes
Neurais Artificiais: Teoria e Aplicações. 2ed, Rio de Janeiro, Brasil,
2007.
HAYKIN, S. Redes neurais: princípios e prática. 2ed. Porto Alegre:
Bookman, 2001. 900p
SCHWALBERT, M. A. Metodologias de aprendizagem de máquina
utilizando Redes Neurais Artificiais. Monografia (Bacharel em Ciência
da Computação) – Universidade de Passo Fundo, Passo Fundo, 2007.
MCCULLOCH, W.; PITTS, W. A logical calculus of the ideas
immanent in nervous activity. Bulletin of Mathematical Biophysics, v.
7, p. 115 – 133, 1943
MITCHELL, T. Machine Learning. McGraw Hill, New York, 1997.
JÚNIOR, O. L.; MONTGOMERY, E. Redes Neurais: Fundamentos e
Aplicações com Programas em C. Rio de Janeiro, Brasil, 2007.
RECUERO, R. C. Teoria das Redes e Redes Sociais na Internet:
Considerações sobre o Orkut, os Weblogs e os Fotologs. In: XXVII
Congresso Brasileiro de Ciências da Comunicação. XXVII
INTERCOM, Rio Grande do Sul, 2004. Disponível em:
http://reposcom.portcom.intercom.org.br/bitstream/1904/17792/1/R062
5-1.pdf. Acesso:jan. 2011.
RUSSEL, S.; NORVING, P. Inteligência Artificial. Rio de
Janeiro:Elsevier, 2004.
UNIVERSITY OF WAIKATO.Weka 3 Machine Learning Software in
Java. Disponível em: http://www.cs.waikato.ac.nz/ml/weka Acesso:
jan.2011.