用技術豢養尊貴的耳朵:對話QQ音樂智能推薦系統
《北方人的巴赫》里有一個愛樂者的故事。羅伯特,一個常居阿拉斯加的男人。為了巴赫,不做白領而去做了管道工。就為了冬天來臨的時候,開著裝了防滑鏈的車,翻山越嶺到處看看,車上的音響正驚天動地地響著巴赫。
音樂是非常特殊的藝術形式,仿佛是描述多變的心緒,比文學更抽象,比繪畫更多變。
請大家稍作回憶——你第一次認真地喜歡一曲音樂是什么時候?可曾有那么一個瞬間,你無比渴望耳畔涌來一個,讓你寒毛倒立,讓你心頭一緊的旋律?
我們熱忱地期待技術真的可以像音樂世界里的“上帝之手”那樣,潤物細無聲得就把你需要的清風送達耳畔。那么“上帝之手”是如何實現的呢?揭秘QQ音樂推薦系統如何讀懂你的心。
1. 從0認識你
1969年,阿拉斯加大雪,積雪成冰,山丘野地人家,全都沉寂在剔透的冰封世界里。
羅伯特不得不放棄了外出計劃,圍爐在家。寒冷的冬夜沒有樂曲,耳邊卻回響聲著火車上聽到的巴赫片段。樂曲似乎比爐火更能取暖,無奈想得越用力,印象卻越不清晰。
搖頭作罷,羅伯特縮成一團迷蒙睡去。
他做了個夢,夢中一切都太不真實,唯一觸手可及的一臺發熒光的小型機器,和上面赫然顯示的2016。
手剛觸及一個黃綠圖標,機器卻響了。是樂曲!但卻不是他心念的《哥德堡變奏曲》。
歡迎來到QQ音樂推薦系統的世界。我們更常稱其為RS(QQ Music Recommendation System)。
對于每一個初入音樂軟件的“羅伯特”,RS對你都是一無所知的(特別是,如果你既沒有主動搜索歌曲,也沒有主動選擇喜歡的風格)。
如何從一無所知,到準確推薦?這在RS里,被稱為“冷啟動”。
最快的方法大概是:先扔給你一首歌,看看你的反應(是興奮得點紅心,還是怒切歌?)。但是“扔”的動作也很講求技巧——怎么個“扔”法才能命中率最高?
每首歌都有流派、語言、歌手等不同屬性。RS有數據顯示,聽者對各個屬性的敏感程度是不同的,敏感度排序是語言>歌手>流派。簡而言之,我們最不能忍的是聽到不喜歡的語言(比如外文歌),其次是歌手,再次才是風格流派等。
- 語言是第一推薦要素。QQ音樂用戶中90%都以聽中英文歌為主,所以最初,RS會以中英文混合推薦;聽者對不同語言會有不同偏好,產生“收藏”、“切歌”等行為,這就是RS學習的第一步;
- 歌手是第二推薦要素。鎖定了語言偏好后,RS開始試探性地推薦歌手;同樣根據聽者的反饋,快速鎖定一個小范圍的歌手候選區間;
- 經過前兩步,推薦范圍已經較為聚焦;聽者也累積了相當的個性化數據,破冰完成,“冷啟動”進而順利轉向常規的推薦方法。
2. 小動作,大解讀
羅伯特皺了皺眉,機器里發出的靡靡之音讓他有點煩躁。他嘗試觸碰那些圖標,音樂戛然而止。一陣手忙腳亂,又點按了好多其他圖標。
直到他意識到,音樂可以受他的控制停下又繼續,或因他的不滿意而換一曲。
起初的音樂總是不盡人意,后來惱人的曲好像越來越少了?這是為什么?
羅伯特的每次觸碰都被RS小心地記下了。RS可以從“切歌”、“收藏”等行為中迅速讀懂聽者的偏好,從而“投其所好”,這一點在收聽“個性電臺”時體現得最為明顯。
這并不難理解:當你收藏《晴天》時,很可能說明你喜歡周杰倫,對此,RS后續推薦曲中出現周杰倫的幾率就會增高;當你點刪除(不再播放),會導致類似歌曲的出現幾率降低。
“收藏”、“刪除”、“下載”行為反應的好惡都很鮮明(在RS中,稱為重度實時行為),對于此,“簡單粗暴”的推薦規則往往就很有效。
相比之下,另一類操作包含的態度就很“曖昧”——切歌。切歌行為受到環境、心情等諸多額外因素的影響;而且切歌時機也很有深意(默默腦補3秒切和3分切)。
比如,在過往收聽中,你被RS打上了喜歡周杰倫的標簽,但今天你卻切掉了《晴天》,原因可能是多樣的(比如…今天是陰天?);僅憑這次切歌而放棄向你推薦周杰倫,效果可能南轅北轍。
這時就需要RS中一套更加智能的預測機制(原理類似統計中的判別分析, Logistic回歸),將歌手、流派、切歌時機等多種影響因素綜合,去評估聽者對這首歌的真正態度。評估結果表示為一個介于0到1之間的數(1代表喜歡,0代表不喜歡),越接近1則喜歡的概率越大。
3. 勾勒你的模樣
越發熟練地點擊。羅伯特循著圖標,翻閱到軟件中的音樂分類:Pop, Light, Folk…Sad, Silent, Sweet…他發現,在這個不知藏了多少樂曲的機器中,每一首歌都被打上了坐標。
這時他也恍然意識到,為什么聽到的曲越來越讓自己滿意:似乎在機器眼中,他也成了一個需要定位的坐標。
一雙挑剔的耳、一次次點擊,代表著一種獨立、行走的音樂形態。在音樂王國里,輪廓清晰。
描繪出你的聽歌偏好,為你推薦對應的歌,是RS最基本的推薦方法(被稱為“基于內容推薦”)。思路大致是:1.你喜歡鄉村音樂——2.《Country Road》是鄉村樂——3.向你推薦《Country Road》。
但是等等,真實的世界往往是這樣的:你除了喜歡古典樂,還喜歡英文歌,還喜歡陳奕迅;《Country Road》除了是一首鄉村樂,還是英文歌;還是一首抒情歌……這樣下來,簡單的邏輯也承載著復雜龐大的信息。
這時就有賴于RS中兩張設計精細的信息表——用戶畫像和音樂畫像。
用戶畫像是將聽者的聽歌行為數據抽象出來,轉化為簡潔形象的標簽。隨著你軟件使用的深入,RS會在各個標簽下不斷更新你的信息。目前QQ音樂的用戶標簽分為6維:
1.內容偏好:包括歌手、語言、年代、流派偏好等;
2.社交屬性:依托于騰訊成熟的社交生態鏈,可以挖掘出年齡,性別,職業,地區等數據;
3.場景偏好:在QQ音樂不同場景下的聽歌分析,如排行榜,歌單,本地歌曲等;
4.人群屬性:有多種群體劃分方式,比如按活躍度劃分,按流派偏好劃分等;
5.聽歌時間段:在一天中的聽歌時間分配;
6.黑名單:描述對某類歌手或歌曲的反感。
相應地,音樂畫像是在為歌曲打上各式各樣的標簽。分為六類:
1.歌手緯度:歌曲主要歌手的相關數據;
2.音頻特征:如mfcc,pitch等音頻信號的特征數據;
3.熱度統計:歌曲被聽,下載、收藏、分享等次數;
4.流派:如輕音樂、民謠、搖滾等;
5.情感標簽:如傷感、心痛、安靜、思念等;
6.樂器:鋼琴曲、古箏、吉他、小提琴等。
畫像如同定位了聽者和歌曲在音樂國度的“坐標”。接下來就是依照歌曲和聽者間相似的標簽,繪制出一首歌到一個聽者的“地圖”(即在用戶和歌曲間建立標簽向量)。循著地圖,讓好歌曲主動到達你“尊貴的耳朵”。
4. 同好之耳,為你尋歌
似乎應該感嘆這機器的驚人曲數和精密劃分,羅伯特想。心中卻浮起一絲懷疑。
他回想起某年在廣場上經歷的感動。
大雨如注,露天音樂會就要開場了。廣場上是意外的人頭濟濟。為了巴赫?真的是為了巴赫,當《圣母頌》響起,男女老少、胖瘦高矮,異口同聲唱和起來。那一瞬間,熱淚從羅伯特臉上滑落。
音樂是靈動的,它的深刻只能由同類人所共知。而眼前的機器分類如此蒼白,卻妄圖解讀其中深意?想到這里,羅伯特不禁要嗤之以鼻。
作為機器,RS知道自己的界限在哪里。也因此更加明白,服務人的智慧還是來源于人。
“鄰域推薦”就深深地遵循了這一理念。它在音樂推薦中應用廣泛,以至于很多人將之與音樂推薦劃等號。這種方法的思路如下:1.小Q喜歡《Country Road》——2.你和小Q是相似用戶——3.向你推薦《Country Road》。
物以類聚,人以群分。鄰域方法的精妙在于,借用了與你品味相似的聽者之耳為你挑歌。既偷偷借力了“群智”;又能彌補直接打標簽造成的簡單化處理。音樂的精妙遠不止標簽提示的那樣非黑即白,對于此,人類的感官要比機器聰明許多。
那么,如何找到與你聽歌品味相似的用戶呢?簡而言之,取決于你們喜歡的歌曲中重疊的數量。如果重合的歌曲達到一定比例,就會被認為你們是相似的,那些他所喜歡、而你又沒聽過的歌曲,會進入你的推薦歌單。
上圖是一個極端的例子。列為聽者的姓名(A-E),行為歌曲編號(1-21)。表格中的數字代表的是“是否喜歡這首歌曲”——1代表喜歡,0代表不喜歡。
那么上面這張矩陣圖中,小A與小B就是非常極端的兩個聽者,在21首歌中,他們的偏好完全一致,我們有理由相信小A與小B品味接近,RS會向他們推薦彼此喜愛的其他歌曲,貼合心意的可能性也更高。(實際生活中的相似度很少如此理想,相似度會通過一個百分比反應)
5. 隱秘的紐帶
沉思被一首新曲打斷。美妙得如此熟悉,羅伯特卻清楚知道自己并未聽過。
從開始到現在,他聽到了一些難忘的歌。在他原本的生活里從未觸及,甚至因為語言不通,對歌詞毫無頭緒。但感受卻是相連的。
個人的領地如此有限,但技術卻讓人乘著翅膀,在音樂的浩瀚國度里自由穿行。
他呼出一口氣,選擇不再驚奇或質疑。閉上眼,享用這一刻的美好時光。
RS搭建了音樂同好的聯系,也串起了相似歌曲間的聯系(原理很簡單,只要在鄰域方法的矩陣中,比較縱向的兩列數據——即兩首歌——相似度即可)。不過,這種歌曲聯系的建立,依賴于有足夠多的聽者同時聽過這兩首歌。
還有一些聯系更為隱秘。它們并未在聽者的使用數據中產生直接關聯,但卻有著內在相似性——假設從現有聽者的喜好中,發現中文R&B和英文R&B有直接相似性(RS稱為一階聯系),英文和法文R&B也有直接相似性,但中文和法文R&B卻沒有(原因可能是…中國人都不懂法文?)
這時,通過英文R&B作為中間橋梁,可以發現,中文和法文R&B是有間接相似性的(稱為二階聯系),這就是隱因子特征挖掘方法(工程中常使用的兩種挖掘模型為:基于矩陣分解的隱因子模型(LFM)和基于能量函數的神經網絡模型(RBM))。
RS會通過挖掘這些中間紐帶,為聽者盡可能拓展推薦領域的疆土。
初入音樂之“坑”的人或許都有那么一段獨自狂歡的時光,守著心頭之好,感嘆地球上有那么一種聲音,與自己如此合拍。
隨著互聯網帶來的音樂資源肆溢,網絡聽者的心中也泛起了迷茫——就好像在臺風將至的海邊,海岸上空無一人,看到海浪接連不斷地涌來,就像奔騰的馬群,騎在馬背上,卻永遠看不到大海的全貌。
熱愛音樂的人,無論何時何地,都無比珍惜自己的耳朵。當技術發展到今天,他們熱忱地企盼,茫茫大海中能迎來自己的Music. Right。
好在,“智能推薦”已經到來,并在不斷成長。
音樂之洋,你可以縱身一躍,如你所愿。
(文內羅伯特的故事純屬虛構,與原著無關,感謝帶給我們靈感的《北方人的巴赫》一書)
原文 | 李深遠(QQ音樂個性化團隊負責人)、黃安埠 (QQ音樂個性化推薦系統算法負責人)
改寫?| 陸詩雨、余潔(騰訊研究院研究員)
本文由 @Anny 發布于人人都是產品經理。未經許可,禁止轉載。
懂你,適合你,開拓你
用戶自身迭代
音樂推薦迭代??
QQ音樂推薦的RS智能系統真的很智能化,絕逼好用~能夠根據用戶的心理,推薦的歌曲都是我喜歡的~~點贊點贊~
用QQ音樂很多年了,你說的這個智能推薦還真的很少用,也覺得不好用。本地的音樂之前是加載進來的,那么推薦的時候不會出現本地的音樂,現在不知道什么原因,本地音樂不出現在QQ音樂里面,這個智能推薦的歌大多數我本地音樂都有,我在用智能推薦挺歌的時候,就是想聽我沒聽過的歌曲,或者像換一換風格,或者心情突然變化很大,來點不一樣的歌曲。根據聽歌習慣來做推薦,這類算法MTK時代很多小公司已經做的很成熟了。