Рекомендация контента с помощью семантического векторного поиска
Поскольку 71% американцев получают рекомендации по новостям с социальных платформ, персонализированный контент быстро стал способом обнаружения новых медиа. Независимо от того, ищут ли люди конкретные темы или взаимодействуют с рекомендованным контентом, все, что видят пользователи, оптимизируется алгоритмами для повышения коэффициента кликов (CTR), вовлеченности и релевантности. Sohu - это китайская группа онлайн-медиа, видео, поиска и игр, зарегистрированная на бирже NASDAQ. Она использовала Milvus, векторную базу данных с открытым исходным кодом, созданную компанией Zilliz, для создания семантической векторной поисковой системы в своем новостном приложении. В этой статье рассказывается о том, как компания использовала профили пользователей для точной настройки персонализированных рекомендаций контента с течением времени, улучшая пользовательский опыт и вовлеченность.
Рекомендация контента с помощью семантического векторного поиска
Профили пользователей Sohu News создаются на основе истории посещений и корректируются по мере того, как пользователи ищут и взаимодействуют с новостным контентом. Рекомендательная система Sohu использует семантический векторный поиск для поиска релевантных новостных статей. Система определяет набор тегов, которые, как ожидается, будут интересны каждому пользователю на основе истории просмотров. Затем она быстро ищет релевантные статьи и сортирует результаты по популярности (измеряемой средним CTR), а затем предлагает их пользователям.
Только New York Times публикует 230 статей в день, что дает представление о масштабах нового контента, который должна уметь обрабатывать эффективная рекомендательная система. Для обработки больших объемов новостей требуется миллисекундный поиск по сходству и ежечасное сопоставление тегов с новым контентом. Sohu выбрала Milvus, потому что он эффективно и точно обрабатывает огромные массивы данных, сокращает потребление памяти при поиске и поддерживает высокопроизводительные развертывания.
Понимание рабочего процесса системы рекомендаций новостей
Рекомендация контента на основе семантического векторного поиска в Sohu основана на глубокой структурированной семантической модели (DSSM), которая использует две нейронные сети для представления пользовательских запросов и новостных статей в виде векторов. Модель вычисляет косинусоидальное сходство двух семантических векторов, после чего наиболее похожая партия новостей отправляется в пул кандидатов на рекомендацию. Далее новостные статьи ранжируются на основе их предполагаемого CTR, и те из них, которые имеют самый высокий прогнозируемый показатель кликов, отображаются пользователям.
Кодирование новостных статей в семантические векторы с помощью BERT-as-service
Для кодирования новостных статей в семантические векторы система использует инструмент BERT-as-service. Если при использовании этой модели количество слов в любом фрагменте контента превышает 512, в процессе встраивания происходит потеря информации. Чтобы помочь преодолеть эту проблему, система сначала извлекает резюме и кодирует его в 768-мерный семантический вектор. Затем из каждой новостной статьи извлекаются две наиболее релевантные темы, и на основе идентификатора темы определяются соответствующие предварительно обученные векторы тем (200 измерений). Затем векторы тем объединяются с 768-мерным семантическим вектором, извлеченным из резюме статьи, образуя 968-мерный семантический вектор.
Новый контент постоянно поступает через Kafta и преобразуется в семантические векторы перед вставкой в базу данных Milvus.
Извлечение семантически схожих тегов из профилей пользователей с помощью BERT-as-service
Другая нейронная сеть модели - это семантический вектор пользователя. Семантически схожие теги (например, коронавирус, ковид, COVID-19, пандемия, новый штамм, пневмония) извлекаются из профилей пользователей на основе интересов, поисковых запросов и истории посещений. Список полученных тегов сортируется по весу, а 200 лучших делятся на различные семантические группы. Перестановки тегов в каждой семантической группе используются для генерации новых фраз тегов, которые затем кодируются в семантические векторы с помощью BERT-сервиса.
Для каждого пользовательского профиля наборы фраз-тегов имеют соответствующий набор тем, которые помечаются весом, указывающим на уровень заинтересованности пользователя. Две лучшие темы из всех релевантных тем выбираются и кодируются моделью машинного обучения (ML) для встраивания в соответствующий семантический вектор тега, формируя 968-мерный семантический вектор пользователя. Даже если система генерирует одинаковые теги для разных пользователей, различные веса для тегов и соответствующих им тем, а также явная дисперсия между векторами тем каждого пользователя обеспечивают уникальность рекомендаций.
Система способна создавать персонализированные новостные рекомендации, вычисляя косинусное сходство семантических векторов, извлеченных как из профилей пользователей, так и из новостных статей.
Sohu01.jpg
Вычисление новых семантических векторов профилей пользователей и вставка их в Milvus
Векторы семантических профилей пользователей вычисляются ежедневно, причем данные за предыдущий 24-часовой период обрабатываются вечером следующего дня. Векторы вставляются в Milvus по отдельности и проходят через процесс запроса, чтобы предоставить пользователям релевантные результаты новостей. Новостной контент по своей сути является актуальным, поэтому вычисления необходимо выполнять ежечасно, чтобы сформировать текущую ленту новостей, содержащую контент с высоким прогнозируемым коэффициентом кликов и релевантный для пользователей. Новостной контент также сортируется в разделы по дате, а старые новости удаляются ежедневно.
Сокращение времени извлечения семантических векторов с нескольких дней до нескольких часов
Поиск контента с использованием семантических векторов требует ежедневного преобразования десятков миллионов фраз тегов в семантические векторы. Это трудоемкий процесс, требующий нескольких дней, даже при работе с графическими процессорами (GPU), которые ускоряют подобные вычисления. Чтобы преодолеть эту техническую проблему, необходимо оптимизировать семантические векторы, полученные в результате предыдущего встраивания, чтобы при появлении похожих фраз тегов соответствующие семантические векторы извлекались напрямую.
Семантический вектор существующего набора фраз-тегов сохраняется, а новый набор фраз-тегов, который генерируется ежедневно, кодируется в векторы MinHash. Расстояние Жаккара используется для вычисления сходства между вектором MinHash новой фразы тега и сохраненным вектором фразы тега. Если расстояние Жаккара превышает заданный порог, два набора считаются похожими. Если порог сходства соблюден, новые фразы могут использовать семантическую информацию из предыдущих вкраплений. Тесты показывают, что расстояние выше 0,8 гарантирует достаточную точность для большинства ситуаций.
Благодаря этому процессу ежедневное преобразование десятков миллионов векторов, о которых говорилось выше, сокращается с нескольких дней до примерно двух часов. Хотя другие методы хранения семантических векторов могут быть более подходящими в зависимости от конкретных требований проекта, вычисление сходства между двумя фразами тегов с помощью расстояния Жаккара в базе данных Milvus остается эффективным и точным методом в самых разных сценариях.
Sohu02.jpg
Преодоление "плохих случаев" классификации коротких текстов
При классификации новостных текстов короткие новостные статьи имеют меньше признаков для извлечения, чем длинные. Из-за этого алгоритмы классификации терпят неудачу, когда контент разной длины пропускается через один и тот же классификатор. Milvus помогает решить эту проблему путем поиска нескольких фрагментов информации о классификации длинных текстов с похожей семантикой и надежными оценками, а затем использует механизм голосования для изменения классификации коротких текстов.
Выявление и устранение ошибок в классификации короткого текста
Точная классификация каждой новостной статьи имеет решающее значение для предоставления полезных рекомендаций по содержанию. Поскольку короткие новостные статьи содержат меньше признаков, применение одного и того же классификатора для новостей разной длины приводит к увеличению числа ошибок при классификации коротких текстов. Человеческая маркировка слишком медленная и неточная для этой задачи, поэтому BERT-as-service и Milvus используются для быстрого выявления неправильно классифицированных коротких текстов в партиях, их правильной переклассификации, а затем использования партий данных в качестве корпуса для обучения против этой проблемы.
BERT-as-service используется для кодирования пяти миллионов длинных новостных статей с оценкой классификатора более 0,9 в семантические векторы. После вставки длинных текстовых статей в Milvus, короткие текстовые новости кодируются в семантические векторы. Каждый семантический вектор коротких новостей используется для запроса к базе данных Milvus и получения 20 лучших длинных новостных статей с наибольшим косинусным сходством с целевой короткой новостью. Если 18 из 20 наиболее похожих по семантике длинных новостей оказываются в одной и той же классификации, но она отличается от классификации запрошенной короткой новости, то классификация коротких новостей считается неверной и должна быть скорректирована, чтобы соответствовать 18 длинным новостным статьям.
Этот процесс быстро выявляет и исправляет неточные классификации коротких текстов. Статистика случайной выборки показывает, что после исправления классификаций коротких текстов общая точность классификации текста превышает 95 %. Используя классификацию длинных текстов с высокой степенью достоверности для исправления классификации коротких текстов, можно за короткий промежуток времени исправить большинство неудачных классификаций. Кроме того, это хороший корпус для обучения классификатора коротких текстов.
.
Milvus может обеспечить рекомендации новостного контента в режиме реального времени и многое другое
Milvus значительно улучшил производительность системы рекомендаций новостей Sohu в реальном времени, а также повысил эффективность выявления неправильно классифицированных коротких текстов. Если вам интересно узнать больше о Milvus и его различных применениях:
- Понимание рабочего процесса системы рекомендаций новостей
- Преодоление "плохих случаев" классификации коротких текстов
- Milvus может обеспечить рекомендации новостного контента в режиме реального времени и многое другое
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word