网易云音乐每日歌曲推荐的原理是什么?

每日推荐是瞬间完成的,它背后肯定有一个算法作支撑,一般就是商品推荐算法

“商品推荐”系统的算[文]法( Collaborat[章]ive filtering )分两大类,

第一类,以人为本,先找到与你相似的人,然后看看他们买了什么你没有买的东西网易云关注。这类算法最经典的实现就是“多维空间中两个向量夹角的余弦公式”;

第二类, 以物为本直接建立各商[来]品之间的相似度关系矩[自]阵。这类算法中最经典[Q]是'斜率=1[Q]' (Slope One)。amazo[刷]n发明了暴力简化的第[赞]二类算法,‘买了这个[网]商品的人,也买了xx[站]x’。

我们先来看看第一类,[文]最大的问题如何判断并[章]量化两人的相似性,思[来]路是这样 --

例子:

有3首歌放在那里,《[自]最炫民族风》,《晴天[Q]》,《Hero》。

A君,收藏了《最炫民[Q]族风》,而遇到《晴天[刷]》,《Hero》则总[赞]是跳过;

B君,经常单曲循环《[网]最炫民族风》,《晴天[站]》会播放完,《Her[文]o》则拉黑了

C君,拉黑了《最炫民[章]族风》,而《晴天》《[来]Hero》都收藏了。[自]

我们都看出来了,A,[Q]B二位品味接近,C和[Q]他们很不一样。

那么问题来了,说A,[刷]B相似,到底有多相似[赞],如何量化?

我们把三首歌想象成三[网]维空间的三个维度,《[站]最炫民族风》是x轴,[文]《晴天》是y轴,《H[章]ero》是z轴,对每[来]首歌的喜欢程度即该维[自]度上的坐标,并且对喜[Q]欢程度做量化(比如:[Q] 单曲循环=5, 分享=4, 收藏=3, 主动播放=2 ,  听完=1[刷],  跳过=-[赞]1 , 拉黑=-5 )。

那么每个人的总体口味[网]就是一个向量,A君是[站] (3,-1,-1),[文]B君是(5,1,-5[章]),C君是(-5,3[来],3)。   (抱歉我不会画立体图[自])我们可以用向量夹角[Q]的余弦值来表示两个向[Q]量的相似程度, 0度角(表示两人完全[刷]一致)的余弦是1, 180%角(表示两人[赞]截然相反)的余弦是-[网]1。

根据余弦公式,   夹角余弦 = 向量点积/ (向量长度的叉积) =  ( x1x2 + y1y2 + z1z2) / (  跟号(x[站]1平方+y1平方+z[文]1平方 ) x  跟号(x[章]2平方+y2平方+z[来]2平方 ) )

可见 A君B君夹角的余弦是[自]0.81 , A君C君夹角的余弦是[Q] -0.97 ,公式诚不欺我也。

以上是三维(三首歌)[Q]的情况,如法炮制N维[刷]N首歌的情况都是一样[赞]的。

假设我们选取一百首种[网]子歌曲,算出了各君之[站]间的相似值,那么当我[文]们发现A君还喜欢听的[章]《小苹果》B君居然没[来]听过,相信大家都知道[自]该怎么和B君推荐了吧[Q]

第一类以人为本推荐算[Q]法的好处我想已经很清[刷]楚了,那就是精准!

代价是运算量很大,而[赞]且对于新来的人(听得[网]少,动作少),也不太[站]好使,

所以人们又发明了第二[文]类算法。

假设我们对新来的D君[章],只知道她喜欢最炫民[来]族风,那么问题来了,[自]给她推荐啥好咯?

如图,推荐《晴天》![Q]

呵呵,第二类算法的好处大家也看出来了,简单粗暴好操作(也适合map-reduce),可精度差了点网易云关注

所以,各家网站真正的推荐算法,是他们在综合上述两类算法的基础上,各自研制并且不断地改进调节的,外人不得而知! ^_^

订单商品咨询,下单网址获取,售后服务,请猛戳这里→点击入群

评论