NewsReX: A More Efficient Approach to News Recommendation with Keras 3 and JAX
Paper β’ 2508.21572 β’ Published
TCCM news recommendation model trained on MIND-small using the NewsReX framework (JAX).
| Seed | AUC | MRR | NDCG@5 | NDCG@10 |
|---|---|---|---|---|
| 123 | 0.6678 | 0.3167 | 0.3523 | 0.4152 |
| 42 * | 0.6809 | 0.3251 | 0.3634 | 0.4253 |
| 456 | 0.6714 | 0.3205 | 0.3564 | 0.4178 |
| mean Β± std | 0.6734Β±0.0055 | 0.3208Β±0.0034 | 0.3574Β±0.0046 | 0.4194Β±0.0043 |
* Best seed (weights at repo root)
model:
name: tccm
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
popularity_embedding_bins: 200
popularity_embedding_dim: 400
popularity_encoder:
token_embedding_bins: 200
token_embedding_dim: 200
num_heads: 1
head_dim: 400
content_dims:
- 256
- 256
- 128
time_module:
embedding_bins: 505
embedding_dim: 100
dense_dims:
- 64
- 64
lambda_exp: 2.0
activity_gate_dims:
- 128
- 64
use_entity: true
use_activity_gate: true
use_causal_intervention: false
intervention_value: 0.5
embedding:
size: 300
trainable: true
dropout_rate: 0.2
seed: 42
inputs:
title:
max_length: 30
history:
max_length: 50
impressions:
max_length: 5
max_entities: 5
process_title: true
process_abstract: false
process_category: false
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: 1
evaluation:
mode: fast
evaluator: tccm
metrics:
- auc
- mrr
- ndcg@5
- ndcg@10
batch_size: 256
newsrex/TCCM-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
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/tccm \
framework=jax \
weights=hf://newsrex/TCCM-JAX-MIND-small/model.safetensors
# Run evaluation with a specific seed
uv run python src/eval.py \
experiment=mind/tccm \
framework=jax \
weights=hf://newsrex/TCCM-JAX-MIND-small/seed_42/model.safetensors
@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},
}