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

Что такое контролируемое и неконтролируемое обучение?

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

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

Маркировка данных вручную

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

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

Полуконтролируемая маркировка данных

Если вы не можете использовать предварительно обученную модель для маркировки ваших данных (в зависимости от ваших потребностей — и бюджета — вам может повезти с чем-то вроде GPT-3), любой метод будет включать некоторую степень грубой силы. Идея состоит в том, чтобы свести к минимуму это, создав модель для маркировки для вас:

Пометка минимального объема данных › обучение модели › использование модели для маркировки данных › проверка точности › повторное обучение модели с дополнительными данными.

Начало работы

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

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

Вот результаты первого тура обучения:

                +---------------+-------------------+
                | Test Score    | 0.613903284072876 |
                | Test Accuracy |              0.75 |
                +---------------+-------------------+

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

Измельчение

Теперь, когда вы пометили некоторые данные и (надеюсь) получили многообещающие начальные результаты, пришло время применить вашу модель к свежим данным. Для второго набора я выбрал еще несколько сотен, тоже наугад. Сделав прогноз на основе новых данных, я вручную просмотрел результаты, внося исправления в те места, где модель неправильно маркировала. На этих данных я обнаружил, что моя модель работает с точностью около 83%, что приятно удивило.

Новые помеченные данные были объединены с первым набором, и модель была переобучена со следующими результатами:

              +---------------+--------------------+
              | Test Score    | 0.6114386320114136 |
              | Test Accuracy | 0.7941176295280457 |
              +---------------+--------------------+

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

Результаты

Что касается меня, я знал, что мне конец, когда я добился точности в 90-х годах. При тестировании я обнаружил, что точность моей модели составляет около 93%. Это похоже на точность, достигаемую при использовании этикетировщиков-людей. В конце концов, я повторил процесс пять раз примерно для 6000 строк данных. Затем я смог пометить около 250 000 строк данных, которые я с большим успехом использовал при построении другой модели.

Заключительные мысли

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