Создание рекомендательной системы с использованием машинного обучения

Введение

Мы все видели множество автоматических рекомендательных систем повсюду, несколько хорошо известных из них — Netflix, Amazon, Youtube, LinkedIn и т. д. В этой серии статей давайте посмотрим, как создать рекомендательную систему с использованием машинного обучения с нуля. В рамках этой серии я хотел бы показать, как мы можем создать структуру для применения различных алгоритмов машинного обучения к реальному набору музыкальных данных для прогнозирования рекомендаций плейлиста/песен. Мы будем использовать четыре основных подхода, таких как фильтрация на основе контента, совместная фильтрация, методы на основе моделей и глубокие нейронные сети.

Шаги, которые мы выполняем для создания рекомендательной системы, приведены здесь:

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

Часть 1. Создание среды разработки

Мы хотели бы избежать ситуаций работает на нашей машине и попытаться найти систему, доступную для всех, чтобы они могли попробовать запустить этот код проекта. Я использовал Google Colab для других проектов. По сути, это бесплатная среда для ноутбуков Jupyter, полностью работающая в облаке. Я также использовал GitHub Codespaces, но я хотел бы попробовать Gitpod для этого проекта, потому что он предоставляет рабочее пространство, которое включает в себя: исходный код, оболочку Linux с root/sudo, файловую систему, полный опыт редактирования VS Code, включая расширения, языковую поддержку. и все другие инструменты и двоичные файлы, работающие в Linux. Нажмите на ссылку, если хотите настроить среду разработки Codespaces. Давайте посмотрим, как создать и настроить ваше первое рабочее пространство Gitpod ниже.

Я предполагаю, что у вас уже есть учетная запись GitHub, если не зарегистрируйте бесплатную учетную запись здесь. Как только вы получите учетную запись GitHub, войдите в свою учетную запись GitHub в браузере и создайте новый репозиторий, назовем его RecSys. После его создания вы попадете на кодовую страницу этого репозитория.

Затем давайте добавим кнопку «Открыть в Gitpod», чтобы упростить запуск рабочей области Gitpod для этого проекта, как показано ниже, заменив «url-проекта» на URL-адрес репозитория GitHub. Кроме того, мы также можем установить расширение браузера Gitpod.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#<project-url>)
Ex: [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/nsanka/RecSys)

Индивидуальная настройка проекта

Нажмите кнопку Добавить файл -> Создать новый файл в основной папке вашего репозитория. В поле имени файла введите .gitpod.yml. Этот файл будет использоваться для применения настройки среды рабочей области для любого пользователя, который использует этот конкретный проект. Подробнее о настройке рабочих пространств Gitpod можно прочитать здесь.

# Custom Docker Image
#image:
  #file: .gitpod.Dockerfile
# List the start up tasks. 
# Learn more https://www.gitpod.io/docs/config-start-tasks/
tasks:  
  - name: Check Setup
    init: |
      python -m pip install --upgrade pip
      # Add commands to Setup Python Environment
    command: |
      clear
      echo "=============="
      echo "    Welcome   "
      echo "=============="
      pyenv versions
      echo ""
# List the ports to expose. 
# Learn more https://www.gitpod.io/docs/config-ports/
ports:
  # jupyter
  - port: 8888
    onOpen: ignore
# Install VSCode Extensions
vscode:
  extensions:
    - ms-azuretools.vscode-docker
    - ms-python.python

Настройка среды Python

В рабочих пространствах Gitpod уже установлен Python, а также есть pyenv, который можно использовать для управления версиями Python. Мы создадим новый файл в основной папке репозитория и назовем его requirements.txt, чтобы определить все пакеты Python, которые нам нужны для этого проекта.

# requirements.txt file
altair==4.1.0
matplotlib==3.5.0
numpy==1.19.5
openTSNE==0.6.1
pandas==1.2.5
pip==21.3.1
plotly==5.4.0
requests==2.25.1
scikit-learn==0.24.2
scipy==1.7.3
spotipy==2.19.0
streamlit==1.2.0
seaborn==0.11.2
tqdm==4.62.3
urllib3==1.26.7
wordcloud==1.8.1

Мы добавляем следующие команды в файл «.gitpod.yml» в разделе «task-›init», чтобы установить требуемую версию Python и необходимые модули, упомянутые в «requirements.txt», используя pip.

# Install Python 3.7.2
pyenv install -v 3.7.2
# Set Python 3.7.2 as default
pyenv global 3.7.2
# Install all libraries
python -m pip install -r requirements.txt

Индивидуальная настройка контейнера

Этот шаг является необязательным. По умолчанию Gitpod создает рабочую область со стандартным образом Docker под названием «Workspace-Full», если мы не указываем какой-либо Dockerfile в файле «.gitpod.yml». Этот стандартный образ докера включает в себя такие инструменты, как Docker, Go, Java, Node.js, C/C++, Python, Ruby, Rust, PHP, а также Homebrew, Tailscale, Nginx и некоторые другие.

Если вы хотите создать собственный контейнер, нажмите кнопку Добавить файл -> Создать новый файл в основной папке вашего репозитория. В поле имени файла введите .gitpod.Dockerfile. Ваш пользовательский контейнер может содержать все, что вы хотите. Это очень полезно, если вы используете фреймворк или SDK, которых нет в стандартном образе, или если вам нужно установить определенный пакет. Я бы порекомендовал использовать стандартное изображение Workspace-Full в качестве базового изображения, а затем построить его поверх него, как показано ниже. Если вы хотите начать с другого фреймворка, отличного от стандартного образа, проверьте готовую конфигурацию контейнера для Gitpod, которая доступна в репозитории workspace-images.

FROM gitpod/workspace-base:latest
# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
#     && apt-get -y install --no-install-recommends <your-package-list-here>

Открытое рабочее пространство

У нас все настроено и мы готовы запустить Gitpod Workspace. Нажмите кнопку «Открыть в Gitpod», чтобы запустить рабочее пространство Gitpod, вам будет предложено войти в учетную запись Gitpod. Мы используем GitHub в качестве провайдера, и ваше рабочее пространство откроется в новой вкладке.

Это займет несколько секунд, и вы увидите свое рабочее пространство в браузере, как показано на изображении ниже. Он также показывает, как открыть терминал.

На этом наша настройка среды разработки для этого проекта с использованием Gitpod Workspaces завершена, мы можем быстро открыть код проекта в предопределенной среде, собрать и протестировать его.

Следующий шаг

В следующей статье мы увидим, как получить набор музыкальных данных и выполнить исследовательский анализ данных.

Если вам нравится читать мои статьи и вы хотите поддержать меня, рассмотрите возможность регистрации, чтобы стать участником Medium. Это 5 долларов в месяц и дает вам неограниченный доступ к историям на Medium. Пожалуйста, зарегистрируйтесь, используя мою ссылку, чтобы поддержать меня: https://nsanka.medium.com/membership.