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

Фон

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

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

Для финансирования счета-фактуры компании необходимо предоставить следующие данные из документа счета-фактуры:

  1. Сумма счета
  2. Дата выпуска
  3. Срок оплаты
  4. Номер счета
  5. Имя покупателя

Несмотря на то, что пользовательский интерфейс для ввода этих данных был в значительной степени оптимизирован, пользователю требуется в среднем от 15 до 30 секунд, чтобы выполнить этот шаг. Это время не проблема для компаний, которые ежемесячно оплачивают лишь несколько счетов. Однако для одновременного финансирования сотен более мелких счетов даже очень опытному пользователю потребуется час или больше, чтобы заполнить все данные. Таким образом, до сих пор пользователям приходилось прибегать к различным способам ввода данных для таких больших сумм счетов, например, к файлам CSV, которые содержат все необходимые данные. Хотя это улучшение по сравнению с вводом информации по отдельности для каждого счета-фактуры, этот процесс по-прежнему утомителен и по своей природе подвержен ошибкам, особенно для пользователей, у которых нет подходящего программного обеспечения для бухгалтерского учета, которое позволяет им экспортировать необходимые данные удобным способом.

Создание собственного экстрактора данных PDF

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

Обучение модели машинного обучения

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

Мы начали с размышлений о том, как обычный пользователь подойдет к проблеме. В таблице 1 представлена ​​ментальная модель пяти точек данных, которую может иметь типичный пользователь.

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

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

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

Полученные результаты

В целом мы достигли очень обнадеживающих результатов, во многих случаях превосходя существующие на рынке решения по скорости извлечения или точности. В нашей модели извлечение работает в режиме реального времени (менее 5 секунд для среднего счета), включая передачу по сети и инферрал. Точность прогноза для наиболее важных точек данных в счете-фактуре указана в таблице 3 (истинные положительные результаты, ложные положительные результаты). Разница в 100% возникает из-за того, что модель дает прогноз только в том случае, если уверенность в нахождении правильного токена превышает определенный порог.

Из трех точек данных срок выполнения является наиболее трудным для достижения очень высокой производительности, поскольку часто он указывается в связи с датой выпуска, например, как в разделе «К оплате в течение 30 дней после доставки». Таким образом, во многих случаях срок платежа можно правильно классифицировать только в том случае, если дата выдачи также верна.

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

Приложение для сканирования счетов для удобной загрузки

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

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

Для получения дополнительной информации или обратной связи свяжитесь с [email protected] или [email protected].

¹ С тех пор модель была доработана и переобучена на более крупном наборе данных. FPR сейчас приближается к 1% во всех категориях.