Tải bản đầy đủ (.pdf) (19 trang)

ĐỒ án KHUYẾN NGHỊ âm NHẠC với SPOTIFY và MACHINE LEARNING

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (702.98 KB, 19 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO CUỐI KỲ
MÔN: ĐỒ ÁN 2
ĐỀ TÀI:
KHUYẾN NGHỊ ÂM NHẠC
VỚI SPOTIFY VÀ MACHINE LEARNING

Giảng viên hướng dẫn: MAI TRỌNG KHANG
Sinh viên thực hiện:
- HUỲNH QUỐC AN – 17520207
- NGUYỄN ĐỨC MINH NGUYÊN - 17520823


NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….


…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
2


…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….

…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
…………………………………………………………………………….
3



MỤC LỤC

LỜI CẢM ƠN................................................................................................................................ 5
TỔNG QUAN ĐỀ TÀI ................................................................................................................. 6
CHƯƠNG 1: GIỚI THIỆU VỀ SPOTIFY.................................................................................. 7
1.1

Spotify là gì? .................................................................................................................. 7

1.2

Spotify api ...................................................................................................................... 7

1.3

Khuyến nghị âm nhạc với Spotify ............................................................................... 8

CHƯƠNG 2: GIỚI THIỆU VỀ MACHINE LEARNING ........................................................ 9
2.1

Machine Learning là gì? ............................................................................................... 9

a.

Học có giám sát (Supervised Learning): ..................................................................... 9

b.

Học không giám sát (Unsupervised Learning):.......................................................... 9


c.

Học bán giám sát (Semi-Supervised Learning) ........................................................ 10

d.

Học củng cố (Reinforcement Learning) .................................................................... 10

2.2

Mạng nơ-ron nhân tạo là gì?...................................................................................... 10

a.

Khái niệm..................................................................................................................... 10

b.

Cách hoạt động............................................................................................................ 11

c.

Huấn luyện mạng nơ-ron ........................................................................................... 11

CHƯƠNG 3: QUÁ TRÌNH THỰC HIỆN................................................................................. 12
3.1

Tạo cơ sở dữ liệu trong máy....................................................................................... 12

a.


Công nghệ sử dụng...................................................................................................... 12

b.

Các bước thực hiện ..................................................................................................... 12

3.2

Huấn luyện máy học ................................................................................................... 17

CHƯƠNG 4: KẾT LUẬN ........................................................................................................... 18
TÀI LIỆU THAM KHẢO .......................................................................................................... 19

4


LỜI CẢM ƠN

Trước tiên, nhóm xin được gửi lời cảm ơn và lòng biết ơn sâu sắc tới Thầy Mai
Trọng Khang, người đã tận tình chỉ bảo, hướng dẫn và giải đáp các thắc mắc để
nhóm có thể hồn thiện bài báo cáo.

Sinh viên
Huỳnh Quốc An
Nguyễn Đức Minh Nguyêm
5


TỔNG QUAN ĐỀ TÀI

Với sự phát triển không ngừng của công nghệ thông tin, việc ứng dụng công
nghệ thông tin trong các ngành giải trí ngày càng được quan tâm và triển khai hiệu
quả. Việc khuyến nghị âm nhạc với Spotify và Machine Learning là một điều khá
hợp thời khi người dùng có thể nghe những bài nhạc mới có nội dung, cảm xúc tương
tự với những bào nhạc mà họ yêu thích và nghe thường xuyên.
Sự ra đời của Machine Learning là một bước phát triển lớn đối với ngành cơng
nghệ thơng tin. Machine Learning nhanh chóng được các nhà phát triển trên khắp
thế giới sử dụng vào sản phẩm của mình, nhờ đó có thể tạo ra những sản phẩm có
tính cá nhân hố cao.
Hiện nay, thị trường có rất nhiều ứng dụng nghe nhạc có tích hợp công nghệ
khuyến nghị âm nhạc với Machine Learning như Apple Music, Shazam, Spotify,…
và trong số những ứng dụng đó, các nhà phát triển còn tạo riêng bộ thư viện để chia
sẻ kho dữ liệu âm nhạc khổng lồ của họ. Spotify là một trong số các nhà phát triển
đó. Do vậy, nhóm em chọn Spotify để sử dụng kho dữ liệu ấy với mục đích khuyến
nghị âm nhạc với Machine Learning.

6


CHƯƠNG 1: GIỚI THIỆU VỀ SPOTIFY
1.1

Spotify là gì?

Spotify là một ứng dụng quản lý âm nhạc trực tuyến, cho phép người dùng truy cập
đến hàng triệu bài hát và những nội dung khác từ các nghệ sĩ trên khắp thế giới.
Các chức năng cơ bản như nghe nhạc là hoàn tồn miễn phí, nhưng người dùng cũng
có thể nâng cấp lên Spotify Premium. Tài khoản Free hay Premium đều có thể:
o Chọn bài hát với chức năng Duyệt và Tìm kiếm.
o Sử dụng những bài hát được khuyến nghị từ chức năng được cá nhân hoá,

như Khám phá hàng tuần, Vừa ra mắt, Ngẫu nhiên hàng ngày.
o Xem bạn bè, nghệ sĩ hay người nổi tiếng đang nghe gì.
o Xây dựng một bộ sưu tập nhạc cho chính mình.
o Tạo một Trạm Radio cho bản thân.
Spotify có mặt trên nhiều loại thiết bị, bao gồm máy tính, điện thoại, máy tính bảng,
loa, TV, và cả xe hơi, người dùng có thể dễ dàng chuyển đổi giữa các loại thiết bị
với Spotify Connect.

1.2

Spotify api

- Spotify api là bộ công cụ dành cho nhà phát triển được tạo ra bởi Spotify giúp
các nhà phát triển khác có thể truy cập đến kho dữ liệu của Spotify.
- Spotify api có các chức năng:
o Audio Features & Analysis: Giúp người dùng lấy được các thơng tin
của một bài nhạc, ví dụ như: năng lượng, khả năng nhảy, tâm trạng,
thuộc tính, bối cảnh, phân đoạn,...
o Playback: Cho phép các lập trình viên chơi nhạc từ Spotify trực tiếp
trên ứng dụng của họ trên các nền tảng web, mobile.
o Recommendations: Tùy biến và sử dụng nguồn lực của Spotify để
khuyến nghị những bài nhạc dựa trên sở thích của người dùng.
o Search: Tìm kiếm các bản nhạc dựa theo tên, tác giả, album,...
Playlist: Quản lý danh sách phát của người dùng ngay trên ứng dụng.
o Metadata: Truy cập thông tin của bất kỳ bài nhạc, nghệ sĩ, album,...
o Curated content: Phát những bài nhạc được dành riêng cho từng thị
trường.

7



o User taste: Lấy dữ liệu về thị hiếu nghe nhạc của người dùng trên
Spotify.

o Ví dụ:
▪ Chức năng Duyệt bài hát:

1.3

Khuyến nghị âm nhạc với Spotify
Hệ thống khuyến nghị âm nhạc của Spotify cung cấp các gợi ý cho
người dùng dựa trên lịch sử tương tác của họ (nghe/chuyển bài/thêm vào
playlist), thuộc tính của bài hát/nghệ sĩ mà họ nghe và sở thích của những
người dùng có vẻ “tương tự”.
Trong khi một số dịch vụ nghe nhạc khác dùng các thẻ để phân loại
nhạc, Spotify sử dụng Deep Learning để tự động hố các q trình và xác
nhận các mẫu ẩn giữa nghệ sĩ, thể loại và sở thích người dùng.
Spotify áp dụng ba mơ hình khuyến nghị:
o Lọc cộng tác: Sử dụng hành vi của người dùng này và của những người
dùng tương tự khác.
o Xử lý ngôn ngữ tự nhiên: Dành cho lời bài hát, playlist, blog posts, các
bình luận trên truyền thơng xã hội.
o Mơ hình âm thanh: Được dùng trên âm thanh thô.

8


2.1

CHƯƠNG 2: GIỚI THIỆU VỀ MACHINE LEARNING

Machine Learning là gì?

- Machine Learning là một tập con của Trí tuệ Nhân tạo (Artificial Intellingence
AI).
- Nói đơn giản, Machine Learning là một lĩnh vực nhỏ của Khoa học Máy tính,
nó có khả năng tự học hỏi dựa trên sữ liệu được đưa vào mà khơng cần phải
được lập trình cụ thể.
- Phương thức học của Machine Learning được chia làm hai loại: Học có giám
sát (Supervised Learning) và Học khơng giám sát (Unsupervised Learning).
a. Học có giám sát (Supervised Learning):
• Supervised Learning là thuật toán dự đoán đầu ra (outcome) của một dữ
liệu mới (input) dựa trên các cặp input-outcome đã biết từ trước. Cặp dữ
liệu này còn được gọi là data-label, hay dữ liệu-nhãn.
• Supervised Learning là nhóm phổ biến nhất trong các thuật tốn Machine
Learning.
• Được chia làm hai loại nhỏ:
o Classification (Phân loại): Một bài toán được gọi là classification
nếu các label của input data được chia thành một số hữu hạn nhóm.
Ví dụ: Gmail xác định xem một email có phải là spam hay khơng;
các hãng tín dụng xác định xem một khách hàng có khả năng thanh
tốn nợ hay khơng.
o Regression (Hồi quy): Một bài tốn được gọi là regression nếu label
khơng được chia thành các nhóm mà là một giá trị thực cụ thể. Ví
dụ: Một căn nhà rộng x m2, có y phịng ngủ và cách trung tâm thành
phố z km sẽ có giá là bao nhiêu?
b. Học khơng giám sát (Unsupervised Learning):
• Trong thuật tốn này, chúng ta khơng biết được outcome hay nhãn mà chỉ
có dữ liệu đầu vào. Thuật tốn unsupervised learning sẽ dựa vào cấu trúc
dữ liệu để thực hiện một cơng việc nào đó, ví dụ như phân nhóm
(clusstering) hoặc giảm số chiều của dữ liệu (dimmension reduction) để

thuận tiện trong việc lưu trữ và tính tốn.
• Trong tốn học, Học khơng giám sát là khi chúng ta chỉ có dữ liệu vào X
mà không biết nhãn Y tương ứng.

9


• Được chia làm hai loại nhỏ:
o Clusstering (Phân nhóm): Một bài tốn phân nhóm tồn bộ. dữ liệu
X thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong
mỗi nhóm. Ví dụ: Phân nhóm khách hàng dựa trên hành vi mua sắm.
o Association (Kết hợp): Là bài toán khi chúng ta muốn khám phá ra
một quy luật dựa trên những dữ liệu cho trước. Ví dụ: Những khách
hàng nam mua quần áo thường có xu hướng mua thêm đồng hồ hoặc
thắt lưng.
c. Học bán giám sát (Semi-Supervised Learning)
• Các bài tốn khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một phần
trong chúng được gán nhãn được gọi là Semi-Supervised Learning. Những
bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.
d. Học củng cố (Reinforcement Learning)
• Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác
định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing
the performance). Hiện tại, Reinforcement learning chủ yếu được áp dụng
vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước
đi tiếp theo để đạt được điểm số cao nhất.

2.2

Mạng nơ-ron nhân tạo là gì?


a. Khái niệm
- Mạng nơ-ron nhân tạo có thể coi là một phương thức để miêu tả cách hoạt
động trong bộ não con người.
- Nói một cách đơn giản, mạng nơ-ron là một hàm nhận một đầu vào x, xử lý
nó và đưa ra một đầu ra y tương ứng.
- Mạng nơ-ron gồm các thành phần:
o Một lớp biểu diễn đầu vào x
o Một số lượng các lớp ẩn
o Một lớp biểu diễn đầu ra y
o Một bộ các chỉ số weights(W) và bias(b) giữa các lớp
o Một hàm kích hoạt giữa các lớp

10


-

-

-

-

b. Cách hoạt động
Các nơ-ron được nhóm vào ba loại layers khác nhau:
Input layer nhận các dữ liệu đầu vào
Hidden layer thực hiện các phép tính tốn cho các đầu vào. Thử thách lớn nhất
trong việc tạo mạng nơ-ron là quyết định số lượng các hidden layer, cũng như
số nơ-ron cho mỗi layer
Output layer trả dữ liệu đầu ra

c. Huấn luyện mạng nơ-ron
Để huấn luyện một mạng nơ-ron, cần có:
o Lượng lớn tập dữ liệu (data set)
o Một máy tính mạnh để tính tốn
Để huấn luyện AI, chúng ta cần đưa các dữ liệu đầu vào từ tập dữ liệu, sau đó
so sánh với đầu ra của nó với đầu ra của tập dữ liệu mẫu. Khi AI chưa được
huấn luyện, đầu ra của nó có thể bị sai.
Khi đã hồn thành với tập dữ liệu, ta có thể tạo một hàm hiển thị độ sai của
đầu ra của AI so với đầu ra thực tế. Hàm này được gọi là Cost Function.
Hiểu đơn giản, ta muốn Cost Function sẽ trả về 0, khi đó đầu ra của AI cũng
sẽ giống với đầu ra thực tế từ tập dữ liệu.

11


CHƯƠNG 3: QUÁ TRÌNH THỰC HIỆN
3.1
-

-

Tạo cơ sở dữ liệu trong máy
a.
Công nghệ sử dụng
Đồ án này sử dụng các công nghệ sau:
o Framework React, ngôn ngữ ReactJS
o HTML, CSS
b.
Các bước thực hiện
Truy cập developer.spotify.com/dashboard để đăng nhập hoặc tạo tài khoản

Tạo project, điền các mục
Sau khi tạo xong, nhấn vào project, ta lấy được hai dữ liệu ClientID và
ClientSecret

- Tạo hàm Credentials để chứa hai dữ liệu vừa có
- Sử dụng UseEffect để gọi API getToken. Sau khi API response
(tokenResponse) thì sẽ lấy để gọi API Genres, kết quả trả về là một danh sách
Genres

12


- Ảnh demo

- Khi có được listOfPlaylistFromAPI, button Search được tạo ra để lấy danh
sách bài hát. API Tracks có thể lấy tối đa 100 bài mỗi lần

13


- Dưới hình là danh sách bài hát được hiển thị

- Hàm listboxChecked có chức năng khi ta nhấn vào một bài hát thì nó sẽ hiện
ra thơng tin của bài hát đó, như ảnh, tên ca sĩ, tên bài hát

14


- Sử dụng thư viện CSVLink để download dữ liệu


- Để xuất data ra file excel, dùng lệnh Excel.listExcel

• Một số hình ảnh minh hoạ cách tạo dữ liệu

15


16


3.2

Huấn luyện máy học

17


CHƯƠNG 4: KẾT LUẬN
Nhu cầu về sử dụng Machine Learning cho việc phát triển phần mềm mang
tính cá nhân hố cao được sử dụng ngày càng nhiều. Khuyến nghị âm nhạc với
Machine Learning là điều không thể thiếu đối với những nhà phát triển âm nhạc, nó
làm cho người dùng dễ dàng tìm được những bài hát đúng với sở thích, tâm trạng
của mình.
Đồ án này đã giúp nhóm em tiếp cận gần hơn với công nghệ Machine
Learning, thực hiện việc áp dụng Machine Learning vào ứng dụng khuyến nghị âm
nhạc dễ dàng hơn.
Đồ án đã đạt được những kết quả sau:
- Tìm hiểu được vai trị, ý nghĩa của Machine Learning trong khuyến nghị âm
nhạc.
- Tìm hiểu được cách Machine Learning đưa ra kết quả sau một loạt các thuật

toán.
- Áp dụng được vào việc khuyến nghị âm nhạc sử dụng Spotify API.
Do thời gian và kiến thức có hạn của nhóm nên đồ án cịn nhiều thiếu sót.
Những thiếu sót này sẽ được khắc phục và hồn thiện trong tương lai.

18


TÀI LIỆU THAM KHẢO
/> /> /> /> />a/p/export-du-lieu-ra-excel-trong-ung-dung-reactQpmleo9VKrd

19



×