• Aucun résultat trouvé

NK -C ORRELATED S AMPLE G RAPH POUR IDENTIFIER LES RELATIONS

Algorithm 8 Fonction pour calculer l’intersection de matrices

1: for (int i=0 ; i < nbLignes ; i++) do

2: for (int j=0 ; j < nbColonnes ; j++) do

3: if (Intersection[i,j] != ∅) then

4: int sum=0;

5: for each k ∈ Intersection[i,j] do

6: sum += M1[i,k] * M2[k,j]; 7: end for 8: M[i,j] = sum; 9: end if 10: end for 11: end for Mf inale A B C D A 0 1 1 2 B 0 1 0 1 C 0 0 1 1 D 0 0 0 0

Table 6.3 – Matrice finale Mf inale = M1 × M2.

• Cas de deux matrices du degré 1. La valeur à définir dans M[i,j] est égale au nombre d’éléments de l’intersection des lignes[i] et des colonnes[j]. En effet, le calcul est la somme des multiplications entre deux éléments valant 1, il n’y a donc aucun intérêt à calculer 1 * 1, il suffit de savoir combien de fois cela est fait.

• Cas d’une seule matrice de degré 1. Le calcul est basé sur la multiplication des valeurs de la matrice de degré 1 (M1) (qui ne peut être que 1 ou 0 mais on ne considère que l’indice pour une valeur non nulle), et des valeurs v de l’autre matrice M2. Ainsi 1 ∗ v = v, la ligne 9 de l’algorithme doit donc être modifiée par valeur+ = M2[Lignes[i][l]][ j];.

• Cas sans matrice de degré 1. Dans ce cas, il n’y a pas d’optimisation et le cal-cul doit être entièrement effectué. La ligne 9 doit donc être modifiée par sum+ = M1[i][Lignes[i][l]] ∗ M2[Lignes[i][l]][ j]; (parce que Lignes[i][l] = Colonnes[j][c] en cas d’intersection).

6.6.3/ COMPLEXITÉ DE LALGORITHME DE MULTIPLICATION DINTERSECTION NON NUL

Considérons n comme le nombre d’éléments dans l’ensemble de données. L’algorithme 9 qui calcule la multiplication de deux matrices est tel que :

• ligne 1: θ(n) • ligne 2: θ(n)

80 CHAPTER 6. NK-CSG POUR IDENTIFIER LES RELATIONS MANQUANTES

Alors la complexité est θ(n ∗ n ∗ 2n) = θ(2n3) ≡ θ(n3).

6.6.4/ COMPLEXITÉ DE LA MÉTHODE DU POLYNÔME DE MATRICES • Calcul des lignes: θ(n2)

• Calcul des colonnes: θ(n2)

• Multiplication M2 = M1 * M1: θ(n3) • Multiplication M3 = M1 * M2: θ(n3) • Somme M1 + M2 + M3: θ(n)

Alors la complexité est θ(2n2+ 2n3+ n) ≡ θ(n3)

6.6.5/ SÉMANTIQUE DE LA PONDÉRATION DANS LE CADRE DES RELATIONS DI

-RECTES OU INDI-RECTES

Selon le type de relation (directe ou indirecte) que l’on souhaite prendre en compte, il est possible de choisir d’ajouter du poids aux matrices. Dans le cas d’une relation réelle, c’est-à-dire celles indiquées dans le graphe du jeu de données, i.e. une relationdirecte, qui signifie que l’on s’intéresse simplement à distinguer ces relations existantes entre elles. Par contre, si l’on recherche une relation principale (cachée) indirecte, il ne faut pas pondérer la matrice. En effet, plus la puissance d’une matrice est grande, plus ses valeurs sont élevées.

Le principe de la matrice pondérée est de considérer que plus la matrice est puissante, plus les chemins sont longs. Donc, plus les nœuds sont éloignés, moins ils sont con-cernés. Il est donc proposé de diviser chaque valeur de la matrice par sa puissance avant de les cumuler.

Ainsi si l’on est intéressé par des liens existants réellement dans les données, un calcul pondéré est la solution.

Par ailleurs, si l’on souhaite découvrir ce qui est caché derrière les données, la solution non pondérée est la meilleure. En montrant les résultats, la machine nous dit ce que nous soupçonnions au début : la relation la plus forte indique A → D.

Cette approche soutend l’Intuition Artificielle.

6.7/ E

XPÉRIMENTATIONS

Le projet ANR HYBRIDE mené par le LORIA, laboratoire pour lequel j’ai effectué un ser-vice d’ATER à la suite de mon post doctorat, m’a permis de confronter ce sujet à un cas réel. Ce projet visait à développer de nouvelles méthodes et de nouveaux outils pour guider la découverte de connaissances à partir de textes issues des méthodes de traite-ment du langage naturel (NLP) et d’analyse de données (KDD). L’idée principale était de

6.8. CONCLUSION ET AMÉLIORATIONS 81

concevoir un processus menant à une interaction entre la NLP et le KDD où les méth-odes de NLP guident les méthméth-odes d’exploration de données et réciproquement, pour analyser et exploiter les documents textuels en fonction de leur contenu. Les méthodes KDD utilisées incluaient l’Analyse Formelle de Concepts (FCA) qui permet de regrouper les propriétés des objets en partage. Ma contribution a consisté à inclure les polynômes de matrices d’adjacence (nk-CSG), et ont permis de mettre en évidence les relations indi-rectes les plus intéressantes. En travaillant sur le jeu de données d’Orphadata, en partic-ulier avec les maladies rares liées aux symptômes et les maladies rares liées aux gènes. Mon approche a permis d’identifier des relations indirectes: entre gènes, symptômes et maladies non mentionnées dans l’ensemble de données et significatives d’erreurs ou d’oublis.

6.8/ C

ONCLUSION ET AMÉLIORATIONS

Les humains sont capables d’avoir l’intuition mais ne peuvent pas l’appliquer à une énorme quantité de données. Au contraire, l’ordinateur peut gérer un tel volume mais ne sait pas comment “ressentir” les données. Donc, cette approche s’intéresse à mélanger ces deux forces en permettant à l’ordinateur de se doter d’une l’intuition.Cette approche est basée sur la théorie des graphes car elle permet (i) de représenter facilement les relations entre éléments (relations dirigées ou non dirigées), (ii) de gérer leur matrice d’adjacence qui est facile à stocker et à manipuler pour le calcul, (iii) permet exploiter la théorie consistant à dire que le fait d’élever une matrice à une puissance x donne le nombre de chemins distincts de longueur x entre chaque paire de nœuds. J’introduis la notion de matrice polynomiale pour exprimer la corrélation entre les noeuds visant à ex-traire le graphe échantillon nk-correlated caractérisant les n relations les plus fortes dans le graphe ou dans une collection de graphes. La relation la plus forte étant celle ayant le plus grand nombre de chemins allant de la longueur 1 (relation directe) à k (relation indirecte).

De plus, cette approche est capable de distinguer les liens existants (informations ex-plicites) ou de mettre en évidence des relations fortes inconnues (informations imex-plicites). Enfin, cette approche est adaptable à différents types d’extraction des n relations perme-ttant de répondre aux besoins de l’utilisateur.

Les différents algorithmes présentés se veulent intéressants, mais n’ont pas été étudiés pour être compétitifs. Ils permettent de répondre aux expérimentations menées et per-mettent au lecteur d’appréhender facilement le processus. Mais plusieurs optimisations peuvent être facilement réalisées. En effet, la méthode de multiplication matricielle d’intersection non nulle a une complexité de θ(n3). Cet algorithme peut être modifié par des algorithmes optimisés tels que Strassen (θ(n2.807)) ou Coppersmith-Winograd (θ(n2.376)).

Par ailleurs, comme la méthode est basée sur des multiplications de matrices, elles pour-raient être facilement calculées en parallèle.

82 CHAPTER 6. NK-CSG POUR IDENTIFIER LES RELATIONS MANQUANTES