Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 AVALIAÇÃO COMPARATIVA DE ALGORITMOS PARA SISTEMAS DE RECOMENDAÇÃO EM MÚLTIPLOS DOMÍNIOS: MODELOS INTERPRETÁVEIS APLICADOS A DADOS EDUCACIONAIS Hugo Marques Casarini Juan Manuel Adán Coello Faculdade de Engenharia de Computação / CEATEC [email protected] Grupo de Pesquisa em Sistemas Inteligentes CEATEC [email protected] Resumo: A previsão da nota que um aprendiz irá obter em tarefas que ainda não realizou pode ser usada para orientar os seus passos no processo de ensino-aprendizagem. Esta nota pode ser prevista a partir dos dados adquiridos durante a interação de estudantes com sistemas tutores, usando métodos de mineração de dados que produzem modelos de fácil interpretação. Tem sido usada uma grande diversidade desses métodos ou algoritmos, principalmente no domínio do comércio eletrônico, mas o seu uso ainda é raro no contexto considerado. Neste artigo discute-se a aplicação de um algoritmo indutor de conjuntos de regras aplicado ao problema de prever se um estudante acertará ou não uma questão, a partir das questões que ele e seus colegas responderam previamente. A avaliação experimental realizada mostrou que o algoritmo apresenta acurácia, precisão e cobertura elevados quando se dispõe de um elevado número de exemplos, mas o mesmo comportamento não se verifica quando isso não ocorre. Entre as principais abordagens para utilizar essas informações e fazer recomendações de interesse do usuário, destacam-se a filtragem colaborativa (FC) [1] e a mineração de dados baseada em aprendizado de máquina [2], usando, entre outros, métodos que produzem modelos interpretáveis, como as árvores de decisão e as regras de classificação. Os métodos de aprendizado de máquina podem analisar o comportamento passado dos usuários para prever comportamentos futuros. Nos sistemas de recomendação usualmente utilizam-se associações usuário-item. Essas associações referem-se a uma lista de m usuários, e uma lista de n itens que são representadas por uma matriz m x n contendo as avaliações (ratings) dadas aos itens pelo o usuário em questão. Entre as limitações dos algoritmos de FC destacase a incapacidade de recomendar novos itens e de recomendar itens a novos usuários, já que um novo usuário ainda não avaliou nenhum item e um novo item ainda não foi avaliado por usuário algum. Essa situação caracteriza o problema da partida a frio (cold start problem) e é muito comum sua discussão no estudo de sistemas de recomendação. Outros problemas importantes decorrem da presença de matrizes esparsas (muitos espaços vazios) e matrizes muito grandes (diversas dimensões) que dificultam fazer previsões precisas e aumentam as demandas computacionais para fazê-lo. O modelo tradicional para transformação de dados em informação e em conhecimento útil, por exemplo para recomendar itens de interesse de um usuário, consiste em um processamento manual dos dados por especialistas que, então, produzem relatórios que deverão ser analisados. Em muitos casos, devido ao grande volume de dados, esse processo manual torna-se impraticável. O KDD (Knowledge Discovery in Databases ou Descoberta de Conhecimento nas bases de dados) [3] é uma tentativa de solucionar Palavras-chave: Sistemas de recomendação, modelos de previsão interpretáveis, previsão do desempenho de estudantes. Área do Conhecimento: Ciências Exatas e da Terra –Ciência da computação. 1. INTRODUÇÃO O problema da recomendação de uma informação ou item relevante para um determinado indivíduo é um tema que vem ganhando importância tanto no meio acadêmico quanto no comercial. Estes sistemas possuem como objetivo reduzir as inúmeras opções de itens disponíveis, prevendo um ou mais que sejam de possível interesse de um usuário. Para isso, podem ser utilizadas informações diversas como as preferências do usuário e seu respectivo histórico de interações com o sistema. Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 o problema causado pela chamada "era da informação": a sobrecarga de dados. O KDD refere-se ao processo de descoberta de conhecimento, tendo a mineração de dados como uma das etapas do processo. Na Figura 1 podemos ver uma representação do processo de KDD. Figura 1. O processo de KDD Fonte: [2]. Algoritmos de aprendizado de máquina estão entre os principais métodos usados na etapa de mineração de dados do processo de KDD para detectar padrões nos dados disponíveis. O foco do trabalho que deu origem a este artigo são os algoritmos de mineração de dados que produzem modelos interpretáveis por pessoas. O artigo está organizado da seguinte forma: na Seção 2 faz-se uma introdução e discussão sobre o processo de KDD, apresentando detalhes das suas etapas, como destaque para a mineração de dados, a mais relevante para o trabalho descrito neste artigo; na Seção 3 aprofunda-se a discussão sobre algoritmos de mineração de dados que produzem modelos de fácil interpretação, abordagem utilizada no trabalho descrito para prever o desempenho de estudantes; na Seção 4 apresentam-se os resultados de uma avaliação experimental de alguns desses algoritmos quando utilizados com dados educacionais e, finalmente, na Seção 5 são apresentadas algumas considerações finais. 2. DESCOBERTA DE CONHECIMENTO EM BASES DE DADOS (KDD) O processo KDD é definido como o “processo não trivial de identificação de padrões novos, potencialmente uteis e inteligíveis a partir de dados” [2]. O processo é não trivial já que algum método de busca ou inferência está envolvido, ou seja, não se trata apenas de um processo simples de computar quantidades pré-definidas, como calcular a média de um conjunto de números. Os padrões descobertos devem ser válidos, com algum grau de certeza, em novos dados, potencialmente úteis (trazem algum benefício) e compreensíveis (se não imediatamente, então depois da interpretação). O processo de busca de conhecimento contém uma série de passos: seleção, pré-processamento e limpeza, transformação, mineração de dados e interpretação e avaliação. Conhecer os dados com os quais se irá trabalhar é fundamental para a escolha dos métodos mais adequados de mineração de dados. Os dados podem ser categorizados em quantitativos e qualitativos. Os dados quantitativos são representados por valores numéricos, podendo ainda ser discretos ou contínuos. Já os dados qualitativos contêm valores nominais e ordinais (categóricos). Tendo uma visão inicial dos dados, é necessário explorá-los, buscando conhecê-los melhor e encontrar valores que possam comprometer sua qualidade, tais como valores em branco ou nulos e dados duplicados. À medida em que que os dados vão sendo conhecidos, ocorre a sua preparação ou pré-processamento para que os algoritmos de mineração possam ser aplicados. A etapa de transformação dos dados é necessária como parte da preparação dos dados para o uso dos algoritmos de mineração, já que, por exemplo, alguns algoritmos trabalham apenas com valores numéricos e outros apenas com valores categóricos. Nestes casos, é necessário transformar os valores numéricos em categóricos ou os categóricos em valores numéricos. Em alguns casos o volume de dados é tão grande que torna o processo de análise dos dados e a própria mineração impraticáveis. Nestes casos, as técnicas de redução de dados podem ser aplicadas para que a massa de dados original seja convertida em uma massa de dados menor, porém, sem perder a representatividade dos dados originais. Isto permite que os algoritmos de mineração sejam executados com mais eficiência, mantendo a qualidade do resultado. Geralmente, os repositórios usados no processo de KDD possuem quantidades muito elevadas de registros, de modo que o uso de todos os registros para a construção do modelo de mineração de dados pode ser inviável. Nesse contexto, utiliza-se uma amostra representativa que é dividida em três conjuntos: conjunto de treinamento (conjunto de dados usados para produzir o modelo); conjunto de testes (usado para testar o modelo construído); conjunto de validação (usado para validar o modelo construído). 3. MINERAÇÃO DE DADOS A mineração de dados é um passo no processo de descoberta de conhecimento, que consiste na realização da análise dos dados e na aplicação de algoritmos de descoberta que, sob certas Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 limitações computacionais, produzem um conjunto de padrões (ou modelos) a partir dos dados. As tarefas mais comuns da etapa de mineração de dados são descrição, classificação, estimação ou regressão, predição, agrupamento e associação. A descrição é a tarefa utilizada para descrever os padrões e tendências revelados pelos dados. A classificação visa a identificar a qual classe um determinado registro pertence. A estimação ou regressão visa encontrar uma função que mapeia itens de dados em uma variável de predição real. O agrupamento visa identificar um grupo finito de categorias, ou grupos, que descreva os dados. A associação consiste em identificar quais atributos estão relacionados. Tradicionalmente, os métodos de mineração de dados são divididos em aprendizado supervisionado e não-supervisionado. A diferença entre estes métodos reside no fato de que os métodos não-supervisionados não precisam de uma pré-categorização para os dados, ou seja, não é necessário um atributo alvo. Tais métodos geralmente usam alguma medida de similaridade entre os atributos. As tarefas de agrupamento e associação são consideradas como nãosupervisionadas. Já no aprendizado supervisionado, é usado um conjunto de dados que possuem uma variável alvo pré-definida e os registros são categorizados em relação a ela. As técnicas de classificação podem ser supervisionadas e não-supervisionadas. São usadas para prever valores de variáveis do tipo categóricas. No trabalho descrito neste artigo busca-se construir um modelo para prever uma nota de um estudante em uma atividade ainda não realizada, a partir das suas notas em outras atividades e das notas de outros estudantes nessa e em outras atividades. Este problema pode ser entendido como um problema de predição (da nota da questão não realizada) ou de classificação (prever se o estudante irá errar ou acertar a questão). O conjunto de dados considerado contém informações do tipo múltipla escolha, em que o estudante pode acertar ou errar uma questão, de modo que o problema foi considerando como sendo de classificação. Entre os requisitos do trabalho considerado estava que os modelos gerados fossem facilmente interpretáveis por pessoas. Por esse motivo foram focados algoritmos que produzem modelos classificatórios na forma de árvores de decisão e de regras. Em uma árvore de decisão cada nó indica um teste feito sobre uma variável. As ligações entre os nós representam os valores possíveis do teste do nó superior e as folhas indicam a classe à qual o registro pertence. Após construir uma árvore de decisão, para classificar um novo registro, basta seguir o fluxo na árvore, mediante os testes nos nós não-folha, começando no nó raiz até chegar a uma folha. Um modelo de classificação baseado em regras emprega clausulas da forma SE condição ENTÃO conclusão. No trabalho descrito neste artigo foi empregado o algoritmo RIPPER (Repeated Incremental Pruning to Produce Error Reduction) [4] para produzir conjuntos de regras que permitam prever se um estudante acertará ou não uma questão que ainda não fez. Algoritmos de aprendizado de conjuntos de regras são geralmente comparados com algoritmos de aprendizado de árvores de decisão. Conjuntos de regras apresentam a vantagem de serem fáceis de entender e podem ser representados em lógica de primeira ordem. A sua maior desvantagem é que em geral são pouco escaláveis, à medida que aumenta o conjunto de treinamento, e apresentam dificuldades para tratar de dados com ruído. No entanto, o algoritmo RIPPER não apresenta essas desvantagens. Uma das maiores limitações das de árvores de decisão é o ajuste excessivo (overfitting), ou seja, o modelo produzido funciona muito bem com o conjunto de treinamento, mas não apresenta resultados tão bons com o conjunto de validação (e com dados novos). O RIPPER implementa a técnica REP (Reduced Error Pruning) que é bem sucedida para evitar o ajuste excessivo. Somando as características positivas do RIPPER apresentadas na literatura com o fato de haver uma implementação desse algoritmo no ambiente de mineração de dados Rapidminer1, disponível para uso do trabalho descrito, este foi o algoritmo de indução de modelos interpretáveis escolhido para aplicar ao problema educacional considerado. 4. AVALIAÇÃO EXPERIMENTAL Nesta seção descreve-se a avaliação experimental conduzida para avaliar o algoritmo de indução de regras RIPPER quando empregado para uma base de dados educacional. A avaliação foi feita no ambiente RapidMiner, que implementa diversos mecanismos e algoritmos para o processo de KDD, inclusive o algoritmo mencionado. Foi empregada a base de dados educacionais assistments_2009-2010 [5], que consiste em um conjunto de dados coletados entre 2009 e 2010, a partir de uma plataforma online 1 http://rapid-i.com/content/view/181/190/lang,en/ Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 que permite que resolvam questões e recebam tutoria online. Essa base está organizada em um formato de tabela com diversas colunas. A base contém 1.011.079 respostas de 8.519 estudantes para 35.978 questões. O algoritmo foi avaliado procurando focar na facilidade de interpretação dos resultados produzidos e da precisão das previsões feitas. A facilidade de interpretação foi avaliada visualmente, na medida que a intenção é verificar se os modelos produzidos são fáceis de entender a uma pessoa. A precisão foi avaliada por um processo de validação cruzada. O processo implementado no RapidMiner para avaliar os algoritmos consiste na execução de uma sequência de atividades. Incialmente a base original passou por um processo de transformação visando colocá-la no formato requerido pelos algoritmos empregados. Na base transformada, cada linha representa um usuário e cada coluna uma questão respondida pelos usuários. As células definidas por um par linha-coluna indicam se o usuário representado na linha acertou (valor 1) ou errou (valor 0) a questão associada à coluna. Em seguida, transforma esse valor do tipo numérico é transformado para o tipo binominal (true ou false). A base é então filtrada em função do atributo categórico (questão para a qual se deseja fazer previsões), deixando apenas os registros dos estudantes que responderam a essa questão (com acerto ou com erro). Em seguida, é selecionado o atributo (coluna da tabela) correspondente à questão para a qual se deseja treinar (aprender) um modelo (atributo categórico) capaz de predizer o seu valor, associando a esse atributo o papel de rótulo (label), passo necessário para indicar ao algoritmo que este é o atributo para o qual se quer realizar a aprendizagem. No próximo passo do processo, é feita uma amostragem estratificada da base. Esta etapa é necessária pois o computador empregado não tem memória suficiente para executar os algoritmos com toda a base. A amostra estratificada é um subconjunto selecionado aleatoriamente da base original, em que a distribuição de classes é a mesma da base original, isto é, a proporção de registros (linhas da tabela) na amostra correspondente a acertos e a erros é a mesma da base completa. Após fazer a amostragem, é executado um processo de avaliação cruzada para estimar o desempenho estatístico do modelo produzido pelo algoritmo de aprendizado usado em novos dados. Isto envolve um subprocesso de treinamento, onde é treinado, ou aprendido, um modelo, e um subprocesso de teste, onde é aplicado o modelo aprendido e medido o seu desempenho. No processo de validação cruzada, o conjunto de dados, neste caso a amostragem, é particionado em três subconjuntos de mesmo tamanho. Um subconjunto é usado como o conjunto de dados de teste (servirá de entrada para o subprocesso de teste) e dois subconjuntos são usados como os dados de treinamento (serão a entrada do subprocesso de treinamento). O processo de validação cruzada é repetido três vezes, com cada um dos três subconjuntos usado uma vez como dados de teste. Ao final, é feita uma média dos três resultados produzidos para produzir uma estimativa do desempenho do modelo. Após uma fase inicial em que se tentou produzir árvores de decisão, sem muito sucesso, decidiuse focar na utilização do algoritmo de indução de regras RIPPER. Foram utilizados os parâmetros padrão do algoritmo, tal como recomendado pela implementação disponível no Rapidminer, exceto pelo critério utilizado para selecionar os atributos que serão usados na cláusula condicional das regras geradas. O padrão da ferramenta é usar o ganho de informação, mas foram obtidos melhores resultados usando a acurácia. No primeiro caso, a entropia de todos os atributos é calculada e o atributo com a menor entropia é usado na divisão. No segundo caso, é selecionado o atributo que maximiza a acurácia do conjunto de regras. Foram produzidos e avaliados conjuntos de regras para diversas questões. Mostramos aqui os resultados obtidos para duas delas: 11948 e 97607. A primeira estava representada por 478 exemplos na amostra e a segunda por 95. Os conjuntos de regras produzidos para as questões 11948 e 97607 são mostrados, respectivamente, na Figura 2 e na Figura 3. Esses conjuntos são o resultado da junção dos conjuntos gerados nas três etapas da validação cruzada. Um conjunto de regras deve ser lido de cima para baixo. Logo, no caso da questão 11948, se o usuário acertou (true) a questão 9663, a previsão é que ele erre a 11948. Se essa condição não é verificada, verifica-se se ele acertou a questão 14349. Nesse caso, a previsão é que ele erre a questão 11948. Após outras três condições que levam à previsão de erro, temos a regra padrão que indica acerto da questão 11948. Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 if 9663 = true then false (20 / 1) if 14349 = true then false (16 / 2) if 2712 = true then false (11 / 0) if 13648 = true then false (11 / 1) if 13907 = true then false (234 / 2) else true (18 / 162) correct: 454 out of 478 training examples. Figura 2. Conjunto de regras para a questão 11948. if 61091 = true then false (9 / 0) if 40849 = true then true (0 / 14) if 40519 = true then false (8 / 0) if 40859 = true then false (4 / 0) if 2672 = true then true (0 / 10) if 97402 = true then false (4 / 0) else false (24 / 22) correct: 73 out of 95 training examples Figura 3. Conjunto de regras para a questão 97607. O desempenho desse conjunto de regras é mostrado na Figura 4 (copiada diretamente da tela do Rapidminer). Nota-se que a acurácia do conjunto é de 90,81% com um desvio de mais ou menos 4,53%. A acurácia indica o número de previsões corretas feitas. A figura mostra também a precisão e a cobertura desse conjunto de regras. A Figura 5, por sua vez, mostra o desempenho do conjunto de regras gerado para a questão 97607. Neste caso, exceto pela cobertura para a classe falso, todas as métricas mostram um pior desempenho. O motivo, provavelmente, seja o reduzido número de exemplos disponíveis para gerar o modelo. 5. CONCLUSÃO O objetivo do plano de trabalho detalhado no artigo consistia em analisar o desempenho de algoritmos de mineração de dados baseados em modelos de fácil interpretação, quando aplicados ao problema de prever o desempenho de estudantes. Para atingir o objetivo foi analisado o desempenho de conjuntos de regras induzidas pelo algoritmo RIPPER, quando aplicados a uma base de dados educacionais. Nos experimentos realizados, verificou-se que o algoritmo apresenta acurácia, precisão e cobertura elevadas quando se dispõe de um número expressivo de exemplos. Por outro lado, quando o número de exemplos é pequeno, o desempenho é bem menor. Pretende-se, dar continuidade ao trabalho, realizando novos experimentos em que será analisado o efeito da variação dos parâmetros do algoritmo estudado. Por fim, cabe ressaltar que a mineração de dados é uma área promissora e que, apesar dos bons Figura 4: Acurácia, precisão e cobertura, conjunto de regras para a questão 11948. Figura 5: Acurácia, precisão e cobertura, conjunto de regras para a questão 97607. Anais do XIX Encontro de Iniciação Científica – ISSN 1982-0178 Anais do IV Encontro de Iniciação em Desenvolvimento Tecnológico e Inovação – ISSN 2237-0420 23 e 24 de setembro de 2014 resultados apresentados, ainda tem muito para oferecer. AGRADECIMENTOS À FAPIC/Reitoria pela bolsa de iniciação científica, à PUC-Campinas pelas instalações que permitiram o desenvolvimento deste artigo e as reuniões realizadas, e ao Prof. Dr. Juan Manuel Adán Coello pela orientação e motivação e pelo convite para a participar no trabalho de IC que me permitiu adquirir novos conhecimentos na área de computação. REFERÊNCIAS [1] X. Amatrian, A. Jaimes, N. Oliver e J. M. Pujol. Data Mining Methods for Recommender Systems. Recommender Systems Handbook, pp. 39-71, 2011. [2] U. Fayyad, G. Piatetsky-Shapiro, P. Smyth. From Data mining to Knowledge Discovery in Databases. AI Magazine, 17(3):37-54, Fall 1996. [3] I. H. Witten, E. Frank, and M. A. Hall. Data Mining: Practical Machine Learning Tools and Techniques: Practical Machine Learning Tools and Techniques. Morgan Kaufmann, 2011. [4] W. W. Cohen, “Fast Effective Rule Induction,” in Proceedings of the Twelfth International Conference on Machine Learning, Lake Tahoe, California, 1995. [5] M. Feng, N. Heffernan e K. Koedinger. Addressing the assessment challenge with an Online System that tutors as it assesses. The Journal of User Modeling and User-Adapted Interaction, 2009.