Приветствую всех вОблако Tencent + сообщество, получить больше крупной технической практики Tencent по галантерее ~
Эта статья написанаjjОпубликован вКолонка «Облако + сообщество»
Обзор системы рекомендаций
1.1 Обзор
В настоящее время рекомендательные системы почти вездесущи, и основные приложения в основном применяются к рекомендательным системам. Например, когда вы путешествуете, Ctrip, куда пойти и т. д. порекомендует вам авиабилеты, отели и т. д., закажите еду на вынос, Ele.me, Meituan и т. д. порекомендуют вам рестораны, при совершении покупок JD.com, Taobao , Amazon и т. д. порекомендуют вам элементы «Может понравиться», просмотр новостей, Toutiao, Tencent News и т. д. подтолкнут вас к интересующим вас новостям... Почти все приложения или веб-сайты имеют систему рекомендаций.
Фундаментальная причина популярности системы рекомендаций заключается в решении проблемы: все больше и больше элементов, все больше и больше информации, а энергия и время людей ограничены, нужен способ более эффективно получать информацию, связывать людей и информацию.
Рекомендательная система родилась, чтобы решить эту проблему, наведя мост между большим количеством предметов и людей. Это что-то вроде частного и эксклюзивного путеводителя по магазинам.Основываясь на вашем историческом поведении, личной информации и т. д., он рекомендует «сделай сам» для всех перед тысячами людей и помогает людям выбрать то, что им интересно и нужно, лучше и быстрее. . Благодаря поддержке алгоритма рекомендаций поток фидов Toutiao достиг поразительной скорости роста пользователей и данных о времени использования всего за несколько лет, и он пользуется спросом на рынке и высоко ценится. В одночасье почти все приложения стали попадаться в ленту и разные рекомендации, важность очевидна.
1.2 Базовая архитектура
Давайте сначала просто рассмотрим рекомендательную систему, затем ее можно упростить до следующей архитектуры.
Будь то сложная или простая система рекомендаций, она в основном включает в себя процесс:
- 1) Часть отображения результатов. Будь то приложение или веб-страница, будет интерфейс пользовательского интерфейса для отображения списка рекомендаций.
- 2) Раздел журнала поведения. Различные действия пользователей будут постоянно записываться и загружаться в систему журналов в фоновом режиме, например, поведение при нажатии, поведение при покупке, географическое местоположение и т. д. За этими данными обычно следует ETL (извлечение извлечения, преобразование преобразования, загрузка загрузки) для итеративного создания новых моделей для прогнозирования.
- 3) Особенности инженерной части. Для получения данных о поведении пользователя, характеристиках элементов, данных сцены и т. д. необходимо вручную или автоматически извлекать характеристики из исходных данных. Эти функции используются в качестве входных данных для предоставления данных для различных алгоритмов рекомендаций. Выбор функций очень важен, неправильные функции должны приводить к неправильным результатам.
- 4) Отзыв части. С помощью портрета пользователя инженерия данных и алгоритмы используются для блокировки конкретных наборов кандидатов из десятков миллионов продуктов и завершения предварительного скрининга списка рекомендаций, что в определенной степени определяет эффективность и результаты рекомендаций на этапе сортировки. плюсы и минусы.
- 5) Сортировочная секция. Для кандидата, установленного на предыдущем шаге, он выполнит более точную оценку и сортировку и рассмотрит ряд показателей, таких как новизна, неожиданность, коммерческий интерес и т. д., чтобы получить окончательный список рекомендаций и отобразить его.
Полноценная рекомендательная система также будет включать в себя множество вспомогательных модулей, таких как офлайн-модули обучения, что позволит исследователям алгоритмов использовать реальные исторические данные для тестирования различных алгоритмов и первоначальной проверки плюсов и минусов алгоритмов. Алгоритмы с хорошими результатами офлайн-тестирования будут подвергаться онлайн-тестированию, то есть широко используемой системе A/B-тестирования. Он использует систему распределения трафика для фильтрации конкретных пользователей, чтобы показать список рекомендаций, созданный алгоритмом для тестирования, а затем собирает этот пакет данных о поведении конкретных пользователей для онлайн-оценки.
Каждая часть рекомендательной системы может быть большой или маленькой.Как видно из рисунка 2, каждая часть включает множество технологических стеков. Приложение терминала постоянно сообщает о различных журналах, кликах, дисплеях, времени, географическом местоположении и т. д. Эти огромные объемы информации должны полагаться на поддержку программных стеков, связанных с большими данными, таких как Kafka, spark, HDFS, Hive и т. д. Среди них Kafka Он часто используется для борьбы с потреблением массивных отчетов журнала. После того, как данные ETL сохранены в хранилище данных Hive, их можно использовать для различных онлайн- и офлайн-тестов. Офлайн-алгоритм будет переходить в онлайн-среду для ABtest, ABtest предполагает завершение полного цикла тестирования, в противном случае результаты не будут получены, а итерационный алгоритм не может быть быстро разработан. Системы онлайн-рекомендаций также должны обращать внимание на функции в реальном времени и функции в автономном режиме, а также находить баланс между производительностью, различными показателями и бизнес-целями.
1.3 Показатели оценки
Хорошо сделано что-то или нет, можно ли оптимизировать или нет, первая предпосылка — определить показатели оценки. Только определяя показатели оценки, можно определить направление оптимизации. Показатели оценки рекомендательной системы могут учитывать следующие аспекты:
1.3.1 Удовлетворенность пользователей
Удовлетворенность пользователей, как основных участников двигательной установки, является наиболее важным показателем для оценки системы. Удовлетворение можно получить, проводя опросы пользователей или онлайн-эксперименты. В онлайн-системе его обычно получают с помощью статистики поведения пользователей, такой как рейтинг кликов, время пребывания пользователя и коэффициент конверсии, для измерения удовлетворенности пользователей.
1.3.2 Точность прогнозирования Точность
Точность прогнозирования измеряет способность рекомендательной системы или алгоритма рекомендаций предсказывать поведение пользователя. Этот показатель является наиболее важным индикатором офлайн-оценки. Поскольку офлайн-данные можно рассчитать, большинство исследователей обсуждают именно этот показатель.
Задача прогнозирования подсчета очков обычно использует RMSE, MAE и т. д., а задача прогнозирования TopN обычно использует полноту, точность и т. д.
На самом деле, во многих местах и материалах в Китае путают названия двух индикаторов, а точность соответствует английскому индикатору точности. Однако лучше использовать как можно больше английского языка.
Точность = (TP + TN) / (TP + FP + TN + FN)
PrecisionPrecision=TP/(TP+FP)
1.3.3 Зона покрытия
Покрытие описывает способность рекомендательной системы обнаруживать длинный хвост элементов. Покрытие можно определить разными способами, самый простой расчет — это количество элементов в списке рекомендаций, деленное на общее количество элементов.
В теории информации и экономике для определения охвата используются два хорошо известных показателя: информационная энтропия и коэффициент Джини. Конкретную формулу и введение можно найти в гугле.
PS: Длинный хвост — это общий термин в рекомендательных системах. Приведу пример, который поможет вам понять: в магазине из-за ограниченности полок и места товары, размещенные на самых видных местах, обычно являются известными, популярными и, следовательно, имеют лучшие продажи. Многие малоизвестные или малоизвестные товары плохо продаются, потому что находятся в углах прилавков или вообще отсутствуют на полках. В эпоху Интернета это явление будет нарушено. Электронный торговый центр имеет почти бесконечно длинную «полку», на которой может быть выставлено множество товаров для удовлетворения потребностей пользователя в нише, так что общий объем продаж намного превысит предыдущую модель.
Google — типичная компания с «длинным хвостом», и процесс ее роста — это процесс коммерциализации «длинного хвоста» рекламодателей и издателей. Миллионы малых предприятий и частных лиц, которые никогда не размещали рекламу раньше или в больших масштабах. Они настолько малы, что рекламодатели даже не думают, что они могут размещать рекламу. Но Google AdSense снизил рекламный порог: реклама больше не недосягаема, это самопомощь, дешево, и это может сделать каждый; для коммерческих веб-сайтов размещение рекламы на собственном сайте стало простой задачей. Половина бизнеса Google в настоящее время приходится на эти небольшие сайты, а не на рекламу, размещенную в результатах поиска. Миллионы малых и средних предприятий представляют собой огромный рекламный рынок с длинным хвостом. Никто не может предсказать, насколько длинным может быть этот длинный хвост. Скопление бесчисленных десятичных знаков — это неизмеримо большое число, а скопление бесчисленных малых предприятий — это неизмеримо большой рынок.
1.3.4 Разнообразие
Интересы пользователей разнообразны, и рекомендательная система должна охватывать предпочтения пользователей в различных аспектах. Здесь есть предположение, что если список рекомендаций более разнообразен и охватывает различные интересы пользователей, то вероятность действительно зацепить интерес пользователя будет выше, что повысит вероятность того, что пользователь найдет интересующие его элементы.
1.3.5 Новизна
Новые рекомендации относятся к рекомендациям пользователям элементов, о которых они раньше не слышали. Исследование пользователей необходимо для точного подсчета новизны.
1.3.6 Степень неожиданности
Если результат рекомендации не подобен историческому интересу пользователя, но заставляет пользователя чувствовать себя удовлетворенным, то можно сказать, что результат рекомендации имеет высокую степень неожиданности, а новизна рекомендации зависит только от того, имеет ли пользователь слышал о результате рекомендации.
1.3.7 Доверие
Степень доверия пользователей к рекомендательной системе. Если пользователь доверяет рекомендательной системе, это увеличит взаимодействие между пользователем и рекомендательной системой. Особенно в системе рекомендаций электронной коммерции очень важно, чтобы пользователи доверяли результатам рекомендаций. Для того же результата рекомендации, рекомендация пользователям способом, которому пользователи доверяют, с большей вероятностью побудит пользователей захотеть купить, в то время как рекомендация пользователям способом, аналогичным рекламе, может быть трудной для того, чтобы пользователи захотели купить. Есть два основных способа повысить доверие к рекомендательной системе. В первую очередь необходимо повысить прозрачность рекомендательной системы, а основной способ повышения прозрачности рекомендательной системы — предоставление пояснений к рекомендациям. Во-вторых, рассмотреть информацию о социальной сети пользователя, использовать информацию о друзьях пользователя, чтобы давать рекомендации пользователю, и использовать друзей, чтобы объяснить рекомендацию.
1.3.8 В режиме реального времени
На многих веб-сайтах, поскольку элементы (новости, Weibo и т. д.) имеют высокую своевременность, необходимо рекомендовать элементы пользователям, когда они еще актуальны. Поэтому на этих веб-сайтах очень важна производительность рекомендательной системы в реальном времени.
Производительность рекомендательных систем в реальном времени включает два аспекта. Во-первых, рекомендательная система должна обновлять список рекомендаций в режиме реального времени, чтобы соответствовать новым изменениям в поведении пользователей. Второй аспект работы в режиме реального времени заключается в том, что рекомендательная система должна иметь возможность рекомендовать пользователю новые элементы, добавленные в систему. В основном это проверяет способность рекомендательной системы обрабатывать холодный запуск элементов.
1.3.9 Надежность
Измеряет способность рекомендательной системы бороться с мошенничеством. Для оценки надежности алгоритма в основном используются смоделированные атаки. Во-первых, при наличии набора данных и алгоритма этот алгоритм можно использовать для создания списков рекомендаций для пользователей в этом наборе данных. Затем шумовые данные вводятся в набор данных с использованием обычных методов атаки, а затем алгоритм используется для создания списка рекомендаций для пользователя снова в наборе данных с введенным шумом. Наконец, надежность алгоритма оценивается путем сравнения сходства списков рекомендаций до и после атаки. Если список рекомендаций после атаки существенно не меняется по сравнению с тем, что было до атаки, это означает, что алгоритм относительно надежен.
1.3.10 Бизнес-цели
Во многих случаях система оценки и рекомендаций уделяет больше внимания тому, достигнута ли бизнес-цель, а бизнес-цель и модель получения прибыли тесно связаны. Вообще говоря, наиболее важной бизнес-целью является прибыль, которую средний пользователь приносит компании. Тем не менее, такой индикатор несложно рассчитать, но для однократного расчета требуется относительно большая цена. Поэтому многие компании разрабатывают разные бизнес-цели в соответствии со своими моделями прибыли.
1.3.11 Ссылки
Существует много связанных исследований и материалов по оценке рекомендательных систем.Для подробного исследования, пожалуйста, прочитайте и обратитесь к:
- "Система рекомендаций на практике》
- "Evaluating Recommendation Systems》
- What metrics are used for evaluating recommender systems?
2. Общие алгоритмы
Эволюцию рекомендательного алгоритма можно просто разделить на три этапа, что также является итерацией рекомендательной системы от простого к сложному.
2.1 Эволюция алгоритма рекомендаций
2.1.1 Ручное управление
Этот этап является случайным, и вручную выдвигается конкретный контент для определенных категорий пользователей в соответствии с оперативными целями.
Преимущество:
- Для облегчения продвижения конкретного контента;
- Рекомендуемый контент легко объяснить;
слабость это:
- Тысяча человек, один и тот же контент толкнул;
- Ручной просмотр, толчок, потребляет много рабочей силы;
- Операция основана на собственном знании, и субъективность относительно велика;
2.1.2 Рекомендации на основе статистики
Рекомендации будут даваться на основе каких-то простых статистических знаний, таких как горячий список, который продается лучше всего в определенной стране, более подробные, пользователи будут разделены по их личным характеристикам, а затем будут искать различные горячие списки.
Преимущество:
- Популярность — это то, что предпочитает большинство пользователей, и эффект хороший;
- Рекомендуемый контент легко объяснить;
слабость это:
- Тысяча человек, один и тот же контент толкнул;
- Эффект Матфея, популярное будет становиться все более и более популярным, а непопулярное будет становиться все более и более непопулярным;
- Эффект легко достичь потолка;
2.1.3 Персональные рекомендации
Рекомендации на текущем этапе будут основываться на алгоритмах коллаборативной фильтрации, алгоритмах на основе моделей и социальных отношениях.Постепенно внедряются машинное обучение и глубокое обучение для улучшения рекомендательного эффекта.
Преимущество:
- Эффект намного лучше, чем раньше;
- Перед тысячами людей у каждого есть свой уникальный список рекомендаций;
слабость это:
- Порог высокий, а построение рекомендательной системы, разработка алгоритма, настройка и т. д. предъявляют высокие требования к разработчикам;
- Стоимость высока, и это долгосрочный итеративный процесс оптимизации с большими человеческими и материальными вложениями;
2.2 Краткое изложение рекомендуемых алгоритмов
Обычно используется внутренний рекомендательный алгоритм, который разделяет такие классификации:
В чем разница между упомянутым здесь алгоритмом на основе памяти и алгоритмом на основе модели? Это также проблема, которая меня беспокоила раньше, и я нашел некоторую информацию и объяснил ее более подробно.
Методы на основе памяти используют данные (лайки, голоса, клики и т. д.), которые у вас есть, чтобы установить корреляции (сходства?) между пользователями (совместная фильтрация) или элементами (рекомендация на основе контента), чтобы рекомендовать элемент i пользователю u. которые никогда не видели его раньше. В случае совместной фильтрации мы получаем рекомендации от элементов, которые видели самые близкие к вам пользователи, отсюда и термин «совместный». жанр, актеры, издатель или автор книги… и т. д.), чтобы рекомендовать похожие новинки.
В двух словах, методы, основанные на памяти, в значительной степени полагаются на простые меры сходства (косинусное сходство, корреляция Пирсона, коэффициент Жаккара и т. д.), чтобы сопоставлять похожих людей или предметы вместе Если у нас есть огромная матрица с пользователями в одном измерении и элементами в другом , с ячейками, содержащими голоса или лайки, тогда методы на основе памяти используют меры подобия для двух векторов (строк или столбцов) такой матрицы, чтобы сгенерировать число, представляющее сходство.
Методы на основе моделей, с другой стороны, пытаются еще больше заполнить эту матрицу.Они решают задачу «угадать», насколько пользователю понравится элемент, с которым он раньше не сталкивался.Для этого они используют несколько алгоритмов машинного обучения для обучения. вектор элементов для конкретного пользователя, затем они могут построить модель, которая может предсказать рейтинг пользователя для нового элемента, который только что был добавлен в систему.
Так как я буду работать над новостными рекомендациями, последний способ звучит намного интереснее, особенно учитывая то, что новости появляются очень быстро (и также очень быстро исчезают), имеет смысл, чтобы система разработала какой-то умный способ обнаружения, когда новая часть новость будет интересна пользователю еще до того, как ее увидят/оценят другие пользователи.
Popular model-based techniques are Bayesian Networks, Singular Value Decomposition, and Probabilistic Latent Semantic Analysis (or Probabilistic Latent Semantic Indexing). For some reason, all model-based techniques do not enjoy particularly happy-sounding names.
В статье «Практика алгоритма персонализированных рекомендаций Ctrip» модель сортировки, используемая в отрасли, была разобрана и примерно прошла три этапа:
В этой статье не рассматриваются подробно принципы вышеперечисленных алгоритмов, это будет сложнее, и вы можете изучить их самостоятельно, если вам интересно.
2.3 Пример алгоритма CF
Чтобы узнать технические знания об этой части, я принял участие в конкурсе рекомендаций srtc, который проводился внутри компании. Основное внимание уделяется участию, в основном для того, чтобы изучить весь базовый процесс, испытать рекомендуемые сценарии и понять, как выглядят внутренние команды и продукты Tencent.
2.3.1 (Внутренняя конфиденциальная информация, удалена)
2.3.2 Алгоритм CF
Немного на веб-платформе может потерять смысл обучения. Поэтому в духе обучения я реализовал некоторые часто используемые алгоритмы, такие как CF, на своей автономной машине.
В рекомендательном алгоритме CF встречается относительно часто, а ядро по-прежнему очень простое.
- основы user-cf
А. Найдите набор пользователей со схожими интересами с целевым пользователем, Б. Найдите в этом наборе элементы, которые нравятся пользователю и о которых целевой пользователь не слышал, и порекомендуйте целевому пользователю.
- основы item-cf
А. Рассчитайте сходство между элементами, Б. Создайте список рекомендаций для пользователя в соответствии со сходством элементов и историческим поведением пользователя.
В сочетании с предыдущим резюме, cf относится к алгоритму на основе памяти, и его важной особенностью является то, что используется функция сходства. Этот user-cf должен вычислять сходство интересов пользователей, а item-cf — вычислять сходство между элементами. В зависимости от выбора функции подобия, выбора языка программирования, выбора реализации и оптимизации результаты и общее время выполнения могут сильно различаться. В то время это было просто реализовано на питоне, одновременно работало 8 процессов, и на выполнение уходило почти 10 часов. Позже я узнал, что в нижней части оптимизированы pandas, numpy и т. д. На основе этих инструментов скорость реализации будет намного быстрее.
2.3.3 Сбор урожая
Ха-ха, это первый раз, когда я участвовал в такого рода соревнованиях.Хотя мои оценки были плохими, я чувствовал, что многому научился и в основном достиг цели участия в конкурсе. Подумайте о различных влияющих факторах в реальных сценариях и данных и испытайте различные алгоритмы на этапах проектирования, реализации, обучения, оценки и других этапов, и многие вещи действительно более глубокие, чем чтение материалов и книг.Ведь практика — лучший способ научиться. Если вы хотите углубиться в алгоритм рекомендаций, я чувствую, что вам нужно продолжать изучать принципы и негласные правила различных популярных алгоритмов, больше практиковаться на kaggle и использовать связанные платформы и инженерные возможности.
3. Исследование системы отраслевых рекомендаций
Собрав и изучив некоторые статьи в Интернете, которые обобщают реализацию рекомендательной системы, вы сможете расширить свой кругозор и углубить общее понимание.
Ниже приведены лишь некоторые из важных материалов, вы можете прочитать исходный текст, если вам интересно:
- «Сегодняшние принципы алгоритма Toutiao»,Оригинальная ссылка
- «Изучение и применение алгоритмов рекомендаций в небольшом товарном пуле Xianyu»,Оригинальная ссылка
- «Система рекомендаций Ele.me: от 0 до 1»,Оригинальная ссылка
- «Практика сортировки персонализированных рекомендаций IQIYI»,Оригинальная ссылка
- «Практика алгоритма персонализированных рекомендаций Ctrip»,Оригинальная ссылка
- «Рекомендуемая инженерная практика Могуцзе»,Оригинальная ссылка
3.1 Система рекомендаций Toutiao
Доктор Хуанхуань Цао, архитектор алгоритма Toutiao, сделал доклад «Принцип алгоритма Toutiao». В основном он включает 4 части: обзор системы, анализ контента, пользовательские теги и анализ оценки.
- Четыре типа типичных рекомендуемых функций
Первая категория — это функции релевантности, которые оценивают атрибуты контента и его соответствие пользователю. Вторая категория — характеристики окружающей среды, включая географическое положение и время. Это обе функции смещения, и их также можно использовать для создания некоторых соответствующих функций. Третья категория – тепловые характеристики. Включая глобальную популярность, популярность категории, популярность темы, популярность ключевого слова и т. д. Четвертая категория — синергетические свойства, которые могут частично помочь решить так называемую проблему алгоритмического сужения.
- Что касается обучения модели, большинство рекомендуемых продуктов Toutiao используют обучение в режиме реального времени.
Что касается обучения моделей, большинство рекомендуемых продуктов Toutiao используют обучение в реальном времени. Обучение в режиме реального времени экономит ресурсы и обеспечивает быструю обратную связь, что очень важно для продуктов с информационными потоками. Пользователю нужна информация о поведении, которая может быть быстро зафиксирована моделью и возвращена в рекомендательный эффект следующей кисти. В настоящее время мы обрабатываем образцы данных онлайн на основе кластера Storm в режиме реального времени, включая такие типы действий, как щелчок, отображение, сбор и совместное использование. Сервер параметров модели представляет собой высокопроизводительную систему, разработанную внутри компании. Поскольку размер данных Toutiao растет слишком быстро, стабильность и производительность аналогичных систем с открытым исходным кодом не могут быть удовлетворены. Нижний уровень нашей собственной разработки системы множество целевых оптимизаций, предоставляющих инструменты для улучшения эксплуатации и обслуживания, чтобы лучше адаптироваться к существующим бизнес-сценариям.
В настоящее время модель рекомендательного алгоритма Toutiao относительно велика в мире, включая десятки миллиардов исходных признаков и миллиарды векторных признаков. Общий процесс обучения заключается в том, что онлайн-сервер записывает функции в реальном времени, импортирует их в очередь файлов Kafka, а затем импортирует кластер Storm для использования данных Kafka.Клиент отправляет обратно рекомендуемую метку для создания обучающих образцов, а затем проводит онлайн-обучение обновлению параметров модели на основе последних образцов.Окончательная онлайн-модель обновляется. Основной задержкой в этом процессе является задержка обратной связи с пользователем, потому что пользователь может не обязательно читать статью сразу после того, как статья будет рекомендована.Независимо от этой части времени, вся система работает практически в режиме реального времени.
Однако, поскольку текущий контент Toutiao очень велик, а небольшой видеоконтент имеет десятки миллионов уровней, рекомендательная система не может предсказать весь контент по модели. Следовательно, необходимо разработать некоторые стратегии отзыва, и каждый раз, когда это рекомендуется, библиотека контента с тысячью уровнями будет отсеиваться от массивного контента. Наиболее важным требованием стратегии отзыва является то, что производительность должна быть экстремальной.Как правило, тайм-аут не может превышать 50 миллисекунд.
- Проблемы разработки пользовательских тегов больше
Анализ контента и пользовательские теги — два краеугольных камня рекомендательных систем. Контент-анализ включает в себя больше контента машинного обучения по сравнению с более сложной разработкой пользовательских тегов. Обычно используемые пользовательские теги в Toutiao включают категории и темы, представляющие интерес для пользователей, ключевые слова, источники, кластеризацию пользователей на основе интересов и различные функции вертикального интереса (модели, спортивные команды, акции и т. д.). Есть также пол, возраст, местонахождение и другая информация. Информация о поле получается путем входа в стороннюю социальную учетную запись пользователя. Информация о возрасте обычно предсказывается моделью, оценивается моделью, распределением времени чтения и т. д. Местонахождение резидента исходит из авторизации пользователя на доступ к информации о местоположении, и на основе информации о местоположении местонахождение резидента получается с помощью традиционного метода кластеризации. В сочетании с другой информацией резидентная точка может сделать вывод о местонахождении пользователя, его командировке и местонахождении. Эти пользовательские теги очень полезны для рекомендаций.
Конечно, самый простой пользовательский тег — это тег просмотренного контента. Но здесь задействованы некоторые стратегии обработки данных. В основном включают: Во-первых, шум фильтра. Отфильтруйте заголовки вечеринок по коротким кликам. 2. Горячее наказание. Действия пользователя над некоторыми популярными статьями (например, новостями PG One некоторое время назад) понижены. Теоретически, для контента с более широким диапазоном доверие упадет. 3. Распад времени. Интересы пользователей будут меняться, поэтому стратегия больше ориентирована на новое поведение пользователей. Следовательно, по мере увеличения количества действий пользователя вес старых функций со временем будет уменьшаться, а веса функций, вносимые новыми действиями, будут увеличиваться. В-четвертых, отображение наказания. Если статья, рекомендованная пользователю, не была нажата, веса соответствующей функции (категории, ключевого слова, источника) оштрафованы. Конечно, в то же время мы также должны учитывать глобальный фон, есть ли больше связанных толчков контента и связанных сигналов закрытия и неприязни.
- Кластер Hadoop находится под слишком большой нагрузкой, запущена система потоковых вычислений кластера Storm.
столкнуться с этими проблемами. В конце 2014 года Toutiao запустила кластерную систему потоковых вычислений Storm с пользовательской маркировкой. После перехода на потоковую передачу, если происходит обновление действий пользователя, метка обновляется, затраты ЦП относительно невелики, можно сэкономить 80% времени ЦП, а накладные расходы на вычислительные ресурсы значительно сокращаются. В то же время только десятки машин могут поддерживать обновление моделей интересов десятков миллионов пользователей каждый день, а скорость обновления функций очень высока, что в основном может быть квази-реальным временем. Эта система используется с момента ее запуска.
- Многие компании плохо справляются с алгоритмами не потому, что инженеры недостаточно способны, а потому, что им нужна мощная экспериментальная платформа и удобные инструменты экспериментального анализа.
Принцип системы A/B-тестирования
Это основной принцип экспериментальной системы Toutiao A/B Test. Сначала мы разделим пользователей на корзины в офлайн-состоянии, а затем раздадим экспериментальный трафик онлайн, пометим пользователей в корзинах и назначим их в экспериментальную группу. Например, откройте эксперимент с трафиком 10%, две экспериментальные группы по 5%, одна 5% — базовая, стратегия такая же, как на онлайн-рынке, а другая — новая стратегия.
Во время эксперимента действия пользователей будут собираться, в основном, в квазиреальном времени, и их можно будет увидеть каждый час. Однако, поскольку почасовые данные колеблются, они обычно просматриваются в днях. После сбора экшена будет обработка лога, распределенная статистика и запись в базу, что очень удобно.
3.2 Исследование и применение алгоритма рекомендаций в небольшом товарном пуле Xianyu
- Процесс персонализированных рекомендаций в Xianyu
Алгоритм персонализированных рекомендаций по продукту в основном включает два этапа: соответствие и рейтинг. Этап соответствия также называется этапом отзыва продукта. В системе рекомендаций поведение пользователя в отношении продукта называется триггером пользователя. Матрица поведения и элементов называется X2I, и, наконец, отзыв элемента выполняется через пользовательский триггер и матрицу отношений X2I. Этап ранжирования использует целевые функции различных показателей для оценки продуктов и всесторонне ранжирует несколько параметров продуктов в соответствии с правилами системы рекомендаций. Ниже в качестве примера взята лента домашней страницы Xianyu, чтобы кратко представить процесс персонализированных рекомендаций Xianyu.
Как показано на шаге 1.1, пользовательский триггер получается с использованием информации о пользователе, информация о пользователе включает в себя уникальный идентификатор пользователя userId и уникальный идентификатор информации об устройстве пользователя uttid.
Как показано на шаге 1.2, верните пользовательский триггер, который включает клики пользователя, приобретенные продукты, избранные категории, пользовательские теги, часто посещаемые магазины, товары в корзине, любимые бренды и т. д.
Как показано на шаге 1.3, выполните отзыв товаров и используйте триггер и матрицу X2I для объединения, чтобы завершить отзыв товаров.
Как показано на шаге 1.4, возвращается список отозванных товаров При отзыве товаров товары, отозванные матрицей отношений I2I, обычно являются основными продуктами, а отзыв других матриц отношений X2I является вспомогательным.
Шаг 2.1. Выполните фильтрацию продуктов, удалите дубликаты отозванных продуктов, отфильтруйте приобретенные продукты и устраните избыточные продукты.
Как показано на шаге 2.2, продукт оценивается.На этапе оценки itemInfo и различные индикаторы алгоритма используются для оценки продукта по нескольким параметрам.
Шаг 2.3: Отсортируйте товары и всесторонне отсортируйте баллы по нескольким параметрам товаров в соответствии с правилами.
Шаг 2.4, усеките возвращенный список, усеките элементы TopN и верните их пользователю.
Xianyu завершает рекомендацию продуктов через восемь вышеуказанных шагов Match and Rank, В то же время из рисунка видно, что для поддержки персонализированной рекомендации продуктов необходимо вернуть данные X2I, itemInfo и userTrigger. в поисковую систему.Данные уровня перекомпоновки и почасовые данные перекомпоновки уровня.
- Особенности мелких товаров
Мелкий товарный пул имеет следующие характеристики.
в реальном времени: В небольшом товарном пуле, созданном Xianyu, требуется, чтобы товары могли поступать в товарный пул в соответствии с этим правилом в режиме реального времени, предоставляя пользователям новейшие высококачественные товары.
периодический: в пуле мелких товаров многие товары имеют периодические атрибуты. Например, в аукционе с бесплатной доставкой цикл аукциона составляет 6 часов, и он будет удален через 6 часов.
В настоящее время большинство страниц руководств по покупкам в каналах по-прежнему используют поисковые системы для представления продуктов пользователям.Чтобы обеспечить показ продуктов, временное окно поиска обычно используется для дальнейшей фильтрации продуктов в пуле продуктов, но все еще существует проблема воздействия продукта.Если временное окно слишком велико, то это приведет к передержке продуктов.Если окно продукта слишком мало, это приведет к недодержке продуктов.В то же время, есть проблема которые не решаются поиском.В то же время продукты, которые видит каждый пользователь, одинаковы, и невозможно персонализировать пользователя.Для дальнейшего улучшения обслуживания пользователей, малый товарный пул срочно нуждается в внедрении персонализированных рекомендация.
- Рекомендуемые решения для небольших товарных пулов
В процессе рекомендации продуктов в небольшом товарном пуле с использованием всех данных сайта X2I, приведенных выше, было обнаружено, что на этапе сопоставления, когда малый товарный пул слишком мал, возникает проблема недостаточного отзыва товаров. Для того, чтобы увеличить количество эффективных отзывов в процессе рекомендации малого товарного пула, следующие предложения Три решения.
фильтровать заранее: перед тем, как данные будут возвращены в поисковую систему, пул мелких товаров фильтрует данные для создания данных возврата пула мелких товаров.На этапе отзыва товаров X2I пула мелких товаров используется для отзыва товаров. , чтобы улучшить скорость отзыва товаров.
Векторизация товаров: использовать векторное сходство для отзыва продукта на этапе сопоставления.Векторизация продукта использует возможность векторного поиска для сопоставления характеристик и правил продукта с векторами продукта с помощью функций, а также для сопоставления пользовательских триггеров и правил с пользовательскими векторами и векторами преобразования текста. -модель слов и методы машинного обучения широко используются.Модель мешка слов может эффективно идентифицировать текст с векторами слов, когда длина текста короткая.Однако, когда длина текста слишком длинная, она ограничена размером мешок слов. Если мешок слов слишком мал, эффект будет уменьшен. Очень плохо, метод машинного обучения заключается в использовании Word2Vector для преобразования текста в вектор. Согласно эмпирическому значению, размерность вектора обычно составляет 200 измерений , и эффект лучше. Затем поисковая система векторов используется для поиска похожих векторов товаров в соответствии с пользовательскими векторами, которые используются в качестве отозванных товаров. Как показано на рисунке 5, вектор продукта разделен на две части, первые 20 цифр представляют правила продукта, а последние 200 цифр представляют основную информацию о свойствах продукта.
Закон о поисковой системе товаров: используйте поисковую систему товаров, чтобы вызвать товар на этапе сопоставления, как показано на рис. 6, когда товар поступает в поисковую систему, изучите структуру товара, добавьте тег и правила в поисковую систему товаров, а затем используйте пользовательский триггер и правила как условия поиска, используйте поисковую систему для полного отзыва товара. Естественный характер работы поисковых систем в режиме реального времени решает проблему надежной рекомендации небольших товарных пулов в режиме реального времени.
3.3 Система рекомендаций Ele.me: от 0 до 1
Для любого внешнего запроса система создаст QueryInfo (запрос-запрос) и извлечет UserInfo (информацию о пользователе), ShopInfo (информацию о продавце), FoodInfo (информацию о продуктах питания) и информацию о конфигурации ABTest из различных источников данных, а затем вызовет Ranker для сортировки. . Ниже приведен основной процесс сортировки (как показано на рисунке ниже):
#Вызываем RankerManager, инициализируем сортировщик Ranker:
- В соответствии с информацией о конфигурации ABTest построить сортировщик Ranker;
- Вызвать ScorerManger, указать нужный Scorer Scorer (несколько), при этом Scorer получит соответствующую Модель из ModelManager и проверит ее;
- Вызовите FeatureManager, укажите и проверьте функции, требуемые счетчиком.
#Вызов InstanceBuilder, суммирование характеристик всех счетчиков и вычисление характеристик, необходимых для сортировки соответствующего элемента сортировки EntityInfo (ресторан/еда);
# Оценка EntityInfo и сортировка записей по мере необходимости.
Здесь необходимо пояснить, что любая модель Model должна отображаться или вызываться в виде Scorer. В основном исходя из следующих соображений:
- Итерация модели: например, одна и та же модель может создавать несколько версий на основе времени, местоположения, выборки данных и т. д.;
- Параметры модели: такие как настройки веса и округления в режиме комбинирования (см. следующий раздел), поддерживает ли модель распараллеливание и т. д.;
- Параметры объекта: Параметры расчета объекта объекта, такие как расстояние, имеют разные параметры сегментации в разных городах.
3.4 Практика ранжирования персонализированных рекомендаций iQIYI
Наша рекомендательная система в основном разделена на два этапа: этап отзыва и этап ранжирования.
На этапе отзыва небольшой набор кандидатов (от сотен до тысяч видео) выбирается из видеотеки, состоящей из десятков миллионов, в соответствии с интересами пользователя и историческим поведением. Этими кандидатами является весь интересующий пользователя контент. На этом основании этап сортировки выполняет более точные расчеты, которые могут точно оценить каждое видео, а затем отобрать небольшое количество качественных, которые больше всего интересуют пользователя, из тысячи кандидатов Контент (десяток видео).
Общая структура рекомендательной системы показана на рисунке, а функции каждого модуля следующие:
Портрет пользователя: он включает в себя многомерный анализ атрибутов толпы пользователя, историческое поведение, содержание интересов и тенденцию предпочтений, что является краеугольным камнем персонализации.
Разработка функций: включает в себя полный набор описаний и показателей, таких как атрибуты категорий видео, анализ контента, предпочтения аудитории и статистические функции, и является основой для анализа видеоконтента и качества.
Алгоритм отзыва: модель отзыва, включающая несколько каналов, таких как совместная фильтрация, тематические модели, отзыв контента и каналы SNS, которые могут выбирать разнообразный предпочтительный контент из видеотеки.
Модель сортировки: выполните одинаковую оценку и сортировку содержимого нескольких каналов отзыва и выберите оптимальное небольшое количество результатов.
В дополнение к этому система рекомендаций также учитывает разнообразие результатов рекомендаций, свежесть, силу и неожиданность и другие параметры, которые могут лучше удовлетворить потребности разнообразия пользователей.
Затем представлена архитектура системы ранжирования рекомендаций и эволюция алгоритма ранжирования рекомендательного машинного обучения.
3.5 Практика алгоритма персонализированных рекомендаций Ctrip
Процесс рекомендации можно условно разделить на три части: отзыв, сортировка и генерация результатов рекомендаций.Общая архитектура показана на рисунке ниже.
На этапе отзыва в основном используются инженерия данных и алгоритмы для блокировки конкретных наборов кандидатов из десятков миллионов продуктов и завершения предварительного отбора продуктов, что в определенной степени определяет эффективность этапа сортировки, а также плюсы и минусы рекомендуемых результатов. .
Более традиционными алгоритмами в отрасли являются в основном CF[1][2], основанные на статистике контекстные рекомендации и LBS, но в последнее время широко внедряется глубокое обучение, и алгоритм значительно улучшен, например: Netflix и Gravity R&D. Inc в 2015 г. Предлагаемая рекомендация на основе сеанса с использованием RNN [5], комбинация CNN и PMF, предложенная в Recsys в 2016 г., применяется к контекстно-зависимой рекомендации [10], а DNN как продвижение MF, предложенное Google в 2016 г. могут быть легко использованы.В модель добавлены произвольные непрерывные и категориальные функции [9] и рекомендации по последовательности с LSTM, предложенные на конференции IJCAI 2017 года [6]. Глубокая модель aSDAE, предложенная командой персонализации Ctrip на конференции AAAI в 2017 году, может улучшить разреженность данных и проблемы холодного запуска за счет интеграции дополнительной побочной информации во входные данные [4].
Для набора кандидатов, полученного на этапе отзыва, он будет оцениваться и переупорядочиваться более сложно и точно, а затем будет получен меньший список продуктов, которые могут заинтересовать пользователей. Рейтинг рекомендаций Ctrip основан не только на рейтинге кликов или коэффициенте конверсии, но также должен учитывать такие факторы, как дистанционный контроль и контроль качества продукта. По сравнению с парными и списочными методами, которые подходят для ранжирования поиска, извлечения релевантности текста и других полей, поточечный метод может вмешиваться, накладывая другие элементы управления, и подходит для многокритериальных задач оптимизации.
Рекомендуемые в отрасли методы испытали развитие линейных моделей + большое количество искусственных признаков [11] -> сложные нелинейные модели -> глубокое обучение. Microsoft впервые предложила использовать логистическую регрессию для оценки кликабельности поисковых рекламных объявлений в 2007 году [12], и в том же году предложила алгоритм оптимизации OWLQN для решения задачи LR с регулярностью L1 [13], а затем предложила L2. алгоритм на основе закономерностей в 2010 году. Онлайн-обучающая версия Ad Predictor [14].
В 2013 году Google предложил алгоритм LR-оптимизации FTRL-Proximal, основанный на регуляризации L1 [15]. Алгоритм факторизационной машины [17], предложенный в 2010 году, и файловая машина факторизации [18], предложенная в 2014 году, направлены на решение проблемы комбинирования признаков при разреженных данных, тем самым избегая большого количества ручной работы по комбинированию признаков, необходимой при использовании LR.
Али предложил Mixture of Logistic Regression в 2011 году для изучения нелинейных отношений между функциями непосредственно в исходном пространстве [19]. В 2014 году Facebook предложил использовать GBDT для автоматического объединения функций и интегрировать логистическую регрессию [20].
В последние годы глубокое обучение также успешно применяется в области ранжирования рекомендаций. В 2016 году Google предложил метод широкого и глубокого обучения [21], который объединил возможности памяти и обобщения модели. Далее Huawei предложила модель DeepFM [15] для замены части искусственного сочетания функций в wdl. Али представил механизм внимания в 2017 году и предложил Deep Interest Network [23].
Ctrip накопил некоторый опыт применения на практике соответствующих моделей, будь то наиболее часто используемая модель логистической регрессии (Logistic Regression), древовидная модель (GBDT, Random Forest) [16], машина факторизации (FactorizationMachine) и недавно предложенная wdl Модель. В то же время мы считаем, что даже в нынешнюю эпоху глубокого обучения усовершенствованная разработка признаков по-прежнему необходима.
На основе отсортированного списка окончательный результат рекомендации генерируется после учета таких факторов, как разнообразие, новизна, использование и исследование.
4. Резюме
Раньше я не подвергался рекомендательной системе, а теперь начал обращаться к этому контенту в связи с рабочей потребностью. Многие концепции и технологии не поняты, и многое нужно дополнить. Недавно я тоже участвовал во внутреннем конкурсе рекомендаций и фактически руководил раундом, параллельно начал осваивать базовые знания о рекомендательной системе, связанной с ней архитектуре и т. д., чтобы заложить необходимый фундамент для следующей работы.
Система рекомендаций — это носитель, который может существовать практически во всех продуктах, и он может ориентироваться на потребности пользователей, чтобы удовлетворять пользователей практически без промедления. Значение и эффективность, которые она представляет, намного превосходят традиционную модель. Излишне говорить, что за крутыми рекомендательными системами будущее. Но сложность здесь в том, достаточно ли хорошо работает система рекомендаций. С текущей точки зрения алгоритм рекомендаций и система рекомендаций не оправдали ожиданий людей. Потому что человеческие потребности крайне сложно угадать.
Я также подумал о статье, которую я видел на Zhihu раньше, в которой говорилось, что у многих отечественных интернет-компаний есть рабочие должности, а за границей нет специальной должности для этой должности. Я до сих пор помню, что наиболее важными причинами, анализируемыми автором, являются: иностранцы более регулярны, их жизнь и питание более однообразны, например заказ пиццы, когда они счастливы. В отличие от Китая, из тысячи блюд можно увидеть леопарда.Увлечения китайцев чрезвычайно широки и их трудно приспособить. Кроме того, иностранное рабочее время стоит очень дорого, поэтому альтернативой является использование алгоритмов, соответствующих увлечениям и потребностям пользователей, автоматическое выявление потребностей пользователей, дальнейшее культивирование и рекомендации. Это также побочная причина, по которой рекомендательная система пользуется большим уважением за рубежом. В Китае люди относительно дешевы, к тому же у китайцев вкусы все более утонченные, а алгоритм работает плохо, поэтому будет создано много спецопераций. Но постепенно я начал понимать, что это станет тенденцией.В сочетании с недавним бумом ИИ различные крупные производители постоянно совершенствуются в этой области.
Возвращаясь к рекомендательной системе, из объективных причин в реальности видно, что действительно очень сложно действительно соответствовать потребностям и увлечениям пользователей. Иногда пользователи даже не знают, чего хотят.Для китайцев нормально не иметь мнений и идей, а слишком самоуверенность противоречит стандартному ответу. Но смысл рекомендательной системы таков: если ваш продукт знает интересы пользователей и может удовлетворить их интересы, то пользователи точно будут от вас неотделимы. Продукты, без которых пользователи не могут обойтись, обязательно займут рынок, и обязательно будут чрезвычайно высокие оценки и простор для фантазии. Это также основная причина, по которой все делают рекомендательную систему, хотя ее использование глупо и эффект неудовлетворителен, но они все же готовы вкладывать большие средства.
Немного ерунды, простое резюме после предыдущего изучения, у меня еще много вещей и деталей для дальнейшего изучения и исследования. Возможности ограничены, пожалуйста, поправьте меня, если в тексте есть что-то неуместное~
(ps: Авторские права на некоторые скриншоты и текст в этой статье принадлежат оригинальному автору, и адрес источника цитируемых данных отмечен. Эта статья предназначена только для ознакомительных и кратких целей. Если есть какие-либо нарушения, пожалуйста, свяжитесь со мной. удалить его)
вопросы и ответы
Как рекомендательная система обеспечивает точную рекомендацию?
Связанное Чтение
Базовый запас знаний системы рекомендаций
Количественная оценка эффективности системы рекомендаций
Система асинхронных видеорекомендаций в реальном времени на основе портрета пользователя
Эта статья была разрешена автором для публикации в сообществе Tencent Cloud + Для получения дополнительных оригинальных текстов, пожалуйстанажмите
Найдите и подпишитесь на общедоступную учетную запись «Сообщество Yunjia», как можно скорее получите технические галантереи и ответьте на 1024 после подписки, чтобы отправить вам подарочный пакет технических курсов!
Огромный технический практический опыт, все вСообщество Юнцзя!