首頁>Club>
6
回覆列表
  • 1 # 阿凡齊

    每日推薦是瞬間完成的,它背後肯定有一個演算法作支撐,一般就是商品推薦演算法

    “商品推薦”系統的演算法( Collaborative filtering )分兩大類,

    第一類,以人為本,先找到與你相似的人,然後看看他們買了什麼你沒有買的東西。這類演算法最經典的實現就是“多維空間中兩個向量夾角的餘弦公式”;

    第二類, 以物為本直接建立各商品之間的相似度關係矩陣。這類演算法中最經典是"斜率=1" (Slope One)。amazon發明了暴力簡化的第二類演算法,‘買了這個商品的人,也買了xxx’。

    我們先來看看第一類,最大的問題如何判斷並量化兩人的相似性,思路是這樣 --

    例子:

    有3首歌放在那裡,《最炫民族風》,《晴天》,《Hero》。

    A君,收藏了《最炫民族風》,而遇到《晴天》,《Hero》則總是跳過;

    B君,經常單曲迴圈《最炫民族風》,《晴天》會播放完,《Hero》則拉黑了

    C君,拉黑了《最炫民族風》,而《晴天》《Hero》都收藏了。

    我們都看出來了,A,B二位品味接近,C和他們很不一樣。

    那麼問題來了,說A,B相似,到底有多相似,如何量化?

    我們把三首歌想象成三維空間的三個維度,《最炫民族風》是x軸,《晴天》是y軸,《Hero》是z軸,對每首歌的喜歡程度即該維度上的座標,並且對喜歡程度做量化(比如: 單曲迴圈=5, 分享=4, 收藏=3, 主動播放=2 , 聽完=1, 跳過=-1 , 拉黑=-5 )。

    那麼每個人的總體口味就是一個向量,A君是 (3,-1,-1),B君是(5,1,-5),C君是(-5,3,3)。 (抱歉我不會畫立體圖)我們可以用向量夾角的餘弦值來表示兩個向量的相似程度, 0度角(表示兩人完全一致)的餘弦是1, 180%角(表示兩人截然相反)的餘弦是-1。

    根據餘弦公式, 夾角餘弦 = 向量點積/ (向量長度的叉積) = ( x1x2 + y1y2 + z1z2) / ( 跟號(x1平方+y1平方+z1平方 ) x 跟號(x2平方+y2平方+z2平方 ) )

    可見 A君B君夾角的餘弦是0.81 , A君C君夾角的餘弦是 -0.97 ,公式誠不欺我也。

    以上是三維(三首歌)的情況,如法炮製N維N首歌的情況都是一樣的。

    假設我們選取一百首種子歌曲,算出了各君之間的相似值,那麼當我們發現A君還喜歡聽的《小蘋果》B君居然沒聽過,相信大家都知道該怎麼和B君推薦了吧。

    第一類以人為本推薦演算法的好處我想已經很清楚了,那就是精準!

    代價是運算量很大,而且對於新來的人(聽得少,動作少),也不太好使,

    所以人們又發明了第二類演算法。

    假設我們對新來的D君,只知道她喜歡最炫民族風,那麼問題來了,給她推薦啥好咯?

    如圖,推薦《晴天》!

    呵呵,第二類演算法的好處大家也看出來了,簡單粗暴好操作(也適合map-reduce),可精度差了點。

    所以,各家網站真正的推薦演算法,是他們在綜合上述兩類演算法的基礎上,各自研製並且不斷地改進調節的,外人不得而知! ^_^

  • 2 # 萌寵天下

    原理就是在海量的使用者資料(行為記錄等)中對使用者進行劃分,對同一群體的使用者推薦其餘使用者喜歡的音樂。

    1、給音樂進行歸類並建立評分規則

    這是我們前面說到的給內容分類,是每個平臺推薦前要做好的準備。簡單說就是把音樂貼標籤,把相同/相似標籤的音樂歸到一塊,所以一首歌可能會被歸到多個類別裡,比如說同一個歌手的歌、同種曲風或者表達某一個情緒等等。

    2、建立使用者模型

    制定評分規則後,就可以得到每個使用者和該使用者相關的每首歌的一個得分,那麼根據這些資料就可以給使用者建立相應的模型從而為其做精確推薦。

    3、尋找相似的使用者

    是時候介紹一下專業的詞了,常用的計算相似度評價值的體系有兩種:歐幾里得距離和皮爾遜相關度。後者有點複雜,這裡簡單介紹歐幾里得距離。

    歐幾里得距離非常直觀,如下圖,根據上面得出的評分,我們可以製作二維圖,簡單明瞭看出使用者在哪個位置,比如 A 使用者就與 D 使用者距離最近,所以可以給 A 推薦 D 喜歡的歌曲。

    有人說還沒看懂,那我說一個簡化版本的。你經常聽民謠,喜歡的歌曲很大一部分都是民謠,於是網易雲音樂把你歸到了民謠這個群體,民謠這個群體裡面還有一個人叫趙雷,有一天趙雷聽了一首歌叫《成都》並且點了喜歡和收藏。系統發現你並沒有聽過這首歌,於是在後面的某一天,網易雲音樂悄悄的把這首歌放進了你的每日推薦裡面,你一聽,真好聽。這只是最簡單的情況,而網易雲音樂的推薦遠沒有這麼簡單。

  • 3 # MyQueen嘜昆

    網易雲音樂是網易最棒的產品,也是中國最佳音樂類產品。

    推薦原理應該是基於一個模型,模型的引數大概包括:

    你明確標註喜歡的曲目的型別、歌手、所屬專輯等;

    你的經常播放的曲目;

    你對於推薦的認可度。

    等等。

  • 4 # 529tang

    我不是專業人士真不太懂,但從一個局外人來看網易雲音樂身後一定有大資料分析能力,你的歌單裡有哪些歌,最經常播放哪些歌,你平時在網易雲音樂喜歡搜哪類歌,它們應該都能分析出來,然後在進行統一分析處理,最後你每次登入網易雲音樂時它們會根據分析的你的個人愛好進行推薦,應該是這樣,

  • 5 # 曉夢閣

    關於推薦演算法現在討論的也很多,比較基本的兩種是collaborative filtering(CF) 和 content-based (CB)兩種,整個推薦系統的核心我覺得就是找兩個objects(可以是歌曲,可以是使用者)之間的相似度。

    大概意思就是說,CB就是根據使用者自己提供的資訊,比如建立賬號時生日啊歲數啊喜好啊,還有你用了產品之後的一些操作,比如 @路人甲提到的那個表格其實就是一種可能。CF則是基於一個前提,假設甲喜歡產品a, 乙也喜歡產品a,那麼乙如果買了產品b並說好,那麼甲也很有可能會覺得b不錯,所以就推薦給你,當然真實操作肯定不會只用一個產品確定這種聯絡。

    這是簡單的背景,如今很多公司,比如淘寶還是亞馬遜,任何推薦演算法本身都不可能只是單一的一種,一般都是複合型的(hybrid)。其實還有很多其他的推薦演算法不過就不說了。假設你選定了一個演算法,那麼你就得用那個來量化相似度,因為有了量化的相似度,你才能排序,才能按照順序從可能喜歡到最不可能喜歡推薦給使用者。具體量化方法,歐幾里得距離是比較簡單和方便的那種。其實這個就是數學概念的向量,可以有很多個dimensions,然後算數學距離。那麼現在你有了這個排名,你得不斷更新,因為不可能一下子就完全把使用者的喜好口味抓住,你得透過長時間的使用讓屬於你的data更多,這樣出來的結果也會更準確,這也是為啥你新註冊賬號,如果亂選或者喜歡的音樂差異較大,推薦的內容就比較不穩定。

    關於具體的實現,網易的我肯定不知道,不過我想如果你真想自己做一個,寫好這個之後租一個伺服器,定時跑一次就可以了,大部分創業公司都是這樣。

  • 6 # 辣條是隻貓

    大家好,我是網易一位小員工,我每天的工作就是挑音樂放到各位的每日歌曲推薦裡。這份工作看似簡單實則不然,我要在一天內聽完你喜歡的音樂,然後根據你喜歡什麼型別的歌從曲庫中挑歌在早上6點準時放到你的歌曲推薦中,為此我天天熬夜。所以不要驚訝每日歌曲推薦那麼人性化,因為我純粹是在騙你,哈哈哈

  • 7 # 吃瓜熱線

    為了做到千人千面的精準推薦,會挖掘你平時聽歌、點選、收藏、評論等一系列與你有關的行為,分析使用者特徵,包含你的性別、年齡、地域、喜歡的歌手、專輯、歌曲、聽歌頻率、時間、時長、偏好音樂曲風等特徵,結合歌曲的特徵,包含作詞作曲、歌手、發行年代、所屬專輯、熱度、時長、曲風、評論、情感等特徵,現在將使用者點選聽歌的資料拿來,將分析好的特徵代入,簡單地可以透過LR或者SVM這一類分類器訓練預測模型,結合協同過濾、熱門推薦等其他演算法,透過GBDT做好推薦結果排序以及業務規則過濾,得到的就是推薦結果,有時會為了更精準地推薦,還會實時採集你在雲音樂的行為,構建實時預測模型。

  • 中秋節和大豐收的關聯?
  • 感覺“6·18”越來越安靜,年輕人為什麼不再熱衷“剁手”了?