import streamlit as st def about(): _, centercol, _ = st.columns([1, 3, 1]) with centercol: st.markdown( """ ## Testing Semantic Importance via Betting We briefly present here the main ideas and contributions. """ ) st.markdown("""### 1. Setup""") st.image( "./assets/about/setup.jpg", caption="Figure 1: Pictorial representation of the setup.", use_column_width=True, ) st.markdown( """ We consider classification problems with: * **Input image** $X \in \mathcal{X}$. * **Feature encoder** $f:~\mathcal{X} \\to \mathbb{R}^d$ that maps input images to dense embeddings $H = f(X) \in \mathbb{R}^d$. * **Classifier** $g:~\mathbb{R}^d \\to [0,1]^k$ that separates embeddings into one of $k$ classes. We do not assume $g$ has a particular form and it can be any fixed, potentially nonlinear function. * **Concept bank** $c = [c_1, \dots, c_m] \in \mathbb{R}^{d \\times m}$ such that $c_j \in \mathbb{R}^d$ is the representation of the $j^{\\text{th}}$ concept. We assume thet $c$ is user-defined and that $m$ is small ($m \\approx 20$). * **Semantics** $Z = [Z_1, \dots, Z_m] = c^{\\top} H$ where $Z_j \in [-1, 1]$ represents the amount of concept $j$ present in the dense embedding of input image $X$. For example: * $f$ is the image encoder of a vision-language model (e.g., CLIP$^1$, OpenCLIP$^2$). * $g$ is the zero-shot classifier obtained by encoding *``A photo of a ''* with the text encoder of the same vision-language model. * $c$ is obtained similarly by encoding the user-defined concepts. """ ) st.markdown( """ ### 2. Defining Semantic Importance Our goal is to test the statistical importance of the concepts in $c$ for the predictions of the given classifier on a particular image $x$ (capital letters denote random variables, and lowercase letters their realizations). We do not train a surrogate, interpretable model and instead consider the original, potentially nonlinear classifier $g$. This is because we want to study the semantic importance of the model that would be deployed in real-world settings and not a surrogate one that might decrease performance. We define importance from the perspective of conditional independence testing because it allows for rigorous statistical testing with false positive rate control (i.e., Type I error control). That is, the probability of falsely deeming a concept important is below a user-defined level $\\alpha \in (0,1)$. For an image $x$, a concept $j$, and a subset $S \subseteq [m] \setminus \{j\}$ (i.e., any subset that does not contain $j$), we define the null hypothesis: $$ H_0:~\hat{Y}_{S \cup \{j\}} \overset{d}{=} \hat{Y}_S, $$ where $\overset{d}{=}$ denotes equality in distribution, and $\\forall C \subseteq [m]$, $\hat{Y}_C = g(\widetilde{H}_C)$, $\widetilde{H}_C \sim P_{H \mid Z_C = z_C}$ is the conditional distribution of the dense embeddings given the observed concepts in $z_C$, i.e. the semantics of $x$. Then, rejecting $H_0$ means the concept $j$ affects the distribution of the response of the model, and it is important. """ ) st.markdown( """ ### 3. Sampling Conditional Embeddings """ ) st.image( "./assets/about/local_dist.jpg", caption=( "Figure 2: Example test (i.e., with concept) and null (i.e., without" " concept) distributions for a class-specific concept and a non-class" " specific one on three images from the Imagenette dataset as a" " function of the size of S." ), use_column_width=True, ) st.markdown( """ In order to test for $H_0$ defined above, we need to sample from the conditional distribution of the dense embeddings given certain concepts. This can be seen as solving a linear inverse problem stochastically since $Z = c^{\\top} H$. In this work, given that $m$ is small, we use nonparametric kernel density estimation (KDE) methods to approximate the target distribution. Intuitively, given a dataset $\{(h^{(i)}, z^{(i)})\}_{i=1}^n$ of dense embeddings with their semantics, we: 1. Use a weighted KDE to sample $\widetilde{Z} \sim P_{Z \mid Z_C = z_C}$, and then 2. Retrieve the embedding $H^{(i')}$ whose concept representation $Z^{(i')}$ is the nearest neighbor of $\widetilde{Z}$ in the dataset. Details on the weighted KDE and the sampling procedure are included in the paper. Figure 2 shows some example test (i.e., $\hat{Y}_{S \cup \{j\}}$) and null (i.e., $\hat{Y}_{S}$) distributions for a class-specific concept and a non-class specific one on three images from the Imagenette$^3$ dataset. We can see that the test distributions of class-specific concepts are skewed to the right, i.e. including the observed class-specific concept increases the output of the predictor. Furthermore, we see the shift decreases the more concepts are included in $S$, i.e. if $S$ is larger and it contains more information, then the marginal contribution of adding one concept will be smaller. On the other hand, including a non-class-specific concept does not change the distribution of the response of the model, no matter the size of $S$. """ ) st.markdown( """ ### 4. Testing by Betting Instead of classical hypothesis testing techniques based on $p$-values, we propose to test for the importance of concepts by *betting*.$^4$ This choice is motivated by two important properties of sequential tests: 1. They are **adaptive** to the hardness of the problem. That is, the easier it is to reject a null hypothesis, the earlier the test will stop. This induce a natural ranking of importance across concepts: if concept $j$ rejects faster than $j'$, then $j$ is more important than $j'$. 2. They are **efficient** because they only use as much data as needed to reject, instead of the entire data available as traditional, offline tests. Sequential tests instantiate a game between a *bettor* and *nature*. At every turn of the game, the bettor places a wager against the null hypothesis, and the nature reveals the truth. If the bettor wins, they will accumulate wealth, or loose some otherwise. More formally, the *wealth process* $\{K_t\}_{t \in \mathbb{N}_0}$ is defined as $$ K_0 = 1, \\quad K_{t+1} = K_t \cdot (1 + v_t\kappa_t), $$ where $v_t \in [-1,1]$ is a betting fraction, and $\kappa_t \in [-1,1]$ is the payoff of the bet. Under certain conditions, the wealth process describes a *fair game*, and for $\\alpha \in (0,1)$, it holds that $$ \mathbb{P}_{H_0}[\exists t:~K_t \geq 1/\\alpha] \leq \\alpha. $$ That is, the wealth process can be used to reject the null hypothesis $H_0$ with Type I error control at level $\\alpha$. Briefly, we use ideas of sequential kernelized independence testing (SKIT)$^5$ and define the payoff as $$ \kappa_t \coloneqq \\tanh\left(\\rho_t(\hat{Y}_{S \cup \{j\}}) - \\rho_t(\hat{Y}_S)\\right) $$ and $$ \\rho_t = \widehat{\\text{MMD}}(\hat{Y}_{S \cup \{j\}}, \hat{Y}_S) $$ is the plug-in estimator of the maximum mean discrepancy (MMD)$^6$ between the test and null distributions at time $t$. Furthermore, we use the online Newtown step (ONS)$^7$ method to choose the betting fraction $v_t$ and ensure exponential growth of the wealth. """ ) st.markdown( """ --- **References** [1] CLIP is available at https://github.com/openai/CLIP . [2] OpenCLIP is available at https://github.com/mlfoundations/open_clip . [3] The Imagenette dataset is available at https://github.com/fastai/imagenette . [4] Glenn Shafer. Testing by betting: A strategy for statistical and scientific communication. Journal of the Royal Statistical Society Series A: Statistics in Society, 184(2):407-431, 2021. [5] Aleksandr Podkopaev et al. Sequential kernelized independence testing. In International Conference on Machine Learning, pages 27957-27993. PMLR, 2023. [6] Arthur Gretton et al. A kernel two-sample test. The Journal of Machine Learning Research, 13(1):723-773, 2012. [7] Ashok Cutkosky and Francesco Orabona. Black-box reductions for parameter-free online learning in banach spaces. In Conference On Learning Theory, pages 1493-1529. PMLR, 2018. """ )