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

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

Обзор релевантности @ Thumbtack

Термин релевантность традиционно используется в контексте поисковых систем. Turnbull et al. относиться к релевантности как к искусству ранжирования контента для поиска на основе того, насколько этот контент удовлетворяет потребности пользователя и бизнеса. Мы всегда стремимся повысить релевантность поиска. Мы также используем термин релевантность для обозначения контента, который мы публикуем, чтобы помочь клиентам выбрать подходящего профессионала для своих нужд.

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

Извлечение фрагмента отзыва

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

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

Просмотр характеристик данных

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

Предыдущий подход

В Thumbtack мы используем ElasticSearch (ES) для хранения данных обзора. Функция работала следующим образом. Используя название категории (например, Уроки музыки), мы использовали специальный запрос ES для ранжирования отзывов для профессионала. Мы также использовали возможности выделения ES для извлечения и выделения основного фрагмента отзыва. Хотя в то время это работало достаточно хорошо (например, показано ранее на рис. 1), у нашего подхода были некоторые проблемы:

  1. Из-за очень разнообразного характера того, как клиенты пишут отзывы о профессионалах, то, что клиенты выражают в тексте отзыва, не всегда соответствует атрибутам, которые они отметили.
  2. Подход, основанный на ES, выделяет только термины, соответствующие названию категории, например. Такие слова, как музыка или уроки, для категории Уроки музыки.
  3. Фрагмент, выбранный подходом, основанным на ES, иногда был нейтральным по тону и не всегда способствовал предоставлению релевантной информации клиенту, чтобы помочь ему принять решение.

Новый подход

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

Некоторые клиенты могут написать обзор всего в 1 предложение, некоторые могут написать целые абзацы, выражая свое удовлетворение или неудовлетворенность. Мы хотели выбрать предложения, которые иллюстрируют определенные атрибуты, независимо от того, действительно ли покупатель упоминает этот атрибут по имени. Например, предложение типа «Они очень быстро ответили мне» может иллюстрировать отзывчивость. Использование машинного обучения и обработки естественного языка для решения этой проблемы позволило нам смоделировать ее лучше, чем использование ES.

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

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

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

Этап 1. Генерация самых популярных отзывов

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

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

Например, в случае транспортной компании под названием XYZ Moving, если мы предположим, что у нее есть 50 отзывов, а количество тегов атрибутов наибольшее для атрибута отзывчивость, тогда мы используем модель классификации отзывчивости и ранжируем отзывы по наивысшим баллам для этого атрибута.

Затем мы используем топ-k обзоров, чтобы извлечь лучший фрагмент с помощью нашего конвейера извлечения фрагментов на этапе 2, как описано в следующем разделе.

Этап 2. Извлечение фрагмента обзора

Мы определяем конвейер извлечения сниппета, состоящий из 4 этапов:

  1. Создание фрагментов-кандидатов: каждый из k самых популярных обзоров сначала разбивается на предложения с использованием NLTK (фреймворка для обработки текста). Затем настраиваемый алгоритм объединения предложений воздействует на предложения для проверки, чтобы соответствующим образом объединить более короткие предложения в набор фрагментов-кандидатов. Модель классификации повторно применяется к фрагментам, чтобы получить оценки вероятности, связанные с каждым кандидатом для определенного атрибута.
  2. Выделение фрагментов-кандидатов. Линейная модель классификации может генерировать оценки важности характеристик для терминов из словаря модели. Мы создаем порог важности функции, выше которого мы считаем термин достаточно важным, чтобы его можно было выделить. Во время выполнения мы выделяем во фрагменте-кандидате термины, оценки которых превышают пороговое значение. Например. Для модели отзывчивости такие термины, как быстро или отзывчивый, могут иметь высокие оценки важности функций и, таким образом, будут выделены в предложении.
  3. Рейтинг кандидатов фрагмента: после создания и выделения кандидатов мы ранжируем кандидатов фрагмента на основе их оценок вероятности.
  4. Фильтрация фрагментов-кандидатов: на этом этапе мы применяем LanguageTool (средство проверки грамматики на основе Python) для обнаружения орфографических ошибок в фрагментах-кандидатах. Если во фрагменте есть орфографические ошибки, он отфильтровывается. Мы также отфильтровываем фрагменты, которые короче заданной длины. Затем мы выбираем кандидата на самый верхний фрагмент в качестве финального фрагмента обзора.

Стратегия экспериментирования

Как твердые сторонники Agile-итераций, мы построили наш конечный подход на трех итерациях. Сначала мы начали эксперименты, сосредоточившись только на одном атрибуте (профессионализм), и, убедившись, что у нас есть хороший конвейер извлечения, мы расширили нашу работу для всех атрибутов и ввели механизм выбора атрибутов, описанный ранее.

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

Оценка фрагмента

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

  1. Соответствующей длины - не должно быть слишком длинным или слишком коротким, в идеале 1–3 коротких предложения.
  2. Представление - представление пространства объектов четко указывает хотя бы на один из пяти атрибутов.
  3. Правильное написание - в выбранном фрагменте нет орфографических ошибок.
  4. Связность повествования. Содержит содержательный контент, который рассказывает интересную историю в пределах 1–3 предложений, а не является просто набором положительных фраз.

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

Результаты

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

На рис. 5 показан пример фрагментов обзора, созданных с использованием нового подхода для специалистов общественного питания в Кембридже, Массачусетс.

Дальнейшая работа

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

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

Подтверждение

Новый подход к извлечению отрывка из обзора был совместно исследован автором и Ричардом Демсин-Джонсом вместе с Томом Шуллом, Джо Цей и Уэйдом Фуллером. Эта работа также была бы невозможна без помощи Марка Эндрю Яо, Ибай Шу, а также других сотрудников Marketplace org в Thumbtack.

О кнопке

Thumbtack (www.thumbtack.com) - это местный рынок услуг, где клиенты находят и нанимают квалифицированных специалистов. Наше приложение разумно подбирает клиентов к электрикам, ландшафтным дизайнерам, фотографам и другим специалистам, обладая нужным опытом, доступностью и ценой. Thumbtack со штаб-квартирой в Сан-Франциско привлекла более 400 миллионов долларов от Baillie Gifford, Capital G, Javelin Venture Partners, Sequoia Capital и Tiger Global Management среди других.