Mineração dePreferências Contextuais A. Soulet et al. 2012 AULA 19 Data Mining Profa. Sandra de Amo Motivação War Steve Spielb erg Action Johnny Depp Drama Tom Hanks James Cameron Leonardo di Caprio Action, Tom Hanks, War Action, Stieve Spieberg, War Thriller Motivação Notação: A: Action B: Tom Hanks C: Steve Spielberg D: War E: Leonardo di Caprio …. Motivação Objetivo Dado um conjunto de pares de transações (amostragem fornecida pelo usuário) Descobrir regras que permitam decidir as preferências do usuário sobre pares de transações. No exemplo: Uma transação corresponde a uma classe de filmes. Formalização do Problema Items (tags) Itemset (ou transação)= conjunto de items Uma preferência = (t1,t2), onde t1, t2 são itemsets Um banco de dados de Preferências: conjunto finito de preferências fornecidas pelo usuário através de cliques. Regra de Preferência Contextual : Sintaxe : i+ > i- | X i+, i- são items distintos X = Contexto da regra X = itemset i+ e i- não estão contidos em X Semântica : entre duas transações contendo X, prefiro aquela que contém i+ do que aquela que contém i- Exemplo t1 = A C D t2 = A B C E r: D > E | A Logo: t1 >r t2 t1 é preferido a t2 de acordo com a regra r Medidas de utilidade das regras t1, t2: transações r: regra de preferência (t1,t2) satisfaz r se t1 >r t2 (t1,t2) contradiz r se t2 >r t1 Suporte de uma regra r com relação a um conjunto de preferências P Sup(r,P) = porcentagem de bi-tuplas (t1,t2) de P que satisfazem r Dizemos que (t1,t2) satisfaz a regra r se t1 >r t2 Confiança de uma regra r com relação a um conjunto de preferências P. Conf(r,P) = Porcentagem de bi-tuplas (t1,t2) de P que satisfazem r, dentre todas as que satisfazem ou contradizem r Minimalidade Uma regra i+ > i- | X é dita minimal com relação a um banco de preferências P se não existe Y X tal que: sup(i+ > i- | Y, P) = sup(i+ > i- | X, P) e conf(i+ > i- | Y, P) = conf(i+ > i- | X, P) Propriedades importantes de antimonotonia: se Y X e sup(i+ > i- | Y, P) ≤ N então sup(i+ > i- | X, P) ≤ N se Y X e i+ > i- | Y não é minimal então i+ > i- | X não é minimal Problema de Mineração (1) Input: Banco de dados de preferências P N: nível minimo de suporte M: nível minimo de confiança Output: todas as regras de preferência r, minimais, com suporte ≥ N e confiança ≥ M Método ContPrefMiner: adaptação do algoritmo Apriori para minerar regras de preferência. (poderia ser qualquer algoritmo de mineração de regras de associação) Algoritmo ContPrefMiner Problemas a resolver : Como usar o conjunto de regras minerado por ContPrefMiner para prever a preferência do usuário sobre duas transações quaisquer ? Cada regra tem sua “opinião” a respeito da preferência entre duas transações. “Opiniões” podem ser contraditórias Ordenação por regras “individuais” pode não ser transitiva. O conjunto de regras pode ser muito grande. Como definir uma ordem de preferência ? O que significa duas transações serem comparáveis por um conjunto S de regras de preferências ? t1, t2 são comparáveis por S se t1 >r t2, onde r = a melhor regra de preferência de S. Estamos adotando uma política de autoridade para agregar preferências de S : a melhor regra decide ! Como ordenar regras de preferência Trata-se de uma ordem total ! Exemplo : minsup = 0.2, minconf= 0.6 Como avaliar um ordenador S ? S = conjunto de regras de preferências P = banco de dados de preferências Precisão(S,P) = porcentagem de pares (t,u) em P com t >S u dentre todos os pares em P comparáveis por S Recall(S,P) = porcentagem de pares (t,u) em P com t>s u dentre todos os pares em P Problema de Mineração (2) Input: Banco de dados de preferências P Conjunto de regras de Preferência S Output: Um subconjunto S’ de S que maximize a precisão e o recall e que seja tão pequeno quanto se queira. Problema NP-completo : problema do red-blue set cover (que é NP-completo) se reduz a este problema de mineração. Solução proposta: algoritmo ProfMiner enfoque heurístico – solução não é exata Idéia geral A cada iteração R = { r0 }, r0 = melhor regra de S P = P – {(t,u) que não satisfazem r0} S = conjunto das regras de S que são satisfeitas por pelo menos k pares de P Repete o processo até S seja vazio. Coeficiente k : controla o tamanho do R retornado R retornado = Perfil do usuário Algoritmo ProfMiner Exemplo (k = 1) Resultados Experimentais Foram usados 3 bancos de preferências sobre filmes (imdb.com e MovieLens preparados pelo grupo de BD-UFU e Université de Versailles). P301, P3000, P30000 Atributos: Gênero, Ator, Diretor, Ano Atributos multivalorados: Gênero, Diretor, Ator Ator: consideramos só o principal Gênero, Diretor: valores múltiplos são transformados num único item ContPrefMiner: executado com minsup= 0,001 e minconf = 0,5 Processador Intel 3 GHz, 1 GB de RAM, Windows XP Redução do conjunto de regras ProfMiner reduz drasticamente o conjunto de regras retornado por ContPrefMiner Tamanho do conjunto de regras diminui quando k aumenta Mesmo para k = 1 há uma redução no número de regras: P301 : de 5319 108 P3000 : de 4833 432 P30000: de 4913 925 Variação do número de regras em relação ao K Coeficiente de Redução do Perfil Seja Rk: perfil retornado para k Q = Coeficiente de redução de Rk Q = (|R1| - |Rk|) / |R1| Gráfico da Precisão com respeito ao Q Gráfico Recall com respeito ao Q Gráfico da F-Mesure com respeito ao Q Algumas regras de preferência extraídas Trabalhos em Andamento Estudar outras maneiras de construir o perfil do usuário – outras politicas de ordenação das regras retornadas por ContPrefMiner Algoritmo CPrefMiner: baseado em outra metodologia: Extração de uma rede de preferências R R é uma espécie de CP-Net probabilistica R faz o papel do conjunto S de regras retornado por ProfMiner (= perfil do usuário)