> For the complete documentation index, see [llms.txt](https://sliu583.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sliu583.gitbook.io/blog/specific-work/seminar-and-talk/mlsys/episode-18.md).

# Episode 18

### Structure is all you need

* Software 2.0 for data quality management&#x20;
* Theodoros Rekatsinas | UW-Madison&#x20;

### The Notorious data quality problem&#x20;

![](/files/-MWez17ODiXCl9a_9Vxk)

### Data quality management task&#x20;

#### Error detection tasks&#x20;

* Tuple (sample) validation
* Cell-value validation&#x20;

#### Data repairs&#x20;

* Missing data imputation
* Data repairs (value replacement)&#x20;

![](/files/-MWezRO6gYhoHaNtDZee)

* Push to ML model?&#x20;

### ML models are sensitive to low-quality data&#x20;

![](/files/-MWezd0SAOiqQAQBUETm)

### Goal: Streamline data quality management&#x20;

![](/files/-MWezkW09JtXointpP-I)

* Marius: graphs, heteregeneous-structure data&#x20;

### Example: data validation for mean estimation&#x20;

![](/files/-MWf-2mJTWHN1uV5RkxO)

![](/files/-MWf-8Ez-MvOybvGbASb)

* Discrepancies between two estimate&#x20;

![](/files/-MWf-GnHINE4H2KKfEki)

* Filling some of the values, and leaving the others&#x20;

![](/files/-MWf-OyNhibG6eVRcjic)

* If know this dependency in advanced, then we could make better estimate&#x20;

### Structure-aware data cleaning is necessary&#x20;

![](/files/-MWf-ZRJzWLMKld9kr-N)

### Heterogeneous types of structure&#x20;

![](/files/-MWf-ou1_-s1-hmtWjJ4)

### Contextual ML for automated data quality&#x20;

![](/files/-MWf0-2jHg2_iOw59QHx)

* Unsupervised manner?&#x20;
  * Can I run this inference queries fast &#x20;

![](/files/-MWf09BHKEzQjN1q4Xnc)

### HoloClean: Probabilistic Data Repairs&#x20;

![](/files/-MWf0bMy82SS-ymUass4)

![](/files/-MWf0iHeYNME52PPdUnw)

### ("Take two")&#x20;

![](/files/-MWf12DYsxWel-KP4Wvr)

### Schema-level Attention&#x20;

![](/files/-MWf1B1zzdchsvQ82QEi)

### Why Attention?&#x20;

![](/files/-MWf1M6_vyQGu9XR_JdS)

### Naturally-occurring missing data

![](/files/-MWf1eSwbEd0BtOIGlAB)

### Use case: Data Categorization&#x20;

![](/files/-MWf1uwvNwbhKjHK7L7k)

### Other use cases

* Error detection in demographic data used for policy decision
* KIP tracking
* Imputation of numerical data for industrial machinery monitoring&#x20;

### Picket: self-supervised transformers for data validation in ML pipelines&#x20;

![](/files/-MWf2PuQGHupL_1B2VkH)

![](/files/-MWf2f2DVRQW0eitqtIK)

![](/files/-MWf2ik6OQkBGQJaty1K)

### Loss-based Outlier Detection and Filtering&#x20;

1. Go back to the idea of learning a model to capture the clean data, and use this model in decisions&#x20;
   1. PicketNet: transformer&#x20;
   2. Outlier detection problem&#x20;

![](/files/-MWf33YRQ55W2EjvPPgt)

### PicketNet: two-stream transformer for tabula data&#x20;

![](/files/-MWf3GIiwG0prknqXffn)

* Benefits:&#x20;
  * Value stream: flexibility
  * Schema stream: regularization&#x20;

### Experimental Highlights: Poisoning Attacks

* Aim to destroy&#x20;

![](/files/-MWf3VQx0mHXZEa7-xrH)

### Contexual ML for automated data quality ops&#x20;

![](/files/-MWf48HAz6jHot6nNsYT)

### Scalable no-code graph learning&#x20;

![](/files/-MWf4Sv7uBxrNJNZCq7X)

![](/files/-MWf4nZthkeKoy1bi09s)

* Systematic variation of the data?
  * Types of noise: real-world data, no assumption about the noise. Types of noise can be random, or systematic error (integrating things across different sources)&#x20;
    * Random
    * Systematic: repeated instances of the noise, if we condition, then it's not random&#x20;
    * Adversarial noise: are aware of the downstream task, and go and attack that system&#x20;
* Holoclean&#x20;
  * Attention: handle this gracefully, pick up the type of strong bias
* Picket:
  * Worst-possible case (Adversarial)&#x20;
  * Not overfitting to examples&#x20;
* Distinguish between out-of-distribution or systematic change
  * Solution: two streams (scheme, value)
    * Value: robust towards the case. Kernel structure that operates on this level.&#x20;
  * Profiling mechanism
* Hetereogeneous data types&#x20;
  * Tabula data: higher level constraints&#x20;
    * Encode them as functional dependencies in DB
    * or pick them up through attention mechanism&#x20;
    * Back in the day: user specification&#x20;
  * Structure learning over the data
    * Exactly the attention matrix, in a faster and cheaper way&#x20;
  * Hetereogenous
    * Same mechanism can potentially hold for a graph&#x20;
    * Running structural learning type of profiling&#x20;
      * Identify homogenous area as a pre-processing step&#x20;
      * And preprocessing ...
      * Filtering away and keep&#x20;
    * Doing this heavily in Holoclean
* Monitor data and see if something is going on in the data pipeline&#x20;
  * Reliable data
  * How that setting is different? Or some of the goals change?
    * Reconstruction&#x20;
      * Signal and context&#x20;
      * With high confidence, then it should be outlier&#x20;
    * Information about the likelihood&#x20;

Goal:

* applying the rules at scale (ETL, ...)&#x20;
* Start-up and companies: specific problem&#x20;
  * Identify duplicates in records&#x20;
  * Infer rules to prepare and standardize&#x20;
  * AI --> platform for error detection and fixing&#x20;
* Nobody is targeting
  * Automating this&#x20;
  * Position: reasoning about noisy structured data&#x20;

Challenges and what that issue looks like:

* What is the model doing? Aspects&#x20;
  * Attention: interpretable (know the semantics of the attributes, put more weights or less)
  * Allow people not immediately accept them. Have confidence over the prediction of the model.&#x20;
    * Accept the one that makes sense&#x20;
* Also, allow users to introduce business /external features that would allow you to introduce&#x20;

Holoclean

* Accept logic rules, convert them to features&#x20;
* Support matching functions&#x20;

Which one should I trust?

* Ensemble (weighted vote)
* In real cases, people believe their rules...&#x20;
