隨著計算機和互聯網越來越深入到生活中的方方面面,人們搜集到的數據也呈指數級的增長。在這種情況下,大數據( big data )應運而生。大數據通常體量特別大,而且數據比較復雜,使得無法直接使用傳統的數據庫工具對其進行存儲和管理。大數據帶來了很多挑戰,如數據的搜集、整理、存儲、共享、分析和可視化等。廣義的大數據處理涵蓋了上述所有領域;狹義的大數據更多是指如何使用機器學習來分析大數據,從海量的數據中分析出有用的信息。
大數據分析的核心是機器學習算法。很多時候,我們有足夠的數據,但是對如何利用這些數據缺乏理解。同時,實際問題往往比較復雜,并不能直接套用機器學習算法,我們需要對實際問題進行一些轉化,使得機器學習算法可以應用。雖然實際問題表現形式各異,但是在將它們轉化為機器學習能夠處理的問題時一般轉化為如下4類問題: (1)回歸問題; (2)分類問題; (3)推薦問題; (4)排序問題。這4類問題是實際應用中最主要的類型,覆蓋了大部分實際問題。在1.3節,我們將詳細介紹每類問題的具體例子。
1.1什么是機器學習
機器學習( machine learning )是計算機科學的一個分支,也可以認為是模式識別( pattern
recognition )、人工智能( artificial intelligence )、統計學( statistics )、數據挖掘( data mining )等多個學科的交叉學科。機器學習與數值優化( numerical optimization )也有很高的重合度。
機器學習研究如何從數據中學習出有效的模型,進而能對未來作出預測。例如,如果商店能夠預測某件商品在未來一段時間的銷售量,就可以提前預訂相應數量的商品,這樣既可以避免缺貨,又可以避免進太多貨而造成積壓。與傳統的決策算法不同的是,機器學習算法依賴于數據。在前面的例子中,我們要從歷史數據中學習出相應的模型以對未來進行預測。這樣做有兩個好處:第一,由于算法依賴于數據,可以使用新的數據來不停地更新模型,使得模型能夠自適應地處理新的數據;第二,對人的介入要求少。在使用機器學習的過程中,雖然也會盡量利用人的經驗,但更多地強調如何利用人的經驗知識從數據中訓練得到更好的模型。
目前,機器學習已成為研究和應用的熱點之一。一些能夠使用機器學習解決的實際問題包括:
根據信用卡交易的歷史數據,判定哪些交易是欺詐交易;
從字母、數字或者漢字圖像中有效地識別出相應的字符;
根據用戶以往的購物歷史來給用戶推薦新的商品;
根據用戶當前的查詢和以往的消費歷史向其推薦適合的網頁、商品等根據汽車的發動機排量、年份、類型、重量等信息估計汽車的耗油星。
雖然這些問題的具體形式不同,但是均可轉化成機器學習可以解答的問題形式。
從概念上講,在機器學習中,我們的目標是從給定的數據集中學習出一個模型,使得它能夠有效地從輸數據中預測我們感興趣的量。根據問題的不同,我們感興趣的量(或者叫目標值)可以有不同的形式。例如,在分類問題中,目標值就是若干類別之一;在排序問題中,目標值就是關于文檔的一個序列。
在機器學習中,通常我們解決問題的流程如下:
(1)搜集足夠多的數據;
(2)通過分析問題本身或者分析數據,我們認為模型堤可以從數據中學習出來的;
(3)選擇合適的模型和算法,從數據中學習出模型f;
(4)評價模型f,并將其利用在實際中處理新的數據。
在實際中,還需要根據應用的實際情況及時更新模型例如,若數據發生了顯著變化,則需要更新模型t。因此,在實際部署機器學習模型時,上面的第3步和第4步是一個循環反復的過程。
一個經常與機器學習同時提起的相關領域是數據挖掘( data mining )。數據挖掘和機器學習在很多時候都被(不嚴格地)混用,因為這兩者有很多重疊的地方。傳統意義上,機器學習更加注重于算法和理論方面,而數據挖掘更加注重實踐方面。數據挖掘中的很多算法都來自于機器學習或者相關領域,少數來自于數據挖掘領域,如關聯規則( association rule )。
另一個與機器學習關聯很深的領域是統計學。在統計學中,我們學習了很多傳統的處理數據的方法,包括數據統計量的計算、模型的參數估計、假設檢驗等。但在實際問題中,很多情況下我們并不能直接使用統計學中的方法來解決問題。一方面,隨著數據規模的擴大,統計學中很多傳統的數據分析方法需要通過大量的計算才能得到結果,時效性不高;另一方面,傳統的統計學方法更多地考慮了算法在數學上的性質,而忽略了如何在實際中更好地應用這些算法。
1.2實際應用
在本節中,我們將會介紹一些可用機器學習解決的實際問題,包括病人住院時間預測、信用分數估計、Nettix上的影片推薦和酒店推薦。每個例子都對應一類不同的機器學習問題。通過這些不同類型的機器學習問題,讀者對機器學習可以有更多直觀的感受。
1.2.1 病人住院時間預測
機器學習在醫療行業有著廣泛的應用。我們以Heritage Health Prize競賽作為例子以說明如何使用機器學習來預測病人未來的住院時間。
在美國每年都有超過7000萬人次住院。根據相關統計, 2006年在護理病人住院上所花的無關費用就已經超過了300億美元。如果我們能夠根據病人的病歷提前預測病人將來的住院時間,那么就可以根據病人的具體情況提前做好相關準備從而減少那些無謂的開銷。同時,醫院可以提前向病人發出預警,這樣就能在降低醫療成本的同時提高服務質量。在從2011年開始的Heritage Health Prize競賽( HHP )中,競爭者成功地使用機器學習的方法,由病人的歷史記錄預測了病人在未來一年的住院時間。圖1-1顯示了競賽中使用的病歷數據的一部分樣本。
圖1-1 病歷數據示例
1.2.2信用分數估計
在現實生活中,向銀行申請貸款是比較常見的,如房屋貸款、汽車貸款等。銀行在辦理個人貸款業務時,會根據申請人的經濟情況來估計申請人的還款能力,并根據不同還款能力確定安全的借款金額和相應的條款(如不同的利率)。在美國,每個成年人都有相應的信用分數( credit score ) ,用來衡量和評估借款者的還款能力和風險。
在估計申請者的還款能力時,需要搜集用戶的多個方面的信息,包括:
收入情況;
年齡、性別;
職業;
家庭情況,如子女數量等;還款歷史,包括未按時還款的記錄、還款金額等;現有的各種貸款和欠款情況等。
如何將這些因素綜合考慮從而決定借貸者的信用分數呢?直觀地講,可以使用一些簡單的規則來確定信用分數。例如,某申請者的當前借款金額很高但收入一定,則進一步借款的風險很高,信用分數將會較低;又如,某申請者的某張信用卡在過去經常沒有按時還款,則其信用分數也會較低。雖然使用簡單的規則能夠大致解決信用分數估計的問題,但是這個辦法最大的問題是不能自適應地處理大量數據。隨著時間的變化,申請者不還款的風險模型可能會發生變化,因此,相應的規則也需要修改。
銀行通常可以得到海量的申請者數據和對應的歷史數據。利用機器學習的方法,我們希望可以從這些申請者過去的還款記錄中自適應地學習出相應的模型,從而能夠“智能”地計算申請者的信用分數以了解貸款的風險。具體地講,在機器學習模型中,將申請者的信息作為輸入,我們可以計算申請者在未來能夠按時還款的概率。作為一個典型的例子, FICO分數就是美國FICO公司利用機器學習模型開發出來的一個信用分數模型。
1.2.3 Nettix上的影片推薦
Netflix是美國的一家網絡視頻點播公司,成立于1997年,到2015年該公司已經有了近7000萬的訂閱者并且在世界上超過40個國家或地區提供服務。Netflix上的一項很重要的功能是根據用戶的歷史觀看信息和喜好推薦相應的影片,如圖1-2所示。2006年10月至2009年9月, Netflix公司舉辦了Netflix Prize比賽,要求參賽者根據用戶對于一些電影評價(1星~5星) ,推測用戶對另外一些沒有看過電影的評價。如果能夠準確地預測用戶對于那些沒有看過的電影的評價,就可以相應地向這些用戶推薦他們感興趣的電影,從而顯著提高推薦系統的性能和Netflix公司的盈利水平。
圖1-2 Netflix上的電影推薦
在Netflix Prize賽中,獲勝的標準是將Netflix現有推薦系統的性能提高10%。在2009年, Bellkor‘s Pragmatic Chaos隊贏得了比賽。其主要方法是基于矩陣分解的推薦算法,并使用集成學習的方法綜合了多種模型。Netflix Prize比賽顯著地推動了推薦算法的研究,特別是基于矩陣分解的推薦算法的研究。在本書中,我們也將詳細介紹這些推薦算法。
1.2.4 酒店推薦
Expedia是目前世界上最大的在線旅行代理( online travel agency , OTA )之一。它的一項很重要的業務是向用戶提供酒店預訂,作為用戶和大量酒店之間的橋梁。對于用戶的每個查詢, Expedia需要根據用戶的喜好,提供最優的排序結果,這樣用戶能夠方便地從中選出最合適的酒店。
Expedia于2013年年底與國際數據挖掘大會( International Conference on Data Mining , ICDM )聯合舉辦了酒店推薦比賽。在該項比賽中, Expedia提供了實際數據,包括用戶的查詢以及其對所推薦結果點擊或者購買的記錄。在進行酒店推薦時, Expedia考慮了如下因素:
用戶的位置和酒店的位置;
酒店的特征,如酒店的價格、星級、位置吸引程度等;
用戶過去預訂酒店的歷史,包括價格、酒店類型、酒店星級;·其他競爭對手的信息。
根據用戶的查詢及用戶的背景信息, Expedia返回推薦的酒店序列。在Expedia.com上,典型的酒店搜索界面如圖1-3所示。根據返回的推薦結果,用戶有3種選擇: (1)付款預定推薦的酒店; (2)點擊推薦的酒店但沒有預訂; (3)既沒有點擊也沒有預訂。顯然,根據用戶的反應,我們希望在理想的酒店推薦結果中,對應于第一種選擇的酒店能夠排在最前面,并且對應于第二種選擇的酒店排在對應于第三種選擇的酒店前面。
圖1-3 在Expedia.com上搜索酒店
評論
查看更多