機器學習——海量數據挖掘解決方案
大
數據
時代里,互聯網
用戶
每天都會直接或間接使用到
大數據
技術的成果,直接面向用戶的比如搜索引擎的排序結果,間接影響用戶的比如網絡游戲的流失用戶預測、
支付
平臺的欺詐交易監測等等。達觀數據技術團隊開發過智能文本內容審核系統、作弊監測系統、用戶建模系統等多個基于大數據技術的應用系統。機器學習是大數據挖掘的一大基礎,本文以機器學習為切入點,將達觀在
大
互聯網的海量數據不可能靠人工一個個處理,只能依靠計算機批量處理。最初的做法是人為設定好一些規則,由機器來執行。比如明確指定計算機給男性、30歲的用戶推送汽車廣告。很明顯如此粗略的規則不會有好效果,因為對人群的定位不夠精確。要提高精度必須增加對用戶的特征描述。但特征一多規則就很難制定,即使定下了規則也沒法根據實際情況靈活變化。機器學習可以很好的解決以上問題,從一定程度上賦予了計算機以“學習”的能力,使得千人千面成為可能。
圖 1 面對大量的特征,人工難以確定使用的規則 有監督機器學習技術 機器學習以統計學為理論基礎,利用算法讓機器具有類似人類一般的自動“學習”能力,即對已知的訓練數據做統計分析從而獲得規律,再運用規律對未知數據做預測分析。機器學習主要包含四大類別: 有監督學習,無監督學習,半監督學習和增強學習。 有監督學習,顧名思義,是在“人類監督”下學習,要求訓練數據既有特征也有目標,目標是人為設定好的。以文本分類為例,一篇文章的字、詞、句、段是其特征(文本的內容是什么),文章的類別(時事、科技、娛樂等等)就是目標。訓練集文章的類別是人為設定的,相當于明確告訴機器什么樣的內容該屬于什么類別,機器在此基礎上總結規律。無監督學習就是數據只有特征沒有目標,最常見的算法是聚類。聚類算法會把相似的樣本聚集成一個子集,優點是數據無需人工標注,但缺點也很明顯——無法給出子集的實際含義。半監督學習介于有監督學習和無監督學習之間,其訓練集數據有一小部分是人工標注過的。增強學習強調基于環境而行動,在探索未知領域和遵從現有只是之間尋求平衡。 有監督學習的研究起步較早,方法比較成熟。在大多數應用場景中,我們希望機器輸出的結果具有實際含義,比如文本分類就是讓機器告訴我們一篇文章是時事還是科技類文章。這樣的場景下有監督學習也更為適用。有監督學習主要包含回歸分析和統計分類兩大類算法。 回歸分析——預估點擊率的利器 回歸分析建模的是自變量和因變量之間的相關關系(如圖2所示),在機器學習領域,自變量是樣本的特征向量,因變量是預測值。回歸分析最經典的應用場景是廣告點擊率(CTR)預估。簡單而言,CTR預估是根據用戶數據和廣告數據,估計用戶點擊某個廣告的可能性大小。我們假設用戶數據+廣告數據和廣告點擊率之間的關系符合某個分布,使用回歸分析方法在已有點擊數據上擬合出該分布。達觀科技在線上預測時就把用戶數據和廣告數據作為輸出傳給擬合出的分布,得到用戶點擊該廣告的概率值。
圖 2 回歸分析示意圖 統計分類——被廣泛應用的機器學習方法 統計分類要解決的問題是,如何將一個樣本點分到類別集合中的一個或多個類,比如圖3所表示的就是將數據分為3個類。
圖 3 統計分類示意圖 現實場景中我們往往需要把數據分成不同的類別,以方便我們分析和使用,因而統計分類方法具有廣闊的應用范圍。達觀數據團隊開發的用戶建模、內容審核系統、反作弊系統等都使用到了統計分類模型。比如反作弊系統,目的是區分用戶行為是否作弊,抽象出來就是個分類問題:輸入是用戶的各種行為數據經過處理后得到的特征,輸出只有兩個類別——“作弊”和“非作弊”。接下來我就簡單介紹一下最具代表性的分類算法——支持向量機(Support Vector Machine, SVM),一窺機器學習的工作原理。SVM絕不是入門級的機器學習算法,選擇介紹它是因為,機器學習需要解決的數據線性不可分、過擬合等問題,SVM都給出了比較可靠的解決方案,借此我們也可以對機器學習有個大概的認識。 理想情況下SVM的理論模型 SVM針對分類問題的前提假設直觀易懂,由此推演出的模型求解過程也是順理成章一氣呵成。我們通常先從最簡單的情況入手,假設數據是線性可分的。SVM認為此時的最優分類面,是使得樣本集到分類面的最小幾何距離最大化的超平面,這個距離成為“間隔(margin)”。如圖4所示,黑色實線就是最優分類面,兩邊兩條虛線之間的幾何距離就是此時的最優間隔。數據點離分類面越遠,分類的置信度也越高。
圖 4 SVM最優分類面示意圖 SVM假設線性分類面的函數形式為
(1) 鑒于篇幅關系,我們略去推導過程。在最大化間隔的假設下,可以得到SVM的原目標函數為:
(2) 其中表示第i個樣本的特征向量,是第i個樣本的類標簽,SVM令。由約束條件可知,樣本點必然落在最優間隔的邊緣(圖4中虛線)上或外面,通過推導分析最終可以知道,只有落在間隔邊緣上的少量數據點決定了分類面,這些樣本被稱為支持向量,而其他的點沒有任何作用。這一特性大大節省了求解SVM的計算量。 線性不可分情況的處理 按照達觀數據的經驗,真實環境的問題往往是線性不可分的,數據采集的時候也不可避免的會引入噪聲。應對這兩種情況只需對原始SVM模型做有限的一點改進。針對數據線性不可分的情況,SVM通過引入核函數(Kernel Function)將數據映射到高維空間來解決,圖5直觀的表示了映射的過程。核函數實際上是兩個數據點在高維空間中的內積。它先在原空間進行計算再將結果映射到高維空間,避免了先把數據點映射到高維空間再計算所可能導致的維數災難問題。核函數可以從容的處理包括無限維在內的任何特征空間映射。
圖 5 SVM核函數的作用原理圖 SVM如何規避過擬合 過擬合(Overfitting)表現為在訓練數據上模型的預測錯誤很低,在未知數據上預測錯誤卻很高。圖6的藍色曲線代表訓練錯誤,紅色曲線代表真實錯誤,可以看到隨著模型復雜度的升高,模型對訓練數據的擬合程度越好(訓練錯誤越低),但到了一定程度之后真實錯誤反而上升,即為過擬合。
圖 6 過擬合 過擬合主要源于我們采集的訓練樣本帶有噪聲,有部分樣本嚴重偏離其正常位置,統計學上稱之為outlier。前面已經提到,決定SVM最優分類面的只是占少數的支持向量,如果碰巧這些支持向量中存在outlier,而我們又要求SVM盡可能完美的去擬合這樣的數據,得到的分類面可能就會有問題。如圖7所示,黑色加粗虛線代表最優分類面,帶黑圈的藍色數據點代表outlier。可以看到outlier嚴重偏離了正常藍色數據點的位置,所在位置又恰巧使其成為了支持向量,導致了最終的分類面(深紅色實線)嚴重偏離最優分類面。
2016-4-8 10:51
|
來自: 紀傳俊
|