“協同過濾”系統的算法分為兩類。第壹類是以人為本。先找和妳相似的人,再看他們買了妳沒有的東西。這類算法最經典的實現是“多維空間中兩向量夾角的余弦公式”;在第二類中,商品之間的相似關系矩陣是基於材料直接建立的。這類算法中最經典的是‘斜率壹’。亞馬遜發明了暴力簡化的第二種算法,‘買了這個產品的人也買了XXX’。我們來看看第壹類。最大的問題是如何判斷和量化兩個人的相似度。想法是這樣的——比如那裏有三首歌,最炫民族風,晴天,英雄。阿俊收集了最炫的國風,但說到晴天,英雄總是跳過。B先生,經常單曲最炫國風,晴天就完了,英雄就黑C先生和最炫國風,而晴天和英雄都是收藏。我們都可以看到,A和B口味相近,C和他們差別很大。那麽問題來了,說A和B差不多。相似度如何,如何量化?我們把這三首歌想象成壹個三維空間的三個維度。最耀眼的國風是X軸,晴天是Y軸,英雄是Z軸。對每首歌的喜歡程度就是這個維度裏的坐標,喜歡程度是量化的(比如單循環=5,分享=4,收藏=3,活躍播放=2,?聽完=1,跳過=-1,停電=-5)。那麽每個人的整體口味就是壹個向量。a君是(3,-1,-1),B君是(5,1,-5),C君是(-5,3,3)。?(抱歉,我不會畫立體圖)我們可以用向量夾角的余弦來表示兩個向量的相似度。0度角(表示兩者完全相同)的余弦是1,180%角(表示兩者截然相反)的余弦是-1。根據余弦公式,夾角余弦=矢量點積/(矢量長度叉積)=?(x 1x 2+y 1 y2+z 1z 2)/(?跟隨標誌(x1平方+y1平方+z1平方)x?用符號(x2平方+y2平方+z2平方)),可以看出A君和B君的夾角余弦為0.81,A君和C君的夾角余弦為-0.97,公式很有誠意,沒有欺騙我。以上是三維(三首歌)的情況,做n維n首歌的情況也壹樣。假設我們選取了壹百首種子歌曲,計算了各位先生之間的相似度值,那麽當我們發現A君還喜歡聽的小蘋果B君從來沒有聽過的時候,相信大家都知道怎麽推薦給B君了。
上一篇:糾正成語下一篇:老鼠的天敵有哪些?