SIGIR Experiments
SIGIR inherits its experimental culture from the Cranfield/TREC tradition: shared
test collections, pooled relevance judgments, and statistical comparison of systems.
Reviewers audit the protocol before they admire the numbers. This skill designs an
evidence program that survives that audit — and flags the LLM-era failure modes that
current program committees have learned to probe.
Claim → collection matching
The collection lineup is an argument about the claim's scope:
| Claim type |
Minimum credible lineup |
Watch out for |
| Ad-hoc passage/document ranking |
MS MARCO dev + TREC DL (multiple years) |
Shallow-judgment bias on MARCO; report judged@k on DL |
| Zero-shot / generalization |
A BEIR-style multi-collection suite |
Cherry-picking subsets; state the full suite or the selection rule |
| Domain-specific retrieval |
The domain's standard collection + one general control |
Claiming generality from the domain alone |
| Recommendation |
≥2 public interaction datasets with standard splits |
Nonstandard splits that break comparability |
| Efficiency |
Same quality collections + a latency/memory protocol |
Quality-only baselines at different operating points |
| New task / evaluation method |
A purpose-built collection with documented judgments |
See sigir-artifact-evaluation for judgment standards |
Rule: every collection has known ceiling effects and judgment quirks; one sentence
acknowledging the relevant quirk ("MARCO's sparse judgments penalize novel-document
retrieval; we therefore also report ...") converts a vulnerability into credibility.
Metrics and cutoffs
- Pre-commit to metrics that match the task stage: recall-oriented (R@1000) for
first-stage retrieval, precision-oriented (nDCG@10, RR@10) for re-ranking and
user-facing quality, and report both when the pipeline has both stages.
- Fix cutoffs before running; a paper whose cutoff varies by table row is assumed
to have shopped.
- Compute every system's metrics with the same tool and flags; cross-paper metric
implementations differ measurably (see
sigir-reproducibility).
Significance testing: the house protocol
The community default is the paired test on per-topic scores with correction
for multiple comparisons. A defensible standard setup:
# per-topic paired comparison, the SIGIR-standard shape
import ir_measures, scipy.stats as st
ours = per_topic_scores("runs/ours.trec", qrels, "nDCG@10")
base = per_topic_scores("runs/base.trec", qrels, "nDCG@10")
t, p = st.ttest_rel(ours, base) # paired t-test across topics
# correct across the family of comparisons you actually report:
# Bonferroni/Holm over {baselines} x {collections} x {metrics}
- Report the test name, correction, alpha, and n (topics) in the caption.
- Randomization/permutation tests are equally accepted; Wilcoxon is common; what is
not accepted is no test under close deltas.
- Neural systems: ≥3 seeds, mean ± sd; significance on the per-topic means, and say
which seed's run files ship in the repository.
- Effect size beats star-counting: a 0.3-point significant gain on a 700-topic
collection is publishable as analysis, not as a "substantial improvement."
Baseline fairness — the objection that kills
The most common fatal review at SIGIR is some form of "the baselines were not given
the same care." Inoculation checklist:
- Equal tuning budget per system, documented (search space, trials, dev split).
- Baselines at current strength: a tuned BM25 (k1/b swept), the strongest published
configuration of each neural baseline, and at least one recent (last ~2 SIGIR/ECIR
cycles) system in the family you claim to beat.
- Never mix copied numbers with computed numbers in one table silently; if you must
quote a published number, mark it and explain the setup match.
- Same first-stage candidates, same re-ranking depth, same truncation for everyone.
Ablations and analysis
- One ablation per named mechanism: remove/replace it and show the delta on the
headline metric — "the gain comes from X" needs the X-less row.
- Per-query analysis: win/loss buckets against the best baseline, with one diagnosed
pattern (query type, length, term rarity) rather than anecdote screenshots.
- Sensitivity: the hyperparameter the method is most proud of gets a sweep plot.
Pre-registration worksheet (internal, one page, before running)
Freezing these six answers before the first run prevents the shopping patterns
reviewers detect:
- Primary claim, one sentence, with its scope qualifier.
- Collections and why each is load-bearing for that scope.
- Metrics + cutoffs (primary vs secondary, pre-committed).
- Baseline set + per-system tuning budget.
- The significance test, correction family, and alpha.
- The ablation matrix: mechanism → isolating row.
Deviations during the project are fine — logged deviations are method; silent ones
are p-hacking with extra steps.
LLM-era pitfalls reviewers now probe
- Contamination: models trained on the web have seen MARCO/BEIR text; say what
you can about training-data overlap, and prefer post-cutoff or held-out topics
where the claim depends on unseen data.
- LLM-as-judge: if you evaluate with an LLM assessor, validate it against human
judgments on a subsample and report agreement; unvalidated LLM judgments as sole
evidence are a growing desk-level concern.
- Prompt sensitivity: report the prompt, temperature, and n-trials for any
generative component; single-shot generative numbers without variance are the new
single-seed problem.
- API drift: name model versions and dates; "GPT-4" is not a reproducible system
identifier.
Output format
[Claim-collection match] lineup adequate for claimed scope y/n; quirks acknowledged y/n
[Metric discipline] task-stage match / fixed cutoffs / single tool: pass each
[Statistics] test + correction + n named / seeds >=3 / effect size discussed
[Baseline fairness] tuning symmetry / current-strength set / no silent copied numbers
[Ablation coverage] mechanisms with isolating rows: <k>/<n>
[LLM-era risks] contamination / judge-validation / prompt-variance / version-pinning
[Weakest link] <the single protocol element a hostile reviewer attacks first>
Source: brycewang-stanford/Awesome-Journal-Skills → SIGIR-Skills/skills/sigir-experiments/SKILL.md
1---2name: sigir-experiments3description: Use when designing or auditing the empirical program of a SIGIR paper — choosing test collections that match the claim, metric-cutoff discipline, paired significance testing with multiple-comparison correction, baseline tuning symmetry, ablations that isolate mechanisms, efficiency reporting, and LLM-era evaluation pitfalls.4---5
6
7# SIGIR Experiments
8
9SIGIR inherits its experimental culture from the Cranfield/TREC tradition: shared
10test collections, pooled relevance judgments, and statistical comparison of systems.
11Reviewers audit the *protocol* before they admire the numbers. This skill designs an
12evidence program that survives that audit — and flags the LLM-era failure modes that
13current program committees have learned to probe.
14
15## Claim → collection matching
16
17The collection lineup is an argument about the claim's scope:
18
19| Claim type | Minimum credible lineup | Watch out for |
20|---|---|---|
21| Ad-hoc passage/document ranking | MS MARCO dev + TREC DL (multiple years) | Shallow-judgment bias on MARCO; report judged@k on DL |
22| Zero-shot / generalization | A BEIR-style multi-collection suite | Cherry-picking subsets; state the full suite or the selection rule |
23| Domain-specific retrieval | The domain's standard collection + one general control | Claiming generality from the domain alone |
24| Recommendation | ≥2 public interaction datasets with standard splits | Nonstandard splits that break comparability |
25| Efficiency | Same quality collections + a latency/memory protocol | Quality-only baselines at different operating points |
26| New task / evaluation method | A purpose-built collection with documented judgments | See `sigir-artifact-evaluation` for judgment standards |
27
28Rule: every collection has known ceiling effects and judgment quirks; one sentence
29acknowledging the relevant quirk ("MARCO's sparse judgments penalize novel-document
30retrieval; we therefore also report ...") converts a vulnerability into credibility.
31
32## Metrics and cutoffs
33
34- Pre-commit to metrics that match the task stage: recall-oriented (R@1000) for
35 first-stage retrieval, precision-oriented (nDCG@10, RR@10) for re-ranking and
36 user-facing quality, and report both when the pipeline has both stages.
37- Fix cutoffs before running; a paper whose cutoff varies by table row is assumed
38 to have shopped.
39- Compute every system's metrics with the same tool and flags; cross-paper metric
40 implementations differ measurably (see `sigir-reproducibility`).
41
42## Significance testing: the house protocol
43
44The community default is the **paired test on per-topic scores** with correction
45for multiple comparisons. A defensible standard setup:
46
47```python
48# per-topic paired comparison, the SIGIR-standard shape
49import ir_measures, scipy.stats as st
50ours = per_topic_scores("runs/ours.trec", qrels, "nDCG@10")
51base = per_topic_scores("runs/base.trec", qrels, "nDCG@10")
52t, p = st.ttest_rel(ours, base) # paired t-test across topics
53# correct across the family of comparisons you actually report:
54# Bonferroni/Holm over {baselines} x {collections} x {metrics}
55```
56
57- Report the test name, correction, alpha, and n (topics) in the caption.
58- Randomization/permutation tests are equally accepted; Wilcoxon is common; what is
59 not accepted is *no* test under close deltas.
60- Neural systems: ≥3 seeds, mean ± sd; significance on the per-topic means, and say
61 which seed's run files ship in the repository.
62- Effect size beats star-counting: a 0.3-point significant gain on a 700-topic
63 collection is publishable as *analysis*, not as a "substantial improvement."
64
65## Baseline fairness — the objection that kills
66
67The most common fatal review at SIGIR is some form of "the baselines were not given
68the same care." Inoculation checklist:
69
70- Equal tuning budget per system, documented (search space, trials, dev split).
71- Baselines at current strength: a tuned BM25 (k1/b swept), the strongest published
72 configuration of each neural baseline, and at least one recent (last ~2 SIGIR/ECIR
73 cycles) system in the family you claim to beat.
74- Never mix copied numbers with computed numbers in one table silently; if you must
75 quote a published number, mark it and explain the setup match.
76- Same first-stage candidates, same re-ranking depth, same truncation for everyone.
77
78## Ablations and analysis
79
80- One ablation per named mechanism: remove/replace it and show the delta on the
81 headline metric — "the gain comes from X" needs the X-less row.
82- Per-query analysis: win/loss buckets against the best baseline, with one diagnosed
83 pattern (query type, length, term rarity) rather than anecdote screenshots.
84- Sensitivity: the hyperparameter the method is most proud of gets a sweep plot.
85
86## Pre-registration worksheet (internal, one page, before running)
87
88Freezing these six answers before the first run prevents the shopping patterns
89reviewers detect:
90
911. Primary claim, one sentence, with its scope qualifier.
922. Collections and why each is load-bearing for that scope.
933. Metrics + cutoffs (primary vs secondary, pre-committed).
944. Baseline set + per-system tuning budget.
955. The significance test, correction family, and alpha.
966. The ablation matrix: mechanism → isolating row.
97
98Deviations during the project are fine — logged deviations are method; silent ones
99are p-hacking with extra steps.
100
101## LLM-era pitfalls reviewers now probe
102
103- **Contamination**: models trained on the web have seen MARCO/BEIR text; say what
104 you can about training-data overlap, and prefer post-cutoff or held-out topics
105 where the claim depends on unseen data.
106- **LLM-as-judge**: if you evaluate with an LLM assessor, validate it against human
107 judgments on a subsample and report agreement; unvalidated LLM judgments as sole
108 evidence are a growing desk-level concern.
109- **Prompt sensitivity**: report the prompt, temperature, and n-trials for any
110 generative component; single-shot generative numbers without variance are the new
111 single-seed problem.
112- **API drift**: name model versions and dates; "GPT-4" is not a reproducible system
113 identifier.
114
115## Output format
116
117```text
118[Claim-collection match] lineup adequate for claimed scope y/n; quirks acknowledged y/n
119[Metric discipline] task-stage match / fixed cutoffs / single tool: pass each
120[Statistics] test + correction + n named / seeds >=3 / effect size discussed
121[Baseline fairness] tuning symmetry / current-strength set / no silent copied numbers
122[Ablation coverage] mechanisms with isolating rows: <k>/<n>
123[LLM-era risks] contamination / judge-validation / prompt-variance / version-pinning
124[Weakest link] <the single protocol element a hostile reviewer attacks first>
125```
126
127---
128
129**Source:** [`brycewang-stanford/Awesome-Journal-Skills`](https://github.com/brycewang-stanford/Awesome-Journal-Skills) → `SIGIR-Skills/skills/sigir-experiments/SKILL.md`