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

Сценарий, в котором пользователю нужно показывать рекламу, — это когда он нажимает на видео.

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

Откуда будет поступать реклама?

Объявления будут частью списка/базы данных. Список будет поступать от рекламодателей, которые хотят разместить рекламу на веб-сайте. Создатель рекламы может создавать рекламу со следующими функциями.

  1. Название объявления
  2. Рекламное видео
  3. Объявление ForwardLink
  4. Возраст аудитории, геолокация, пол, предпочтения (по ключевым словам)
  5. Частота рекламы
  6. Дата окончания
  7. Общее количество показов объявлений

Микросервисы:

Первоначальная настройка (запросить URL-адрес видео):

Предположим, что существует микросервис «запрос URL-адреса видео», который предоставляет список URL-адресов видео для воспроизведения. мы можем использовать этот микросервис для вставки нашего рекламного URL-адреса в начале видео или между ними для воспроизведения.

Получить рекламу:

«Запрос URL-адреса видео» вызовет этот микросервис, чтобы получить список объявлений для воспроизведения, в зависимости от длины видео, этот микросервис может предоставить k объявлений. Эти k объявлений будут размещены в видео, а затем возвращены в проигрыватель. (Размещение видео также может быть оптимизировано). Этот микросервис сначала получит список рекламы из базы данных, которую нужно воспроизвести, и с помощью микросервиса «Получить наиболее релевантную» решит, какая реклама должна быть возвращена. Решение будет поддерживаться журналами для пользователя, т. Е. Список успешных объявлений, воспроизведенных для этого пользователя, список заявленных объявлений (нерелевантных), последнее воспроизведенное объявление. В случае отсутствия релевантного объявления он вызовет службу «Рейтинг объявлений», чтобы добавить возможные объявления в список.

Рейтинг рекламы:

Объявления в основном списке будут отфильтрованы, чтобы предоставить список объявлений на основе местоположения пользователя, возраста, пола и т. д. Профиль пользователя также будет извлечен для создания контекста. На основе показателя схожести, количества показов и времени, оставшегося до окончания показа объявления. база данных userId, AdId будет обновлена.