← Phase 6 / NOMIIQ Brain — Intelligence Collective
🧬 Module 31

NOMIIQ Brain — Intelligence Collective

NOMIIQ Brain agrège anonymement les comportements de 5M+ voyageurs pour produire des prédictions de destinations tendance, des heatmaps saisonnalité, un moteur de recommandation collaborative ultra-personnalisé et des alertes proactives avant que l'utilisateur ne les demande.

Collective IntelligenceLSTM PrédictionGraph MLDatabricksApache Spark
16
User Stories
4 sem.
S45–S46
5M+
Voyageurs data source
15min
Refresh temps réel
User Stories — M31

📋 16 User Stories — NOMIIQ Brain

US31.1 En tant que système, j'agrège de façon anonymisée (k-anon ≥ 50) les comportements voyage de 5M+ utilisateurs
US31.2 En tant que système, je détecte les destinations en tendance (+300% d'intérêt dans les 30 prochains jours)
US31.3 En tant qu'utilisateur, je vois un feed "Trending Now" mis à jour toutes les 15 min par le Brain
US31.4 En tant qu'utilisateur, je reçois une alerte proactive : "Paris sera bondée ce week-end, voici 3 alternatives"
US31.5 En tant qu'utilisateur, le Brain prédit le prix de mon vol à 30, 60 et 90 jours (modèle LSTM Amadeus)
US31.6 En tant qu'utilisateur, je vois un score "Ideal Time to Visit" par destination × mon profil voyageur
US31.7 En tant que système, je génère des heatmaps saisonnalité globale (destination × budget × profil)
US31.8 En tant qu'utilisateur, mes recommandations combinent filtrage collaboratif + content-based (CF hybrid)
US31.9 En tant que système, les voyages réalisés corrigent les prédictions (feedback loop automatique)
US31.10 En tant que système, j'expose une API Brain interne pour tous les services NOMIIQ (REST + streaming)
US31.11 En tant qu'admin data, je visualise le Brain Dashboard public : tendances mondiales non personnalisées
US31.12 En tant que partenaire B2G, je reçois un export data anonymisé Brain (tendances pour ma destination)
US31.13 En tant que système, j'identifie les "Hidden Gems" : destinations sous-estimées vs leur potentiel réel
US31.14 En tant qu'utilisateur, je vois "D'autres voyageurs comme vous ont adoré X" avec taux de satisfaction
US31.15 En tant que système, je détecte les anomalies comportementales (surge demand, crises) pour alertes précoces
US31.16 En tant qu'équipe data, je compare les prédictions vs réalité dans un dashboard de performance modèles
Architecture

🧠 Pipeline Intelligence Collective

📥 Ingestion & Traitement

Events Kafka Chaque action (search, view, book) → topic Kafka en temps réel
Spark Streaming Agrégation fenêtrée 15min → signaux tendance par destination
dbt + Snowflake Transformations batch nuit → modèles ML enrichis
k-Anonymisation Chaque export : groupe ≥ 50 utilisateurs, géo-blur 5km
Airflow DAGs Orchestration pipelines Brain : réentraînement hebdo modèles
Delta Lake Stockage versionné données brutes → auditabilité totale

📊 Modèles & Prédictions

// Modèle Tendances (PyTorch LSTM)
input: demand_signal_t-30..t0
output: demand_forecast_t+30
retrain: weekly on Databricks

// Recommandation Hybride
CF: user-user + item-item similarity
CB: destination features × profil
blend: 0.6×CF + 0.4×CB + 0.1×Brain

// Hidden Gems Score
score = engagement_rate /
        (popularity + 1) × quality_idx
Stack Technique

🛠️ Technologies M31

🔄 Data Pipeline

Apache Kafka
Ingestion événements temps réel (100k events/s)
Apache Spark
Traitement batch + streaming comportements
Databricks
Lakehouse ML — notebooks, MLflow, Unity Catalog
dbt Cloud
Transformations SQL + tests qualité données
Apache Airflow
Orchestration DAGs — scheduling réentraînements

🤖 Modèles ML

PyTorch LSTM
Prédiction séries temporelles prix + demande
Scikit-learn
Filtrage collaboratif + clustering profils
MLflow
Tracking expériences + model registry production
Snowflake
Data warehouse analytique — requêtes sub-seconde
Evidently AI
Monitoring drift modèles en production

📡 APIs & Diffusion

FastAPI (Brain API)
REST + Server-Sent Events pour feed temps réel
Redis Sorted Sets
Trending destinations classement temps réel
Cloudflare Workers
Edge serving prédictions < 50ms
PostHog
Analytics engagement Brain recommendations
Grafana
Dashboard performance modèles + alertes drift
Schémas BDD

🗄️ Nouvelles Tables M31

🗄️ brain_destination_signals
id UUID PRIMARY KEY
destination_id UUID → places
signal_type ENUM(trending, hidden_gem, peak_season, alert)
score FLOAT — intensité du signal
predicted_demand_30d FLOAT — indice demande J+30
price_forecast_usd DECIMAL — prix vol prédit
data_points_count INT — nb users anonymisés (≥50)
confidence FLOAT — 0-1
computed_at TIMESTAMPTZ
valid_until TIMESTAMPTZ
🗄️ brain_recommendations
id UUID PRIMARY KEY
user_id UUID → users
destination_id UUID → places
score FLOAT — score recommandation
reason ENUM(cf, content, brain, trending)
cf_score FLOAT
content_score FLOAT
brain_boost FLOAT
shown_at TIMESTAMPTZ
clicked BOOLEAN DEFAULT false
booked BOOLEAN DEFAULT false
API REST — M31

🔌 Endpoints Brain & Intelligence Collective

GET /api/v1/brain/trending Destinations en tendance (top 20, refresh 15min) public
GET /api/v1/brain/trending/:destination_id Signal tendance d'une destination spécifique public
GET /api/v1/brain/hidden-gems Destinations Hidden Gems (score/popularité) public
GET /api/v1/brain/recommendations Recommandations personnalisées (auth required) 🔒
GET /api/v1/brain/price-forecast/:destination_id Prédiction prix vol 30/60/90j 🔒
GET /api/v1/brain/seasonality/:destination_id Heatmap saisonnalité (12 mois) public
GET /api/v1/brain/ideal-time/:destination_id Score "Ideal Time to Visit" vs profil user 🔒
POST /api/v1/brain/feedback Feedback réservation/voyage (correction modèle) 🔒
GET /api/v1/brain/alerts Alertes proactives personnalisées (push candidates) 🔒
GET /internal/brain/export Export data anonymisé pour partenaires B2G (admin) 🔒
Critères d'acceptation

✅ Definition of Done — M31

Pipeline Kafka → Spark → Redis : latence < 15min du clic utilisateur au feed "Trending Now"
k-Anonymisation validée : aucun signal exporté avec < 50 utilisateurs dans le groupe
Précision prédictions tendances 30j ≥ 85% sur backtest 6 derniers mois
API Brain /recommendations : latence < 50ms P95 mesurée en load test (100 req/s)
CTR recommandations Brain > 35% au-dessus du baseline (test A/B sur 2 semaines)
Score Hidden Gems : au moins 50 destinations identifiées/mois avec score > 0.7
Feedback loop opérationnel : correction du modèle effective dans la semaine suivant les voyages
LSTM Amadeus : RMSE prix vols < 15% sur benchmark test-set 1000 routes
KPIs M31

🎯 Objectifs de Succès

85%
Précision prédictions tendances 30j
< 15min
Fraîcheur données Brain
+35%
CTR recommandations Brain vs baseline
50+
Destinations Hidden Gems identifiées/mois
< 50ms
Latence API Brain (P95)
99.9%
Uptime pipeline Kafka → Brain
k≥50
Anonymisation garantie sur tous exports
4.7★
Satisfaction "Trending Now" feed