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

Nghiên cứu học máy trong xây dựng gợi hệ ý âm nhạc (LV thạc sĩ)

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 (1.46 MB, 53 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

HOÀNG ANH MINH

NGHIÊN CỨU PHƯƠNG PHÁP HỌC MÁY TRONG XÂY
DỰNG HỆ GỢI Ý ÂM NHẠC

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

HOÀNG ANH MINH

NGHIÊN CỨU PHƯƠNG PHÁP HỌC MÁY TRONG XÂY
DỰNG HỆ GỢI Ý ÂM NHẠC
CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN
MÃ SỐ:

0

60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)


NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGUYỄN DUY PHƯƠNG

HÀ NỘI - 2016


i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất cứ công trình nào.
TÁC GIẢ

Hoàng Anh Minh


ii

LỜI CÁM ƠN
Tôi xin bày tỏ lời cảm ơn sâu sắc đến người hướng dẫn của tôi là Tiến sỹ
Nguyễn Duy Phương đã tận tình giúp đỡ tôi hoàn thành luận văn này. Cảm ơn các
thành viên phòng công nghệ thông tin công ty iMicrosoft Việt Nam đã cung cấp
máy chủ để tôi triển khai ứng dụng phục vụ cho luân văn này. Cảm ơn toàn thể
nhân viên công ty iMicrosoft Việt Nam đã hỗ trợ tôi thử nghiệm hệ thống để hoàn
thiện ứng dụng cho luận văn.
Trân trọng cám ơn.
Tác giả.


iii


MỤC LỤC
MỞ ĐẦU
1
Lý do chọn đề tài .....................................................................................................1
Tổng quan về các vấn đề nghiên cứu ......................................................................1
Mục đích nghiên cứu: ..............................................................................................2
Đối tượng và phạm vi nghiên cứu ...........................................................................2
Phương pháp nghiên cứu.........................................................................................2
CHƯƠNG 1.
1.1

TỔNG QUAN VỀ HỌC MÁY TRONG HỆ GỢI Ý .......................3

Hệ gợi ý (Recommender Systems) ................................................................3

1.1.1 Học máy lọc cộng tác ..............................................................................3
1.1.2 Học máy lọc theo nội dung......................................................................5
1.2

Hệ gợi ý âm nhạc. ..........................................................................................6

1.2.1 Các nghiên cứu trước đây. .......................................................................6
1.2.2 Tập dữ liệu trên Last.fm. .........................................................................8
1.3

Kết luận chương ...........................................................................................11

CHƯƠNG 2. PHƯƠNG PHÁP GỢI Ý KẾT HỢP GIỮA LỌC CỘNG TÁC VÀ
LỌC NỘI DUNG ......................................................................................................12

2.1

Phương pháp luận. .......................................................................................12

2.1.1 Các thẻ đánh dấu bản nhạc do người dùng cung cấp ............................12
2.1.2 Trích chọn đặc trưng âm thanh từ các bản nhạc ....................................13
2.2

Các giá trị để tìm sự tương quan giữa các bản nhạc ....................................15

2.2.1 Giá trị so sánh tính bởi các thẻ đánh dấu âm nhạc ................................15
2.2.2 Giá trị so sánh tính bởi các tín hiệu âm thanh .......................................20
2.2.3 Kết hợp các thẻ đánh dấu và các đặc trưng âm thanh ...........................28
2.3

Kết luận chương ...........................................................................................32

CHƯƠNG 3.

XÂY DỰNG HỆ THỐNG GỢI Ý CHO WEBSITE NGHE NHẠC

TRỰC TUYẾN 34
3.1 Giới thiệu bài toán ........................................................................................34
3.1.1 Thiết kế hệ thống. ..................................................................................34
3.1.2 Ứng dụng nền Web. ...............................................................................36
3.2

Thử nghiệm hệ thống ...................................................................................39

3.3


Kết quả thực nghiệm và giải thích kết quả...................................................39

3.4

Kết luận chương ...........................................................................................41


iv

KẾT LUẬN

42

Kết quả đạt được và hạn chế .................................................................................42
Hướng phát triển ...................................................................................................43
TÀI LIỆU THAM KHẢO .........................................................................................44


v

DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1. Thẻ đánh dấu cho Blue Train và Ornithology ..........................................17
Bảng 2.2. Chuẩn hóa số đếm thẻ và trọng số ...........................................................17
Bảng 2.3. Thẻ đánh dấu cho Blue Train và Freak Out .............................................18
Bảng 2.4. Chuẩn hóa số đếm thẻ và trọng số của Blue Train và Freak Out ............19
Bảng 2.5. Trung bình và phương sai của 20 MFCC đầu tiên của (a) Beautiful
Disaster và (b) Freak Out .................................................................................23
Bảng 2.6. (a) Ma trận độ lệch và (b) Ma trận hiệp phương sai nghịch đảo.............24
Bảng 2.7. (a) Chuyển vị ma trận và (b) Tích ma trận ...............................................24

Bảng 2.8. Trung bình và phương sai của 20 MFCC đầu tiên của (a) Beautiful
Disaster và (b) Ornithology ..............................................................................26
Bảng 2.9. (a) Ma trận độ lệch và (b) Ma trận hiệp phương sai nghịch đảo.............27
Bảng 2.10.(a) Chuyển vị ma trận và (b) Tích ma trận ..............................................27
Bảng 2.11. Chuẩn hóa các khoảng cách giữa Ornithology và Blue Train ...............29
Bảng 2.12. Các giá trị khoảng cách nhỏ nhất giữa Ornithology và Blue Train ......30
Bảng 2.13. Chuẩn hóa các khoảng cách giữa Ornithology và Beautiful Disaster ...31
Bảng 2.14. Các giá trị khoảng cách nhỏ nhất giữa Ornithology và Beautiful
Disaster .............................................................................................................32
Bảng 3.1. Các công việc cần thực hiện .....................................................................35
Bảng 3.2. 5 ví dụ rút ra từ thực nghiệm ....................................................................40


vi

DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Stream nhạc từ Youtube trên Last.fm .......................................................10
Hình 1.2: Gợi ý các nghệ sỹ trong Last.fm ...............................................................11
Hình 2.1: Tính toán các MFCC bằng Sonic Visualisation .......................................14
Hình 2.2: Thiết lập các cấu hình mặc định ...............................................................14
Hình 2.3: Dữ liệu MFCC ..........................................................................................15
Hình 2.4: Thể hiện của 20 MFCC đầu tiên của (a) Beautiful Disaster và (b) Freak
Out .....................................................................................................................22
Hình 2.5: Thể hiện của 20 MFCC đầu tiên của (a) Beautiful Disaster và (b)
Ornithology .......................................................................................................25
Hình 3.1: Luồng dữ liệu của hệ thống ......................................................................34
Hình 3.2: Các bảng và quan hệ trong cơ sở dữ liệu .................................................36
Hình 3.3: Trang chủ của ứng dụng ...........................................................................37
Hình 3.4: Trang gợi ý của ứng dụng.........................................................................38
Hình 3.5: Kết quả đánh giá hệ thống ........................................................................39



1

MỞ ĐẦU
Lý do chọn đề tài
Trong đời sống hiện nay, nhu cầu giải trí của người Việt Nam ngày càng cao.
Sự bùng nổ của Internet kéo theo sự phát triển của các ứng dụng giải trí trực tuyến.
Chỉ tính riêng ở Việt Nam, các website với các ứng dụng game, xem phim, nghe
nhạc trực tuyến đã xuất hiện ngày càng nhiều trong vài năm trở lại đây. Trong quá
trình sử dụng các ứng dụng giải trí trực tuyến nghe nhạc, có những lúc người dùng
muốn nghe những bản nhạc họ chưa từng được nghe bao giờ nhưng lại không biết
tìm bản nhạc nào phù hợp. Nắm bắt được nhu cầu đó các website nghe nhạc trực
tuyến đã đưa ra một công cụ nhằm gợi ý cho người nghe những bản nhạc mà họ cho
là người dùng sẽ thích dựa trên các phương pháp học máy.
Các diễn đàn trao đổi về các phương pháp học máy để gợi ý bản nhạc được
tổ chức hàng năm đề nâng cao chất lượng cho các hệ thống gợi ý. Với mục đích đưa
ra cho người sử dụng những gợi ý gần đúng nhất, tiện lợi cho người dùng, qua đó
nâng cao chất lượng phục vụ của các website nghe nhạc trực tuyến
Đề tài “Nghiên cứu phương pháp học máy ứng dụng trong xây dựng hệ gợi ý
âm nhạc”, nhằm cung cấp một cái nhìn về các phương pháp học máy gợi ý âm nhạc,
phân tích, so sánh các phương pháp đó và lựa chọn một phương pháp để xây dựng
hệ thống gợi ý cho website nghe nhạc trực tuyến

Tổng quan về các vấn đề nghiên cứu
Hiện nay, trên thị trường Việt Nam nói riêng có 2 website phổ biến với
người dùng internet là mp3.zing.vn và nhaccuatui.com. Hai website này có số lượng
người dùng đông đảo với số lượng đồ sộ các bản nhạc có bản quyền. Người sử dụng
có thể dễ dàng tìm được bài hát mình cần tại 2 website này. Tuy cả 2 website này
đều có ứng dụng gợi ý bản nhạc cho người dùng nhưng ít user sử dụng tính năng

này vì những bản nhạc gợi ý chưa thật sự hợp lý.


2

Bài toán được đặt ra ở đây sẽ là tại sao các phương pháp được sử dụng tại
các website đó chưa hiệu quả và sử dụng phương pháp nào sẽ đạt được hiệu quả tốt
nhất. Chúng ra sẽ tìm cách phần nào giải quyết điều đó trong phạm vi luận văn này.

Mục đích nghiên cứu:
Nghiên cứu phương pháp xây dựng hệ gợi ý các bản nhạc phù hợp với sở
thích của người sử dụng.
Xây dựng ra một hệ thống gơi ý các bản nhạc phù hợp với nhu cầu của người
dùng nâng cao chất lượng của website nghe nhạc trực tuyến.

Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu bao gồm các kỹ thuật, các phương pháp học máy được
sử dụng để gợi ý dữ liệu.
Các phương pháp học máy này sẽ được tìm hiểu trong phạm vi dữ liệu là các
bản nhạc, xử lý các bản nhạc.

Phương pháp nghiên cứu
Nghiên cứu lý thuyết: tìm hiểu về các phương pháp học máy trong phân tích
siêu dữ liệu để xử lý các bản nhạc, và yêu cầu cầu của người dùng. Nghiên cứu các
phương pháp học máy trong dự đoán yêu cầu người dùng.
Nghiên cứu thực nghiệm: xây dựng bộ dữ liệu thực nghiệm. Phân tích, thử
nghiệm phương pháp gợi ý cho người dùng.

Cấu trúc của luận văn
Nội dung của luận văn được trình bày trong ba phần chính như sau:

1. Phần mở đầu
2. Phần nội dung: bao gồm ba chương
Chương 1: Tổng quan về Học máy trong Hệ gợi ý
Chương 2: Phương pháp gợi ý kết hợp giữa lọc cộng tác và lọc nội dung
Chương 3: Xây dựng hệ thống gợi ý cho website nghe nhạc trực tuyến
3. Phần kết luận


3

CHƯƠNG 1.

TỔNG QUAN VỀ HỌC MÁY TRONG HỆ
GỢI Ý

1.1 Hệ gợi ý (Recommender Systems)
Trong thời đại internet được phổ biến rộng rãi hiện nay, người dùng máy tính
cá nhân, máy tính bảng, và điện thoại thông minh đã tiếp xúc với rất nhiều hệ thống
gợi ý. Ví dụ, khi ta truy cập vào một website bán hàng trực tuyến để duyệt một mặt
hàng mình yêu thích. Sau khi tìm được mặt hàng đó và nhấn vào đường dẫn, tại
trang chứa thông tin về mặt hàng đó sẽ có một mục có tiêu đề “Khách hàng mua sản
phẩm này cũng mua các sản phẩm sau”. Những mặt hàng này là danh sách các sản
phẩm có khả năng gây sự chú ý cho khách hàng được liệt kê dựa trên các thông tin
của sản phẩm được xem xét. Đối với các người dùng đã đăng ký thành viên, một
danh sách riêng cho từng người sẽ được tự động hiển thị sau khi đăng nhập vào
website. Phần mềm được dùng để cung cấp danh sách các gợi ý được gọi là “Hệ
thống gợi ý”. Để có được các danh sách gợi ý dành riêng cho từng cá nhân ta sẽ cần
thu thập các thông tin của từng người dùng. Nói cách khác, một Hệ gợi ý cần xây
dựng và thường xuyên cập nhật hồ sơ của từng cá nhân, lưu trữ thông tin về các sở
thích của người dùng. Những thông tin này có thể thu thập được bằng cách yêu cầu

người dùng đánh giá sản phẩm mà họ quan tâm hoặc bằng cách giám sát ngầm hành
vi của họ.
Học máy cho hệ gợi ý được tiếp cận theo ba phương pháp chính: học máy
cho các kỹ thuật lọc cộng tác (collaborative filtering), học máy cho các kỹ thuật lọc
nội dung (content-based filtering) và học máy cho các kỹ thuật lọc kết hợp (Hybrid
filtering). Nội dung của mỗi phương pháp được thực hiện như dưới đây.

1.1.1 Học máy lọc cộng tác
Có rất nhiều loại thông tin có thể được dùng để xác định danh sách gợi ý cho
từng người dùng. Phương pháp tiếp cận phổ biến nhất là sử dụng các tham số liên
quan đến hành vi, các ý kiến cá nhân và các thị hiếu thu thập được từ một cộng
đồng người sử dụng lớn. Cách tiếp cận này được gọi là “Lọc cộng tác”. Ý tưởng


4

được đưa ra ở đây là, những người dùng mà trước đó có cùng sở thích với nhau sẽ
có nhiều khả năng quan tâm đến những sản phẩm giống nhau trong tương lai. Hệ
thống này tận dụng lợi thế của sự công tác ngầm địch giữa các người dùng, và hiện
giờ được sử dụng rất phổ biến. Cách tiếp cận này không đòi hỏi bất kỳ một hiểu biết
thực tế cụ thể về các mặt hàng được gợi ý. Điểm mạnh rõ ràng của cách tiếp cận này
là chúng ra sẽ không cần sử dụng đến dữ liệu phức tạp cũng như duy trì chúng trong
hệ thống. Do đó, chúng ta sẽ tiết kiệm được một lượng lớn tài nguyên. Tuy nhiên,
việc không đưa vào các dữ liệu cụ thể của các nội dung gợi ý sẽ làm giảm tính chính
xác của hệ thống. Ngoài ra, sẽ khó cho chúng ta có thể gợi ý các sản phẩm hay các
mặt hàng mới đưa vào hệ thống hoặc các sản phẩm đó chưa người người dùng nào
tìm đến. Một nhược điểm khác của cách tiếp cận này là khả năng bị “SPAM” (ví dụ
như các quảng cáo) đến từ các tài khoản chạy các hệ thống gửi message tự động.
Trong bài báo “A Survey of Collaborative Filtering Techniques,” các tác giả đã tóm
tắt các cách tiếp cận khác nhau của phương pháp lọc cộng tác. Theo bài báo, hệ

thống gợi ý dựa trên lọc cộng tác có thể chia làm ba nhóm:
Các hệ thống dựa trên bộ nhớ (memory-based systems), các hệ thống dựa
trên mô hình (model-based systems) và các hệ thống kết hợp (hybrid systems – kết
hợp các mô hình với một cơ sở dữ liệu các thông tin người dùng). Các tác giả cũng
thảo luận về những thách thức của các hệ thống này, bao gồm, sự thưa thớt dữ liệu,
khả năng mở rộng, các từ đồng nghĩa (các sản phẩm khác giống nhau nhưng khác
tên) và “Shiling attacks” (các cá nhân tự đánh giá thứ hạng cao cho sản phẩm của
chính họ và đánh giá thứ hạng thấp cho các sản phẩm của các đối thủ). Cùng với đó,
các tác giả cũng thảo luận rất nhiều phương pháp tính khoảng cách để xác định sự
giống nhau giữa các sản phẩm trong phương pháp lọc cộng tác, gồm có Tương quan
Pearson, véc-tơ khoảng cách cô-sin, khoảng cách euclide và các phương pháp khác.
Trong bài báo “Exploring Social Annotations for the Semantic Web,” các tác giả
phát hiện ra một phương pháp cộng tác hướng tới các chú thích (annotation) trên
các mạng xã hội được người dùng cập nhật thủ công mà không cần một Ontology
hình thức được định nghĩa trước (formal ontology: là ontology mô tả các khái niệm


5

một cách chi tiết đến các tiên đề và định nghĩa mà không quan tâm đến các mô tả
này có thực hiện dễ dàng trong máy tính hay không. Dù những chú thích này rất tùy
tiện và mơ hồ, nhưng chúng rất dễ thu thập. Ví dụ dữ liệu của Del.icio.us được thu
thập tự động (crawling) trên trang chủ. Bộ dữ liệu bảo gồm 2.879.614 thẻ đánh dấu
(tags) từ 10.109 người dùng. Các đánh giá ban đầu cho thấy, phương pháp này có
thể phát hiện hiệu quả cácweb bookmarks liên quan ngữ nghĩa. Trong bài báo
“Usage Patterns of Collaborative Tagging Systems,” các tác giả phân tích cấu trúc
của các hệ thống cộng tác dựa trên các thẻ đánh dấu (collaborative tagging systems)
và các khía cạnh tích cực của chúng. Bài báo cho thấy, các thẻ đánh dấu (tags) được
có tần suất sử dụng rất nhiều và lượng thông tin chúng mô tả cũng rất đa dạng. Một
số lượng lớn thẻ đánh dấu được tạo ra bởi người dùng nhằm phục vụ các mục đích

cá nhân; tuy nhiên các thông tin của các thẻ này vẫn có ích cho các người dùng
khác. Những lợi ích của hệ gợi ý sử dụng phương pháp lọc cộng tác đã được đánh
giá và thảo luận trong rất nhiều các ấn phẩm khác nhau.

1.1.2 Học máy lọc theo nội dung
Có rất nhiều lý do khác nhau để chúng ta xây dựng một hệ gợi ý. Thứ nhất,
hệ gợi ý khuyến khích người dùng hành động như mua một sản phẩm hoặc xem thử
một chương trình truyền hình cụ thể. Thứ hai, nó có thể giúp người dùng phát hiện
ra những sản phẩm mới mà nếu không có gợi ý thì họ không thể tìm thấy. Một lý do
khác là nó sẽ giải quyết bài toán “Quá tải thông tin” của người dùng. Nói cách khác,
hệ thống sẽ lọc thông qua một tập dữ liệu rất lớn thể lựa chọn sản phẩm mà người
dùng ưng ý nhất. Những việc này thường được gọi là truy vấn thông tin và lọc
thông tin.Tuy nhiên, mục tiêu chính của hệ gợi ý là để phân loại các dữ liệu có liên
quan hoặc không liên quan đến người dùng. Tận dụng các thông tin thu được từ nội
dung của các phần tử dữ liệu để xếp hạng chúng thường được gọi là hệ gợi ý dựa
trên nội dung (content-based recommendation).
Về cơ bản, phương pháp tiếp cận dựa trên nội dung sử dụng các mô tả các
sản phẩm (được thu thập thủ công hoặc được suy dẫn một cách tự động) và dữ liệu
của người dùng chứa thông tin mức độ quan tâm của người dùng đến các mô tả của


6

phần tử dữ liệu đã nói ở trên. Dữ liệu của người dùng có thể chỉ đơn giản là một bài
hát mà họ nghe, hoặc có thể là các sở thích mô tả của người dùng. Phương pháp tiếp
cận dựa trên nội dung cố gắng gợi ý các sản phẩm giống với những sản phẩm trước
đây người sử dụng tương ứng tỏ ra quan tâm. Để thực hiện, chúng ta sẽ so sánh mức
độ tương xứng của các thuộc tính mà một người dùng quan tâm (được lưu trong dữ
liệu của họ) và các thuộc tính mô tả của một sản phẩm. Mục đích của việc này là
gợi ý một sản phẩm mới mà người dùng đó có thể quan tâm. Ví dụ các mô tả của

một sản phẩm âm nhạc có thể bao gồm thể loại, nhịp độ, nốt nhạc, phong cách, âm
sắc, nhạc cụ, .v.v…. Những thông tin liên quan có thể được thu thập thủ công hoặc
tự động bằng cách trích chọn đặc trưng âm thanh của bài nhạc.

1.2 Hệ gợi ý âm nhạc.
Với một lượng âm nhạc rất lớn sẵn có trên internet hiện nay, thách thức dành
cho những người yêu thích âm nhạc là tìm được những bản nhạc mà họ cảm thấy
thích mà không mất quá nhiều công sức tự mình sàng lọc tất cả mọi thứ. Hệ gợi ý
âm nhạc được phát triển để giải quyết vấn đề này.

1.2.1 Các nghiên cứu trước đây.
Để nghiên cứu lý thuyết liên quan, một vài hệ gợi ý âm nhạc dựa trên
phương pháp học máy lọc cộng tác đã được đề xuất. Trong bài báo, “Webcollaborative Filtering: Recommending Music by Crawling the Web,” một chương
trình tự động tìm kiếm trên internet đã được dùng để thu thập các thực hể liên quan
về mặt ngữ nghĩa từ trên Web để lọc cộng tác. Cụ thể, chương trình sẽ sử dụng giải
thuật heuristics thu thập các danh sách của các nghệ sỹ nhạc nhằm mục đích bổ
sung hoặc thay thế phương pháp lọc cộng tác dựa trên xếp hạng của người dụng.
Thí nghiệm được tiến hành bằng cách sử dụng một tập dữ liệu gồm 5095 bản nhạc
làm dữ liệu thử nghiệm và 23.438 bản nhạc làm dữ liệu huấn luyện, các bản nhạc
này của 981 nghệ sỹ. Kết quả cho thấy triển vọng tốt của việc sử dụng web crawler
cho hệ gợi ý dựa trên phương pháp lọc cộng tác.


7

Trong bài báo “Automatic Generation of Social Tags for Music
Recommendation”, các tác giả đề xuất một giải thuật tự động gắn thẻ (autotagging) sử dụng phương pháp học máy có giám sát để tạo ra các thẻ cho mạng xã
hội(social tag) dựa trên các đặc tính âm thanh được xuất ra từ các tập tin MP3. Các
thí nghiệm được tiến hành bằng cách sử dụng 60 thẻ (tags) phổ biến nhất được lấy
từ dữ liệu thu thập tự động của trang Last.fm, với một tập dữ liệu bao gồm 89.924

bản nhạc của 1277 nghệ sỹ.
Một vài phương pháp sử dụng lọc dựa trên nội dung đã được dùng khá thành
công. Trong bài báo “A Music Recommendation System Based on Music Data
Grouping and User Interests”, các bản nhạc được đưa ra bằng cách dùng các thuộc
tính nhận thức của bản nhạc, bao gồm cao độ, trường độ và độ to của âm thanh. Các
sở thích của người dùng được đưa vào lịch sử truy cập và lưu vào trong hồ sơ dữ
liệu các nhân của từng người. Dựa trên lịch sử truy cập, người dùng sẽ được phân
nhóm dựa trên sở thích của họ trong các không gian đặc trưng. Ba phương pháp gợi
ý được thử nghiệm để tìm ra các người dùng có sở thích giống nhau để gợi ý.
Trong bài báo “A Music Search Engine Built upon Audio-based and Webbased Similarity Measures”, các tác giả sử dụng phương pháp Kullback-Leibler để
tính toán trên trung bình và ma trận hiệp phương sai dựa trên MFCCs (phương pháp
sử dụng bao phổ) cho sự tương quan âm nhạc. Tập dữ liệu bao gồm 12.601 bản
nhạc. Mục tiêu của các tác giả là tạo ra một công cụ tìm kiếm cho các tập hợp bản
nhạc lớn, để có thể truy vấn dữ liệu thông qua các ngôn ngữ tự nhiên. Công cụ này
sử dụng các thẻ trong từng bản nhạc của Last.fm.
Trong bài báo “Evaluation of Distance Measures between Gaussian Mixture
Models of MFCCs”, các tác giả so sánh các phương pháp, Kullback-Leibler,
khoảng cách Earth Mover (Earth Mover's Distance) và khoảng cách Euclide dựa
trên MFCC. Việc tính toán dựa vào phân nhóm các thể loại nhạc của trang MIREX
năm 2004 với 729 bản nhạc thuộc 6 thể loại. Kết quả cho thấy cả ba phương pháp
này đều cho kết quả tương tự nhau.


8

Trong bài báo “Song-level Features and Support Vector Machines for Music
Classification”, các tác giả so sánh phương pháp Kullback Leibler phân kỳ và
khoảng cách Mahalanobis dựa trên MFCC. Việc tính toán thử nghiệm việc nhận
biết các nghệ sỹ và thực hiện một cách tương đối trên tập dữ liệu của 1200 bản nhạc
pop được biểu diễn bởi 18 nghệ sỹ.

Trong bài báo “Lightweight Measures for Timbral Similarity of Musical
Audio”, các tác giả đề xuất phương pháp tính toán đơn giản dựa trên MFCC phù
hợp với các tập dữ liệu lớn. Các phương pháp được đưa ra là Kullback Leibler phân
kỳ và khoảng cách Mahalanobis. Các phương pháp được tính toán với các nhóm thể
loại nhạc trong ba tập dữ liệu dựa trên kỹ thuật phân lớp láng giề ng gần nhất. Ba
tập dữ liệu được thử nghiệm gồm có một tập dữ liệu được phân nhóm thể loại của
ISMIR năm 2004, một tập dữ liệu có 3600 bản nhạc, và một tập dữ liệu khác lớn
hơn. Các kết quả thu được khẳng định rằng các phương pháp hoạt động tương tự
nhau.

1.2.2 Tập dữ liệu trên Last.fm.
Last.fm là một dịch vụ âm nhạc hỗ trợ người dùng tìm được các bản nhạc
mới dựa trên các bản nhạc mà họ đang nghe. Vào ngày 28/4/2014 Last.fm chấm dứt
việc cung cấp dịch vụ streaming; tuy nhiên công nghệ gợi ý của trang vẫn có thể
được sử dụng để tích hợp với các dịch vụ streaming khác. Trang web Last.fm chứa
đựng một lượng rất lớn các thông tin về các nghệ sỹ, các album, và các bản nhạc.
Đối với những người dùng đã đăng ký làm thành viên, Last.fm cung cấp các thông
tin về các bản nhạc gần giống với nghệ sỹ và các thẻ đánh dấu đang được chọn.
Người dùng có thể đọc các thông tin về những nghệ sỹ mà họ yêu thích, xem hoặc
nghe các bản nhạc phổ biến nhất của các nghệ sỹ đó, duyệt các album của họ và tìm
hiểu về những nghệ sỹ giống với họ. Người dùng cũng có thể tìm hiểu về các sự
kiện âm nhạc sắp tới, nghe các bản nhạc đã phát và xem các video.
Điều khiến Last.fm nổi trội hơn so với các hệ gợi ý âm nhạc khác, đó là sự
tham gia của cộng đồng. Phương pháp họ sử dụng là dựa vào cộng tác. Người dùng
có thể stream các bản nhạc từ các kênh mà họ tạo ra, bình luận trên các bản nhạc mà


9

họ thích hoặc không thích (giống với Youtube hoặc facebook), với tài khoản của

mình, người dùng có thể đặt các thẻ đánh dấu cho một bản nhạc, thể hiện sự yêu
thích (loves) cho một bản nhạc, hoặc để nghị cấm (ban) một bản nhạc không được
phát.
Khi một người dùng đăng ký một tài khoản miễn phí trên Last.fm. Một hồ sơ
âm nhạc của người dùng sẽ được tạo ra với các dữ liệu được thu thập ngầm định từ
các bản ghi nhật ký (logs) thói quen nghe của người dùng, bản nhạc nào họ yêu
thích (loves) bản nhạc nào họ đề nghị cấm (ban) .v.v…. Dữ liệu bổ sung có thể
được thu thập công khai như khi hệ thông hỏi người dùng về nghệ sỹ họ thích. Nhật
ký (logs) cũng có thể được thu thập thông qua phần mềm chơi nhạc trên máy tính,
sử dụng một phần mềm miễn phí của Last.fm có tên là Scrobbler, nhưng chương
trình này phải được cài đặt và chạy ở nền sau (background) khi người dùng nghe
nhạc. Điều này sẽ giúp cho Last.fm có thể theo dõi thói quen nghe của người dùng
kể cả khi họ không nghe nhạc trực tiếp từ website Last.fm.
Hình 1.1 mô tả khả nhăng stream nhạc từ Youtube trên Last.fm. Ở phía trên
là thông tin về bản nhạc Air on the G string của Johann Sebastian Bach. Người
dùng có thể nhấn vào hình trái tim ở góc phải để cho hệ thống biết họ thích bản
nhạc này. Ngoài ra có thể tìm thấy thông tin về tác giả, các bản nhạc phổ biến cũng
như các album phổ biến nhất của tác giả. Hệ thống sẽ gợi ý cho người dùng những
tác phẩm giống với bản nhạc hiện tại, những nghệ sỹ tương tự. Người dùng có thể
đặt các thẻ đánh dấu (tags) cho bản nhạc cũng như cho nghệ sỹ.


10

Hình 1.1: Stream nhạc từ Youtube trên Last.fm
Hình 1.2 hiển thị các nghệ sỹ mà Last.fm gợi ý cho người dùng và số lần các
bài hát của họ được nghe. Người dùng mới đăng ký tài khoản sẽ được Last.fm hỏi
để cung cấp thông tin về các nghệ sỹ họ ưa thích. Với mỗi nghệ sỹ được chọn, một
danh sách các nghệ sỹ tương tự sẽ được đưa ra để gợi ý thêm cho người dùng chọn.
Khi người dùng lựa chọn “trái tim” cho bản nhạc mà họ nghe, nghệ sỹ của bản nhạc

sẽ tự động được đưa vào danh sách nghệ sỹ ưa thích. Tương tự vậy, hệ thống cũng
sẽ gợi ý các album nhạc, các bản nhạc cho người dùng.


11

Hình 1.2: Gợi ý các nghệ sỹ trong Last.fm

1.3 Kết luận chương
Như vậy trong chương 1 chúng ta đã tỉm hiểu được nội dung về học máy
trong hệ gợi ý, một số phương pháp lọc được áp dụng trong hệ gợi ý; giới thiệu một
số nghiên cứu trước đây về các phương pháp được áp dụng trong hệ gợi ý âm nhạc.
Ngoài ra chương 1 cũng giới thiệu một tập dữ liệu khá phổ biến về âm nhạc hiện
nay là Last.fm.
Trong chương tiếp theo chúng ta sẽ tìm hiểu cụ thể các phương pháp tiếp cận
của hệ gợi ý âm nhạc được sử dụng trong luận văn này.


12

CHƯƠNG 2.

PHƯƠNG PHÁP GỢI Ý KẾT HỢP GIỮA

LỌC CỘNG TÁC VÀ LỌC NỘI DUNG
2.1 Phương pháp luận.
Nếu chỉ sử dụng lọc cộng tác để gợi ý âm nhạc sẽ dẫn đến một số hạn chế.
Hạn chế lớn nhất là việc, các bản nhạc chỉ được gắn các thẻ đánh dấu khi mà người
dùng phát hiện ra và nghe chúng. Nói cách khác, sẽ có rất ít hoặc sẽ không có thẻ
mô tả nào cho các bản nhạc mới hoặc các bản nhạc mà chưa có người dùng nào biết

đến. Ngoài ra, người nghe tỏ ra sẵn sàng gắn thẻ cho những bài hát họ thích nhất
hơn là gắn thẻ cho những bài hát họ chỉ hơi thích hoặc không thích. Bởi vậy, sẽ rất
khó cho một hệ thống chỉ sử dụng lọc cộng tác để cung cấp những gợi ý chính xác
khi không có số lượng thẻ đánh dấu đủ lớn cho từng bản nhạc.
Hệ gợi ý dựa trên nội dung nếu chỉ dựa vào việc tự động trích chọn đặc trưng
bản nhạc, sẽ đòi hỏi thời gian và cần một lượng tài nguyên lớn hơn. Nhưng nếu
trích chọn thủ công sẽ gặp những vấn đề liên quan đến khả năng mở rộng. Khi số
lượng các bản nhạc nhiều lên và hệ thống trở nên phổ biến với người dùng, sẽ cần
nhiều nguồn lực hơn để phân tích những bản nhạc mới.
Luận văn này xin cung cấp một hệ thống kết hợp giữa các phương pháp trên,
tận dụng những lợi ích của các thẻ đánh dấu do người dùng cung cấp (lọc cộng tác)
và tư động trích chọn đặc trưng các bản nhạc (lọc dựa trên nội dung). Hệ thống này
sẽ cải thiện những nhược điểm của các hệ thống mà chỉ sử dụng một trong hai
phương pháp này.

2.1.1 Các thẻ đánh dấu bản nhạc do người dùng cung cấp
Các thẻ đánh dấu (“Collaborative tags” hay “social tags”) là những từ khóa
rút gọn mô tả cho các sản phẩm, hay các bản nhạc đối với những trang dịch vụ âm
nhạc, được cung cấp bởi cộng đồng mạng. Những thẻ này sẽ có vai trò định hướng
cho người dùng trong các tập dữ liệu lớn. Mặc dù có thể dùng bất kỳ từ có nghĩa
nào để đánh dấu, tuy nhiên sẽ tiện lợi hơn nếu người dùng lựa chọn những thẻ đánh


13

dấu có sẵn được tạo ra bởi các người dùng trước đó để tạo ra một hệ thống đường
dẫn hữu ích. Những thẻ này sau đó có thể được dùng bởi các giao diện tìm kiếm
dựa trên thẻ đánh dâu để hiển thị những thẻ đánh dấu phổ biến nhất cho những trang
mạng hoặc một vật phẩm nào đó. Hệ thống được phát triển trong luận văn này sẽ sử
dụng các thẻ đánh dấu âm nhạc từ trang Last.fm, để gợi ý các bản nhạc dựa trên

những thẻ có sẵn từ hệ thống.

2.1.2 Trích chọn đặc trưng âm thanh từ các bản nhạc
Các dữ liệu MFCC là các đặc trưng cơ bản được trích chọn từ các bản nhạc,
được dùng rộng rãi trong các lĩnh vực nhận dạng giọng nói và phân tích âm nhạc.
Trong hệ gợi ý của luận văn này, việc trích chọn dữ liệu MFCC được thực hiện bởi
phần mềm Sonic Annotator với phần mở rộng Vamp của trường đại học Queen
Mary. Sonic Annotator là một chương trình mã nguồn mở chạy bằng dòng lệnh để
trích chọn các đặc trưng âm thanh từ nhiều tệp âm thanh. Để dễ hình dung quá trình
quá trình trích chọn, luận văn này sử dụng ứng dụng mã nguồn ở Sonic Visualiserđể
theo dõi và phân tích các nội dung bên trong các tệp âm thanh. Phần mềm này
tương thích với Linux, OS/X và Windows, được phát triển tại Trung tâm nhạc kỹ
thuật số của Đại học Queen Mary, London. Phần tiếp theo, chúng ta sẽ đi sâu vào
chi tiết làm thế nào Sonic Visualiser có thể trích chọn các đặc trưng âm thanh từ
một tệp âm thanh.
Sau khi cài đặt thành công, chúng ta chạy Sonic Visualiser và mở một tệp âm
thanh. Tệp âm thanh được sử dụng ở đây là file mp3. Tiếp theo, sử dụng phần mở
rộng của Queen Mary để trích chọn các MFCC từ tệp âm thanh như trong hình 2.1
và lựa chọn các thiết lập mặc định như trong hình 2.2.


14

Hình 2.1: Tính toán các MFCC bằng Sonic Visualisation

Hình 2.2: Thiết lập các cấu hình mặc định
Sau đó chúng ta lựa chọn “Edit layer data” để thể hiện dữ liệu như trong hình
2.3. Chúng ta sẽ trích chọn giá trị trung bình của dữ liệu MFCC vào tệp có định
dạng CSV. Mỗi dòng chứa 20 giá trị, thể hiện các hệ số MFCC.



15

Hình 2.3: Dữ liệu MFCC

2.2 Các giá trị để tìm sự tương quan giữa các bản nhạc
Để đưa ra các gợi ý thích hợp dựa trên bản nhạc được người dùng lựa chọn,
Hệ gợi ý cần phải so sánh các sự giống nhau giữa bản nhạc gốc và các bản nhạc
trong tập dữ liệu.

2.2.1 Giá trị so sánh tính bởi các thẻ đánh dấu âm nhạc
Phần này sẽ nói về cách sử dụng cách tiếp cận dựa trên cộng tác. Như đã
được đề cập trên, Last.fm có một cộng đồng người dùng lớn. Họ đưa ra một hệ
thống các API mã nguồn mở để cho phép các nhà phát triển ứng dụng có thể truy
cập đến cơ sở dữ liệu của họ. Phương thức “track.getTopTags”, cung cấp các thẻ
đánh dấu tốt nhất cho bản nhạc cũng như số lượng người dùng sử dụng thẻ đó để
đánh dấu. Chúng ta sẽ cần cung cấp tên của bản nhạc và tên nghệ sỹ làm tham số
đầu vào và các kết quả đầu ra sẽ là top 10 thẻ được nhiều lần đánh dấu nhất của bản
nhạc đótheo thứ tự giảm dần.
Trong luận văn này, việc tính toán các chỉ số tương quan dựa trên cộng tác
giữa hai bản nhạc được thực hiện bằng cách so sánh top 10 thẻ đánh dấu của mỗi


16

bản nhạc lấy từ Last.fm và sử dụng khoảng cách Euclide để tính toán trọng số giữa
hai bài hát đối với các thẻ đánh dấu cộng tác. Dựa trên kết quả của những nghiên
cứu trước đây, phương pháp tiếp cận này cho kết quả khá tốt. Chúng ta sẽ dùng một
trọng số để tính toán khoảng cách của các thẻ có tổng số lần đánh dấu khác nhau.
Nói cách khác, một thẻ được nhiều người dùng sử dụng để đánh dấu sẽ gây ra ảnh

hưởng lớn hơn các thẻ có ít người dùng đánh dấu
Khoảng cách Euclide có trọng số dx,y(p,q) là khoảng cách giữa hai bản nhạc
x và y được biểu diễn bởi các véc-tơ (p,q) được tính với công thức như sau
𝑑𝑥,𝑦 (𝑝, 𝑞) = √𝑤1 ⋅ (𝑝1 − 𝑞1 )2 + 𝑤2 ⋅ (𝑝2 − 𝑞2 )2 +. . . +𝑤𝑛 ⋅ (𝑝𝑛 − 𝑞𝑛 )2 (2.1)
Trong đó wi là trọng số của thẻ thứ i được tính bởi công thức sau
wi = p i + q i

(2.2)

pilà chuẩn hóa của tổng số lần thẻ i được đánh dấu (số đếm thẻ)cho bản nhạc
x được tính bởi công thức (3)
𝑟

𝑝𝑖 = ∑𝑛 𝑖

𝑖=1 𝑟𝑖

(2.3)

Trong đó ri là tổng số lần thẻ i được đánh dấu, số liệu này được lấy từ
Last.fm. Tương tự như vậy,qi là chuẩn hóa của tổng số lần thẻ i được đánh dấu (số
đếm thẻ)cho bản nhạc y. p và q chuẩn hóa của các vector tổng số lần đánh dấu liên
quan đến cả hai bản nhạc, bản nhạc được truy vấn và bản nhạc được dùng để so
sánh tương ứng. Trong nghiên cứu này mỗi bản nhạc được thể hiện bằng tập mười
thẻ đánh dấu đầu tiên được lấy từ Last.fm. Mỗi giá trị được lấy trọng số bằng cách
nhân với tổng số đếm của mười thẻ đánh dấu phổ biến nhất trong các bản nhạc bản
nhạc. Tập nào có khoảng cách nhỏ nhất sẽ thuộc về bản nhạc giống nhất với bạn
nhạc đang được nghe.
Chúng ta sẽ đi vào một ví dụ cụ thể dựa trên những thẻ đánh dấu phổ biến
nhất của Last.fm, trong ví dụ này ta sẽ so sánh 2 bản nhạc là Blue Train và

Ornithology.
Bảng 2.1 cho ta thấy mười thẻ đánh dấu được dùng nhiều nhất của (a) Blue
Train và (b) Ornithology, những thẻ đánh dấu giống nhau được bôi đậm. Chuẩn


17

hóa pi và qi được tính toán bằng công thức (2.3). pi của thẻ đánh dấu jazz trong bải
Blue Train xấp xỉ bằng 0,510, tính bằng số lần thẻ “jazz” được đánh dấu cho Blue
Train chia cho tổng của tất cả các thẻ đánh dấu cho Blue Train trong bảng 1 là 196.
Tổng của các chuẩn hóa này là 1.
Sau khi các chuẩn hóa được tính cho cả hai bản nhạc. Trọng số một thẻ sẽ
được tính bằng công thức (2.2). Ví dụ, trọng số của “jazz” là tổng của pi và qi tính
cho Blue train (xấp xỉ 0,510) và Ornithology (xấp xỉ 0,450), ta được kết quả là
0,960
Bảng 2.1. Thẻ đánh dấu cho Blue Train và Ornithology
Blue Train
Tên thẻ

Số đếm thẻ
(ri)

Ornithology
Chuẩn hóa
số đếm thẻ
(pi)

Tên thẻ

Số đếm thẻ

(ri)

Chuẩn hóa
số đếm thẻ
(pi)

Jazz

100

0,5102041

jazz

100

0,4504505

saxophone

29

0,1479592

bebop

49

0,2207207


John coltrane

20

0,1020408

saxophone

27

0,1216216

bebop

18

0,0918367

Charlie parker 16

0,0720721

Hard bop

12

0,0612245

instrumental


9

0,0405405

instrumental

5

0,0255102

bop

5

0,0225225

Free jazz

4

0,0204082

jazzysmalejazz

4

0,0180180

blues


3

0,0153061

Good Stuff

4

0,0180180

coltrane

3

0,0153061

la cucaracha

4

0,0180180

Classic jazz

2

0,0102041

latin fiesta


4

0,0180180

Tổng số đếm thẻ

196

Tổng số đếm
thẻ

222

(a)

(b)

Bảng 2.2 liệt kê các chuẩn hóa số đếm các thẻ cho 2 bản nhạc và tính toán
trọng số cho từng thẻ, những thẻ liên quan đến 2 bản nhạc được bôi đậm
Bảng 2.2. Chuẩn hóa số đếm thẻ và trọng số
Tên thẻ

Chuẩn hóa số đếm thẻ cho Chuẩn hóa số đếm thẻ cho
Blue Train
Ornithology
(pi)
(qi)

Trọng số thẻ
(wi)


Jazz

0,510204082

0,450450450

0,960654532

Bebop

0,091836735

0,220720721

0,312557455


×