This page analyzes the hyperparameter tuning results for the implicit-feedback ALS matrix factorization model.
Parameter Search Space
/home/mde48/lenskit/lenskit-codex/.venv/lib/python3.12/site-packages/ray/tune/search/sample.py:700: RayDeprecationWarning: The `base` argument is deprecated. Please remove it as it is not actually needed in this method.
embedding_size |
Integer |
LogUniform |
4 ≤ \(x\) ≤ 512 |
24 |
regularization.user |
Float |
LogUniform |
1e-05 ≤ \(x\) ≤ 1 |
0.0163 |
regularization.item |
Float |
LogUniform |
1e-05 ≤ \(x\) ≤ 1 |
0.0271 |
damping.user |
Float |
LogUniform |
1e-12 ≤ \(x\) ≤ 100 |
78.7 |
damping.item |
Float |
LogUniform |
1e-12 ≤ \(x\) ≤ 100 |
3.3e-06 |
weight |
Float |
Uniform |
5 ≤ \(x\) ≤ 100 |
7.52 |
Final Result
Searching selected the following configuration:
{
'embedding_size': 24,
'regularization': {'user': 0.016258224693422706, 'item': 0.02707865274273186},
'damping': {'user': 78.68903352299135, 'item': 3.300706088518047e-06},
'weight': 7.522183838780201,
'epochs': 6
}
With these metrics:
{
'RBP': 0.17067951204460352,
'LogRBP': 2.0262722902150383,
'NDCG': 0.4214122573243161,
'RecipRank': 0.32709071985844707,
'TrainTask': '65840d0c-0829-4399-90fb-9e7422ccd93b',
'TrainTime': None,
'TrainCPU': None,
'max_epochs': 30,
'done': True,
'training_iteration': 6,
'trial_id': '2fde4a2f',
'date': '2025-05-06_23-24-29',
'timestamp': 1746588269,
'time_this_iter_s': 84.51204633712769,
'time_total_s': 392.13457226753235,
'pid': 81223,
'hostname': 'CCI-ws21',
'node_ip': '10.248.127.152',
'config': {
'embedding_size': 24,
'regularization': {'user': 0.016258224693422706, 'item': 0.02707865274273186},
'damping': {'user': 78.68903352299135, 'item': 3.300706088518047e-06},
'weight': 7.522183838780201,
'epochs': 6
},
'time_since_restore': 392.13457226753235,
'iterations_since_restore': 6
}
Parameter Analysis
Embedding Size
The embedding size is the hyperparameter that most affects the model’s fundamental logic, so let’s look at performance as a fufnction of it:
Iteration Completion
How many iterations, on average, did we complete?
How did the metric progress in the best result?
How did the metric progress in the longest results?