ซึ่ง Python Library นั้นจะ run matrix ทั้งหมดโดยใช้สมการคือ
สมการ python
ซึ่งเมื่อ run จบนั้น จะได้รูปแบบของ Vectors สองชนิดคือ X จะแทน user vector ซึ่งจะหมายถึง รสนิยมการฟังเพลงของ single นั้น ๆ ของ user ส่วน Y นั้นจะเป็น song vector จะเป็นตัวแทนของ profile ของเพลงนั้น ๆ
The User/Song matrix produces two types of vectors: User vectors and Song vectors
ซึ่งเราจะได้ User Vectors จำนวน 140 ล้านตามจำนวน user ทั้งหมดในระบบ และ Song Vectors จำนวน 30 ล้าน ตามจำนวนเพลงทั้งหมดในระบบ ซึ่งเหล่า Vector ข้อมูลเหล่านี้นั้น เป็นประโยชน์อย่างยิ่งในการเปรียบเทียบรสนิยมการฟังเพลงของ user แต่ละคน ซึ่งการที่จะหาว่า user คนใด ๆ มีรสนิยมการฟังเพลงคล้ายกับใครนั้น จะต้องใช้ collaborative filtering ในการเปรียบเทียบ vector ของ user นั้น ๆ กับ vector ของคนอื่น ๆ ในระบบทั้งหมด
Recommendation Model #2 : Natural Language Processing (NLP)
สำหรับส่วนที่ 2 ใน Recommendation Model ของ Spotify นั้นใช้ เทคนิค ของ Natural Language Processing (NLP) สำหรับ source ของข้อมูลที่จะนำมา analyse ผ่านเทคนิค NLP นั้นจะใช้ ข้อมูลของ track metadata ของเพลง , news articles, blogs รวมถึงข้อมูลที่เป็น text อื่น ๆ ในระบบ internet
Natural Language Processing (NLP)
Natural Language Processing นั้น จะเป็นการใช้ความสามารถของ computer ในการวิเคราะห์ข้อความ text โดยส่วนใหญ่นั้นจะใช้วิธีผ่าน sentiment analysis APIs
โดยรูปแบบการทำงานเบื้องหลังของ NLP ที่ spotify ใช้นั้น spotify จะสร้าง crawls คล้าย ๆ กับที่ google ใช้ในการเก็บ index ข้อมูล data เพื่อมา index ให้ user ทำการค้นหา แต่ spotify นั้นจะ focus ไปที่ blogs หรือ งานเขียน ที่เกี่ยวข้องกับวงการเพลง และนำมาวิเคราะห์ว่าผู้คน ใน internet กำลังพูดถึง ศิลปิน หรือ เพลงนั้นๆ อย่างไร แต่วิธีการในการ process ข้อมูลเหล่านี้นั้นยังเป็นความลับที่ spotify ยังไม่มีการเผยแพร่ออกมาว่าจัดการกับข้อมูลเหล่านี้อย่างไร
แต่จะขอยกตัวอย่างจาก Echo Nest ที่ใช้วิธีการคล้าย ๆ กัน ซึ่ง Echo Nest นั้้นนำข้อมูลมา process โดยเรียกว่า “cultural vectors” หรือ “top terms” โดยแต่ละ ศิลปิน รวมถึง แต่ละเพลงนั้น จะมีการเปลี่ยนแปลงของ top-terms อยู่ทุกวันผ่านการ analysis ข้อมูลจากระบบ internet ซึ่งแต่ละ term นั้นจะมีค่า weight อยู่ ขึ้นอยู่กับความสำคัญของคุณลักษณะของแต่ละ term
“Cultural vectors” , or “top terms” , as used by the Echo Nest.
หลังจากนั้น รูปแบบก็จะคล้าย ๆ กับ collaborative filtering ซึ่ง NLP Model จะใช้ terms และ weights ในการสร้าง vector ของเพลง ซึ่งสามารถที่จะนำมาเปรียบเทียบว่า เพลงใด มีสไตล์ คล้าย ๆ กับเพลงใด ซึ่งจะส่งผลต่อการแนะนำให้กับ user ที่ใช้งานได้ตรงรสนิยมของ user คนนั้น ๆ ได้
Recommendation Model #3: Raw Audio Models
Raw Audio Models
หลาย ๆ ท่านอาจจะคิดว่า แค่ 2 model ข้างต้นนั้นก็สามารถวิเคราะห์ข้อมูล ของเพลงและ user ได้อย่างมีประสิทธิภาพแล้ว แต่ Spotify ได้เพิ่มในส่วนของ Raw Audio Model เพื่อเพิ่มความแม่นยำในส่วนการแนะนำเพลงให้มีความแม่นยำมากที่สุด และ Raw Audio Model นั้นยังสามารถที่จะเปิดประสบการณ์ฟังเพลงใหม่ ๆ ให้กับ user ได้อีกด้วย
หลังจาก process เสร็จนั้น neural network นั้นจะสามารถที่จะเข้าใจคุณลักษณะต่าง ๆ ของเพลง ตัวอย่างเช่น time signature , key , mode , tempo หรือ loudness ซึ่ง output รูปตัวอย่างข้างล่างนั้นจะเป็นการนำเพลง “Around the world”ของศิลปิน Daft Punk มาผ่าน process จากรูปข้างบน และจะได้ output ดังรูป
ใช้เทคโนโลยี Neural Network
ซึ่งหลังจากเข้าใจคุณลักษณะหลัก ๆ ของเพลงนั้น Spotify ก็สามารถที่จะนำข้อมูลต่าง ๆ เหล่านี้ไปวิเคราะห์เพื่อเปรียบเทียบเพลง ซึ่งสามารถทำให้ user ได้รับเพลงที่มีรสนิยมคล้าย ๆ กันโดยนำข้อมูลจากประวัติการฟังเพลงของ user นั้น ๆ มาเปรียบเทียบกับเพลงใหม่ ๆ ที่ได้ทำการวิเคราะห์ผ่าน Raw Audio Model
ซึ่งการประกอบกับของทั้ง 3 models นั้น ได้สร้างความแตกต่างและประสิทธิภาพให้กับ Features Discover Weekly Playlist ของ Spotify ที่ทำให้แตกต่างจากบริการฟังเพลง online อื่น ๆ และทำให้ user ต่างหลงรัก Spotify
Spotify Recommendation Model
ซึ่งทุก ๆ model นั้นมีการเชื่อมต่อกับ service ของ Spotify ซึ่งเป็น ecosystem ที่มีขนาดใหญ่มากตามจำนวน user และ เพลง ที่มีในระบบ ซึ่งต้องประกอบไปด้วยฝั่ง infrasturcture หลังบ้านที่แข็งแกร่งเพื่อรองรับ data จำนวนมหาศาล และสามารถจะวิเคราะห์ข้อมูลจำนวนมหาศาลเหล่านี้ได้อย่างรวดเร็ว ทำให้ user ที่ใช้งานรู้สึกสะดวกที่สุดและสามารทำงานได้อย่างมีประสิทธิภาพมากที่สุด
ซึ่งเราจะเห็นได้ว่าจากตัวอย่างของ Spotify นั้นแม้จะเป็นบริการที่เปิดทีหลัง แต่ก็สามารถต่อกรกับยักษ์ใหญ่ได้อย่างไม่เป็นรอง เพราะระบบหลังบ้านที่มีความแข็งแกร่ง และการใช้ Machine Learning หรือ AI มาช่วยในการพัฒนาบริการนั้นก็ได้เพิ่มความแตกต่างให้กับบริการของ Spotify รวมถึง Features ที่สามารถตอบโจทย์ให้กับ user ทำให้ user นั้นต่างหลงรักและยอมเปลี่ยนมาใช้ Spotify กว่าร้อยล้านคน และกำลังเติบโตขึ้นเรื่อย ๆ ในขณะนี้
References :
From Idea to Execution: Spotify’s Discover Weekly
Collaborative Filtering at Spotify
Recommending music on Spotify with deep learning
How music recommendation works — and doesn’t work
Ever Wonder How Spotify Discover Weekly Works? Data Science
The magic that makes Spotify’s Discover Weekly playlists so damn good