This evaluation protocol assesses a model's ability to perform session-based next-item recommendation by predicting the subsequent item a user will click based on their recent interaction history. It probes the model's capacity to capture both short-term sequential dependencies and long-term contextual patterns within a session without relying on explicit user profiles. Use when the user wants to benchmark on Yoochoose1/64, Yoochoose1/4, Diginetica, or asks about evaluating this task. Reports...
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill casif-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Casif Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-casif-eval)More formats (shields.io, HTML) on the badges page.
---
name: casif-eval
description: This evaluation protocol assesses a model's ability to perform session-based next-item recommendation by predicting the subsequent item a user will click based on their recent interaction history. It probes the model's capacity to capture both short-term sequential dependencies and long-term contextual patterns within a session without relying on explicit user profiles. Use when the user wants to benchmark on Yoochoose1/64, Yoochoose1/4, Diginetica, or asks about evaluating this task. Reports Recall@k.
metadata:
skill_kind: dataset_eval
source_arxiv: 2103.15514
bibtex_key: duan2021casif
confidence: high
---
# casif-eval
> Context-aware short-term interest first model for session-based recommendation — Duan et al. (2021) (arXiv:2103.15514, 2021)
## What this evaluates
This evaluation protocol assesses a model's ability to perform session-based next-item recommendation by predicting the subsequent item a user will click based on their recent interaction history. It probes the model's capacity to capture both short-term sequential dependencies and long-term contextual patterns within a session without relying on explicit user profiles.
## Datasets
- **Yoochoose1/64** — total 424757; splits: train (368859), test (55898)
- **Yoochoose1/4** — total 5973643; splits: train (5917745), test (55898)
- **Diginetica** — total 780328; splits: train (719470), test (60858)
## Metrics
- `Recall@k` **(primary)** — range: percent
- Recall@k = n_hit / N, where N is the number of test sessions and n_hit is the number of sessions where the ground-truth next item appears in the top-K predicted items.
- `MRR@k` — range: percent
- MRR@k = (1/N) * sum(1/rank_i), where rank_i is the position of the ground-truth item in the top-K list (0 if not present).
## Input / output format
**Input**: Chronological sequence of items clicked in a session.
**Output**: Ranked list of candidate items (top-K) for the next click.
## Scoring recipe
```python
def compute_recall_at_k(preds, gold, k):
hits = sum(1 for p, g in zip(preds, gold) if g in p[:k])
return hits / len(gold)
def compute_mrr_at_k(preds, gold, k):
rr = []
for p, g in zip(preds, gold):
try:
rr.append(1.0 / (p[:k].index(g) + 1))
except ValueError:
rr.append(0.0)
return sum(rr) / len(gold)
```
## Common pitfalls
- The standard preprocessing for Yoochoose and Diginetica involves filtering sessions of length 1 and items with fewer than 5 occurrences, plus specific time-based train/test splits; using raw data yields non-comparable results.
- Metrics are reported as percentages in the results tables but defined as proportions in the formulas; failing to multiply by 100 causes a 100x discrepancy.
- Evaluation must be performed at multiple K values (5, 10, 20); reporting only one K value omits critical performance dimensions highlighted in the paper.
## Evidence (verbatim from paper)
> We use the following performance metrics to compare these algorithms, which have been widely used in session-based recommendation systems.
Recall@k: Be widely used as a measure of predictive accuracy in all kinds of recommendation systems. It represents the proportion of correctly recommended items amongst the top-k items.
$$
\text {R e c a l l} @ k = \frac {n _ {\text {h i t}}}{N}, \tag {14}
$$
Where $N$ is the number of test sessions in the testing set, $n_{hit}$ denotes the number of sessions which have hit items among top-K ranking list.
$MRR@k$ : MRR (Mean Reciprocal Rank) is the average of reciprocal ranks of desired items. The reciprocal rank is set to zero if the rank is larger than $K$ .
$$
M R R @ k = \frac {1}{N} \sum_ {i = 1} ^ {N} \frac {1}{r a n k _ {i}}, \tag {15}
$$
## Citation
```bibtex
@misc{duan2021casif,
title={Context-aware short-term interest first model for session-based recommendation},
author={Duan et al. (2021)},
year={2021},
note={arXiv:2103.15514}
}
```
- arXiv: 2103.15514
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!