transformers_recsys / TESTING_FRAMEWORK_DOCUMENTATION.md
minhajHP's picture
Initial commit: Transformer recommendation system with inference weights
e762dab
|
Raw
History Blame Contribute Delete
43.3 kB

Testing Framework Documentation

Two-Tower Transformer Recommendation System

Generated: 2025-09-29 (Updated) Project: Two-Tower Transformer-Based Recommendation System Version: 2.0


Table of Contents

  1. Overview
  2. Framework Architecture
  3. Test Organization
  4. Advanced Test Runner
  5. Core Test Scripts
  6. Analysis Scripts
  7. Debug Scripts
  8. Testing Methodologies
  9. Configuration System
  10. Expected Results & Metrics
  11. Usage Guidelines
  12. Dependencies

Overview

The Two-Tower Transformer Recommendation System features an advanced testing framework designed to validate architecture, training dynamics, embedding quality, and recommendation performance. Version 2.0 introduces significant improvements including parallel execution, centralized configuration, and enhanced reporting capabilities.

Key Features

  • πŸš€ Advanced Test Runner: Parallel execution with intelligent scheduling
  • πŸ“Š Comprehensive Coverage: Tests architecture, training, inference, and recommendation quality
  • πŸ”§ Modular Design: Object-oriented test structure with inheritance
  • πŸ“ˆ Statistical Rigor: Proper statistical analysis and significance testing
  • πŸ” Issue Detection: Proactive detection of common deep learning issues
  • πŸ’‘ Actionable Outputs: Specific recommendations for fixing detected issues
  • ⚑ Parallel Execution: Concurrent test execution for faster results
  • πŸ“‹ Centralized Config: Unified configuration management system
  • πŸ“Š Enhanced Reporting: Rich HTML/JSON reports with visualizations

Framework Architecture

The testing framework follows a layered architecture:

tests/
β”œβ”€β”€ config/
β”‚   └── test_config.py          # Centralized configuration
β”œβ”€β”€ unit/                       # Unit tests
β”œβ”€β”€ integration/                # Integration tests
β”œβ”€β”€ performance/                # Performance tests
β”œβ”€β”€ similarity/                 # Similarity tests
β”œβ”€β”€ analysis/                   # Analysis utilities
β”œβ”€β”€ debug/                      # Debug and diagnostic tools
β”œβ”€β”€ test_results/               # Test outputs and reports
β”œβ”€β”€ base_test.py               # Base test class
β”œβ”€β”€ test_runner.py             # Advanced test runner
└── run_all_tests.py           # Legacy comprehensive runner

Core Components

  1. BaseTest Class: Abstract base class providing common functionality
  2. TestConfig: Centralized configuration management
  3. TestRegistry: Dynamic test discovery and registration
  4. AdvancedTestRunner: Parallel execution engine with comprehensive reporting

Test Organization

Test Categories

Tests are organized into five main categories:

πŸ”§ Unit Tests (tests/unit/)

  • Purpose: Test individual components in isolation
  • Execution: Parallel (fast execution)
  • Timeout: 30 seconds per test
  • Examples:
    • architectural_validation_tests.py - Architecture compliance
    • transformer_layer_analysis.py - Layer-by-layer analysis
    • gradient_flow_validation.py - Gradient health monitoring
    • test_embedding_quality.py - ⭐ NEW Item embedding quality validation
    • test_user_embeddings.py - ⭐ NEW User embedding quality validation

πŸ”— Integration Tests (tests/integration/)

  • Purpose: Test component interactions and workflows
  • Execution: Sequential (dependencies between tests)
  • Timeout: 2 minutes per test
  • Examples:
    • test_main_transformer_integration.py - End-to-end integration
    • joint_training_analysis.py - Joint training workflows
    • test_improved_joint_training.py - ⭐ Category-aware InfoNCE validation
    • user_embedding_generation_test.py - User embedding pipeline
    • test_transformer_inference_loading.py - ⭐ NEW Inference engine validation

🎯 Similarity Tests (tests/similarity/)

  • Purpose: Validate embedding similarity and alignment
  • Execution: Parallel (independent similarity computations)
  • Timeout: 3 minutes per test
  • Examples:
    • embedding_similarity_analysis.py - User-user similarity analysis
    • similarity_alignment_validation.py - Alignment mechanism validation
    • test_semantic_item_similarity.py - Item semantic similarity

⚑ Performance Tests (tests/performance/)

  • Purpose: Benchmark system performance and resource usage
  • Execution: Sequential (resource intensive)
  • Timeout: 5 minutes per test
  • Examples:
    • comprehensive_recommendation_analysis.py - End-to-end performance
    • category_alignment_analysis.py - Category processing performance

πŸ“Š Analysis Tests (tests/analysis/)

  • Purpose: Deep analysis and diagnostic insights
  • Execution: Parallel (independent analysis tasks)
  • Timeout: 4 minutes per test
  • Examples:
    • analyze_item_embeddings.py - Item embedding deep analysis
    • analyze_training_issues.py - Training diagnostics

Advanced Test Runner

Features

The new test_runner.py provides advanced capabilities:

# Run all tests with parallel execution
python tests/test_runner.py

# Run specific categories
python tests/test_runner.py --categories similarity unit

# Force sequential execution
python tests/test_runner.py --sequential

# List available tests
python tests/test_runner.py --list-tests

# Custom output directory
python tests/test_runner.py --output-dir custom_results/

Execution Modes

Parallel Execution (Default)

  • Tests within categories run concurrently
  • Configurable worker pool (default: 4 workers)
  • Intelligent scheduling based on test dependencies
  • Real-time progress monitoring

Sequential Execution

  • Traditional one-after-another execution
  • Better for debugging and resource-constrained environments
  • Detailed per-test logging
  • Immediate failure reporting

Reporting Capabilities

Console Output

  • Real-time test status updates
  • Color-coded results (βœ… success, ❌ failed, ⏭️ skipped)
  • Progress indicators and timing information
  • Summary statistics and health scores

JSON Reports

{
  "execution_summary": {
    "total_tests": 25,
    "successful_tests": 23,
    "failed_tests": 1,
    "success_rate": 0.92,
    "health_score": 0.85,
    "total_duration": 45.7
  },
  "results_by_category": {...},
  "issues_summary": {...},
  "detailed_results": [...]
}

Health Scoring

  • 🟒 Healthy (0.8-1.0): System performing optimally
  • 🟑 Needs Attention (0.6-0.8): Minor issues detected
  • πŸ”΄ Critical Issues (0.0-0.6): Major problems requiring immediate attention

Configuration System

Centralized Configuration (tests/config/test_config.py)

All test parameters are managed through the centralized configuration system:

class TestConfig:
    # Test execution settings
    EXECUTION = {
        'max_parallel_tests': 4,
        'retry_failed_tests': True,
        'retry_count': 2,
        'continue_on_failure': True
    }

    # Quality thresholds
    THRESHOLDS = {
        'embedding_variance': 0.01,
        'similarity_collapse': 0.95,
        'gradient_vanishing': 1e-8,
        'health_score_critical': 0.5
    }

    # Model parameters
    MODEL_PARAMS = {
        'embedding_dim': 128,
        'transformer_layers': 4,
        'transformer_heads': 8
    }

Benefits

  • Consistency: Same parameters across all tests
  • Maintainability: Single location for configuration changes
  • Flexibility: Easy parameter tuning for different environments
  • Validation: Built-in artifact path validation

Core Test Scripts

1. run_all_tests.py - Master Test Orchestrator

Purpose: Unified test runner that executes and coordinates all test suites

What it tests:

  • Entire system integration
  • Cross-component compatibility
  • Overall system health

How it works:

  • Sequential execution of test suites
  • Health score calculation (0-1 scale)
  • Cross-test analysis and correlation
  • Unified JSON report generation

Expected Results:

{
  "overall_health_score": 0.85,
  "test_results": {...},
  "critical_issues": [...],
  "recommendations": [...]
}

Usage:

python tests/run_all_tests.py

2. architectural_validation_tests.py - Architecture Validator

Purpose: Validates transformer architecture design and implementation

What it tests:

  • Model architecture compliance
  • Layer connections and dimensions
  • Parameter flow integrity
  • Component compatibility

How it works:

  • White-box testing of architectural components
  • Dimension flow validation
  • Parameter count verification
  • Layer connectivity analysis

Expected Results:

  • Architecture compliance report
  • Structural validation metrics
  • Dimension mismatch detection
  • Component health scores

Key Metrics:

  • Total parameters: ~1M for user tower
  • Layer dimensions: 128D embeddings
  • Attention heads: 8 per layer
  • Transformer layers: 4

3. transformer_layer_analysis.py - Layer-by-Layer Inspector

Purpose: Deep analysis of each transformer layer's behavior

What it tests:

  • Individual layer performance
  • Weight distribution health
  • Activation patterns
  • Gradient flow integrity

How it works:

  • Statistical analysis of layer outputs
  • Weight histogram analysis
  • Dead neuron detection
  • Gradient magnitude monitoring

Expected Results:

{
  "layer_health": {
    "attention_layer_1": {
      "gradient_norm": 0.001,
      "dead_neurons": 0.05,
      "weight_variance": 0.02
    }
  }
}

Healthy Ranges:

  • Gradient norms: 1e-6 to 10
  • Dead neuron ratio: < 20%
  • Weight variance: > 0.001

4. embedding_alignment_tests.py - Embedding Quality Validator

Purpose: Tests alignment and quality of user/item embeddings

What it tests:

  • Embedding space quality
  • User-item alignment
  • Similarity computation accuracy
  • Embedding collapse detection

How it works:

  • Statistical analysis of embedding distributions
  • Correlation analysis between embeddings
  • Cosine similarity validation
  • Variance and diversity metrics

Expected Results:

  • Embedding quality scores (0-1)
  • Alignment metrics
  • Collapse severity assessment
  • Diversity measurements

Quality Thresholds:

  • Embedding variance: > 0.01
  • Similarity separation: > 0.1
  • Dead dimensions: < 50%

5. similarity_alignment_validation.py - Similarity Mechanism Tester

Purpose: Validates similarity computation and alignment mechanisms

What it tests:

  • Temperature parameter effectiveness
  • Anti-correlation fixes
  • Similarity transformations
  • Bias correction mechanisms

How it works:

  • Parameter sensitivity analysis
  • Correlation testing across user types
  • Temperature scaling validation
  • Bias impact assessment

Expected Results:

  • Optimal temperature values
  • Correlation improvement metrics
  • Bias effectiveness scores
  • Alignment quality indicators

6. gradient_flow_validation.py - Gradient Health Monitor

Purpose: Validates gradient flow through transformer architecture

What it tests:

  • Gradient magnitude health
  • Vanishing/exploding gradient detection
  • Training stability
  • Layer-wise gradient analysis

How it works:

  • Gradient tape analysis
  • Statistical gradient monitoring
  • Layer-wise norm computation
  • Training step analysis

Expected Results:

{
  "gradient_health": {
    "mean_gradient_norm": 0.005,
    "vanishing_layers": 0,
    "exploding_layers": 0,
    "healthy_ratio": 0.95
  }
}

Healthy Ranges:

  • Gradient norms: 1e-6 to 10
  • Vanishing threshold: < 1e-8
  • Exploding threshold: > 100

7. user_embedding_generation_test.py - User Embedding Validator

Purpose: Tests user embedding generation across diverse profiles

What it tests:

  • User tower functionality
  • Demographic vs. interaction influence
  • Cold-start capability
  • Embedding consistency

How it works:

  • Systematic user profile generation
  • Embedding analysis across archetypes
  • Clustering analysis
  • Temporal stability testing

User Archetypes Tested:

  • Young tech professionals
  • Middle-aged executives
  • College students
  • Senior retirees
  • Working parents

Expected Results:

  • Embedding diversity metrics
  • Cold-start vs. warm user analysis
  • Clustering purity scores
  • Temporal stability indicators

8. interaction_embedding_analysis.py - Interaction Pattern Analyzer

Purpose: Analyzes how interaction patterns affect user embeddings

What it tests:

  • Sequence length impact
  • Behavioral consistency
  • Attention pattern quality
  • Interaction vs. demographic influence

How it works:

  • Controlled interaction pattern variation
  • Fixed demographic analysis
  • Sequence length testing (0-50 items)
  • Behavioral pattern classification

Expected Results:

  • Sequence length impact curves
  • Behavioral consistency scores
  • Attention weight distributions
  • Influence ratio metrics

9. test_embedding_collapse_detection.py - Collapse Detection System

Purpose: Detects embedding collapse in user and item towers

What it tests:

  • Embedding variance health
  • Dimensional diversity
  • Dead dimension detection
  • Collapse severity assessment

How it works:

  • Statistical variance analysis
  • Similarity threshold testing (0.95)
  • Variance threshold validation (0.01)
  • Dimensional utilization analysis

Expected Results:

  • Collapse severity: NONE/MILD/MODERATE/CRITICAL
  • Dead dimension ratios
  • Variance statistics
  • Remediation recommendations

Collapse Indicators:

  • Variance < 0.01 (critical)
  • Similarity > 0.95 (high collapse)
  • Dead dimensions > 50% (critical)

10. joint_training_analysis.py - Joint Training Inspector

Purpose: Comprehensive analysis of joint training dynamics

What it tests:

  • Joint model convergence
  • Gradient conflict detection
  • Loss balance optimization
  • Embedding alignment during training

How it works:

  • Multi-objective loss analysis
  • Gradient conflict measurement
  • Training dynamics monitoring
  • Anti-correlation pattern detection

Expected Results:

  • Loss balance metrics
  • Gradient conflict scores
  • Training stability indicators
  • Embedding evolution analysis

11. test_improved_joint_training.py - Category-Aware InfoNCE Validator ⭐ NEW

Purpose: Validates improved category-aware InfoNCE loss implementation with hard negative mining

What it tests:

  • Category-aware positive/negative definition
  • Hard negative mining effectiveness
  • Temperature parameter sensitivity
  • Gradient flow through enhanced InfoNCE loss
  • Training step integration with real artifacts

How it works:

  • Tests enhanced InfoNCE loss with 3 sample types:
    • Positives: High rating (β‰₯4.0) + category match
    • Hard negatives: High rating + category mismatch (3x weight)
    • Easy negatives: Low rating (<4.0) any category (1x weight)
  • Temperature scaling validation (0.01-0.5 range)
  • Synthetic data generation for controlled testing
  • Real artifact integration testing

Test Scenarios:

# Scenario testing
1. All positive samples β†’ Expected: Lower loss
2. All negative samples β†’ Expected: Minimal loss (0.001)
3. Structured by category β†’ Expected: Medium loss
4. Temperature sensitivity β†’ Expected: Responsive to changes
5. Multiple training steps β†’ Expected: Stable execution

Expected Results:

{
  "infonce_loss": 1.3965,
  "gradient_health": {
    "mean": 1.59, "max": 8.70, "min": 0.00
  },
  "temperature_sensitivity": [
    {"temp": 0.01, "loss": 0.673},
    {"temp": 0.05, "loss": 0.609},
    {"temp": 0.1, "loss": 0.777},
    {"temp": 0.5, "loss": 1.020}
  ],
  "training_integration": "βœ… SUCCESS"
}

Key Validations:

  • InfoNCE loss computation accuracy
  • Proper tensor shape handling (tf.function compatibility)
  • Category-aware sample classification
  • Hard negative mining with weighted importance
  • Integration with real pre-trained artifacts
  • Multi-step training stability

Health Indicators:

  • Test pass rate: 100% (2/2 tests)
  • Gradient norms: 0.0-8.7 (healthy range)
  • Temperature responsiveness: βœ… Confirmed
  • Loss values: Within expected ranges
  • Training stability: βœ… Confirmed across multiple steps

Usage:

# Run improved joint training validation
python test_improved_joint_training.py

# Expected output: πŸŽ‰ ALL TESTS PASSED!

Added: 2025-09-29 (Part of joint training improvement initiative)


12. test_embedding_quality.py - Item Embedding Quality Validator ⭐ NEW

Purpose: Comprehensive validation of transformer item embedding quality and meaningfulness

What it tests:

  • Basic embedding properties (shape, dtype, NaN/infinity detection)
  • Embedding collapse detection (collapsed dimensions analysis)
  • Semantic diversity measurement (pairwise similarity analysis)
  • Value distribution health (range, variance, extreme values)
  • Meaningful differentiation between items

How it works:

  • Loads transformer item embeddings from artifacts
  • Statistical analysis of embedding distributions
  • Cosine similarity computation on sample items (100 items)
  • Variance and standard deviation analysis across dimensions
  • Embedding norm validation and consistency checks

Test Components:

  1. Property Testing:

    • Embedding shape: Expected (19095, 128)
    • Data type validation: float32
    • NaN/Infinity detection
    • Norm consistency (should be ~1.0 for normalized embeddings)
  2. Collapse Detection:

    • Collapsed dimensions: < 50% of total dimensions
    • Mean standard deviation: > 0.01 (healthy variance)
    • Diversity score: > 0.001 (meaningful differentiation)
  3. Similarity Analysis:

    • Pairwise cosine similarity on random sample
    • Mean similarity: Should not be > 0.99 (indicates collapse)
    • Standard deviation: > 0.001 (indicates diversity)
    • Range analysis: Healthy spread of similarities
  4. Distribution Testing:

    • Value range validation (reasonable bounds)
    • Extreme value detection (< 10% outliers)
    • Mean and variance analysis

Expected Results:

{
  "properties": {
    "collapsed_dims": 0,
    "mean_std": 0.0052,
    "norm_stats": {"min": 1.0, "max": 1.0, "mean": 1.0},
    "has_nan": false,
    "has_inf": false,
    "embedding_shape": [19095, 128]
  },
  "similarity": {
    "mean_similarity": 0.9996,
    "diversity_score": 0.0002,
    "samples_tested": 100
  },
  "distribution": {
    "min": -0.2881,
    "max": 0.2908,
    "extreme_values": 0
  }
}

Health Indicators:

  • βœ… No Collapse: 0 collapsed dimensions
  • ⚠️ Low Variance: Mean std = 0.0052 (below 0.01 threshold)
  • ⚠️ Low Diversity: Diversity score = 0.0002 (below 0.001 threshold)
  • βœ… No Technical Issues: No NaN/infinity values
  • βœ… Proper Normalization: Consistent L2 norms

Critical Issues Detected:

  1. Very Low Variance Across Dimensions (Warning)

    • Indicates embeddings may not be meaningfully differentiated
    • Suggests potential training issues or insufficient learning
  2. Very Low Embedding Diversity (Critical)

    • Mean similarity: 0.9996 (extremely high)
    • Items are nearly identical in embedding space
    • Severely impacts recommendation quality

Recommendations Generated:

  • Medium Priority: Consider increasing learning rate or training epochs
  • High Priority: Check for embedding collapse - may need regularization
  • Technical: Review item tower architecture for sufficient capacity
  • Training: Implement techniques to encourage embedding diversity

Integration:

  • Part of unit test suite (fast execution)
  • Integrated with framework's BaseTest class
  • Generates structured JSON reports
  • Provides actionable issue detection and recommendations

Usage:

# Run standalone
python tests/test_embedding_quality.py

# Run through framework
python tests/test_runner.py --categories unit

# Expected output: ⚠️ Issues detected but test completes successfully

Quality Thresholds:

  • Collapsed dimensions: < 50% of total dimensions
  • Mean variance: > 0.01 (healthy)
  • Diversity score: > 0.001 (meaningful differentiation)
  • Similarity mean: < 0.99 (not collapsed)
  • Extreme values: < 10% of total values

Added: 2025-09-30 (Part of embedding quality validation initiative)


13. test_transformer_inference_loading.py - Inference Engine Validator ⭐ NEW

Purpose: Comprehensive validation of transformer inference engine loading and performance

What it tests:

  • Transformer engine initialization and loading times
  • Component loading verification (user tower, item tower, FAISS index)
  • Vocabulary loading and size validation
  • User embedding generation functionality
  • Item embedding retrieval from FAISS index
  • Recommendation generation workflow
  • Rating prediction performance optimization

How it works:

  • Loads TransformerRecommendationEngine with timing measurements
  • Validates all essential components are loaded correctly
  • Tests basic functionality with sample user profiles
  • Measures performance of rating prediction (should be instant)
  • Generates structured reports with component status

Test Components:

  1. Engine Initialization:

    • Loading time: < 3.0 seconds (good performance)
    • Component verification: 5/5 essential components
    • Memory usage and initialization efficiency
  2. Component Loading Validation:

    • Vocabularies: 19,095 items, 238 categories, 1,151 brands
    • User tower: Transformer architecture with attention
    • Item tower: Improved embeddings with quality validation
    • FAISS index: Fast similarity search ready
    • Items dataframe: Metadata available
  3. Functionality Testing:

    • User embedding shape: (128,) - correct dimensionality
    • Item embedding retrieval: Valid embeddings from FAISS
    • Recommendation generation: 5 recommendations with scores
    • Rating prediction: Instant response (< 1ms)
  4. Performance Validation:

    • Loading time monitoring and optimization detection
    • Rating prediction speed (optimized to be instant)
    • Memory efficiency and component initialization

Expected Results:

{
  "loading_time": 1.65,
  "components": {
    "vocabularies": true,
    "user_tower": true,
    "item_tower": true,
    "faiss_index": true,
    "items_dataframe": true
  },
  "user_embedding": {"shape": [128], "dtype": "float32"},
  "item_embedding": {"shape": [128], "dtype": "float32"},
  "recommendations": {
    "count": 5,
    "sample_item": 1004788,
    "sample_score": 0.5141
  },
  "rating_performance": {
    "rating": 0.5,
    "prediction_time": 0.000003,
    "is_instant": true
  }
}

Health Indicators:

  • βœ… Fast Loading: 1.65s loading time (well under 3s threshold)
  • βœ… All Components Loaded: 5/5 essential components available
  • βœ… Optimized Rating: 0.000003s prediction time (instant)
  • βœ… Quality Embeddings: Using improved transformer embeddings
  • βœ… Full Functionality: All core features working correctly

Integration Benefits:

  • Continuous Monitoring: Validates inference engine health
  • Performance Tracking: Monitors loading and prediction times
  • Component Verification: Ensures all required artifacts are available
  • Regression Detection: Catches breaking changes in inference pipeline
  • Deployment Readiness: Confirms system ready for production use

Usage:

# Run standalone
python tests/test_transformer_inference_loading.py

# Run through framework
python tests/test_runner.py --categories integration

# Expected output: βœ… All components loaded, fast performance confirmed

Quality Thresholds:

  • Loading time: < 3.0 seconds (good), < 5.0 seconds (acceptable)
  • Component loading: 5/5 essential components required
  • Rating prediction: < 0.001 seconds (instant)
  • User embedding: Shape (128,) with valid values
  • Item embedding: Available from FAISS with correct dimensions

Added: 2025-09-30 (Part of inference optimization and validation initiative)


14. test_user_embeddings.py - User Embedding Quality Validator ⭐ NEW

Purpose: Comprehensive validation of transformer user embedding quality, diversity, and semantic differentiation

What it tests:

  • User embedding generation for diverse demographic profiles
  • Embedding diversity and similarity patterns between different user types
  • Basic embedding properties (shape, dtype, normalization)
  • Variance analysis across embedding dimensions
  • Value distribution health and range validation
  • Recommendation functionality with different user profiles

How it works:

  • Tests 5 diverse user profiles: tech professional, healthcare worker, senior retiree, student, executive
  • Generates user embeddings through transformer user tower
  • Analyzes pairwise similarities between different user demographics
  • Validates embedding properties and identifies potential issues
  • Tests recommendation generation for functional validation

Test Components:

  1. User Profile Diversity:

    • Young Tech Professional (25, male, $80K, Technology, Urban)
    • Middle-aged Healthcare Worker (45, female, $60K, Healthcare, Suburban)
    • Senior Retiree (68, male, $40K, Other, Rural)
    • Young Student (20, female, $15K, Education, Urban)
    • High Earner Executive (40, male, $150K, Finance, Urban)
  2. Embedding Properties Testing:

    • Shape validation: (5, 128) for 5 users, 128 dimensions
    • Data type: float32 consistency
    • NaN/Infinity detection: Should be clean
    • Normalization: L2 norms should be ~1.0
  3. Diversity Analysis:

    • Pairwise similarity computation between all user pairs
    • Mean similarity: Should be < 0.95 (not too similar)
    • Standard deviation: Should be > 0.01 (meaningful variation)
    • Range analysis: Healthy spread of similarity values
  4. Variance Analysis:

    • Mean standard deviation across dimensions
    • Collapsed dimension detection (< 1e-6 threshold)
    • Dimensional utilization efficiency
  5. Functional Testing:

    • Recommendation generation for different user types
    • Validation that different users get different recommendations
    • Score variation analysis

Expected Results:

{
  "user_count": 5,
  "basic_properties": {
    "shape": [5, 128],
    "dtype": "float32",
    "has_nan": false,
    "has_inf": false,
    "norm_stats": {"min": 1.0, "max": 1.0, "mean": 1.0}
  },
  "diversity": {
    "mean_similarity": 0.8937,
    "std_similarity": 0.0763,
    "min_similarity": 0.8053,
    "max_similarity": 1.0000
  },
  "variance": {
    "mean_std": 0.0226,
    "collapsed_dims": 0,
    "total_dims": 128
  },
  "recommendations": [
    {"user": "Young Tech Professional", "top_item": 28720387, "top_score": 0.5135},
    {"user": "Middle-aged Healthcare Worker", "top_item": 28720387, "top_score": 0.4309}
  ]
}

Health Indicators:

  • βœ… Technical Health: No NaN/infinity, proper normalization (1.0 norms)
  • ⚠️ Limited Differentiation: Some user pairs show identical embeddings (1.0000 similarity)
  • βœ… Functional: All users generate recommendations successfully
  • ⚠️ Moderate Diversity: std=0.0763 (acceptable but could be higher)
  • βœ… No Collapse: 0 collapsed dimensions

Issues Detected:

  • Identical Embeddings: Healthcare Worker vs Student vs Executive (1.0000 similarity)
  • High Mean Similarity: 0.8937 (users quite similar in embedding space)
  • Limited Variance: 0.0226 mean std per dimension (lower than item embeddings)

Comparison with Item Embeddings:

Metric Item Embeddings User Embeddings Assessment
Mean std per dimension 0.0877 (excellent) 0.0226 (moderate) Item tower superior
Diversity score 0.1396 (excellent) 0.0763 (moderate) Item tower superior
Mean similarity 0.0071 (very diverse) 0.8937 (similar) Item tower superior
Technical health βœ… Perfect βœ… Perfect Both healthy
Functionality βœ… Working βœ… Working Both functional

Integration Benefits:

  • User Tower Monitoring: Validates transformer user tower functionality
  • Demographic Coverage: Tests diverse user demographics and use cases
  • Quality Benchmarking: Provides baseline metrics for user embedding quality
  • Regression Detection: Catches degradation in user representation quality
  • Comparative Analysis: Enables comparison with item embedding performance

Usage:

# Run standalone
python tests/test_user_embeddings.py

# Run through framework
python tests/test_runner.py --categories unit

# Expected output: ⚠️ Some identical embeddings detected but test passes

Quality Thresholds:

  • Mean similarity: < 0.95 (acceptable), < 0.85 (good)
  • Diversity (std): > 0.01 (acceptable), > 0.05 (good)
  • Variance per dimension: > 0.01 (acceptable), > 0.05 (good)
  • Collapsed dimensions: 0 (required)
  • Identical pairs: < 50% of total pairs (acceptable)

Improvement Opportunities:

  • User tower could benefit from similar training improvements as item tower
  • Consider demographic feature engineering for better differentiation
  • Explore contrastive learning approaches for user embeddings
  • Investigate attention mechanism optimization for user profiles

Added: 2025-09-30 (Part of comprehensive embedding validation initiative)


Analysis Scripts

tests/analysis/analyze_item_embeddings.py

Purpose: Comprehensive item embedding analysis

Features:

  • Item category alignment analysis
  • Price-embedding correlation studies
  • Brand clustering validation
  • Semantic similarity assessment

Usage:

python tests/analysis/analyze_item_embeddings.py

tests/analysis/analyze_training_issues.py

Purpose: Training process diagnostic tool

Features:

  • Loss curve analysis
  • Convergence issue detection
  • Learning rate optimization suggestions
  • Training instability diagnosis

Debug Scripts

tests/debug/check_transformer_weights.py

Purpose: Weight inspection and validation

Features:

  • Weight distribution analysis
  • Initialization check
  • NaN/Infinity detection
  • Weight evolution tracking

tests/debug/debug_transformer_user_tower.py

Purpose: User tower specific debugging

Features:

  • Layer-by-layer output inspection
  • Demographic embedding analysis
  • Sequence processing validation
  • Attention mechanism debugging

tests/debug/debug_transformer_recommendation.py

Purpose: End-to-end recommendation debugging

Features:

  • Recommendation pipeline analysis
  • Similarity score debugging
  • Ranking quality assessment
  • Performance bottleneck identification

Testing Methodologies

1. Statistical Analysis

  • Mean, variance, distribution analysis
  • Hypothesis testing for significance
  • Confidence interval computation
  • Outlier detection and handling

2. Correlation Testing

  • Pearson correlation analysis
  • Cosine similarity validation
  • Cross-correlation studies
  • Alignment measurement

3. Threshold-Based Detection

  • Configurable anomaly thresholds
  • Multi-level severity classification
  • Adaptive threshold adjustment
  • Context-aware validation

4. Cross-Validation

  • Multiple trial consistency testing
  • Bootstrap sampling for robustness
  • Temporal stability validation
  • Reproducibility verification

Expected Results & Metrics

Health Score Ranges

  • Excellent (0.9-1.0): System performing optimally
  • Good (0.7-0.9): Minor issues, generally healthy
  • Needs Attention (0.5-0.7): Moderate issues requiring fixes
  • Critical (0.0-0.5): Major issues, system needs repair

Key Performance Indicators

{
  "architecture_health": 0.95,
  "embedding_quality": 0.87,
  "gradient_flow": 0.92,
  "training_stability": 0.78,
  "recommendation_quality": 0.85
}

Critical Issue Categories

  1. Vanishing Gradients: Gradient norms < 1e-8
  2. Embedding Collapse: Variance < 0.01 or similarity > 0.95
  3. Architecture Issues: Dimension mismatches, broken connections
  4. Training Instability: High loss variance, poor convergence

Usage Guidelines

Running Individual Tests

# Architecture validation
python tests/architectural_validation_tests.py

# Embedding analysis
python tests/embedding_alignment_tests.py

# Gradient flow check
python tests/gradient_flow_validation.py

Running Full Test Suite

# Complete system validation
python tests/run_all_tests.py

# Generate comprehensive report
python tests/run_all_tests.py --output-report results/full_analysis.json

Debug Mode Execution

# Debug specific components
python tests/debug/debug_transformer_user_tower.py --verbose

# Check specific weights
python tests/debug/check_transformer_weights.py --layer attention_1

Analysis Mode

# Analyze embeddings
python tests/analysis/analyze_item_embeddings.py --categories electronics,books

# Training diagnostics
python tests/analysis/analyze_training_issues.py --epochs 50

Dependencies

Core Requirements

tensorflow>=2.8.0
numpy>=1.21.0
scipy>=1.7.0
scikit-learn>=1.0.0
pandas>=1.3.0
matplotlib>=3.5.0
seaborn>=0.11.0

Model Dependencies

  • Custom transformer architecture modules
  • Recommendation engine components
  • Vocabulary and preprocessing utilities
  • Pre-trained model weights

Configuration Requirements

  • Consistent model parameters across tests
  • Artifact paths for pre-trained weights
  • Configurable batch sizes and test parameters
  • Environment variable setup for paths

Best Practices

Before Running Tests

  1. Ensure all model artifacts are available
  2. Verify environment configuration
  3. Check system resources (GPU/CPU)
  4. Review test parameters in configuration files

Interpreting Results

  1. Focus on health scores first
  2. Investigate critical issues immediately
  3. Use debug scripts for detailed analysis
  4. Compare results across multiple runs

Troubleshooting

  1. Check dependency versions
  2. Verify model weight compatibility
  3. Review artifact paths
  4. Monitor system resources during execution

Contributing to Tests

Adding New Tests

  1. Follow existing naming conventions
  2. Include comprehensive documentation
  3. Implement proper error handling
  4. Add expected result validation

Test Quality Standards

  • Include statistical validation
  • Provide clear success/failure criteria
  • Generate actionable recommendations
  • Maintain backward compatibility

Latest Test Results (2025-09-29 15:56:06)

Test Run Summary

Test Execution: Complete test suite run performed on 2025-09-29 at 15:56:06 Total Tests: 14 test scripts executed Status: βœ… All tests completed successfully Previous Run: 2025-09-29 15:46:12 (comparison available)

Key Findings

Architecture Health βœ…

  • Total Parameters: 1,050,917 (User Tower)
  • Layer Distribution:
    • Embedding layers: 7
    • Transformer encoder: 1 (4 layers, 8 heads)
    • Attention pooling: 1
    • Dense layers: 3
    • Layer normalization: 2

Embedding Quality Assessment βœ…

  • Age Embedding: Shape [6,8], Norm: 0.225, Variance: 0.032 (↑ improved)
  • Income Embedding: Shape [5,8], Norm: 0.183, Variance: 0.029 (↑ improved)
  • Gender Embedding: Shape [2,8], Norm: 0.090, Variance: 0.022 (stable)
  • Profession Embedding: Shape [8,8], Norm: 0.249, Variance: 0.031 (↑ improved)
  • Location Embedding: Shape [3,8], Norm: 0.133, Variance: 0.026 (stable)
  • Education Embedding: Shape [5,8], Norm: 0.173, Variance: 0.027 (stable)
  • Marital Embedding: Shape [4,8], Norm: 0.143, Variance: 0.025 (stable)

Transformer Layer Analysis βœ…

  • Configuration: 4 layers, 8 attention heads, 128D model dimension, 512D FFN
  • Weight Norms: All attention layers show healthy weight distributions (11.3-11.4)
  • FFN Layers: Proper initialization with norms around 14.3 (consistent)
  • Layer Normalization: Correctly initialized (gamma=1.0, beta=0.0)
  • Positional Embeddings: Norm: 4.61 (slightly improved from 4.60)

Gradient Flow Health ⚠️

  • Embedding Gradients: Healthy norms (0.022-0.046) (↑ slightly improved)
  • Attention Layers: Most layers show proper gradient flow
  • Warning Detected: Persistent vanishing gradients in encoder layer 0 key weights
  • Coldstart Path: Critical gradient flow issues detected (zero gradients)

Weight Distribution Analysis βœ…

  • Embedding Layers: Proper variance and distribution
  • Attention Weights: Normal Xavier-like initialization
  • FFN Layers: Appropriate weight scaling
  • Bias Terms: Several bias layers correctly initialized to zero

Critical Issues Detected ⚠️

  1. Vanishing Gradients in Coldstart Path

    • Location: coldstart_dense_1 and coldstart_output layers
    • Severity: Moderate
    • Impact: May affect cold-start user recommendations
    • Recommendation: Review coldstart learning rate and loss weighting
  2. High Sparsity in Some Layers

    • Location: FFN bias terms and some layer norm beta parameters
    • Severity: Low (expected for bias initialization)
    • Impact: Normal behavior for zero-initialized biases

Performance Metrics

Layer-by-Layer Health Scores

  • Embedding Layers: 95% healthy (excellent variance and distribution)
  • Transformer Encoder: 92% healthy (minor gradient issues in one layer)
  • Attention Mechanisms: 90% healthy (good weight norms and patterns)
  • Dense Layers: 88% healthy (some gradient flow concerns)
  • Output Layers: 85% healthy (normal operational parameters)

System Components Status

  • βœ… Architecture Validation: All components properly connected
  • βœ… Parameter Flow: Dimensions correctly aligned
  • βœ… Model Compilation: No structural issues detected
  • ⚠️ Gradient Flow: Minor issues in coldstart pathway
  • βœ… Weight Initialization: Proper initialization patterns

Recommendations

  1. Immediate Actions:

    • Monitor coldstart user performance in production
    • Consider adjusting coldstart learning rate (increase by 2-3x)
    • Add gradient clipping if training instability occurs
  2. Medium-term Improvements:

    • Implement gradient monitoring in training loop
    • Add learning rate schedules for different model components
    • Consider warmup strategies for coldstart pathway
  3. Long-term Monitoring:

    • Regular gradient flow analysis during training
    • Embedding quality monitoring over time
    • Performance tracking for different user types

Test Files Generated (Latest Run)

  • transformer_analysis_20250929_155600.json - Layer analysis results
  • architectural_validation_20250929_155606.json - Architecture validation
  • comprehensive_test_report_20250929_155606.json - Complete test results
  • weight_init_test_20250929_155604.json - Weight initialization analysis

Test Files Generated (Previous Run)

  • transformer_analysis_20250929_154605.json - Layer analysis results
  • architectural_validation_20250929_154612.json - Architecture validation
  • comprehensive_test_report_20250929_154612.json - Complete test results
  • weight_init_test_20250929_154608.json - Weight initialization analysis

Test Comparison Summary

  • Embedding Variances: Generally improved across most embeddings
  • Gradient Flow: Similar issues persist in coldstart pathway
  • Architecture: Consistent structural validation
  • Overall Stability: High consistency between test runs

Key Test Files for Recommendation & Embedding Analysis

Recommendation Quality Tests 🎯

  1. comprehensive_recommendation_analysis.py - Full recommendation pipeline analysis for 100 users
  2. test_similarity_scores_100_users.py - Similarity score distributions and patterns
  3. test_main_transformer_integration.py - End-to-end recommendation integration testing

Embedding Variance Tests πŸ“Š

  1. test_embedding_collapse_detection.py - Variance thresholds (0.01) and collapse detection
  2. user_embedding_generation_test.py - User embedding quality and similarity patterns
  3. embedding_similarity_analysis.py - Advanced similarity and temporal stability analysis
  4. embedding_alignment_tests.py - User-item embedding alignment validation
  5. interaction_embedding_analysis.py - Interaction patterns effect on embeddings

Current Variance Status βœ…

  • All embeddings exceed variance threshold (>0.025 vs 0.01 minimum)
  • No embedding collapse detected
  • Healthy diversity in user representations
  • Consistent similarity patterns across runs


Framework Migration Guide

Migrating from v1.0 to v2.0

Old Approach

# v1.0 - Individual test execution
python tests/embedding_similarity_analysis.py
python tests/architectural_validation_tests.py
python tests/run_all_tests.py

New Approach

# v2.0 - Unified advanced runner
python tests/test_runner.py --categories similarity unit
python tests/test_runner.py --parallel

Key Differences

  • Configuration: Centralized in tests/config/test_config.py
  • Base Classes: All tests should inherit from BaseTest
  • Execution: Parallel by default with intelligent scheduling
  • Reporting: Enhanced JSON reports with health scoring
  • Organization: Tests categorized by purpose (unit, integration, etc.)

Backward Compatibility

  • All existing test scripts continue to work
  • Legacy run_all_tests.py remains functional
  • Existing test result files are compatible
  • No breaking changes to test interfaces

Troubleshooting

Common Issues

Import Errors

ModuleNotFoundError: No module named 'src'

Solution: Use proper module execution or update PYTHONPATH

python -m tests.test_runner
# or
export PYTHONPATH="/path/to/project:$PYTHONPATH"

Parallel Execution Issues

# Reduce parallel workers
python tests/test_runner.py --sequential

# Or configure in environment
export MAX_PARALLEL_TESTS=2

Memory Issues

# Run resource-intensive tests sequentially
python tests/test_runner.py --categories performance --sequential

# Or run subset of tests
python tests/test_runner.py --categories unit similarity

Performance Optimization

Fast Testing (Development)

# Run only quick unit tests
python tests/test_runner.py --categories unit

# Skip analysis tests
python tests/test_runner.py --categories unit integration similarity

Full Validation (CI/CD)

# Complete test suite
python tests/test_runner.py

# With custom timeout and retries
python tests/test_runner.py --sequential

Last Updated: 2025-09-29 17:30:00 (Framework v2.0) Test Status: βœ… ENHANCED with parallel execution and advanced reporting Contact: Development Team Repository: Two-Tower Transformer RecSys