跳到主要內容區塊

ntuccepaper2019

專題報導

Big Data技術淺論
  • 卷期:v0029
  • 出版日期:2014-06-20

作者:洪士灝 / 臺灣大學計算機及資訊網路中心作業管理組組長


近年來興起的Big Data應用,提供嶄新的解決問題的方法,讓各大公司和學術機構趨之若鶩,爭相建構Big Data平台以及開發Big Data技術。然而,Big Data並不是萬靈丹,而且技術與資金門檻較一般研究高出許多,因此在許多人一頭熱之餘,我們應該冷靜理性地看待這個議題,多方了解Big Data成功案例中的技術內涵與挑戰性。

 

有些人以為Big Data是全新的技術,但其實不然。Big Data的重點在於運用大量從資訊系統上取得的資料,進行處理和分析,萃取出資料中的智慧(intelligence)。但是在資料的處理技術上,近年來大多以雲端運算(cloud computing)和高效能運算(high-performance computing)技術作為基礎。所以說,沒有雲端計算,大概就沒有今天Big Data應用的盛況。

 

然而在觀念上,由Big Data萃取出智慧的作法,和傳統人工智慧(artificial intelligence)的作法有很大的區別。過去很多人所發展的人工智慧技術,重視演算法(algorithm)和模型(model)的開發。例如自然語言處理(natural language processing, NLP)這個領域,偏重於文法、語意的規則(rules),想辦法把諸多的規則放進電腦,希望讓電腦成為有能力分析人類語言的專家系統(expert systems)。打個比喻,這像是我們在台灣國中裡面教英文的方法,要學生背誦各種拼音、造字、文法規則,希望他們能夠以此看懂文章,按照文法作文。

 

以Big Data做自然語言處理的方法,並不講究文法。大家都知道,基本的文法規則或許很簡單,但是最麻煩的就是層出不窮的「例外」,因為英國人或者美國人講話和作文,並不見得會按照文法。如果問他們怎麼學英文的,他們往往會說,我從小不斷聽說讀寫,自然就會了,那裡要學什麼文法?

 

從小不斷聽說讀寫,就是Big Data式的學習方法。我們今天在網路上等於有一個巨量的資料庫(database),擁有龐大數量的文章和各類的知識,如果電腦能夠收到一個問句,同時瞬間將此問句與這個資料庫比對,找到相近的資訊,從中得到答案,這就是IBM的Watson電腦能夠在2011年的益智問答節目Jeopardy!決賽中擊敗幾位人類最強的答題高手的秘密。可參考: http://en.wikipedia.org/wiki/Watson_(computer)

 

上述IBM Watson電腦的秘密,說穿了不大值錢,但是要將觀念付諸實現,成為實際的應用,電腦的研發者必須蒐集與整理大量的資料,研究出最精確有效率的分析方法,同時建構一個能儲存大量資料以及在短時間內迅速處理這些資料的系統,這樣的研究計畫動員了IBM龐大的人力和資源,從2005年開始進行了多年的跨領域的研究,才贏得這一項競賽。

 

IBM Watson的例子簡單示範了所謂的Big Data應用(applications)的精神:利用Big Data解決特定的問題,做出有用的結果。首先,在大方向上,一個好的Big Data應用必須對這個特定問題有相當深入的了解,例如IBM Watson的開發人員,如果希望Watson能回答醫學問題,則必須引進許多的醫療專業知識,這點非與專業醫師密切合作不可,這也是近年IBM積極在研發的工作項目,希望能讓Watson成為醫療諮詢、財務分析以及各類科學工程問題的專家。

 

目前有許多大公司都積極網羅Big Data人才以及投注資源建構Big Data應用。原本就有龐大資料的企業,自然想善用資料讓他的決策更快,更有效,減少資源與時間的耗費,因而提昇其競爭力。然而在建構一個完整Big Data應用的時候,往往在資料收集、儲存、管理、處理、呈現、隱私控管、商業模式等環節,需要有專家和專門技術來解決:

 

1. 收集(collection):這是Big Data的第一個門檻,沒有資料,一切免談。因此只有擁有資料的特定的公司和機構,或是設法建立蒐集資料的管道,才有機會發展Big Data應用。
2. 儲存(storage):以現在的科技,只要有經費,儲存Petabyte (1,000,000,000,000,000)等級的資料,早已不是問題。Hadoop是一個開放原始碼軟體計畫(open-source software project),可以讓使用者將大型檔案切割成許多區塊分散放置在多台電腦上,也具備容錯、高效能等優點。
3. 管理(management):除了以檔案方式管理資料之外,將資料輸入資料庫系統,是資訊系統常見的作法,方便使用者將資料分門別類和搜索更新資料。然而在Big Data的情況下,資料庫系統的效率成為應用開發的重點之一。因此,有別於傳統的關聯式資料庫系統(relational database management system),專門針對Big Data應用的資料庫系統應運而生,有些藉著放寬一些傳統資料庫的規範,提昇資料處理的效率。
4. 處理(processing):傳統的程式撰寫方法,是根據程式會被電腦一行一行循序執行(sequential execution)的思維。要快速處理Big Data,程式必須能夠同時在多台電腦上執行。Google所提出的MapReduce程式設計框架(framework),方便使用者製作出能同時利用成千上萬台電腦上處理Big Data的平行程式(parallel program)。然而,並非每位應用開發者都願意將原有的程式改寫和平行化,尤其是套裝軟體的使用者,因此常用的R、SPSS、Matlab等軟體也設法支援Big Data,以及以平行執行的方式來加速處理。
5. 呈現(visualization):資料處理的前後,往往需要專家或使用者的介入,去確認和觀察資料的意義。然而在Big Data的情況下,需要透過一些專業、圖像化的方式有效地將資料快速地呈現在眼前。
6. 隱私控管(privacy):實際上,許多資訊系統中的資料屬個人所有,負責保管資料的廠商即便在契約書上明定有分析資料的權利,但同時也有不可洩漏資料所有者個人隱私的義務。因此,Big Data的控管,成為一個非常敏感、必須設立機制謹慎處理的議題。
7. 商業模式(business model):既然Big Data應用的開發和系統的建構需要相當大的資源,如何讓花費許多資源所建構的Big Data應用獲得足夠的利益,是發展新興Big Data應用所必須的規劃。

 

以上談的是建構Big Data應用所需的步驟與議題,然而當前最受到研究者和學術界關切的技術,在於「分析Big Data資料的方法」(big data analytics)和「處理資料所需的平台」(big data platforms)。

 

Big Data分析是基於資料科學(data science),主要是希望從大量的資料中找出幕後代表的意義和智慧。可採用的理論和方法,包括訊號處理(signal processing)、機率統計(probability and statistics)、機器學習(machine learning)、統計學習(statistical learning)、資料探勘(data mining)等等。

 

對於傳統的資料科學來說,Big Data出現,可說是兩面刃。一方面,資料量的增加有利於提昇預測和統計的準確度,因此有許多資料科學家開始擁抱 Big Data分析技術;另一方面,電腦在這方面神速的進步,讓普通人得以把原始資料丟給電腦,讓電腦用機器學習和資料探勘的方式去做預測和發掘資料的意義,讓傳統資料科學家開始檢討他們所擅長的預測和統計模型的意義性。

 

事實上,不只是資料科學家,許多學術和產業也開始運用Big Data作為分析和研究方法。除了原本就頻繁使用電腦作為研究工具的科學、工程領域之外,社會、人文和經濟等研究領域也積極看待Big Data,現在政府和民間有非常多的資料可以拿來分析研究。

 

如何讓電腦能夠更自動化地進行資料分析,解決各式各樣的問題,則是近年學術界熱門的研究議題。其盛況可比擬三十年前個人電腦出現的時候,眾人紛紛學習利用個人電腦進行計算、分析、自動化。現在,美國有一個著名的網站,http://www.kaggle.com/,邀請各界提供資料分析的題目與資料,公開在網上進行「擂台賽」。題目包羅萬象,值得參考。

 

然而Big Data平台和傳統的電腦相比,在技術和購置成本的門檻上高出許多。在處理Big Data的時候,沒有強大的平台,連資料都儲存不下,運算其慢無比,很難有成果,這點與其他資訊科學的研究有很大的不同。因此,要培養有經驗的Big Data分析師是很困難的事,因為除了懂得分析之外,還必須能充分了解和運用Big Data所使用的平台技術,目前具備實務經驗的Big Data分析師一位難求。

 

因此,計資中心於2014年以「邁向頂尖大學」計畫經費建置了一套Big Data平台,希望能作為台大師生探索Big Data應用的基礎建設。由於平台的資源有限,建置和維護成本頗高,計資中心在提供資源時,必須考量使用者計畫用途,以及基於使用者付費的原則訂定規範。

 

如本文所述,Big Data應用的門檻很高,因此計資中心除了與資訊工程、資訊管理等系所合作提供優質的平台技術之外,也希望媒合各專長系所團隊進行跨領域Big Data應用開發與研究,為國內造就Big Data人才。