Problème du démarrage à froid pour les systèmes de recommandation dans les entrepôts de données



Documents pareils
Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

Introduction à la B.I. Avec SQL Server 2008

Entrepôts de données multidimensionnelles NoSQL

Hervé Couturier EVP, SAP Technology Development

Entreposage de données complexes pour la médecine d anticipation personnalisée

Une méthode d apprentissage pour la composition de services web

Datawarehouse: Cubes OLAP. Marlyse Dieungang Khaoula Ghilani

CONCEPTION ET REALISATION D'UN GENERATEUR DE TABLEAUX DE BORD PROSPECTIFS MULTIDIMENSIONNELS

Démarche dirigée par les modèles pour la conception d entrepôts de données multidimensionnelles. F.Atigui, F.Ravat, O.Teste, G.

Les Entrepôts de Données

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

Urbanisation des SI-NFE107

et les Systèmes Multidimensionnels

Techniques d optimisation des requêtes dans les data warehouses

Collabora'on IRISA/INRA sur le transfert de nitrates et l améliora'on de la qualité des eaux des bassins versants:

Entrepôt de données 1. Introduction

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Modélisation d objets mobiles dans un entrepôt de données

Modélisation Multidimensionnelle des Tableaux de Bord Prospectifs

Personnalisation collaborative pour l enrichissement des analyses dans les entrepôts de données complexes

Généralisation contextuelle de mesures dans les entrepôts de données

Business Intelligence

Algèbre OLAP et langage graphique

Business Intelligence avec Excel, Power BI et Office 365

Plan. Introduction Eléments de la théorie des systèmes d'informations Les entrepôts de données (Datawarehouse) Les datamart Architecture Modélisation

RI sociale : intégration de propriétés sociales dans un modèle de recherche

Bases de Données Avancées

BI = Business Intelligence Master Data-Science

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Approche de modélisation multidimensionnelle des. des données complexes : Application aux données médicales. 5èmes Journées

1 Introduction et installation

Bases de données multidimensionnelles et mise en œuvre dans Oracle

Les entrepôts de données

EXPLORATION COLLABORATIVE DE CUBES DE DONNÉES

Entrepôt de Données. Jean-François Desnos. ED JFD 1

Évolution de schémas dans les entrepôts de données mise à jour de hiérarchies de dimension pour la personnalisation des analyses

BIRT (Business Intelligence and Reporting Tools)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Evolution et personnalisation des analyses dans les entrepôts

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Intelligence Economique - Business Intelligence

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

La rencontre du Big Data et du Cloud

Business Intelligence : Informatique Décisionnelle

La place de la Géomatique Décisionnelle dans le processus de décision

Introduction à l Informatique Décisionnelle - Business Intelligence (7)

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Alimenter un entrepôt de données par des données issues de services web. Une approche médiation pour le prototype DaWeS

Rapport de DEA. Intégration de versions fonctionnelles dans les entrepôts de données multimédias au sein des systèmes OLAP. Anne-Muriel ARIGON

Techniques d interaction dans la visualisation de l information Séminaire DIVA

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Business & High Technology

FreeAnalysis. Schema Designer. Cubes

BI = Business Intelligence Master Data-ScienceCours 3 - Data

et les Systèmes Multidimensionnels

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

AVERTISSEMENT. D autre part, toute contrefaçon, plagiat, reproduction illicite de ce travail expose à des poursuites pénales.

XCube XML For Data Warehouses

Formula Negator, Outil de négation de formule.

Présentation du module Base de données spatio-temporelles

OPEN DATA : CHALLENGES ET PERSPECTIVES D ENTREPOSAGE

QU EST-CE QUE LE DECISIONNEL?

Systèmes d information et bases de données (niveau 1)

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Gestion et analyse personnalisées des demandes marketing : cas de LCL-Le Crédit Lyonnais

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Workflow/DataWarehouse/DataMining LORIA - Université d automne Informatique décisionnelle - L. Mirtain 1

Notice Technique / Technical Manual

Les capitalistes sociaux sur Twitter : détection via des mesures de similarité

La problématique. La philosophie ' ) * )

Plan de cours. 1. Mise en contexte. 2. Place du cours dans le programme. 3. Descripteur du cours

UE 8 Systèmes d information de gestion Le programme

TRAVAUX DE RECHERCHE DANS LE

17/07/2013. Décisionnel dans le Nuage. Laboratoire ERIC. Section 1. Équipe d Accueil Décisionnel dans le Nuage.

Le nouveau visage de la Dataviz dans MicroStrategy 10

Le Géodécisionnel. P7 : Projet Bibliographique Dans le cadre du Mastère ASIG. Les SIG au service du géodécisionnel.

Travail de diplôme 2011 Business Intelligence Open Source SpagoBI/Talend Résumé

Méthodologie de conceptualisation BI

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

Problèmes d additivité dus à la présence de hiérarchies

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

BI2 : Un profil UML pour les Indicateurs Décisionnels

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Plan. Ce qu est le datawarehouse? Un modèle multidimensionnel. Architecture d un datawarehouse. Implémentation d un datawarehouse

Chapitre 9 : Informatique décisionnelle

Ministère de l Enseignement Supérieur et de la Recherche Scientifique. Ecole nationale Supérieure d Informatique (ESI) (Oued Semar, Alger) Mémoire

Mémoire de fin d études. Thème Conception et réalisation d un Data Warehouse pour la mise en place d un système décisionnel

Plan d action SMB d une Approche Agile de la BITM Pour les PME

Differential Synchronization

Bases de Données OLAP

INF6304 Interfaces Intelligentes

Gestion des Clés Publiques (PKI)

Validation de la création des groupes ABM et ajout de l utilisateur SASDEMO

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Le langage SQL Rappels

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Théories de la Business Intelligence

Transcription:

Problème du démarrage à froid pour les systèmes de recommandation dans les entrepôts de données Elsa Negre * Franck Ravat ** Olivier Teste *** Ronan Tournier ** * Université Paris Dauphine, LAMSADE (UMR 7243), Place du Maréchal de Lattre de Tassigny, 75116 Paris : Elsa.Negre@dauphine.fr ** Université Toulouse 1 Capitole, IRIT (UMR 5505), 2 rue du doyen Gabriel Marty, 31042 Toulouse Cedex 9 : Franck.Ravat@irit.fr ; Ronan.Tournier@irit.fr *** Université Toulouse 2 IUT Blagnac, IRIT (UMR 5505), 1 place Georges Brassens, BP 60073, 31703 Blagnac Cedex : Olivier.Teste@irit.fr RÉSUMÉ. L exploration OLAP (On-Line Analytical Processing) de données est un processus incrémental basé sur des requêtes effectuant une recherche d informations dans un Entrepôt de Données (ED) multidimensionnelles. Afin de faciliter l exploration d un décideur, des systèmes de recommandation ont été proposés. Toutefois, lors de l utilisation d un nouveau système, ces systèmes de recommandation ne fonctionnent plus (problème de démarrage à froid). Dans cet article, nous proposons des recommandations pour un décideur qui est confronté à un problème de démarrage à froid. Notre processus est composé de quatre étapes : identifier le squelette des requêtes OLAP, prévoir des opérations candidates, calculer des recommandations sur les opérations candidates et classer ces recommandations. Cet article est la version française de Cold-Start recommender system problem within a multidimensional data warehouse, RCIS 2013. ABSTRACT. Exploring data is an incremental OLAP (On-Line Analytical Processing) query process for searching relevant information in a multidimensional Data Warehouse. In order to ease user exploration, recommender systems are used. However when facing a new system, such recommendations do not operate anymore. This is known as the cold-start problem. In this paper, we provide recommendations to the user while facing this cold-start problem in a new system. Our process is composed of four steps: patternizing queries, predicting candidate operations, computing candidate recommendations and ranking these recommendations. This paper is the French version of Cold-Start recommender system problem within a multidimensional data warehouse, RCIS 2013. MOTS-CLÉS : Démarrage à froid, système de recommandation, OLAP, entrepôt de données KEYWORDS: Cold-start problem, Recommender system, OLAP, datawarehouse e soumission à, le 6 avril 2013.

2 e soumission à. 1. Introduction et contexte Les systèmes d aide à la décision permettent aux décideurs d analyser l activité d une entreprise ou d une organisation en explorant des données historisées et agrégées d un Entrepôt de Données (ED) Colliat (1996), Kimball (1996). Les décideurs explorent et analysent ces données en utilisant les processus On-Line Analytical Processing (OLAP). Cependant, l exploration d un ED volumineux peut s avérer fastidieuse pour un décideur Lyman et al. (2003). Ainsi, des techniques de recommandation facilitant l exploration d informations pertinentes sont nécessaires. Le processus de recommandation vise à guider l utilisateur au cours de son exploration d informations volumineuses vers les informations qui apparaissent comme les plus pertinentes. Les systèmes de recommandation sont fréquents dans le domaine du commerce électronique Adomavicius et Tuzhilin (2005); Baeza-Yates (2010). Notamment, ils proposent un objet à un client en fonction de ses préférences. Toutefois, dans le domaine des bases de données, certains travaux Chatzopoulou et al. (2009); Khoussainova et al. (2009); Stefanidis et al. (2009) ont proposé des méthodes et des algorithmes pour aider l utilisateur lors de l élaboration de ses requêtes. Dans le cadre de la recommandation dans les ED à partir de requêtes OLAP (voir Marcel et Negre (2011) et Negre (2009) pour plus de détails), certains exploitent les profils et les préférences des décideurs Jerbi et al. (2009); Bellatreche et al. (2005); Golfarelli et al. (2011), d autres utilisent la découverte de connaissances faites au cours des analyses décisionnelles Sarawagi (2000); Cariou et al. (2008) ainsi que sur l exploitation des journaux contenant des séquences de requêtes précédemment exécutées par d autres utilisateurs sur le même cube de données Sapia (1999); Chatzopoulou et al. (2009); Yang et al. (2009); Giacometti et al. (2009, 2011). Un cube de données est une représentation multidimensionnelle des données sur laquelle le décideur effectue ses analyses OLAP. Plus récemment, Romero et al. (2011) propose une algèbre multidimensionnelle pour décrire le processus analytique des sessions. Bien que ces approches permettent de recommander des requêtes pertinentes à un utilisateur, elles s avèrent inopérantes lorsque l ED est mis à jour ou lorsque les décideurs sont différents ou nouveaux. Ce problème du démarrage à froid est rencontré lorsque les recommandations sont nécessaires pour des objets et / ou des utilisateurs pour lesquels nous n avons aucune information explicite ou implicite Schein et al. (2001). Il y a plusieurs problèmes liés au démarrage à froid K lopotek (2008) : nouvel utilisateur Golbandi et al. (2011); Rashid et al. (2008), nouveau produit Schein et al. (2001), association non transitive et apprentissage. Dans le contexte des ED, nous sommes confrontés au problème du démarrage à froid lorsque le système souhaite formuler des recommandations pour un nouveau cube de données. Par exemple, prenons le cas d un ED contenant (1) des données jusqu à l année 2010, (2) un cube de données C 1 portant sur les années 2009 et 2010 et (3) le journal des requêtes permettant de construire C 1. Supposons que cet ED a été mis à jour pour intégrer les données

Démarrage à froid, Reco, OLAP 3 de 2011 et qu un nouveau cube C 2 portant sur les années 2010 et 2011 a été créé, le système ne pourra faire que très peu de recommandations aux décideurs sur C 2 voire aucune. Pour les ED, le problème du démarrage à froid est plus complexe que dans le contexte du Web car nous sommes confrontés à un nouveau système : nouvel item (un nouveau cube) et nouveaux utilisateurs (nouveaux décideurs ou décideurs connus avec une nouvelle fonction). Par conséquent, nous devons aller au-delà de la simple recommandation en suggérant des requêtes qui n ont pas encore été exécutées sur le cube considéré. Dans le domaine des ED, à notre connaissance, il n existe pas de recherche sur ce problème de démarrage à froid pour de nouveaux systèmes. L article est organisé comme suit : la section 2 motive notre proposition par un exemple d application. La section 3 présente le modèle conceptuel servant de support à notre proposition. La section 4 détaille notre processus de démarrage à froid et la section 5 propose un bilan et des perspectives à nos travaux. 2. Exemple Soit un décideur nouvellement employé dans l industrie automobile. Il devra développer un réseau de revente dans un nouveau pays (Etats-Unis (US)). La société a assemblé un nouvel entrepôt de données à partir de données de ventes de véhicules aux US disponibles publiquement et en le concevant de manière similaire à celui déjà existant dans l entreprise (même fait, mêmes hiérarchies). L ancien permet l analyse des ventes de véhicules en France durant la dernière décennie, tandis que le nouveau système concerne les ventes de voitures aux US, mais seulement sur les deux dernières années (cf. les schémas en étoile V ENT ES F R et V ENT ES US, Figure 1). Il est à noter que dans les deux schémas, toutes les hiérarchies des dimensions se terminent par un niveau ALL (All Magasin, All T emps et All V ehicule ) non affiché. Néanmoins, les différences suivantes existent : Aux US, la quantité de véhicules vendus est enregistré, en France, on trouve également le montant des ventes ; Les villes sont regroupées en régions en France et en états aux US. Les ventes sont regroupées par semaines en France et mensuellement aux US. Les véhicules vendus en France ont une boite de vitesse manuelle, mais aux US elle peut différer (manuelle, automatique...). En outre des différences existent au niveau des données : les zones géographiques sont soit aux US, soit en France et la période couverte est 1998-2011 (France) ou 2009-2011 (US). Les types de véhicules sont identiques mais, les modèles sont différents et les catégories ne sont pas toutes identiques (par ex. les petites voitures urbaines françaises). La transmission, en France, est traction avant ou 4x4, et aux US, il existe également la propulsion arrière. Le système français a déjà été utilisé et un ensemble de logs de session d analyse en a été extrait. Ces logs sont les manipulations successives (les séquences de requêtes OLAP) des utilisateurs. Dans l exemple, (cf. Tableau 1,

4 e soumission à. Figure 1. Entrepôts de données pour analyser les ventes de véhicules : (droite) aux Etats-Unis de 2009 à 2011 ; (gauche) en France de 1998 à 2008. Log de sessions (système français) V entes F R Véhicule Magasin Temps q 3 Quantité All V ehicule France (Pays) 2007 (Année) q 3 q 4 Identite Identite Drilldown Identite q 4 Quantité All V ehicule Nord (Région) 2007 (Année) q 4 q 5 Identite Identite Drilldown Identite q 5 Quantité All V ehicule Villes du nord (Villes) 2007 (Année) Session courante (système US) V entes US Véhicule Magasin Temps q 1 Quantité All V ehicule US (Pays) 2011 (Année) q 1 q 2 Identite Identite Drilldown Identite q 2 Quantity All V ehicule Texas (État) 2011 (Année) q 2 q pred Identite Identite Drilldown Identite q pred Quantité All V ehicule Villes du Texas (Ville) 2011 (Année) Tableau 1. Haut : une session (ancien système) ; Bas : analyse en cours (nouveau système). haut), un utilisateur français commence par (q 3 ) : analyse des quantités vendues en France durant 2007 ; puis, en deux étapes, il fore vers le bas (drilldown) depuis le niveau Pays vers Région (q 4 ), puis jusqu à Ville (q 5 ). Le système US est neuf et n a pas encore de requêtes à recommander à partir de ses propres logs et l utilisateur n a ni expérience avec la vente de véhicules, ni avec les pratiques usuelles des autres analystes de l entreprise. En outre, 1) les schémas des deux systèmes ne sont pas identiques, 2) les données sont différentes (France contre US). Ainsi, le nouveau décideur ne peut être aidé ni par le système existant ni par les autres utilisateurs. Une exploration guidée de l entrepôt de données pour le nouveau décideur pourrait être suggérée, mais sans prendre en compte les (nouvelles) données. Par exemple, le nouvel utilisateur analyse les quantités vendues de véhicules aux US durant l année 2011 (q 1, Tableau 1). S il fore vers le bas (DrillDown) sur le magasin depuis le niveau Pays vers État (q 2), le système pourrait suggérer une façon française d exploration : pour analyser les quantités de produits vendus pour une année spécifique, les utilisateurs de France, font systématiquement un double forage vers le bas sur la hiérarchie géographique (q pred ). Typiquement dans cet exemple, les suggestions d analyse doivent être indépendantes des données (US : ventes de 2011 ; France : ventes de 2007). Les deux schémas sont légèrement différents, mais ils ont tous deux un fait Ventes, une dimension avec une localisation géographique, une dimension temporelle et

Démarrage à froid, Reco, OLAP 5 une troisième représentant des produits vendus (des véhicules). Sans avoir des structures identiques, les dimensions sont assez similaires, ainsi l exploration peut être similaire entre les deux schémas. Afin d y parvenir, les recommandations devront prendre en compte uniquement des opérations de haut niveau (double forage sur une hiérarchie géographique ; rotation depuis les localisations vers les produits) qui correspondent aux opérateurs algébriques OLAP. Ainsi, des recommandations basées sur des opérations plutôt que des valeurs (des données) peuvent être utiles pour le problème du démarrage à froid des systèmes de recommandation. 3. Modélisation Conceptuelle Cette section définit le modèle multidimensionnel, extension de travaux antérieurs Ravat et al. (2008). L approche est au niveau conceptuel afin de définir des concepts indépendamment des contraintes d implantation. 3.1. Schéma Multidimensionnel et cube On pose : F = {F 1,..., F n } un ensemble fini de faits, n 1 et D = {D 1,..., D m } un ensemble fini de dimensions, m 2. Définition 1. Un schéma de cube, noté C i, est défini par (F i, Star(F i )), tel que : F i F est un fait et Star(F i ) = {D nd j j [1..m], D nd j D} est l ensemble des dimensions associées au fait F i. Un schéma de cube décrit les données en fonction de sujets d analyses (faits), et d axes d analyses (dimensions). Les dimensions sont hiérarchisées pour décrire les différents niveaux de granularité des données. Soient N = {n 1, n 2,...} un ensemble fini de noms non redondants. Définition 2. Un fait, noté i [1..n], F i, est défini par (n Fi, M Fi ), tel que : n Fi N est le nom identifiant le fait, M Fi = {m 1,..., m pi } est un ensemble de mesures. Définition 3. Une dimension, notée i [1..m]D i, est définie par (n Di, A Di, H Di ), tel que : n Di N est le nom identifiant la dimension, A Di = {a Di 1,..., adi r i } est l ensemble des attributs de la dimension, H Di = {H Di 1,..., HDi s i } est un ensemble de hiérarchies. Les hiérarchies organisent les attributs d une dimension, appelés paramètres, de la graduation la plus fine, notée Id Di, jusqu à la graduation la plus générale,

6 e soumission à. notée All Di. Une hiérarchie définit les chemins de navigation valides sur un axe d analyse en décrivant les différents niveaux de granularités possibles auxquels les mesures du fait sont observables. Définition 4. Une hiérarchie, notée H j (notation abusive de H Di j, i [1..m], j [1..s i ]) est définie par (n Hj, P Hj, Hj ), tel que : n Hj N est le nom identifiant la hiérarchie, P Hj = {p Hj 1,..., phj q j } est un ensemble d attributs de la dimension appelés paramètres, P Hj A Di, Hj = {(p Hj x, p Hj y ) p Hj x P Hj p Hj y P Hj } est une relation binaire antisymétrique et transitive. L antisymétrie signifie que (p Hj k 1 Hj p Hj k 2 ) (p Hj k 2 Hj p Hj k 1 ) p Hj k 1 = p Hj k 2 (p Hj k 2 Hj p Hj k 3 ) p Hj k 1 Hj p Hj k 3. et la transitivité signifie que (p Hj k 1 Hj p Hj k 2 ) W eak Hj : P Hj 2 AD i \P H j est une application qui associe à chaque paramètre un ensemble d attributs de dimension, appelés attributs faibles. On pose P = m i=1 = m Si ADi i=1 j=1 P Hj Par abus de notation dans la suite de l article, nous décrirons les hiérarchies conformément à la notation simplifiée suivante H j = (n Hj, P Hj, Hj ) = (n Hj, path Hj ) où path Hj = Id Di,..., All Di est un ensemble ordonné de paramètres du paramètre racine Id Di au paramètre extrémité All Di. Exemple : La figure 1 présente un exemple de schéma de cube (F 1, Star(F 1 )) correspondant à l analyse des ventes de véhicules entre 2009 et 2011. Ce cube est conforme à un schéma multidimensionnel représenté suivant des notations graphiques Ravat et al. (2007), Ravat et al. (2008). Il est défini formellement comme suit. F 1 = ( V ENT E US, Quantite), Star(F 1) = {D MAGASIN, D T EMP S, D V EHICULE }, où - D MAGASIN = ( Magasin, {Magasin, V ille, Etat, P ays}, {( H GeoUS, Magasin, V ille, Etat, P ays )}), - D T EMP S = ( T emps, {Date, Mois, Annee}, {( H T psus, Date, Mois, Annee )}), D V EHICULE = ( V ehicule, {V ehicule, Modele, Categorie, Marque, T ransmission, Moteur}, {( H T r, V ehicule, T ransmission ), ( H MqUS, V ehicule, Modele, Categorie, Marque ), ( H Mt, V ehicule, Moteur )}). 3.2. Analyses OLAP Les systèmes OLAP favorisent l analyse interactive des données en offrant un ensemble d opérations spécifiques telles que les forages (drill-down, roll-up), les sélections (slice-and-dice) Ravat et al. (2007). La navigation OLAP s apparente à l application d une succession d opérations : l utilisateur initialise sa navigation (ou analyse) par une première requête permettant d obtenir un résultat qui est ensuite transformé par une succession d opérations jusqu à ob-

Démarrage à froid, Reco, OLAP 7 Display(F NEW, f i(m NEW ), {D SHOW, H SHOW, P SHOW }) = q RES Affichage du fait F NEW et de sa mesure M NEW agrégée par f i en fonction des dimensions {D SHOW }. Le paramètre utilisé par défaut est le paramètre extrémité All D i. P ivot(q SRC, D CUR, D NEW, H NEW, P NEW ) = q RES Changement de l axe d analyse D CUR par un nouvel axe D NEW sur sa hiérarchie H NEW. Le paramètre utilisé par défaut est le paramètre extrémité All D NEW. DrillDown(q SRC, D CUR, P NEW ) = q RES Affichage des données en introduisant un nouveau paramètre P NEW de plus fine granularité. RollUp(q SRC, D CUR, P CUR ) = q RES Affichage des données en utilisant un paramètre P CUR de plus haute granularité (suppression des paramètres hiérarchiquement inférieur à P CUR ). Tableau 2. Algèbre OLAP. tenir le résultat pertinent pour l utilisateur. Ce dernier explore ainsi l espace multidimensionnel de l entrepôt de données. Une visualisation classique consiste à voir les données sous une représentation en cube, affichant un fait et les informations détaillées de toutes les dimensions liées. Un cube présente simultanément les structures et les valeurs des données manipulées. Nous désignons par squelette de requête les structures d un cube de données. Définition 5. Un squelette de requête P qi est défini par (M k, Level), où : M k M Fi est une mesure du fait F i, Level : Star(F i ) P est une fonction qui associe chaque dimension à un ensemble de paramètres. Exemple : La figure 2 montre un exemple de squelettes de requêtes qui se définissent formellement comme suit. P q3 : ({Quantite},{level(V ehicule) = All V ehicule,level(magasin) = P ays,level(t ps) = Annee}) P q4 : ({Quantite},{level(V ehicule) = All V ehicule,level(magasin) = Region,level(T ps) = Annee}) P q5 : ({Quantite},{level(V ehicule) = All V ehicule,level(magasin) = V ille,level(t ps) = Annee}) Nous définissons ainsi l analyse d un utilisateur par un graphe où chaque arc représente une opération OLAP et chaque noeud représente le résultat de l opération. Chaque noeud est défini par un squelette de requête décrivant la structure de la table multidimensionnelle résultat. Chaque arc est défini par une opération OLAP. Notez que, contrairement aux bases de données relationnelles, il n existe pas de consensus sur une algèbre OLAP de référence. Le tableau 2 décrit les opérateurs OLAP que nous prenons en compte dans notre approche. Nous limitons cet ensemble à un noyau d opérateurs permettant de transformer la structure des tables multidimensionnelles. L opérateur DISPLAY définit les sessions. Une session débute par l opérateur DISPLAY et se termine par un nouvel opérateur DISPLAY. Définition 6. Un squelette de session est définie par un graphe (V, E) tel que :

8 e soumission à. Figure 2. Extrait d un exemple de graphe de squelette de session. Figure 3. Vue d ensemble du processus de démarrage à froid. V = {P q1, P q2, P q3...} est un ensemble de squelettes de requêtes, E = {(Op k, P qk+1 ) Op k est un opérateur OLAP et P qk+1 V} Exemple : La figure 2 montre l extrait d un squelette de session définit formellement comme suit. V = {...P q3, P q4, P q5...}, E = {...(DrillDown(P q3 ; Magasin; Region), P q4 ), (DrillDown(P q4 ; Magasin; V ille), P q5 )...} 4. Processus de démarrage à froid Dans cette section, nous détaillons le processus de démarrage à froid dans le cadre de notre système de recommandation de requêtes OLAP. Il utilise la séquence de requêtes de la session courante ainsi que le log de requêtes du serveur OLAP. Ce log contient les séquences de requêtes précédemment lancées sur un autre cube, similaire au cube sur lequel sont lancées les requêtes de la session courante. Nous proposons d utiliser les travaux de Sboui et al. (2010) sur l interopérabilité des cubes pour détecter des cubes similaires. Cependant, la notion de similarité entre deux cubes sera définie dans nos travaux futurs. Notre processus (cf. figure 3) inclut les quatre étapes suivantes : 1) Obtenir les squelettes des requêtes du log ; 2) Prédire les opérations candidates en utilisant le squelette de la session courante, l ensemble des squelettes des sessions du log, et une fonction de concordance match entre le squelette de la session courante et l ensemble des squelettes des sessions ; 3) Calculer les recommandations candidates en combinant une requête de la session courante et les opérations candidates et 4) Ordonner les recommandations candidates. Chaque étape est détaillée par la suite.

Démarrage à froid, Reco, OLAP 9 4.1. Obtenir les squelettes des requêtes du log Initialement, chaque session du log est transformée en squelettes de requêtes. Cette étape utilise une fonction permettant d obtenir le squelette de chaque requête (cf. algorithme 1). Cette fonction retourne un ensemble d ensembles de squelettes de requêtes (un ensemble de squelettes de sessions). Le principe est le suivant : Pour chaque session du log, il s agit de remplacer dans la session, chaque requête par son squelette en utilisant la fonction extractreqsquel (algorithme 2) et de détailler les opérations qui permettent de passer d une requête à sa suivante dans la session (algorithme 3 : extractop). Le squelette de la session courante est obtenu de la même manière. Algorithm 1 LogSquel(L, C L ) Entrée: L : Le log de requêtes précédemment lancées, i.e. un ensemble de sessions, C L : Le cube sur lequel les requêtes du log ont été lancées. Sortie: un ensemble de squelettes de sessions (SP ) V // pour les operations E // pour les squelettes de requetes SP E, V Pour chaque session s i L Faire Pour chaque couple de requêtes q j, q j+1 s i Faire SP.E SP.E extractreqsquel(q j, C L ) // extractreqsquel : une fonction qui extrait le squelette d une requête donnée. SP.E SP.E extractreqsquel(q j+1, C L ) SP.V SP.V extractop(q j, q j+1, C L ) // extractop : Une fonction qui extrait l opération permettant de passer d une requête à l autre dans une session donnée. Fin Pour Fin Pour Retourne SP L algorithme 2 montre comment les squelettes de requêtes peuvent être obtenus : cela consiste à extraire les références (ensemble des valeurs des attributs) d une requête et de retourner, pour chaque dimension, le nom du niveau correspondant. De son côté, l algorithme 3 détaille comment sont identifiées les opérations permettant de passer d une requête à une autre. Algorithm 2 extractreqsquel(q, C) Entrée: q : Une requête donnée, C : Le cube sur lequel la requête q a été lancée. Sortie: une liste de noms de niveaux du cube (QP ) QP Pour chaque dimension D i de C Faire QP QP getnomniveau(getreferences(q, C)) Fin Pour Retourne QP L extraction des opérations (algorithme 3) consiste à extraire les références (un ensemble de valeurs d attributs) de deux requêtes données, les numéros de niveaux correspondants sur chaque dimension et à trouver l opération qui permet de naviguer d une requête à l autre. Nous nous intéressons en particulier aux opérations OLAP classiques : slice-and-dice, drill-down, roll-up, switch et pivot. Il est à noter que les opérations slice-and-dice et switch n ont pas d influence sur notre approche car ces opérations impactent uniquement les valeurs.

10 e soumission à. Notre approche intervenant à un niveau élevé, seule la structure du cube et non ses valeurs est manipulée. Plus précisément, pour deux requêtes données (q 1, q 2 ) et pour chaque dimension du cube C : si les références (ensembles d attributs) de chaque requête sont localisées sur le même niveau hiérarchique de la dimension, l opération pour passer d une requête à l autre est l identité ; si les références d une seule des requêtes sont localisées au niveau le plus élevé de la hiérarchie (niveau ALL ), l opération est un pivot ; si les références de la première requête lancée sont localisées à un niveau plus élevé que les références de la seconde requête lancée, l opération est un forage vers le bas, DrillDown ; dans tous les autres cas, l opération est un forage vers le haut, RollUp. Lors d un pivot, le système doit déterminer sur quelle dimension le pivot a lieu. Algorithm 3 extractop(q 1, q 2, C) Entrée: q 1, q 2 : Deux requêtes données, C : Le cube sur lequel les requêtes q 1 et q 2 ont été lancées. Sortie: une liste d opérations OLAP (OP ) OP, P ivot Niv 1, Niv 2, hauteur 0 Pour chaque dimension D i de C Faire Niv 1 getnumniveau(getreferences(q 1, C)) Niv 2 getnumniveau(getreferences(q 2, C)) hauteur hauteur de la hiérarchie de la dimension D i Si Niv 1 Niv 2 == 0 Alors OP OP Identite Fin Si Si (Niv 1 hauteur Niv 2 == hauteur) (Niv 1 == hauteur Niv 2 hauteur) Alors P ivot P ivot D i Fin Si Si Niv 1 Niv 2 > 0 Alors OP OP Drilldown Fin Si Si Niv 1 Niv 2 < 0 Alors OP OP RollUp Fin Si Fin Pour Si P ivot > 1 Alors Pour chaque couple de dimensions D i, D i+1 du Pivot Faire OP [D i ] P ivot( + D i +, + D i+1 + ) OP [D i+1 ] P ivot( + D i +, + D i+1 + ) Fin Pour Fin Si Retourne OP La fonction getref erences(q, C) retourne pour chaque dimension de C, les valeurs des attributs de la requête q. Par exemple 1, les références de la requête q 1 de l exemple de la section 2 sont Quantite, All V ehicule, US, 2011. La fonction getn omn iveau (resp. getnumn iveau) extrait, pour chaque ensemble de 1. Il faut noter que, par souci de lisibilité, les références de requêtes, les squelettes des requêtes et les opérations sont présentés, dans cette section, comme des 4-uplets ordonnés où chaque tuple correspond, dans cet ordre, aux mesures, puis à la dimension Véhicule, puis à la dimension Magasin et enfin à la dimension Temps. Par exemple, la référence de requête m, a, b, c indique que cette requête traite de la mesure m, en fonction des valeurs d attributs a sur la dimension Véhicule, b sur la dimension Magasin et c sur la dimension Temps. Le squelette de requête m, pa, pb, pc indique que ce squelette traite de la mesure m aux niveau pa sur la dimension Véhicule, pb sur la dimension Magasin et pc sur la dimension Temps. Et l opération o 1, o 2, o 3, o 4 indique qu il y a les opérations o 1 sur les mesures, o 2 sur la dimension Véhicule, o 3 sur la dimension Magasin et o 4 sur la dimension Temps.

Démarrage à froid, Reco, OLAP 11 Figure 4. Squelette de la session de l exemple de motivation. valeurs d attributs de chaque dimension du cube C, le nom (resp. le rang dans la hiérarchie - 0 pour la plus fine granularité) de chaque niveau correspondant dans la hiérarchie de la dimension. Pour q 1, nous obtenons Annee comme nom de niveau pour la valeur d attribut 2011 et 2 qui est le numéro du niveau de Annee dans la hiérarchie Temps de C (pour Mois ce serait 1 et 0 pour Date). Par exemple, dans le cas de la requête q 3, qui a pour références Quantite, All V ehicule, F rance, 2007 (cf. Tableau 1), son squelette peut être : Quantite, All V ehicule, P ays, Annee. Ainsi, la session de notre exemple, qui contient q 3, q 4 et q 5, peut avoir pour squelette celui présenté sur la figure 4. Algorithm 4 PredictOpCandidates(s c, C, SP, Match) Entrée: sc : La session courante, C : Le cube sur lequel la session sc a été lancée, SP : l ensemble des squelettes de sessions, i.e., le résultat de l étape précédente, Match : Une fonction qui retourne les squelettes de sessions candidates. Sortie: un ensemble d opérations candidates (Cand) M, Cand Psc le squelette de la session courante sc M Match(Psc, SP ) Si M Alors Pour chaque m = p, pos M Faire //où p = e, v est un squelette de session Cand Cand p.v(p.e[pos], p.e[pos + 1]) Fin Pour Fin Si Retourne Cand 4.2. Prédire les opérations candidates L étape précédente produit l ensemble des squelettes des sessions. En utilisant cet ensemble et la séquence de requêtes de la session courante, l algorithme 4 construit un ensemble d opérations candidates : En plus de l ensemble des squelettes des sessions et de la session courante, cet algorithme utilise une fonction de concordance (matching : Match). Cette fonction est utilisée pour trouver l ensemble des squelettes des sessions du log qui coïncident avec le squelette de la session courante. L algorithme procède de la manière suivante : Dans un premier temps, le squelette de la session courante est construit (la fonction LogSquel est utilisée sur la session courante qui peut être vue comme un log contenant une seule session). Puis, la fonction Match est utilisée pour chercher, parmi l ensemble des squelettes de sessions, celui qui coïncide avec le squelette de la session courante. Cette fonction retourne un ensemble de paires de sessions indiquant quels squelettes de sessions coïncident avec le squelette de la

12 e soumission à. session courante ainsi que la position de la concordance. A partir de ces paires, l algorithme extrait un ensemble d opérations candidates qui sont les opérations qui permettent de passer du squelette de requête, situé à la position retournée dans le squelette de session qui coïncide, au squelette de requête suivant dans le squelette de la session candidate. Cet ensemble d opérations est retourné comme résultat. Il faut noter que notre objectif est d éviter que cet ensemble soit vide et qu un tel algorithme a une complexité de O(n[(w + 1) 2 + 1] + w) où n est le nombre de sessions du log et w est la longueur maximale (nombre de requêtes) d une session donnée. Par exemple, le squelette de la session s 1 de l exemple de la section 2 qui contient q 3, q 4 et q 5 est représentée sur la figure 4. Le squelette de la session courante s c contient le squelette de q 1 : Quantite, All V ehicule, P ays, Annee, le squelette de q 2 : Quantite, All V ehicule, Etat, Annee et les opérations qui transforment q 1 en q 2 : Identite, Identite, Drilldown, Identite. Par exemple, supposons que la fonction Match retourne le squelette de s 1 : P s1 qui coïncide avec le squelette de s c : P sc à la position 2. L algorithme 4 retourne alors Identite, Identite, Drilldown, Identite en tant qu opération candidate. En effet, cette opération de forage vers le bas (drill-down) transforme la requête q 4 à la position 2 dans la session s 1 en la requête q 5 à la position 3 dans s 1. Fonction Match : Cette fonction a été étudiée dans Negre (2009) où des fonctions de concordance de séquences sont détaillées (chaque fonction est basée sur une distance d édition et sur une concordance approximative de chaines de caractères (approximate string matching)) et combinées avec des mesures de similarité entre membres (le plus court chemin et la distance de Hamming). La technique de concordance approximative de chaines utilisée consiste à supprimer, à chaque itération, le dernier élément de la séquence puis de comparer la sous-séquence obtenue à la séquence courante en utilisant une distance d édition. Il faut noter que le nombre de calculs de la distance d édition peut être exponentiel. Alors que, si, seule la distance d édition est calculée (i.e. la distance de Levenshtein), le nombre de calculs est plus petit, puisqu elle est calculée une seule fois pour chaque séquence. Ainsi, la distance de Levenshtein a été utilisée pour comparer deux sessions. Cette distance est combinée à la distance de Hamming (EdH) ou au plus court chemin (EdSP ) pour comparer des membres. Les expérimentations menées dans Negre (2009) montrent que EdH et EdSP ont des performances similaires en termes de rappel/précision mais que EdSP est moins rapide que EdH. Comme nous nous situons dans le contexte du problème de démarrage à froid d un système de recommandation, le système proposé doit être le plus rapide et le plus efficace (autant que possible). C est la raison pour laquelle, nous avons décidé d utiliser EdH : la distance de Levenshtein combinée avec la distance de Hamming. 4.3. Calculer les recommandations candidates L étape précédente produit un ensemble d opérations candidates. Suite à cela, pour chaque opération candidate, une nouvelle requête est construite

Démarrage à froid, Reco, OLAP 13 en appliquant ces opérations candidates à la dernière requête de la session courante. Une algèbre multidimensionnelle proposée récemment Romero et al. (2011) pourrait garantir que les opérations appliquées auront un sens. Dans Negre (2009), cinq possibilités ont été considérées : (i) la dernière requête de la session courante, (ii) le successeur d une requête donnée de la session courante, (iii) l union (ou l intersection) des requêtes de la session courante, et (iv) le médoïde 2 des requêtes de la session courante. La possibilité (iv) est chronophage lorsque les sessions sont longues (à cause du calcul du médoïde pour un grand nombre de requêtes). La possibilité (iii) peut aboutir à un ensemble vide de requêtes (intersection) ou peut créer une requête dont le résultat peut correspondre à l intégralité du cube de données (union). Par analogie avec le web White (2007) et vis-à-vis de notre contexte, nous supposons que des étapes intermédiaires sont inutiles et qu une session d analyse se concentre sur le but de la session. Ainsi, la meilleure possibilité est d appliquer les opérations à la dernière requête de la session courante afin d obtenir les recommandations candidates. Dans notre exemple, l opération candidate est : Identite, Identite, Drilldown, Identite. La construction d une nouvelle requête en appliquant cette opération (un drill-down sur la dimension Magasin) sur la dernière requête q 2 (les quantités de véhicules vendus au Texas en 2011) de la session courante s c retourne la requête identifiée dans la table 1 par q pred (les quantités de véhicules vendus dans les villes du Texas en 2011). 4.4. Ordonner les recommandations candidates A partir de l ensemble des recommandations obtenu précédemment, l idée est de sélectionner les recommandations les plus pertinentes. Nous considérons que nous ne pouvons pas avoir de critère de satisfaction exprimé par l utilisateur. Par conséquent, un ordonnancement de requêtes, qui ordonne les recommandations candidates, est difficile à proposer. A l heure actuelle, les solutions que nous pouvons considérées sont : (i) ordonner les candidats en fonction de leur proximité avec la dernière requête de la session courante, (ii) ordonner les candidats en fonction de leur nombre d occurrences dans les logs, (iii) ordonner les candidats en fonction de la position de l opération candidate dans le squelette du log, i.e. les opérations les plus récentes lancées dans le log seront utilisées pour construire les premières requêtes de l ensemble des requêtes recommandées. Tout d abord, nous ne connaissons ni la densité du log ni son contenu. Ainsi, ordonner les candidats en fonction de leur nombre d occurrences dans les logs peut être difficile, si, par exemple, chaque candidat apparait le même nombre de fois. Toujours pour des raisons de rapidité, ordonner les candidats 2. Le médoïde d un ensemble de requêtes appartient à cet ensemble et est la requête qui minimise les distances avec les autres requêtes de l ensemble.

14 e soumission à. en fonction de leur proximité avec la dernière requête de la session courante peut être chronophage. Pour ces raisons, les candidats sont donc ordonnés en fonction de la position de l opération candidate dans le squelette du log. Finalement, notre proposition de démarrage à froid pour un système de recommandations, qui sera implémentée dans nos travaux futurs, consiste à : 1) Obtenir les squelettes des requêtes du log (précédemment lancées sur un cube similaire) en utilisant notre algorithme LogSquel ; 2) Prédire les opérations candidates en utilisant le squelette de la session courante et l ensemble des squelettes des sessions du log et la fonction de concordance EdH entre le squelette de la session courante et l ensemble des squelettes des sessions, dans notre algorithme P redictopcandidates ; 3) Obtenir les recommandations candidates en combinant la dernière requête de la session courante et les opérations candidates ; et 4) Ordonner les requêtes candidates en fonction de la position de l opération candidate dans le squelette du log. 5. Conclusion et discussions Dans cet article, nous avons proposé un système de recommandation lors de l exploration de nouveaux cubes de données. Notre processus de prédictions de requêtes est basé sur l analyse du comportement du décideur durant ses sessions d analyse (séquences de requêtes), et, sur le comportement de l utilisateur au cours de sessions d analyses passées sur un autre système. Cette approche prédictive soulève quatre défis : (1) extraire le comportement des utilisateurs en définissant le squelette de requêtes en cours et en analysant les journaux de requêtes sur d anciens cubes de données (2) prévoir des opérations candidates de manipulation OLAP via la correspondance de squelettes de requêtes, (3) sélectionner les opérations pertinentes parmi l ensemble précédemment défini,(4) classer ces recommandations candidates. Ce système de recommandation basé sur le principe du démarrage à froid sera utilisé jusqu à ce que le système recueille suffisamment de données utilisateur sur leurs analyses décisionnelles afin de pouvoir utiliser un système de recommandation standard. A court terme, nous avons l intention de réaliser des expérimentations et d utiliser un cadre d application concret. Cela nous permettra de tester nos algorithmes dans un contexte précis et de répondre aux questions suivantes : comment identifier le meilleur squelette de requête si nous en avons plusieurs? Comment les ordonner lorsque le système propose un trop grand nombre de suggestions? De plus, nous avons l intention de prendre en compte d autres opérateurs OLAP plus complexes (NEST, Drill-Across...). Enfin, nous souhaitons également appliquer nos algorithmes sur des schémas multidimensionnels possédant des différences plus importantes que ceux étudiés dans cet article (des nouveaux schémas composés de dimensions ou de faits différents).

Démarrage à froid, Reco, OLAP 15 Références Adomavicius G., Tuzhilin A., «Toward the Next Generation of Recommender Systems : A Survey of the State-of-the-Art and Possible Extensions», IEEE Trans. Knowl. Data Eng., vol. 17, n o 6, 2005, p. 734-749. Baeza-Yates R. A., «Query intent prediction and recommendation», RecSys, 2010, p. 5-6. Bellatreche L., Giacometti A., Marcel P., Mouloudi H., Laurent D., «A personalization framework for OLAP queries», DOLAP, 2005, p. 9-18. Cariou V., Cubillé J., Derquenne C., Goutier S., Guisnel F., Klajnmic H., «Built-In Indicators to Discover Interesting Drill Paths in a Cube», Da- WaK, 2008, p. 33-44. Chatzopoulou G., Eirinaki M., Polyzotis N., «Query Recommendations for Interactive Database Exploration», SSDBM, 2009, p. 3-18. Colliat G., «OLAP, Relational, and Multidimensional Database Systems», SIGMOD Record, vol. 25, n o 3, 1996, p. 64-69. Giacometti A., Marcel P., Negre E., «Recommending Multidimensional Queries», DaWaK, 2009, p. 453-466. Giacometti A., Marcel P., Negre E., Soulet A., «Query Recommendations for OLAP Discovery-Driven Analysis», IJDWM, vol. 7, n o 2, 2011, p. 1-25. Golbandi N., Koren Y., Lempel R., «Adaptive bootstrapping of recommender systems using decision trees», WSDM, 2011, p. 595-604. Golfarelli M., Rizzi S., Biondi P., «myolap : An Approach to Express and Evaluate OLAP Preferences», IEEE Trans. Knowl. Data Eng., vol. 23, n o 7, 2011, p. 1050-1064. Jerbi H., Ravat F., Teste O., Zurfluh G., «Preference-Based Recommendations for OLAP Analysis», DaWaK, 2009, p. 467-478. Khoussainova N., Balazinska M., Gatterbauer W., anddan Suciu Y. K., «A Case for A Collaborative Query Management System», CIDR, 2009. Kimball R., The Data Warehouse Toolkit : Practical Techniques for Building Dimensional Data Warehouses, John Wiley, 1996. K lopotek M. A., «Approaches to cold start in Recommender Systems», Proceedings of 10th International Conference on Artificial Intelligence, 2008, p. 29 33. Lyman P., Varian H. R., Charles P., Good N., Jordan L. L., Pal. J., «How much information?», Available at http :www2.sims.berkeley.eduresearchprojectshow-much-info-2003, 2003.

16 e soumission à. Marcel P., Negre E., «A survey of query recommendation techniques for datawarehouse exploration», EDA, 2011. Negre E., «Exploration collaborative de cubes de données», Université François-Rabelais de Tours, 2009. PhD thesis, Rashid A. M., Karypis G., Riedl J., «Learning preferences of new users in recommender systems : an information theoretic approach», SIGKDD Explorations, vol. 10, n o 2, 2008, p. 90-100. Ravat F., Teste O., Tournier R., Zurfluh G., «Graphical Querying of Multidimensional Databases», ADBIS, 2007, p. 298-313. Ravat F., Teste O., Tournier R., Zurfluh G., «Algebraic and Graphic Languages for OLAP Manipulations», IJDWM, vol. 4, n o 1, 2008, p. 17-46. Romero O., Marcel P., Abelló A., Peralta V., Bellatreche L., «Describing analytical sessions using a multidimensional algebra», Proceedings of DaWaK 11, 2011, p. 224 239. Sapia C., «On Modeling and Predicting Query Behavior in OLAP Systems», DMDW, 1999, page 2. Sarawagi S., «User-Adaptive Exploration of Multidimensional Data», VLDB, 2000, p. 307-316. Sboui T., Salehi M., Bédard Y., «A Systematic Approach for Managing the Risk Related to Semantic Interoperability between Geospatial Datacubes», IJAEIS, vol. 1, n o 2, 2010, p. 20-41. Schein A. I., Popescul A., Ungar L. H., Pennock D. M., «Generative Models for Cold-Start Recommendations», IN PROCEEDINGS OF THE 2001 SIGIR WORKSHOP ON RECOMMENDER SYSTEMS, 2001. Stefanidis K., Drosou M., Pitoura E., «You May Also Like Results in Relational Databases», Proc. of PersDB 2009, in conjunction with the VLDB 2009 Conference, 2009. White R. W., «Studying the use of popular destinations to enhance Web search interaction», ACM SIGIR 07. ACM, Press, 2007, p. 159 166. Yang X., Procopiuc C. M., Srivastava D., «Recommending Join Queries via Query Log Analysis», ICDE, 2009, p. 964-975.