Машинное обучение без данных

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

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

Что, если бы у нас было “МО без данных”, где наборы обучающих единиц информации поступали бы извне масштабируемым способом, а модели машинного обучения сразу приводились бы в действие, не требуя каких-либо внутренних меток?

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

Зачем нужна сеть передачи данных?

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

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

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

Эта проблема была бы решена при условии создания единого хранилища, отвечающего нескольким требованиям:

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

Более реалистичное решение заключается в том, чтобы позволить любому человеку привлекать и потреблять данные масштабируемым способом согласно протоколу передачи информации, предусматривающему перемещение данных через организационные барьеры. Обратите внимание, что такой протокол не нуждается в повсеместном внедрении, чтобы обеспечить ожидаемый результат. Даже локальные сети, специализирующиеся только на одном типе данных, могут быть очень мощными.

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

Ключевые проблемы, которые необходимо решить в сети передачи данных

Конфиденциальность

Модели машинного обучения обычно не привлекают личную информацию (PII). Вместо этого они используют неидентифицирующие статистически значимые функции, которые обычно лучше подходят для обнаружения закономерностей. Однако даже модели, не задействующие PII, могут подвергаться атакам с выводом данных при достаточном количестве запросов. Поэтому к вопросу конфиденциальности следует относиться серьезно.

Для этого можно использовать алгоритмическую конфиденциальность, которая за последние несколько лет достигла огромного прогресса благодаря:

Масштабирование каждого из этих решений предусматривает доверие всех сторон к протоколу, но до стандартизации на уровне SSL нам еще далеко. В то же время традиционные сертификаты информационной безопасности, такие как SOC2, ISO27001 и PCI-DSS, являются нормой для любого вида коммерческого обмена данными, особенно с более крупными сертифицированными организациями. Каждый из этих сертификатов требует выполнения строгих стандартов в отношении обработки и защиты данных и обеспечивается с помощью регулярных аудитов. Поэтому такой сертификат является надежным способом установления доверия к работе с данными на коммерческом уровне.

Кодирование данных

Важной частью любого коммуникационного протокола является кодирование данных:

  • для коммуникации между людьми используется “естественный” язык;
  • для коммуникации между людьми и компьютерами  —  язык программирования;
  • для коммуникации между компьютерами  —  протокол передачи данных;
  • для коммуникации между наборами данных  —  набор функций.

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

Жизнеспособным решением является описание каждой функции с использованием естественного языка. Таким образом, карта может быть создана между любыми двумя объектами (и, следовательно, описывающими их данными), которые можно определить с помощью естественного языка. Конечно, есть исключения из этого правила: некоторые функции настолько специфичны для конкретного продукта, что их невозможно использовать в других областях. Однако со временем это может быть устранено в локальных версиях сетей передачи данных. 

Загрузка сети

Сеть передачи данных, как известно, трудно запустить, хотя в прошлом было несколько попыток. До сих пор ни одна из них не увенчалась крупномасштабным внедрением. И вот почему.

Чтобы сеть передачи данных оправдала ожидания первых пользователей, в ней должны быть соответствующие данные. Если сеть открыта для приема данных из разных отраслей без непосредственной связи между ними, ее создание требует одновременной загрузки информации с нескольких двусторонних рынков. Такой маховик чрезвычайно трудно запустить.

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

Сеть Ntropy

Массовая поддержка концепции “МО без данных”, по нашему мнению, значительно ускорит разработку и внедрение машинного обучения в отрасли. Это позволит загружать мощные модели с меньшими требованиями к локальным данным, одновременно предоставляя более сложным моделям доступ к быстро растущему пулу данных.

На Ntropy мы запустили сеть передачи данных только с одним типом: финансовыми транзакциями. Чтобы с самого начала максимизировать плотность релевантных данных, мы также использовали другие источники информации, включая внешние API, общедоступные базы данных и вложения, перенесенные из предварительно обученных языковых моделей.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Ilia Zintchenko: No-data ML

Предыдущая статьяКорутины и управление разрешениями в Android
Следующая статьяRxJS и Angular: декларативный If/Else