Difference between revisions of "Fiche de suivi - Recommandation intelligente de films"

From air
Jump to navigation Jump to search
Line 50: Line 50:
   
 
===Tâches du Sprint1===
 
===Tâches du Sprint1===
* Établissement des vues principales côté client (recherche et annotation de films)
+
* T1. Établissement des vues principales côté client (recherche et annotation de films)
* Mise en place de tout le processus de pré-traitement des données et du premier layer (Embedding)
+
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)
* Création du classifieur (réseau neuronal) et de la structure de test du modèle crée
+
* T3. Mise en place du réseau neuronal (réseau neuronal simple)
  +
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)
* Récolter des données pour pouvoir tester le classifieur
 
  +
* T5. Mise en place de l'environnement système (Docker)
* Commencer l'entrainement et l'ajustement du classifieur une fois la structure mise en place
 
   
 
=== Semaine 2 : 30/01 - 05/02 ===
 
=== Semaine 2 : 30/01 - 05/02 ===
Line 76: Line 76:
 
** Utiliser Github pour héberger le site web
 
** Utiliser Github pour héberger le site web
   
* Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)
+
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)
* Creation d'un premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)
+
* T3. -> Creation d'un premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)
 
** prétraitement des textes via Doc2Vec (Coralie)
 
** prétraitement des textes via Doc2Vec (Coralie)
 
** prétraitement des mots via Glove (Elsa, Edwin, Julian)
 
** prétraitement des mots via Glove (Elsa, Edwin, Julian)
Line 162: Line 162:
   
   
===Etat des lieux de fin du Sprint1===
+
===État des lieux de fin du Sprint1===
   
 
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]
 
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]

Revision as of 16:16, 13 February 2017

Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017

Page d'accueil du projet

Équipe

  • Rachex Coralie (Chef de projet - Scrum Master)
  • Niogret Edwin (Responsable innovation)
  • Hattinguais Julian (Responsable qualité)
  • Navarro Elsa (Responsable communication, Médiatrice)
  • Dunand Quentin (Responsable des deadlines,Responsable du front-end)

Avancée du projet

Sprint 0

Sprint dédié aux travaux préparatoires du projet

  • Debriefing autour du projet
  • Renseignements sur les technologies et principaux défis techniques
  • Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités)
  • Choix technologiques
  • Préparation des environnements
  • Établissement de la liste des exigences fonctionnelles et non fonctionnelles


Sprint0-Semaine1.jpg

Semaine 1 : 23/01 - 29/01

  • Mise en place du wiki (Edwin)
  • Recherche sur les technologies et les problèmes techniques (Tous)
  • Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)
  • Mise en place d'un agenda pour le suivi du projet (Coralie)
  • Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)
  • Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.
  • Installation, compréhension et manipulation de Keras (Tous)
  • Recherche mise en place API-REST Python pour le back-end (Julian)
  • Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)
  • Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)
  • Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)
  • Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de GloVe.


  • Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)
  • Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).
  • Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).
  • Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).

Sprint 1

Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.

Sprint1-Scrumboard.png

Tâches du Sprint1

  • T1. Établissement des vues principales côté client (recherche et annotation de films)
  • T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)
  • T3. Mise en place du réseau neuronal (réseau neuronal simple)
  • T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)
  • T5. Mise en place de l'environnement système (Docker)

Semaine 2 : 30/01 - 05/02

Sprint1-Semaine2.jpg

Lundi

  • Préparation du premier sprint :
    • Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint
    • Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche
    • Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard
  • Mise au point sur l'arborescence du git / architecture du projet
  • Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU

Mardi

  • Réunion avec Didier Donsez :
    • Technologies : storm, spark, flint (temps réel) pour Twitter
    • Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker
    • Utiliser Github pour héberger le site web
  • T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)
  • T3. -> Creation d'un premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)
    • prétraitement des textes via Doc2Vec (Coralie)
    • prétraitement des mots via Glove (Elsa, Edwin, Julian)
    • récupération des données (Julian)
    • mise en place de l'embedding (Edwin)
    • mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)
    • Import des modules (Julian)

Mercredi

  • Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)
  • Chargement des images de films côté client (Quentin)
  • Poursuite du premier classifieur simple sur les données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)
    • prétraitement des textes via Doc2Vec (Coralie)
    • extraction des données JSON via l'API (Elsa)
    • prétraitement des genres (Julian)
    • prétraitement général (mise en forme de la matrice de données) (Edwin)
    • revue de code (Julian)

Jeudi

  • Cours de MPI - travail sur la communication au sein d'un groupe
  • Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)
  • Pagination et chargement d'images (Quentin)
  • Lien classifieur simple - preprocessing terminé (Elsa, aide d'Edwin)
  • Installation version GPU sur PC (Julian)
  • Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)

Vendredi

  • Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)
  • Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)
  • Insertion de Doc2Vec dans le classifieur (Julian)
  • Auto-formation sur Docker (Coralie, Edwin)
  • Déploiement sur github.io (Quentin)
  • Annotation de films pour constituer la base d'apprentissage/test (Tous)

Semaine 3 : 06/02 - 12/02

Lundi

  • Cours de MPI - Cours sur la gestion de projet
  • Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)
  • Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)
  • Recherche sur la mise en place de tests avec Python (Elsa)
  • Fix de bugs dans preprocessing (Julian)
  • Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)

Mardi

  • Rendez-vous avec Mr. Amini
  • Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)
  • Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).
  • Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)
  • Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)
  • Evaluation du classifieur avec la méthode Doc2Vec (Elsa)
  • Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)
  • Amélioration de la boîte de dialogue pour les infos (Quentin)

Mercredi

  • Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison :
    • Réseau neuronal avec Keras (Elsa)
    • Perceptron (Coralie)
    • Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)
  • Ajout de Spark à l'image Docker (Edwin)
  • Création de statistiques sur les goûts utilisateurs côté client (Quentin)

Jeudi

  • Poursuite des tests de performance :
    • Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)
    • Test du réseau neuronal (Elsa)
    • Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)
  • Test de l'image Docker (Edwin)
  • Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)

Vendredi

  • Documentation sur Spark (Edwin & Coralie)
  • Finalisation perceptron + intégration dans evaluation (Coralie)
  • Finalisation SVM + intégration dans evaluation (Julian)
  • Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)
  • Visualisation des statistiques + explications sur la page d'accueil (Quentin)


État des lieux de fin du Sprint1

Sprint1-end-Scrumboard.png

Sprint 2

Tâches du Sprint1

  • T1. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)
  • T2. Amélioration du front-end (mise en cache, etc.)
  • T3. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas)
  • T4. Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)
  • T5. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.

Semaine 4 : 13/02 - 19/02

Lundi

  • T1. -> Amélioration de la prédiction de film (Elsa)
  • T2. -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)
  • T3. -> Mise en place d'un cluster Spark via Mesos (Edwin)
  • T4. -> Mise en place d'un réseau neuronal de convolution (Coralie)
  • T5. -> Revue de la structure du pre-processing (Julian)

Mardi

Mercredi

Jeudi

Vendredi

Semaine 5 : 20/02 - 26/02

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Sprint 3

Semaine 6 : 27/02 - 05/03

Lundi

Mardi

Mercredi

Jeudi

Vendredi

Semaine 7 : 06/03 - 12/03

Lundi

Mardi

Mercredi

Jeudi

Vendredi