FWPRec Experiments
All experiments
MIND-large · held-out test · 3 seeds · locked model

Which past clicks really mattered

The notepad can say which past events drove each score. We tested that claim on the locked Table 2 model: delete the events it names, score again, and see how far the scores move. Then we did the same with four other ways of picking events, including the standard explainer used for any neural network. This covered every MIND-large test impression, on all three trained seeds.

Takeaway

The model’s own explanation finds the events that matter best, beating every other picker in every seed. The margin is modest: its picks move the scores 1.3–1.6× as much as random picks.

369,454Test impressions explained, per seed
+46%More score movement than random (A, delete 3)
12 / 12Seed-by-cell checks where it beat the next-best picker

The test

If an explanation is right, removing the events it names should change the scores a lot. Removing random events should change them less.

Score articles normal ranking Delete the 3 events a picker names memory attribution or another picker Delete 3 random events the baseline Score again how far did it move? Score again how far did it move? Compare × random

Five ways to pick the events

Memory attributionThe model’s own account, read from its memory, of what each event added to the score.
RandomAny events. The baseline.
Most similarPast articles closest in topic to the ones being scored.
Most recentThe newest events.
Gradient × inputThe standard explainer for any neural network: the events the score is most sensitive to.

Two ways to delete

The notepad holds the last 20 events. Only those can be deleted, because only they get a memory attribution.

A · as deployed older event slides in … last 20 B · notepad only nothing slides in … last 20 in the notepad older, outside it deleted

Results

How much more the scores moved than when the same number of random events was deleted. The mean is over 3 seeds; hover a bar for ± spread.

A · as deployed · delete 3RandombaselineRandom, setting A, delete 3: scores moved 0.0599 ± 0.0015 (1.00× random ± 0.00); top pick changed in 29% of impressionsMost similarMost similar, setting A, delete 3: scores moved 0.0605 ± 0.0011 (1.01× random ± 0.01); top pick changed in 30% of impressions+1%Most recentMost recent, setting A, delete 3: scores moved 0.0663 ± 0.0026 (1.11× random ± 0.02); top pick changed in 33% of impressions+11%Gradient × inputGradient × input, setting A, delete 3: scores moved 0.0784 ± 0.0039 (1.31× random ± 0.03); top pick changed in 38% of impressions+31%Memory attributionMemory attribution, setting A, delete 3: scores moved 0.0872 ± 0.0033 (1.46× random ± 0.02); top pick changed in 42% of impressions+46%A · as deployed · delete 5RandombaselineRandom, setting A, delete 5: scores moved 0.0781 ± 0.0016 (1.00× random ± 0.00); top pick changed in 38% of impressionsMost similarMost similar, setting A, delete 5: scores moved 0.0795 ± 0.0013 (1.02× random ± 0.01); top pick changed in 39% of impressions+2%Most recentMost recent, setting A, delete 5: scores moved 0.0846 ± 0.0026 (1.08× random ± 0.01); top pick changed in 41% of impressions+8%Gradient × inputGradient × input, setting A, delete 5: scores moved 0.0928 ± 0.0044 (1.19× random ± 0.03); top pick changed in 45% of impressions+19%Memory attributionMemory attribution, setting A, delete 5: scores moved 0.1030 ± 0.0035 (1.32× random ± 0.02); top pick changed in 49% of impressions+32%B · notepad only · delete 3RandombaselineRandom, setting B, delete 3: scores moved 0.0695 ± 0.0012 (1.00× random ± 0.00); top pick changed in 18% of impressionsMost similarMost similar, setting B, delete 3: scores moved 0.0682 ± 0.0016 (0.98× random ± 0.02); top pick changed in 19% of impressions-2%Most recentMost recent, setting B, delete 3: scores moved 0.0758 ± 0.0027 (1.09× random ± 0.02); top pick changed in 23% of impressions+9%Gradient × inputGradient × input, setting B, delete 3: scores moved 0.0993 ± 0.0044 (1.43× random ± 0.04); top pick changed in 28% of impressions+43%Memory attributionMemory attribution, setting B, delete 3: scores moved 0.1095 ± 0.0036 (1.57× random ± 0.03); top pick changed in 31% of impressions+57%B · notepad only · delete 5RandombaselineRandom, setting B, delete 5: scores moved 0.1129 ± 0.0021 (1.00× random ± 0.00); top pick changed in 25% of impressionsMost similarMost similar, setting B, delete 5: scores moved 0.1116 ± 0.0028 (0.99× random ± 0.02); top pick changed in 27% of impressions-1%Most recentMost recent, setting B, delete 5: scores moved 0.1179 ± 0.0035 (1.04× random ± 0.01); top pick changed in 30% of impressions+4%Gradient × inputGradient × input, setting B, delete 5: scores moved 0.1458 ± 0.0058 (1.29× random ± 0.03); top pick changed in 34% of impressions+29%Memory attributionMemory attribution, setting B, delete 5: scores moved 0.1591 ± 0.0050 (1.41× random ± 0.03); top pick changed in 38% of impressions+41%
PickerA · delete 3A · delete 5B · delete 3B · delete 5
Random1.00× · 29%1.00× · 38%1.00× · 18%1.00× · 25%
Most similar1.01× · 30%1.02× · 39%0.98× · 19%0.99× · 27%
Most recent1.11× · 33%1.08× · 41%1.09× · 23%1.04× · 30%
Gradient × input1.31× · 38%1.19× · 45%1.43× · 28%1.29× · 34%
Memory attribution1.46× · 42%1.32× · 49%1.57× · 31%1.41× · 38%

Each cell shows score movement relative to random, then the share of impressions where the top-ranked article changed. Memory attribution beat gradient × input in all 12 seed × cell comparisons. Across seeds, the spread in score movement is at most ±0.006.

Why not 12× like the old run?

What this does not show

Isolated package experiments/isolated/attribution_literal_lab. It uses the three Table 2 FWPRec checkpoints (seeds 42/43/44, locked paper model), MIND-large test, on damlr-w02/w03/w04 (RTX 4080 SUPER), with no training.
Impressions: 369,454 of 376,471 per seed; 7,017 with no history were excluded.
Checks, per seed:
· The engine reproduces the archived Table 2 scores (max difference ≤ 1.8e-7).
· The per-event credits add up exactly to each score (residual ≤ 4.2e-7).
· An 11-test gate, including an independent delta-rule reference and a gradient check against autograd.
Deleting 3 or 5 events; pool = the ≤ 20 notepad events (15.5 on average). The random picker is seeded per checkpoint. This replaces the older MIND-small blamed-clicks run, which used a different model.

Paper figures

Publication versions of this page's charts, as PDF. Each series or cell is encoded twice (colour plus pattern, marker or printed value), so they read in greyscale and under colour-vision deficiency. Click a preview to open the PDF.

Setting A · as deployed (paper figure)
Setting A · as deployed — Score movement after deleting 3 or 5 events; ± spread over 3 seeds. PDF
Setting B · notepad only (paper figure)
Setting B · notepad only — Same test with no older event sliding in. PDF