Quantcast
Channel: 電腦王
Viewing all articles
Browse latest Browse all 6062

演算法真的了解你嗎?Spotify告訴你如何如何「馴服」演算法

$
0
0
你的音樂品味變了,Spotify 的演算法也是。

人們對於音樂的喜好各有不同,好友熱情分享過來的音樂,通常會被你歸為「垃圾」。隨著卡帶、CD、MP3 逐漸被移動網路取代,音樂應用最終承載起滿足人們音樂品味的重任。

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

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

揭開Spotify「演算法黑箱」

抖音、臉書、淘寶、YouTube、Spotify,這些平台的演算法想盡辦法猜測我們喜好,然後把它們覺得我們會喜歡的內容推給我們。

有些時候,這些演算法確實猜得很準,我們看到的都是喜歡的內容。但從另一方面來說,我們也看了自己喜歡的內容。

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

在處理過濾氣泡的問題上,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 聽過的歌曲。

「同喜QRS,則嘗試一下P 和T」。圖片來源:Erik Bernhardsson,前Spotify 員工 

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

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

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

Spotify的第三種方式是卷積神經網。

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

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

Daft Punk 的歌曲「環遊世界」的資料分析圖。圖片來源:The Echo Nest

正是透過這三種演算法,Spotify 像魔法一般猜準了使用者的喜好,打造出了千人千面的Discover Weekly。

但即使Spotify 已經成為了世界上最流行的流媒體播放軟體,即使世界上最聰明的人在這裡構建出了無比精巧的演算法,過濾氣泡的「詛咒」依舊存在。

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

但是,人是會變的呀!

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

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

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

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

那麼該如何知道,一個人未來的音樂口味呢?

Spotify給出了一個新的演算法——偏好轉化模型(Prefenrence Transition Model,PTM)。

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

圖片來源:Spotify我們現在有個使用者1 號,根據歷史,可以知道他喜歡聽靈魂樂(Soul)。我們想知道,他以後會不會喜歡新紀元音樂(New Age)和藍調(Blues)。

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

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

PTM 的核心演算法:指數加權移動平均分佈和泊鬆多項式兩級分佈。圖片來源:Spotify ▲ 與之前的演算法相比,PTM 在各項測試中都得到了最好成績。圖片來源:Spotify 年輕人都在「反算法」,沒想到它先站出來了

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

  1. a 到b,哪條路徑是最短的?
  2. 如果使用者聽了a,那麼他接下來最有可能播放哪個流派?

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

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

如何「馴服」演算法

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

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

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

Viewing all articles
Browse latest Browse all 6062

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>