Blamed clicks vs random clicks
The notepad can split any news score into one number per past click: how much that click pushed the score up or down. This run asks whether those numbers are real. For every MIND-small validation impression we deleted the clicks the model blames most, replayed the session, and compared against deleting the same number of random clicks. Blamed clicks moved the score about twelve times more.
The clicks the notepad blames are the clicks that matter. Removing the top-3 blamed clicks drops the score about 12 times more than removing 3 random clicks.
What we did
- Froze the seed-42 keep-the-pad checkpoint. No training here — scoring only.
- Walked all 15,697 MIND-small validation impressions in order, updating the notepad click by click.
- At each impression, split the score into per-click credits and ranked clicks by how much credit they carry.
- Replayed the session twice: once without the top-k blamed clicks, once without k random clicks.
- Measured how far the scores moved in each case. Sessions held about 49 clicks on average.
The maths
Every score the model produces breaks into three parts, exactly:
This works because the notepad is a decaying sum of one rank-1 write per click. Unrolling it gives a closed form:
So each click's credit, in score units, is:
- Exactness is checked, not assumed. Every impression asserts |Σ terms − score| ≤ 1e-5 before it counts. A failure stops the run.
- Ranking clicks. Importance of click t is its mean size across the candidate list: meanc |creditt(c)|.
- The test statistic. Gap = mean |Δscore| after deleting the top-k blamed clicks − mean |Δscore| after deleting k random clicks. Bigger gap means the credits point at history that actually matters.
Mean score drop after deletion
Full results · seed 42 · validation
| Clicks removed | Impressions | Drop, blamed | Drop, random | Gap | Std of gap | Ratio |
|---|---|---|---|---|---|---|
| Top-3 vs 3 random | 15,657 | 0.716 | 0.060 | 0.656 | 0.715 | 11.9× |
| Top-5 vs 5 random | 15,657 | 0.892 | 0.110 | 0.782 | 0.742 | 8.1× |
- The gap grows from k=3 to k=5, so blaming more clicks does keep finding real signal.
- The ratio falls from 12× to 8× because credit is concentrated. Random deletions scale roughly with k (0.060 → 0.110), blamed deletions do not (0.716 → 0.892) — clicks four and five add little on top of the first three.
Why this strengthens the explainability claim
- Credits are in score units, not shares. Attention weights are positive and sum to 1, so they can only say which click got more of the model's focus. A credit of −0.4 says this click pushed the score down by 0.4.
- The decomposition is exact. The parts add back up to the score the model actually served, verified to 1e-5 on every impression. Nothing is left in an unexplained remainder.
- The credits are causal, not decorative. That is what this run tests. If credits were a post-hoc story, deleting the blamed clicks would move the score about as much as deleting random ones. It moves it 12 times more.
- It comes free with the architecture. The decomposition falls out of the notepad's decaying-sum update. It is not a separate surrogate model fitted after the fact.
- An attention-only model cannot produce this. It has no signed, additive, score-unit account of each past click to test in the first place.
What this run does not show
- It is not a ranking-quality result. Nothing here says the model recommends better.
- It is not a head-to-head against SASRec attention. That comparison has not been run.
- Deleting k clicks at once changes the sequence the later clicks were written into, so the drop is not a clean sum of k separate one-click effects. The slower single-click deletion pass covers that and is still running.
- The spread is wide (std ≈ 0.72). The average is strongly positive; individual impressions vary a lot.
- One seed, one dataset, validation split only.
Isolated top-k suite on damlr-w04 (RTX 4080 SUPER). MIND-small, frozen keep-the-pad checkpoint, seed 42. Validation only: 15,697 impressions walked; 15,657 had enough history to delete k clicks, mean 49.3 events per session; 40 skipped. Random control drawn without replacement per impression from a seeded generator. Test split sealed. Do not mix with published test-set tables.