Skip to content
Back to skills

Llm Recommender Eval

ASecurity

Evaluates the performance and behavioral characteristics of Large Language Models when deployed as recommender systems. It probes traditional recommendation accuracy and novelty, alongside LLM-specific traits like history length sensitivity, candidate position bias, and hallucination rates. Use when the user wants to benchmark on Unspecified recommendation datasets (four datasets referenced in paper), or asks about evaluating this task. Reports HR.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
researchpythongogitperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill llm-recommender-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Llm Recommender Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Llm Recommender Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-llm-recommender-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-llm-recommender-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: llm-recommender-eval
description: Evaluates the performance and behavioral characteristics of Large Language Models when deployed as recommender systems. It probes traditional recommendation accuracy and novelty, alongside LLM-specific traits like history length sensitivity, candidate position bias, and hallucination rates. Use when the user wants to benchmark on Unspecified recommendation datasets (four datasets referenced in paper), or asks about evaluating this task. Reports HR.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2411.00331
  bibtex_key: [REDACTED]
  confidence: high
---

# llm-recommender-eval

> Beyond Utility: Evaluating LLM as Recommender — Jiang et al. (2024) (arXiv:2411.00331, 2024)

## What this evaluates

Evaluates the performance and behavioral characteristics of Large Language Models when deployed as recommender systems. It probes traditional recommendation accuracy and novelty, alongside LLM-specific traits like history length sensitivity, candidate position bias, and hallucination rates.

## Datasets

- **Unspecified recommendation datasets (four datasets referenced in paper)** — total ?; splits: train (-1), test (-1); repo https://github.com/JiangDeccc/EvaLLMasRecommender

## Metrics

- `HR` **(primary)** — range: [0, 1]
  - Hit Rate: proportion of users for whom the ground-truth next item appears in the top-K recommended list.
- `NDCG` — range: [0, 1]
  - Normalized Discounted Cumulative Gain: measures ranking quality by discounting the relevance of the ground-truth item based on its position in the list.
- `APLT@K` — range: [0, 1]
  - Average Percentage of Long Tail Items: (1/|R|) * sum(|R_u ∩ Φ| / K), where Φ contains items in the bottom 80% by interaction frequency.
- `Serendipity@K` — range: [0, 1]
  - Proportion of recommended items that are correct but were not recommended by a Most Popular baseline: (1/|R|) * sum(1/K * sum(1(i ∉ R_u^pop)))
- `CandDif_Acc` — range: other
  - Candidate Position Bias: -log(1 - Acc(R_first)) - (-log(1 - Acc(R_random))), measuring accuracy variation when positive items are moved from first to random positions.
- `Hallucination` — range: [0, 1]
  - Proportion of recommended items that fail case/symbol-agnostic string matching against the official item title set I.

## Input / output format

**Input**: Prompt containing task instruction, user interaction history (h_u), and a candidate item set (C_u,y) indexed by item titles (T).

**Output**: A ranked list of top-K item titles (R_u) selected from the provided candidate set.

## Scoring recipe

```python
def evaluate(preds, gold, item_titles, long_tail_set, pop_recs, k):
    hr = sum(1 for p, g in zip(preds, gold) if g in p[:k]) / len(preds)
    ndcg = compute_ndcg(preds, gold, k)
    aplt = sum(len(set(p[:k]) & long_tail_set) / k for p in preds) / len(preds)
    serendipity = sum(1 for p in preds for i in p[:k] if i not in pop_recs) / (len(preds) * k)
    cand_diff = -np.log(1 - acc_first) + np.log(1 - acc_random)
    hallucination = sum(1 for p in preds for i in p[:k] if i not in item_titles) / (len(preds) * k)
    return {'HR': hr, 'NDCG': ndcg, 'APLT@K': aplt, 'Serendipity@K': serendipity, 'CandDif_Acc': cand_diff, 'Hallucination': hallucination}
```

## Common pitfalls

- LLMs exhibit strong candidate position bias, often favoring items at the front of the input list regardless of prompt instructions to sort randomly.
- Hallucination evaluation requires strict string matching (ignoring case/symbols) against the official item title set I, as minor formatting differences can falsely flag valid items as hallucinations.
- Small-sample evaluation requires a Kolmogorov-Smirnov (K-S) test validation to ensure the sampled test set distribution matches the full dataset before running metrics.

## Evidence (verbatim from paper)

> Utility primarily represents the accuracy of recommendations. We utilize two widely-used metrics - HR and NDCG. HR measures the proportion of users obtaining accurate recommendations, while NDCG also takes the ranking quality of the recommendation results into consideration.

## Citation

```bibtex
@misc{jiang2024beyondutility,
  title={Beyond Utility: Evaluating LLM as Recommender},
  author={Jiang et al. (2024)},
  year={2024},
  note={arXiv:2411.00331}
}
```

- arXiv: 2411.00331

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.