【編者按】本賬號為第四正規化智慧推薦產品先薦的官方賬號。本賬號立足於計算機領域,特別是人工智慧相關的前沿研究,旨在把更多與人工智慧相關的知識分享給公眾,從專業的角度促進公眾對人工智慧的理解;同時也希望為人工智慧相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每個人都享受到人工智慧創造的價值。
本文粗略整理了學習推薦系統過程中必須要知道的重要概念和術語,希望各位想要入門的同學能夠從中受益。
1. 推薦系統
推薦系統相當於資訊“過濾器”,很好地解決了資訊過載的問題,從而幫助人們更好地作出決策。它的主要原理是根據使用者過去的行為(比如購買、評分、點選等)來建立使用者興趣模型,之後利用一定的推薦演算法,把使用者最可能感興趣的內容推薦給使用者,如下圖:
2. 資料
為了完成上面的計算,我們需要三部分資料:
2.1 使用者資料:指用來建立使用者模型的資料,這些資料根據不同的推薦演算法而不同,典型的資料包括使用者興趣點、使用者profile、使用者的社交好友關係等;
2.2 內容資料:指用來描述一個被推薦內容主要屬性的資料,這些屬性主要都是跟具體的內容相關的,如一部電影的導演、演員、型別和風格等;
2.3 使用者-內容資料:使用者-內容互動是指反映使用者與內容內在聯絡的資料,分為隱式和顯式兩種;顯式主要是指評價、打分、購買等能明顯反映使用者對內容興趣的互動資料,隱式指的是使用者的點選、搜尋記錄等間接反映使用者對內容興趣的互動資料。
3. 演算法
當前主流的推薦演算法可以分為以下六類(非主流劃分方法):
3.1 基於內容的推薦(Content-based):根據使用者過去喜歡的內容而推薦相似的內容
3.2 基於協同過濾的推薦(Collaborative Filtering,CF):根據與當前使用者相似的使用者的興趣點,給當前使用者推薦相似的內容
3.3 基於人口統計學的推薦(Demographic-based):根據使用者共同的年齡、地域等人口統計學資訊進行共同的推薦
3.4 基於知識的推薦(Knowledge-based):根據對使用者和內容的特定領域知識,給特定的使用者推薦特定的內容
3.5 基於團體的推薦(Community-based):根據使用者的社交好友關係,給使用者推薦其好友感興趣的內容
3.6 混合推薦(Hybrid Recommender System):以上各種推薦演算法的特定組合
4. 資料預處理
推薦系統相關的資料預處理技術除了通常的歸一化、變數替換等以外,最主要的是相似度計算、抽樣和維度約減。
4.1 相似度計算
相似度通常有兩種衡量方式,一是直接計算相似度,二是計算距離,距離是本質上是相異程度的度量,距離越小,相似度越高。
4.1.1 相似度度量
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 距離度量
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距離就變成了標準化歐氏距離。
4.2 抽樣
抽樣技術在資料探勘中主要用在兩個地方:一是在資料預處理和後處理階段,為了避免計算規模過大,進行抽樣計算;二是在資料探勘階段,通常會對訓練出來的模型進行交叉驗證,需要抽樣將所有樣本劃分為訓練集和測試集。
通常所說的抽樣都是隨機抽樣(random sampling),主要用於所有樣本點都可以認為沒有區分時適用。還有一種分層抽樣(striated sampling),在樣本需要顯著的分為不同的子集時,針對每個子集分別進行抽樣。
4.3 維度約減(Dimensionality Reduction)
在統計學習理論中,當樣本的維度增加的時候,待學習的模型的複雜性是隨著維度呈指數增長的,這種現象通常稱為“維數災難(curse of dimensionality)”。這也就意味著,如果我們想在高維空間中學到和在低維空間中精度一樣高的模型,所需要的樣本數是呈指數增長的。
維度約減通常是用來處理維災難問題的。通常維度約減有兩種思路,一是從高維資料中選出最能表達資料的一些維度,並用這些維度來代表資料,稱為特徵選擇(feature selection);另一種是將高維資料通過某種trick變換對映到低維空間,稱為特徵構造(feature extraction)。
主成分分析(Principal Component Analysis, PCA)是最主要的一種特徵選擇方式。它通過特徵分解能夠得到每一個維度對於整個資料的最小均方差的貢獻程度,從而定量判斷每一維對於資料所包含資訊的貢獻度。然後保留最主要的一些維度,拋棄一些不顯著的維度,對資料進行降維。
奇異值分解(Singular Value Decomposition, SVD)是主要的特徵構造方式。它通過矩陣分解的方式,將資料從高維空間對映到低維空間,對資料進行降維。
5. 資料探勘-分類
分類是資料探勘的主要內容,方法眾多,各自都有不同資料假設和理論支援。下面簡單列舉最有代表性的一些演算法。
5.1 KNN(K-nearest Neighbor)
KNN是最容易理解的分類器,它不訓練任何模型。當有一個未知樣本需要預測時,它從已知樣本中找到與這個未知樣本距離最近的K個點,根據這K個點的類別來預測未知樣本的類別。
它最主要的不足在於它需要的樣本量非常大,同時因為它沒有任何訓練的模型,每一次預測都要計算k次距離,計算量非常大。
5.2 決策樹(Decision Tree)
決策樹將分類過程抽象為一顆樹,它通過最大化資訊增益的方式對樹的分支進行劃分,最終通過設定不純度的閾值來停止樹的劃分,形成最終的決策樹。
它的主要優點在於模型的訓練和預測都非常快,不足在於模型的精度有時會低於其它分類器。不過,通過叢集學習(ensemble learning)的方式能夠極大的克服這一點,如採用bagging思想的random forest和採用boosting思想的GBDT,都是決策樹的延伸,它們綜合多棵決策樹的分類結果來組合出更精確的分類器。
5.3 基於規則的分類器(Rule-based Classifier)
基於規則的分類器通常都是利用“如果…則…”一類的規則來進行分類。其適用性有限,且要獲得靠譜的規則比較困難,一般用的較少。
5.4 貝葉斯分類器(Bayes classifier)
貝葉斯分類器其實是一類分類器,主要是利用貝葉斯公式,通過估計先驗概率和似然概率,並利用一部分先驗資訊,來計算給定樣本的各維度資料值的情況下,樣本屬於某個類別的概率。
5.5 人工神經網路(Artificial Neural Network,ANN )
神經網路是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函式,稱為激勵函式(activation function)。每兩個節點間的連線都代表一個對於通過該連線訊號的加權值,稱之為權重,這相當於人工神經網路的記憶。網路的輸出則依網路的連線方式,權重值和激勵函式的不同而不同。而網路自身通常都是對自然界某種演算法或者函式的逼近,也可能是對一種邏輯策略的表達。
5.6 支援向量機(Support Vector Machine, SVM)
支援向量機是線性分類器的代表。與貝葉斯分類器先估計概率密度然後計算判別函式不同,線性分類器都是直接估計線性判別式,並最小化某個目標函式,利用某種凸優化方法求解得到最終的線性判別式。
這是最流行的分類器之一,通常認為它訓練、預測速度快,而且精度靠譜,所以在各種領域廣泛使用。
5.7 整合學習(Ensemble Learning)
整合學習的想法是集合若干個弱分類器來組合成一個強分類器,通常有bagging和boosting兩種思路。
5.8 分類器評估
分類器評估是對一個分類器效能進行評價的重要一步,其主要有以下標準:
Precision-recall:準確率-召回率,根據混淆矩陣計算
F1:結合準確率-召回率的一個綜合指標
ROC:直觀的曲線比較分類器效能
AUC:ROC的定量化表達
MAE:平均絕對誤差
RMSE:平均根方誤差
參考文獻:
- Recommender System Handbook
- 《推薦系統實踐》
歡迎大家點贊、收藏,將更多技術乾貨分享給身邊的好友。
相關閱讀:
第四正規化每一位成員都為人工智慧早日落地貢獻著自己的力量,在這個賬號下你可以閱讀來自計算機領域的學術前沿、知識乾貨、行業資訊,以及正規化成員的內部分享。
如欲瞭解更多,歡迎搜尋並關注官方微博@先薦、微信公眾號(ID:dsfsxj)。