作為煎餅果子聖地,天津人評價最高的煎餅店,一定不是人們趨之若鶩的網紅店,而是「我家樓下那家」。
人們對於音樂的喜好,和天津人對煎餅果子的愛有異曲同工之處,好友熱情分享的音樂,通常會被你歸為「垃圾」。隨著卡帶、CD、MP3逐漸被行動網路取代,音樂平台最終承載起滿足人們音樂品味的重任。
社群媒體上歷久不衰的兩個問題,一個是為什麼「隨機」推薦並不是真的「隨機」,另一個就是為什麼音樂平台推薦的音樂都這麼「垃圾」。如果有機會,大概所有人最想做的事情就是去面對面問一下音樂平台的工程師,自己到底怎麼才能「調教」好這個App,讓它推薦更多自己喜歡的音樂。
以用戶數最多的音樂平台Spotify為例,他們最近開發出了一種新的演算法——偏好轉化模型(Preference Transition Model,PTM),想要預測,一年後的你會聽什麼音樂。
當我們只看見自己喜歡的內容
抖音、微博、淘寶、YouTube、Spotify,這些平台的演算法想盡辦法猜測我們的喜好,然後把它們覺得我們會喜歡的內容推給我們。
有些時候,這些算法確實猜得很準,我們看到的都是喜歡的內容。但從另一方面來說,我們只看了自己喜歡的內容。
網路活動家伊萊·帕里瑟(Eli Pariser)在2011年的時候提出了他著名的「過濾氣泡」(Filter Bubble)理論:算法會根據用戶的地址、歷史點擊、過往搜索等用戶相關資訊猜測用戶喜好。這個過程中,那些與用戶意見不相同的訊息就被過濾掉了。長期下來,用戶就會無法接觸新的想法和訊息,逐漸隔絕在自己的意識形態泡沫中。
在處理過濾氣泡的問題上,Spotify一直因為精準的演算法而為人稱道。不只是讓用戶在自己熟悉的內容裡打轉,它總能幫用戶發現那些新鮮的歌曲。而恰好,這些歌曲還很討人喜歡。
揭開Spotify「演算法黑箱」
「每週發現」(Discovery Weekly)是Spotify在2015年7月的王牌欄目。每週一,Spotiy就會向用戶推薦30首完全沒聽過的歌曲。同時,它又總能帶來非常好的用戶體驗。截至2020年6月25日,每週發現總共被播放了23億小時,大約是26.65萬年,比人類文明存在的時間還長。
Spotify是怎麼做到這一切的?當然還是演算法。
Spotify主要使用了三種推薦機制——協同過濾算法(Collaborative Filtering Model)、卷積神經網絡(Convolutional Neural Networks)和自然語言分析(Natural Language Processing)。
Netflix是最早使用協同過濾算法來推薦內容的平台。在Netflix大獲成功之後,這種算法就變得越來越流行。簡單來說,它會根據用戶之間的相似性而不是內容的相似性來推薦新事物。
對Spotify來說,擺在它面前的是一個巨大的數據庫,裡面裝滿了用戶聽過內容的歷史。協同過濾算法會根據用戶A聽過的歌曲,找到也喜歡這些歌的另一個用戶B,然後向A推薦只有B聽過的歌曲。
但協同過濾算法的一大缺點就是所謂的「冷啟動」,只有掌握足夠多的數據,協同過濾算法才能發揮作用。如果用戶是一個還沒有聽過多少歌的新用戶,或者資料夾裡有一首非常冷門的歌曲,協同過濾算法就無法精準匹配。
這就引入了另一種算法——自然語言處理。Word2Vec常被用在自然語言處理中,它可以將我們日常的對話編碼成數學關係——向量。
Spotify做了和Word2Vec相似的工作。它會抓取網路上描述音樂、歌曲或者歌手的詞語,通過算法分配給它們不同的權重。這個權重,一定程度上代表了人們用這個詞來描述音樂的概率。通過自然語言處理,Spotify就能確定那兩首歌彼此是相似的,從而解決冷啟動問題。即使是冷門的歌曲或歌手,也能得到推薦。
Spotify的第三種方式是卷積神經網。
在前面兩種算法的幫助下,Spotify已經獲得了足夠多的數據,但卷積神經網絡可以進一步提高音樂推薦的準確性。
卷積神經網絡會分析歌曲的特徵,包括拍子、音調、模式、節奏、強弱度等。通過閱讀這些歌曲的特徵,Spotify就可以根據用戶的收聽歷史了解它們之間的相似性,匹配用戶的喜好。
正是通過這三種算法,Spotify像魔法般猜準了用戶的喜好,打造出了千人千面的Discover Weekly。
但即使Spotify已經成為了世界上最流行的流行音樂播放軟體,即使世界上最聰明的人在這裡構建出了無比精巧的算法,過濾氣泡的「詛咒」依舊存在。
於是,Spotify,又多做了一步。
但是,人是會變的呀!
2021年4月,Spotify聯合多倫多大學發布了一篇論文《下一步去哪兒?一種用戶偏好的動態模型》(Where To Next?A Dynamic Model of User Preferences)。
他們在4年間(2016年至2020年)分析了10萬名用戶的收聽數據,來觀察用戶的消費分佈變化。他們發現,隨著時間的變化,用戶的消費習慣也在發生變化。先前的算法擅長捕捉用戶的靜態喜好,但當面對長時間的跨度時,卻無法捕捉用戶動態的喜好變化。對於Spotify的長期用戶來說,他們依舊可能困在過濾氣泡中。
Spotify同時也發現,當免費用戶消費的音樂種類越多時,他們越有可能轉化為付費用戶。也就是說,用戶聽到的音樂類型越多,他們越喜歡Spotify。
那麼該如何知道,一個人未來的音樂口味呢?
Spotify給出了一個新的演算法——偏好轉化模型(Prefenrence Transition Model,PTM)。
在這張偏好轉化模型的草圖中,我們可以大致窺見PTM的工作原理。
我們現在有個用戶1號,根據歷史,可以知道他喜歡聽靈魂樂(Soul)。我們想知道,他以後會不會喜歡新世紀音樂(New Age)和布魯斯(Blues)。
轉換矩陣A是PTM的核心,將上述的數據輸入A,就會得到一個預測的結果。可以看到,新世紀音樂的數值(0.4)和靈魂樂(0.5)非常接近,那用戶1將來很有可能會喜歡上新世紀音樂。
當然,這只是一個最簡單的模型演示,實際情況要比這複雜得多。Spotify總共歸納了4000種音樂流派。而在Spotify的數據庫中,還有有3.56億個這樣的「用戶1號」。
除了預測性能,PTM的另一大特點就是可以直觀地解釋從一種音樂是如何轉換到另一種音樂的。假定我們現在有兩個音樂流派a和b,PTM就可以提供用戶在聽完a之後轉換到b的概率。這就解釋了兩個問題:
- a到b,哪條路徑是最短的?
- 如果用戶聽了a,那麼他接下來最有可能播放哪個流派?
回答這兩個問題,大大提高了PTM的效率和預測準確性。
如何「馴服」演算法
看起來,Spotify已經做得很好了。但再聰明的演算法,都可能時不時抽一下風。畢竟,人確實很複雜,沒有人可以像你自己一樣了解自己。
Spotify官方也給出了一些建議,希望幫助你更好地「馴服」他們的演算法。
- 給你喜歡的歌曲點個❤️。
- 如果你不喜歡一首歌,在30秒之前跳過它。30s是個關鍵節點,如果在這之前跳過一首歌,相當於演算法在內部給它點了👎。
- 聽聽新的歌手和他們的音樂。這樣演算法就可以更好地學習你的行為模式。
- 提供你的年齡和位置訊息——要是你不介意的話。Spotify會根據用戶的年齡和地理位置推薦不同的音樂類型。
- 如果你不想Spotify注意到你的行為,可以使用「私密模式」。
- 最後,保持耐心。算法在設計中會忽略新的收聽行為中一些迅速的、突然出現的峰值,因為許多人會分享他們的Spotify登錄信息。因此新的收聽活動可能不會立刻導致你的播放列表變化。
本文授權轉載自:極客公園
責任編輯:郭昱彣、錢玉紘