<h1 align="center"> MusicBox </h1>
<p align="center">
<img width="460" height="300" src=other/music.gif>
</p>
## Music just for you
MusicBox is my project as an AI fellow at Insight Data Science. The goal of the project is to build a new generation of recommender system that learns patterns of user behavior through deep reinforcement learning.
## Overview
To build MusicBox with the capability to handle a large number of discrete actions (e.g. millions of songs in database), I implemented the model Deep Deterministic Policy Gradient (DDPG) with Tensorflow.
DDPG is an algorithm that can concurrently learn a policy and a Q-function. DDPG adopts an Actor-Critic scheme to model the sequential interactions between the users and recommender system. Based on the songs that a user has been listening to in a listening session, actor network takes the embedding of song features, builds a policy function that scores all music, and then recommends top three songs with the highest scores for the user. Next, Critic Network uses approximation to learn a Q-value function, which judges if selected songs match the current state of user behavior. According to the judgement from the Critic network, the Actor network updates its’ policy parameters to improve recommending performance in the following iterations.
<p align="center">
<img width="400" height="330" src=other/ddpg.png>
</p>
## Evaluation
To measure MusicBox's performance offline, I tracked multiple metrics such as music diversity and song skip rates. Compared to the original methods used in the dataset, MusicBox recommends a more diverse selection of music (9.3 % vs 7.6%) and also better identifies songs that are skipped by users (49% vs 54%).
## Limitations
One major impediment of applying reinforcement learning to recommender system is the lack of simulation platforms for sequential user interactions. This makes the full evaluation of MusicBox difficult, especially when it comes to reasoning about ordering of songs in a playlist.
## Example usage
```
cd src
from main import *
run('../data/user_mini_data.tar.gz', '../data/music_mini_data.tar.gz')
```
## Data
I built MusicBox based on a real-world dataset from Spotify. As entire dataset is very large (e.g. 130 million listening sessions), I will not store it here on github. If you are interested, please check out their website [https://www.aicrowd.com/challenges/spotify-sequential-skip-prediction-challenge](https://www.aicrowd.com/challenges/spotify-sequential-skip-prediction-challenge).
## Inspiration
1 [https://arxiv.org/abs/1801.00209](https://arxiv.org/abs/1801.00209)
2 [https://github.com/egipcy/LIRD](https://github.com/egipcy/LIRD)
3 [https://github.com/luozachary/drl-rec](https://github.com/luozachary/drl-rec)
音乐推荐_Jupyter Notebook_Python_下载.zip
版权申诉
99 浏览量
2023-04-23
09:51:16
上传
评论
收藏 36.97MB ZIP 举报
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
最新资源
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
- 部署yolov8的tensorrt模型支持检测分割姿态估计的C++源码+部署步骤.zip
- 以简单、易用、高性能为目标、开源的时序数据库,支持Linux及Windows, Time Series Database.zip
- python-leetcode面试题解之第198题打家劫舍-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈