Машинное обучение для недоумевающих, часть 1

С увеличением объемов данных, генерируемых предприятиями, полагаться на статические системы принятия решений, основанные на правилах, уже не представляется конкурентоспособным; вместо этого существует беспрецедентная возможность оптимизировать решения и адаптироваться к изменяющимся условиям за счет использования закономерностей в реальном времени и исторических данных.

Однако сам размер данных не позволяет людям находить эти шаблоны, и это привело к взрыву интереса отрасли к области машинного обучения, которая является наукой и практикой разработки компьютерных алгоритмов, которые, в широком смысле, находят закономерности в больших объемах данных. Машинное обучение особенно важно в цифровом маркетинге: понимание того, как использовать огромные объемы данных о цифровой аудитории и медиа, которые они потребляют, может быть разницей между успехом и неудачей для крупнейших мировых брендов. В MediaMath, где я являюсь старшим вице-президентом по науке о данных, наше видение состоит в том, чтобы каждое адресное взаимодействие между маркетологом и потребителем управлялось оптимизацией машинного обучения на основе всех доступных актуальных данных на данный момент, чтобы максимизировать долгосрочные бизнес-результаты маркетолога.

В этой серии сообщений в блоге мы представим очень простое, нетехническое введение в машинное обучение. В сегодняшней статье мы начнем с определения ML в форме диалога между вами и экспертом по ML. Когда мы говорим «вы», мы имеем в виду кого-то, кто не является экспертом или практиком машинного обучения, но кто-то, кто слышал о машинном обучении и хочет узнать больше.

Можем ли мы начать с самого начала? Что такое машинное обучение?

Машинное обучение — это процесс, с помощью которого компьютерная программа улучшает свою производительность при выполнении определенной задачи с опытом, не получая явных инструкций или правил о том, что делать.

Понятно, вы говорите, что программа «учится» повышать свою производительность.

Да, именно поэтому машинное обучение является ответвлением искусственного интеллекта, поскольку обучение — один из фундаментальных аспектов интеллекта.

Когда вы говорите «с опытом», что вы имеете в виду?

По мере того, как программа получает «практику» в выполнении задачи, со временем она становится лучше, подобно тому, как мы, люди, учимся лучше справляться с задачами с опытом. Например, программа ML может научиться распознавать изображения кошек, когда ей показывают достаточно большое количество примеров изображений «кошка» и «не кошка». Или система автономного вождения учится ориентироваться на дорогах после обучения человека на различных типах дорог. Или система ставок в реальном времени может научиться предсказывать склонность пользователей к конверсии (т. е. к совершению покупки) при просмотре рекламы после наблюдения за большим количеством исторических примеров ситуаций (т. е. комбинаций пользовательские, контекстные, географические, временные, атрибуты сайта), где пользователи совершили конверсию или нет.

Вы сказали "без явных указаний". Не могли бы вы немного рассказать об этом?

Да, это очень важное различие между программой машинного обучения и программой с правилами, закодированными человеком. Как видно из приведенных выше примеров, система машинного обучения в целом должна реагировать на огромное множество возможных ситуаций: например, реагировать «кошка», когда показывается изображение кота, или повернуть руль в правильном направлении, реагируя на визуальное представление дороги, или вычислить вероятность конверсии при заданной комбинации характеристик рекламного показа. Само разнообразие количества возможных входных изображений, или дорожных условий, или впечатлений огромно. Если бы у нас не было алгоритма машинного обучения для этих задач, нам пришлось бы предугадывать все возможные входные данные и программировать явные правила, которые, как мы надеемся, будут соответствующими ответами на эти входные данные.

Я до сих пор не понимаю, почему для этих задач сложно написать явные правила. Люди очень хорошо распознают кошек, так почему же люди не могут написать правила, чтобы распознавать кошку?

Это отличный вопрос. Это правда, что люди преуспели в обучении определенным задачам, например узнавать кошек, узнавать почерк или водить машину. Но вот парадокс — хотя мы отлично справляемся с этими задачами, процесс, с помощью которого мы их выполняем, нельзя свести к набору правил, даже если нам разрешено писать огромное количество правил. Итак, это примеры задач, для которых невозможно написать явные правила.

С другой стороны, есть задачи, с которыми люди не справляются даже хорошо: например, попытка предсказать, какие типы пользователей и в каком контексте будут конвертироваться при просмотре рекламы. Специалисты по маркетингу могут иметь интуитивное представление о том, какие условия приводят к большему количеству конверсий, например, "пользователи, посещающие мой сайт по воскресеньям, когда идет дождь, с вероятностью 10 % купят мой продукт". Однако проблема заключается в том, что эти правила, основанные на интуиции, могут быть неправильными и неполными (т. е. не охватывать все возможные сценарии). Единственный способ придумать правильные правила — это изучить миллионы примеров того, как пользователи конвертируются или нет, и извлечь из них шаблоны, что и может сделать система машинного обучения. Такое извлечение паттернов выходит за рамки возможностей человека, даже несмотря на то, что они хороши в некоторых других типах извлечения паттернов (например, зрительных или слуховых).

Понятно, поэтому машинное обучение полезно в задачах, где (а) требуется ответ на огромное количество возможных входных данных и (б) невозможно или нецелесообразно жестко запрограммировать правила, которые достаточно хорошо работали бы на большинство входов. Есть ли примеры, когда количество возможных входных данных огромно, но легко написать жестко запрограммированные правила?

Конечно: я дам вам число, вы можете сказать, четное оно или нечетное? Теперь вам не понадобится программа ML для этого!

Этот пост изначально появился в MediaMath blog. В следующем посте мы сделаем первый шаг к пониманию того, как на самом деле работают алгоритмы машинного обучения.