作為煎餅果子圣地,天津人評(píng)價(jià)最高的煎餅店,一定不是人們趨之若鶩的網(wǎng)紅店,而是「我家樓下那家」。
人們對(duì)于音樂(lè)的喜好,和天津人對(duì)煎餅果子的愛(ài)有異曲同工之處,好友熱情分享過(guò)來(lái)的音樂(lè),通常會(huì)被你歸為「垃圾」。隨著卡帶、CD、MP3 逐漸被移動(dòng)互聯(lián)網(wǎng)取代,音樂(lè)應(yīng)用最終承載起滿足人們音樂(lè)品味的重任。
社交媒體上經(jīng)久不衰的唯二的兩個(gè)問(wèn)題,一個(gè)是為什么「隨機(jī)」推薦并不真的「隨機(jī)」,另一個(gè)就是為什么音樂(lè)平臺(tái)推薦的音樂(lè)都這么「垃圾」。如果有機(jī)會(huì),估計(jì)所有人最想做的事情就是去面對(duì)面問(wèn)一下音樂(lè)應(yīng)用的程序員,自己到底怎么才能「調(diào)教」好這個(gè) App,讓它推薦更多自己喜歡的音樂(lè)。
以用戶數(shù)最多的音樂(lè)平臺(tái) Spotify 為例,他們最近開(kāi)發(fā)出了一種新的算法 —— 偏好轉(zhuǎn)化模型(Prefenrence Transition Model,PTM),想要預(yù)測(cè),一年后的你會(huì)聽(tīng)什么音樂(lè)。
揭開(kāi) Spotify「算法黑箱」
抖音、微博、淘寶、YouTube、Spotify,這些平臺(tái)的算法想盡辦法猜測(cè)我們喜好,然后把它們覺(jué)得我們會(huì)喜歡的內(nèi)容推給我們。
有些時(shí)候,這些算法確實(shí)猜得很準(zhǔn),我們看到的都是喜歡的內(nèi)容。但從另一方面來(lái)說(shuō),我們只看了自己喜歡的內(nèi)容。
互聯(lián)網(wǎng)活動(dòng)家伊萊?帕里瑟(Eli Pariser)在 2011 年的時(shí)候提出了他著名的「過(guò)濾氣泡」(Filter Bubble)理論:算法會(huì)根據(jù)用戶的地址、歷史點(diǎn)擊、過(guò)往搜索等用戶相關(guān)信息猜測(cè)用戶喜好。這個(gè)過(guò)程中,那些與用戶意見(jiàn)相悖的信息就被過(guò)濾了。長(zhǎng)期下來(lái),用戶就會(huì)無(wú)法接觸新的想法和信息,逐漸隔絕在自己的意識(shí)形態(tài)泡沫中。
在處理過(guò)濾氣泡的問(wèn)題上,Spotify 一直因?yàn)榫珳?zhǔn)的算法而為人稱道。不只是讓用戶在自己熟悉的內(nèi)容中打轉(zhuǎn),它總能幫用戶發(fā)現(xiàn)那些新鮮的歌曲。而恰好,這些歌曲還很討人喜歡。
「每周發(fā)現(xiàn)」(Discovery Weekly)是 Spotify 在 2015 年 7 月的王牌欄目。每周一,Spotiy 就會(huì)向用戶推送 30 首完全沒(méi)聽(tīng)過(guò)的歌曲。同時(shí),它又總能帶來(lái)非常好的用戶體驗(yàn)。截至 2020 年 6 月 25 日,每周發(fā)現(xiàn)總共被播放了 23 億小時(shí),約合 26.65 萬(wàn)年,比人類文明存在的時(shí)間還長(zhǎng)。
Spotify 是怎么做到這一切的?當(dāng)然還是算法。
Spotify 主要使用了三種推薦機(jī)制 —— 協(xié)同過(guò)濾算法(Collaborative Filtering Model)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)和自然語(yǔ)言分析(Natural Language Processing)。
Netflix 是最早使用協(xié)同過(guò)濾算法來(lái)推薦內(nèi)容的平臺(tái)。在 Netflix 大獲成功之后,這種算法就變得越來(lái)越流行。簡(jiǎn)單來(lái)說(shuō),它會(huì)根據(jù)用戶之間的相似性而不是內(nèi)容的相似性來(lái)推薦新事物。
對(duì) Spotify 來(lái)說(shuō),擺在它面前的是一個(gè)巨大的數(shù)據(jù)庫(kù),里面裝滿了用戶聽(tīng)過(guò)內(nèi)容的歷史。協(xié)同過(guò)濾算法會(huì)根據(jù)用戶 A 聽(tīng)過(guò)的歌曲,找到也喜歡這些歌的另一個(gè)用戶 B,然后向 A 推送只有 B 聽(tīng)過(guò)的歌曲。
但協(xié)同過(guò)濾算法的一大缺點(diǎn)是所謂的「冷啟動(dòng)」問(wèn)題,只有掌握足夠多的數(shù)據(jù),協(xié)同過(guò)濾算法才能起作用。如果用戶是一個(gè)還沒(méi)有聽(tīng)過(guò)多少歌的新用戶,或者內(nèi)容庫(kù)里有一首非常冷門歌曲,協(xié)同過(guò)濾算法就無(wú)法精準(zhǔn)匹配。
這就引入了另一種算法 —— 自然語(yǔ)言處理。Word2Vec 常被用在自然語(yǔ)言處理中,它可以將我們?nèi)粘5膶?duì)話編碼成數(shù)學(xué)關(guān)系 —— 向量。
Spotify 做了和 Word2Vec 相似的工作。它會(huì)抓取網(wǎng)絡(luò)上描述音樂(lè)、歌曲或者歌手的詞語(yǔ),通過(guò)算法分配給它們不同的權(quán)重。這個(gè)權(quán)重,很大程度上代表了人們用這個(gè)詞來(lái)描述音樂(lè)的概率。通過(guò)自然語(yǔ)言處理,Spotify 就能確定哪兩首歌彼此是相似的,從而解決冷啟動(dòng)問(wèn)題。即使是冷門的歌曲或歌手,也能得到推薦。
Spotify 的第三種方式是卷積神經(jīng)網(wǎng)。
在前兩種算法的幫助下,Spotify 已經(jīng)獲得了足夠多的數(shù)據(jù),但卷積神經(jīng)網(wǎng)絡(luò)可以進(jìn)一步提高了音樂(lè)推薦的準(zhǔn)確性。
卷積神經(jīng)網(wǎng)絡(luò)會(huì)分析歌曲的特征,包括拍子、音調(diào)、模式、節(jié)奏、響度等。通過(guò)閱讀這些歌曲的特征,Spotify 就可以根據(jù)用戶的收聽(tīng)歷史了解它們之間的相似性,匹配用戶的喜好。
年輕人多在「反算法」,沒(méi)想到 Spotify 先站出來(lái)了
Daft Punk 的歌曲「環(huán)游世界」的數(shù)據(jù)分析圖|The Echo Nest
正是通過(guò)這三種算法,Spotify 像魔法一般猜準(zhǔn)了用戶的喜好,打造出了千人千面的 Discover Weekly。
但即使 Spotify 已經(jīng)成為了世界上最流行的流媒體播放軟件,即使世界上最聰明的人在這里構(gòu)建出了無(wú)比精巧的算法,過(guò)濾氣泡的「詛咒」依舊存在。
于是,Spotify,又多做了一步。
但是,人是會(huì)變的呀!
2021 年 4 月,Spotify 聯(lián)合多倫多大學(xué)發(fā)布了一篇論文《下一步去哪兒?一種用戶偏好的動(dòng)態(tài)模型》(Where To Next?A Dynamic Model of User Preferences)。
他們?cè)?4 年間(2016 年至 2020 年)分析了 10 萬(wàn)名用戶的收聽(tīng)數(shù)據(jù),來(lái)觀察用戶的消費(fèi)分布變化。他們發(fā)現(xiàn),隨著時(shí)間的變化,用戶的消費(fèi)習(xí)慣也在發(fā)生變化。先前的算法擅長(zhǎng)捕捉用戶的靜態(tài)喜好,但當(dāng)面對(duì)長(zhǎng)時(shí)間的跨度時(shí),卻無(wú)法捕捉用戶動(dòng)態(tài)的喜好變化。對(duì)于 Spotify 的長(zhǎng)期用戶來(lái)說(shuō),他們依舊可能困在過(guò)濾氣泡中。
年輕人多在「反算法」,沒(méi)想到 Spotify 先站出來(lái)了
這是 2016 年第一季度對(duì)比隨后每個(gè)季度的總消費(fèi)變化直方圖。顏色越深,對(duì)比的時(shí)間跨度就越長(zhǎng)。比如,最左邊的淺色曲線是 2016 年第一季度和 2016 年第二季度的對(duì)比;最右邊的深色曲線是 2016 年第一季度和 2020 年第二季度的對(duì)比。隨著時(shí)間的增加,變化也越來(lái)越明顯|圖片來(lái)源:Spotify
Spotify 同時(shí)發(fā)現(xiàn),當(dāng)免費(fèi)用戶消費(fèi)的音樂(lè)種類越多時(shí),他們?cè)接锌赡苻D(zhuǎn)化為付費(fèi)用戶。也就是說(shuō),用戶聽(tīng)到的音樂(lè)類型越多,他們?cè)较矚g Spotify。
那么該如何知道,一個(gè)人未來(lái)的音樂(lè)口味呢?
Spotify 給出了一個(gè)新的算法 —— 偏好轉(zhuǎn)化模型(Prefenrence Transition Model,PTM)。
在這張偏好轉(zhuǎn)化模型的草圖中,我們可以大致窺見(jiàn) PTM 的工作原理。
我們現(xiàn)在有個(gè)用戶 1 號(hào),根據(jù)歷史,可以知道他喜歡聽(tīng)靈魂樂(lè)(Soul)。我們想知道,他以后會(huì)不會(huì)喜歡新世紀(jì)音樂(lè)(New Age)和布魯斯(Blues)。
轉(zhuǎn)換矩陣 A 是 PTM 的核心,將上述的數(shù)據(jù)輸入 A,就會(huì)得到一個(gè)預(yù)測(cè)的結(jié)果。可以看到,新世紀(jì)音樂(lè)的數(shù)值(0.4)和靈魂樂(lè)(0.4)非常接近,那用戶 1 將來(lái)很有可能會(huì)喜歡上新世紀(jì)音樂(lè)。
當(dāng)然,這只是一個(gè)最簡(jiǎn)單的模型演示,實(shí)際情況要比這復(fù)雜得多。Spotify 總共歸納了 4000 種音樂(lè)流派。而在 Spotify 的數(shù)據(jù)庫(kù)中,還有有 3.56 億個(gè)這樣的「用戶 1 號(hào)」。
除了預(yù)測(cè)性能,PTM 的另一大特點(diǎn)就是可以直觀地解釋從一種音樂(lè)是如何轉(zhuǎn)換到另一種音樂(lè)的。假定我們現(xiàn)在有兩個(gè)音樂(lè)流派 a 和 b,PTM 就可以提供用戶在聽(tīng)完 a 之后轉(zhuǎn)換到 b 的概率。這就解釋了兩個(gè)問(wèn)題:
1、a 到 b,哪條路徑是最短的?
2、如果用戶聽(tīng)了 a,那么他接下來(lái)最有可能播放哪個(gè)流派?
回答這兩個(gè)問(wèn)題,大大提高了 PTM 的效率和預(yù)測(cè)準(zhǔn)確性。
年輕人多在「反算法」,沒(méi)想到 Spotify 先站出來(lái)了
這是一張偏好轉(zhuǎn)化的示意圖,顯示了初始流派(綠色)到目標(biāo)流派(紅色)的最短路徑|Spotify
如何「馴服」算法
看起來(lái),Spotify 已經(jīng)做得很好了。但再聰明的算法,都可能時(shí)不時(shí)抽一下風(fēng)。畢竟,人確實(shí)很復(fù)雜,沒(méi)有人可以像你自己一樣了解自己。
Spotify 官方也給出了一些建議,希望幫助你更好地「馴服」他們的算法。
給你喜歡的歌曲點(diǎn)個(gè)??。
如果你不喜歡一首歌,在 30 秒之前跳過(guò)它。30s 是個(gè)關(guān)鍵節(jié)點(diǎn),如果在這之前跳過(guò)一首歌,相當(dāng)于算法在內(nèi)部給它點(diǎn)了
關(guān)鍵詞: Spotify