網(wǎng)易云音樂有個核心功能是個性推薦,但這個功能有人愛有人恨,比如聽歌看到評論說,用了網(wǎng)易云音樂后精通八國語言,聽一次純音樂連著幾天都推送純音樂。歌曲個性推薦這件事本質(zhì)上是幫用戶找到自己想要的歌,創(chuàng)造驚喜感。所謂驚喜感就是當(dāng)人們碰到一些讓自己感覺舒服、和諧、喜愛的不確定性或未知的事件時(shí),自己內(nèi)心所產(chǎn)生的一種感覺。(被動狀態(tài))
歌曲個性推薦驚喜感來自于兩個方面:1.模糊未知 ?2.完全未知
模糊未知
(1)自己喜歡的風(fēng)格跟過往聽過的歌有很大的相似度,會感覺很舒服親切
(2)曾在腦海里飄過,但無法通過回憶提供的線索尋找得到
完全未知
(1)同種風(fēng)格聽膩了,想換換其他的。
(2)從來沒聽過的風(fēng)格但聽了感嘆世上居然還有這種音樂存在,然后從完全未知過渡到模糊未知。
音樂個性推薦主要在解決模糊未知需求,主要通過兩種算法(參考知乎的回答):
一.協(xié)同過濾算法
基于用戶的協(xié)同過濾算法:
這種算法最大的問題如何判斷并量化兩人的相似性,思路是這樣
例子:有3首歌放在那里,《最炫民族風(fēng)》,《晴天》,《Hero》。
A君,收藏了《最炫民族風(fēng)》,而遇到《晴天》,《Hero》則總是跳過;
B君,經(jīng)常單曲循環(huán)《最炫民族風(fēng)》,《晴天》會播放完,《Hero》則拉黑了
C君,拉黑了《最炫民族風(fēng)》,而《晴天》《Hero》都收藏了。
我們都看出來了,A,B二位品味接近,C和他們很不一樣。
那么問題來了,說A,B相似,到底有多相似,如何量化?
我們把三首歌想象成三維空間的三個維度,《最炫民族風(fēng)》是x軸,《晴天》是y軸,《Hero》是z軸,對每首歌的喜歡程度即該維度上的坐標(biāo),并且對喜歡程度做量化(比如: 單曲循環(huán)=5,下載=4,收藏=3,主動播放=2 ,聽完=1,跳過=-1 ,拉黑=-5 )。那么每個人的總體口味就是一個向量,A君是(3,-1,-1),B君是(5,1,-5),C君是(-5,3,3)。
我們可以用向量夾角的余弦值來表示兩個向量的相似程度,0度角(表示兩人完全一致)的余弦是1,180%角(表示兩人截然相反)的余弦是-1。
根據(jù)余弦公式,夾角余弦=向量點(diǎn)積/ (向量長度的叉積)= ( x1x2 + y1y2 + z1z2) / (跟號(x1平方+y1平方+z1平方) x跟號(x2平方+y2平方+z2平方) )
可見A君B君夾角的余弦是0.81,A君C君夾角的余弦是-0.97,公式誠不欺我也。以上是三維(三首歌)的情況,如法炮制N維N首歌的情況都是一樣的。
這種算法,最核心的關(guān)鍵是要如何找到和我愛好相似的人。在實(shí)際操作中,如果全部計(jì)算N個人對N首歌的喜好程度,計(jì)算量太大。前面的過程中我們計(jì)算出了相似度,我們可以只取相似度大于0.9的K個人,然后用相似度X喜歡程度求和,這樣我們就可以得到每首歌對于你來說的推薦度了,這大致上就是協(xié)同過濾算法的基礎(chǔ)。
二.潛在因子算法
這種算法的思想是這樣:每個用戶(user)都有自己的偏好,比如A喜歡帶有小清新的、吉他伴奏的、王菲等元素(latent factor),如果一首歌(item)帶有這些元素,那么就將這首歌推薦給該用戶,也就是用元素去連接用戶和音樂。每個人對不同的元素偏好不同,而每首歌包含的元素也不一樣。我們希望能找到這樣兩個矩陣:
一,用戶-潛在因子矩陣Q,表示不同的用戶對于不用元素的偏好程度,1代表很喜歡,0代表不喜歡。比如下面這樣:
二,音樂-潛在因子矩陣P,表示每種音樂含有各種元素的成分,比如下表中,音樂A是一個偏小清新的音樂,含有小清新這個Latent Factor的成分是0.9,重口味的成分是0.1,優(yōu)雅的成分是0.2……
利用這兩個矩陣,我們能得出張三對音樂A的喜歡程度是:張三對小清新的偏好*音樂A含有小清新的成分+對重口味的偏好*音樂A含有重口味的成分+對優(yōu)雅的偏好*音樂A含有優(yōu)雅的成分+……
即:0.6*0.9+0.8*0.1+0.1*0.2+0.1*0.4+0.7*0=0.69
每個用戶對每首歌都這樣計(jì)算可以得到不同用戶對不同歌曲的評分矩陣。
因此我們對張三推薦四首歌中得分最高的B,對李四推薦得分最高的C,王五推薦B。
完全未知
先看兩張圖
圖片主要意思表達(dá)不管人還是動物總是對新鮮的事物報(bào)有激情,人性本來就是喜新厭舊。可以說人性是一個不斷探索的過程,我們終此一生就是為了找到真正的自己,我們應(yīng)該花大量的時(shí)間在探索未知上。因此,對于完全未知的驚喜目前來說最好的辦法就是探索。
怎么探索?試錯,可以放在私人電臺也可以放在每日推薦里面混合來,再根據(jù)播放時(shí)長、喜歡、收藏、下載等用戶行為循環(huán)到模糊未知里。這里面主要兩個地方,模糊未知推薦和完全未知推薦的比例如何分配?如何全面探索完全未知?
總結(jié):模糊未知是提高效率,完全未知才是探索本性。推薦之所以不準(zhǔn)要么是少了未知的探索,要么是在探索的過程中你給予了否決。但總歸越用越爽嘛!
私人契約
* ?我將每日為你寫一篇文章,內(nèi)容我定
* 分享一切我覺得有價(jià)值的東西
* 有意義可解決的問題定竭力幫你
* 覺得有用就點(diǎn)個「喜歡」,下次我才 ? ?知道該怎么寫
* 可以贊賞,但不允許超過2元
* 想轉(zhuǎn)載引用的隨意,打個招呼更好
* 關(guān)注后契約生效