глоссарий

Co-training

Co-training

Co-training — это метод полуавтоматического обучения, при котором две модели обучаются одновременно на разных наборах признаков одного и того же объекта и помогают друг другу размечать новые данные. Проще говоря, это такой подход, когда два «ученика» смотрят на одну задачу с разных сторон и подсказывают друг другу ответы, постепенно повышая общую точность.

Важность этого метода в том, что он решает главную боль машинного обучения — нехватку размеченных данных. Разметка вручную стоит дорого и долго, а неразмеченных данных вокруг огромное количество. Co-training позволяет использовать эту массу «сырья», извлекая из него пользу без участия человека, что особенно ценно в узких областях, где эксперты на вес золота.

Как это работает на интуитивном уровне? Представьте двух аналитиков. Один изучает текст рецензии, другой — только заголовок. Сначала оба обучаются на небольшом наборе отзывов, где уже проставлены оценки. Затем каждый берёт неразмеченные отзывы, находит те, в которых уверен больше всего, и передаёт свои догадки напарнику. Тот добавляет их в свой обучающий набор и становится чуть умнее. Процесс повторяется, пока оба не достигнут стабильного результата. Ключевое условие — признаки должны быть независимыми: то, что видно в тексте, не должно полностью совпадать с тем, что видно в заголовке, иначе подсказки будут бесполезны.

Прикладной пример: фильтрация спама в электронной почте. Одна модель анализирует тело письма, вторая — его тему. Имея лишь сотню размеченных писем, они вместе обрабатывают миллионы непомеченных. Модель по теме замечает типичные спам-фразы, добавляет письмо в набор «спам», и модель по телу учится на этом примере. Так без ручной работы охватывается колоссальный массив данных.

Вывод: co-training — элегантный способ втянуть в обучение неразмеченные данные, объединяя две точки зрения. Метод требует, чтобы признаки были по-настоящему разными, но когда это условие выполнено, он даёт заметный рост точности при минимальных затратах на разметку.