16
1 Introduction à la Recherche en Laboratoire Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine Ouaari Grenoble INP - Ensimag Février Mai 2014

Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

1

Introduction à la Recherche en Laboratoire

Factorisation de matrices

et prédiction de génotypes manquants

Chems-Eddine Ouaari

Grenoble INP - Ensimag

Février – Mai 2014

Page 2: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

2 IRL, Février - Mai 2014

1 TABLE DES MATIÈRES

2 Introduction ......................................................................................................................... 3

2.1 Contexte de travail ....................................................................................................... 3

2.2 État de l’art du sujet ..................................................................................................... 3

2.2.1 Prédiction de génotypes manquants / Genotype imputation .................................. 3

2.2.2 Factorisation de matrices ...................................................................................... 3

2.3 Cas du Netflix Challenge.............................................................................................. 4

2.4 Méthodes de factorisation de matrices ......................................................................... 5

3 Expérimentation de différentes implémentations de la factorisation de matrices ................. 6

3.1 Implémentation en Python par Albert Au Yeung (2010) ............................................... 6

3.2 Implémentation en MATLAB par Jean-Philippe Brunet (2004) ..................................... 7

3.3 Implémentation en MATLAB par Yifeng Li (2013) ........................................................ 8

4 Implémentation de la factorisation de matrices par ALS en MATLAB .................................. 9

5 Conclusion .........................................................................................................................12

5.1 Résumé ......................................................................................................................12

5.2 Bilan de l’IRL ...............................................................................................................13

5.3 Remerciements ...........................................................................................................13

6 References ........................................................................................................................14

Annexe : implémentation de la factorisation de matrices par ALS en MATLAB .........................15

Page 3: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

3 IRL, Février - Mai 2014

2 INTRODUCTION

2.1 CONTEXTE DE TRAVAIL J’ai effectué mon Introduction à la Recherche en Laboratoire au sein de l’équipe Biologie

Computationnelle et Mathématiques du Laboratoire TIMC-IMAG. Les recherches effectuées par

cette équipe tournent autour de trois axes majeurs : génomique, biologie des systèmes et

modélisation mathématique de systèmes biologiques complexes.

Le sujet sur lequel j’ai travaillé a été proposé et encadré par Michael Blum, chercheur au

CNRS et qui donne des cours de probabilités et statistiques à l’Ensimag.

2.2 ÉTAT DE L’ART DU SUJET

2.2.1 Prédiction de génotypes manquants / Genotype imputation

Genotype imputation est un terme qui décrit le procédé de prédiction des données

manquantes dans les génotypes pour un échantillon d’individus. Il y a plusieurs scénarios

auxquels le genotype imputation peut s’appliquer. Le plus souvent est celui où on utilise un panel

référence d’haplotypes afin de prédire les données manquantes dans le génotype d’un échantillon

d’individus.

Il existe plusieurs méthodes de prédiction de génotypes manquants. La plupart sont

basées sur l’utilisation d’une base de données référence, et on y retrouve différents software

comme fastPHASE (Scheet and Stephens 2006), MaCH (Li and Abecasis 2006 ; Li et al.

2009,2010), IMPUTE2 (Marchini et al. 2007 ; Howie et al. 2009), BEAGLE (Browning and

Browning 2009) et Mendel (Ayers and Howie 2010). Mais il y a des méthodes plus récentes se

basant sur le fait que les données sur un même haplotype sont a priori corrélées, et donc qu’on

peut utiliser la factorisation de matrices afin de compléter les données manquantes, surtout que

l’on ne peut pas toujours avoir un panel référence pour certains génotypes (plantes par exemple).

2.2.2 Factorisation de matrices

Le but de la complétion de matrice est de reconstruire entièrement une matrice à partir

d’une petite partie de données observées. La complétion de matrices via factorisation pour la

prédiction de données manquantes est assez populaire en machine learning dans des domaines

autres que la génétique. On retrouve parmi les applications les plus célèbres de cette méthode :

le Netflix Challenge dans le domaine des systèmes de recommandation. Il existe également des

implémentations d’algorithmes de factorisation de matrices appliquées à la génomique comme

MENDEL-IMPUTE (Chi et al. 2013) implémenté en MATLAB qui a la particularité d’être à la fois

rapide et efficace.

On peut voir ici une comparaison entre une méthode de prédiction basée sur un modèle

(MaCH) et la méthode de complétion de matrice : (Chi et al. 2013)

Page 4: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

4 IRL, Février - Mai 2014

Propriétés Complétion de matrices MaCH

Nécessite un panel référence d’haplotypes Non Oui (rapide) Non (lent)

Effectue un phasage Non Oui

Traite des échantillons reliés Oui Non (sauf si on les traite comme non reliés)

Sortie de dosage Oui Oui

Prédit des données d’autres omics Oui Non

Implémentation Facile Compliquée

L’objectif du sujet était donc d’explorer des algorithmes de factorisation de matrices

notamment l’ALS (Alternating Least Squares Matrix factorisation), et de les implémenter en

MATLAB, et de les tester sur un jeu de données s’agissant ici d’un génotype contenant seulement

les SNPs du chromosome 22 d’un échantillon de 455 individus.

2.3 CAS DU NETFLIX CHALLENGE

Les données de Netflix consistaient en notations (1, 2, 3, 4 ou 5) de 480 189 utilisateurs sur

17 770 films différents. Cependant chaque utilisateur ne note qu’un petit sous-ensemble de ces

films. L’ensemble d’apprentissage ne contenait donc que 100 480 507 notations. L’objectif du

challenge était alors de compléter une matrice 480 183 × 17 770 avec à peu près 99% de

données manquantes au départ. Ces données pourront être analysées et utilisées afin de

recommander les bons films aux bons utilisateurs.

L’idée est de prendre un certain nombre 𝑐 de critères (genre du film, réalisateur, acteurs,

public visé…), on peut donc construire une matrice 𝐹 représentant la correspondance entre

chaque film et ces critères (chaque ligne représente un film, et chaque colonne un critère), et une

autre matrice 𝑈 représentant les affinités de chaque utilisateur avec ces critères (chaque ligne

représente un utilisateur et chaque colonne un critère). Si 𝑅 représente la matrice de toutes les

notations, alors : �̂� = 𝑈. 𝐹𝑇 où �̂� est une approximation de 𝑅. Ceci revient au fait que le produit

matricielle de 𝑈 et 𝐹𝑇 ici donnerait l’appréciation globale d’un utilisateur pour un film en

considérant les critères caractéristiques de ce dernier.

Soit 𝑝𝑢 une ligne de 𝑈 correspondant à l’utilisateur 𝑢, 𝑞𝑓 une ligne de 𝐹 correspondant au

film 𝑓 et 𝑟𝑢𝑓 la note qu’a donné l’utilisateur 𝑢 au film 𝑓. On cherche donc à minimiser le problème

des moindres carrés suivant :

min𝑈,𝐹

∑ (𝑟𝑢𝑓 − 𝑝𝑢. 𝑞𝑓𝑇

(𝑢,𝑓)∈𝜔 )² ( 1 )

Ici, 𝜔 est l’ensemble d’apprentissage i.e. les couples (𝑢, 𝑓) où la note 𝑟𝑢𝑓 est connue. Le

système complète les données manquantes en ajustant les valeurs déjà observées. Un terme de

régularisation 𝜆 (‖𝑞𝑓‖2

+ ‖𝑝𝑢‖2) pourrait être ajouté au problème afin de ne pas trop ajuster les

données déjà observées (Koren et al. 2009).

Page 5: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

5 IRL, Février - Mai 2014

Analogie avec les génotypes

Les génotypes peuvent être représentés par une matrice dont les lignes correspondent aux

individus, et les colonnes aux SNPs, et dont les valeurs appartiennent à {0,1,2} (en comptant le

nombre d’allèles références).

Les critères de décomposition ici seraient au nombre de 2 : la correspondance paternelle,

et la correspondance maternelle.

2.4 METHODES DE FACTORISATION DE MATRICES

Pour minimiser l’équation ( 1 ), on peut utiliser deux méthodes différentes : Stochastic

Gradient Descent et Alternating Least Squares (ALS). (Koren et al. 2009)

Stochastic Gradient Descent

On boucle sur toutes les notations de l’ensemble d’apprentissage, et pour chaque cas

l’erreur de prédiction est calculée de la manière suivante :

𝑒𝑢𝑓 = 𝑟𝑢𝑓 − 𝑝𝑢. 𝑞𝑓𝑇

Et on modifie donc les facteurs 𝑝𝑢 et 𝑞𝑓 de la manière suivante (𝛼 étant le pas d’avancement) :

{𝑝𝑢 ← 𝑝𝑢 + 𝛼. 𝑒𝑢𝑓. 𝑞𝑓

𝑞𝑓 ← 𝑞𝑓 + 𝛼. 𝑒𝑢𝑓. 𝑝𝑢

Le temps d’exécution de cette méthode est relativement court.

Alternating Least Squares

Le principe est de calculer alternativement l’un des deux facteurs 𝑝𝑢 et 𝑞𝑓, puis de calculer

l’autre. Ce qui revient à rendre le problème de l’équation ( 1 ) quadratique, problème que l’on sait

résoudre de manière optimale.

De plus, contrairement à la méthode Stochastic Gradient Descent, on ne boucle pas sur

chaque notation connue à fois, mais sur chaque vecteur utilisateur, puis sur chaque vecteur film

(en ne gardant que les valeurs de l’ensemble d’apprentissage pour chaque vecteur).

Cette méthode a un temps d’exécution plus long que la méthode précédente, mais

présente une erreur quadratique moyenne bien plus faible, et permet de mieux exploiter les

données de l’ensemble d’apprentissage qu’il soit dense ou pas.

Page 6: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

6 IRL, Février - Mai 2014

3 EXPERIMENTATION DE DIFFERENTES IMPLEMENTATIONS

DE LA FACTORISATION DE MATRICES

Méthode de test : Validation croisée

On génère aléatoirement deux matrices 𝑀1 et 𝑀2 respectivement de tailles 𝑚 × 2 et

2 × 𝑛 , on effectue ensuite le produit matriciel 𝑀 = 𝑀1. 𝑀2 qui est une matrice de taille 𝑚 × 𝑛 dont

les données sont corrélées.

Pour évaluer l’efficacité de l’approximation effectuée par un programme, on calcule l’erreur

quadratique moyenne divisée par l’écart type 𝑠𝑑 des données de la matrice initiale (pour des

raisons de normalisation) :

𝑄𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑐_𝐸𝑟𝑟𝑜𝑟(𝑀, 𝑁) = 1

𝑠𝑑. 𝑚. 𝑛 √∑(𝑀𝑖𝑗 − 𝑁𝑖𝑗)2

𝑖,𝑗

On applique tout d’abord les programmes sur la matrice telle qu’elle est initialement, afin

d’avoir une idée de l’approximation en partant de 100% de données observées.

Ensuite, on enlève des données à la matrice initiale (en les mettant à NaN), et on exécute

les programmes sur la matrice ainsi obtenue. On compare ensuite le résultat avec la matrice

initiale. On suit l’évolution de l’erreur selon le pourcentage de données manquantes.

On crée également des matrices dont les données sont corrélées par bloc : on génère

aléatoirement 𝑟 matrices 𝑀1, … , 𝑀𝑟 de taille 𝑚 × 2, et 𝑟 matrices 𝑁1, … , 𝑁𝑟 où pour 𝑖 ∈ {1, . . 𝑟} 𝑁𝑖

est de taille 2 × 𝑛𝑖. On garde à la fin la matrice :

𝑀 = [𝑀1. 𝑁1| … |𝑀𝑟. 𝑁𝑟]

3.1 IMPLEMENTATION EN PYTHON PAR ALBERT AU YEUNG (2010)

Une implémentation assez simple de la méthode Stochastic Gradient Descent en utilisant

le langage Python et le package numpy.

Cependant, l’exécution de ce programme sur une simple matrice 5 x 4 prenait un temps

considérable (de l’ordre de 40 s), ce qui est sans doute dû à la non-adaptabilité de Python pour

le genre d’opérations coûteuses effectuées.

De plus le programme implémenté considère 0 comme étant une donnée manquante,

l’application au cas d’un génotype n’est donc pas possible.

Pour ces différentes raison, l’utilisation de cette implémentation dans le cadre de mon travail

a très vite été abandonnée.

Page 7: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

7 IRL, Février - Mai 2014

3.2 IMPLEMENTATION EN MATLAB PAR JEAN-PHILIPPE BRUNET (2004)

Une implémentation en MATLAB d’un algorithme de factorisation de matrices non-

négatives. Ce dernier consiste en factoriser une matrice en produit de deux matrices, avec la

particularité que les trois matrices ne contiennent pas de termes négatifs.

La matrice d’entrée ne doit contenir que des valeurs positives. En revanche, ce

programme ne gère pas les données manquantes dans la matrice. Donc, au lieu d’enlever des

données de la matrice, on y introduit des valeurs sortant du champ des données initiales

(exemple : dans une matrice dont les valeurs sont dans [0,2], les données manquantes sont

représentées par des 5).

Figure 1 - Evolution de l'erreur - Cas nmf de J-P Brunet pour une matrice 100x1000 de valeurs dans [0,2]

L’erreur dans le cas 0% de données manquantes est de : 3.5 10−6

On remarque sur la Figure 1 que l’erreur augmente en fonction du pourcentage de

données manquantes, ceci est sûrement dû au fait qu’insérer des valeurs hors-champ dans la

matrice initiale altère la précision de l’approximation finale, cette méthode n’est donc pas très

adaptée à l’étude qu’on veut mener. Néanmoins, on remarque que même à 80% de données

altérées, on reste à une erreur inférieure à 0.07 pour un champ de valeurs initiale de [0,2].

Page 8: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

8 IRL, Février - Mai 2014

Cette implémentation présente donc une approximation finale assez bonne, avec un

temps d’exécution respectable (environ 5s pour une matrice 100 x 1000). En revanche, elle ne

prend pas en compte les données manquantes, et ne peut donc pas accomplir l’objectif fixé

(complétion de matrices).

3.3 IMPLEMENTATION EN MATLAB PAR YIFENG LI (2013)

Yifeng Li fournit une bibliothèque d’outils de factorisation de matrices non-négatives pour

le Data Mining en Biologie implémentés en MATLAB (The non-negative matrix factorization

toolbox for biological data mining).

On y retrouve une couverture assez complète des différents algorithmes de factorisation de

matrices, notamment des outils utilisant des règles multiplicatives d’optimisation du coût, ou l’ALS.

Mais ce qui nous intéresse, c’est la complétion de matrices, et l’outil le plus à même

d’accomplir cette tâche parmi ceux proposés dans la bibliothèque est le : wnmfrule (Weighted-

NMF optimized by multiplicative rules). Ce programme, en plus d’implémenter l’algorithme de

factorisation de matrices non-négatives et d’être optimisé par les règles multiplicatives, permet

de traiter des matrices contenant des données manquantes (sous forme de NaN). En effet, il

associe aux données n’appartenant pas à l’ensemble d’apprentissage un poids de 0, ce qui évite

de les prendre en compte dans la résolution du problème de minimisation de l’erreur quadratique.

Figure 2 - Evolution de l'erreur - Cas wnmfrule de Y.Li pour une matrice 100x1000 de valeurs dans [0,2]

On remarque sur la Figure 2 que l’erreur oscille autour de 4.3 10−5.

De plus le temps d’exécution est bien optimisé (3s pour une matrice 100 x 1000) ce qui

sans doute dû aux règles multiplicatives.

Page 9: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

9 IRL, Février - Mai 2014

Cependant son application au génotype nécessite quelques modifications, mais du fait

de la forte interaction entre les différents outils et fonctions de la bibliothèque, effectuer ces

modifications demanderait une exploration plus profonde de cette bibliothèque. Et il a été donc

décidé de ne pas poursuivre l’étude de ce cas (notamment pour des raisons de manque de

temps).

4 IMPLEMENTATION DE LA FACTORISATION DE MATRICES

PAR ALS EN MATLAB

Se référer à l’annexe pour le programme représentant mon implémentation de la factorisation

de matrices en utilisant l’ALS en MATLAB.

L’implémentation a été effectuée en se basant sur l’algorithme expliqué par Y.Koren (2009)

(que l’on peut retrouver à la section 2.2).

Figure 3 - Evolution de l'erreur - Cas ALS sur une matrice 100x1000 de valeurs dans [0,2]

On remarque sur la Figure 3 que - malgré quelques oscillations au début - l’erreur reste

très petite (de l’ordre de 10−15 ) ce qui prouve bien l’efficacité au niveau précision de la méthode

ALS qui permet de se placer dans le cas de résolution d’un problème quadratique, qu’on sait

résoudre de manière optimale. En revanche, cette méthode demande un temps d’exécution

assez conséquent (82 s pour une matrice 100x1000 et 0% de données manquantes, mais on a

10s avec 90% de données manquantes) (voir Figure 4).

Page 10: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

10 IRL, Février - Mai 2014

Figure 4 - Evolution du temps d'exécution selon le pourcentage de données manquantes

La courbe de temps de la Figure 4 est décroissante, ce qui est justifié par le fait boucle

sur un ensemble d’apprentissage plus petit (il y a moins de données observées).

On voit donc que si les données sont effectivement corrélées, alors un petit sous-

ensemble de données effectivement observées suffit à retrouver une très bonne approximation

de la matrice de données originale.

Page 11: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

11 IRL, Février - Mai 2014

Cas d’une matrice contenant des données corrélées par blocs

On a ici une matrice contenant deux blocs (100 x 350 et 100 x 650) de données corrélées

entre elles, mais les blocs sont non-reliés.

Figure 5 - Evolution de l'erreur selon le découpage en blocs choisi

Le programme est tout d’abord appliqué à la matrice entière (Figure 5 : courbe bleue

foncé), puis en découpant la matrice en deux blocs : 100 x 200 et 100 x 800 (Figure 5 : courbe

bleue cyan), puis 100 x 350 et 100 x 650 (Figure 5 : courbe verte) et enfin 100 x 400 et 100 x 600

(Figure 5 : courbe rouge).

On remarque que dans le cas de la matrice entière et du premier découpage, l’erreur est

relativement très grande par rapport au reste, puis plus on se rapproche du bon découpage

l’erreur diminue (comme on le voit avec la courbe rouge), et si on tombe sur le bon découpage

on revient à une erreur très petite (de l’ordre de 10−15).

On peut donc penser qu’en appliquant le programme avec différents découpages sur un

génotype, on peut, en comparant les erreurs obtenues, tomber sur les différents haplotypes

composant ce génotype.

Test sur le jeu de données et limites du programme

En appliquant le programme au génotype en entier avec 0% de données manquantes,

on obtient une erreur de 0.001 après 1h d’exécution, résultat assez logique car les données ne

sont corrélées que sur certaines régions du génotype.

Page 12: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

12 IRL, Février - Mai 2014

En découpant le génotype en bloc de 2000 SNPs, on obtient (après 3h d’exécution) les

résultats suivants :

Numéro du bloc Erreur relative (par rapport au bloc correspondant dans la matrice initiale)

1 0.003283

2 0.003236

3 0.003428

4 0.003249

5 0.003287

6 0.003297

7 0.003259

8 0.003556

9 0.003319

10 0.003539

En enlevant 90% des données, on retombe à peu près sur les mêmes résultats (mais on

retombe à 15mn d’exécution), ce qui prouve l’efficacité au niveau précision de l’algorithme, et

confirme ainsi le faible taux de l’ensemble d’apprentissage dont le programme a besoin.

On arrive donc aux limites du programme, et on peut percevoir que le problème majeur

rencontré ici est le temps d’exécution qui est très long. De plus, un autre problème rencontré est

le fait que la méthode de factorisation de matrice renvoie une matrice complétée avec des valeurs

réelles, alors que pour un génotype les valeurs sont dans {0,1,2}. Une solution proposée par Chi

et al. (2013) est de tout simplement arrondir les valeurs obtenues à l’entier le plus proche parmi

0, 1 et 2.

5 CONCLUSION

5.1 RESUME

La factorisation de matrices est un outil assez puissant dans le cadre de la complétion de

matrices dans le cas où les données sont a priori corrélées. Il y a plusieurs méthodes de

factorisation de matrices (Stochastic Gradient Descent, ALS …) ainsi que plusieurs modèles

(NMF ou pas…) chaque méthode ou modèle étant plus adapté à un scénario plus qu’un autre,

dépendant des critères habituelles (temps d’exécution, précision de l’approximation) ou de la

situation (complétion de matrices, juste factorisation…).

L’ALS est réputé pour être un algorithme assez lent, mais doté d’une précision assez forte.

Je n’ai malheureusement pas pu appliquer -faute de temps- mon programme implémentant l’ALS

afin de cibler les haplotypes au sein d’un génotype, et de voir s’il peut être utile dans un scénario

nécessitant la prédiction de données manquantes dans un génotype.

Page 13: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

13 IRL, Février - Mai 2014

Critères Implémentation en Python par Yeung (2010)

Nmf de Brunet (2004)

Wnmfrule de Li (2013)

Mon implémentation

de l’ALS

Temps d’exécution

Très long 5s pour une matrice

100x1000

3s pour une matrice

100x1000

82s pour une matrice

100x1000

Précision NA 10−2 10−5 10−15

Difficulté d’implémentation

NA Simple Complexe Simple

Prise en compte des données manquantes

NA Non Oui Oui

5.2 BILAN DE L’IRL

Choisir ce module d’Introduction à la Recherche en Laboratoire m’a permis de découvrir la

recherche sous différents aspects, en étant vraiment plongé dans le milieu, ce qui change des

simples présentations habituelles. J’ai bien aimé la méthodologie : Mise en place du problème,

lecture et exploitation d’articles (aspect -à mon avis- significatif de la vie de chercher) qui sont en

général en anglais ce qui permet de s’habituer à la lecture de textes scientifiques dans cette

langue. Puis une certaine liberté dans l’approche du sujet jusqu’à en arriver à l’expérimentation,

l’exploitation des résultats de l’expérimentation, la correction …

Il y a cependant quelques points que je regrette, notamment le fait de ne pas être aller plus

loin dans ce sujet à cause des fausses pistes exploitées au début. Et puis, j’aurais aimé plus

échanger avec les chercheurs et thésards au sein du laboratoire, afin d’en apprendre plus sur

leurs parcours et leurs travaux. Je n’ai malheureusement pas pu accorder autant de temps que

je voulais à ce sujet qui est fort intéressant qui permet plusieurs développements possibles. Ceci

est majoritairement dû à la charge -excessive- de travail demandée dans la filière MMIS en ce

semestre. De plus, le fait de travailler qu’une à deux fois par semaine sur mon sujet, je pense que

mon activité n’était pas aussi efficace qu’elle aurait pu être si les périodes de travail étaient plus

condensées (Mini-stage IRL par exemple).

5.3 REMERCIEMENTS

Je tiens à remercier Michael Blum, qui a proposé ce sujet, et qui m’a aidé et encadré durant

ce semestre, et qui m’a permis de plus m’intéresser à l’importance des statistiques et leurs

applications à différents domaines notamment la génomique.

Page 14: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

14 IRL, Février - Mai 2014

6 REFERENCES

Brunet, J.-P. (n.d.). Retrieved from

http://www.broadinstitute.org/mpr/publications/projects/NMF/nmf.m

Chi, E. C., Zhou, H., Chen, G. K., Ortega Del Vecchyo, D., & Lange, K. (2013). Genotype

imputation via matrix completion. Genome Research.

Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix Factorization techniques for Recommender

Systems. Computer.

Li, Y., & Ngom, A. (n.d.). The Non-Negative Matrix Factorization Toolbox in MATLAB. Retrieved

from https://sites.google.com/site/nmftool/

Marchini, J., & Howie, B. (2010). Genotype imputation for genome-wide association studies.

Nature Reviews, Genetics.

Yeung, A. A. (n.d.). Matrix factorization: a simple tutorial and implementation in Python.

Retrieved from http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-

tutorial-and-implementation-in-python/

Page 15: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

15 IRL, Février - Mai 2014

ANNEXE : IMPLEMENTATION DE LA FACTORISATION DE

MATRICES PAR ALS EN MATLAB

function [ R,P,Q,telapsed ] = als( M , k , verbose)

% Implementation of the Alternating Least Squares algorithm

% Chems-Eddine Ouaari - April 2014

%

%

% M (m,n) : original matrix.

% Numerical data only.

% Must be non negative.

% Missing data must be entered as NaN.

% k : number of desired factors (rank of the factorization).

% verbose : prints iteration count unless verbose is 0.

%

% R : m x n result matrix.

% P : m x k MF Factor.

% Q : k x n MF Factor.

% telapsed: Execution time of the program.

tstart = tic;

niter = 50;

[m,n] = size(M);

erreur = 10^(-6);

training = isnan(M);

P = rand(m,k);

Q = rand(k,n);

for i=1:niter

if verbose == 1

if mod(i,10) == 0

fprintf('Iter %i \n',i);

end

end

for u=1:m

U = [];

r = [];

for v =1:n

if training(u,v)==0

U = [U,Q(:,v)];

r = [r;M(u,v)];

end

end

G = U * (U');

temp = U * r;

% Resolution of the first least squares problem

P(u,:)=(inv(G) * temp)';

end

Page 16: Factorisation de matrices et prédiction de génotypes manquants - … · 2014. 5. 25. · Factorisation de matrices et prédiction de génotypes manquants Chems-Eddine OUAARI 3 IRL,

Factorisation de matrices et prédiction de génotypes manquants

Chems-Eddine OUAARI

16 IRL, Février - Mai 2014

for v = 1:n

V = [];

r = [];

for u = 1:m

if training(u,v)==0

V=[V;P(u,:)];

r=[r;M(u,v)];

end

end

% Resolution of the second least squares problem

Q(:,v) = inv((V') * V) * (V') * r ;

end

R = P*Q;

end

telapsed = toc(tstart);