Привет, это команда направления анализа данных Яндекс Практикума.
В этой статье мы расскажем немного об основах машинного обучения: покажем, как подобрать задачу для обучения и таким образом посмотреть на процесс через призму бизнеса. Материал будет полезен не только начинающим дата-сайентистам, но и руководителям, которые задумываются о внедрении машинного обучения в бизнес-процессы.
Статью помогли подготовить:
Сергей Комаров
Специалист по машинному обучению в компании «Ингосстрах» и старший ревьюер на курсе «Специалист по Data Science» в Яндекс Практикуме
Антон Моргунов
Инженер по машинному обучению в «Базис-Центре» и Curriculum Lead курса «Инженер по машинному обучению»
Перед тем как объяснить, где и как можно применять машинное обучение, коротко опишем основные понятия этой статьи: машинное обучение, обученная модель, алгоритм, накопленные данные, закономерность.
Что такое машинное обучение
Благодаря созданию и развитию искусственного интеллекта (ИИ) компьютер теперь может решать множество задач: прогнозировать колебания рынка, предлагать пользователю подходящие товары и фильмы, предсказывать кибератаки и фильтровать спам. Чтобы эти задачи можно было выполнить, специалисты обучают компьютер, то есть занимаются машинным обучением.
Машинное обучение (МО) — это создание алгоритмов, с помощью которых машина может обобщить какой-либо опыт и найти для известных случаев закономерности. Например, ИИ может научиться находить аномалии на снимках КТ или МРТ и определять, здоров ли пациент. По результату МО мы получаем модель, которую можно использовать для автоматизированного или полуавтоматизированного принятия решений.
Обученная модель — это своего рода компьютерная программа, отражающая искомую закономерность. С помощью такой модели можно применять найденную зависимость к новым частным случаям.
Пример:
Обученная модель может определить по истории поиска клиента, заинтересуется ли клиент рекламой компании. Компания «Авито» в 2015 году проводила соревнования по машинному обучению, где с помощью алгоритмов машинного обучения нужно было найти закономерности для пользователя между их историей поиска на сайте и реакцией на объявления с контекстной рекламой. Такую закономерность можно использовать, чтобы показывать рекламные объявления именно тем пользователям, которым эта реклама будет интересна. Это не только повышает эффективность самóй рекламы, но и улучшает опыт пользовательского взаимодействия с сервисом.
Итак, к машинному обучению прибегают, чтобы выявлять полезные закономерности. А для этого, в свою очередь, требуются алгоритмы обучения и накопленные данные об объекте наблюдения.
Суммируя, задача для машинного обучения всегда имеет три составляющие:
закономерность, которая существует в явном и неявном виде;
набор репрезентативных данных, внутри которых прослеживается закономерность;
алгоритмы (или модели), которые на основе данных выявляют закономерность.
Рассмотрим каждую из этих составляющих подробнее.
Как работать с закономерностью
Закономерностью мы будем называть некий набор признаков и их значений, на основании которых можно строить выводы. Признаки могут быть совершенно разными.
Пример:
Возраст человека — признак, который учитывается при расчёте стоимости страхового полиса. Значения этого признака могут с некоторым допущением варьироваться в диапазоне от 1 до 100. Закономерность, скрывающаяся в признаке возраста, может быть такая: чем старше страхующий, тем выше риск проблем со здоровьем.
Хорошо, когда закономерность несложная: её легко обнаружить или уже есть эксперты, которые могут её описать. Но порой встречаются трудности:
Закономерности вообще не существует.
Закономерность слишком сложная, чтобы её обобщить для практического применения. Исчерпывающе описать опыт не получается.
Закономерность меняется с течением времени.
Если закономерность меняется, нужно обновлять и модель с учётом актуального опыта. Например, если онлайн-магазин выходит на рынок другой страны, то новые покупатели могут иметь иные предпочтения и другое поведение. Но это не конец света! Актуализировать текущую закономерность можно в автоматическом режиме — это позволяет обновлять модели так часто, как это требуется.
В каких задачах можно находить закономерности с помощью МО
Есть два «кита» применения МО: прогнозирование процессов, чтобы сделать их более управляемыми и эффективными, и автоматизация рутинных действий. Прогнозировать можно что угодно: от спроса на конкретные товары и услуги до стоимости этих товаров и услуг. Рутинные операции, которые часто выполняются людьми, могут быть переданы компьютеру. Это быстрее и дешевле.
Вспомните ваш опыт, когда вы регистрировали свой паспорт или водительское удостоверение в новом приложении по каршерингу. Буквально за 5 минут после того, как вы сфотографировали свой документ, данные с него переносятся в систему и вам открывается доступ. Эту операцию с высокой долей вероятности выполняют технологии, а не люди.
Но машинное обучение не панацея. Бывают случаи, когда нельзя получить такой прогноз, который был бы полезен бизнесу. Накопленные данные не всегда достаточно подробные, а иногда их вообще никак не получить.
Пример:
Сейчас идёт большая дискуссия о том, можно ли данные о здоровье человека отдавать третьим лицам, будь то работодатель или банк, выдающий кредит. Ведь имея эти данные, компании могут увидеть риски, которые не были им доступны ранее. На основании них будут приниматься такие решения, которые могут не всегда быть в пользу соискателя работы или заёмщика.
Пользу от применения машинного обучения можно измерить в финансовом эффекте, который определяет важность и качественность предсказаний: сократятся ли затраты, вырастет ли прибыль.
Как собрать данные для поиска закономерностей
Данные для МО должны содержать достаточно подробную информацию об уже известных случаях. Если вы попытаетесь создать модель, которая сможет определить, пришло ли нормальное письмо или спам, то данные для обучения модели должны включать исчерпывающий набор и тех и других видов писем.
Сбор данных для решения задачи может занять время: нужно организовать сбор и хранение, проанализировать новую информацию, определить достаточность данных. Чтобы достичь хороших результатов при обучении моделей, могут потребоваться десятки тысяч примеров. Собрать эти данные непросто, но возможно. Иногда можно использовать готовые модели, обученные другими специалистами на собранных ими данных.
Достаточно популярный в профессиональной среде портал Hugging Face содержит более 200 тысяч предобученных моделей для самых разных задач. На Hugging Face вы можете в том числе протестировать готовые предобученные модели. Вы можете посмотреть, например, на результат работы модели toxic-bert. Эта модель определяет, насколько токсичен текст. Если вам нужно определить уровень негатива в комментариях к постам вашей компании, то вот оно, решение. Забирай и подключай =)
Работа с предобученными моделями касается чаще всего простых задач, связанных с автоматизацией. Для более сложных задач готовые модели можно модернизировать, дообучать. Как правило, при этом требуется меньше данных, чем если бы модель для решения задачи обучали с нуля.
Сами данные могут быть разными: тексты, изображения, видео, аудио, таблицы, даже рентгеновские снимки древних манускриптов. С последними связано соревнование с самыми большими на сегодняшний день призовыми деньгами на популярной платформе для соревнований по машинному обучению Kaggle. Да-да, создав качественную модель, вы получите очень достойный гонорар за свою работу. Машинное обучение, в принципе, хорошо оплачиваемая сфера.
Кстати, на Kaggle можно посмотреть, для решения каких реальных задач используют машинное обучение, какие соревнования организуют, и, проведя параллели, найти, где МО может быть полезно вам.
Иногда данные можно дополнительно обогатить информацией из внешних источников, что поможет в поиске закономерностей. Например, найти и скачать нужные изображения в Google Images или Яндекс Картинках. Но в таком случае понадобится обогатить соответствующим образом и те данные, которые вы будете передавать в готовую модель для предсказаний, наладить соответствующие процедуры. Иначе найденную закономерность просто не получится использовать.
Расскажем немного больше о том, какие типы данных можно использовать для поиска закономерностей.
Какие данные можно использовать для поиска закономерностей
Мы уже упомянули ранее, что данные могут быть совершенно разной природы: от таблиц и текстов до изображений и видео. Разберём подробнее принципы МО, которые применимы к любому типу данных, на примере таблиц или, как их ещё называют специалисты, табулированных данных.
Строка в таблице — упорядоченная числовая последовательность фиксированной длины. Почему фиксированной? Потому что количество столбцов в таблице конечное. Другими словами, для каждой строки (или записи в таблице) есть n-ное количество столбцов, характеризующее эту запись. Столбцы — это признаки, или фичи объекта, которому соответствует эта запись в данных, а само число — значение соответствующего признака.
Пример:
У компании появился новый клиент, который с течением времени оставил историю своих покупок и просмотров. Данные об истории этого клиента попадают в таблицу в виде новой строки, или записи. А что насчёт признаков? Признаки, которые описывают клиента и хранятся в таблице, могут быть следующие: локация, где находится пользователь, тип его устройства, просмотренные категории товаров, средняя стоимость покупки, частотность покупок. Информации может быть крайне много. Мы лишь дали ориентир, чтобы вы смогли лучше понять, что есть запись и признаки в табличных данных.
Математически записи об объектах можно рассмотреть как векторы в некотором пространстве. Модель машинного обучения часто не может принять эти векторы в том виде, в котором они находятся в таблице, поэтому их переводят в формат, подходящий для использования алгоритмов машинного обучения. Этот этап называется обработка и трансформация данных (data preprocessing/wrangling). Сравнительно сложная информация, такая как текст, может быть трансформирована различными способами, что даёт специалистам поле для экспериментов.
Когда речь идёт о прогнозировании, признак, предсказание которого предполагает задача, называется целевым признаком, или таргетом (target).
Пример:
Вы хотите предсказать, вернёт ли клиент банка заём. При этом у банка есть информация о займах по множеству клиентов и по тому, был ли возвращён заём. Используя историю клиента и актуальную информацию о нём, вы можете предположить с некоторой вероятностью, выплатит ли клиент долг. Вы подсказываете класс: будет или не будет возвращён заём.
Можно также построить модель, которая предскажет, какой процент от займа клиент вернёт банку, где 0% — не вернёт ничего, и 100% — вернёт полностью. Такого рода задачи называются задачей регрессии.
Когда модель обучена на данных, ей на вход подают набор известных, идентичных тем, что использовались при обучении. На выходе получают предсказание. Сначала это значение неизвестно, иначе предсказывать его было бы нецелесообразно.
Признаки же, наоборот, должны быть известны и доступны. Важно учитывать этот момент при выборе прогнозирующих признаков для обучения модели, оценивая, могут ли они быть определены на момент предсказания для новых частных случаев.
Как выбрать алгоритм для поиска закономерностей
Все задачи машинного обучения можно разделить на несколько типов и исходя из этого выбрать алгоритм для поиска закономерностей.
Обучение с учителем
Обучение с учителем — самый распространённый тип задач в МО. Связан с прогнозированием. Данные в таком случае содержат значения для признаков-предикторов, известных на момент предсказания, и соответствующие им значения целевого прогнозируемого признака (таргета). Другими словами, на этапе обучения модели уже есть исторический набор данных, где тот признак, который предсказывают, доступен.
Пример:
Предсказание возврата займа — задача для обучения с учителем. Вы уже знаете по каждому заёмщику, вернул ли он заём и, если не вернул, сколько именно не было возвращено.
Задачи из класса обучения с учителем делятся на две основные группы: задачи классификации (например, токсичность комментариев) и регрессии (например, заём в банке). Такие задачи уже упоминались выше.
Принципиальное различие между задачами регрессии и классификации заключается в природе предсказываемого признака — число или класс:
Если вы хотите предсказать какую-то количественную, измеряемую величину, например продолжительность поездки в такси, то решается задача регрессии. Посмотрите на задачу из соревнования New York City Taxi Trip Duration — там как раз предсказывали продолжительность поездки в такси.
Если предсказываемое значение нельзя количественно измерить, оно отражает принадлежность к той или иной группе, то такая задача относится к классификации. Пример такой задачи — Homesite Quote Conversion — предсказание покупки клиентом предлагаемого ему тарифа страхования недвижимости. Здесь предсказывается не измеримая величина, а принадлежность к одной из двух категорий: те, кто купили страховку по предлагаемому тарифу, и те, кто отказался от предложения.
Обучение без учителя
Машинное обучение можно использовать не только для предсказаний. Алгоритмы обучения без учителя не предсказывают значение какого-то из признаков, соответственно, здесь нет таргета и предикторов. Эти алгоритмы исследуют структуру данных, взаимосвязи между объектами. Как правило, обучение без учителя используется для аналитики или помогает решить задачи обучения с учителем.
Пример:
Кластеризация — объединение похожих записей в группы, или кластеры — выполняется с помощью алгоритмов обучения без учителя. Кластеризацию часто используют, чтобы группировать похожих между собой пользователей. Тогда клиентам из одного кластера можно будет показывать схожие скидки или рекомендации.
Пример:
Если требуется преобразовать имеющиеся признаки, то алгоритмы обучения без учителя могут трансформировать записи в таблице с данными так, что каждая запись будет представлена меньшим числом признаков (столбцов), но при этом информация не потеряется. Это поможет безопасно сжать данные, что, в свою очередь, экономит оперативную память компьютера при обучении моделей с учителем.
Благодаря методам понижения размерности, можно также визуализировать сложные многомерные данные. Так мог бы выглядеть набор данных для задачи с прогнозированием дефолта по банковскому займу.
Отдельно стоит выделить задачи обнаружения аномалий. Если нужно предсказать какое-то сравнительно редкое явление, например мошенничество в банке, может быть полезно использовать обучение без учителя, а именно алгоритмы детекции аномалий. Эти алгоритмы помогут обнаружить нетипичные объекты, выделяющиеся из общей структуры. На практике такие методы могут использоваться как самостоятельно, так и в комбинации с более распространёнными методами.
Обучение с подкреплением
Всё, о чём рассказывалось в статье ранее, относится главным образом к классическому машинному обучению. В отличие от классического машинного обучения, для обучения с подкреплением не используют входные данные в виде конечного количества пар «описание известного случая — соответствующее значение целевого признака».
Предполагается, что алгоритм, не имея доступа к информации о правильных и неправильных действиях, путём проб и ошибок итеративно взаимодействует с некоторой средой. Цель алгоритма — найти стратегию взаимодействия со средой, которая обеспечит алгоритму максимальный выигрыш (некоторый численный сигнал). При этом действия в среде определяют не только выигрыш, но и могут влиять на саму среду, изменять её.
Наглядный пример обучения с подкреплением рассматривается в этой статье, а погрузиться в теоретические аспекты можно в онлайн-учебнике по машинному обучению от ШАД. Обучение с подкреплением — обширная тема, которая позволяет решать непростые бизнес-задачи. Обычно к изучению обучения с подкреплением переходят тогда, когда уже хорошо усвоены алгоритмы обучения с учителем и без, ведь именно они покрывают наибольшую часть потребностей рынка.
Если вы хотите научиться работать с данными и алгоритмами машинного обучения для решения практических задач, то вы можете освоить новую профессию на курсе «Специалист по Data Science» от Яндекс Практикума.