%% C2S 2026 Keynote — Simon Carrignon %% Computational Cultural Science Workshop, Paris, 18--19 May 2026 %% École nationale des Chartes -- PSL %% Compile with: lualatex slides-c2s-2026.tex \documentclass[aspectratio=169,14pt]{beamer} %% ── Packages ────────────────────────────────────────────────────────────── \usepackage{fontspec} \usepackage{microtype} \usepackage{booktabs} \usepackage{tikz} \usetikzlibrary{arrows.meta,positioning,shapes.geometric,calc, decorations.pathmorphing,fit,backgrounds} \usepackage{xcolor} \usepackage{graphicx} \usepackage{hyperref} \usepackage{amsmath,amssymb} \usepackage{appendixnumberbeamer} \usepackage{multicol} %% ── Theme (Goettingen + rose, matching Simon's ref style) ─────────────── \usetheme[width=0cm]{Goettingen} \usecolortheme{rose} \useoutertheme{default} \setbeamertemplate{navigation symbols}{} \setbeamerfont{caption}{size=\scriptsize} %% ── Colours ────────────────────────────────────────────────────────────── \definecolor{ifsapurple}{RGB}{51,0,114} \definecolor{purplelight}{RGB}{230,220,245} \definecolor{purplemid}{RGB}{140,100,180} \definecolor{accentgold}{RGB}{200,169,81} \definecolor{accentred}{RGB}{192,57,43} \definecolor{darkgray}{RGB}{51,51,51} \definecolor{midgray}{RGB}{102,102,102} \definecolor{softgreen}{RGB}{56,130,0} \setbeamercolor{title}{fg=white} \setbeamercolor{frametitle}{fg=white,bg=ifsapurple} \setbeamercolor{footlinecolor}{fg=white,bg=ifsapurple} \setbeamercolor{structure}{fg=ifsapurple} \setbeamercolor{normal text}{fg=darkgray} \setbeamercolor{block title}{bg=ifsapurple!15,fg=ifsapurple} \setbeamercolor{block body}{bg=ifsapurple!5} \setbeamercolor{block title alerted}{bg=accentred!15,fg=accentred} \setbeamercolor{block body alerted}{bg=accentred!5} \setbeamercolor{block title example}{bg=ifsapurple!8,fg=ifsapurple!70!black} \setbeamercolor{block body example}{bg=ifsapurple!3} \setbeamercolor{palette primary}{bg=ifsapurple,fg=white} \setbeamercolor{palette secondary}{bg=ifsapurple!80,fg=white} \setbeamercolor{palette tertiary}{bg=ifsapurple!60,fg=white} \setbeamercolor{palette sidebar secondary}{fg=white} \setbeamercolor{section in sidebar shaded}{fg=white} \makeatletter \beamer@compresstrue \makeatother %% ── Fonts (IBM Plex Sans) ─────────────────────────────────────────────── \setsansfont{IBMPlexSans}[ Path = /usr/share/fonts/truetype/ibm-plex/, UprightFont = *-Regular.ttf, BoldFont = *-SemiBold.ttf, ItalicFont = *-Italic.ttf, BoldItalicFont = *-SemiBoldItalic.ttf, Scale = 1.0 ] \setmainfont{IBMPlexSerif}[ Path = /usr/share/fonts/truetype/ibm-plex/, UprightFont = *-Regular.ttf, BoldFont = *-SemiBold.ttf, ItalicFont = *-Italic.ttf, BoldItalicFont = *-SemiBoldItalic.ttf, ] \setmonofont{IBMPlexMono}[ Path = /usr/share/fonts/truetype/ibm-plex/, UprightFont = *-Regular.ttf, BoldFont = *-Bold.ttf, Scale = 0.88 ] %% ── Section navigation in footer (matching Simon's ref style) ─────────── %% Active section: bold white with / separators \setbeamertemplate{section in head/foot}{% \if\insertsectionheadnumber1% \textcolor{white}{\bf \insertsectionhead\,/}\hspace{-.2cm}% \else \ifnum\insertsectionheadnumber=6% \textcolor{white}{\bf /\,\insertsectionhead}\hspace{-.2cm}% \else \textcolor{white}{\bf /\,\insertsectionhead\,/}\hspace{-.2cm}% \fi \fi } %% Inactive section: dimmed \setbeamertemplate{section in head/foot shaded}{% \textcolor{white!50!ifsapurple}{\insertsectionhead}\hspace{-.2cm}% } %% ── Footer ────────────────────────────────────────────────────────────── \setbeamertemplate{footline}{% \begin{beamercolorbox}[wd=\paperwidth]{footlinecolor}% \vskip1.5pt \begin{columns} \hspace{.3cm} \column{.22\paperwidth} \textbf{Simon Carrignon} · UCL GEE \hspace{.1cm}\textbf{|} \column{.45\paperwidth} \insertsectionnavigationhorizontal{.40\textwidth}{}{\hskip0pt}% \hspace{.1cm}\textbf{|} \column{.18\paperwidth} \textbf{C2S Paris · May 2026} \column{.12\paperwidth} \hfill $\dfrac{\insertframenumber}{\inserttotalframenumber}$\hspace{.3cm} \end{columns} \vspace{.1cm} \end{beamercolorbox}% } %% ── Convenience: section divider command ──────────────────────────────── \newcommand{\sectiondivider}[1]{% \begingroup \setbeamertemplate{footline}{}% \setbeamercolor{background canvas}{fg=white,bg=ifsapurple}% \frame[plain,noframenumbering]{\centering\textcolor{white}{\textbf{\Huge #1}}}% \setbeamercolor{background canvas}{bg=}% \endgroup } %% ── Title info ────────────────────────────────────────────────────────── \title{% \textbf{\large Bridging Scales in Cultural Evolution:\\ Computational Models, Archaeological Data, and Machine Learning}} \author{% \textcolor{white}{% Simon Carrignon (\href{mailto:s.carrignon@ucl.ac.uk}{s.carrignon@ucl.ac.uk})\\ University College London -- Dept.\ of Genetics, Evolution \& Environment\\[4pt] ERC COREX Project } } \institute{} \date{% \textcolor{white}{% C2S --- Computational Cultural Science Workshop\\ École nationale des Chartes -- PSL, Paris\\ 18--19 May 2026 } } %% ═══════════════════════════════════════════════════════════════════════════ \begin{document} %% ── Title Slide ───────────────────────────────────────────────────────── \begingroup \setbeamertemplate{footline}{} \setbeamercolor{background canvas}{bg=ifsapurple,fg=white} \frame[plain]{\titlepage} \setbeamercolor{background canvas}{bg=} \endgroup %% ── Plan Slide ────────────────────────────────────────────────────────── \begin{frame}{Plan} \begin{itemize}[<+->] \item Introduction --- Cultural Evolution \& Computational Approaches \item Computational Models --- ABM, Cultural Transmission, 4-Box Model \item Archaeological Evidence --- The Record, Its Biases, What It Gives Us \item ML on Archaeological Data --- Autoencoder on Faunal Remains \item Approximate Bayesian Computation --- Coupling Data \& Models \item Conclusion \pause --- Open Questions \& Connections to CCS \end{itemize} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section{Introduction} \sectiondivider{Introduction} %% ── What is Cultural Evolution? ───────────────────────────────────────── \begin{frame}{Cultural Change} ``Information, traditions, behaviours transmitted socially (via direct or indirect interactions with peers)'' \vspace{6pt} \begin{itemize}[<+->] \item Languages, technologies, artistic styles, subsistence strategies\ldots \item \textbf{Changes of frequencies} of cultural variants over time \item Analogous to biological evolution --- but with distinct mechanisms \end{itemize} \vspace{8pt} \uncover<4->{% \begin{center} \begin{tikzpicture}[ icon/.style={draw=ifsapurple, rounded corners=3pt, minimum size=1.2cm, align=center, font=\scriptsize, fill=purplelight, line width=0.6pt} ] \node[icon] (a) at (0,0) {words}; \node[icon] (b) at (2.5,0) {pottery}; \node[icon] (c) at (5,0) {tools}; \node[icon] (d) at (7.5,0) {food\\practices}; \node[icon] (e) at (10,0) {digital\\culture}; \end{tikzpicture} \end{center} } \end{frame} %% ── Understanding Cultural Change ─────────────────────────────────────── \begin{frame}{Understanding Cultural Change} \uncover<+->{What drives these changes?} \begin{columns}[t] \column{.50\textwidth} \vspace{4pt} \begin{itemize}[<+->] \item Environmental pressures \item Social network structure \item Cognitive biases \& learning strategies \item Demographic processes \end{itemize} \column{.50\textwidth} \uncover<6->{% At relatively large geographical \emph{\&} temporal scales: \vspace{4pt} \begin{itemize} \item Limited applicability of general theories \item Limited use of experiments \item Limited/noisy/biased empirical evidence \end{itemize} \vspace{6pt} \textbf{How to study meso-scale cultural evolution?} } \end{columns} \end{frame} %% ── The COREX Project ─────────────────────────────────────────────────── \begin{frame}{The COREX Project (ERC)} \begin{columns}[T] \begin{column}{0.55\textwidth} \textbf{CO}mputational \textbf{R}esearch on Cultural \textbf{E}volution \textbf{X}-disciplinary \vspace{8pt} \begin{itemize}[<+->] \item ERC-funded project at UCL (Dept.\ GEE) \item Studying cultural evolution through \textbf{computational} and \textbf{archaeological} approaches \item Integrating agent-based models, ML, and Bayesian inference with large archaeological databases \item Focus on subsistence strategies, material culture, and demographic dynamics \end{itemize} \end{column} \begin{column}{0.42\textwidth} \pause \begin{block}{Key Data Sources} \small Faunal assemblages\\ Isotope data, ${}^{14}$C dates\\ Ancient DNA\\ Material culture typologies \end{block} \vspace{6pt} \begin{exampleblock}{Collaborations} \small ENCOUNTER (Cambridge)\\ DySoC (UTK)\\ BIAD consortium \end{exampleblock} \end{column} \end{columns} \end{frame} %% ── Bridging Scales ───────────────────────────────────────────────────── \begin{frame}{Bridging Scales} \begin{center} \begin{tikzpicture}[ box/.style={draw=ifsapurple, rounded corners=5pt, minimum height=1.6cm, text width=3cm, align=center, font=\small, line width=0.8pt}, arr/.style={-{Stealth[length=5pt]}, thick, ifsapurple!60, line width=1pt}, bigarr/.style={-{Stealth[length=6pt]}, very thick, accentred, line width=1.5pt} ] % Local \node[box, fill=purplelight] (local) at (0,0) {\textbf{Local}\\Individual\\interactions\\[2pt]\footnotesize ethnography}; % Meso \node[box, fill=accentgold!25, draw=accentgold!80!black, line width=1.4pt] (meso) at (5.5,0) {\textbf{Mesoscale}\\Regional dynamics\\over millennia\\[2pt] \footnotesize\color{accentred} our target}; % Global \node[box, fill=purplelight] (global) at (11,0) {\textbf{Global}\\Cross-cultural\\universals\\[2pt]\footnotesize big data}; % Arrows \draw[arr] (local) -- (meso); \draw[arr] (global) -- (meso); % Bottom label \node[font=\footnotesize\itshape, ifsapurple] at (5.5,-1.6) {Primary evidence: the \textbf{archaeological record}}; \end{tikzpicture} \end{center} \vspace{4pt} \pause \begin{block}{The approach} Model \textbf{local interactions} (ABM) $\to$ Generate \textbf{regional patterns} $\to$ Compare with \textbf{empirical data} $\to$ Constrain \textbf{transmission processes} \end{block} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section[Models]{Computational Models} \sectiondivider{Computational Models} %% ── Computational Modelling Overview ──────────────────────────────────── \begin{frame}{Computational Modelling} \begin{columns}[t] \column{.60\textwidth} \begin{itemize}[<+->] \item Model local interactions to explore hypotheses at different scales (\textbf{ABM}) \item Extract empirical patterns (Bayesian stats, ML,\ldots) \item Test method robustness (`tactical simulation') \end{itemize} \column{.40\textwidth} \uncover<2->{% \begin{block}{Epstein (2008)} \small ``If you didn't grow it,\\you didn't explain it.'' \end{block} } \end{columns} \end{frame} %% ── Agent-Based Modelling ─────────────────────────────────────────────── \begin{frame}{Agent-Based Modelling} \begin{columns}[t] \column{.55\textwidth} \begin{itemize}[<+->] \item Explicitly describe low-level interactions \item Formalise, generate, and explore hypotheses \item Reproducible and testable descriptions \item Flexible: demography, spatial structure, multiple transmission pathways \end{itemize} \column{.45\textwidth} \uncover<2->{% \begin{center} \begin{tikzpicture}[scale=0.7, agent/.style={circle, draw=ifsapurple, fill=purplelight, minimum size=5mm, inner sep=0pt, font=\tiny\bfseries}, link/.style={ifsapurple!40, line width=0.6pt} ] % Grid of agents \foreach \x/\y/\lab in {0/0/a,1.5/0.3/b,3/0/c,0.5/1.5/d,2/1.8/e, 3.5/1.5/f,0/3/g,1.5/2.8/h,3/3.2/i} { \node[agent] (\lab) at (\x,\y) {}; } % Links \foreach \a/\b in {a/b,b/c,a/d,b/e,c/f,d/e,e/f,d/g,e/h,f/i,g/h,h/i} { \draw[link] (\a) -- (\b); } % Highlight a transmission event \draw[-{Stealth[length=4pt]}, accentred, thick] (e) -- (h) node[midway, right, font=\tiny] {copy}; % Label \node[font=\scriptsize, ifsapurple, below] at (1.5,-0.5) {agents on a network}; \end{tikzpicture} \end{center} } \end{columns} \end{frame} %% ── The 4-Box Model ──────────────────────────────────────────────────── \begin{frame}{Cultural Transmission --- The 4-Box Model} \begin{columns}[t] \column{.45\textwidth} \textbf{Vidiella et al.\ (2022):} \begin{align*} \Pr(i,t{+}1) = \frac{1}{Y_t}\, p_i(t)^{\alert{J}}\, e^{\alert{\beta}\, U_i + \psi} \end{align*} \begin{itemize}[<+->] \item $\alert{J}$: social conformity (frequency dependence) \item $\alert{\beta}$: transparency of intrinsic utility \end{itemize} \uncover<3->{A 2D space to classify cultural change:} \column{.55\textwidth} \uncover<3->{% \begin{center} \begin{tikzpicture}[scale=0.85, box/.style={draw=ifsapurple, rounded corners=3pt, minimum height=1.4cm, text width=2.6cm, align=center, font=\scriptsize, line width=0.6pt} ] % Axes \draw[-{Stealth[length=5pt]}, thick, ifsapurple] (-0.2,0) -- (6.2,0) node[right, font=\small] {$J$ (conformity)}; \draw[-{Stealth[length=5pt]}, thick, ifsapurple] (0,-0.2) -- (0,4.8) node[above, font=\small] {$\beta$ (utility)}; % Quadrants \node[box, fill=purplelight] at (1.5,1.2) {Drift\\(neutral)}; \node[box, fill=accentgold!20] at (4.5,1.2) {Conformity\\bias}; \node[box, fill=ifsapurple!12] at (1.5,3.5) {Content\\bias}; \node[box, fill=accentred!12] at (4.5,3.5) {Guided\\variation}; % Parameter labels \node[font=\tiny, midgray] at (1.5,-0.5) {low $J$}; \node[font=\tiny, midgray] at (4.5,-0.5) {high $J$}; \node[font=\tiny, midgray, rotate=90] at (-0.6,1.2) {low $\beta$}; \node[font=\tiny, midgray, rotate=90] at (-0.6,3.5) {high $\beta$}; \end{tikzpicture} \end{center} } \end{columns} \end{frame} %% ── Cultural Transmission Pathways ────────────────────────────────────── \begin{frame}{Cultural Transmission Pathways} \begin{center} \begin{tikzpicture}[ gen/.style={draw=ifsapurple, rounded corners=2pt, minimum height=0.8cm, text width=2.2cm, align=center, font=\scriptsize, fill=purplelight}, arr/.style={-{Stealth[length=4pt]}, ifsapurple, line width=0.7pt}, lab/.style={font=\tiny, midgray, align=center} ] % Parent generation \node[gen, fill=ifsapurple!20] (p1) at (0,3) {Parent A}; \node[gen, fill=ifsapurple!20] (p2) at (3,3) {Parent B}; \node[gen, fill=ifsapurple!12] (elder) at (6,3) {Elder / Peer}; \node[gen, fill=accentgold!15] (comm) at (9.5,3) {Community}; % Child \node[gen, fill=accentred!12, text width=2.6cm, minimum height=1cm] (child) at (4.5,0) {\textbf{Learner}}; % Vertical \draw[arr, thick] (p1.south) -- (child.north west) node[midway, left, lab] {vertical}; \draw[arr, thick] (p2.south) -- (child.north) node[midway, right, lab] {vertical}; % Oblique \draw[arr, dashed] (elder.south) -- (child.north east) node[midway, right, lab] {oblique}; % Horizontal \draw[arr, dotted, thick] (comm.south) -- (child.east) node[midway, right, lab] {horizontal\\(peers)}; % Pre/post marital annotation \node[font=\scriptsize\itshape, ifsapurple, align=center] at (11.5,1.5) {pre- \& post-\\marital pathways}; \end{tikzpicture} \end{center} \vspace{4pt} \begin{itemize} \item<2-> Multiple pathways combine: vertical, oblique, horizontal \item<3-> Post-marital resocialisation adds further complexity \item<4-> Sex-biased transmission: probability $s$ to copy from female role model \end{itemize} \end{frame} %% ── Hitchhiking and Migration ─────────────────────────────────────────── \begin{frame}{Cultural Hitchhiking \& Migration} \begin{columns}[T] \begin{column}{0.52\textwidth} \textbf{Analogy with genetic hitchhiking:} \begin{itemize}[<+->] \item `Neutral traits' spreading alongside advantageous technology \item Dispersal of farming:\\ demographic growth + cultural contact \item Marital rules ($\rho$) modulate which traits hitchhike \end{itemize} \vspace{4pt} \uncover<4->{% \begin{block}{Model ingredients} \small Demography (growth, fission)\\ Adaptive technology (community-level)\\ Neutral traits (individual-level, multiple pathways) \end{block} } \end{column} \begin{column}{0.45\textwidth} \uncover<2->{% \begin{center} \begin{tikzpicture}[scale=0.65, comm/.style={circle, draw=ifsapurple, minimum size=8mm, font=\tiny\bfseries, line width=0.6pt}, farr/.style={-{Stealth[length=4pt]}, ifsapurple!50, line width=0.5pt} ] % Farmer communities \node[comm, fill=accentgold!30] (f1) at (0,0) {F}; \node[comm, fill=accentgold!30] (f2) at (1.5,1) {F}; % HG communities \node[comm, fill=purplelight] (h1) at (3,0) {HG}; \node[comm, fill=purplelight] (h2) at (4.5,1) {HG}; \node[comm, fill=purplelight] (h3) at (3,2.2) {HG}; \node[comm, fill=purplelight] (h4) at (5.5,2.5) {HG}; % Expansion arrows \draw[farr, thick] (f1) -- (h1); \draw[farr, thick] (f2) -- (h3); \draw[farr, dashed] (h1) -- (h2); \draw[farr, dashed] (h3) -- (h4); % Label \node[font=\tiny\itshape, ifsapurple] at (2.7,-0.8) {farming expansion \& cultural contact}; \end{tikzpicture} \end{center} } \end{column} \end{columns} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section[Evidence]{Archaeological Evidence} \sectiondivider{Archaeological Evidence} %% ── What the Record Gives Us ──────────────────────────────────────────── \begin{frame}{What the Archaeological Record Gives Us} \begin{columns}[T] \begin{column}{0.50\textwidth} \textbf{A unique window into the past:} \begin{itemize} \item Material traces of human activity \item Spatial distributions of artefacts \item Typological and technological variation \item Covers millennia and all world regions \end{itemize} \end{column} \begin{column}{0.47\textwidth} \begin{alertblock}{But deeply imperfect} \begin{itemize} \item Organic materials lost \item Spatial sampling uneven \item Temporal resolution coarse \item Behaviour $\to$ material $\to$ preservation $\to$ observation \end{itemize} \end{alertblock} \end{column} \end{columns} \vspace{6pt} \pause \begin{block}{Key insight} Methods must be \textbf{explicitly designed} to account for these filters --- not applied naively from other domains \end{block} \end{frame} %% ── Taphonomic Filter Diagram ─────────────────────────────────────────── \begin{frame}{The Taphonomic Filter} \begin{center} \begin{tikzpicture}[ box/.style={draw, rounded corners=4pt, minimum height=1.6cm, text width=2.6cm, align=center, font=\small}, filt/.style={draw, rounded corners=2pt, fill=accentred!15, minimum height=1.6cm, text width=2.2cm, align=center, font=\small, thick, draw=accentred}, arr/.style={-{Stealth[length=5pt]}, thick, ifsapurple, line width=1.2pt} ] % Original signal \node[box, fill=ifsapurple!15, draw=ifsapurple] (sig) at (0,0) {\textbf{Original}\\cultural\\signal\\[2pt]\footnotesize 100\% diversity}; % Preservation filter \node[filt] (pres) at (4.2,0) {\textbf{Preservation}\\filter\\[2pt]\footnotesize decay, erosion,\\chemistry}; % Sampling filter \node[filt] (samp) at (8.4,0) {\textbf{Sampling}\\filter\\[2pt]\footnotesize excavation,\\recording}; % Observed record \node[box, fill=accentgold!20, draw=accentgold!80!black] (obs) at (12.6,0) {\textbf{Observed}\\record\\[2pt]\footnotesize 5--20\%\\preserved}; % Arrows \draw[arr] (sig) -- (pres); \draw[arr] (pres) -- (samp); \draw[arr] (samp) -- (obs); % Loss annotations \draw[accentred, thick, decorate, decoration={snake, amplitude=2pt, segment length=6pt}] (4.2,-1.5) -- ++(0,-0.4); \node[below, font=\footnotesize, accentred] at (4.2,-1.9) {material lost}; \draw[accentred, thick, decorate, decoration={snake, amplitude=2pt, segment length=6pt}] (8.4,-1.5) -- ++(0,-0.4); \node[below, font=\footnotesize, accentred] at (8.4,-1.9) {information lost}; \end{tikzpicture} \end{center} \vspace{4pt} \pause \begin{exampleblock}{Implication} Naive diversity estimates from the archaeological record can be \textbf{systematically misleading} --- simulation studies show that spatial structure and mobility rates interact with taphonomic loss \end{exampleblock} \end{frame} %% ── Bronze Age Networks (BIAD) ────────────────────────────────────────── \begin{frame}{Bronze Age Networks --- The BIAD Project} \begin{columns}[T] \begin{column}{0.50\textwidth} \begin{exampleblock}{Question} How were artefacts distributed across Europe, and what does network structure tell us about cultural interaction? \end{exampleblock} \vspace{4pt} \begin{itemize}[<+->] \item Similarity networks from assemblage data \item Community detection $\to$ regional interaction zones \item Structure \textbf{not visible} in raw typologies alone \end{itemize} \end{column} \begin{column}{0.47\textwidth} \uncover<2->{% \begin{center} \begin{tikzpicture}[scale=0.7, site/.style={circle, draw=ifsapurple, fill=ifsapurple!20, minimum size=6mm, font=\tiny\bfseries}, edge/.style={thick, ifsapurple!50} ] \node[site] (A) at (0,0) {A}; \node[site] (B) at (2,1.2) {B}; \node[site] (C) at (4,0.2) {C}; \node[site] (D) at (2.5,-1) {D}; \node[site, fill=accentgold!30, draw=accentgold] (E) at (5.5,1) {E}; \node[site] (F) at (5,-1) {F}; \node[site, fill=accentgold!30, draw=accentgold] (G) at (7,0) {G}; \draw[edge, line width=2pt] (A) -- (B); \draw[edge, line width=1.5pt] (B) -- (C); \draw[edge] (A) -- (D); \draw[edge, line width=2pt] (C) -- (D); \draw[edge, line width=1.5pt] (C) -- (E); \draw[edge] (D) -- (F); \draw[edge, line width=2pt] (E) -- (G); \draw[edge, line width=1.5pt] (F) -- (E); \draw[edge] (F) -- (G); \draw[edge] (B) -- (D); % Cluster outlines \begin{scope}[on background layer] \node[draw=ifsapurple!30, rounded corners=8pt, fill=ifsapurple!5, fit=(A)(B)(C)(D), inner sep=4pt] {}; \node[draw=accentgold!50, rounded corners=8pt, fill=accentgold!5, fit=(E)(F)(G), inner sep=4pt] {}; \end{scope} \end{tikzpicture} \end{center} \vspace{2pt} \begin{block}{\small Related projects} \footnotesize EPNet (Roman economy)\\ BIAD (Bronze \& Iron Age Database)\\ bronze-ssr (R/Shiny visualisation) \end{block} } \end{column} \end{columns} \end{frame} %% ── Merzbach Valley Case Study ────────────────────────────────────────── \begin{frame}{Merzbach Valley --- Decorative Motifs} \begin{columns}[t] \column{.50\textwidth} Conformity vs.\ utility-based biases: \begin{itemize}[<+->] \item LBK pottery decorations in the Merzbach Valley \item 8 phases, 36 styles, $\sim$200 years \item Can the 4-box model capture the observed patterns? \end{itemize} \uncover<4->{% \vspace{4pt} \begin{align*} \Pr(i,t{+}1) = \frac{1}{Y_t}\, p_i(t)^{J}\, e^{\beta\, U_i + \psi} \end{align*} \textit{Where in $(J,\beta)$ space does Merzbach fall?} } \column{.50\textwidth} \uncover<2->{% \begin{center} \begin{tikzpicture}[scale=0.6] % Simplified heatmap-like illustration \draw[ifsapurple, thick] (0,0) rectangle (5,4); \foreach \y/\lab in {0.5/Phase 1, 1/Phase 2, 1.5/Phase 3, 2/Phase 4, 2.5/Phase 5, 3/Phase 6, 3.5/Phase 7} { \node[font=\tiny, left] at (0,\y) {\lab}; } % Bars representing style frequencies \foreach \y/\w in {0.5/3.5, 1/3, 1.5/2.8, 2/2.2, 2.5/1.8, 3/1.5, 3.5/1.2} { \fill[ifsapurple!40] (0.1,\y-0.15) rectangle (\w,\y+0.15); } \foreach \y/\w/\s in {0.5/0.5/0.8, 1/0.8/1.5, 1.5/1.2/2, 2/1.8/2.8, 2.5/2.2/3, 3/2.5/3.5, 3.5/2.8/4} { \fill[accentgold!50] (\w+0.2,\y-0.15) rectangle (\s,\y+0.15); } \node[font=\scriptsize, ifsapurple] at (2.5,-0.5) {style frequency by phase}; \end{tikzpicture} \end{center} } \end{columns} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section[ML]{ML on Archaeological Data} \sectiondivider{ML on Archaeological Data} %% ── Autoencoder on Faunal Data ────────────────────────────────────────── \begin{frame}{Autoencoder on Zooarchaeological Data} \begin{columns}[T] \begin{column}{0.52\textwidth} \textbf{New work (COREX):} \begin{itemize}[<+->] \item Faunal assemblage data: taxon presence/absence or frequency matrices across sites \item Apply an \textbf{autoencoder} to learn latent dimensions \item Compressed representation reveals \textbf{cultural and environmental signatures} \item Downstream use: summary statistics for ABC, input features for ABM calibration \end{itemize} \end{column} \begin{column}{0.46\textwidth} \uncover<2->{% \begin{block}{Why autoencoders?} \small Non-linear dimensionality reduction\\[3pt] Learn structure without supervision\\[3pt] Latent space amenable to\\ statistical comparison with\\ simulated outputs \end{block} } \end{column} \end{columns} \end{frame} %% ── Autoencoder Architecture Diagram ──────────────────────────────────── \begin{frame}{Autoencoder Architecture} \begin{center} \begin{tikzpicture}[ neuron/.style={circle, draw=ifsapurple, minimum size=5mm, line width=0.6pt, inner sep=0pt}, input/.style={neuron, fill=ifsapurple!15}, hidden/.style={neuron, fill=purplemid!30}, latent/.style={neuron, fill=accentgold!40, minimum size=7mm, line width=1pt, draw=accentgold!80!black}, output/.style={neuron, fill=ifsapurple!15}, conn/.style={ifsapurple!30, line width=0.4pt}, brace/.style={decorate, decoration={brace, amplitude=5pt}, ifsapurple} ] % Input layer (taxa) \foreach \i in {1,...,6} { \node[input] (i\i) at (0, 4.2-0.7*\i) {}; } \node[font=\tiny, ifsapurple] at (0, 4.6) {\textbf{Input}}; \node[font=\tiny, midgray] at (0, 0.3) {$n$ taxa}; % Encoder hidden \foreach \i in {1,...,4} { \node[hidden] (e\i) at (2.5, 3.5-0.8*\i) {}; } \node[font=\tiny, ifsapurple] at (2.5, 4.6) {\textbf{Encoder}}; % Latent \foreach \i in {1,...,2} { \node[latent] (z\i) at (5, 2.45-0.9*\i) {}; } \node[font=\scriptsize, accentgold!80!black, above] at (5, 2.2) {\textbf{Latent $\mathbf{z}$}}; % Decoder hidden \foreach \i in {1,...,4} { \node[hidden] (d\i) at (7.5, 3.5-0.8*\i) {}; } \node[font=\tiny, ifsapurple] at (7.5, 4.6) {\textbf{Decoder}}; % Output layer (reconstruction) \foreach \i in {1,...,6} { \node[output] (o\i) at (10, 4.2-0.7*\i) {}; } \node[font=\tiny, ifsapurple] at (10, 4.6) {\textbf{Output}}; \node[font=\tiny, midgray] at (10, 0.3) {$\hat{x} \approx x$}; % Connections: input -> encoder \foreach \i in {1,...,6} { \foreach \j in {1,...,4} { \draw[conn] (i\i) -- (e\j); } } % encoder -> latent \foreach \i in {1,...,4} { \foreach \j in {1,...,2} { \draw[conn] (e\i) -- (z\j); } } % latent -> decoder \foreach \i in {1,...,2} { \foreach \j in {1,...,4} { \draw[conn] (z\i) -- (d\j); } } % decoder -> output \foreach \i in {1,...,4} { \foreach \j in {1,...,6} { \draw[conn] (d\i) -- (o\j); } } % Braces \draw[brace] (-0.5,0.7) -- (-0.5,4) node[midway, left, font=\tiny, xshift=-6pt, align=right] {taxa freq.\\per site}; \draw[brace] (10.5,4) -- (10.5,0.7) node[midway, right, font=\tiny, xshift=6pt, align=left] {reconstructed\\frequencies}; \end{tikzpicture} \end{center} \vspace{2pt} \begin{columns}[t] \column{.50\textwidth} \footnotesize \textbf{Input:} taxon frequency matrix ($n_{\text{sites}} \times n_{\text{taxa}}$) \column{.50\textwidth} \footnotesize \textbf{Latent $z$:} compressed representation usable as summary statistics \end{columns} \end{frame} %% ── Latent Space Exploration ──────────────────────────────────────────── \begin{frame}{Latent Space --- What It Reveals} \begin{columns}[T] \begin{column}{0.50\textwidth} \textbf{Latent dimensions capture:} \begin{itemize}[<+->] \item Environmental gradients\\(climate, biome) \item Cultural signatures\\(subsistence strategies) \item Temporal trends\\(shifts in animal exploitation) \end{itemize} \vspace{6pt} \uncover<4->{% \begin{block}{Advantage over PCA} \small Non-linear: captures interactions between taxa that linear methods miss \end{block} } \end{column} \begin{column}{0.47\textwidth} \uncover<2->{% \begin{center} \begin{tikzpicture}[scale=0.75] % Axes \draw[-{Stealth[length=4pt]}, ifsapurple] (-0.3,0) -- (5.5,0) node[right, font=\scriptsize] {$z_1$}; \draw[-{Stealth[length=4pt]}, ifsapurple] (0,-0.3) -- (0,4.5) node[above, font=\scriptsize] {$z_2$}; % Cluster 1: pastoralist \fill[ifsapurple!15, rounded corners=6pt] (0.3,2.5) rectangle (2.2,4.2); \node[font=\tiny, ifsapurple] at (1.25,4.5) {pastoralist}; \foreach \x/\y in {0.6/3, 0.9/3.5, 1.3/2.8, 1.5/3.7, 1.8/3.2} { \fill[ifsapurple] (\x,\y) circle (2pt); } % Cluster 2: mixed farming \fill[accentgold!15, rounded corners=6pt] (2.5,0.5) rectangle (4.5,2.5); \node[font=\tiny, accentgold!80!black] at (3.5,2.8) {mixed farming}; \foreach \x/\y in {2.8/1, 3.2/1.5, 3.5/0.8, 3.8/1.8, 4.1/1.2} { \fill[accentgold!80!black] (\x,\y) circle (2pt); } % Cluster 3: hunter-gatherer \fill[accentred!10, rounded corners=6pt] (3.5,3) rectangle (5.2,4.3); \node[font=\tiny, accentred] at (4.35,4.5) {hunter-gatherer}; \foreach \x/\y in {3.8/3.3, 4.2/3.8, 4.5/3.5, 4.8/3.9} { \fill[accentred] (\x,\y) circle (2pt); } \end{tikzpicture} \end{center} \vspace{2pt} \footnotesize\itshape Schematic: sites in learned latent space, coloured by subsistence strategy } \end{column} \end{columns} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section[ABC]{Approximate Bayesian Computation} \sectiondivider{Approximate Bayesian Computation} %% ── ABC Overview ──────────────────────────────────────────────────────── \begin{frame}{Approximate Bayesian Computation} \textbf{Linking models \& patterns:} \begin{itemize}[<+->] \item Goal: estimate $P(\theta \mid \text{data})$ --- the posterior distribution of model parameters given observed evidence \item Likelihood intractable for complex ABMs \item ABC: simulate from prior, compare summary statistics, accept parameters that produce ``close enough'' output \item Computationally costly but \textbf{flexible} \end{itemize} \end{frame} %% ── ABC Pipeline Diagram ──────────────────────────────────────────────── \begin{frame}{The ABC Pipeline} \begin{center} \begin{tikzpicture}[ box/.style={draw=ifsapurple, rounded corners=4pt, minimum height=1.3cm, text width=2.4cm, align=center, font=\small, line width=0.7pt}, arr/.style={-{Stealth[length=5pt]}, thick, ifsapurple, line width=1.2pt}, decision/.style={draw=accentred, diamond, aspect=1.8, inner sep=1pt, font=\scriptsize, fill=accentred!10, line width=0.7pt, align=center} ] % Empirical data \node[box, fill=ifsapurple!15] (data) at (0,0) {\textbf{Empirical}\\data\\[2pt]\footnotesize assemblages}; % Summary stats (observed) \node[box, fill=purplelight] (sobs) at (0,-2.8) {\textbf{Summary}\\statistics\\[2pt]\footnotesize $S_{\text{obs}}$}; % Prior \node[box, fill=accentgold!20] (prior) at (5,0) {\textbf{Prior}\\$\pi(\theta)$\\[2pt]\footnotesize parameter space}; % Simulation \node[box, fill=accentgold!30] (sim) at (5,-2.8) {\textbf{Simulate}\\ABM\\[2pt]\footnotesize $S_{\text{sim}}$}; % Distance \node[decision] (dist) at (9,-1.4) {$d(S_{\text{obs}}, S_{\text{sim}})$\\$< \epsilon$ ?}; % Posterior \node[box, fill=softgreen!20, draw=softgreen!80!black] (post) at (12.5,-1.4) {\textbf{Posterior}\\$P(\theta|\text{data})$}; % Arrows \draw[arr] (data) -- (sobs); \draw[arr] (prior) -- (sim); \draw[arr] (sobs.east) -- ++(1,0) |- (dist.west); \draw[arr] (sim.east) -- ++(0.5,0) |- (dist.west); \draw[arr] (dist) -- (post) node[midway, above, font=\tiny] {accept}; % Rejection loop \draw[arr, dashed, midgray] (dist.north) -- ++(0,1) -| (prior.north) node[pos=0.3, above, font=\tiny\itshape] {reject: resample}; % Latent space annotation \node[font=\tiny\itshape, ifsapurple, below] at (0,-3.8) {or: autoencoder latent $z$}; \end{tikzpicture} \end{center} \end{frame} %% ── ABC in Practice ───────────────────────────────────────────────────── \begin{frame}{ABC in Practice --- Summary Statistics Matter} \begin{columns}[T] \begin{column}{0.50\textwidth} \textbf{Summary statistics for ABC:} \begin{enumerate}[<+->] \item Number of unique variants per phase \item Simpson's diversity index \item Disparity (most vs.\ least popular) \item Gini coefficient \item Turnover rate \item Log-normal fit parameters ($\mu$, $\sigma$) \end{enumerate} \end{column} \begin{column}{0.47\textwidth} \uncover<3->{% \begin{block}{Random Forest Adjustment} \small Use Random Forest to combine\\ all summary dimensions\\[3pt] $\to$ No need to select metrics\\ $\to$ Rank/compare metrics\\ $\to$ Better posterior estimates \end{block} \vspace{4pt} \begin{alertblock}{Key challenge} \small Simulated data must be \textbf{transformed} to match taphonomic filters before comparison \end{alertblock} } \end{column} \end{columns} \end{frame} %% ── Tactical Simulation ───────────────────────────────────────────────── \begin{frame}{Tactical Simulation --- Validating the Pipeline} \begin{columns}[T] \begin{column}{0.50\textwidth} \textbf{Can we recover known parameters?} \begin{itemize}[<+->] \item Generate artificial data with known $(J, \beta)$ \item Apply taphonomic transformation \item Run ABC pipeline \item Check: does the posterior recover the truth? \end{itemize} \vspace{4pt} \uncover<5->{% \textbf{Result:} Yes --- under realistic conditions, ABC with RF adjustment recovers planted parameters } \end{column} \begin{column}{0.47\textwidth} \uncover<3->{% \begin{center} \begin{tikzpicture}[scale=0.7] % Posterior density sketch \draw[-{Stealth[length=4pt]}, ifsapurple] (-0.3,0) -- (5.5,0) node[right, font=\scriptsize] {$J$}; \draw[-{Stealth[length=4pt]}, ifsapurple] (0,-0.3) -- (0,3.5) node[above, font=\scriptsize] {density}; % Prior (flat) \draw[midgray, dashed, line width=0.8pt] (0.2,0.5) -- (5,0.5) node[right, font=\tiny] {prior}; % Posterior (peaked) \draw[ifsapurple, thick, line width=1.2pt] plot[smooth, tension=0.7] coordinates {(0.2,0.1) (1,0.3) (1.8,1.2) (2.5,2.8) (3.2,1.5) (4,0.4) (5,0.1)}; \node[font=\tiny, ifsapurple] at (4.2,2) {posterior}; % True value \draw[accentred, thick, dashed] (2.5,0) -- (2.5,3) node[above, font=\tiny, accentred] {true $J$}; \end{tikzpicture} \end{center} \vspace{2pt} \footnotesize\itshape Schematic: posterior distribution concentrates around the true parameter value } \end{column} \end{columns} \end{frame} %% ── Connecting Autoencoder + ABC ──────────────────────────────────────── \begin{frame}{Connecting ML and ABC} \begin{center} \begin{tikzpicture}[ box/.style={draw=ifsapurple, rounded corners=5pt, minimum height=1.4cm, text width=2.8cm, align=center, font=\small, line width=0.8pt}, arr/.style={-{Stealth[length=5pt]}, thick, ifsapurple, line width=1.3pt} ] % Data \node[box, fill=ifsapurple!15] (data) at (0,0) {\textbf{Faunal}\\ \textbf{assemblages}\\[3pt] \footnotesize taxa $\times$ sites}; % Autoencoder \node[box, fill=purplelight] (ae) at (4.5,0) {\textbf{Autoencoder}\\[3pt] \footnotesize latent $z$ =\\ summary stats}; % ABM \node[box, fill=accentgold!25, draw=accentgold!80!black] (abm) at (9,0) {\textbf{ABM}\\ \textbf{Simulation}\\[3pt] \footnotesize cultural\\ transmission}; % ABC \node[box, fill=softgreen!15, draw=softgreen!70!black] (abc) at (13,0) {\textbf{ABC}\\ \textbf{Inference}\\[3pt] \footnotesize posterior on\\ $\theta$}; % Arrows \draw[arr] (data) -- (ae); \draw[arr] (ae) -- (abm); \draw[arr] (abm) -- (abc); % Feedback \draw[arr, dashed, midgray] (abc.south) .. controls +(0,-1.5) and +(0,-1.5) .. (abm.south) node[midway, below, font=\footnotesize\itshape] {refine}; \end{tikzpicture} \end{center} \vspace{6pt} \pause \begin{block}{The full pipeline} Real data $\xrightarrow{\text{autoencoder}}$ latent summary $\xrightarrow{\text{ABC}}$ posterior on cultural transmission parameters\\[3pt] The autoencoder replaces hand-crafted summary statistics with \textbf{learned} representations \end{block} \end{frame} %% ═══════════════════════════════════════════════════════════════════════════ \section{Conclusion} \sectiondivider{Conclusion} %% ── Summary ───────────────────────────────────────────────────────────── \begin{frame}{What We Learned} \begin{enumerate} \item Cultural evolution at the \textbf{mesoscale} is accessible via archaeological evidence + computational methods \vspace{5pt} \pause \item \textbf{Agent-based models} of cultural transmission generate testable predictions about drift, selection, hitchhiking, and network effects \vspace{5pt} \pause \item \textbf{Machine learning} (autoencoders on faunal data) provides summary statistics that capture non-linear structure in assemblages \vspace{5pt} \pause \item \textbf{ABC} closes the loop: coupling empirical patterns with generative models to estimate transmission parameters \vspace{5pt} \pause \item Taphonomic awareness is \textbf{essential} --- methods must account for what the record hides \end{enumerate} \end{frame} %% ── Open Questions ────────────────────────────────────────────────────── \begin{frame}{Open Questions} \begin{columns}[T] \begin{column}{0.48\textwidth} \begin{alertblock}{Validation} How do we validate models when\\ \textbf{ground truth} is unavailable?\\[3pt] \footnotesize Tactical simulation, posterior\\ predictive checks, cross-validation \end{alertblock} \vspace{4pt} \pause \begin{alertblock}{Data integration} Combining \textbf{heterogeneous} sources:\\ faunal, isotope, aDNA,\\ material culture, ${}^{14}$C \end{alertblock} \end{column} \begin{column}{0.48\textwidth} \begin{alertblock}{Interpretability} ML-extracted patterns must be\\ \textbf{culturally meaningful},\\ not just statistically significant \end{alertblock} \vspace{4pt} \pause \begin{alertblock}{Scalability} Extending the pipeline to\\ \textbf{larger regions} and\\ \textbf{longer time spans}\\ within COREX \end{alertblock} \end{column} \end{columns} \end{frame} %% ── Connection to CCS ────────────────────────────────────────────────── \begin{frame}{Connections to Computational Cultural Science} \begin{block}{The pipeline generalises} \textbf{Patterns} $\xrightarrow{\text{extraction}}$ \textbf{Mechanisms} $\xrightarrow{\text{simulation}}$ \textbf{Predictions} \end{block} \vspace{6pt} \begin{columns}[T] \begin{column}{0.30\textwidth} \centering \textbf{Any cultural data}\\[4pt] \footnotesize artefacts · texts\\ images · networks\\ digital traces \end{column} \begin{column}{0.30\textwidth} \centering \textbf{Generative models}\\[4pt] \footnotesize ABM · evolutionary\\ dynamics · diffusion\\ models \end{column} \begin{column}{0.30\textwidth} \centering \textbf{Testable hypotheses}\\[4pt] \footnotesize transmission rates\\ drift vs.\ selection\\ network effects \end{column} \end{columns} \vspace{10pt} \pause \begin{exampleblock}{If it works on archaeology\ldots} \small If methods work on the \textbf{hardest} data type (fragmented, biased, indirect), they should generalise to richer data --- texts, media, digital culture \end{exampleblock} \end{frame} %% ── Thank You ─────────────────────────────────────────────────────────── \begingroup \setbeamertemplate{footline}{} \setbeamercolor{background canvas}{bg=ifsapurple,fg=white} \frame[plain,noframenumbering]{% \centering \textcolor{white}{% \vspace{1cm} {\Huge\bfseries Thanks!}\\[16pt] {\large COREX team \& UCL GEE\\[4pt] ENCOUNTER team \& McDonald Institute, Cambridge\\[4pt] DySoC \& UTK\\[12pt] } {\normalsize \href{mailto:s.carrignon@ucl.ac.uk}{s.carrignon@ucl.ac.uk}\\[6pt] \href{https://github.com/simoncarrignon}{github.com/simoncarrignon}\\[12pt] } {\small\itshape C2S --- Computational Cultural Science Workshop\\ École nationale des Chartes -- PSL · Paris · May 2026 } \vspace{1cm} } } \setbeamercolor{background canvas}{bg=} \endgroup %% ═══════════════════════════════════════════════════════════════════════════ \appendix %% ── Backup: References ────────────────────────────────────────────────── \begin{frame}{References} \small \begin{itemize} \item Vidiella, B.\ et al.\ (2022). A cultural evolutionary theory model\ldots \textit{Humanities \& Social Sciences Comms.} \item Carrignon, S.\ et al.\ (2020). Tableware trade in the Roman East. \textit{JASSS} 23(1):3. \item Crema, E.R.\ et al.\ (2022). \textit{Rice paddy expansion\ldots} \item Epstein, J.M.\ (2008). Why Model? \textit{JASSS} 11(4):12. \item Mesoudi, A.\ (2011). \textit{Cultural Evolution.} U.\ Chicago Press. \item Bentley, R.A.\ et al.\ (2004). Random drift and culture change. \textit{Proc.\ R.\ Soc.\ B} 271:1443--1450. \item Deffner, D.\ et al.\ (2024). \textit{Bridging theory and evidence\ldots} \end{itemize} \end{frame} \end{document}