當前位置:
首頁 > 最新 > 簡單解釋推薦系統的相似度及演算法

簡單解釋推薦系統的相似度及演算法

推薦系統(RS)是個典型的基於數據挖掘的應用場景。所以,通常我們在搭建一個推薦系統之前,要進行數據的預處理。

真實的數據經過預處理之後,可以讓機器學習技術在分析階段使用。我們將圍繞推薦系統設計三個重要的問題展開:1、相似度(或者距離度量方式)2、抽樣問題 3、降維的使用

/背景知識:關於數據的屬性/

我們把數據定義為一組對象及屬性的集合,其中屬性定義為性質或者是對象的特徵。對象的其他名稱包括記錄、物品、得分、樣本、觀察值或者實例。屬性也可以稱之為變數、欄位、特徵和特性。

我們截取了某電商網站一個筆記本電腦的部分參數、以及一個背包的參數,並結合實例和演算法的說明,兩者是如何結合到一起,實現被推薦的。

如上圖展示,一個筆記本電腦其實涉及非常多的參數,cpu型號、速度、屏幕尺寸、重量等,多達上百個。這些用來描述物品屬性的值,在演算法中也被稱之為「維」。

即使是一個普通的背包,細分之後也有幾十個參數,包括名稱、重量、產地、風格、材質、性能等級、適合人群等。

/推薦系統的數學原理實現-相似度/

在經過對物品信息的抽象和提煉之後,我們會得到類似於一個屬性值的表。因為,如果沒有這樣的表,就缺少結構化數據,你拿兩個物品各500字的文字描述是無法實現相關性的測算,進而實現推薦。(推薦的數學基礎,就是看物品之間是否存在相似性)

在計算兩個物品之間的相似度時,最簡單、最常用的距離度量是歐幾里得距離。

什麼是歐幾里得演算法?

百科的解釋:

是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離,或者向量的自然長度(即該點到原點的距離)。在二維和三維空間中的歐氏距離就是兩點之間的實際距離。

其中,n代表維數(屬性數),Xk和Yk分別是數據對象x和y的第k個屬性值(分量)。

後來,在歐幾里得演算法的基礎上,改進後有了閔科夫斯基距離公式:

後來又出現了馬氏距離演算法,他和歐氏(歐幾里得)距離最大的不同,在於考慮到各種特性之間的聯繫(例如:一條關於身高的信息會帶來一條關於體重的信息,因為兩者是有關聯的)並且是尺度無關的(scale-invariant),即獨立於測量尺度。

//有興趣了解馬氏距離、歐氏距離的(度量公式),我們改天再開文章討論。//

另一種常用的方法,是把物品看做n維空間的文檔向量,並且計算他們相似度作為形成夾角的餘弦值(在數學上,夾角越小,餘弦值接近於1,方向更加吻合,越相似),其公式如下:

當然,物品之間的相似度還可以使用相關度來進行計算,用以度量對象間的線性關係,這裡要請出我們的皮爾遜係數,他是最常用的。

如果純粹討論距離度量的公式,其實沒有特別大的意義。就以本文中電腦和背包的參數,如果你來設計推薦演算法,哪些參數你應該要考慮?

1、背包的尺寸和電腦的尺寸吻合(放得下);

2、背包的風格和電腦的用途吻合(風格搭);

3、價格合理區間(買個3K筆記本的,你推薦給他TUMI 也不合適);

4、其他參數(還要給予客戶畫像來影響演算法的結果);

在實際應用中,推薦系統一般採用餘弦相似度或者皮爾遜相關性(或者基於此的變種方案)。但是,從國外的一些實驗和實踐經驗看,餘弦相似度是其中效果最好的度量方法(作者持保留意見)。

總結,在一般的案例中,推薦系統的預測精確性不受相似度度量方法選擇的影響。使用隨機的相似度度量有時會產生比使用已知任何眾所周知的方法更好的結果。

GIF


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 風口的觀察家 的精彩文章:

麥肯錫也看走了眼,中國消費市場的5年

TAG:風口的觀察家 |