Nhân bài viết về cách thức kích hoạt Hey Siri vừa rồi, hôm nay chúng tôi trân trọng đem đến cho các bạn một bài viết khác về chủ đề machine learning giải quyết các yêu cầu tưởng chừng đơn giản nhưng hóa ra lại vô cùng phức tạp, qua đó đem lại một góc nhìn thú vị về cách công nghệ thay đổi cuộc sống của chúng ta ra sao.

Bài viết dưới đây là về Spotify và dịch vụ gợi ý những bản nhạc hay của họ cho thính giả mỗi ngày.

Ngành khoa học đằng sau những bài hát gợi ý

Cứ mỗi tuần, hơn 100 triệu người dùng Spotify lại đón chờ một danh sách nhạc hoàn toàn mới sẵn sàng phục vụ họ. Đó là một tổ hợp của 30 bài hát họ chưa từng nghe, nhưng có thể sẽ thích. Đó là Discover Weekly, một món quà kỳ diệu ra đời từ năm 2015 dành cho những người yêu âm nhạc.

Vậy Spotify làm cách nào để chọn 30 bài cho mỗi người mỗi tuần, và hàng trăm triệu người trên khắp thế giới, liên tục không ngừng nghỉ?

Trước hết, hãy cùng tìm hiểu sơ lược về lịch sử của việc quản lý âm nhạc trực tuyến.

Vào những năm 2000, Songza đã bắt đầu quản lý trào lưu nghe nhạc trực tuyến bằng cách chọn lựa một cách thủ công các bài hát nhằm tạo danh sách nghe cho người dùng. Thủ công nghĩa là có một số nhóm “chuyên gia âm nhạc” hoặc nhà quản lý sẽ xây dựng danh sách nhạc mà họ cho là hay, và người nghe chỉ việc tận hưởng danh sách này.

Cũng giống Songza, Pandora là một trong những dịch vụ đầu tiên chọn bài hát theo kiểu tương tự. Tuy nhiên họ sử dụng một cách tiếp cận nâng cao hơn một chút: người nghe được chọn những từ mô tả về mỗi bài hát và dùng những từ đó để gắn thẻ chúng. Sau đó, các đoạn mã của Pandora chỉ việc lọc các thẻ theo một tiêu chí nhất định để tạo danh sách phát gồm những bài hát “có vẻ” tương tự nhau.

Cũng trong thời gian đó, một bộ phận nghiên cứu âm nhạc của Viện MIT Media Lab gọi là The Echo Nest đã được thành lập và đưa ra một cách tiếp cận triệt để hơn cho vấn đề cá nhân hóa gu nghe nhạc.

Echo Nest đã sử dụng các thuật toán để phân tích âm thanh và nội dung ngữ cảnh của bài hát, cho phép họ nhận dạng, gợi ý theo cá nhân, tạo danh sách nhạc và phân tích số liệu đó tốt hơn.

Cuối cùng, một cách tiếp cận khác là đến từ Last.fm, dịch vụ vẫn còn tồn tại đến ngày nay với một quy trình gọi là bộ lọc cộng tác để xác định âm nhạc mà người dùng có thể sẽ thích, ít nhất là tại thời điểm đó.

Trên đây là sơ lược cách các dịch vụ âm nhạc trực tuyến cũ tạo các gợi ý gu âm nhạc cho thính giả, vậy làm thế nào mà Spotify nảy ra ý tưởng về công cụ thần kỳ có thể nhận biết được sở thích của người dùng chính xác hơn những dịch vụ khác?

Mô hình gợi ý của Spotify

Spotify thực ra không chỉ dùng một mô hình duy nhất – thay vào đó, họ kết hợp những chiến lược hay nhất của các dịch vụ khác để tạo ra một công cụ Discovery độc đáo.

Có 3 loại mô hình chọn nhạc chính được Spotify sử dụng:

+ Các mô hình Lọc cộng tác (như Last.fm), hoạt động bằng cách phân tích hành vi của người nghe.

+ Các mô hình Xử lý Ngôn ngữ Tự nhiên (NLP) có nhiệm vụ phân tích nội dung.

+ Các mô hình âm thanh, hoạt động bằng cách phân tích các bản nhạc thô.

Hãy cùng tìm hiểu về cách hoạt động của những mô hình gợi ý này!

Mô hình giới thiệu số 1: Lọc cộng tác

Mô hình lọc cộng tác được đưa ra đầu tiên bởi Netflix trong việc giới thiệu các bộ phim mới đến với khán giả bằng cách xếp hạng phim dựa trên số sao người dùng đánh giá chúng, từ đó giúp hãng này nhận ra phim nào đang hot để giới thiệu cho người khác.

Sau khi Netflix áp dụng thành công, mô hình này được lan truyền nhanh chóng và bây giờ được coi là hình mẫu khởi đầu cho bất cứ ai muốn tạo ra một mô hình giới thiệu nội dung “tương tự”.

Tuy nhiên, không giống như Netflix, nguời dùng Spotify không dựa trên số sao để đánh giá bài hát. Thay vào đó, dữ liệu Spotify là các phản hồi ẩn – chính xác hơn là họ đếm số lần thính giả nghe các bài hát, cũng như các dữ liệu bổ sung trong quá trình phát trực tuyến, bao gồm việc liệu người dùng có lưu bản nhạc vào danh sách yêu thích của mình hoặc có truy cập trang của Nghệ sĩ sau khi nghe hay không.

Nhưng lọc cộng tác là gì và nó hoạt động như thế nào? Hãy nhìn hình ảnh sau:

Nghĩa là sao? Cả hai chàng trai đều có những sở thích âm nhạc riêng – chàng trai bên trái thích bài P, Q, R, và S; chàng trai bên phải thích bài Q, R, S, và T.

Lọc cộng tác dựa trên các dữ liệu này sẽ đưa ra kết luận:

“Hmmm. Cả hai đều thích 3 bài hát – Q, R, và S – vì vậy họ có thể là những người có sở thích tương tự. Thế thì, hai người này có thể thích các bài hát khác mà một người đã nghe, mà người còn lại chưa nghe. “

Do đó nó sẽ gợi ý anh chàng bên phải nghe thử bài hát P, và anh chàng bên trái nghe bài hát T. Thật đơn giản phải không?

Nhưng Spotify thực ra đã sử dụng khái niệm này như thế nào để giới thiệu hàng triệu bài hát, dựa trên hàng triệu những bài hát ưa thích khác của những người dùng khác nữa.

… bằng ma trận toán học, thực hiện với các thư viện lập trình Python!

Trong thực tế, ma trận này có quy mô khổng lồ. Mỗi hàng đại diện cho một trong 140 triệu người dùng Spotify (nếu bạn sử dụng Spotify, chính bạn là một hàng trong ma trận này) và mỗi cột đại diện cho một trong số 30 triệu bài hát trong cơ sở dữ liệu của Spotify.

Sau đó, thư viện Python chạy công thức phân tích ma trận dài, phức tạp này:

Khi hoàn thành, sẽ có hai loại vectơ được gọi là X và Y.

X là một vector đại diện cho người dùng, và Y là một vector đại diện cho thông tin của bài hát.

Ma trận Người dùng/Bài hát cho ra 2 loại vectơ: vectơ người dùng và vectơ Bài hát.

Giờ thì chúng ta đã có 140 triệu vectơ người dùng và 30 triệu vectơ bài hát. Nội dung của các vectơ này chỉ là một loạt các con số về cơ bản là vô nghĩa, nhưng lại rất có ích cho việc so sánh.

Để tìm ra người dùng nào có sở thích giống nhau nhất, Lọc cộng tác so sánh vectơ của một người với tất cả các vector của những người dùng khác, cho ra những người dùng tương đồng nhất. Cũng tương tự với vector bài hát Y – có thể so sánh vector của bài hát này với tất cả các vectơ bài hát khác và tìm những bài hát nào giống nhất với bài hát bạn đang nghe.

Lọc cộng tác thực hiện công việc khá tốt, nhưng Spotify biết rằng họ có thể làm tốt hơn bằng cách thêm một công cụ khác.

Mô hình giới thiệu số 2: Xử lý ngôn ngữ tự nhiên

Loại mô hình giới thiệu thứ hai mà Spotify sử dụng là các mô hình Xử lý Ngôn ngữ Tự nhiên (NLP). Các dữ liệu nguồn của các mô hình này, giống như tên gọi của nó, thường là các siêu dữ liệu lấy từ các bài báo, blog và các văn bản khác trên internet.

Xử lý Ngôn ngữ Tự nhiên là một chuyên ngành cho phép máy tính hiểu được ngôn ngữ con người khi họ trò chuyện. Đây là một lĩnh vực rộng lớn, thường được khai thác thông qua các API phân tích cảm tính.

Cơ chế chính xác của NLP nằm ngoài phạm vi bài viết này, tuy nhiên đây là những gì xảy ra ở một cấp độ rất cao: Spotify liên tục thu thập dữ liệu trên web, tìm các bài đăng trên blog và các văn bản viết về âm nhạc để mường tượng ra những gì mọi người đang bình luận về các nghệ sĩ và bài hát cụ thể – những tính từ và ngôn ngữ thường được sử dụng trong những bài hát đó, cũng như thảo luận về những nghệ sĩ và bài hát cụ thể nào.

Không biết Spotify chọn xử lý dữ liệu thu được ra sao, nhưng Echo Nest thì làm như sau. Họ đặt dữ liệu vào trong cái mà họ gọi là “các vectơ văn hoá” hoặc “các thuật ngữ hàng đầu”. Mỗi nghệ sĩ và bài hát có hàng ngàn thuật ngữ như vậy thay đổi hàng ngày. Mỗi thuật ngữ có độ quan trọng đi kèm, cho thấy mức độ quan trọng của mô tả (đại khái là xác suất một thuật ngữ sẽ được dùng để mô tả bài hát).

“Cultural vectors”, hay“top terms”, do Echo Nest đề xuất.

Sau đó, giống như trong mô hình lọc cộng tác, mô hình NLP sử dụng các thuật ngữ và mức đánh giá quan trọng này để tạo ra một biểu đồ vector của bài hát có thể được sử dụng để xác định xem 2 bản nhạc có tương tự nhau hay không. Thật tuyệt phải không?

Mô hình giới thiệu số 3: Mô hình phân tích âm thanh thô

Đầu tiên bạn chắc sẽ có một câu hỏi: Chúng ta đã có rất nhiều dữ liệu từ 2 mô hình đầu tiên rồi! Tại sao chúng ta còn cần phải phân tích âm thanh bài hát nữa?

Đó là do mô hình thứ 3 tiếp tục cải thiện tính chính xác của dịch vụ gợi ý nhạc tuyệt vời này. Nhưng thực tế, ngoài ra, mô hình này cũng phục vụ cho một mục đích thứ yếu: Không giống như 2 loại mô hình đầu tiên, các mô hình âm thanh thô chủ yếu sẽ xem xét các bài hát mới toanh.

Chẳng hạn, bài hát mà người bạn của bạn, vốn là một ca sĩ kiêm người viết nhạc đưa lên Spotify. Có lẽ sẽ chỉ có 50 người nghe, vì vậy có ít người nghe để tương tác lọc bài hát này. Nó cũng sẽ không được đề cập ở bất cứ đâu trên internet, vì vậy các mô hình NLP sẽ không nhận thấy nó. May mắn thay, các mô hình âm thanh thô không phân biệt giữa một bài hát mới và bài hát đã phổ biến, vì vậy với sự giúp đỡ của mô hình này, bài hát của người đó có thể có cơ hội góp mặt trong danh sách phát Discover Weekly cùng với các bài hát phổ biến!

Ok, vậy làm thế nào chúng ta có thể phân tích dữ liệu âm thanh thô vốn có vẻ trừu tượng?

… nhờ vào mạng nơ-ron tích chập!

Mạng nơ-ron tích chập là tương tự như công nghệ đằng sau kỹ thuật nhận biết khuôn mặt của iphone X. À há!

Trong trường hợp của Spotify, chúng đã được sửa đổi để sử dụng trên dữ liệu âm thanh thay vì các pixel ảnh. Dưới đây là một ví dụ về kiến ​​trúc mạng nơron tích chập:

Mạng thần kinh đặc biệt này có 4 lớp tích chập, được minh họa như các thanh dày bên trái, và ba lớp dày, được minh họa như các thanh hẹp hơn ở bên phải. Đầu vào là các đại diện tần số thời gian của các khung âm thanh, sau đó được ghép nối thành ảnh phổ.

Các khung âm thanh đi qua các lớp tích chập này, và sau khi qua lớp cuối cùng, bạn có thể thấy một lớp “dữ liệu tổng hợp tạm thời toàn diện”, trải dài qua toàn bộ trục thời gian, tính toán một cách hiệu quả số liệu thống kê của các tính năng đã được nhận biết qua thời gian của bài hát.

Sau khi xử lý, mạng nơ-ron cho ra một cái nhìn tổng quát về bài hát, bao gồm các đặc điểm như thời gian ước tính của bài hát, khóa nhạc, chế độ, tốc độ bài hát, và độ vang âm thanh. Dưới đây là sơ đồ dữ liệu của một trích đoạn 30 giây trong bài “Vòng quanh thế giới” của Daft Punk.

Cuối cùng, sự hiểu biết về các đặc điểm chính của bài hát cho phép Spotify hiểu được sự tương đồng cơ bản giữa các bài hát và biết được những bài nào mà người dùng có thể thích dựa trên lịch sử nghe của họ.

Trên đây là 3 loại mô hình giới thiệu chính của các đề xuất nhạc và hỗ trợ danh sách phát của Discover Weekly.

Tất nhiên, những mô hình giới thiệu này đều kết nối chặt chẽ với hệ sinh thái rộng lớn hơn của Spotify, bao gồm lượng dữ liệu khổng lồ cũng như việc sử dụng rất nhiều các framework Hadoop để đưa ra những đề xuất cho phép các cơ chế này hoạt động trên nhiều ma trận khổng lồ, các bài viết về âm nhạc bất tận trên internet cũng như số lượng bao la các tập tin âm thanh, mà mục đích cuối cùng không gì khác ngoài đem lại những gợi ý hấp dẫn cho từng cá nhân người nghe hàng tuần.

Vì thế, mỗi lần bạn nghe một bài hát hay trên mạng, hãy cảm ơn một guồng máy khổng lồ đã thực hiện điều đơn giản đó!

Bài viết của Sophia Ciocca đăng trên Medium

BÌNH LUẬN

Please enter your comment!
Please enter your name here