Алгоритм рекомендаций Twitter — это набор служб и задач, которые отвечают за обслуживание каналов твитов и другого контента во всех продуктах Twitter (например, «Временная шкала «Для вас», «Поиск», «Обзор», «Уведомления»). Ознакомиться с тем, как работает алгоритм, можно в нашем инженерном блоге.
Поверхность продуктов в Твиттере построена на основе общего набора данных, моделей и программных инфраструктур. Общие компоненты, включенные в этот репозиторий, перечислены ниже:
Тип | Компонент | Описание |
---|---|---|
Данные | Твиттипи | Базовая служба Tweet, которая обрабатывает чтение и запись данных Tweet. |
унифицированные действия пользователя | Поток действий пользователя в Твиттере в реальном времени. | |
служба пользовательского сигнала | Централизованная платформа для получения явных (например, лайков, ответов) и неявных (например, посещений профиля, кликов в Твиттере) пользовательских сигналов. | |
Модель | SimClusters | Обнаружение сообществ и редкое встраивание в эти сообщества. |
ТвХИН | Плотное внедрение графов знаний для пользователей и твитов. | |
модели доверия и безопасности | Модели обнаружения NSFW или оскорбительного контента. | |
реальный график | Модель для прогнозирования вероятности взаимодействия пользователя Twitter с другим пользователем. | |
твипкред | Алгоритм PageRank для расчета репутации пользователя Twitter. | |
рекос-инжектор | Потоковый процессор событий для создания входных потоков для сервисов на базе GraphJet. | |
граф-функционал-сервис | Предоставляет функции графика для направленной пары пользователей (например, скольким подписчикам пользователя А понравились твиты пользователя Б). | |
тема-социальное доказательство | Определяет темы, связанные с отдельными твитами. | |
представительство-бомбардир | Вычислите оценки между парами объектов (пользователи, твиты и т. д.), используя встроенное сходство. | |
Программная среда | нави | Высокопроизводительная модель машинного обучения, написанная на Rust. |
смеситель продуктов | Программная платформа для создания каналов контента. | |
сроки-агрегирование-фреймворк | Платформа для создания совокупных функций в пакетном режиме или в реальном времени. | |
представительство-менеджер | Сервис для получения вложений (т. е. SimClusers и TwHIN). | |
ТВМЛ | Устаревшая платформа машинного обучения, построенная на TensorFlow v1. |
В настоящее время в этот репозиторий включены поверхности продуктов: временная шкала «Для вас» и рекомендуемые уведомления.
На диаграмме ниже показано, как основные услуги и рабочие места взаимосвязаны при построении временной шкалы «Для вас».
Основные компоненты временной шкалы For You, включенные в этот репозиторий, перечислены ниже:
Тип | Компонент | Описание |
---|---|---|
Источник кандидата | индекс поиска | Найдите и ранжируйте внутрисетевые твиты. Примерно 50% твитов исходят от этого потенциального источника. |
CR-микшер | Уровень координации для получения кандидатов на твиты вне сети из базовых вычислительных сервисов. | |
граф-объекта-твита пользователя (UTEG) | Поддерживает в памяти график взаимодействия пользователей с твитами и находит кандидатов на основе обходов этого графика. Он построен на основе GraphJet. Здесь расположены несколько других функций на основе GraphJet и возможные источники. | |
сервис последующих рекомендаций (FRS) | Предоставляет Пользователям рекомендации по учетным записям, которым следует подписаться, а также твиты из этих учетных записей. | |
Рейтинг | легкий ранг | Модель Light Ranker, используемая поисковым индексом (Earlybird) для ранжирования твитов. |
высокопоставленный | Нейронная сеть для ранжирования твитов кандидатов. Один из основных сигналов, используемых для выбора ленты поиска кандидатов на публикацию в Твиттере. | |
Смешивание и фильтрация твитов | домашний миксер | Основной сервис, используемый для создания и обслуживания домашней временной шкалы. Построен на базе смесителя продуктов. |
фильтры видимости | Отвечает за фильтрацию контента Twitter для обеспечения соблюдения законодательства, улучшения качества продуктов, повышения доверия пользователей, защиты доходов за счет использования жесткой фильтрации, видимой обработки продуктов и грубого понижения рейтинга. | |
ранжировщик временной шкалы | Устаревшая служба, которая предоставляет твиты с оценкой релевантности из индекса поиска Earlybird и службы UTEG. |
Основные компоненты рекомендуемых уведомлений, включенных в этот репозиторий, перечислены ниже:
Тип | Компонент | Описание |
---|---|---|
Услуга | pushservice | Основная служба рекомендаций в Твиттере, используемая для предоставления рекомендаций нашим пользователям через уведомления. |
Рейтинг | pushservice-light-ranker | Модель Light Ranker, используемая push-сервисом для ранжирования твитов. Объединяет генерацию кандидатов и высокий рейтинг за счет предварительного отбора наиболее релевантных кандидатов из первоначального огромного пула кандидатов. |
pushservice-тяжелый ранкер | Модель многозадачного обучения для прогнозирования вероятности того, что целевые пользователи откроют отправленные уведомления и будут взаимодействовать с ними. |
Мы включаем файлы BUILD Bazel для большинства компонентов, но не файлы BUILD или WORKSPACE верхнего уровня. В будущем мы планируем добавить более полную систему сборки и тестирования.
Мы приглашаем сообщество присылать проблемы GitHub и запросы на включение предложений по улучшению алгоритма рекомендаций. Мы работаем над инструментами для управления этими предложениями и синхронизации изменений с нашим внутренним репозиторием. Любые проблемы с безопасностью следует направлять в нашу официальную программу вознаграждения за ошибки через HackerOne. Мы надеемся воспользоваться коллективным разумом и опытом мирового сообщества, которые помогут нам выявить проблемы и предложить улучшения, что в конечном итоге приведет к улучшению Twitter.
Прочтите наш блог об инициативе открытого исходного кода здесь.