云計算環(huán)境下對大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)提出了新的挑戰(zhàn),主要反映在如下方面。 1 大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)技術(shù)挑戰(zhàn)
1.1 描述與存儲的挑戰(zhàn) 云計算環(huán)境下對大數(shù)據(jù)管理技術(shù)提出了新的挑戰(zhàn),主要反映在傳統(tǒng)的關(guān)系數(shù)據(jù)庫不能滿足大數(shù)據(jù)處理的需求,如海量用戶的高并發(fā)讀寫、海量數(shù)據(jù)的高效存儲與訪問、系統(tǒng)的高可用性與高擴展性等。隨著數(shù)據(jù)規(guī)模的增大,原來高效的算法會變得低效,關(guān)系數(shù)據(jù)庫事務(wù)處理要求的 ACID 特性,即原子性 (atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)的開銷巨大。目前的 NoSQL 運動正在通過放棄關(guān)系型數(shù)據(jù)庫強大的 SQL 查詢語言、事務(wù)的一致性以及范式的約束,或者采用鍵 - 值數(shù)據(jù)格式存儲,以獲得高效靈活的大數(shù)據(jù)處理能力。在業(yè)界,全球著名的 Google、EMC、惠普、IBM、微軟等互聯(lián)網(wǎng)公司都已經(jīng)意識到大數(shù)據(jù)存儲的重要意義,研發(fā)了一批包含分布式數(shù)據(jù)緩存、分布式文件系統(tǒng)(GFS、HDFS)、非關(guān)系型 NoSQL 數(shù)據(jù)庫(Amazon 的 Dynamo、Apache Cassandra 和 HBase),以及新關(guān)系型 NewSQL 數(shù)據(jù)庫等新技術(shù)。Gupta 等提出分析大數(shù)據(jù)過程中面臨的挑戰(zhàn),包括靜態(tài)數(shù)據(jù)與動態(tài)數(shù)據(jù)。對于靜態(tài)的大數(shù)據(jù),Gupta 等描述了面向交互數(shù)據(jù)服務(wù)環(huán)境的 NoSQL 系統(tǒng),以及基于 MapReduce 編程模式的面向大規(guī)模數(shù)據(jù)分析的系統(tǒng)。 1.2 分析與理解的挑戰(zhàn)
大數(shù)據(jù)集往往來源于對多源異構(gòu)數(shù)據(jù)的融合和集成,具有超高維、稀疏和多模態(tài)等內(nèi)在分布特征。這些內(nèi)部特征導(dǎo)致現(xiàn)有機器學(xué)習(xí)算法的性能和效率降低,導(dǎo)致對大數(shù)據(jù)的分析的理解如同盲人摸象。 1.3 挖掘與預(yù)測的挑戰(zhàn)
大數(shù)據(jù)中所蘊含的有價值的知識需要挖掘。大數(shù)據(jù)挖掘增加樣本容易,降低算法復(fù)雜度難。很多傳統(tǒng)的數(shù)據(jù)挖掘算法不一定能適用大數(shù)據(jù)環(huán)境,目前常用的數(shù)據(jù)挖掘的算法并不都能被并行化,也就是說并非所有的算法都具有高度的并行性,并行不能降低算法復(fù)雜度,因此需要研究和開發(fā)新的適應(yīng)大數(shù)據(jù)環(huán)境的算法。 2 大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)技術(shù)
2.1 大數(shù)據(jù)處理技術(shù) 由于海量數(shù)據(jù)的大數(shù)據(jù)量和分布性的特點,使得傳統(tǒng)的數(shù)據(jù)處理技術(shù)不適合處理海量數(shù)據(jù)。這對海量數(shù)據(jù)的分布式并行處理技術(shù)提出了新的挑戰(zhàn),開始出現(xiàn)以 MapReduce 為代表的一系列工作。 (1)數(shù)據(jù)并行處理MapReduce 是 2004 年谷歌提出的一個用來并行處理大數(shù)據(jù)集的并行處理模型。而 Hadoop是 MapReduce 的開源實現(xiàn),是企業(yè)界及學(xué)術(shù)界共同關(guān)注的大數(shù)據(jù)處理技術(shù)。針對并行編程模型易用性,出現(xiàn)了多種大數(shù)據(jù)處理高級查詢語言,如 FaceBook 的 Hive、Yahoo 的 Pig、Google 的Sawzall 等。這些高層查詢語言通過解析器將查詢語句解析為一系列的 MapReduce 作業(yè),在分布式文件系統(tǒng)上執(zhí)行。與基本的 MapReduce 系統(tǒng)相比,高層查詢語言更適合用戶方便地進行大規(guī)模數(shù)據(jù)的并行處理。MapReduce 及高級查詢語言在應(yīng)用中也暴露了在實時性和效率方面的不足,因此有很多研究針對它們進行優(yōu)化提高效率。 另一種基于新興的 NoSQL 數(shù)據(jù)庫,Oracle NoSQL DB、MySQL Cluster、MyFOX即是典型系統(tǒng),通過擴展 NoSQL 數(shù)據(jù)庫的查詢能力的方法來滿足大規(guī)模數(shù)據(jù)處理需求,最典型的例子就是 Google的 BigTable 及其一系列擴展系統(tǒng)。如何處理海量分布式的復(fù)雜數(shù)據(jù)也是目前的研究熱點。Google MapReduce 的設(shè)計初衷是分析 WebGraph,但處理圖數(shù)據(jù)常常需要大量的迭代運算,而 MapReduce不是很適合處理這類復(fù)雜數(shù)據(jù),已有的并行圖算法 庫 Parallel BGL 或 者 CGMgraph 又沒有提供容錯功能。于是 Google 開發(fā)了 Pregel,一個可以在分布式通用服務(wù)器上處理 PB 級別圖數(shù)據(jù)的大型同步處理應(yīng)用,與之對應(yīng)的開源項目 Graph 也得到學(xué)術(shù)界的關(guān)注?,F(xiàn)在基于 MapReduce 基礎(chǔ)又發(fā)展了 Spark。Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速、通用的計算引擎。Spark 是 UC Berkeley AMP lab( 加州大學(xué)伯克利分校的 AMP 實驗室 ) 所開源的類 Hadoop MapReduce 的通用并行框架,其擁有 Hadoop MapReduce 所具有的優(yōu)點;但不同于MapReduce 的是,Job 中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫 HDFS,因此 Spark 能更好地適用于知識發(fā)現(xiàn)中的大數(shù)據(jù)挖掘與機器學(xué)習(xí)等需要迭代的 MapReduce 的算法。
(2)增量處理技術(shù)如何采用增量處理技術(shù)設(shè)計高效的增量算法來解決分布式大數(shù)據(jù)的動態(tài)更新問題,也是目前的研究熱點。Google 已經(jīng)采用增量索引過濾器(percolator for incremental indexing), 而不是MapReduce 來對頻繁變化的數(shù)據(jù)集進行分析,使得搜索結(jié)果返回速度越來越接近實時。通過只處理新增的、改動過的或刪除的文檔和使用二級指數(shù)來高效率建目錄,返回查詢結(jié)果。Percolator 將文檔處理延遲縮短了 100 倍,其索引 Web 新內(nèi)容的速度比用 MapReduce 快很多。
(3)流式計算技術(shù)目前流式計算是一個業(yè)界研究的熱點, 最 近 Twitter、LinkedIn 等公司相繼開源了流式計算系統(tǒng) Storm、Kafka 等,加上 Yahoo! 之前開源的S4,流式計算研究在互聯(lián)網(wǎng)領(lǐng)域持續(xù)升溫。百度已經(jīng)引入了流計算系統(tǒng) DStream,能提供靈活的、可伸縮的效率解決方案,又能在數(shù)據(jù)完整性、高可用、可擴展性及收縮性方面支撐上層業(yè)務(wù)。
2.2 大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)
數(shù)據(jù)的價值只有通過數(shù)據(jù)挖掘與知識發(fā)現(xiàn)才能從低價值密度的數(shù)據(jù)中發(fā)現(xiàn)其潛在價值,而大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)技術(shù)的實現(xiàn)離不開云計算技術(shù)。在業(yè)界,全球著名的 Google、EMC、惠普、IBM 和微軟等互聯(lián)網(wǎng)公司都已經(jīng)意識到大數(shù)據(jù)挖掘的重要意義。數(shù)據(jù)挖掘與知識發(fā)現(xiàn)通常需要遍歷訓(xùn)練數(shù)據(jù)獲得相關(guān)的統(tǒng)計信息,用于求解或優(yōu)化模型參數(shù),在大規(guī)模數(shù)據(jù)上進行頻繁的數(shù)據(jù)訪問需要耗費大量運算時間。數(shù)據(jù)挖掘與知識發(fā)現(xiàn)領(lǐng)域長期受益于并行算法和架構(gòu)的使用,使得性能逐漸提升。過去 15 年來,效果尤其顯著。試圖將這些進步結(jié)合起來,并且提煉。GPU 平臺從并行上得到的性能提升十分顯著。這些 GPU 平臺由于采用并行架構(gòu),用并行編程方法,使得計算能力呈幾何級數(shù)增長。即便是圖形處理、游戲編程是公認的復(fù)雜,它們也從并行化受益頗多。研究顯示數(shù)據(jù)挖掘與知識發(fā)現(xiàn)、圖遍歷、有限狀態(tài)機是并行化未來的熱門方向。2017 年谷歌公布了張量處理器(TPU)的論文——TPU 已經(jīng)在谷歌數(shù)據(jù)中心內(nèi)部使用大約三年,而且 TPU 在推理方面的性能要遠超過 GPU。盡管在一些應(yīng)用上利用率很低,但 TPU 平均比當(dāng)前的 GPU 或 CPU 快15~30 倍,性能功耗比高出約 30~80 倍。TPU 的出現(xiàn),以及谷歌研發(fā)芯片這一舉動,本身都對整個智能產(chǎn)業(yè)有著深遠的意義。 MapReduce 框架已經(jīng)被證明是提升 GPU 運行數(shù)據(jù)挖掘算法性能的重要工具。D.Luo 等提出一種非平凡的策略用來并行一系列數(shù)據(jù)挖掘與知識發(fā)現(xiàn)與數(shù)據(jù)挖掘問題,包括一類分類 SVM 和兩類分類 SVM,以及非負最小二乘問題及 L1 正則化回歸(lasso)問題。由此得到的乘法算法,可以被直截了當(dāng)?shù)卦谌?MapReduce 和 CUDA 的并行計算環(huán)境中實現(xiàn)。K. Shim 在 MapReduce 框架下,討論如何設(shè)計高效的 MapReduce 算法,對當(dāng)前一些基于 MapReduce 的數(shù)據(jù)挖掘與知識發(fā)現(xiàn)和數(shù)據(jù)挖掘算法進行歸納總結(jié),以便進行大數(shù)據(jù)的分析。Junbo Zhang 等提出一種新的大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)技術(shù),即利用 MapRedue 實現(xiàn)并行的基于粗糙集的知識獲取算法;還提出了下一步的研究方向,即集中于用基于并行技術(shù)的粗糙集算法處理非結(jié)構(gòu)化數(shù)據(jù)。F. Gao 提出了一種新的近似算法使基于核的數(shù)據(jù)挖掘算法可以有效地處理大規(guī)模數(shù)據(jù)集,開發(fā)了一個變種的譜聚類算法,此外設(shè)計了一個所提出算法的基于 MapReduce 的實現(xiàn)。在合成和真實數(shù)據(jù)集上的實驗結(jié)果顯示,所提出的算法可以獲得顯著的時間和空間節(jié)省。
Christian Kaiser 等還利用 MapReduce 框 架分布式實現(xiàn)了訓(xùn)練一系列核函數(shù)學(xué)習(xí)機,該方法適用于基于核的分類和回歸。Christian Kaiser 還介紹了一種擴展版的區(qū)域到點建模方法,來適應(yīng)來自空間區(qū)大量數(shù)據(jù)。Yael Ben-Haim 研究了三種 MapReduce 實現(xiàn)架構(gòu)下并行決策樹分類算法的設(shè)計 , 并在 Phoenix 共享內(nèi)存架構(gòu)上對 SPRINT算法進行了具體的并行實現(xiàn)。F.Yan 考慮了潛在狄利克雷分配(LDA)的兩種推理方法——塌縮吉布斯采樣(collapsed Gibbs sampling,CGS)和塌縮變分貝葉斯推理(collapsed variational Bayesian,CVB)在 GPU 上的并行化問題。為解決 GPU 上的有限內(nèi)存限制問題,F(xiàn).Yan 提出一種能有效降低內(nèi)存開銷的新穎數(shù)據(jù)劃分方案。這種劃分方案也能平衡多重處理器的計算開銷,并能容易地避免內(nèi)存訪問沖突。他們使用數(shù)據(jù)流來處理超大的數(shù)據(jù)集。大量實驗表明 F.Yan 的并行推理方法得到的 LDA 模型一貫地具有與串行推理方法相同的預(yù)測能力;但在一個有 30 個多核處理器的 GPU 上,CGS 方法得到了 26 倍的加速,CVB方法得到了 196 倍的加速。他們提出的劃分方案和數(shù)據(jù)流方式,使其方法在有更多多重處理器時可伸縮,而且可被作為通用技術(shù)來并行其他數(shù)據(jù)挖掘模型。Bao-Liang Lu 提出了一種并行的支持向量機,稱為最小最大模塊化網(wǎng)絡(luò) (M3),是基于“分而治之”的思想解決大規(guī)模問題的有效的學(xué)習(xí)算法。針對異構(gòu)云中進行大數(shù)據(jù)分析服務(wù)的并行化問題,G.Jung 提出了最大覆蓋裝箱算法來決定系統(tǒng)中多少節(jié)點、哪些節(jié)點應(yīng)該應(yīng)用于大數(shù)據(jù)分析的并行執(zhí)行。這種方法可以使大數(shù)據(jù)進行分配使得各個計算節(jié)點可以同步的結(jié)束計算,并且使數(shù)據(jù)塊的傳輸可以和上一個塊的計算進行重疊來節(jié)省時間。實驗表明,這種方法比其他的方法可以提高大約 60% 的性能。在分布式系統(tǒng)方面,Cheng 等提出一個面向大規(guī)??缮炜s數(shù)據(jù)分析的可伸縮分布式系統(tǒng)——GLADE。GLADE 通過用戶自定義聚合(UDA)接 口,并且在輸入數(shù)據(jù)上有效地運行進行數(shù)據(jù)分析。文章從兩個方面論證了系統(tǒng)的有效性,第一,文章展示了如何使用一系列分析功能來完成數(shù)據(jù)處理;第二,文章將GLADE 與兩種不同類型的系統(tǒng)進行比較——一個用 UDA 進行改良的關(guān)系型數(shù)據(jù)庫(PostgreSQL) 和MapReduce(Hadoop),然后從運行結(jié)果、伸縮性,以及運行時間上對不同類型的系統(tǒng)進行了比較。
3 大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)實踐
隨著云計算概念的不斷普及與推廣,云計算核心技術(shù)的不斷突破,云計算應(yīng)用的不斷深入,云計算得到了國內(nèi)外工業(yè)界、學(xué)術(shù)界乃至政府部門的熱烈響應(yīng)。國內(nèi)高校與科研院所針對云計算的不同領(lǐng)域開展了深入研究。例如,清華大學(xué)的云存儲平臺著力于構(gòu)建存儲云;中國科學(xué)院計算技術(shù)研究所利用云計算開展數(shù)據(jù)挖掘工作;上海交通大學(xué)注重于數(shù)據(jù)的安全和隱私關(guān)鍵性技術(shù)研究。清華大學(xué)在云存儲研究方面,以分布式文件系統(tǒng)為基礎(chǔ)的云存儲平臺,為校園網(wǎng)用戶設(shè)計開發(fā)了用于數(shù)據(jù)存儲與共享的云存儲服務(wù),利用底層云存儲平臺所提供的基礎(chǔ)存儲服務(wù),提供用戶管理與目錄管理功能,增加了文件檢索功能,并對數(shù)據(jù)傳輸進行了優(yōu)化,為用戶提供簡單實用的云存儲訪問接口。2008 年底,中國科學(xué)院計算技術(shù)研究所在 Hadoop 基礎(chǔ)上開發(fā)實現(xiàn)了并行數(shù)據(jù)挖掘工具平臺,實現(xiàn)了高性能、低成本的海量數(shù)據(jù)挖掘。上海交通大學(xué)針對云計算中存在的數(shù)據(jù)安全問題,利用密碼理論與技術(shù)、網(wǎng)絡(luò)與信息安全技術(shù)、編碼理論等方向所取得的成果,解決數(shù)據(jù)安全存在的一些基礎(chǔ)問題,提高云計算的安全性。 另外,在云計算大潮中,許多本土 IT 廠商或是自主創(chuàng)新,或是強強聯(lián)合,在不同的行業(yè)和領(lǐng)域開展了豐富多樣的創(chuàng)新商業(yè)實踐。科大訊飛股份有限公司針對當(dāng)前移動互聯(lián)網(wǎng)時代智能語音技術(shù)的人機交互需求,立足智能語音交互和云計算的結(jié)合,實現(xiàn)了面向移動互聯(lián)網(wǎng)最終用戶及開發(fā)者的科大訊飛智能語音云平臺,使得手機等各種移動終端均可以通過自然的語音交互方式獲取移動互聯(lián)網(wǎng)上的各種信息和知識服務(wù),提升用戶獲取信息的效率,以獲得更好的用戶體驗。
4 富格式文本知識發(fā)現(xiàn)
以金融領(lǐng)域舉例來說,大部分金融文檔和數(shù)據(jù)都慣常以圖表的形式整理文字,是典型的富格式文本。傳統(tǒng)的文本處理算法大多只能處理扁平化數(shù)據(jù),這無形中提高了數(shù)據(jù)分析工作的人力成本,而且分析質(zhì)量也難以得到保證。因此,目前文本分析水平事實上無法滿足行業(yè)日新月異的需求。再如,對于一篇文檔其生命周期往往要經(jīng)歷“撰寫、審核和閱讀”三個階段,在每個階段人們對這些圖表分析都有迫切需求。因而,利用可靠的文本分析技術(shù),從非結(jié)構(gòu)化的富格式文檔中提取知識,構(gòu)建領(lǐng)域相關(guān)知識圖譜就成了目前亟待解決的問題。通過有效的知識圖譜構(gòu)建技術(shù)研究可以: ● 將業(yè)務(wù)部門外的公開數(shù)據(jù)和業(yè)務(wù)部門內(nèi)的私有數(shù)據(jù)分別建立知識圖譜,通過比較公開和私有兩個知識圖譜的異同,研究業(yè)務(wù)部門對領(lǐng)域狀況的認知是否存在偏差,可用于幫助領(lǐng)導(dǎo)感知業(yè)務(wù)工作整體態(tài)勢,從而輔助宏觀決策。
● 利用知識圖譜,輔助特定領(lǐng)域智能搜索及智能問答系統(tǒng)。“巧婦難為無米之炊”,搜索和問答系統(tǒng)的基礎(chǔ)便是優(yōu)質(zhì)的結(jié)構(gòu)化數(shù)據(jù)和知識圖譜。富格式文本,包括但不限于文件掃描件、跨平臺文件格式(PDF 文檔和 Word 文檔等)和網(wǎng)頁等,它們是標(biāo)題、文字章節(jié)和段落、表格和圖像等組成成分的復(fù)合有機排版。需要強調(diào)的是,知識圖譜構(gòu)建的研究工作往往假設(shè)文字段落已事先給定,因而僅需要在自然語言理解的范疇內(nèi)進行語義提取。然而,結(jié)合多年的研究積累,從特定領(lǐng)域的文本資料中進行語義提取,并不單純是自然語言理解的問題,還需要進行文檔結(jié)構(gòu)理解、表格內(nèi)容語義提取等研究工作。這包括以下知識工程問題:
● 特定領(lǐng)域的文本資料往往以富格式的形式存在,其中包含標(biāo)題、文字章節(jié)和段落、表格和圖像等多種組成成分,并將這些成分進行精美排版,以方便讀者閱讀。在排版后的文檔中,獲取文檔主體內(nèi)容(標(biāo)題、章節(jié)名和文字段落),確定閱讀順序(在雙欄或多欄的排版下),并識別表格(特別是無邊框表格)和圖片位置,仍是未解決的問題。
● 從自然語言中提取結(jié)構(gòu)化知識,包含實體識別、關(guān)系提取和事件提取等相關(guān)工作;然而,這些已有工作的問題定義相對簡單,在實際問題 中,尚不能處理多元關(guān)系(超過三元)的 提取、有層次嵌套結(jié)構(gòu)的多元關(guān)系提取和無觸發(fā)詞(trigger words)的多元關(guān)系提取等科學(xué)問題。因 此,為了挖掘更深層次的結(jié)構(gòu)化知識,需要開展“自然語言的復(fù)雜關(guān)系提取”研究。
● 重要的信息通常存在于富格式文本的表格中;然而,為了便于人閱讀,這些表格往往采用多層次的“二維結(jié)構(gòu)排版”,其中大量表格以無邊框的形式存在。在富格式文本中識別復(fù)雜排版表格,并獲取其結(jié)構(gòu)化知識,是需要關(guān)注的又一科學(xué)問題。
綜上,在富格式文本中進行語義理解,其基本的研究路線是,以各種類型的富格式文檔為輸入,首先進行“富格式文本的文檔結(jié)構(gòu)理解”,將整個文檔拆解為標(biāo)題、章節(jié)、文字段落、表格、圖片和圖標(biāo)等基本文檔子結(jié)構(gòu),并確定它們的閱讀順序。文檔結(jié)構(gòu)識別之后,再分別從文字段落和表格(或圖表)中分別進行語義理解,即進行“自然語言的復(fù)雜關(guān)系提取”和“復(fù)雜排版的表格內(nèi)容語義提取”。上述過程中建立深度神經(jīng)網(wǎng)絡(luò)是目前熱點的技術(shù)方向。最后,將獲得的結(jié)構(gòu)化知識整合為全景的知識圖譜。
5 結(jié)束語
大數(shù)據(jù)的超大容量自然需要容量大、速度快、安全的存儲,滿足這種要求的存儲離不開云計算。高速產(chǎn)生的大數(shù)據(jù)只有通過云計算的方式才能在可等待的時間內(nèi)對其進行處理。同時,云計算是在大數(shù)據(jù)中發(fā)現(xiàn)知識,提高對大數(shù)據(jù)的分析與理解能力的一個可行方案。大數(shù)據(jù)的價值也只有通過數(shù)據(jù)挖掘才能從低價值密度的數(shù)據(jù)中發(fā)現(xiàn)其潛在價值,而大數(shù)據(jù)挖掘技術(shù)的實現(xiàn)離不開云計算技術(shù)。大數(shù)據(jù)知識工程的實際應(yīng)用中,富格式文本知識發(fā)現(xiàn)是極具技術(shù)挑戰(zhàn)的任務(wù)。總之,云計算是大數(shù)據(jù)處理的核心支撐技術(shù),是大數(shù)據(jù)挖掘與知識發(fā)現(xiàn)的主流方式。沒有互聯(lián)網(wǎng),就沒有虛擬化技術(shù)為核心的云計算技術(shù),沒有云計算就沒有大數(shù)據(jù)知識工程的支撐技術(shù)。
(參考文獻略) 選自《中國人工智能學(xué)會通訊》2020年第10卷第9期 知識工程專題
|