برای کاربران اسپاتیفای دوشنبهها روز مهمی است. روزی که بیش از 100 میلیون کاربر اسپاتیفای در انتظار یک لیست پخش جدید به نام discover weekly هستند. لیست پخشی از 30 آهنگ منتخب که کاربران تا به حال هرگز به آنها گوش ندادهاند اما احتمالاً دوست خواهند داشت.
بخش اعظمی از کاربران اسپاتیفای طرفدار این لیست پخش هستند، چرا که به آنها حس دیده شدن میدهد. اسپاتیفای سلیقه موسیقی آنها را از هر کس دیگری بهتر میشناسد و میتواند هر هفته رضایت کاربران خود را با آهنگهایی که احتمالا این کاربران هرگز به سراغشان نمیرفتند جلب کند.
علاقه کاربران به لیست پخش discover weekly به حدی زیاد است که باعث شده است اسپاتیفای در برخی اهداف خودش تجدید نظر کند و تمرکز، سرمایه و منابع بیشتری را بر روی لیستهای پخش مبتنی بر الگوریتمها سرمایهگذاری کند.
از زمانی که Discover Weekly در سال 2015 شروع به کار کرد، همه دوست داشتند تا بدانند که اسپاتیفای چطور از سلیقه موسیقی کاربران با خبر میشود و این لیست پخش را برای آنها تدارک میبیند.
ما اینجا در آکادمی بازارساز کنار شما هستیم تا پاسخ این سوال رو به شما بدیم.
Spotify چگونه در انتخاب 30 آهنگ برای هر فرد در هر هفته چنین کار شگفت انگیزی را انجام میدهد؟ بیایید برای یک ثانیه بزرگنمایی کنیم تا ببینیم چگونه سایر سرویسهای موسیقی با توصیههای موسیقی مقابله کردهاند و Spotify چگونه آن را بهتر انجام میدهد.
تاریخچه مختصری از مدیریت آنلاین موسیقی
در دهه 2000، Songza صحنه مدیریت موسیقی آنلاین را با استفاده از تنظیم دستی برای ایجاد لیست پخش برای کاربران آغاز کرد. این به این معنی بود که تیمی از “متخصصان موسیقی” یا سایر افراد لیستهای پخشی را که فکر میکردند خوب به نظر میرسند جمع میکنند و سپس کاربران به آن لیستهای پخش گوش میدهند. بعد از آن، Beats Music از همین استراتژی استفاده کرد.
مدیریت دستی لیستهای پخش خوب کار کرد، اما بر اساس انتخابهای افرادی معدود و خاص بود و بنابراین نمیتوانست سلیقه موسیقی فردی هر شنونده را در نظر بگیرد.
مانند songza، پاندورا نیز یکی از بازیکنان اصلی در مدیریت موسیقی دیجیتال بود. پاندورا روش کمی پیشرفتهتر را به کار میبرد و ویژگیهای آهنگها را به صورت دستی برچسبگذاری میکرد. این به این معنی بود که گروهی از مردم به موسیقی گوش میدادند، یک دسته از کلمات توصیفی را برای هر آهنگ انتخاب میکردند و بر اساس آن آهنگها را برچسبگذاری میکردند. سپس، پاندورا میتوانست به سادگی برچسبهای خاصی را فیلتر کند تا لیستهای پخش موسیقی با حال و هوای مشابه ایجاد کند.
در همان زمان، یک آژانس اطلاعاتی موسیقی از آزمایشگاه رسانه MIT به نام The Echo Nest متولد شد که رویکردی متفاوت و پیشرفته را برای موسیقی شخصیسازی شده در پیش گرفت. the echo nest از الگوریتمهایی برای تجزیه و تحلیل محتوای صوتی و متنی موسیقی استفاده میکرد که به آن امکان شناسایی موسیقی، توصیه شخصی، ایجاد لیست پخش و تجزیه و تحلیل را میداد.
در نهایت، رویکرد دیگر Last.fm است که هنوز هم وجود دارد و از فرآیندی به نام فیلتر مشارکتی برای شناسایی موسیقیهایی که ممکن است کاربرانش دوست داشته باشند، استفاده میکند، که درباره آن در ادامه توضیح میدهیم.
بنابراین، اگر سایر سرویسهای مدیریت موسیقی اینگونه توصیهها را انجام دادهاند، موتور جادویی Spotify چگونه کار میکند؟ چطور میتواند سلیقه کاربران را با دقت بیشتری نسبت به سایر خدمات نشان بدهد؟
سه نوع مدل پیشنهادی Spotify
درواقع اسپاتیفای از یک مدل واحد و انقلابی استفاده نمیکند؛ بلکه برخی از بهترین استراتژیهای مورد استفاده توسط سایر سرویسها را با هم ترکیب میکند تا موتور اکتشاف منحصر به فرد خود را ایجاد کند.
برای ایجادDiscover Weekly ، سه مدل اصلی برای توصیه لیست پخش به کاربران وجود دارد که اسپاتیفای از آنها استفاده میکند:
مدل فیلتر مشارکتی (یعنی همان مدلی که Last.fm در ابتدا از آن استفاده میکرد)، که هم رفتار شما و هم رفتار دیگران را تحلیل میکند.)
مدل پردازش زبان طبیعی (NLP) که متن را تجزیه و تحلیل میکند.
مدلهای صوتی، که خود آهنگهای صوتی خام را تجزیه و تحلیل میکنند.
در اینجا نحوه عملکرد هر یک از این مدلهای توصیه شده را بررسی میکنیم!
1- مدل فیلتر مشارکتی
وقتی مردم کلمه «فیلتر مشارکتی» را میشنوند، عموماً به نتفلیکس فکر میکنند، چرا که نتفلیکس یکی از اولین شرکتهایی بود که از این روش برای تقویت مدل توصیه خود استفاده کرد و از رتبهبندی فیلمها مبتنی بر ستارههای کاربران برای اطلاعرسانی آن استفاده کرد تا فیلمهایی که باید به سایر کاربران مشابه توصیه شود را درک کند.
پس از موفقیت نتفلیکس، استفاده از فیلتر مشارکتی به سرعت گسترش یافت و اکنون در اغلب مواقع این مدل توصیه نقطه شروعی برای هر کسی است که سعی در ایجاد یک مدل توصیه دارد.
برخلاف نتفلیکس، اسپاتیفای سیستمی مبتنی بر ستاره ندارد که کاربران به موسیقیها با آن امتیاز دهند. در عوض، دادههای اسپاتیفای با بازخورد ضمنی جمع آوری میشوند.
داده هایی مثل تعداد استریمها و دادههای اضافی تر مثل اینکه آیا کاربر بعد از گوش دادن به آهنگ، آن را در لیست پخش خود ذخیره کرده و یا اینکه آیا از صفحه هنرمند بازدید کرده است؟
اما واقعاً فیلتر مشارکتی چیست و چگونه کار میکند؟ در اینجا ما با یک مثال، این شکل از فیلتر رو در قالب یک گفت و گو به شما نمایش داده ایم:
هر یک از این افراد ترجیحاتی دارند: یکی در سمت چپ آهنگهای L, M, N, O و Q را میپسندد، در حالی که فرد سمت راست آهنگهای l, m, n, o و p را دوست دارد.
فیلتر مشارکتی از این دادهها استفاده میکند تا بگوید:
شما هر دو چهار آهنگ یکسان (l, m, n, o) دوست دارید، بنابراین احتمالاً کاربران مشابهی هستید. بنابراین، احتمالاً هر یک از شما از آهنگهای دیگری که طرف مقابل گوش داده و هنوز نشنیدهاید، لذت خواهید برد.»
بنابراین، پیشنهاد میکند که یکی در سمت راست، آهنگ q را بررسی کند (تنها آهنگی که ذکر نشده است، اما همتای “مشابه” او از آن لذت میبرد) و دیگری که در سمت چپ است، آهنگ p را بررسی کند، به همین دلیل است که این مدل، مدلی ساده است.
اما اسپاتیفای واقعاً چگونه از این مفهوم در عمل برای محاسبه آهنگهای پیشنهادی میلیونها کاربر بر اساس ترجیحات میلیونها کاربر دیگر استفاده میکند؟
در واقع، این ماتریسی که در اینجا میبینید یک ماتریس غول پیکر است و هر ردیف آن یکی از ۱۴۰ میلیون کاربر اسپاتیفای را نشان میدهد (اگر از اسپاتیفای استفاده میکنید، خودتان یک ردیف در این ماتریس هستید) و هر ستون نشاندهنده یکی از ۳۰ میلیون آهنگ در پایگاه داده اسپاتیفای است.
فرمول این ماتریس بصورت زیر است.
وقتی کار تمام شد، به دو نوع بردار میرسیم که در اینجا با X و Y نشان داده میشوند. X بردار کاربر است که نشاندهنده سلیقه یک کاربر است و Y بردار آهنگ است که نمایه یک آهنگ واحد را نشان میدهد.
اکنون 140 میلیون کاربر و 30 میلیون آهنگ داریم. محتوای واقعی این بردارها فقط یک دسته از اعداد است که اساساً به تنهایی بیمعنی هستند، اما در مقایسه با آنها بسیار مفید هستند.
برای اینکه بفهمیم سلیقه موسیقایی کدام کاربران بیشتر شبیه سلیقه من است، فیلتر مشارکتی من را با همه بردارهای کاربران دیگر مقایسه میکند و در نهایت مشخص میکند که کدام کاربران نزدیکترین همخوان هستند. همین امر در مورد Y، آهنگها نیز صدق میکند: میتوانید یک آهنگ را با تمام آهنگهای دیگر مقایسه کنید و دریابید که کدام آهنگها بیشتر شبیه آهنگ مورد نظر هستند.
فیلتر مشارکتی کار بسیار خوبی را انجام میدهد، اما اسپاتیفای میدانست که با افزودن یک موتور دیگر میتواند حتی بهتر عمل کند. NLP را وارد کرد.
مدل پردازش زبان طبیعی (NLP)
نوع دوم مدلهای توصیهای که اسپاتیفای استفاده میکند، مدلهای پردازش زبان طبیعی (NLP) هستند. دادههای منبع برای این مدلها، همانطور که از نام آن پیداست، منابع معمولی هستند: متا دیتاهای آهنگ، مقالات، وبلاگها و سایر متنها در سراسر اینترنت.
مکانیسمهای دقیق پشت NLP خارج از محدوده این مقاله است، اما آنچه در سطح بسیار بالایی اتفاق میافتد به این شکل است: اسپاتیفای دائماً در فضای اینترنت به دنبال پستهای وبلاگ و سایر متنهای نوشتاری درباره موسیقی میگردد تا بفهمد مردم در مورد هنرمندان و آهنگهای خاص چه میگویند. کدام صفتها و چه زبان خاصی اغلب در اشاره به آن هنرمندان و آهنگها استفاده میشود، و کدام هنرمندان و آهنگهای دیگر نیز در کنار آنها مورد بحث قرار میگیرند.
به طور قطع نمیتوان گفت که اسپاتیفای چطور این دادههای پراکنده را پردازش میکند؛ اما میتوان بر اساس نحوه کار Echo nest به اطلاعاتی دست یافت.
آنها دادهها را با «بردارهای فرهنگی» یا «اصطلاحات برتر» پردازش میکردند. هر هنرمند و آهنگ هزاران اصطلاح برتر داشت که هر روز تغییر میکردند. هر اصطلاح، وزن (امتیاز) خاصی داشت که اهمیت نسبی آن را مشخص میکرد. (تقریباً احتمال اینکه کسی موسیقی یا هنرمند را با آن اصطلاح توصیف کند.)
تصویر زیر نمونهای از «بردارهای فرهنگی» یا «اصطلاحات برتر» است که توسطEcho Nest استفاده میشود.
در ادامه، مانند فیلتر مشارکتی، مدل NLP از این اصطلاحات و وزنها برای ایجاد یک نمایش برداری از آهنگ استفاده میکند که میتواند برای تعیین مشابه بودن دو قطعه موسیقی استفاده شود.
مدل تجزیه و تحلیل موسیقی
در ابتدا ممکن است یک سوال برای شما بوجود بیاد.
اینکه، ما در حال حاضر دادههای زیادی از دو مدل اول داریم! چرا باید خود صدا را نیز تجزیه و تحلیل کنیم؟
اول از همه، افزودن مدل سوم، دقت سرویس توصیه موسیقی را بیشتر بهبود میبخشد. اما این مدل یک هدف ثانویه نیز دارد: برخلاف دو نوع اول، مدلهای صوتی خام آهنگهای جدید را در نظر میگیرند.
به عنوان مثال، آهنگی را که دوست خواننده یا ترانهسرای شما در اسپاتیفای گذاشته است را در نظر بگیرید. شاید فقط 50 نفر به آن گوش داده باشند، بنابراین تعداد کمی شنونده دیگر وجود دارد که به طور مشترک آن را فیلتر کنند. همچنین هنوز در هیچ کجای اینترنت ذکر نشده است، بنابراین مدلهای NLP آن را انتخاب نمیکنند. خوشبختانه، مدلهای صوتی خام بین آهنگهای جدید و آهنگهای محبوب تفاوتی قائل نمیشوند، بنابراین با کمک آنها، آهنگ دوست شما میتواند در لیست پخش هفتگی Discover در کنار آهنگهای محبوب قرار بگیرد!
اما چگونه میتوانیم دادههای صوتی خام را که بسیار انتزاعی به نظر میرسند، تجزیه و تحلیل کنیم؟
با شبکههای عصبی کانولوشن!
شبکههای عصبی کانولوشن همان فناوری مورد استفاده در نرمافزارهای تشخیص چهره هستند. در مورد اسپاتیفای، آنها برای استفاده در دادههای صوتی به جای دادههای تصویری اصلاح شدهاند. در اینجا نمونه ای از معماری شبکه عصبی آورده شده است:
این شبکه خاص دارای چهارلایه کانولوشن است که به صورت نوارهای ضخیم در سمت چپ و سهلایه متراکم به عنوان نوارهای باریکتر در سمت راست دیده میشوند. ورودی آن نمودار فرکانس زمانی فریمهای صوتی هستند، که سپس به هم متصل میشوند تا یک نمودار طیفی را تشکیل دهند.
فریمهای صوتی از میان این لایههای کانولوشنی عبور میکنند و پس از عبور از آخرین لایه، میتوانید یک لایه جامع را ببینید که بطور کامل تمامی دادهها و ویژگیهای موسیقی را استخراج میکند.
پس از پردازش، شبکه عصبی یک درک کلی از آهنگ، از جمله ویژگیهایی مانند میزان، گام، حس و حال، تمپو و بلندی صدا را به دست میآورد. در تصاویر زیر نموداری از دادههای یک قطعه 30 ثانیهای به نام «دور دنیا» از گروه Daft Punk را نشان دادهایم.
در نهایت، بدست آوردن ویژگیهای کلیدی آهنگ به اسپاتیفای این اجازه را میدهد تا شباهتهای اساسی بین آهنگها را درک کند تا بر اساس آنها به کاربران بنا بر سلیق موسیقایی خودشان لیست پخشی را ارائه کند که همگی از آن لذت ببرند.
این سه مدل، مدلهای اصلی پیشنهاد موسیقی برای لیست پخش هفتگی کاربران اسپاتیفای بودند.
البته، این مدلها همگی به اکوسیستم بزرگتر اسپاتیفای متصل هستند که شامل مقادیر عظیمی از دادهها است و از چارچوبهای بزرگ زیادی برای پردازش این توصیهها استفاده میکند و باعث میشود که این موتورها روی ماتریس های عظیم، مقالات موسیقی آنلاین بیپایان، و تعداد زیادی فایل صوتی کار کنند.
ما در آکادمی بازارساز امیدواریم که این مطلب برای شما آموزنده و جذاب بوده باشد و شما هم مانند ما از خواندن آن لذت برده باشید.