From 9afd8983563a81983e6a70e27d3b856f8caaab0b Mon Sep 17 00:00:00 2001 From: Yu Cong Date: Fri, 11 Jul 2025 10:33:25 +0800 Subject: [PATCH] first commit --- .gitignore | 311 +++++++++++++++++++++++++++ Notes_SODA23.tex | 380 +++++++++++++++++++++++++++++++++ SDP.tex | 127 +++++++++++ chao.sty | 532 +++++++++++++++++++++++++++++++++++++++++++++++ distribution.pdf | Bin 0 -> 64757 bytes distribution.tex | 34 +++ ref.bib | 29 +++ 7 files changed, 1413 insertions(+) create mode 100644 .gitignore create mode 100644 Notes_SODA23.tex create mode 100644 SDP.tex create mode 100644 chao.sty create mode 100644 distribution.pdf create mode 100644 distribution.tex create mode 100644 ref.bib diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2b403a --- /dev/null +++ b/.gitignore @@ -0,0 +1,311 @@ +.vscode/ +.ds_store + +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bbl-SAVE-ERROR +*.bcf +*.bcf-SAVE-ERROR +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync +*.rubbercache +rubber.cache + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hypdoc +*.hd + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib \ No newline at end of file diff --git a/Notes_SODA23.tex b/Notes_SODA23.tex new file mode 100644 index 0000000..a34ecee --- /dev/null +++ b/Notes_SODA23.tex @@ -0,0 +1,380 @@ +\documentclass[12pt]{article} +\usepackage{chao} +\usepackage{algorithm,algorithmicx,algpseudocode} +\renewcommand{\algorithmiccomment}[1]{\bgroup\hfill//~#1\egroup} + +\begin{document} + +\section{Preliminaries} + +\begin{definition} + A \textit{metric space} is a pair $(X,d_X)$ such that $X$ is a set of points and $d_X:X\times X\to R_{\geq 0}$ is a function satisfying the following properties for all $x,y,z\in X$: + \begin{enumerate} + \item $d_X(x,y)=0$ if and only if $x=y$ + \item $d_X(x,y)=d_X(y,x)$ + \item $d_X(x,z)\leq d_X(x,y)+d_X(y,z)$ + \end{enumerate} +\end{definition} + +\begin{definition} + An \textit{embedding} $\alpha:X\to Y$ of a metric space $(X,d_X)$ into another metric space $(Y,d_Y)$ is defined as an injective mapping $f:X\to Y$. +\end{definition} + +\begin{definition} + An \textit{expanding embedding} $\alpha:X\to Y$ of a metric space $(X,d_X)$ into another metric space $(Y,d_Y)$ has \textit{distortion} $c\geq 1$ if for all $x,y\in X:$ + \begin{equation*} + d_X(x,y)\leq d_Y(\alpha(x),\alpha(y))\leq c\cdot d_X(x,y). + \end{equation*} +\end{definition} + +\begin{definition} + An embedding $\alpha: X\to Y$ of a metric space $(X,d_X)$ into another metric space $(Y,d_Y)$ is a \textit{$(k,c)$-outlier embedding} if there exists $K\subseteq X$ such that $|K|\leq k$ and $\alpha|_{X\setminus K}$ (the restriction of $\alpha$ to the domain $X\setminus K$) is an embedding of $(X\setminus K,d|_{X\setminus K})$ with distortion at most $c$. +\end{definition} + +\begin{definition} + Let $(X,d_X)$ and $(Y,d_Y)$ be two metric spaces and $\alpha_S: S\subseteq X\to Y$ be an embedding with Lipschitz constant at most $L$. Then $\alpha :X\to Y$ is a \textit{Lipschitz extension} of $\alpha_S$ with extension factor $g(|S|,|X|)$ if for all $x\in S, \alpha(x)=\alpha_S(x)$ and for all $x,y\in X$, + \begin{equation*} + d_Y(\alpha(x),\alpha(y))\leq g(|S|,|X|)\cdot L\cdot d_X(x,y). + \end{equation*} +\end{definition} + +\begin{definition}[\textsc{Composition of nested embeddings}] + Let $(X,d_X)$ and $(Y,d_Y)$ be two metric spaces and $g:[0,\infty)^2 \times \mathbb{N} \to [1,\infty)$. A \textit{weak $g$-nested composition} is an algorithm that, given a set $S\subseteq X$ with $k:=|X\setminus S|$, and two expanding embeddings, $\alpha_S:S\to Y$ with distortion $c_{S}$ and $\alpha_X:X\to Y$ with distortion $c_X\geq c_S$, returns an embedding $\alpha:X\to Y$ such that, + \begin{align*} + &\text{for all } x,y\in S, \quad &d_X(x,y)\leq &d_Y(\alpha(x),\alpha(y))& \leq c_S&\cdot d_X(x,y),\\ + &\text{and, for all } x,y\in X, \quad & &d_Y(\alpha(x),\alpha(y))& \leq g(c_S,c_X,k)&\cdot d_X(x,y). + \end{align*} + We say that it is a \textit{nested composition} if the embedding $\alpha$ is additionally an expanding embedding. That is, + \begin{align*} + &\text{for all } x,y\in S, \quad &d_X(x,y)&\leq d_Y(\alpha(x),\alpha(y))& \leq c_S&\cdot d_X(x,y),\\ + &\text{and, for all } x,y\in X, \quad &d_X(x,y)&\leq d_Y(\alpha(x),\alpha(y))& \leq g(c_S,c_X,k)&\cdot d_X(x,y). + \end{align*} +\end{definition} + +\section{Main results and conjectures} + +\begin{theorem}\label{outEmb} + Let $(X,d_X)$ be a metric space that admits a $(k,c)$-outlier embedding. Then there exists a polynomial time algorithm $\mathcal{A}$ that, for any $\gamma >1$, finds a subset $K\subseteq X$ and an embedding $\alpha: X\setminus K\to \ell_2$ such that $\alpha$ has distortion at most $\gamma c$, and + \begin{equation*} + |K|\leq 2\frac{(125\cdot H_k)^2+\gamma^2}{\gamma^2-1}k + \end{equation*} + Choosing $\gamma=1+\varepsilon$ for $\varepsilon\in (0,1]$, in particular, provides an $\big( O(\frac{\log^2 k}{\varepsilon}k), (1+\varepsilon)c \big)$-outlier embedding from $X$ into $\ell_2$. +\end{theorem} + +\begin{lemma}\label{weakNested} + Let $(X,d_X)$ be any finite metric. Let $\alpha_S:S\to \ell_p$ be any Lipschitz embedding of $S\subseteq X$ into $\ell_p$ with $k:=|X\setminus S|$. Then there exists a weak $125H_kc_S$-nested composition from $X$ into $\ell_p$, where $H_k$ is the $k$th Harmonic number. +\end{lemma} + +\begin{lemma}\label{nested} + Let $(X,d_X)$ be any finite metric. Then there exists a $382H_kc_X$-nested composition from $X$ into $\ell_1$. +\end{lemma} + +\begin{conjecture}\label{con1} + Let $(X,d_X)$ be a metric space that admits a $(k,c)$-outlier embedding. Then there exists a polynomial time algorithm $\mathcal{A}$ that, for any $\varepsilon>0$, finds an $\big( O(\frac{k}{\varepsilon}), (1+\varepsilon)c \big)$-outlier embedding from $X$ into $\ell_2$. +\end{conjecture} + +\begin{conjecture}\label{con2} + Let $(X,d_X)$ be a metric space that admits a $(k,c)$-outlier embedding. Then there exists a polynomial time algorithm $\mathcal{A}$ that, for any $\varepsilon>0$, finds an $\big( O(\frac{f(k)}{\varepsilon}k), (1+\varepsilon)c \big)$-outlier embedding from $X$ into $\ell_p$. +\end{conjecture} + +Due to the limitation of SDP, conjecture \ref{con2} requires an entirely different framework, so we maintain a skeptical perspective regarding this conjecture. + +\begin{conjecture}\label{con3} + Let $(X,d_X)$ be any finite metric. Then there exists a $f(k)c_X$-nested composition from $X$ into $\ell_p$. +\end{conjecture} + +Intuitively, Conjecture \ref{con3} can be proved based on the framework of Lemma \ref{nested}. The proof should mainly involve changes in parameters. However, once there is a problem that cannot be covered by that framework, the conjecture should be unverifiable. + +\section{For Lemma \ref{weakNested}} + +\begin{lemma}\label{lipbounds} + In Algorithm \ref{Alg:Lip}, we have the following bounds on the expansion for each pair $x,y\in X$: + \begin{enumerate} + \item If $x,y\in S$, then $d_Y(\alpha(x),\alpha(y))\leq c_S \cdot d_X(x,y)$. + \item If $x\in S$ and $y\in X\setminus S$, then $d_Y(\alpha(x),\alpha(y))\leq 10c_S \cdot d_X(x,y)$. + \item If $x,y\in X\setminus S$ and $d_X(x,\gamma(x))\leq 2\cdot d_X(x,y)$, then $d_Y(\alpha(x),\alpha(y))\leq 50c_S \cdot d_X(x,y)$. + \item If $x,y\in X\setminus S$ and $d_X(x,\gamma(x)),d_X(y,\gamma(y))> 2\cdot d_X(x,y)$, then $E_{\alpha}[d_Y(\alpha(x),\alpha(y))]\leq 125c_S\cdot H_k \cdot d_X(x,y)$. + \end{enumerate} +\end{lemma} + +\begin{algorithm}[H] + \renewcommand{\algorithmicrequire}{\textbf{Input:}} + \renewcommand{\algorithmicensure}{\textbf{Output:}} + \caption{Lipschitz extension} + \label{Alg:Lip} + \begin{algorithmic}[1] + \Require Metric spaces $(X,d_X)$ and $(Y, d_Y)$, $|X|=n$, subset $S \subseteq X$ and embedding $\alpha_S : S \to Y$ with distortion $c_S$ + \Ensure A randomized embedding $\alpha : X \to Y$ such that for all $x, y \in X$, $E[d_Y(\alpha(x), \alpha(y))] \leq 125H_k c_S \cdot d_X(x, y)$ for $k = |X \setminus S|$, and for all $x \in S$, $\alpha(x) = \alpha_S(x)$ + \State $K \leftarrow X \setminus S$. + \State Define $\gamma : K \to S$ such that $\gamma(u) \in \arg\min_{v \in S} d_X(u,v)$. + \State Select $b$ uniformly at random from the range $[2, 4]$. + \State Select a uniformly random permutation $\pi : K \to [k]$ of the vertices in $K$ + \For{$i = 1$ to $k$} + \State $u_i \leftarrow \pi^{-1}(i)$ + \State $K_i \leftarrow \{v \in K \mid d_X(v, u_i) \leq b \cdot d_X(v, \gamma(v))\}$ + \State $K \leftarrow K \setminus K_i$ + \EndFor + \State Define an embedding $\alpha : X \to Y$ such that \begin{equation*} \alpha(v) = + \begin{cases} + \alpha_S(v) & \text{if } v \in S \\ + \alpha_S(\gamma(u_i)) & \text{if } v \in K_i + \end{cases} + \end{equation*} + \State Output $\alpha$ + \end{algorithmic} +\end{algorithm} + +\begin{proof}[of Lemma \ref{lipbounds}] +When $x,y\in S$, the corresponding inequality holds by the definition of $\alpha$. + +When $x\in S$ and $y\in X\setminus S$, let $y\in K_i$. By the definition of $\alpha$, we have $d_Y(\alpha(x),\alpha(y))=d_Y(\alpha(x),\alpha(\gamma(u_i)))\leq c_S\cdot d_X(x,\gamma(u_i))$. By the first case of Lemma \ref{lipbounds}, the definition of $\gamma$ and the definition of $K_i$, we have +\begin{align*} + d_X(x,\gamma(u_i))&\leq d_X(x,u_i)+d_X(u_i,\gamma(u_i))\\ + &\leq 2\cdot d_X(x,u_i)\\ + &\leq 2\cdot(d_X(x,y)+d_X(y,u_i))\\ + &\leq 2\cdot(d_X(x,y)+b\cdot d_X(y,\gamma(y)))\\ + &\leq (2+2b)\cdot d_X(x,y)\\ + &\leq 10\cdot d_X(x,y) +\end{align*} + +When $x,y\in X\setminus S$ and $d_X(x,\gamma(x))\leq 2\cdot d_X(x,y)$, by the second case of Lemma \ref{lipbounds}, we have +\begin{align*} + d_Y(\alpha(x),\alpha(y))&\leq d_Y(\alpha(x),\alpha(\gamma(x)))+d_Y(\alpha(\gamma(x)),\alpha(y))\\ + &\leq (2+2b)c_S\cdot (d_X(x,\gamma(x))+d_X(\gamma(x),y))\\ + &\leq (2+2b)c_S\cdot (2d_X(x,\gamma(x))+d_X(x,y))\\ + &\leq (10+10b)c_S\cdot d_X(x,y)\\ + &\leq 50c_S\cdot d_X(x,y) +\end{align*} + +When $x,y\in X\setminus S$ and $d_X(x,\gamma(x)),d_X(y,\gamma(y))> 2\cdot d_X(x,y)$, let $x\in K_i$ and $y\in K_j$. +If $i= j$, then we have $d_Y(\alpha(x),\alpha(y))=0$. If $i\ne j$, we denote it to be $x\sim y$. By the second case of Lemma \ref{lipbounds}, we have +\begin{align*} + d_Y(\alpha(x),\alpha(y))&\leq d_Y(\alpha(x),\alpha(\gamma(x)))+d_Y(\alpha(\gamma(x)),\alpha(y))\\ + &\leq (2+2b)c_S\cdot (d_X(x,\gamma(x))+d_X(\gamma(x),y))\\ + &\leq (2+2b)c_S\cdot (2d_X(x,\gamma(x))+d_X(x,y))\\ + &\leq (5+5b)c_S\cdot d_X(x,\gamma(x))\\ + &\leq 25c_S\cdot d_X(x,\gamma(x)) +\end{align*} +\begin{itemize} + \item If $x\sim y$, suppose that $ib\geq \beta_{\pi^{-1}(i)}, ~~\forall s\in [1,i) + \end{equation*} +\end{itemize} +Consider a fixed pair $(x,y)$ satisfying that $d_X(x,\gamma(x)),d_X(y,\gamma(y))> 2\cdot d_X(x,y)$. For some center $u$, let $E_u$ be the event that $\beta_{\pi^{-1}(s)}>\beta_{u}$ for $1\leq s<\pi(u)$. Define an order $\textit{index}:K\to [k]$ such that $\text{index}(u)\leq \text{index}(v)$ if and only if $\beta_u\leq \beta_v$. Then $\Pr_{\pi}[E_u]=1/\text{index}(u)$ (which is proved in Appendix \ref{ComE}). For any fixed center $u$ such that $d_X(x,u)\leq 4\cdot d_X(x,\gamma(x))$ and some parameter $b\in [2,4]$, let $E_b$ be the event that +\begin{equation*} + \frac{d_X(x,u)}{d_X(x,\gamma(x))}\leq b <\frac{d_X(y,u)}{d_X(y,\gamma(y))} +\end{equation*} +Then \begin{align*} + \Pr_b [E_b]&\leq \frac{1}{2}\cdot \Big(\frac{d_X(y,u)}{d_X(y,\gamma(y))}-\frac{d_X(x,u)}{d_X(x,\gamma(x))}\Big)\\ + &\leq \frac{1}{2}\cdot \Big(\frac{d_X(x,u)+d_X(x,y)}{d_X(x,\gamma(y))-d_X(x,y)}-\frac{d_X(x,u)}{d_X(x,\gamma(x))}\Big)\\ + &\leq \frac{1}{2}\cdot \Big(\frac{d_X(x,u)+d_X(x,y)}{d_X(x,\gamma(x))-d_X(x,y)}-\frac{d_X(x,u)}{d_X(x,\gamma(x))}\Big)\\ + &= \frac{1}{2}\cdot \frac{d_X(x,y)\cdot \big(d_X(x,\gamma(x))+d_X(x,u)\big)}{\big(d_X(x,\gamma(x))-d_X(x,y)\big)\cdot d_X(x,\gamma(x))}\\ + &\leq 5\cdot \frac{d_X(x,y)}{d_X(x,\gamma(x))} +\end{align*} +where the third inequality is by the definition of $\gamma$, and the final inequality is by the facts that $d_X(x,u)\leq 4\cdot d_X(x,\gamma(x))$ and $d_X(x,\gamma(x))> 2\cdot d_X(x,y)$. + +Thus, +\begin{align*} + \Pr_{\pi,b}[x\sim y]&=\sum_{u\in K}\Pr_{b}[x\sim y|E_u]\cdot \Pr_{\pi}[E_u]\\ + &\leq \sum_{u\in K} \Pr_b [E_b]\cdot \Pr_{\pi}[E_u]\\ + &\leq \sum_{u\in K}5\cdot \frac{d_X(x,y)}{d_X(x_u,\gamma(x_u))}\cdot \frac{1}{\text{index}(u)} +\end{align*} +where $x_u$ is the vertex in $\{x,y\}$ satisfying that $x_u\in K_{\pi(u)}$, and the first inequality is by the fact that $E_b$ is a necessary condition of $x\sim y$ when $E_u$ holds. + +Finally, +\begin{align*} + E_{\pi,b}[d_Y(\alpha(x),\alpha(y))]&\leq=\Pr_{\pi,b}[x\sim y]\cdot 25c_s\cdot d_X(x_u,\gamma(x_u))\\ + &\leq 125c_s\cdot d_X(x,y)\cdot \sum_{u\in K} \frac{1}{\text{index}(u)}\\ + &=125c_s\cdot H_k\cdot d_X(x,y) +\end{align*} + +\end{proof} + +\section{Main trouble for conjecture \ref{con1}}\label{Trouble} + +When we cluster a set of outliers $K_i$ and embed them into a fixed non-outlier $\gamma(u_i)$ (i.e., $\alpha(v)=\alpha_S(\gamma(u_i)), \forall v\in K_i$), the troublesome case is that $x\in K_i,y\notin K_i$ but $d_X(x,y)\approx 0$. + +The original paper addresses this troublesome case by incorporating the harmonic number $H_k$ into their bounds. Specifically, they handle the scenario by randomly selecting the clustering center and demonstrating that the troublesome case occurs with low probability. Since this low probability is proportional to $d_X(x,y)$, they derive the bound: +\begin{equation*} + \mathbb{E}_{\alpha}[d_Y(\alpha(x),\alpha(y))]\leq 125 c_s H_k\cdot d_X(x,y). +\end{equation*} +In contrast, for the non-troublesome case, they prove a much better bound: +\begin{equation*} + d_Y(\alpha(x),\alpha(y))\leq 50 c_s\cdot d_X(x,y). +\end{equation*} + +We have tried to handle the troublesome case via non-probabilistic methods, but these attempts failed. For any fixed clustering rules (including merging two nearby clusters), the troublesome case cannot be fully covered. In our attempts, any fixed clustering rules cannot prevent all arbitrarily close outliers from being assigned to distinct clusters. + +\section{Other variants of the problem} + +\begin{conjecture}\label{con4} + Let $(X,\|\cdot\|_p)$ be a metric space and $p\ne 2$. Let $\alpha: S \to \ell_2$ be any Lipschitz embedding of $S\subseteq X$ into $\ell_2$ with $k=|X\setminus S|$. Then there exists a weak $m\cdot c_S$-nested composition from $X$ into $\ell_2$, where $m$ is a constant. +\end{conjecture} + +When the input metric space is in $\ell_p$, the troublesome case in Section \ref{Trouble} still exists and is difficult to handle. If we cannot eliminate the harmonic number $H_k$, the restrictions on the input metric space make less sense. + +\begin{definition} + Let $X\subset \mathbb{R}^{m}$ be a set with $|X|=n$. An embedding $\alpha: X\to \mathbb{R}^l$ is a \textit{$(k,c,l)$-outlier embedding} if there exists $K\subseteq X$ such that $|K|\leq k$ and $\alpha|_{X\setminus K}$ (the restriction of $\alpha$ to the domain $X\setminus K$) is an embedding of $(X\setminus K,d|_{X\setminus K})$ with distortion at most $c$. +\end{definition} + +\clearpage +\appendix + +\section{(Unfinished) New Lemma \ref{weakNested}} + +\begin{algorithm}[H] + \renewcommand{\algorithmicrequire}{\textbf{Input:}} + \renewcommand{\algorithmicensure}{\textbf{Output:}} + \caption{Lipschitz extension} + \label{Alg:NewLip} + \begin{algorithmic}[1] + \Require Metric spaces $(X,d_X)$ and $(Y, d_Y)$, $|X|=n$, subset $S \subseteq X$ and embedding $\alpha_S : S \to Y$ with distortion $c_S$, parameter $b>0$ + \Ensure A randomized embedding $\alpha : X \to Y$ such that for all $x, y \in X$, $E[d_Y(\alpha(x), \alpha(y))] \leq 125H_k c_S \cdot d_X(x, y)$ for $k = |X \setminus S|$, and for all $x \in S$, $\alpha(x) = \alpha_S(x)$ + \State $K \leftarrow X \setminus S$. + \State Define $\gamma : K \to S$ such that $\gamma(u) \in \arg\min_{v \in S} d_X(u,v)$. + \State Let $K=\{u_1,u_2,\dots,u_k\}$ such that $d_X(u_i,\gamma(u_i))\leq d_X(u_j,\gamma(u_j))$ for any $1\leq i2\cdot d_X(u_i,u_j), s\in\{i,j\}$ and $1\leq i2\cdot d_X(u_i,u_t)$ and $d_X(u_j,\gamma (u_i))>2\cdot d_X(u_i,u_j)$. +\end{proof} + +\section{Combinatorial Equality}\label{ComE} + +The following is for $\text{Pr}_{\pi}[E_u]=1/\text{index}(u)$ , and here suppose that $\text{index}(u)=k+1$. + +\begin{align*} + \frac{(n-1)!+(n-k-1)(n-2)!+\dots+(n-k-1)!k!}{n!}&=\frac{1}{k+1}\\ + \frac{(n-k-1)!}{n!}\sum_{i=1}^{n-k} \frac{(n-i)!}{(n-k-i)!}&=\frac{1}{k+1}\\ + \sum_{i=1}^{n-k} \frac{(n-i)!}{(n-k-i)!}&=\frac{n!}{(k+1)(n-k-1)!}\\ + \sum_{i=1}^{n-k} \frac{(n-i)!}{(n-k-i)!k!}&=\frac{n!}{(k+1)!(n-k-1)!}\\ + \sum_{i=1}^{n-k} C_{n-i}^{k}&=C_{n}^{k+1} +\end{align*} + +\end{document} diff --git a/SDP.tex b/SDP.tex new file mode 100644 index 0000000..7ff09f8 --- /dev/null +++ b/SDP.tex @@ -0,0 +1,127 @@ +\documentclass[12pt]{article} +\usepackage{chao} + +\title{Outlier Embedding Notes} + +\newcommand{\scut}{\textsc{Sparsest Cut}} +\newcommand{\iprod}[2]{\langle #1, #2\rangle} +\DeclareMathOperator{\las}{\textsc{Las}} + +\begin{document} + +Try to improve the SDP and rounding part. + +\section{Lasserre Hierarchy} + +In \cite{chawla_composition_2023} the following SDP is considered. + +\begin{equation}\label{outlierSDP} +\begin{aligned} +\min_{v,\delta}& & \sum_x \delta_x& & &\\ +s.t.& & (1-\delta_x - \delta_y) d^2(x,y)\leq \|v_x-v_y\|^2 &\leq (c^2+(\delta_x+\delta_y)f(k)) d^2(x,y) & &\forall x,y\in X\\ + & & \delta_x\in [0,1], v_x&\in \R^p & &\forall x\in X +\end{aligned} +\end{equation} + +$\delta_x\in \set{0,1}$ indicates whether $x\in X$ is an outlier point and is relaxed. Is it possible to apply Lasserre hierarchy on $\delta_x$ only? + +The idea is to consider $\delta_x\in [0,1]$ as a probability of $x=1$ and try to recover the joint distribution on $[x]_{x\in X}$. We use the definition in \cite{guruswami_approximating_2013}. +\begin{definition}[Lasserre hierarchy] +Given a variable set $V$ and a positive integer $t$, a set of vectors $x$ is said to satisfy the $t$ round Lasserre hierarchy (denoted by $x\in\las_t(V)$) if $x$ satisfies the following conditions: +\begin{enumerate} +\item For all $S\in \binom{V}{\leq t+1}$, there exists a mapping $x_S(\cdot):\set{0,1}^S \to \R^\gamma$, which assigns a vector to every possible 0-1 labeling of $S$. Note that this represents all possible events involving at most $r+1$ variables. For a labeling $f\in \set{0,1}^S$ and element $s\in S$ we use $f(s)$ for the label of $s$. For small cardinality $S$ we write $x_{\set{u,v}}(0,1)$ for $x_{\set{u,v}}(f)$ where $f(\set{u,v})=(0,1)$. +\item $\|x_{\emptyset}\|^2=1$. +\item $\langle x_S(f),x_T(g)\rangle=0$ if $f(S)$ and $g(T)$ are inconsistent, \ie{} there exists $u\in S\cap T$ such that $f(u)\neq g(u)$. +\item $\langle x_S(f),x_T(g)\rangle=\langle x_{S'}(f'),x_{T'}(g')\rangle$ if $S\cup T=S'\cup T'$ and the labels are consistent. +\item $\|x_u(0)\|^2+\|x_u(1)\|^2=\|x_{\emptyset}\|^2=1$. +\end{enumerate} +\end{definition} + +\begin{remark} +For 3 and 4 one should understand the inner product $\langle x_S(f),x_T(g)\rangle$ as the probability $\Pr[\bigwedge_{s\in S}v_s=f(s)\bigwedge_{t\in T}v_t=g(t)]$. +\end{remark} + +\begin{lemma}[pseudo probability] +Let $x\in \las_t(V)$ for $t\geq 0$. Then the following holds: +\begin{enumerate} +\item $\|x_S(f)\|^2 \in [0,1]$ for all $|S|\leq t+1$. +\item $\|x_S(f)\|^2 \leq \|x_T(g)\|^2$ if $T\subset S$ and $f(t)=g(t)$ for all $t\in T$. +\item $\|x_S(f)\|^2 = \sum_{h\in \set{0,1}^{T-S}} \|x_T(f\land h)\|^2$ if $S\subset T$. +\item If $S\in \binom{V}{\leq t}$, $f\in \set{0,1}^S$ and $u\notin S$, then $x_{S+u}(f\land u=1)+x_{S+u}(f\land u=0)=x_{S}(f)$. +\end{enumerate} +\end{lemma} +\begin{proof} +Let $N_t=\sum_{r=0}^{t+1}\binom{V}{r}2^r$ be the number of vectors in $x$. +Consider the moment matrix $M_t\in \R^{N_t\times N_t}$, where each entry $M_t[f(S),g(T)]$ is $\langle x_S(f),x_T(g)\rangle$. The moment matrix is positive semidefinite since vectors in $x$ form a Gram decomposition of $M_t$. +\begin{enumerate} +\item Consider the following submatrix of $M_t$. +\[\begin{bmatrix} +\iprod{x_\emptyset}{x_\emptyset} & \iprod{x_\emptyset}{x_S(f)}\\ +\iprod{x_S(f)}{x_\emptyset} & \iprod{x_S(f)}{x_S(f)} +\end{bmatrix}\succeq 0\] +Computing the determinant gives us $\|x_S(f)\|^2(1-\|x_S(f)\|^2)\geq 0$. +\item Again consider certain submatrix of $M_t$. \[\begin{bmatrix} +\iprod{x_T(g)}{x_T(g)} & \iprod{x_T(g)}{x_S(f)}\\ +\iprod{x_S(f)}{x_T(g)} & \iprod{x_S(f)}{x_S(f)} +\end{bmatrix}\succeq 0\] +The determinant is $\|x_S(f)\|^2(\|x_T(g)\|^2-\|x_S(f)\|^2)\geq 0$. +\item We only need to show $\|x_S(f)\|^2=\|x_{S+u}(f\land u=0)\|^2 +\|x_{S+u}(f\land u=1)\|^2$ and the rest follows by induction. Note that $x_u(0)+x_u(1)=x_\emptyset$ since we have $\|x_u(0)\|^2+\|x_u(1)\|^2=\|x_{\emptyset}\|^2$ and they are orthogonal. +\begin{equation*} +\begin{aligned} +\|x_{S+u}(f\land u=0)\|^2 +\|x_{S+u}(f\land u=1)\|^2 &= \iprod{x_S(f)}{x_u(0)}+\iprod{x_S(f)}{x_u(1)}\\ +&= \iprod{x_S(f)}{x_u(0)+x_u(1)}\\ +&= \iprod{x_S(f)}{x_\emptyset}=\|x_S(f)\|^2 +\end{aligned} +\end{equation*} +\item Notice that $x_{S+u}(f\land u=1)$ and $x_{S+u}(f\land u=0)$ are orthogonal. Denote by $x_S(f')$ the projection of $f$ on the hyperplane spanned by $x_{S+u}(f\land u=1)$ and $x_{S+u}(f\land u=0)$. One can verify that $f'=x_{S+u}(f\land u=1)+x_{S+u}(f\land u=0)$. Then it remains to show $\langle x_S(f'), x_S(f)\rangle=\|x_S(f)\|^2$, which immediately follows from 3. +\end{enumerate} +\end{proof} + +Now we are ready to look into \autoref{outlierSDP} with $\las_t$. + +\section{Better SDP} +In \cite{chawla_composition_2023} the rounding part is first showing that if there is a $(k,c)$-outlier embedding for $(X,d)$ into $\ell_2$ then there must be a solution to \autoref{outlierSDP} with $\sum_x \delta_x=k$ and $f(k)=125cH_k$; then solving the SDP and rounding the fractional optimal solution. I think we cannot do better with the same SDP formulation since for fixed $f(k)$ their rounding is very tight and it seems not easy to improve the $125cH_k$. + +... It seems hard to improve the SDP part +\begin{comment} +Trying the simplest (and the most natural) formulation. + +\begin{equation}\label{outlierLAS} +\begin{aligned} +\min_{v,\delta}& & \sum_x \delta_x& & &\\ +s.t.& & (1-\delta_x)(1 - \delta_y) d^2(x,y)\leq \|v_x-v_y\|^2 &\leq (1-\delta_x)(1 - \delta_y)c^2 d^2(x,y) & &\forall x,y\in X\\ + & & v_x&\in \R^p & &\forall x\in X +\end{aligned} +\end{equation} +It follows by definition that \autoref{outlierLAS} is a relaxation of the $(k,c)$-outlier embedding problem. Assume that $(X,d)$ admits a $(k,c)$-outlier embedding, then the optimum of \autoref{outlierLAS} is at most $k$. + +\subsection{Simple Threshold Rounding} +We try to apply the rounding idea in \cite{chawla_composition_2023}. +Let $\Delta\in [0,1]$ be the threshold to be specified and let the outlier set be $K=\set{x| \delta_x \geq \Delta}$. +For the size of $K$ we can show that $|K|\leq \sum_x \delta_x / \Delta \leq k/\Delta$. To make $|K|=O(k)$ we need to make sure $1/\Delta =O(1)$. + +To get the distortion we need to have a scale factor $\beta$ on $v_x$ to make sure our embedding is an expansion. Let $\alpha(x)=\beta v_x$ for $\delta_x < \Delta$. + +\begin{equation*} +\begin{aligned} +\beta^2\|v_x-v_y\|^2 &\geq \beta^2 d^2(x,y)(1-\delta_x)(1-\delta_y)\geq d^2(x,y) +\end{aligned} +\end{equation*} + +So we take $\beta = \frac{1}{(1-\Delta)^2}$. Another side provides the distortion, + +\begin{equation*} +\begin{aligned} +\|\alpha(x)-\alpha(y)\|^2 &\leq c^2 d^2(x,y)(1-\delta_x)(1-\delta_y)\beta^2\\ + &\leq \frac{c^2 d^2(x,y)}{(1-\Delta)^2} +\end{aligned} +\end{equation*} +Thus taking $\Delta$ to be any constant gives us an $(O(k),O(c))$-outlier embedding. For an $(O(k),(1+\e)c)$-embedding, let $\frac{1}{(1-\Delta^2)}=1+\e$. Then one has \[|K|\leq \frac{k}{1-\sqrt{\frac{1}{1+\e}}}\leq \frac{k}{\frac{1}{2}\e-\frac{3}{8}\e^2}.\] + +\subsection{Vector Based Rounding} + +\end{comment} + +\bibliography{ref} +\bibliographystyle{alpha} +\end{document} diff --git a/chao.sty b/chao.sty new file mode 100644 index 0000000..28511b4 --- /dev/null +++ b/chao.sty @@ -0,0 +1,532 @@ +% ========================-*- LaTeX -*-========================= +% +% chao.sty -- modified from jeffe.sty +% jeffe.sty can be found at http://web.engr.illinois.edu/~jeffe/pubs/latex.html +% +% ========================================================== + + +\ProvidesPackage{chao} + + +% remarkable size +\newif\ifchao@remarkable +\DeclareOption{remarkable}{\chao@remarkabletrue} +\PassOptionsToPackage{hyphens}{url} +\PassOptionsToPackage{unicode}{hyperref} +\PassOptionsToPackage{naturalnames}{hyperref} +\ProcessOptions + + + + + +\RequirePackage{latexsym,amsmath} +\RequirePackage[dvipsnames]{xcolor} + +\RequirePackage[colorlinks=true,urlcolor=Blue,citecolor=Green,linkcolor=BrickRed,unicode]{hyperref} + +\RequirePackage[hyperref]{ntheorem} % theorem numbering +\RequirePackage{aliascnt} +\RequirePackage{xspace} + +% st mary fonts +\RequirePackage{stmaryrd} % comment out if unavailable +\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n} +\RequirePackage{wasysym} +% nagging +\RequirePackage[l2tabu, orthodox]{nag} +\RequirePackage[all,warning]{onlyamsmath} + + + +\RequirePackage{graphicx} % essentials +\RequirePackage{microtype} +\RequirePackage[mathletters]{ucs} % allow Unicode in .tex file +\RequirePackage[utf8]{inputenc} +\RequirePackage[charter]{mathdesign} % change fonts +% \RequirePackage{XCharter} % change fonts +\RequirePackage{berasans, beramono} +\RequirePackage{eucal} +% \RequirePackage[nocompress]{cite} % other convenient stuff +\RequirePackage{enumerate} +%\usepackage{pgf,tikz} +\RequirePackage{wrapfig} +\RequirePackage[medium,compact]{titlesec} +\RequirePackage{verbatim} +\usepackage{CJKutf8} + + +\newtheorem{theorem}{Theorem}[section] + +\newaliascnt{lemma}{theorem} +\newaliascnt{corollary}{theorem} +\newaliascnt{conjecture}{theorem} +\newaliascnt{proposition}{theorem} + +\newtheorem{lemma}{Lemma}[section] +\newtheorem{corollary}{Corollary}[section] +\newtheorem{conjecture}{Conjecture}[section] +\newtheorem{proposition}{Proposition}[section] +\newtheorem{problem}{Problem} + +\newcommand{\lemmaautorefname}{Lemma} +\newcommand{\corollaryautorefname}{Corollary} +\newcommand{\conjectureautorefname}{Conjecture} +\newcommand{\propositionautorefname}{Proposition} +\newcommand{\problemautorefname}{Problem} + +\newenvironment{definition}[1][Definition]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} +\newenvironment{example}[1][Example]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivliST}} +\newenvironment{remark}[1][Remark]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} + +\widowpenalty 5000 +\clubpenalty 5000 + +% line numbers (be nice to the referee) +\RequirePackage[mathlines, pagewise]{lineno} +%\linenumbers +\nolinenumbers +\renewcommand\linenumberfont{\normalfont\tiny\sffamily\color{gray}} +\setlength\linenumbersep{2em} + +\numberwithin{figure}{section} + +\ifchao@remarkable + \RequirePackage[paperheight=209.6mm, paperwidth=157.2mm, top=0.2in,bottom=0.2in,right=0.2in,left=0.2in]{geometry} + \tolerance=10000 +\else + \RequirePackage[margin=1in]{geometry} +\fi + +%\setlength{\topmargin}{-0.5in} \setlength{\textwidth}{6.5in} +%\setlength{\oddsidemargin}{0.0in} \setlength{\textheight}{9.1in} + +%\pagestyle{empty} +%\newlength{\pagewidth} +%\setlength{\pagewidth}{6.5in} %\pagestyle{empty} +\pagenumbering{arabic} + + + + + +\urlstyle{same} % dammit + +\hyphenation{co-or-din-ate co-or-din-ates half-plane half-space stereo-iso-mers stereo-iso-mer Round-table homol-ogous homol-ogy poly-hedron poly-hedra homeo-morphic homeo-morph-ism} + +\pdfstringdefDisableCommands{\let\boldmath\relax} % allow \boldmath in section titles + +\let\subsectionautorefname\sectionautorefname +\let\subsubsectionautorefname\sectionautorefname + + +% Chao addition +\def\email#1{\href{mailto:#1}{#1}} +% chinese +\def\zh#1{\begin{CJK}{UTF8}{gbsn}#1\end{CJK}} + + + +% ---------------------------------------------------------------------- +% Common Latin abbreviations, only one of which is actually kosher +% ---------------------------------------------------------------------- + +\def\etal{\emph{et~al.}} % and others +%\def\ie{\emph{i.e.}} % that is +\def\ie{\textcolor{red}{that is}} +%\def\eg{\emph{e.g.}} % for example +\def\eg{\textcolor{red}{for example}} + +% ----------------------- +% Common Names +% ----------------------- +\def\Mobius{M\"obius\xspace} + +% ----------------------- +% useful shortcuts +% ----------------------- + +\def\cost{\cent} + +% ---------------------------------------------------------------------- +% Simple math stuff +% ---------------------------------------------------------------------- +\renewcommand{\subset}{\subseteq} +% ---- SYMBOLS ---- +\let\e\varepsilon % a ``real'' epsilon — better yet, just use Unicode ε. +% +% I give up. These are in the wrong font, but my kludged versions +% LOOK like kludges, especially \Z, \Q, and \C. +% +\def\Real{\mathbb{R}} +\def\Proj{\mathbb{P}} +\def\Hyper{\mathbb{H}} +\def\Integer{\mathbb{Z}} +\def\Natural{\mathbb{N}} +\def\Complex{\mathbb{C}} +\def\Rational{\mathbb{Q}} + +\let\N\Natural +\let\Q\Rational +\let\R\Real +\let\Z\Integer +\def\Rd{\Real^d} +\def\RP{\Real\Proj} +\def\CP{\Complex\Proj} + + + +% ---- OPERATORS (requires amsmath) ---- +\def\aff{\operatorname{aff}} +\def\area{\operatorname{area}} +\def\argmax{\operatornamewithlimits{arg\,max}} +\def\argmin{\operatornamewithlimits{arg\,min}} +\def\Aut{\operatorname{Aut}} % Automorphism group +\def\card{\operatorname{card}} % cardinality, deprecated for \abs +\def\conv{\operatorname{conv}} +\def\E{\operatorname{E}} % Expectation: $\E[X]$ (like \Pr) +\def\EE{\operatornamewithlimits{E}} +\def\Hom{\operatorname{Hom}} % Homomorphism group +\def\id{\operatorname{id}} % identity +\def\im{\operatorname{im}} % image +\def\lcm{\operatorname{lcm}} +\def\lfs{\operatorname{lfs}} % local feature size +\def\poly{\operatorname{poly}} +\def\polylog{\operatorname{polylog}} +\def\rank{\operatorname{rank}} +\def\rel{\operatorname{rel\,}} % relative (interior, boundary, etc.) +\def\sgn{\operatorname{sgn}} +\def\vol{\operatorname{vol}} % volume + +\def\fp#1{^{\underline{#1}}} % falling powers: $n\fp{d}$ +\def\rp#1{^{\overline{#1}}} % rising powers: $n\rp{d}$ + +\def\setsymdiff{\operatorname{\triangle}} +% --- Darts and fences --- +% less nice replacements for stmaryrd characters +\@ifundefined{shortrightarrow}{\let\shortrightarrow\rightarrow}{} +\@ifundefined{shortleftarrow}{\let\shortleftarrow\leftarrow}{} +\@ifundefined{shortuparrow}{\let\shortuparrow\uparrow}{} +\@ifundefined{shortdownarrow}{\let\shortdownarrow\downarrow}{} + +\def\arcto{\mathord\shortrightarrow} +\def\arcfrom{\mathord\shortleftarrow} +\def\arc#1#2{#1\arcto#2} +\def\cra#1#2{#1\mathord\shortleftarrow#2} +\def\fence#1#2{#1\mathord\shortuparrow#2} +\def\ecnef#1#2{#1\mathord\shortdownarrow#2} + +% --- Cheap displaystyle operators --- +\def\Frac#1#2{{\displaystyle\frac{#1}{#2}}} +\def\Sum{\sum\limits} +\def\Prod{\prod\limits} +\def\Union{\bigcup\limits} +\def\Inter{\bigcap\limits} +\def\Lor{\bigvee\limits} +\def\Land{\bigwedge\limits} +\def\Lim{\lim\limits} +\def\Max{\max\limits} +\def\Min{\min\limits} + +% ---- RELATORS ---- +\def\deq{\stackrel{\scriptscriptstyle\triangle}{=}} % Use := instead. +\def\into{\DOTSB\hookrightarrow} % = one-to-one +\def\onto{\DOTSB\twoheadrightarrow} +\def\inonto{\DOTSB\lhook\joinrel\twoheadrightarrow} +\def\from{\leftarrow} +\def\tofrom{\leftrightarrow} +\def\mapsfrom{\mathrel{\reflectbox{$\mapsto$}}} +\def\longmapsfrom{\mathrel{\reflectbox{$\longmapsto$}}} + +% ---- DELIMITER PAIRS ---- +% --- always self-scaling delmiter pairs --- +\def\set#1{\left\{ #1 \right\}} +\def\floor#1{\left\lfloor #1 \right\rfloor} +\def\ceil#1{\left\lceil #1 \right\rceil} +\def\seq#1{\left\langle #1 \right\rangle} +\def\abs#1{\left| #1 \right|} +\def\norm#1{\left\| #1 \right\|} +\def\paren#1{\left( #1 \right)} % need better macro name! +\def\brack#1{\left[ #1 \right]} % need better macro name! +\def\indic#1{\left[ #1 \right]} % indicator variable; Iverson notation + +% +% Macros to typeset sets like {foo|bar} with all three delimiters +% correctly scaled to fit. What I *really* want is a \middle macro +% that acts just like \left and \right. Grumble. +% +% Set version is handled by package braket. +\def\Bigbar#1{\mathrel{\left|\vphantom{#1}\right.\n@space}} +\def\Seqbar#1#2{\Seq{#1 \Bigbar{#1 #2} #2}} +\def\Brackbar#1#2{\Brack{#1 \Bigbar{#1 #2} #2}} + +% Math mode fbox +\def\mfbox#1{\mathchoice{{\fbox{\ensuremath{\displaystyle #1}}}} + {{\fbox{\ensuremath{\textstyle #1}}}} + {{\fbox{\ensuremath{\scriptstyle #1}}}} + {{\fbox{\ensuremath{\scriptscriptstyle #1}}}}} + +% ---- ``ACCENTS'' ---- +% NB: Commands equivalent to \lrarrowfill and \overlrarrow are +% already defined in amstex! +\def\lrarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% + \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill + \mkern-6mu\mathord\rightarrow$} +\def\overlrarrow#1{\vbox{\ialign{##\crcr + \lrarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} + $\hfil\displaystyle{#1}\hfil$\crcr}}} + +\def\Line#1{\!\overlrarrow{\vphantom{t}\smash{\,#1\,}}\!} +\def\Ray#1{\overrightarrow{\vphantom{t}#1\,}\!} +\def\Seg#1{\overline{\vphantom{t}#1}} + +% ---- TEXT STYLES ---- +\def\mathsc#1{\text{\textsc{#1}}} +\def\mathbs#1{\text{\boldmath\ensuremath{#1}}} +\def\EMPH#1{\textbf{\emph{\boldmath #1}}} + +% ---------------------------------------------------------------------- +% \begin{bigabstract}...\end{bigabstract} +% For use in documents with title pages. Use normal-sized text in +% the abstract! +% ---------------------------------------------------------------------- +\newenvironment{bigabstract}% +{\begin{center}\large\textbf{\abstractname}\end{center}\begin{quotation}}% +{\end{quotation}} + +% ---------------------------------------------------------------------- +% Make captions smaller than the text, make their titles bold. +% Arguments: #1 == figure name: "Figure 5" +% #2 == caption: "Papers by \Erdos, 1900--2000 (projected)" +% Less space after floats and before caption, since captions are smaller +% ---------------------------------------------------------------------- +\@ifundefined{abovecaptionskip}{\newlength\abovecaptionskip} +\long\def\@makecaption#1#2{ + \vskip \abovecaptionskip + \setbox\@tempboxa\hbox{{\sffamily\footnotesize \textbf{#1.} #2}} + \ifdim \wd\@tempboxa >\hsize % if more than one line, + {\sffamily\footnotesize \textbf{#1.} #2\par} % typeset normally + \else % else + \hbox to\hsize{\hfil\box\@tempboxa\hfil} % center + \fi} +\dbltextfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt +\textfloatsep 18pt plus 2pt minus 4pt % was 20pt plus 2pt minus 4pt +\abovecaptionskip 6pt % was 10pt + +% ---------------------------------------------------------------------- +% Revised theorem environment: +% Add a period after the theorem number, and make theorems slanted +% instead of italic to help distinguish text from math. Use +% \boldmath in theorem label in case it includes math. +% ---------------------------------------------------------------------- +\def\@opargbegintheorem#1#2#3{\trivlist + \item[\hskip\labelsep{\bfseries\boldmath #1\ #2\ (#3).}]\slshape} +\def\@begintheorem#1#2{\trivlist + \item[\hskip\labelsep{\bfseries\boldmath #1\ #2.}]\slshape} + +% ---------------------------------------------------------------------- +% \newproof{type}{text}(style)[post]: +% Define a new type of unnumbered ``theorem'' environment. The last +% two arguments are optional; most environments will not use them. +% +% To change label style, put new style command in label: +% \newproof{comment}{\textsf{Comment}} +% ---------------------------------------------------------------------- +\def\newproof#1#2{\@ifnextchar({\@snproof{#1}{#2}}{\@snproof{#1}{#2}()}} +\def\@snproof#1#2(#3){\@ifnextchar[{\@xnproof{#1}{#2}{#3}} + {\@xnproof{#1}{#2}{#3}[]}} + +\def\@xnproof#1#2#3[#4]{%\expandafter\@ifdefinable\csname #1\endcsname +{\global\@namedef{#1}{\@prf{#2}{#3}}\global\@namedef{end#1}{\@endprf{#4}}}} + +\def\@prf#1#2{\@ifnextchar[{\@xprf{#1}{#2}}{\@yprf{#1}{#2}}} +\def\@xprf#1#2[#3]{\@yprf{#1\ (#3)}{#2}} +\def\@yprf#1#2{\begin{trivlist}\item[\hskip\labelsep{\bfseries\boldmath #1:}]#2} + +\def\@endprf#1{#1\end{trivlist}} + +% +% Standard proof envrionment: last line has a halmos at the right margin. +% Insert \qed to override default halmos placement. +% Incompatible with amsprf package! +% +\newif\ifneedqed +\global\needqedfalse +\@ifundefined{square}{\let\square\Box}{} % grumble latex2e +\def\QED{\ensuremath{{\square}}} +\def\markatright#1{\leavevmode\unskip\nobreak\quad\hspace*{\fill}{#1}} +\def\qed{\ifneedqed\markatright{\QED}\global\needqedfalse\else\null\fi} +\newproof{proof}{Proof\global\needqedtrue}[\qed] +\newproof{sketch}{Proof Sketch\global\needqedtrue}[\qed] + +% +% 'Fake' proof environment, for use with wrapfig and similar packages +% +\newenvironment{rawproof}% + {\begin{trivlist}\item[\hskip\labelsep\textbf{Proof:}\global\needqedtrue]}% + {\qed\end{trivlist}} + +% +% If the proof ends with a displayed equation, use \aftermath just +% before \end{proof} to put the halmos in the ``right'' place. +% Doesn't work worth a damn. +% +\def\aftermath{\par\vspace{-\belowdisplayskip}\vspace{-\parskip}\vspace{-\baselineskip}} + +% ---------------------------------------------------------------------- +% One-shot theoremish environment. For named things like ``Zorn's +% Lemma'' or ``The Death Leap Principle'' or ``The Zone Theorem''. +% To get one-shot proofish environment, put \normalfont inside. +% New improved version stolen from Erik Demaine. +% ---------------------------------------------------------------------- +\newenvironment{oneshot}[1]{\@begintheorem{#1}{\unskip}}{\@endtheorem} + +% Meh. +\def\Comment#1{\textsf{\textsl{$\langle\!\langle$#1\/$\rangle\!\rangle$}}} + +\def\beginc@de{\noindent\begin{center}\begin{minipage}{1in}\tt + \begin{tabbing}~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=~~~~\=\kill} +\def\endc@de{\end{tabbing}\end{minipage}\end{center}} + +\newenvironment{code}{\beginc@de}{\endc@de} + +% +% These only work with <1 line of text. Use sparingly!! +% +\def\textul#1{\underline{\smash{#1}\vphantom{.}}} +\def\strike#1{\ensuremath{\overline{\text{\smash{#1}\vphantom{.}}}}} + +% ---------------------------------------------------------------------- +% Include a file verbatim. Searches the TEXINPUTS path for the file, +% even though that's probably not what you really want. Stolen from +% ``verbatimfiles.sty'' by Chris Rowley and others. [Don't use their +% \vertbatimlisting macro; it has some bizarre side-effects!] +% ---------------------------------------------------------------------- +\def\verbinput#1{ +\begingroup\@verbatim\frenchspacing\@vobeyspaces\input#1\endgroup +} + +% ---------------------------------------------------------------------- +% \now -- Current time in h:mm AM/PM format +% \mdyy -- Today's date in m/d/yy format. Forget Y2K; this is for humans! +% ---------------------------------------------------------------------- +\newcount\timehh\timehh=\time +\divide\timehh by 60 +\newcount\timemm\timemm=\time +\count255=\timehh +\multiply\count255 by -60 +\advance\timemm by \count255 +\newif\iftimePM +\ifnum\timehh>11 \timePMtrue\else\timePMfalse\fi +\ifnum\timehh<1 \advance\timehh by 12\fi +\ifnum\timehh>12 \advance\timehh by -12\fi +\def\now{\number\timehh:\ifnum\timemm<10 0\fi\number\timemm + \iftimePM pm\else am\fi} +\newcount\mdYY\mdYY=\year +\count255=\year +\divide\count255 by 100 +\multiply\count255 by 100 +\advance\mdYY by -\count255 +\def\mdyy{\number\month/\number\day/\ifnum\mdYY<10 0\fi\number\mdYY} + + +% ---------------------------------------------------------------------- +% Notes to myself. The margin flags are broken, thanks to an +% incompatibility with the geometry package. +% ---------------------------------------------------------------------- +\def\n@te#1{\textsf{\boldmath \textbf{$\langle\!\langle$#1$\rangle\!\rangle$}}\leavevmode} +\def\n@tew@rn{\GenericWarning{}{AUTHOR WARNING: Unresolved \protect\note}} + +\def\n@ten@te#1{\marginpar + [\hfill\llap{\textcolor{red}{{#1}$\!\Longrightarrow$}}] + {\rlap{\textcolor{red}{$\Longleftarrow\!${#1}}}}} + +% Warning: The textcomp and mathdesign packages are incompatible! +%\def\n@tedingb@t{\@ifundefined{textmusicalnote} +% {$\maltese$} % if you don't have textcomp +% {\textmusicalnote}} % if you do have textcomp + +\def\n@tedingb@t{\textcircled{$\maltese$}} + +\def\note#1{\textcolor{red}{\n@tew@rn\n@te{\n@ten@te{\n@tedingb@t}#1}}} + +\def\sidenote#1{\marginpar{\tiny\textsf{#1}}} + +\setlength{\marginparsep}{0.1in} +\setlength{\marginparwidth}{\paperwidth} +\addtolength{\marginparwidth}{-\oddsidemargin} +\addtolength{\marginparwidth}{-\textwidth} +\addtolength{\marginparwidth}{-1.0\marginparsep} +\addtolength{\marginparwidth}{-1.0in} + +%---------------------------------------------------------------------- +% TODO sets enclosed text in a gray rectangle with a red border +% with small sans-serif text. +%---------------------------------------------------------------------- +\definecolor{TODOcolor}{cmyk}{0.05,0,0,0} +\definecolor{TODOtxtcolor}{cmyk}{0,1,1,0} + +\newenvironment{TODO} + {\fboxrule1.5pt\begin{lrbox}{\@tempboxa} + \begin{minipage}{0.9\columnwidth}\small\sffamily\color{TODOtxtcolor}} + {\end{minipage} + \end{lrbox} + \medskip\centerline{\fcolorbox{TODOtxtcolor}{TODOcolor}{\usebox{\@tempboxa}}} + \sidenote{\LARGE\color{Red}$\bigstar\bigstar\bigstar$}\medskip} + + +%---------------------------------------------------------------------- +% Bibliography aliases, so I can use mnemonic citation keys and +% geom.bib at the same time. \bibalias{foo}{bar} makes \cite{foo} +% act (almost) exactly like \cite{bar}. I don’t actually use this. +%---------------------------------------------------------------------- +\def\bibalias#1#2{% + \global\@namedef{b@#1}{% + {\@ifundefined{b@#2}{\textsf{?}}{}\csname b@#2\endcsname}}} + +% ---------------------------------------------------------------------- +% Draft notice. Put \DRAFT on the title page, in place of \date. +% ---------------------------------------------------------------------- +\def\draftnotice{Preliminary draft --- \mdyy\ --- Not for distribution} + +\def\DRAFT{ +\date{\fbox{\textsf{\textbf{\draftnotice}}}} +\def\@oddfoot{\footnotesize\hss\fbox{\textbf{\textsf{\draftnotice}}}\hss} +\let\@evenfoot\@oddfoot +} + + +%---------------------------------------------------------------------- +% 'cramped' list style, stolen from Jeff Vitter. Doesn't always work. +%---------------------------------------------------------------------- +\def\cramped + {\parskip\@outerparskip\@topsep\parskip\@topsepadd2pt\itemsep0pt +} + +%---------------------------------------------------------------------- +% More footnote symbols, please. +%---------------------------------------------------------------------- +\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or + \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger + \or \ddagger\ddagger \or \mathsection\mathsection \or + \mathparagraph\mathparagraph \else\@ctrerr\fi}} + +%---------------------------------------------------------------------- +% TeXbook style quotations -- I should really use the right font, tho. +%---------------------------------------------------------------------- +\newenvironment{rightquote}[1] +{\flushright\begin{minipage}{#1\textwidth} +\parskip0pt\footnotesize\sffamily\slshape} +{\end{minipage}\par\bigskip} +\def\quotee#1{\par\vspace{0.5ex}\begin{flushright}\unskip\textup{--- #1}\end{flushright}\unskip} + +%---------------------------------------------------------------------- +% Creative Commons license +%---------------------------------------------------------------------- +\def\CCLicense#1{\vfill\vbox to 0pt{\centering\tiny\sffamily \textcopyright\ Copyright \number\year\ Chao Xu.\\ This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (\url{http://creativecommons.org/licenses/by-nc-sa/4.0/}).\\ Free distribution is strongly encouraged; commercial distribution is expressly forbidden.\quad See {#1} for the most recent revision.\vss}} + + diff --git a/distribution.pdf b/distribution.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9f41da4d5a38af6c94196aa14982a39a9ef6352 GIT binary patch literal 64757 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%0DfSadT5+_Xd3ze5iRTk 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 literal 0 HcmV?d00001 diff --git a/distribution.tex b/distribution.tex new file mode 100644 index 0000000..5792c09 --- /dev/null +++ b/distribution.tex @@ -0,0 +1,34 @@ +\documentclass[12pt]{article} +\usepackage{chao} + +\title{Outlier Embedding Notes} + +\begin{document} + +\section{Better Distortion with Distribution} +There is a well known lowerbound for the distortion of embedding a finite metric $(X,d)$ into $\ell_1$. + +\begin{theorem} +For any finite metric $(X,d)$ on $n$ points, one has +\[(X,d) \lhook\joinrel\xrightarrow{\Omega(\log n)} \ell_1. \] +\end{theorem} + +For $\ell_2$ the lowerbound is still $\Omega(\log n)$ +\footnote{\url{https://web.stanford.edu/class/cs369m/cs369mlecture1.pdf}}. + +Recall that we want to find a $(O(k),(1+\e)c)$-outlier embedding into $\ell_2$ for any finite metric $(X,d)$ which admits a $(k,c)$-outlier embedding into $\ell_2$. If we can do this deterministically, we actually find an embedding of the outlier points into $\ell_2$ with distortion $O(k)$, which contradicts the lowerbound. However, maybe we can do $O(k)$ via embedding into some distribution of $\ell_2$ metrics. + +Let $(X,d)$ be a finite metric and let $\mathcal Y=\{ (Y_1,d_1),\ldots (Y_h,d_h) \}$ be a set of metrics where $|X|=|Y|=n$. Let $\pi$ be a distribution on $\mathcal Y$. The original metric $(X,d)$ embeds into $\pi$ with distortion $D$ if there is an $r>0$ such that for all $x,y\in X$, +\[r\leq \frac{\E[d_i(x,y)]}{d(x,y)}\leq Dr.\] + +SODA23 paper also embeds $(X,d)$ into distribution. + +\subsection{Example: Random Trees} +Consider the problem of embedding some finite metric into a tree metric. We can get an $O(n)$ lowerbound via the unit edge length cycle $C_n$. However, if embedding into distortions is allowed, we can do $O(\log n)$. + +\begin{theorem}[Bartal] +Let $(X,d)$ be a metric on $n$ points with diameter $\Delta$, let $\mathcal D T$ be the set of tree metrics that dominate $d$, there is a distribution $\pi$ on $\mathcal D T$ such that $(X,d)$ embeds into $pi$ with distortion $O(\log n\log \Delta)$. +\end{theorem} + + +\end{document} \ No newline at end of file diff --git a/ref.bib b/ref.bib new file mode 100644 index 0000000..29acf9b --- /dev/null +++ b/ref.bib @@ -0,0 +1,29 @@ + +@inproceedings{guruswami_approximating_2013, + address = {USA}, + series = {{SODA} '13}, + title = {Approximating non-uniform sparsest cut via generalized spectra}, + isbn = {978-1-61197-251-1}, + urldate = {2025-05-18}, + booktitle = {Proceedings of the twenty-fourth annual {ACM}-{SIAM} symposium on {Discrete} algorithms}, + publisher = {Society for Industrial and Applied Mathematics}, + author = {Guruswami, Venkatesan and Sinop, Ali Kemal}, + month = jan, + year = {2013}, + pages = {295--305}, + file = {PDF:/Users/congyu/Zotero/storage/KTL74XSC/Guruswami and Sinop - 2012 - Approximating Non-Uniform Sparsest Cut via Generalized Spectra.pdf:application/pdf}, +} + +@inproceedings{chawla_composition_2023, + series = {{SODA} '24}, + title = {Composition of nested embeddings with an application to outlier removal}, + doi = {10.1137/1.9781611977912.66}, + urldate = {2025-05-23}, + booktitle = {Proceedings of the 2024 {Annual} {ACM}-{SIAM} {Symposium} on {Discrete} {Algorithms}}, + publisher = {Society for Industrial and Applied Mathematics}, + author = {Chawla, Shuchi and Sheridan, Kristin}, + month = nov, + year = {2023}, + pages = {1641--1668}, + file = {PDF:/Users/congyu/Zotero/storage/YZHHFAEP/Woodruff - 2024 - Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA).pdf:application/pdf;Preprint PDF:/Users/congyu/Zotero/storage/THAKCRSF/Chawla and Sheridan - 2023 - Composition of nested embeddings with an application to outlier removal.pdf:application/pdf;Snapshot:/Users/congyu/Zotero/storage/XALRHUB8/2306.html:text/html}, +}