% 25-minute research discussion: frames 1--20; frames 21--23 are backups.
% Adapted from the arxiv-paper-reader Beamer template.
% Compile: python3 build_slides.py slides.en.tex
\documentclass[aspectratio=169,11pt]{beamer}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb,graphicx,booktabs,array,lmodern}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

\definecolor{AcademicBlue}{RGB}{26,57,86}
\definecolor{AcademicTeal}{RGB}{0,105,112}
\setbeamercolor{structure}{fg=AcademicBlue}
\setbeamercolor{frametitle}{fg=AcademicBlue,bg=white}
\setbeamercolor{title}{fg=AcademicBlue}
\setbeamercolor{alerted text}{fg=AcademicTeal}
\setbeamercolor{block title}{fg=white,bg=AcademicBlue}
\setbeamercolor{block body}{fg=black,bg=AcademicBlue!5}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{itemize items}[circle]
\setbeamertemplate{footline}{%
  \hspace{8mm}{\color{gray}\scriptsize SAB / arXiv:1809.03702v1}\hfill
  \usebeamerfont{page number in head/foot}%
  \insertframenumber\,/\,\inserttotalframenumber\hspace{4mm}\par\vspace{3mm}}
\setbeamersize{text margin left=8mm,text margin right=8mm}
\setbeamerfont{frametitle}{size=\Large,series=\bfseries}
\setbeamerfont{title}{size=\LARGE,series=\bfseries}
\newcommand{\papersource}[1]{\par\smallskip{\scriptsize\color{gray}#1\par}}
\newcommand{\kt}{k_{\mathrm{top}}}
\newcommand{\ka}{k_{\mathrm{att}}}
\newcommand{\kr}{k_{\mathrm{trunc}}}
\newcommand{\bh}{\boldsymbol h}
\newcommand{\bm}{\boldsymbol m}
\newcommand{\bs}{\boldsymbol s}
\newcommand{\bW}{\boldsymbol W}
\title[Sparse Attentive Backtracking]{Sparse Attentive Backtracking}
\subtitle{Temporal Credit Assignment Through Reminding}
\author{Research paper discussion}
\date{29 October 2026}

\begin{document}

% 1 -- 1 min
\begin{frame}
  \vspace{1mm}
  {\usebeamerfont{title}\color{AcademicBlue}\inserttitle\par}
  \par\vspace{3mm}
  {\large\insertsubtitle\par}
  \vspace{5mm}
  {\small Paper authors: Nan Rosemary Ke, Anirudh Goyal, Olexa Bilaniuk,\\
  Jonathan Binas, Michael C. Mozer, Chris Pal, Yoshua Bengio\par}
  \par\vspace{4mm}
  \href{https://arxiv.org/abs/1809.03702v1}{arXiv:1809.03702v1 (11 September 2018)}\par
  \vspace{1mm}
  Published at \href{https://proceedings.neurips.cc/paper/2018/hash/e16e74a63567ecb44ade5c87002bb1d9-Abstract.html}{NeurIPS 2018}
  \quad\textbar\quad
  \href{https://github.com/nke001/sparse_attentive_backtracking_release}{Official code}
  \begin{block}{Central idea}
    Retrieve a few useful past states, then send credit directly to them
    and to short segments of their local history.
  \end{block}
  \papersource{Independent reading presentation, 29 October 2026. Publication and code checked on this date.}
\end{frame}

% 2 -- 1 min
\begin{frame}{Long memory also needs a route for learning}
  \[
  \bh^{(t)}=f_\theta(\bh^{(t-1)},\boldsymbol x^{(t)})
  \]
  \begin{columns}[T,onlytextwidth]
  \begin{column}{0.48\textwidth}
    \begin{block}{Full BPTT}
      Credit crosses the entire chain of recurrent transitions.
    \end{block}
    Long products of Jacobians; a long computation history to retain.
  \end{column}
  \begin{column}{0.48\textwidth}
    \begin{block}{Truncated BPTT}
      Credit stops after a short local horizon.
    \end{block}
    Forward state can retain information, while distant computations lose
    their direct training signal.
  \end{column}
  \end{columns}
  \vspace{5mm}
  \alert{SAB: keep short local updates and add learned temporal shortcuts.}
  \papersource{Paper, Secs. 1.1--1.2, PDF pp. 2--3.}
\end{frame}

% 3 -- 1 min
\begin{frame}{Three budgets control storage, reading and replay}
  \renewcommand{\arraystretch}{1.5}
  \begin{tabular}{lL{4.6cm}L{6.2cm}}
  \toprule
  Parameter & Meaning & Consequence \\
  \midrule
  $\ka$ & Save every $\ka$-th hidden state & Controls candidate memory density \\
  $\kt$ & Read at most $\kt$ memories per step & Controls sparse retrieval support \\
  $\kr$ & Backpropagate through a short local segment & Controls local credit assignment \\
  \bottomrule
  \end{tabular}\par
  \vspace{5mm}
  \begin{itemize}
    \item Retrieval runs at every step; $\ka$ is the \emph{write} interval.
    \item A retrieved state can be much older than $\kr$ time steps.
    \item Memory grows with history; this implementation has no eviction rule.
  \end{itemize}
  \papersource{Paper, Secs. 3.1--3.2 and Algorithm 1, PDF pp. 4--5.}
\end{frame}

% 4 -- 1 min
\begin{frame}{The forward pass selects a few temporal shortcuts}
  \centering
  \includegraphics[width=0.91\linewidth,height=0.68\textheight,keepaspectratio]{figures/fig-01-forward.png}
  \par\vspace{2mm}
  \raggedright
  Gray: score all stored candidates.\quad Red: read the selected memories.
  \papersource{Original Fig. 1, PDF p. 4; $\kt=3$, $\ka=2$, $\kr=2$. Author image.}
\end{frame}

% 5 -- 1.5 min
\begin{frame}{Current context scores every stored memory}
  \[
  (\hat{\bh}^{(t)},\boldsymbol c^{(t)})
  =\operatorname{LSTMCell}(\bh^{(t-1)},\boldsymbol c^{(t-1)},\boldsymbol x^{(t)})
  \]
  \vspace{2mm}
  \[
  \boldsymbol d_i^{(t)}=\bW_1\bm^{(i)}+\bW_2\hat{\bh}^{(t)},
  \qquad a_i^{(t)}=\bW_3\tanh(\boldsymbol d_i^{(t)})
  \]
  \begin{itemize}
    \item $\hat{\bh}^{(t)}$: provisional hidden state, used as the query.
    \item $\bm^{(i)}\in\mathbb R^n$: a stored past hidden state.
    \item $a_i^{(t)}$: scalar relevance score from a one-hidden-layer MLP.
  \end{itemize}
  \begin{block}{Where the work still happens}
    Sparse reading follows \emph{all-candidate scoring}.
  \end{block}
  \papersource{Paper, Sec. 3.1 and Algorithm 1, PDF pp. 4--5.}
\end{frame}

% 6 -- 1.5 min
\begin{frame}{A threshold turns scores into sparse weights}
  Let $\tau_t$ be the $(\kt+1)$-th largest score.
  \[
  \tilde a_i^{(t)}=\max\{a_i^{(t)}-\tau_t,0\},\qquad
  \alpha_i^{(t)}=\frac{\tilde a_i^{(t)}}{\sum_j\tilde a_j^{(t)}}
  \]
  \begin{block}{Teaching example: $\kt=2$}
    \[
    [4,3,1,0]\ \xrightarrow{\ \tau=1\ }\ [3,2,0,0]
    \ \xrightarrow{\ \mathrm{normalize}\ }\ [0.6,0.4,0,0]
    \]
  \end{block}
  \begin{itemize}
    \item Positive weights measure prominence above the cutoff.
    \item At most $\kt$ active memories, when normalization is defined.
    \item Unlike softmax, excluded memories have exactly zero read weight.
  \end{itemize}
  \papersource{Algorithm 1, PDF p. 5. $\alpha$ is added notation for the normalized weight; example is illustrative.}
\end{frame}

% 7 -- 1 min
\begin{frame}{Retrieved content updates both state and output}
  \[
  \bs^{(t)}=\sum_i\alpha_i^{(t)}\bm^{(i)},\qquad
  \bh^{(t)}=\hat{\bh}^{(t)}+\bs^{(t)}
  \]
  \[
  \boldsymbol y^{(t)}=\boldsymbol V_1\bh^{(t)}
  +\boldsymbol V_2\bs^{(t)}+\boldsymbol b
  \]
  \vspace{2mm}
  \begin{enumerate}
    \item Read past memories into the summary $\bs^{(t)}$.
    \item Add the summary to the provisional hidden state.
    \item Predict using both the resulting state and the summary.
    \item If $t\equiv0\pmod{\ka}$, append $\bh^{(t)}$ to memory.
  \end{enumerate}
  \papersource{Paper, Algorithm 1, PDF p. 5. Retrieval occurs before the current state is appended.}
\end{frame}

% 8 -- 1.5 min
\begin{frame}{Backward credit jumps, then replays a local segment}
  \centering
  \includegraphics[width=0.92\linewidth,height=0.68\textheight,keepaspectratio]{figures/fig-02-backward.png}
  \par\vspace{2mm}
  \raggedright
  Blue: gradient flow.\quad Red crosses: local truncation boundaries.
  \papersource{Original Fig. 2, PDF p. 6; $\kt=3$, $\ka=2$, $\kr=2$. Author image.}
\end{frame}

% 9 -- 1.5 min
\begin{frame}{Mental updates train the computation behind a memory}
  \begin{block}{Direct value path, holding attention weights fixed}
  \[
  \left.\frac{\partial\bh^{(t)}}{\partial\bm^{(i)}}\right|_{\mathrm{direct},\ \alpha\ \mathrm{fixed}}
  =\alpha_i^{(t)}\boldsymbol I
  \]
  \end{block}
  \begin{itemize}
    \item The shortcut avoids a Jacobian product over the entire time gap.
    \item Mental updates extend credit to $\kr$ local steps before a selected state.
    \item Truncation still gives an approximate gradient; score derivatives add other terms.
    \item Inference uses retrieval and state updates. Mental updates are a training operation.
  \end{itemize}
  \papersource{Paper, Secs. 3.2 and 8.1, PDF pp. 5, 13. Displayed derivative is a teaching derivation.}
\end{frame}

% 10 -- 1 min
\begin{frame}{The experiments separate memory, transfer and mechanism}
  \renewcommand{\arraystretch}{1.25}
  \begin{tabular}{L{3.0cm}L{6.5cm}L{3.0cm}}
  \toprule
  Test & What must the model do? & Metric \\
  \midrule
  Copying & Recall 10 initial symbols after a delay & Accuracy $\uparrow$ \\
  Adding & Sum two masked inputs & Loss $\downarrow$ \\
  PTB / Text8 & Predict the next character & BPC $\downarrow$ \\
  Image sequences & Classify pMNIST / CIFAR10 & Accuracy $\uparrow$ \\
  Length transfer & Train at $T=100$; test longer delays & Accuracy $\uparrow$ \\
  Ablations & Remove sparsity or local replay & Task scores \\
  \bottomrule
  \end{tabular}\par
  \par\vspace{3mm}
  Baselines: full-BPTT LSTM, TBPTT LSTM, full-attention LSTM;\\
  Transformer results on the image-sequence tasks.
  \papersource{Paper, Sec. 4, PDF pp. 5--8; experimental details in Sec. 7, PDF p. 12.}
\end{frame}

% 11 -- 1.5 min
\begin{frame}{Five-step local updates can learn a 300-step delay}
  Last-10-symbol accuracy (\%); each column is trained at its own delay.
  \par\vspace{3mm}
  \centering
  \renewcommand{\arraystretch}{1.25}
  \begin{tabular}{lrrr}
  \toprule
  Method & $T=100$ & $T=200$ & $T=300$ \\
  \midrule
  LSTM, full BPTT & 99.8 & 56.0 & 35.9 \\
  LSTM + full attention, full BPTT & 100.0 & 100.0 & 100.0 \\
  LSTM, TBPTT ($\kr=20$) & 30.5 & 35.8 & 25.7 \\
  SAB ($\kr=1$, $\kt=1$) & 57.9 & 39.9 & 43.1 \\
  SAB ($\kr=5$, $\kt=5$) & \textbf{100.0} & \textbf{100.0} & \textbf{99.9} \\
  \bottomrule
  \end{tabular}\par
  \raggedright
  \par\vspace{3mm}
  \alert{At $T=300$: +64.0 percentage points over full-BPTT LSTM.}
  \par\smallskip Sparse access has enough capacity here; the smallest budget does not.
  \papersource{Paper, Table 1, PDF p. 7. SAB rows include mental updates. This is not the transfer experiment.}
\end{frame}

% 12 -- 1 min
\begin{frame}{Adding improves over TBPTT but trails full BPTT at 400}
  Reported loss $\downarrow$ on summing two masked inputs.
  \par\vspace{3mm}
  \centering
  \renewcommand{\arraystretch}{1.22}
  \begin{tabular}{lrr}
  \toprule
  Method & $T=200$ & $T=400$ \\
  \midrule
  LSTM, full BPTT & $4.59\!\times\!10^{-6}$ & $1.554\!\times\!10^{-7}$ \\
  LSTM + full attention & $5.541\!\times\!10^{-8}$ & $4.972\!\times\!10^{-7}$ \\
  LSTM, TBPTT & $3.0\!\times\!10^{-4}$ & $6.8\!\times\!10^{-4}$ \\
  SAB ($\kr=10$, $\kt=10$) & $2.0\!\times\!10^{-6}$ & $1.001\!\times\!10^{-5}$ \\
  \bottomrule
  \end{tabular}\par
  \raggedright
  \par\vspace{3mm}
  TBPTT uses $\kr=50$ at $T=200$ and $\kr=100$ at $T=400$.
  \par\smallskip
  \textbf{Metric ambiguity:} the table labels continuous-sum loss ``CE'';
  no probability model is specified. Values are retained as reported.
  \papersource{Paper, Table 2 (left), PDF p. 7; task definition in Sec. 7.1, PDF p. 12.}
\end{frame}

% 13 -- 1.5 min
\begin{frame}{Language modeling largely recovers the truncation gap}
  Test bits per character (BPC) $\downarrow$; values from the main table.
  \par\vspace{3mm}
  \centering
  \renewcommand{\arraystretch}{1.22}
  \begin{tabular}{llrr}
  \toprule
  Method & $(\kr,\kt,\ka)$ & PTB & Text8 \\
  \midrule
  LSTM, full BPTT & full & \textbf{1.36} & \textbf{1.42} \\
  LSTM, TBPTT & $(5,-,-)$ & 1.44 & 1.56 \\
  LSTM, TBPTT & $(20,-,-)$ & 1.40 & --- \\
  SAB & $(10,5,10)$ & 1.42 & 1.47 \\
  SAB & $(10,10,10)$ & 1.40 & 1.45 \\
  SAB & $(20,10,20)$ & 1.37 & 1.44 \\
  \bottomrule
  \end{tabular}\par
  \raggedright
  \par\vspace{3mm}
  PTB: SAB nearly matches full BPTT.\quad Text8: full BPTT remains better.
  \par\smallskip
  The Text8 prose claims a win over full BPTT; the table contradicts it.
  \papersource{Paper, Table 2 and adjacent prose, PDF p. 7. ``Full'' uses 100-/180-character training segments.}
\end{frame}

% 14 -- 1 min
\begin{frame}{The Transformer comparison depends on the task}
  Test accuracy (\%) $\uparrow$ after sequential pixel input.
  \par\vspace{4mm}
  \centering
  \renewcommand{\arraystretch}{1.4}
  \begin{tabular}{lrr}
  \toprule
  Model & pMNIST & CIFAR10 \\
  \midrule
  LSTM, full BPTT & 90.3 & 58.3 \\
  Best reported SAB configuration & 94.2 & \textbf{64.5} \\
  Transformer & \textbf{97.9} & 62.2 \\
  \bottomrule
  \end{tabular}\par
  \raggedright
  \par\vspace{4mm}
  \begin{itemize}
    \item pMNIST: SAB uses $(\kr,\kt,\ka)=(50,10,50)$.
    \item CIFAR10: SAB uses $(16,10,16)$; 1024 input steps, no permutation.
    \item SAB is +2.3 points over Transformer on CIFAR10, but $-3.7$ on pMNIST.
  \end{itemize}
  \papersource{Paper, Table 4, PDF p. 8. Transformer architecture and budget details are limited in the report.}
\end{frame}

% 15 -- 1.5 min
\begin{frame}{SAB retains 41\% accuracy at 50 times the training delay}
  \centering
  \includegraphics[width=0.89\linewidth,height=0.69\textheight,keepaspectratio]{figures/transfer-accuracy.pdf}\par
  \raggedright
  Trained at $T=100$ only.\quad 41\% measures retained ability, with substantial errors.
  \papersource{Redrawn from Table 5, PDF p. 8. Logarithmic horizontal axis. OOM is not a zero-accuracy point.}
\end{frame}

% 16 -- 1.5 min
\begin{frame}{Sparse access and mental updates contribute differently}
  Copying at $T=100$: last-10-symbol accuracy (\%) $\uparrow$.
  \par\vspace{3mm}
  \centering
  \renewcommand{\arraystretch}{1.3}
  \begin{tabular}{lrrr}
  \toprule
  $(\kr,\kt)$ & With mental updates & Without & Gain (points) \\
  \midrule
  $(1,1)$ & 57.9 & 49.0 & +8.9 \\
  $(5,5)$ & 100.0 & 98.3 & +1.7 \\
  $(10,10)$ & 100.0 & 99.6 & +0.4 \\
  \bottomrule
  \end{tabular}\par
  \raggedright
  \par\vspace{3mm}
  \begin{block}{Dense access with truncation is much worse here}
    $\kr=5$, $\kt=\mathrm{all}$: \textbf{40.5\%}, versus \textbf{100.0\%} for SAB $(5,5)$.
  \end{block}
  MU helps most at the smallest budget; larger read budgets approach saturation.
  \papersource{Paper, Tables 1 and 3, PDF pp. 7--8. Dense ablation received an extra learning-rate search (Sec. 7.1).}
\end{frame}

% 17 -- 1 min
\begin{frame}{Attention shifts toward the relevant early symbols}
  \begin{columns}[c,onlytextwidth]
  \begin{column}{0.58\textwidth}
    \centering
    \includegraphics[width=\linewidth,height=0.66\textheight,keepaspectratio]{figures/attention-map.pdf}
  \end{column}
  \begin{column}{0.38\textwidth}
    \begin{itemize}
      \item Horizontal: stored history positions; earlier is left.
      \item Vertical: output-phase time steps.
      \item Darker: more attention.
      \item a $\to$ b $\to$ c: later snapshots within the first training epoch.
    \end{itemize}
  \end{column}
  \end{columns}
  \par\vspace{3mm}
  The selected history moves toward the first 10 states needed for copying.
  \papersource{Original attention map from Table 3 (right), PDF p. 8; copying delay $T=200$. Author vector asset.}
\end{frame}

% 18 -- 1.5 min
\begin{frame}{Sparse replay leaves growing memory and scoring costs}
  Let $t$ be sequence length and $n$ hidden-state width.
  \par\vspace{3mm}
  \renewcommand{\arraystretch}{1.3}
  \begin{tabular}{lL{8.3cm}}
  \toprule
  Paper's complexity & Interpretation \\
  \midrule
  Forward time: $O(t^2n^2)$ & All stored candidates are scored at each step. \\
  Training state space: $O(tn)$ & Historical states remain available. \\
  Inference memory: $O(tn)$ & Larger than the $O(n)$ state of a plain LSTM. \\
  Backward time: no tight bound & Memories depend on earlier memories; sparse edges form a recursive DAG. \\
  \bottomrule
  \end{tabular}\par
  \par\vspace{4mm}
  \alert{A small number of read edges does not bound total backward work.}
  \par\smallskip The paper establishes learning capability; it reports no wall-clock speedup benchmark.
  \papersource{Paper, Sec. 8, PDF p. 13; unbounded-memory setting and fixed sampling interval.}
\end{frame}

% 19 -- 1 min
\begin{frame}{The main contribution is a design for credit routing}
  \begin{enumerate}
    \item \textbf{Retrieve and learn through the same temporal shortcut.}\\
      Attention decides what is read and where useful credit can arrive.
      \par\vspace{3mm}
    \item \textbf{Separate temporal distance from local replay length.}\\
      This works especially well in the copying experiments and their length transfer.
      \par\vspace{3mm}
    \item \textbf{Treat memory management as a remaining design problem.}\\
      Content-based writing, bounded storage and cheaper search are natural next steps.
  \end{enumerate}
  \par\vspace{3mm}
  Language-modeling results mostly recover TBPTT losses; image-task wins are mixed.
  \papersource{Paper, Secs. 4--5 and 8, PDF pp. 6--8, 13. Bounded storage and cheaper search are reader priorities.}
\end{frame}

% 20 -- references, end of main narrative
\begin{frame}{Paper, publication and implementation}
  \begin{itemize}
    \item Ke, Goyal, Bilaniuk, Binas, Mozer, Pal and Bengio.\\
      \emph{Sparse Attentive Backtracking: Temporal Credit Assignment Through Reminding.}\\
      \href{https://arxiv.org/abs/1809.03702v1}{arXiv:1809.03702v1}, 2018.
      \par\vspace{4mm}
    \item \href{https://proceedings.neurips.cc/paper/2018/hash/e16e74a63567ecb44ade5c87002bb1d9-Abstract.html}{Official NeurIPS 2018 proceedings entry}, volume 31.
      \par\vspace{4mm}
    \item \href{https://github.com/nke001/sparse_attentive_backtracking_release}{Official implementation: nke001/sparse\_attentive\_backtracking\_release}.\\
      Model layers and copying-task training program are present.\\
      README lists PyTorch 0.1.12, CUDA 8.0 and cuDNN 6.
  \end{itemize}
  \par\vspace{3mm}
  All table and page references in this deck use the 13-page arXiv v1 PDF.
  \papersource{Publication and repository verified on 29 October 2026. Figures 1--2 and attention map are author assets.}
\end{frame}

\appendix

% 21 -- backup
\begin{frame}{Backup: the training settings are task-specific}
  \renewcommand{\arraystretch}{1.35}
  \begin{tabular}{L{2.7cm}L{9.9cm}}
  \toprule
  Task & Reported setup \\
  \midrule
  Copying / adding & 128 hidden units; Adam; learning rate $10^{-3}$. Dense ablation additionally searches $10^{-3}$ to $10^{-5}$. \\
  Character PTB & 1000 hidden units; length 100; batch 32; learning rate 0.002; up to 100 epochs with validation early stopping. \\
  Text8 & 90M / 5M / 5M train / validation / test characters; length 180; batch 64; baselines have 1000 hidden units; SAB up to 30 epochs. \\
  pMNIST & LSTM models: 128 hidden units; learning rate 0.001; about 100 epochs with validation early stopping. \\
  \bottomrule
  \end{tabular}\par
  \par\vspace{3mm}
  ``Full BPTT'' in language modeling refers to the stated training segments.
  \papersource{Paper, Secs. 7.1--7.4, PDF p. 12.}
\end{frame}

% 22 -- backup
\begin{frame}{Backup: two Text8 inconsistencies affect interpretation}
  \begin{block}{Prose versus Table 2, PDF p. 7}
    The text says SAB $(10,5,10)$ beats full-BPTT LSTM.\\
    The table gives \textbf{1.47 versus 1.42 BPC}; lower is better.
  \end{block}
  \vspace{2mm}
  \begin{block}{Table 2 versus Table 6}
    SAB $(10,10,10)$: \textbf{1.45} in the main table, \textbf{1.44} in the supplement.\\
    Table 6 also gives dense attention + TBPTT-10 at \textbf{1.48}.
  \end{block}
  \vspace{2mm}
  \begin{itemize}
    \item Preserve both SAB values with their own source table.
    \item The reported evidence favors SAB over truncated baselines.
    \item It does not show a Text8 win over full BPTT (1.42).
  \end{itemize}
  \papersource{Paper, Table 2 and adjacent prose, PDF p. 7; Table 6, PDF p. 12.}
\end{frame}

% 23 -- backup
\begin{frame}{Backup: sparse normalization has derivative edge cases}
  \begin{block}{Reader derivation for $\kt=1$, away from ranking changes}
    Only one positive weight remains, so
    \[
       \alpha_{\mathrm{winner}}
       =\frac{a_{\mathrm{winner}}-\tau}{a_{\mathrm{winner}}-\tau}=1.
    \]
    The normalized weight is locally constant in the scores.
  \end{block}
  \begin{itemize}
    \item Selected memory values still have a direct gradient path.
    \item Differentiating a score threshold and truncating the replay graph are distinct choices.
    \item Algorithm 1 leaves empty-memory, too-few-candidate and zero-denominator handling implicit.
  \end{itemize}
  \papersource{Derived from Algorithm 1, PDF p. 5; these observations are not additional author experiments.}
\end{frame}

\end{document}
