Giter Club home page Giter Club logo

recsys-course-spring-2024-hw2's Introduction

Рекомендательные Системы в Продакшене

О Курсе

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

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

Что нужно знать до начала курса

Базовая математика

  • Операции над векторами и матрицами.
  • Дифференцирование и нахождение минимумов функций.
  • Базовые алгоритмы и структуры данных.

Основы машинного обучения

  • Постановка задачи ML, классические алгоритмы.
  • Базовое представление о том как работают современные нейронные сети.

Технические скиллы

  • Знание языка python.
  • Знакомство с архитектурой высоконагруженных сервисов (БД + Big Data).
  • Умение писать простые запросы на PySpark.
  • Знакомство с Docker, умение запустить контейнер.
  • Умение пользоваться git.

Если вы не знакомы с какими-то из перечисленных тем, то можно будет наверстать самостоятельно по мере прохождения курса. На семинарах мы стараемся всем помогать, но мы не сможем уделять этому много времени. Поэтому при изучении тем из этого пункта рассчитывайте в основном на себя.

Лекции

Программа курса и слайды лекций лежат в папке slides.

Практика

Практическая часть курса построена вокруг музыкального рекомендера botify. На семинарах и в домашках мы будем развивать и анализировать этот рекомендер.

Prerequisites

  • Установить docker
  • Сделать virtualenv c python (я использую версию 3.7)
  • Вспомнить как пользоваться вашей любимой средой разработки (я использую PyCharm)

Общее описание задачи

Пользователи приходят в музыкальный сервис botify, чтобы послушать музыку. Сперва пользователь сам выбирает начальный трек. Когда пользователь прослушал этот трек, сервис рекомендует следующий. Пользователь может послушать рекомендованный трек или скипнуть его и перейти к следующему. Либо пользователю может надоесть и он уйдет. Как поступит пользователь зависит от качества рекомендаций: если они плохие - пользователь быстро уйдет; если хорошие – "залипнет". Последовательность прослушанных пользователем треков мы будем называть "сессией". На диаграмме ниже показан процесс одной сессии.

Взаимодействие пользователя с рекомендером botify

Цель сервиса botify – максимально долго удерживать пользователя. Возможно, мы зарабатываем на рекламе или просто хотим набрать аудиторию. Сервис меряет процент прослушки каждого трека из сессии и суммирует эти проценты, чтобы получить общую длину сессии (пренебрегаем тем, что треки могут длиться разное время – обычно песни длятся около 3 минут). Качество рекомендаций напрямую влияет на то, сколько треков послушают пользователи и какой будет процент их прослушки. Следовательно качество рекомендаций влияет на длину сессии и на успех всего сервиса в целом.

Что есть в репозитории

botify

В этом модуле лежит заготовка сервиса рекомендера. В рамках заданий работать нужно будет над кодом из этого модуля.

Описание и инструкции

sim

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

Описание и инструкции

jupyter

Ноутбуки с подготовкой данных для симулятора, визуализацией и всем таким.

recsys-course-spring-2024-hw2's People

Contributors

peter-pogorelov avatar bbawtm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.