| --- |
| library_name: newsrex |
| tags: |
| - news-recommendation |
| - pprec |
| - jax |
| - mind |
| datasets: |
| - mind |
| license: apache-2.0 |
| --- |
| |
| # NewsReX PPREC β JAX β MIND-small |
|
|
| PPREC news recommendation model trained on MIND-small using the |
| [NewsReX](https://github.com/igor17400/NewsReX) framework (JAX). |
|
|
| ## Test Results |
|
|
| | Seed | AUC | MRR | NDCG@5 | NDCG@10 | |
| |------|-----|-----|--------|---------| |
| | 123 | 0.6634 | 0.3153 | 0.3507 | 0.4134 | |
| | 42 * | 0.6729 | 0.3228 | 0.3601 | 0.4215 | |
| | 456 | 0.6665 | 0.3164 | 0.3524 | 0.4145 | |
| | **mean Β± std** | **0.6676Β±0.0040** | **0.3182Β±0.0033** | **0.3544Β±0.0041** | **0.4164Β±0.0036** | |
|
|
| \* Best seed (weights at repo root) |
|
|
| ## Experiment Configuration |
|
|
| ```yaml |
| model: |
| name: pprec |
| architecture: |
| news_encoder: |
| type: multi_head_self_attention |
| news_dim: 400 |
| num_heads: 20 |
| head_dim: 20 |
| co_num_heads: 5 |
| co_head_dim: 40 |
| attention_hidden_dim: 200 |
| entity_embedding_dim: 100 |
| category_embedding_dim: 200 |
| use_entity: true |
| use_recency: true |
| use_ctr: true |
| use_activity_gate: true |
| popularity_embedding_bins: 200 |
| popularity_embedding_dim: 400 |
| recency_embedding_bins: 1500 |
| recency_embedding_dim: 100 |
| ctr_scaler_init: 19.0 |
| pop_content_dims: |
| - 256 |
| - 256 |
| - 128 |
| pop_recency_dims: |
| - 64 |
| - 64 |
| pop_gate_dims: |
| - 128 |
| - 64 |
| activity_gate_hidden_dim: 64 |
| embedding: |
| size: 300 |
| trainable: true |
| dropout_rate: 0.2 |
| seed: 42 |
| inputs: |
| title: |
| max_length: 32 |
| history: |
| max_length: 50 |
| impressions: |
| max_length: 5 |
| max_entities: 5 |
| process_title: true |
| process_abstract: false |
| process_category: true |
| process_subcategory: false |
| process_user_id: false |
| training: |
| loss: |
| name: categorical_crossentropy |
| from_logits: true |
| reduction: sum_over_batch_size |
| label_smoothing: 0.0 |
| optimizer: adam |
| learning_rate: 0.0001 |
| batch_size: 256 |
| num_epochs: 20 |
| early_stopping: |
| patience: 5 |
| min_improvement: 0.01 |
| negative_sampling: |
| strategy: random |
| candidates: 4 |
| evaluation: |
| mode: fast |
| evaluator: pp_rec |
| metrics: |
| - auc |
| - mrr |
| - ndcg@5 |
| - ndcg@10 |
| batch_size: 256 |
| ``` |
|
|
| ## Repository Structure |
|
|
| ``` |
| newsrex/PPREC-JAX-MIND-small/ |
| βββ model.safetensors β best seed (42) |
| βββ test_results.json |
| βββ training_run_summary.json |
| βββ seed_123/model.safetensors |
| βββ seed_42/model.safetensors |
| βββ seed_456/model.safetensors |
| βββ README.md |
| ``` |
|
|
| ## Usage |
|
|
| ```bash |
| git clone https://github.com/igor17400/NewsReX.git |
| cd NewsReX && uv sync |
| |
| # Run evaluation with best seed weights |
| uv run python src/eval.py \ |
| experiment=mind/pprec \ |
| framework=jax \ |
| weights=hf://newsrex/PPREC-JAX-MIND-small/model.safetensors |
| |
| # Run evaluation with a specific seed |
| uv run python src/eval.py \ |
| experiment=mind/pprec \ |
| framework=jax \ |
| weights=hf://newsrex/PPREC-JAX-MIND-small/seed_42/model.safetensors |
| ``` |
|
|
| ## Citation |
|
|
| ```bibtex |
| @misc{newsrex2026, |
| title={NewsReX: An Open-Source Multi-Framework for Neural News Recommendation}, |
| author={Igor L. R. Azevedo and Toyotaro Suzumura and Yuichiro Yasui}, |
| year={2025}, |
| eprint={2508.21572}, |
| archivePrefix={arXiv}, |
| primaryClass={cs.IR}, |
| url={https://arxiv.org/abs/2508.21572}, |
| } |
| ``` |
|
|