Ushbu dushanba - xuddi undan oldingi har dushanba kabi - 100 milliondan oshiq Spotify foydalanuvchilari ularni kutayotgan yangi pleylistni topishdi, ular Discover Weekly deb nomlangan. Bu odatiy 30 ta qo'shiqdan iborat bo'lib, ular ilgari tinglashmagan, lekin sevishlari mumkin va bu juda sehrli.

Men Spotify-ning, ayniqsa Discover Weekly-ning katta muxlisiman. Nima uchun? Bu menga o'zimni ko'rganday his qiladi. Bu mening musiqiy didimni hayotimdagi har qanday odamga qaraganda yaxshiroq biladi va men har haftada qanchalik to'g'ri va qanaqadir qoniqarli ekanligidan mamnunman, treklarni o'zim hech qachon topolmagan bo'lar edim yoki bilmoqchi edim.

Sizlarning orangizda ovoz o'tkazmaydigan tosh ostida yashaydiganlar, sizni virtual eng yaxshi do'stim bilan tanishtirishga ijozat bergaysiz:

Spotify Discover haftalik pleylisti - xususan, meniki.

Ko'rinib turibdiki, Discover Weekly-ga qiziqishim bilan yolg'iz emasman. Spotify-ni diqqat markazini qayta ko'rib chiqishga va algoritmga asoslangan pleylistlarga ko'proq resurslarni jalb qilishga undagan foydalanuvchi bazasi bu uchun aqldan ozmoqda.

Discover Weekly 2015 yilda debyut qilganidan beri men qanday ishlashini bilishni xayolimga keltirmoqdaman (bundan tashqari, men Spotify fangirliman, shuning uchun men ba'zan o'zim u erda ishlayotganimni va o'z mahsulotlarini tadqiq qilayotganday ko'rsatishni yaxshi ko'raman.) Uch haftalik aqldan keyin. Googling, men nihoyat parda ortiga nazar tashladim.

Xo'sh, qanday qilib Spotify har haftada har bir kishi uchun 30 ta qo'shiqni tanlash kabi ajoyib ishni bajaradi? Boshqa musiqiy xizmatlarning musiqiy tavsiyalarga qanday munosabati va Spotify-ning qanday ishlashini ko'rib chiqish uchun bir soniya qisqartirilsin.

Onlayn musiqani tiklashning qisqacha tarixi

2000-yillarda, Songza foydalanuvchilar uchun pleylistlarni yaratish uchun qo'lda katalog yordamida onlayn musiqani kationlash sahnasini boshladi. Bu shuni anglatadiki, "musiqa mutaxassisi" jamoasi yoki boshqa inson kuratorlari ular yaxshi eshitildi deb o'ylagan pleylistlarni birlashtiradilar va keyin foydalanuvchilar ushbu pleylistlarni tinglaydilar. (Keyinchalik, Beats Music ham xuddi shu strategiyani qo'llagan bo'lar edi.) Qo'lda tartiblash ishlari yaxshi bajarilgan, lekin u aniq kuratorning tanloviga asoslangan va shuning uchun har bir tinglovchining individual musiqiy didini hisobga olmaydi.

Songza singari, Pandora ham raqamli musiqiy kuryatsiyalarning asl pleyerlaridan biri edi. Bu qo'shiqlarning atributlarini qo'lda teglash o'rniga biroz rivojlangan yondashuvni qo'lladi. Bu degani, bir guruh odamlar musiqa tinglashdi, har bir trekka bir nechta tavsiflovchi so'zlarni tanlab olishdi va tegishli ravishda treklarni belgilashdi. Keyin Pandora kodi shunchaki o'xshash musiqali pleylistlarni yaratish uchun ba'zi teglar uchun filtrlashi mumkin.

Taxminan shu vaqtning o'zida MIT Media Lab tomonidan ishlab chiqarilgan "Echo Nest" deb nomlangan musiqiy razvedka agentligi tug'ildi, u shaxsiylashtirilgan musiqaga tubdan va zamonaviy yondoshdi. Echo Nest musiqaning audio va matn tarkibini tahlil qilish uchun algoritmlardan foydalangan, bu musiqani aniqlash, shaxsiy tavsiyalar, ijro ro'yxatlarini yaratish va tahlillarni amalga oshirishga imkon beradi.

Va nihoyat, yana bir yondashuv - bu Last.fm bo'lib, u bugungi kunda ham mavjud va foydalanuvchilar tomonidan yoqishi mumkin bo'lgan musiqani aniqlash uchun birgalikda filtrlash deb nomlangan jarayondan foydalanadi, lekin bir lahzada bundan ham ko'proq.

Shunday qilib, agar boshqa musiqiy katalog xizmatlari tavsiyalarni qanday bajargan bo'lsa, Spotify sehrli vositasi qanday ishlaydi? Qanday qilib individual xizmatlarning ta'mini boshqa xizmatlarga qaraganda aniqroq qilib ko'rsatish mumkin?

Spotify-ning uch xil tavsiya modellari

Spotify aslida bitta inqilobiy tavsiyalar modelini ishlatmaydi. Buning o'rniga ular o'zlarining noyob kuchli kashfiyot motorini yaratish uchun boshqa xizmatlar tomonidan ishlatiladigan eng yaxshi strategiyalarni birlashtiradilar.

Discover Weekly-ni yaratish uchun Spotify-da uchta asosiy tavsiya modellari mavjud:

  1. Birgalikda filtrlash modellari (ya'ni Last.fm avval ishlatilganlari), ular sizning harakatingizni ham, boshqalarning harakatlarini ham tahlil qiladi.
  2. Matnni tahlil qiladigan tabiiy tillarni qayta ishlash (NLP) modellari.
  3. Ovozli treklarni o'zlari tahlil qiladigan audio modellar.
Rasm manbasi: Hech haftalik kashfiyot qanday qilib spotify-ni hayron qoldirasiz Galvanizatsiya orqali ma'lumotlar uzatish.

Keling, ushbu tavsiya etilgan modellarning har biri qanday ishlashini ko'rib chiqaylik!

1-tavsiya modeli: Birgalikda filtrlash

Birinchidan, ba'zi bir ma'lumotlar: odamlar "birgalikda filtrlash" so'zlarini eshitishganda, ular Netflix haqida o'ylashadi, chunki u ushbu usulni tavsiya modelini ishlab chiqarishda foydalangan birinchi kompaniyalardan biri bo'lib, foydalanuvchilarning yulduzlarga asoslangan film reytinglarini bu haqda xabardor qilish uchun foydalanadi. boshqa shunga o'xshash foydalanuvchilarga qaysi filmlarni tavsiya qilishni tushunish.

Netflix muvaffaqiyatli bo'lganidan so'ng, birgalikda filtrlash tez tarqaldi va endi tavsiya modelini ishlab chiqarishga harakat qilayotgan har bir kishi uchun ko'pincha boshlang'ich hisoblanadi.

Netflix-dan farqli o'laroq, Spotify-da foydalanuvchilar musiqasini baholaydigan yulduzlarga asoslangan tizim yo'q. Buning o'rniga, Spotify-ning ma'lumotlari aniq javobdir - xususan, foydalanuvchi trekni o'z pleylistiga saqlaganmi yoki qo'shiqni tinglaganidan so'ng ijrochining sahifasiga kirganligi kabi treklarning oqimlari va qo'shimcha oqim ma'lumotlari.

Birgalikda filtrlash nima o'zi, va u qanday ishlaydi? Bu erda tezkor suhbatda quyidagicha tushuntirish berilgan:

Tasvir manbasi: Spotify-da hamkorlikda filtrlash, sobiq Spotify Erik Bernhardsson tomonidan.

Bu erda nima bo'lyapti? Ushbu shaxslarning har birida treklar afzal ko'riladi: chap tomonda P, Q, R va S izlari yoqadi, o'ngda esa Q, R, S va T treklari yoqadi.

Birgalikda filtrlash quyidagi ma'lumotlardan foydalanadi:

"Hmmm ... Ikkalaingiz ham bir xil uchta trekni yoqtirasiz - Q, R va S - shuning uchun siz o'xshash foydalanuvchilarga o'xshaysiz. Shu sababli, siz tinglagan va tinglamagan boshqa treklardan bahramand bo'lishingiz mumkin. "

Shu sababli, R-ning to'g'ri yo'lida turgan yagona yo'l ko'rsatilmagan, ammo uning "shunga o'xshash" hamkasbi yoqtirgan - va chap tomonda joylashgan T-yo'l ham xuddi shu asosda. Oddiy, to'g'rimi?

Ammo Spotify aslida ushbu tushunchani amalda qanday qilib millionlab foydalanuvchilarning millionlab boshqa foydalanuvchilarning afzalliklari asosida taklif etgan treklarni hisoblash uchun ishlatadi?

Python kutubxonalarida bajarilgan matritsa matematikasi bilan!

Aslida, bu erda ko'rib turgan matritsa juda katta. Har bir satr Spotify-ning 140 million foydalanuvchisidan birini anglatadi - agar siz Spotify-dan foydalansangiz, siz o'zingiz ushbu matritsadagi qatorsiz - va har bir ustun Spotify ma'lumotlar bazasidagi 30 million qo'shiqdan birini anglatadi.

Keyin Python kutubxonasi bu uzun, murakkab matritsali faktorizatsiya formulasini ishlaydi:

Ba'zi murakkab matematik ...

U tugagach, biz bu erda X va Y harflar bilan ifodalangan ikki xil vektorlarga duch kelamiz. X - bitta foydalanuvchi ta'mini ifodalaydigan foydalanuvchi vektori, Y esa bitta qo'shiqning profilini aks ettiruvchi qo'shiq vektori.

Foydalanuvchi / qo'shiq matritsasi ikki xil vektorlarni ishlab chiqaradi: foydalanuvchi vektorlari va qo'shiq vektorlari. Tasvir manbasi: G'oyadan ijrogacha: Spotify-ning haftalik kashfiyoti, sobiq Spotify Kris Jonson tomonidan.

Endi bizda 140 million foydalanuvchi vektori va 30 million qo'shiq vektorlari mavjud. Ushbu vektorlarning haqiqiy tarkibi shunchaki o'z-o'zidan ma'nosiz bo'lgan, ammo taqqoslashda juda foydali bo'lgan sonlar guruhidir.

Foydalanuvchilarning qaysi musiqiy ta'mlari menikiga juda o'xshashligini bilish uchun, birgalikda filtrlash mening vektorimni boshqa foydalanuvchilarning barcha vektorlari bilan taqqoslaydi va oxirida qaysi foydalanuvchilar yaqinroq ekanligini aniqlaydi. Xuddi shu narsa Y vektoriga, qo'shiqlarga taalluqlidir: bitta qo'shiqning vektorini qolganlari bilan taqqoslab, qaysi qo'shiqlarning savolga eng o'xshashligini bilib olishingiz mumkin.

Birgalikda filtrlash juda yaxshi ish, lekin Spotify ular boshqa dvigatelni qo'shish orqali bundan ham yaxshiroq ishlashlari mumkinligini bilardi. NLP-ga kiring.

Tavsiya №2: Tabiiy tillarga ishlov berish (NLP)

Spotify-dan foydalanadigan tavsiya qilishning ikkinchi turi - Natural Language Processing (NLP) modellari. Ushbu modellar uchun manba ma'lumotlari, nomidan ko'rinib turibdiki, oddiy so'zlar: trek metadata, yangiliklar maqolalari, bloglar va Internetdagi boshqa matnlar.

Tabiiy tilga ishlov berish, bu kompyuterning inson nutqini aytilganidek tushunish qobiliyati bo'lib, o'zi uchun juda keng maydon bo'lib, ko'pincha tuyg'ularni tahlil qilish API-laridan foydalaniladi.

NLP-ning aniq mexanizmlari ushbu maqolaning doirasiga kirmaydi, lekin bu erda juda yuqori darajada bo'ladi: Spotify veb-saytlarni doimiy ravishda bloglar va musiqa haqida yozilgan boshqa matnlarni izlaydi, odamlar aniq rassomlar va qo'shiqlar haqida nima deyayotganini bilish uchun. - o'sha san'atkorlar va qo'shiqlarga nisbatan qaysi sifatlar va qaysi til tez-tez ishlatiladi va ular bilan birga boshqa san'atkorlar va qo'shiqlar ham muhokama qilinmoqda.

Spotify ushbu parchalangan ma'lumotni qayta ishlashni qanday tanlashini aniq bilmasam ham, Echo Nest ular bilan qanday ishlashi haqida ba'zi tushunchalarni taklif qilishim mumkin. Ular Spotify-ning ma'lumotlarini "madaniy vektorlar" yoki "eng yaxshi atamalar" deb ataydigan narsalarga to'plashar edi. Har bir qo'shiqchi va qo'shiqda har kuni o'zgarib turadigan minglab eng yaxshi atamalar mavjud edi. Har bir atama bilan bog'liq vazn bor edi, bu uning nisbiy ahamiyati bilan bog'liq edi - taxminan, kimdir musiqa yoki rassomni shu atama bilan tasvirlashi ehtimoli.

Exo Nest tomonidan ishlatiladigan

Keyinchalik, qo'shma filtrlash singari, NLP modeli ushbu atamalar va og'irliklarni qo'shiqning vektorli vakili yaratish uchun ishlatadi, bu esa ikkita musiqaning o'xshashligini aniqlash uchun ishlatilishi mumkin. Salqin, to'g'rimi?

Tavsiya Model № 3: Xom audio modellar

Birinchidan, savol. Siz quyidagicha fikrlashingiz mumkin:

Sofiya, bizda dastlabki ikkita modeldan juda ko'p ma'lumotlar mavjud! Nima uchun biz ham audioni tahlil qilishimiz kerak?

Birinchidan, uchinchi modelni qo'shish musiqani tavsiya qilish xizmatining aniqligini yanada oshiradi. Ammo bu model ikkinchi darajali maqsadga ham xizmat qiladi: dastlabki ikki turdan farqli o'laroq, xom audio modellari yangi qo'shiqlarni hisobga oladi.

Masalan, qo'shiqchi-qo'shiqlar muallifi do'stingiz Spotify-ga qo'ygan qo'shiqni olaylik. Ehtimol, bu erda faqat 50 tinglovchi bor, shuning uchun uni birgalikda filtrlaydigan boshqa tinglovchilar kam. Bundan tashqari, bu hali Internetda biron bir joyda eslatib o'tilmagan, shuning uchun NLP modellari uni olishmaydi. Yaxshiyamki, xom audio modellari yangi treklarni va ommabop treklarni ajratib turmaydi, shuning uchun ularning yordami bilan do'stingizning qo'shig'i mashhur qo'shiqlar qatorida Discover Weekly pleylistiga aylanishi mumkin!

Xo'sh, mavhum ko'rinadigan audio ma'lumotlarni qanday tahlil qilishimiz mumkin?

Konvulsion neyron tarmoqlari bilan!

Konvolyutsion neyron tarmoqlari yuzni aniqlash dasturida ishlatiladigan bir xil texnologiya. Spotify-da, ular piksel o'rniga audio ma'lumotlarini ishlatish uchun o'zgartirildi. Neyron tarmoq arxitekturasiga misol:

Tasvir manbasi: Spotify-ga musiqa bilan tanishishni tavsiya eting, Sander Dieleman.

Ushbu aniq neyron tarmoq chap tomonda qalin chiziqlar sifatida ko'riladigan to'rtta konvulsion qatlamga va o'ngdagi torroq tor shaklida ko'riladigan uchta zich qatlamga ega. Kirishlar bu audio freymlarning vaqt chastotali tasvirlari bo'lib, ular keyinchalik spektrogramma hosil qilish uchun birlashtiriladi yoki bir-biriga bog'lanadi.

Ovoz freymlari ushbu konvulsion qatlamlardan o'tadi va oxirgisidan o'tib, butun vaqt o'qi bo'ylab birlashadigan, qo'shiq davomida o'rganilgan xususiyatlarning statistikasini samarali hisoblaydigan "global vaqtinchalik pul yig'ish" qatlamini ko'rishingiz mumkin.

Ishlov berilgandan so'ng, neyron tarmoq qo'shiqni tushunishga imkon beradi, jumladan vaqtni belgilash, kalit, rejim, temp va balandlik kabi xususiyatlar. Quyida Daft Pankning "Dunyo bo'ylab" filmining 30 soniyali parchasi haqidagi ma'lumotlar joylashtirilgan.

Tasvir manbasi: Tristan Jean va David DesRoches, Echo Nest orqali.

Oxir oqibat, qo'shiqning asosiy xususiyatlarini o'qish Spotify-ga qo'shiqlarning asosiy o'xshashliklarini tushunishga imkon beradi va shuning uchun foydalanuvchilar o'zlarining tinglash tarixiga asoslanib, ulardan zavqlanishlari mumkin.

Spotify-ning tavsiyalarini etkazib beradigan uchta asosiy tavsiya modellari asoslarini qamrab oladi va oxir-oqibat Discover Week haftalik pleylistini quvvatlaydi!

Albatta, ushbu tavsiya modellarining barchasi Spotify-ning katta ekotizimiga ulangan bo'lib, u ulkan hajmdagi ma'lumotlarni saqlashni o'z ichiga oladi va tavsiyalarni miqyoslash uchun ko'plab Hadoop klasterlaridan foydalanadi va ushbu dvigatellarni ulkan matritsalarda, cheksiz onlayn musiqiy maqolalarda va ko'plab audio fayllarda ishlaydi. .

Umid qilamanki, bu ma'lumotli edi va menga o'xshab sizning qiziqishingizga ta'sir qildi. Hozir men o'zimning Discover Weekim orqali o'zimning yangi sevimli musiqamni topib, sahna ortida bo'layotgan barcha mashinalarni o'rganishni qadrlayman.

Ushbu maqolani o'qiganingiz va tahrirlaringizni taklif qilganingiz uchun ladikollektivga ham rahmat.