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

Авторы Алессио Плацителли, Бен Мирольо, Джейсон Томас, Shell Escalante и Мартин Лопатка

С особым признанием усилий разработчиков Роберто Витилло, который начал этот проект, Мауро Доглио за огромный вклад в базу кода во время его работы в Mozilla, Флориана Хартманна, который внес свой вклад в создание прототипа ансамблевого линейного комбайнера, Стюарт Колвиллу за координацию интеграции с AMO. И последнее, но не менее важное, спасибо Энтони Миягути, который помог сформировать текущий код своими усилиями по рецензированию.

Что такое TAAR?

Firefox имеет надежную экосистему надстроек, которые могут улучшить работу в Интернете, но все пользователи разные, и не все надстройки подходят всем. Проект TAAR (Telemetry Aware Addon Recommender) - экспериментальный продукт, разработанный в течение 2017 года, чтобы обеспечить персонализированный опыт для пользователей Firefox, стремящихся установить надстройки на основе доступной информации, уже содержащейся в данных телеметрии Mozilla. Наша цель - предоставить потенциально интересные надстройки или полезные замены надстроек, построенных на унаследованной технологии, без необходимости в дополнительном сборе данных. Надстройки, созданные в соответствии с новым стандартом (после устаревшего), безопаснее, безопаснее и не сломаются в новых выпусках Firefox.

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

Философия дизайна

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

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

Как это происходит?

Встраивание новой функции в Firefox всегда вызывает вопросы: будет ли она работать и будет ли она полезна нашим пользователям? Чтобы ответить на эти вопросы, мы решили позволить части пользователей Firefox на канале Release опробовать его через исследование SHIELD: если пользователь зарегистрирован в этом исследовании, измененная страница about: addons может быть служил с учетом рекомендаций TAAR.

Как это работает?

Когда пользователь открывает страницу about: addons с поддержкой TAAR, Firefox извлекает содержимое страницы из discovery.addons.mozilla.org (интерфейс AMO). Идентификатор клиента отправляется вместе с запросом страницы и пересылается на конечную точку taar-api. Библиотека TAAR вызывается сразу после анализа и проверки запроса.

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

Компоненты системы TAAR:

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

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

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

Чтобы обеспечить быстрое вычисление рекомендаций, тяжелая работа по каждому модулю рекомендаций выполняется в автономном режиме, в серии заданий Python ETL, которые планируется запускать еженедельно, в понедельник.

Устаревшая модель

Это первая модель, которую пытается рекомендовать наша стратегия рекомендаций. Его цель - предлагать надстройки тем пользователям, у которых установлены устаревшие надстройки (даже если они отключены).

На бэкэнде еженедельная работа использует надстройки API замены для создания словаря рекомендаций для каждого унаследованного надстройки. Полученный файл передается TAAR и используется рекомендателем.

Модель сотрудничества

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

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

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

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

Модель на основе сходства

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

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

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

Соответствующее задание ETL можно увидеть здесь, а сам рекомендательный модуль реализован в основной библиотеке TAAR.

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

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

Модель языкового стандарта

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

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

Первое исследование TAAR

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

Чтобы проверить эффективность TAAR, мы провели исследование по отказу от рассылки на канале Firefox Release. Для половины пользователей, участвовавших в исследовании, мы изменили URL-адрес панели обнаружения надстроек, которая загружается, когда пользователь вводит about: addons в адресную строку или нажимает «Надстройки» из меню Firefox.

Измененный URL сообщает AMO о необходимости отправить идентификатор клиента в TAAR и загрузить рекомендации на страницу, если это возможно. В каждой тестовой группе мы показали половину уведомления, предлагающего пользователю «попробовать надстройки» со ссылкой на страницу about: addons, таким образом создав 4 отдельные группы с равной вероятностью (0,25) назначения. . Мы попытались сосредоточить внимание на новых пользователях для исследования, чтобы лучше понять, как клиенты вступают в экосистему надстроек между нашими запрашиваемыми и незапрошенными ветвями исследования.

В этом исследовании щита мы сосредоточились на двух показателях:

  • скорость установки (доля пользователей, установивших более 1 надстройки)
  • установок на одного клиента (количество установок / количество клиентов).

В результате этого исследования мы сделали три основных вывода:

  • Клиенты, получившие уведомление, с большей вероятностью установят надстройку (скорость установки + 17,19%).
  • Клиенты, которые видят рекомендации TAAR, не с большей вероятностью установят надстройку (скорость установки + ~ 0%, небольшой эффект, но не статистически значимый).
  • Клиенты, которые видят рекомендации TAAR, с большей вероятностью установят большее количество надстроек (количество установок на одного клиента + 1,4%).

Дополнительным источником данных, доступным для анализа после первого исследования TAAR, был корпус файлов журналов приложений, созданных самой библиотекой TAAR. Немного более глубокий анализ результатов, касающихся количества установленных надстроек в ходе исследования, выявил интересный рассказ. Клиенты, которые изначально обслуживались с помощью модели на основе сходства , часто появлялись позже, при этом около 18% возвращались к сервису TAAR и обслуживались с помощью совместной модели.

Извлеченные уроки

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

Чуть более сложный урок заключается в том, что вниманием клиентов очень трудно управлять. Из 1,2 миллиона пользователей, первоначально включенных в это исследование, лишь 3,5% взаимодействовали конкретно с библиотекой TAAR в течение периода исследования. Возможно, можно было бы рассмотреть более очевидную сигнализацию, но мы также хотели избежать деструктивного или чрезмерно агрессивного нарушения работы пользователя Firefox по умолчанию.

Кроме того, мы обнаружили, что клиенты очень поляризованы с точки зрения того, как им нравится взаимодействовать с экосистемой надстроек. Только около 12% клиентов, взаимодействующих (не обязательно приводящих к установке надстройки) с экосистемой надстройки, посетили как about: addons, так и addons.mozilla.org ; Это означает, что ~ 88% пользователей заинтересованы исключительно в одном из этих двух местоположений, что, возможно, указывает на то, что многие пользователи не знают о двух каналах, по которым можно связаться с серверами AMO.

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

Будущие направления

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

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

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

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

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

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