При работе над расширенной аналитикой в ​​любой организации одна из линий, к которой мы всегда должны возвращаться, — это измерение. Будь то оценка прогностической способности модели или эффективность A/B-теста, измерение является ключом к тому, чтобы убедиться, что мы толкаем иглу в правильном направлении и насколько.

Во многих случаях измерение представляет собой довольно простую задачу: какова (вне выборки) RMSE моей регрессионной модели, каков рост целевого KPI (и других!) по результатам A/B-тестирования и т. д. Однако при работе над неконтролируемыми учебными задачами измерение качества результатов часто становится более тонким (и, к сожалению, более качественным) процессом.

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

Для начала всеобъемлющая онтология размещения вакансий была разработана внутри компании Джон Мун, который имеет более чем 16-летний опыт работы с нашим реестром объявлений о вакансиях. Прототип среды тегирования онтологий был разработан на Python с использованием некоторых распространенных инструментов НЛП и специально созданной системы индексации текста для повышения эффективности. Сама система состоит из обширного механизма правил или набора триггеров для каждой функции в онтологии. На приведенной ниже диаграмме представлена ​​высокоуровневая иллюстрация процесса:

В этом примере с игрушкой, если сообщение содержит точный текст «готовит еду», то сообщение будет классифицировано как относящееся к сфере общественного питания. Сразу становится очевидным, что такой системе будут присущи ложные срабатывания, поскольку другие отрасли, не связанные с общественным питанием, могут включать фразу «готовит еду» (представьте себе работника в сфере ухода за детьми, который должен готовить еду для младенцев). К таким случаям нужно относиться с осторожностью, и ниже мы увидим, как определить систематический способ их выявления. На самом деле наша реализация включает в себя более интеллектуальную систему сопоставления, а также более надежную бизнес-логику, которая определяет тонкое сопоставление с нашей внутренней онтологией. Но независимо от того, насколько интеллектуальны наши сопоставления и детализирована наша онтология, измерение производительности по-прежнему необходимо. Поэтому следующий логичный вопрос, связанный с системой такого типа, звучит так: «Насколько хорошо она работает?»

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

Идеальный сценарий для расчета точности для каждого признака в онтологии — следить за самими публикациями, и многими из них. С этой целью мы разработали тест для оценки человека с использованием платформы Amazon Mechanical Turk. Для каждой рассматриваемой функции каждый потенциальный «триггер» тегов для этой функции был протестирован индивидуально для нескольких примеров объявлений о вакансиях, что позволило нам оценить не только общую точность для каждой из функций, но и индивидуальный вклад в эту точность от каждого из них. сами триггеры. Результаты этого теста затем можно использовать в качестве дорожной карты для принятия обоснованных решений о том, какие триггеры являются наиболее/наименее эффективными, и определения точек воздействия, где триггеры могут быть удалены с наиболее существенным увеличением точности в общей совокупности объявлений о вакансиях. Используя выходные данные для каждой функции, можно использовать график, подобный приведенному ниже, для руководства дальнейшей разработкой:

Каждая отдельная точка представляет собой один триггер для интересующей функции. Гистограмма вверху представляет распределение количества сообщений, помеченных каждым триггером, а гистограмма справа — распределение измеренной точности для каждого триггера. Точечная диаграмма была разделена на четыре квадранта по средней общей точности для функции и среднему количеству публикаций, помеченных для этой функции. Это дает полезные рекомендации для определения значения каждого отдельного триггера. Те из них, которые находятся в верхнем правом квадранте и отличаются высокой точностью и помечают большой объем сообщений, обеспечивают наибольшую ценность. Те, кто находится в верхнем левом квадранте, по-прежнему добавляют ценность, но в меньшей степени, поскольку они влияют на гораздо меньший объем публикующих постов. Те, кто находится в нижнем левом квадранте, снижают общую точность функции, но в небольшой степени, поскольку они не влияют на большой объем публикуемых сообщений. Настоящие проблемные триггеры — это триггеры в нижнем правом квадранте, которые помечают больший, чем в среднем, объем сообщений с относительно низкой точностью. С точки зрения разработки, именно эти триггеры требуют наибольшего внимания, поскольку они обеспечивают наибольшее влияние на изменение общей точности функции. Два возможных подхода к работе с этими триггерами заключаются в том, чтобы полностью их удалить (с соответствующим сокращением припоминания) или попытаться изменить их в интересах сведения к минимуму воздействия на припоминание. Действительно, использование более консервативного подхода полного удаления проблемных триггеров приводит к значительному увеличению общей точности примерно с 0,75 до 0,91, хотя окончательное решение будет зависеть от дальнейшего изучения отдельных триггеров.