作為煎餅果子聖地,天津人評價最高的煎餅店,一定不是人們趨之若鶩的網紅店,而是「我家樓下那家」。人們對於音樂的喜好,和天津人對煎餅果子的愛有異曲同工之處,好友熱情分享過來的音樂,通常會被你歸為「垃圾」。隨著錄音帶、CD、MP3逐漸被行動網路取代,音樂應用最終承載起滿足人們音樂品味的重任。

社交媒體上經久不衰的兩個問題,一個是為什麼「隨機」推薦並不真的「隨機」,另一個就是為什麼音樂平台推薦的音樂都這麼「垃圾」。如果有機會,可能所有人最想做的事情就是去面對面問一下音樂應用的工程師,自己到底怎麼才能「調教」好這個App,讓它推薦更多自己喜歡的音樂。

以使用者數最多的音樂平台Spotify為例,他們最近開發出了一種新的演算法——偏好轉化模型(Preference Transition Model,PTM),想要預測,1年後的你會聽什麼音樂。

揭開 Spotify「演算法黑箱」

抖音、微博、淘寶、YouTube、Spotify,這些平台的演算法想盡辦法猜測我們喜好,然後把它們覺得我們會喜歡的內容推給我們。有些時候,這些演算法確實猜得很準,我們看到的都是喜歡的內容。但從另一方面來說,我們只看了自己喜歡的內容。

網路活動家伊萊·帕里瑟(Eli Pariser)在2011年的時候提出了他著名的「過濾氣泡(編按:又稱同溫層)」(Filter Bubble)理論:演算法會根據使用者的位址、歷史點擊、過往搜索等使用者相關資訊猜測使用者喜好。這個過程中,那些與使用者意見相悖的資訊就被過濾了。長期下來,用戶就會無法接觸新的想法和資訊,逐漸隔絕在自己的意識形態泡沫中。

在處理過濾氣泡的問題上,Spotify一直因為精準的演算法而為人稱道。不只是讓使用者在自己熟悉的內容中打轉,它總能幫用戶發現那些新鮮的歌曲。而恰好,這些歌曲還很討人喜歡。

「每週發現」(Discovery Weekly)是Spotify在2015年7月的王牌欄目。每週一,Spotiy就會向用戶推送30首完全沒聽過的歌曲。同時,它又總能帶來非常好的用戶體驗。截至2020年6月25日,每週發現總共被播放了23億小時,約合26.65萬年,比人類文明存在的時間還長。

Spotify是怎麼做到這一切的?當然還是演算法

Spotify主要使用了3種推薦機制——協同過濾演算法(Collaborative Filtering Model)、卷積神經網路(Convolutional Neural Networks)和自然語言分析(Natural Language Processing)。

Netflix是最早使用協同過濾演算法來推薦內容的平台。在Netflix大獲成功之後,這種演算法就變得越來越流行。簡單來說,它會根據使用者之間的相似性而不是內容的相似性來推薦新事物。

對Spotify來說,擺在它面前的是一個巨大的資料庫,裡面裝滿了使用者聽過內容的歷史。協同過濾演算法會根據使用者A聽過的歌曲,找到也喜歡這些歌的另一個用戶B,然後向A推送只有B聽過的歌曲。

但協同過濾演算法的一大缺點是所謂的「冷開機」問題,只有掌握足夠多的資料,協同過濾演算法才能起作用。如果用戶是一個還沒有聽過多少歌的新使用者,或者內容庫裡有一首非常冷門歌曲,協同過濾演算法就無法精準匹配。

這就引入了另一種演算法——自然語言處理。Word2Vec常被用在自然語言處理中,它可以將我們日常的對話編碼成數學關係——向量。

Spotify做了和Word2Vec相似的工作。它會抓取網路上描述音樂、歌曲或者歌手的詞語,通過演算法分配給它們不同的權重。這個權重,很大程度上代表了人們用這個詞來描述音樂的概率。通過自然語言處理,Spotify就能確定那兩首歌彼此是相似的,從而解決冷開機問題。即使是冷門的歌曲或歌手,也能得到推薦。

Spotify的第3種方式是卷積神經網。在前兩種演算法的説明下,Spotify已經獲得了足夠多的資料,但卷積神經網路可以進一步提高了音樂推薦的準確性。

卷積神經網路會分析歌曲的特徵,包括拍子、音調、模式、節奏、響度等。通過閱讀這些歌曲的特徵,Spotify就可以根據使用者的收聽歷史瞭解它們之間的相似性,匹配用戶的喜好。

正是通過這3種演算法,Spotify像魔法一般猜準了用戶的喜好,打造出了千人千面的Discover Weekly。但即使Spotify已經成為了世界上最流行的流媒體播放軟體,即使世界上最聰明的人在這裡構建出了無比精巧的演算法,過濾氣泡的「詛咒」依舊存在。

於是,Spotify,又多做了一步。

但是,人是會變的呀!

2021年4月,Spotify聯合多倫多大學發佈了一篇論文《下一步去哪兒?一種使用者偏好的動態模型》(Where To Next?A Dynamic Model of User Preferences)。

他們在4年間(2016年至2020年)分析了10萬名使用者的收聽資料,來觀察使用者的消費分佈變化。他們發現,隨著時間的變化,用戶的消費習慣也在發生變化。先前的演算法擅長捕捉使用者的靜態喜好,但當面對長時間的跨度時,卻無法捕捉使用者動態的喜好變化。對於Spotify的長期用戶來說,他們依舊可能困在過濾氣泡中。

這是2016年第一季度對比隨後每個季度的總消費變化直方圖。顏色越深,對比的時間跨度就越長。比如,最左邊的淺色曲線是2016年Q1和2016年Q2的對比;最右邊的深色曲線是2016年Q1換2020年Q2的對比。隨著時間的增加,變化也越來越明顯。(來源:Spotify)

Spotify同時發現,當免費使用者消費的音樂種類越多時,他們越有可能轉化為付費用戶。也就是說,使用者聽到的音樂類型越多,他們越喜歡Spotify。

那麼該如何知道,一個人未來的音樂口味呢?Spotify給出了一個新的演算法——偏好轉化模型(Prefenrence Transition Model,PTM)。

在這張偏好轉化模型的草圖中,我們可以大致窺見PTM的工作原理。

喜歡靈魂樂的人,更可能喜歡新世紀音樂勝於藍調(來源:Spotify)

我們現在有個使用者1號,根據歷史,可以知道他喜歡聽靈魂樂(Soul)。我們想知道,他以後會不會喜歡新世紀音樂(New Age)和布魯斯(Blues)。

轉換矩陣A是PTM的核心,將上述的資料登錄A,就會得到一個預測的結果。可以看到,新世紀音樂的數值(0.5)和靈魂樂(0.4)非常接近,那用戶1將來很有可能會喜歡上新世紀音樂。

當然,這只是一個最簡單的模型演示,實際情況要比這複雜得多。Spotify總共歸納了4千種音樂流派。而在Spotify的資料庫中,還有有3.56億個這樣的「用戶1號」。

除了預測性能,PTM的另一大特點就是可以直觀地解釋從一種音樂是如何轉換到另一種音樂的。假定我們現在有兩個音樂流派a和b,PTM就可以提供用戶在聽完a之後轉換到b的概率。這就解釋了兩個問題:

1、a到b,哪條路徑是最短的?

2、如果用戶聽了a,那麼他接下來最有可能播放哪個流派?

回答這兩個問題,大大提高了PTM的效率和預測準確性。

這是一張偏好轉化的示意圖,顯示從初始流派(綠色)到目標流派(紅色)的最短路徑(來源:Spotify)

如何「馴服」演算法

看起來,Spotify已經做得很好了。但再聰明的演算法,都可能時不時失常。畢竟,人確實很複雜,沒有人可以像你自己一樣瞭解自己。

Spotify官方也給出了一些建議,希望幫助你更好地「馴服」他們的演算法。

  • 給你喜歡的歌曲點個❤️。
  • 如果你不喜歡一首歌,在30秒之前跳過它。30秒是個關鍵節點,如果在這之前跳過一首歌,相當於演算法在內部給它點了。
  • 聽聽新的歌手和他們的音樂。這樣演算法就可以更好地學習你的行為模式。
  • 提供你的年齡和位置資訊——要是你不介意的話。Spotify 會根據使用者的年齡和地理位置推薦不同的音樂類型。
  • 如果你不想 Spotify 注意到你的行為,可以使用「私密模式」
  • 最後,保持耐心。演算法在設計中會忽略新的收聽行為中一些迅速的、突然出現的峰值,因為許多人會分享他們的 Spotify 登錄資訊。因此新的收聽活動可能不會立刻導致你的播放清單變化。

*本文經授權轉載自極客公園(GeekPark),作者湯一濤,轉載請聯繫極客君微信geekparker或zhuanzai@geekpark.net。原文:年輕人都在「反算法」,沒想到它先站出來了

責任編輯:易佳蓉