איך עובד האלגוריתם של ספוטיפיי?

או, ממה מורכב מודל ההמלצות של ספוטיפיי?

רמז: מדובר באחד האלגוריתמים הכי משוכללים שקיימים כיום

ספוטיפיי אינה משתמשת רק במודל אלגוריתם אחד בלבד אלא מערבבת כמה מודלים שונים של אלגוריתמים שמשמשים מודלים נוספים אחרים על מנת לייצר אלגוריתם חזק המגלה בצורה טובה יותר מוסיקה רלוונטית.

שלושת המודלים העיקריים המשמשים את האלגוריתם של ספוטיפיי:

NLP - Natural Language Processing - עיבוד שפות טבעיות

מעבדי טקסט ושפה המנתחים טקסטים בשפות שונות בכל רחבי הרשת, מדובר בכתבות תוכן, באתרי חדשות, בלוגים וכמעט כל תוכן שנמצא באינטרנט.

מדובר במעין "זחל" שמסתובב ברשת ומחפש כל הזמן לגלות מה אנשים כותבים, מה הם מרגישים ומה הם חושבים על שירים ואמנים.

באילו תיאורים הם משתמשים על כל אמן ושיר וכך בעצם מודל המעבד שפות טבעיות של ספוטיפיי פועל עבור הפלטפורמה בניתוח רחב היקף בכל נושא הקשור למוסיקה ונותן עבור כל שיר ואמן אינדיקציה על כמה אותו אמן מדובר ברשת ומה דעת הקהל על כל שיר ברשת.

Collaborative Filtering – סינון שיתופי:

מודל הסינון השיתופי של ספוטיפיי בעצם עוקב אחריי דעת הקהל בקרב מילוני המשתמשים בשירות ספוטיפיי.

דוגמאות למודל הסינון השיתופי:

 – אם שמעתם שיר מסוים ומיד לאחריו נכנסתם אל דף האמן – מודל הסינון השיתופי מבין שאותו אמן מעניין אותכם.

-אם שמעתם שיר מסוים ולאחר חצי דקה העברתם לשיר אחר – מודל הסינון השיתופי מבין שלא אהבתם את השיר

יכולות מודל הסינון השיתופי עמוקות הרבה יותר מהדוגמאות השטחיות שמעל, מדובר על מתמטיקת מטריקס סופר מורכבת המוצלבת עם ספריות פייתון (Matrix Factorization Formula).

אם ננסה לפשט את זה – כי אם לא, יהיה קשה מאוד להבין, אז לצורך הפשטות ניקח לדוגמא את מאגר הדאטה של ספוטיפי ונדמיין שמדובר בטבלה.

טבלה עם 250 מיליון שורות, כל משתמש שנמצא בספוטיפיי – הוא שורה באותה טבלת מטריקס.

לאותה טבלה יש גם 80 מיליון עמודות – כל עמודה בטבלה מייצגת שיר שנמצא במאגר של ספוטיפיי.

אז מה קיבלנו? טבלה סופר ענקית וסופר מתוחכמת בגודל של 250 מיליון שורות על 80 מיליון עמודות (נסו לדמיין את זה כטבלת אקסל) בעלת 2 וקטורים – וקטור X המייצג את המשתמש, ווקטור Y המייצג שיר.

ובעצם כך המערכת מצליבה נתונים, לכל קוביית הצטלבות בטבלה של משתמש ושיר יש סימנים ומספרים, שבצירוף כולם יחד המערכת מקבלת המון מידע על משתמשיה וכמובן על השירים במאגר.

המערכת בעצם עושה התאמה בין וקטורים דומים של משתמשים שונים, הסינון השיתופי משווה בין וקטור ה X בין משתמשים שונים וכך מגלה אילו משתמשים הם בעלי הטעם המוסיקלי הדומה ביותר.

אותו דבר לגבי סינון השירים – המערכת משווה בין וקטור Y המייצג כל שיר במאגר לבין וקטורים של שירים אחרים וכך מוצאת מה השירים הדומים לאותו שיר.

Raw Audio Models - דגמי אודיו גולמיים

אז אם שני המודלים הסופר מורכבים וחכמים לא הספיקו לספוטיפיי, כאן מגיע המודל השלישי של החברה שמאפשר לספוטיפיי תוצאות מדויקות אפילו עוד יותר.

אחת הסיבות העיקריות לשימוש במודל אודיו גולמי היא הסיבה שהוא מגלה מידע על שירים חדשים, כאלו שאין עליהם מספיק מידע ברחבי הרשת (NLP) ואין מספיק האזנות במודל הסינון השיתופי.

גם כאן מדובר במודל סופר מסובך ומפותל, ושוב ננסה להפשיט אותו על מנת להנגיש את המידע.

מדובר בתהליך עיבוד שיר המנתח את מאפייני השיר כמו BPM, סולם, זמנים קצב ועוד.

לאחר ניתוח דגמי האודיו הגולמיים המודל מאפשר למערכת לפענח את נתוני המפתח של השיר ומאפשרת למערכת לפענח קווי דמיון בין השירים וכך גם להבין לגבי מאזינים נוספים על בסיס היסטוריית ההאזנה שלהם בעבר.