Co-Training

Co-Training is a semi-supervised learning algorithm that trains two models on two different "views" (independent feature sets) of the same data, with each model teaching the other by labeling its most confident predictions — exploiting the principle that when two sufficient and independent views agree on an unlabeled example, that prediction is highly reliable, enabling learning from very small labeled datasets by leveraging the structure of multi-view data.

What Is Co-Training?

  • Definition: A semi-supervised method (Blum & Mitchell, 1998) that splits features into two independent subsets (views), trains a separate classifier on each view, and iteratively expands the labeled set by having each classifier label the examples it is most confident about for the other classifier.
  • The Key Insight: If two different feature sets independently support the same prediction, that prediction is almost certainly correct. This "agreement" signal from independent views is stronger than any single model's confidence.
  • The Requirement: The two views must be (1) sufficient — each view alone can learn a good classifier, and (2) conditionally independent — given the label, the views provide independent evidence.

The Classic Example: Web Page Classification

ViewFeaturesRationale
View 1 (Content)Text on the web page itselfDescribes the page's own content
View 2 (Links)Anchor text of hyperlinks pointing TO the pageDescribes how others perceive the page

These views are naturally independent — what a page says about itself vs. what other pages say about it.

Co-Training Algorithm

StepActionResult
1. InitializeTrain Model A on View 1 (labeled data), Model B on View 2 (labeled data)Two weak classifiers
2. PredictEach model predicts labels for all unlabeled examplesConfidence scores for each example
3. SelectEach model picks its top-k most confident predictionsHigh-confidence pseudo-labels
4. TeachAdd Model A's confident examples to Model B's training set (and vice versa)Expanded training sets
5. RetrainRetrain both models on their expanded training setsImproved classifiers
6. RepeatIterate steps 2-5 until convergence or budget exhaustedProgressively better models

Why Two Models Beat One

ScenarioSingle Model (Self-Training)Co-Training (Two Views)
Error propagationModel reinforces its own mistakesIndependent views catch each other's errors
DiversityOne perspective on the dataTwo complementary perspectives
Confirmation biasHigh risk — same model generates and learns from pseudo-labelsLower risk — different feature spaces reduce correlated errors
RequirementAny featuresNeeds two sufficient, independent views

Co-Training vs Other Semi-Supervised Methods

MethodApproachKey AdvantageLimitation
Co-TrainingTwo models on two views teach each otherExploits multi-view structure, reduces confirmation biasRequires naturally independent feature views
Self-TrainingOne model labels its own dataSimplest approach, no view requirementHigh confirmation bias risk
Pseudo-LabelingHard labels from confident predictionsFramework-agnosticSame bias as self-training
MixMatchConsistency regularization + pseudo-labelsState-of-the-art accuracyComplex implementation
Label PropagationGraph-based label spreadingWorks with any similarity metricExpensive for large datasets

Real-World Applications

DomainView 1View 2
Web classificationPage text contentInbound link anchor text
Email spamEmail body textEmail header metadata
Named entity recognitionLocal word contextBroader document context
Image + textImage featuresCaption text
Medical imagingMRI scanPatient clinical notes

Co-Training is the foundational multi-view semi-supervised learning algorithm — leveraging the agreement between two independent feature views to generate reliable pseudo-labels with lower confirmation bias than single-model self-training, enabling effective learning from tiny labeled datasets when data naturally admits two sufficient and independent views.

Take co-training further

Ask the copilot about this term, or have our engineers assess it against your process.