  Fuzzy similarity join is an important database operator widely used in
practice. So far the research community has focused exclusively on optimizing
fuzzy join \textit{scalability}. However, practitioners today also struggle to
optimize fuzzy-join \textit{quality}, because they face a daunting space of
parameters (e.g., distance-functions, distance-thresholds,
tokenization-options, etc.), and often have to resort to a manual
trial-and-error approach to program these parameters in order to optimize
fuzzy-join quality. This key challenge of automatically generating high-quality
fuzzy-join programs has received surprisingly little attention thus far.
  In this work, we study the problem of "auto-program" fuzzy-joins. Leveraging
a geometric interpretation of distance-functions, we develop an unsupervised
\textsc{Auto-FuzzyJoin} framework that can infer suitable fuzzy-join programs
on given input tables, without requiring explicit human input such as labeled
training data. Using \textsc{Auto-FuzzyJoin}, users only need to provide two
input tables $L$ and $R$, and a desired precision target $\tau$ (say 0.9).
\textsc{Auto-FuzzyJoin} leverages the fact that one of the input is a reference
table to automatically program fuzzy-joins that meet the precision target
$\tau$ in expectation, while maximizing fuzzy-join recall (defined as the
number of correctly joined records).
  Experiments on both existing benchmarks and a new benchmark with 50
fuzzy-join tasks created from Wikipedia data suggest that the proposed
\textsc{Auto-FuzzyJoin} significantly outperforms existing unsupervised
approaches, and is surprisingly competitive even against supervised approaches
(e.g., Magellan and DeepMatcher) when 50\% of ground-truth labels are used as
training data.
