【編者按】本帳號爲第四範式智能推薦產品先薦的官方帳號。本帳號立足於計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公衆,從專業的角度促進公衆對人工智能的理解;同時也但願爲人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每一個人都享受到人工智能創造的價值。
本文粗略整理了學習推薦系統過程當中必需要知道的重要概念和術語,但願各位想要入門的同窗可以從中受益。
推薦系統至關於信息「過濾器」,很好地解決了信息過載的問題,從而幫助人們更好地做出決策。它的主要原理是根據用戶過去的行爲(好比購買、評分、點擊等)來創建用戶興趣模型,以後利用必定的推薦算法,把用戶最可能感興趣的內容推薦給用戶,以下圖:算法
爲了完成上面的計算,咱們須要三部分數據:微信
2.1 用戶數據:指用來創建用戶模型的數據,這些數據根據不一樣的推薦算法而不一樣,典型的數據包括用戶興趣點、用戶profile、用戶的社交好友關係等;網絡
2.2 內容數據:指用來描述一個被推薦內容主要屬性的數據,這些屬性主要都是跟具體的內容相關的,如一部電影的導演、演員、類型和風格等;dom
2.3 用戶-內容數據:用戶-內容交互是指反映用戶與內容內在聯繫的數據,分爲隱式和顯式兩種;顯式主要是指評價、打分、購買等能明顯反映用戶對內容興趣的交互數據,隱式指的是用戶的點擊、搜索記錄等間接反映用戶對內容興趣的交互數據。ide
當前主流的推薦算法能夠分爲如下六類(非主流劃分方法):函數
3.1 基於內容的推薦(Content-based):根據用戶過去喜歡的內容而推薦類似的內容post
3.2 基於協同過濾的推薦(Collaborative Filtering,CF):根據與當前用戶類似的用戶的興趣點,給當前用戶推薦類似的內容性能
3.3 基於人口統計學的推薦(Demographic-based):根據用戶共同的年齡、地域等人口統計學信息進行共同的推薦學習
3.4 基於知識的推薦(Knowledge-based):根據對用戶和內容的特定領域知識,給特定的用戶推薦特定的內容測試
3.5 基於團體的推薦(Community-based):根據用戶的社交好友關係,給用戶推薦其好友感興趣的內容
3.6 混合推薦(Hybrid Recommender System):以上各類推薦算法的特定組合
推薦系統相關的數據預處理技術除了一般的歸一化、變量替換等之外,最主要的是類似度計算、抽樣和維度約減。
類似度一般有兩種衡量方式,一是直接計算類似度,二是計算距離,距離是本質上是相異程度的度量,距離越小,類似度越高。
4.1.1.1 餘弦類似度
類似度計算最多見的方式是餘弦類似度,對於n維空間的兩個向量,經過如下公式計算類似度。其幾何意義就是兩個向量的空間夾角的餘弦值,取值範圍在-1到1之間。取值爲-1表示徹底相反,取值爲1表示徹底相同,其他值表示介於兩者之間。
4.1.1.2 皮爾遜相關係數
類似度計算的另外一種常見方式時皮爾遜相關係數。皮爾遜相關係數的實際意義是兩個隨機變量x和y之間的線性相關性,取值範圍在-1和1之間。-1表示負線性相關,1表示正線性相關,其他值表示介於兩者之間。
4.1.1.3 Jaccard相關係數(Jaccard Coefficient)
Jaccard用於集合類似度的一種方式。
4.1.2.1 歐幾里得距離(Euclidean Distance)
距離度量最多見的是歐幾里得距離,計算多位空間中兩個點之間的絕對距離。
4.1.2.2 曼哈頓距離(Manhattan Distance)
曼哈頓距離也稱爲城市塊距離,是將多個維度的直線距離求和後的結果。
4.1.2.3 切比雪夫距離(Chebyshev Distance)
4.1.2.4 閔可夫斯基距離(Minkowski Distance)
Minkowski距離是歐氏距離(p=2)、曼哈頓距離(p=1)和切比雪夫距離(p=無窮)的推廣。
4.1.2.5 標準化歐氏距離(Standardized Euclidean Distance)
標準化歐氏距離是爲了解決以上四種距離的一個重要不足而產生的,即以上四種距離把不一樣維度指標的差別視爲相同的。標準歐式距離則經過每一維的標準差,對該維度進行一個標準化後再進行計算。
4.1.2.6 馬哈拉諾比斯距離(Mahalanobis Distance)
Mahalanobis距離是標準化歐氏距離的推廣,在協方差矩陣是對角陣時,Mahalanobis距離就變成了標準化歐氏距離。
抽樣技術在數據挖掘中主要用在兩個地方:一是在數據預處理和後處理階段,爲了不計算規模過大,進行抽樣計算;二是在數據挖掘階段,一般會對訓練出來的模型進行交叉驗證,須要抽樣將全部樣本劃分爲訓練集和測試集。
一般所說的抽樣都是隨機抽樣(random sampling),主要用於全部樣本點均可以認爲沒有區分時適用。還有一種分層抽樣(striated sampling),在樣本須要顯著的分爲不一樣的子集時,針對每一個子集分別進行抽樣。
在統計學習理論中,當樣本的維度增長的時候,待學習的模型的複雜性是隨着維度呈指數增加的,這種現象一般稱爲「維數災難(curse of dimensionality)」。這也就意味着,若是咱們想在高維空間中學到和在低維空間中精度同樣高的模型,所須要的樣本數是呈指數增加的。
維度約減一般是用來處理維災難問題的。通常維度約減有兩種思路,一是從高維數據中選出最能表達數據的一些維度,並用這些維度來表明數據,稱爲特徵選擇(feature selection);另外一種是將高維數據經過某種trick變換映射到低維空間,稱爲特徵構造(feature extraction)。
主成分分析(Principal Component Analysis, PCA)是最主要的一種特徵選擇方式。它經過特徵分解可以獲得每個維度對於整個數據的最小均方差的貢獻程度,從而定量判斷每一維對於數據所包含信息的貢獻度。而後保留最主要的一些維度,拋棄一些不顯著的維度,對數據進行降維。
奇異值分解(Singular Value Decomposition, SVD)是主要的特徵構造方式。它經過矩陣分解的方式,將數據從高維空間映射到低維空間,對數據進行降維。
分類是數據挖掘的主要內容,方法衆多,各自都有不一樣數據假設和理論支持。下面簡單列舉最有表明性的一些算法。
KNN是最容易理解的分類器,它不訓練任何模型。當有一個未知樣本須要預測時,它從已知樣本中找到與這個未知樣本距離最近的K個點,根據這K個點的類別來預測未知樣本的類別。
它最主要的不足在於它須要的樣本量很是大,同時由於它沒有任何訓練的模型,每一次預測都要計算k次距離,計算量很是大。
決策樹將分類過程抽象爲一顆樹,它經過最大化信息增益的方式對樹的分支進行劃分,最終經過設置不純度的閾值來中止樹的劃分,造成最終的決策樹。
它的主要優勢在於模型的訓練和預測都很是快,不足在於模型的精度有時會低於其它分類器。不過,經過集羣學習(ensemble learning)的方式可以極大的克服這一點,如採用bagging思想的random forest和採用boosting思想的GBDT,都是決策樹的延伸,它們綜合多棵決策樹的分類結果來組合出更精確的分類器。
基於規則的分類器一般都是利用「若是…則…」一類的規則來進行分類。其適用性有限,且要得到靠譜的規則比較困難,通常用的較少。
貝葉斯分類器實際上是一類分類器,主要是利用貝葉斯公式,經過估計先驗機率和似然機率,並利用一部分先驗信息,來計算給定樣本的各維度數據值的狀況下,樣本屬於某個類別的機率。
神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每一個節點表明一種特定的輸出函數,稱爲激勵函數(activation function)。每兩個節點間的鏈接都表明一個對於經過該鏈接信號的加權值,稱之爲權重,這至關於人工神經網絡的記憶。網絡的輸出則依網絡的鏈接方式,權重值和激勵函數的不一樣而不一樣。而網絡自身一般都是對天然界某種算法或者函數的逼近,也多是對一種邏輯策略的表達。
支持向量機是線性分類器的表明。與貝葉斯分類器先估計機率密度而後計算判別函數不一樣,線性分類器都是直接估計線性判別式,並最小化某個目標函數,利用某種凸優化方法求解獲得最終的線性判別式。
這是最流行的分類器之一,一般認爲它訓練、預測速度快,並且精度靠譜,因此在各類領域普遍使用。
集成學習的想法是集合若干個弱分類器來組合成一個強分類器,一般有bagging和boosting兩種思路。
分類器評估是對一個分類器性能進行評價的重要一步,其主要有如下標準:
Precision-recall:準確率-召回率,根據混淆矩陣計算
F1:結合準確率-召回率的一個綜合指標
ROC:直觀的曲線比較分類器性能
AUC:ROC的定量化表達
MAE:平均絕對偏差
RMSE:平均根方偏差
參考文獻:
歡迎你們點贊、收藏,將更多技術乾貨分享給身邊的好友。
相關閱讀:
第四範式每一位成員都爲人工智能早日落地貢獻着本身的力量,在這個帳號下你能夠閱讀來自計算機領域的學術前沿、知識乾貨、行業資訊,以及範式成員的內部分享。
如欲瞭解更多,歡迎搜索並關注官方微博@先薦、微信公衆號(ID:dsfsxj)。