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. 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. Luan van 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.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 Luan van 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 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. Luan van 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. 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. Luan van 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.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 Luan van 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 +.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) 𝑟 𝑝𝑖 = ∑𝑛 𝑖 (2.3) 𝑖=1 𝑟𝑖 Trong đó ri là tổng số lần thẻ i được đánh dấu, số liệu này được lấy từ Last. 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. 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.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 Luan van 17 hóa pi và qi được tính toán bằng công thức (2. 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. 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. Thẻ đánh dấu cho Blue Train và Ornithology Blue Train Ornithology Tên thẻ Số đếm thẻ Chuẩn hóa Tên thẻ Số đếm thẻ Chuẩn hóa (ri) số đếm thẻ (ri) số đếm thẻ (pi) (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 222 thẻ (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. 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 Trọng số thẻ Blue Train Ornithology (wi) (pi) (qi) Jazz 0,510204082 0,450450450 0,960654532 Bebop 0,091836735 0,220720721 0,312557455 Luan van 18 saxophone 0,147959184 0,121621622 0,269580805 john coltrane 0,102040816 0,102040816 charlie parker 0,072072072 0,072072072 instrumental 0,025510204 0,040540541 0,066050745 Hard Bop 0,061224490 0,061224490 Bop 0,022522523 0,022522523 free jazz 0,020408163 0,020408163 jazzysmalejazz 0,018018018 0,018018018 Good Stuff 0,018018018 0,018018018 la cucaracha 0,018018018 0,018018018 latin fiesta 0,018018018 0,018018018 Blues 0,015306122 0,015306122 Coltrane 0,015306122 0,015306122 classic jazz 0,010204082 0,010204082 Tiếp theo chúng ta sẽ tính toán khoảng cách Euclide theo công thức (2.1), dựa trên các số liệu tính toán ở trên 𝑑𝑥,𝑦 (𝑝, 𝑞) = √0,961 ⋅ (0,510 − 0,450)2 + 0,313 ⋅ (0,092 − 0,221)2 +.
+0,010 ⋅ (0,010 − 0)2 ≃ 0,103 Chúng ta sẽ so sánh Blue Train với một bản nhạc khác là Freak Out Bảng 2.