隨著互聯(lián)網(wǎng)尤其是移動互聯(lián)網(wǎng)的高速發(fā)展,互聯(lián)網(wǎng)文檔的數(shù)量、內(nèi)容的豐富度和復(fù)雜度都大大增加,互聯(lián)網(wǎng)正朝大數(shù)據(jù)時代邁進,而用戶的信息需求也趨于復(fù)雜化。除了基本的信息檢索需求外,對大量相關(guān)文檔的深入理解與聚合分析的需求也越來越強烈,而傳統(tǒng)的互聯(lián)網(wǎng)搜索引擎已經(jīng)無法滿足人們對該類信息的需求。針對這一問題,提出“互聯(lián)網(wǎng)分析引擎”的構(gòu)想,闡述了其與搜索引擎和OLAP分析系統(tǒng)的區(qū)別,介紹了一種互聯(lián)網(wǎng)分析引擎的架構(gòu),并詳細討論了實現(xiàn)該引擎的核心問題。
1 引言
隨著移動互聯(lián)網(wǎng)、智能手機、社交媒體、自媒體技術(shù)的飛速發(fā)展以及“互聯(lián)網(wǎng)+”戰(zhàn)略的推廣,互聯(lián)網(wǎng)對個人生活方式的影響進一步深化?;ヂ?lián)網(wǎng)從原來僅提供資料發(fā)布、信息共享、鏈接互聯(lián)等簡單功能,開始轉(zhuǎn)變?yōu)槿藗兩钪斜夭豢缮俚男畔@取和溝通娛樂的工具,并且發(fā)展為與醫(yī)療、教育、交通等公用服務(wù)深度融合的民生服務(wù)。海量的普通用戶也逐漸從信息的瀏覽者變成了信息的制造者。中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的《第36次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》顯示,截至2015年6月,中國網(wǎng)站總數(shù)為357萬個,網(wǎng)民規(guī)模達6.68億戶,手機網(wǎng)民規(guī)模達5.94億戶[1]?;ヂ?lián)網(wǎng)上的信息呈現(xiàn)幾何級的增長,體量大、變化快、復(fù)雜多樣,呈現(xiàn)出典型的大數(shù)據(jù)特征。
互聯(lián)網(wǎng)大數(shù)據(jù)的飛速增長給人們生活帶來便利的同時,也導(dǎo)致“信息過載”問題日趨嚴重。例如,2014年3月8日“馬航失聯(lián)”事件發(fā)生后,截至2014年5月21日,僅在百度中被索引的相關(guān)網(wǎng)頁數(shù)量就有500多萬篇,新浪微博上關(guān)于“MH370”的微博有1 580萬條,并產(chǎn)生了大量的轉(zhuǎn)發(fā)和評論。如此大量的數(shù)據(jù)和信息往往超過了個人所能接受的范圍。首先,用戶從如此海量的互聯(lián)網(wǎng)數(shù)據(jù)中查找和瀏覽有用信息變得越來越困難;其次,用戶在查找有用信息的同時會遇到大量的冗余信息;此外,用戶在海量的文本內(nèi)容中進行匯總和理解非常困難。信息檢索技術(shù)和互聯(lián)網(wǎng)搜索引擎[2]在一定程度上能夠解決上述問題。搜索引擎可以幫用戶從海量互聯(lián)網(wǎng)文檔中檢索到和用戶需求關(guān)鍵詞相關(guān)的文檔,并按照相關(guān)性高低進行排序。截至2015年6月,中國搜索引擎用戶規(guī)模達5.36億戶,使用率為80.3%,搜索引擎是中國網(wǎng)民除了即時通信外使用率最高的互聯(lián)網(wǎng)應(yīng)用,并成為人們從互聯(lián)網(wǎng)獲取信息的一個必不可少的工具。但是,隨著互聯(lián)網(wǎng)數(shù)據(jù)的不斷增加以及數(shù)據(jù)類型的日趨復(fù)雜,搜索引擎已經(jīng)不能很好地滿足用戶對于信息的深入分析與理解的需求。搜索引擎本質(zhì)上只能夠提供基本的檢索功能,而用戶往往具有高階知識獲取的需求。例如,當(dāng)用戶在搜索引擎中搜索“馬航失聯(lián)”的時候,很有可能不是在尋找某一條特定新聞或網(wǎng)頁,而是希望獲取對整個事件或最近進展的一個高度濃縮的知識或結(jié)論,如了解“馬航失聯(lián)”事件中各個搜救階段的主要進行地點和負責(zé)機構(gòu)以及它們之間的關(guān)聯(lián)關(guān)系。用戶在搜索“天津濱海爆炸”時,是需要了解整個事件的起因、損失情況、救援過程、相關(guān)企業(yè)信息、民眾觀點等各方面信息。目前,搜索引擎不能滿足用戶這種對大規(guī)模互聯(lián)網(wǎng)數(shù)據(jù)的深層次聚合分析的需求。用戶只能先通過搜索引擎或其他應(yīng)用獲取相關(guān)網(wǎng)頁列表,然后逐一閱讀每個網(wǎng)頁來對相關(guān)內(nèi)容進行理解和匯總,才能總結(jié)出這些檢索結(jié)果中蘊含的高階知識。這一過程非常耗時耗力,而在互聯(lián)網(wǎng)大數(shù)據(jù)時代,用戶也不可能逐一閱讀所有相關(guān)文檔。例如在“馬航失聯(lián)”事件上,百度搜索引擎返回的相關(guān)文檔有500多萬篇,超出了普通用戶可以閱讀的范圍。用戶迫切需要一種新的能夠幫助用戶完成復(fù)雜分析任務(wù)的系統(tǒng)。和互聯(lián)網(wǎng)搜索引擎提供的“搜索”功能不同,該系統(tǒng)能夠?qū)A炕ヂ?lián)網(wǎng)大數(shù)據(jù)進行深入分析,因此稱之為“互聯(lián)網(wǎng)分析引擎”。互聯(lián)網(wǎng)分析引擎就像一個“超人”,代替普通用戶完成對大規(guī)模文檔的閱讀和理解,并對其中所包含的關(guān)鍵信息與知識進行抽取、挖掘和匯總,并最終通過交互式的分析過程讓用戶對挖掘到的高階知識進行瀏覽和分析,進而為用戶決策提供支持。本文將介紹互聯(lián)網(wǎng)分析引擎設(shè)計構(gòu)架與數(shù)據(jù)處理流程,并對其中關(guān)鍵研究問題進行詳細闡述。
2 互聯(lián)網(wǎng)分析引擎
分析引擎旨在提供給用戶一個基于海量互聯(lián)網(wǎng)大數(shù)據(jù)的多維分析服務(wù),而不僅僅是搜索。搜索引擎重點解決“用戶需求的信息在哪里”。給定用戶查詢后,搜索引擎返回網(wǎng)頁或網(wǎng)站列表。例如,若用戶查詢“霧霾”,搜索引擎可返回一系列關(guān)于霧霾的網(wǎng)頁和新聞。很多情況下,返回的結(jié)果并不能直接滿足用戶的信息需求。用戶仍然需要自己瀏覽、總結(jié)和歸納文檔中相關(guān)信息。而分析引擎試圖在滿足用戶信息需求的方向上邁進一步,除了找到相關(guān)結(jié)果外,還要重點回答“這些相關(guān)信息從統(tǒng)計上有什么特征”。一個簡單的分析引擎中查詢“霧霾”的部分輸出結(jié)果示例如圖1所示。該分析引擎可返回霧霾成因、霧霾治理、霧霾成分等維度的內(nèi)容以及它們的重要性,還可返回關(guān)于霧霾的機構(gòu)、地點、人物、話題、事件等維度以及它們在互聯(lián)網(wǎng)上的熱度隨時間變化的趨勢。分析引擎還允許用戶在分析結(jié)果上進行交互。例如,用戶在分析結(jié)果上選擇人物“柴靜”,則可進一步分析出在霧霾這一問題上,與柴靜相關(guān)的互聯(lián)網(wǎng)信息中其他各維度內(nèi)容的分布情況:相關(guān)的最熱話題是“穹頂之下”,相關(guān)話題的討論時間范圍是2015年2-3月,這個子話題的相關(guān)人物還包括陳吉寧等。
圖 1 分析引擎中查詢“霧霾”的交互式結(jié)果示例
2.1 與搜索引擎的對比
互聯(lián)網(wǎng)分析引擎和現(xiàn)在廣泛使用的互聯(lián)網(wǎng)搜索引擎的功能對比如圖2所示。在搜索引擎的處理邏輯中,文檔是基本的檢索單位。搜索引擎的核心任務(wù)是匹配用戶查詢詞q和互聯(lián)網(wǎng)上存在的文檔d,計算它們的相關(guān)性,進而篩選出滿足用戶意圖的文檔子集,并按照相關(guān)性高低進行排序輸出。近年來,雖然各大商業(yè)搜索引擎也在不斷改變和豐富SERP(search result page,搜索結(jié)果頁面)的內(nèi)容,例如集成知識圖譜搜索的內(nèi)容,但搜索結(jié)果的主體仍然是網(wǎng)頁列表。與搜索引擎類似,互聯(lián)網(wǎng)分析引擎也以查詢詞為用戶需求的基本表達方式,這一方式延續(xù)了這一簡單的輸入方式給用戶帶來的便利性。但分析引擎打破了搜索引擎的模式。
圖 2 搜索引擎和分析引擎功能
第一,系統(tǒng)返回的不再是簡單的文檔列表,而是高階知識k。這些知識往往不以具體的形式存在于某個特定互聯(lián)網(wǎng)文檔中,必須對大量文檔內(nèi)容進行理解分析和統(tǒng)計后才能得到。
第二,分析引擎額外強調(diào)了時間維度。一方面,分析引擎期望對歷史所有文檔進行統(tǒng)計分析,結(jié)果中可明確地對時間維度進行建模和分析,而現(xiàn)在的搜索引擎一般僅對最新版本的網(wǎng)頁進行抓取和處理,這往往忽略了時間維度上所隱含的有用信息;另一方面,在分析引擎中,所處理文檔的生成時間和查詢時間的間隔要盡量小,即強調(diào)分析結(jié)果的實時性,而普通的搜索引擎對時效性的要求并不高。
第三,傳統(tǒng)搜索引擎能夠主要通過簡單結(jié)果列表的方式展示檢索結(jié)果,而互聯(lián)網(wǎng)分析引擎的結(jié)果展現(xiàn)和用戶交互方式更接近數(shù)據(jù)倉庫系統(tǒng)中的OLAP(online analytical processing,在線聯(lián)機分析處理)系統(tǒng)[3,4]。主要通過折線圖、直方圖、面積圖、堆積圖、餅圖、多坐標軸圖等統(tǒng)計圖表的形式對基于文本立方體的分析結(jié)果進行展示,并允許用戶基于這些圖表進行鉆取(drill-up和drill-down)、切片(slice)、切塊(dice)以及旋轉(zhuǎn)(pivot)等操作,以完成對相關(guān)內(nèi)容的全方位分析。搜索引擎和分析引擎的其他對比見表1。
表 1 搜索引擎和分析引擎對比
口口高效率的檢索系統(tǒng)和高質(zhì)量的檢索結(jié)果是獲得準確分析結(jié)果的前提?;ヂ?lián)網(wǎng)搜索引擎的底層技術(shù)對實現(xiàn)高性能、高質(zhì)量的分析引擎提供了基礎(chǔ)。互聯(lián)網(wǎng)搜索引擎主要采用倒排表的方式對文檔進行全文索引,并通過對查詢詞對應(yīng)的倒排索引列表進行高效的集合操作來匹配文檔和查詢關(guān)鍵詞。搜索引擎在這種高效文檔匹配的相關(guān)技術(shù)上已經(jīng)非常成熟。給定查詢詞,搜索引擎通常可以在毫秒級別的時間內(nèi)從數(shù)十億的互聯(lián)網(wǎng)文檔中匹配到相關(guān)文檔,選擇出相關(guān)性最高的前N個結(jié)果返回給用戶。在這個過程中應(yīng)用了一系列技術(shù)來提高系統(tǒng)性能。例如,通過對文檔進行預(yù)處理以便進行高效的Top k文檔初選[5],從而大大減少后續(xù)操作涉及的文檔數(shù)量。文檔相關(guān)性打分等操作僅僅需要在小規(guī)模的滿足初選條件的文檔集上進行,這將大幅度提高檢索性能。并且僅僅需要對要顯示給用戶的某一頁文檔(通常是10個)生成摘要,而不是對所有匹配文檔都生成摘要,也大大節(jié)省了磁盤讀取和CPU計算代價。而在互聯(lián)網(wǎng)分析引擎中,搜索引擎中的某些優(yōu)化策略將不再生效。例如,分析引擎通常需要對匹配到的所有文檔進行匯總和計算。如果僅僅在返回的前幾個結(jié)果上應(yīng)用分析操作,則很可能因為數(shù)據(jù)量不足導(dǎo)致分析結(jié)果不準確。這意味著分析引擎的I/O和CPU開銷將遠遠高于搜索引擎。
2.2 與OLAP技術(shù)的區(qū)別和聯(lián)系
OLAP系統(tǒng)[3,4]是一種基于結(jié)構(gòu)化數(shù)據(jù)和數(shù)據(jù)倉庫的分析系統(tǒng),專門用于支持復(fù)雜的分析操作,側(cè)重對決策人員和高層管理人員的決策支持。最為常見的方法就是基于多維數(shù)據(jù)構(gòu)建數(shù)據(jù)立方體(cube)模型。通過大量的預(yù)聚集計算,生成支持多維分析的數(shù)據(jù)立方體,并在此基礎(chǔ)上支持下鉆、上卷、切片、切塊、旋轉(zhuǎn)等OLAP操作[6~8]。
OLAP主要構(gòu)建在結(jié)構(gòu)化數(shù)據(jù)的基礎(chǔ)上,而互聯(lián)網(wǎng)分析引擎處理的對象則主要是非結(jié)構(gòu)化的互聯(lián)網(wǎng)文檔,如網(wǎng)頁、微博、帖子等。與傳統(tǒng)的OLAP多維分析技術(shù)相比,互聯(lián)網(wǎng)分析引擎的挑戰(zhàn)更大,主要原因如下。
數(shù)據(jù)無結(jié)構(gòu)。大部分互聯(lián)網(wǎng)文檔是無結(jié)構(gòu)的文本數(shù)據(jù),無法像結(jié)構(gòu)化數(shù)據(jù)一樣預(yù)定義數(shù)據(jù)模式(schema),因此處理起來更為復(fù)雜。例如在電信業(yè)大數(shù)據(jù)中,基本的通話記錄可由主叫號碼、被叫號碼、通話時長、主叫地點、被叫地點等可枚舉的強類型字段構(gòu)成,并且這些字段的值一般可由數(shù)據(jù)源直接獲取。文本數(shù)據(jù)一般由自然語言生成,每個無模式的文檔記錄由不定個數(shù)的單字構(gòu)成,不具有可確定的字段。
依賴于復(fù)雜的自然語言理解技術(shù)。如前所述,文本數(shù)據(jù)一般由自然語言生成。如果希望在單字的基礎(chǔ)上進一步理解文本包含的語義和知識,例如理解文本包含的實體(人、地點、機構(gòu)、時間等),則要依賴于復(fù)雜的文本挖掘和自然語言理解技術(shù)。通過自然語言理解技術(shù)獲取結(jié)構(gòu)化內(nèi)容的準確性往往依賴于所采用的分析技術(shù),因此分析引擎中數(shù)據(jù)中的不確定性因素更多,可疑性(veracity)更高。
開放主題。文本數(shù)據(jù)的主題和值域是開放的。在傳統(tǒng)的分析服務(wù)中,每個應(yīng)用的主題是唯一或者有限的。在整個數(shù)據(jù)集一般可建立有限個數(shù)的數(shù)據(jù)立方體,通過固定的維度(如區(qū)域和時間等)對其進行統(tǒng)計和分析。而互聯(lián)網(wǎng)數(shù)據(jù)的主題是開放的。例如,每天的互聯(lián)網(wǎng)文檔可能是在分別描述成千上萬個無任何關(guān)系的主題,每個主題所涉及的維度和文檔可能完全不同,其復(fù)雜度遠遠高于OLAP系統(tǒng)。
近年來也有部分學(xué)者開始研究如何將OLAP技術(shù)應(yīng)用在分析大規(guī)模互聯(lián)網(wǎng)數(shù)據(jù)上。但目前的研究主要針對語義網(wǎng)和RDF數(shù)據(jù)[9,10]。如何將OLAP技術(shù)應(yīng)用在大規(guī)?;ヂ?lián)網(wǎng)文檔上來實現(xiàn)互聯(lián)網(wǎng)分析引擎,仍然是一個未被深入研究和討論的問題。
2.3 小結(jié)
事實上,在數(shù)據(jù)庫和數(shù)據(jù)挖掘領(lǐng)域,OLAP是為了解決OLTP(online transaction processing,在線事務(wù)處理)系統(tǒng)分析處理能力低下的問題而被提出的。在互聯(lián)網(wǎng)上,搜索引擎相當(dāng)于一個OLTP系統(tǒng)。用戶的每一個查詢,搜索引擎都能快速地返回檢索結(jié)果集。但和OLTP的問題類似,搜索引擎無法有效支持分析處理的需求,而互聯(lián)網(wǎng)分析引擎也正是為了解決這一問題而生。因此,可以把互聯(lián)網(wǎng)分析引擎看作互聯(lián)網(wǎng)搜索引擎和OLAP技術(shù)的合體,或者說互聯(lián)網(wǎng)分析引擎是面向海量互聯(lián)網(wǎng)非結(jié)構(gòu)化大數(shù)據(jù)的OLAP系統(tǒng)。
3 互聯(lián)網(wǎng)分析引擎的設(shè)計
如前所述,互聯(lián)網(wǎng)分析引擎和搜索引擎及OLAP系統(tǒng)都是緊密相關(guān)的,在設(shè)計分析引擎時,可充分吸收和利用現(xiàn)有系統(tǒng)和算法中的優(yōu)點,并將二者進行有機結(jié)合。簡單的想法是先通過搜索引擎技術(shù)檢索到相關(guān)文檔,然后利用OLAP分析技術(shù)對檢索結(jié)果進行分析。
一個簡單的互聯(lián)網(wǎng)分析系統(tǒng)架構(gòu)如圖3所示。整個系統(tǒng)分為離線處理和在線處理兩個部分。離線部分主要完成數(shù)據(jù)獲取并將文本處理成結(jié)構(gòu)化數(shù)據(jù),對結(jié)構(gòu)化數(shù)據(jù)進行索引。在線處理部分主要完成相關(guān)文檔檢索并基于檢索到的結(jié)果,對其中包含的結(jié)構(gòu)化知識信息進行高效率的匯總分析操作。
圖 3 分析引擎架構(gòu)
3.1 離線處理
離線部分主要包括互聯(lián)網(wǎng)數(shù)據(jù)采集、文檔理解及結(jié)構(gòu)化數(shù)據(jù)抽取、數(shù)據(jù)索引等幾個部分。
數(shù)據(jù)采集部分與搜索引擎中的數(shù)據(jù)采集系統(tǒng)類似,使用網(wǎng)絡(luò)爬蟲對互聯(lián)網(wǎng)內(nèi)容進行抓取。但互聯(lián)網(wǎng)分析引擎在數(shù)據(jù)抓取時還需要考慮抓取周期和抓取策略對最終分析結(jié)果的影響,避免因為數(shù)據(jù)抓取不及時或者數(shù)據(jù)來源分布不均衡而影響分析結(jié)果的一致性和可比性。
文檔理解部分主要是利用自然語言處理及信息檢索技術(shù),對互聯(lián)網(wǎng)文檔內(nèi)容進行深入分析,從無結(jié)構(gòu)的文本數(shù)據(jù)中抽取結(jié)構(gòu)化信息,并將這些結(jié)構(gòu)化數(shù)據(jù)作為該文檔的屬性或字段進行存儲。將無結(jié)構(gòu)的互聯(lián)網(wǎng)文檔轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù)后,才能應(yīng)用OLAP等多維分析技術(shù)對文檔進行分析。可進行的文本理解工作包括:文檔正文及相關(guān)屬性(標題、時間、作者、主要圖片等)抽取、文檔內(nèi)容段落及句子切分、文本分詞、命名實體(時間、地點、人物、機構(gòu)等)識別、動詞、專有名詞抽取、情感分析及情感詞抽取、關(guān)鍵詞抽取、引言、語錄抽取、知識庫實體匹配及消歧等。
數(shù)據(jù)索引部分對互聯(lián)網(wǎng)文檔內(nèi)容建立高效索引,以支撐高效的在線檢索和分析操作。與搜索引擎類似,在文檔內(nèi)容上建立倒排索引,用以支持基于關(guān)鍵詞的文檔檢索。而對于從文檔中抽取出來的結(jié)構(gòu)化屬性,則可能既需要建立倒排索引,也需要建立正向索引。倒排索引用于在切片和切塊過程中快速匹配篩選維度,而正向索引用于快速獲取自定文檔的屬性。
3.2 在線處理
在線處理部分負責(zé)接收用戶查詢,檢索相關(guān)文檔,并應(yīng)用OLAP技術(shù),快速檢索、構(gòu)建或更新文本立方體。在整個在線處理流程中,基于信息檢索和搜索引擎的積累,檢索相關(guān)文檔所用的時間較短。在進行多維分析時,需要讀取到所有相關(guān)文檔的結(jié)構(gòu)化屬性內(nèi)容,并需要對這些內(nèi)容按照維度進行匯總和計算操作。與檢索相關(guān)文檔相比,在檢索結(jié)果上進行多維分析的時間代價要高得多。
提供可靠、可信、有理有據(jù)的分析結(jié)果是互聯(lián)網(wǎng)分析引擎能夠?qū)嵱貌⑶彝茝V的前提條件。互聯(lián)網(wǎng)分析引擎對質(zhì)量控制和可信度評估的相關(guān)技術(shù)要求要遠遠高于搜索引擎。搜索引擎采用了垃圾網(wǎng)頁識別技術(shù),盡量減少低質(zhì)量網(wǎng)頁出現(xiàn)的幾率,提高用戶滿意度。但事實上,搜索引擎為用戶返回的是在互聯(lián)網(wǎng)上真實存在的文檔(即使是低質(zhì)量的網(wǎng)頁),因此從某種意義上講,搜索引擎中不存在數(shù)據(jù)可靠性問題,因為用戶需要自己閱讀網(wǎng)頁內(nèi)容、判別真?zhèn)尾⑿纬山Y(jié)論。而在分析引擎中,系統(tǒng)為用戶返回的不僅僅是真實存在的網(wǎng)頁,而且包括通過加工處理和聚合匯總后的數(shù)據(jù),如果這些數(shù)據(jù)是錯誤或者有偏差的,則很可能直接導(dǎo)致用戶形成錯誤的結(jié)論。因此,在分析引擎中,從數(shù)據(jù)采集、處理和分析的各個步驟,都需要進行適當(dāng)?shù)馁|(zhì)量控制。例如,在進行數(shù)據(jù)采集時,適當(dāng)控制數(shù)據(jù)采集的廣度,避免片面采集某一網(wǎng)站的數(shù)據(jù)而造成偏差。同時,在各個關(guān)鍵環(huán)節(jié)需要評估各處理對最終結(jié)果可信度的影響。如何在規(guī)模巨大、更新飛快、復(fù)雜多樣的互聯(lián)網(wǎng)大數(shù)據(jù)上,針對分析引擎的需求進行質(zhì)量控制和可信度評估,是非常困難但也非常重要的研究課題。
4.2 大規(guī)模文本立方體管理
文本立方體是對某一查詢匹配的文檔中包含的結(jié)構(gòu)化屬性數(shù)據(jù)進行統(tǒng)計并建立的多維數(shù)據(jù)立方體?;ヂ?lián)網(wǎng)分析引擎中每個開放的主題或者每個查詢都可以建立一個對應(yīng)的文本立方體。不同的查詢都可以有不同維度和度量值的文本立方體,而且可以獨立管理。例如,查詢“馬航失聯(lián)”對應(yīng)了一個文本立方體,而“霧霾”則對應(yīng)了另外一個文本立方體,這兩個文本立方體中的數(shù)據(jù)、維度和值項都可以是不同的。單個文本立方體的規(guī)模可能小于傳統(tǒng)的數(shù)據(jù)立方體,但會有大量小規(guī)模的文本立方體(many small cube)。這種大量小立方體的分析管理方式最大的優(yōu)點是靈活,每個查詢都可以進行單獨的維度和度量值管理,而且對每個小立方體的創(chuàng)建和更新不影響其他立方體。同時,這種設(shè)計也便于擴展(scale out),當(dāng)用戶或查詢數(shù)量增加時,可以簡單地增加服務(wù)器,并將立方體均勻分布在所有服務(wù)器上即可完成系統(tǒng)復(fù)雜均衡。LinkedIn公司的Wu等人[11]開發(fā)了針對互聯(lián)網(wǎng)級別OLAP分析的系統(tǒng)Avatara,解決了大量小立方體的問題,可以嘗試在互聯(lián)網(wǎng)分析引擎中應(yīng)用。
除了創(chuàng)建和管理大量小規(guī)模文本立方體外,分析引擎中也可以試圖整合所有文本立方體而創(chuàng)建一個超大的通用文本立方體(one giant cube)。該超級立方體中包含所有互聯(lián)網(wǎng)文檔以及所有可能的維度及度量值。這種方式的好處是減少了大量文本立方體管理的代價。這種方式的問題是如果某個查詢或某類查詢下的分析維度發(fā)生變化時,很可能需要重新對整個立方體進行重建操作。當(dāng)查詢之間維度設(shè)置差異較大時,在某些查詢下進行相關(guān)維度的查詢和分析的代價可能要高于多個小文本立方體的設(shè)置。在系統(tǒng)擴展方面,單個超級立方體的配置下對網(wǎng)絡(luò)之間的同步以及負載均衡的管理機制更為復(fù)雜。
無論是哪種方式,如何高效地進行文本立方體管理都是互聯(lián)網(wǎng)分析引擎要解決的核心問題,也是難點之一。文本立方體內(nèi)部存儲結(jié)構(gòu)如何設(shè)計、如何高效地創(chuàng)建文本立方體、如何動態(tài)更新立方體、如何存儲和管理大量大規(guī)?;虼罅课谋玖⒎襟w,都是非常重要的研究問題。此外,互聯(lián)網(wǎng)分析引擎對數(shù)據(jù)的實時性要求較高,在文本立方體更新和查詢操作的同步上也需要仔細斟酌。
4.3 分析維度挖掘與排序
互聯(lián)網(wǎng)分析引擎的核心目標是為用戶提供準確且有效的多維分析結(jié)果。除了前文介紹的質(zhì)量控制和可行度評估外,如何挖掘出高價值的分析維度和度量項、如何對維度中的內(nèi)容進行排序等也都是需要解決的問題。
在維度發(fā)現(xiàn)與挖掘方面,一方面可預(yù)設(shè)一些通用性的維度,如時間、人物、機構(gòu)、地點等。同時,還需要在這些基本維度的基礎(chǔ)上,挖掘出和用戶查詢主題相關(guān)的個性化維度。例如對于查詢“糖尿病”,挖掘出“類型”、“癥狀”、“藥物”、“醫(yī)院”、“醫(yī)生”等相關(guān)維度;對于查詢“過失失火”,可自動挖掘出“刑罰”和“罪名”等維度。只有這樣,才能使分析引擎的輸出結(jié)果變得有用且有趣,才能真正滿足用戶真實的信息需求??蛇x的方法是分領(lǐng)域創(chuàng)建維度列表并在離線部分對文檔內(nèi)容和維度列表進行匹配,在線通過分類的方法確定查詢所屬的領(lǐng)域來獲取相關(guān)維度。維度的生成可以通過統(tǒng)計分析查詢所匹配的文檔中包含的屬性及結(jié)構(gòu)化數(shù)據(jù)進行自動聚類和加權(quán),進而自動選出最相關(guān)的維度。
在維度及度量項排序方面,在基于OLAP的分析模型下,用于建立文本立方體的每一條數(shù)據(jù)都需要提供一個度量值,該度量值決定了在最終文本立方體中每個統(tǒng)計項的權(quán)重。和傳統(tǒng)的數(shù)據(jù)立方體(例如基于業(yè)務(wù)數(shù)據(jù)生成的立方體)不同,在文本立方體中沒有直接的度量值可以使用。文本立方體中的度量值可以通過不同的方法生成,從數(shù)據(jù)獨立性的角度上可以分為下面3種不同類型的度量值。
全局一致的度量值。每個文檔(記錄)的度量值一致,最簡單的是每個文檔的度量值都為1。
與維度值無關(guān)的度量值。度量值和記錄有關(guān),但和記錄中包含的維度無關(guān)。例如,考慮到報道的可靠性,所有來自“新浪網(wǎng)”的報道的度量值高于來自“回龍觀社區(qū)網(wǎng)”的報道的度量值。此外,還可考慮應(yīng)用信息檢索模型來估計文檔和主題(查詢)的相關(guān)性[12~20],例如,若某個文檔和查詢的相關(guān)性較高,則其度量值較大。
和維度相關(guān)的度量值。進一步考慮文檔(記錄)和維度的緊密程度,如對于相關(guān)人物A,考慮人物A在文檔D中出現(xiàn)的次數(shù)、出現(xiàn)的位置、所在句子的長短等特征,并同時考慮報道的來源,從而計算人物A在文檔D中的度量值。而對于另一相關(guān)人物B,即使同樣出現(xiàn)在文檔D中,因為人物B的出現(xiàn)次數(shù)及位置和人物A不同,人物B的度量值也可能和人物A不同。
和搜索引擎中的搜索結(jié)果排序模型一樣,在分析引擎中的維度以及度量項排序是非常重要但也是非常復(fù)雜的。分析維度挖掘與排序方法是互聯(lián)網(wǎng)分析引擎要重點研究的問題之一。
4.4 數(shù)據(jù)采樣與摘要技術(shù)
因為分析引擎中處理的互聯(lián)網(wǎng)文檔數(shù)量非常龐大,而一個查詢特別是熱點查詢往往可以匹配上大量的相關(guān)文檔。在分析引擎中,匹配文檔代價較低,而對相關(guān)文檔上相應(yīng)結(jié)構(gòu)化數(shù)據(jù)的匯總分析和維度生成等操作則具有較高的I/O和計算代價。因此,當(dāng)數(shù)據(jù)量太大的時候,在不影響分析結(jié)果質(zhì)量的前提下,可以考慮對匹配到的結(jié)果集進行采樣、摘要和壓縮操作。在數(shù)據(jù)采樣方面,在建立多維模型的時候不能對維度和子主題的優(yōu)先級進行任何假設(shè),對于任何子主題的數(shù)據(jù)搜集,都需要保證搜集到足夠多的填充數(shù)據(jù)來體現(xiàn)它的真實語義,力圖花費最小的代價重構(gòu)一個子主題內(nèi)部的信息點覆蓋??山Y(jié)合維度排序以及維度中包含的值的可信度來估計采用規(guī)模。同時,對周期性和長期熱點話題采用可合并式數(shù)據(jù)摘要,并和文本立方體結(jié)合,力圖通過選擇性地保留一部分原始數(shù)據(jù)和總體上的摘要數(shù)據(jù),便能夠達到與使用全部數(shù)據(jù)類似分析效果的目的。同時,結(jié)合前文介紹的可信度評估方法,準確計算出各種采用和摘要方法對最終分析效果的影響,力圖在系統(tǒng)效率和效果之間達到一個合理的平衡點。
5 結(jié)束語
在互聯(lián)網(wǎng)大數(shù)據(jù)時代,用戶對獲取互聯(lián)網(wǎng)上蘊含的高階知識的需求也越來越強烈。傳統(tǒng)的搜索引擎已經(jīng)不能很好地滿足用戶對互聯(lián)網(wǎng)文檔進行深入分析與理解的需求,迫切需要發(fā)展到“互聯(lián)網(wǎng)分析引擎”,為用戶提供更為便利的信息獲取與分析工具?;ヂ?lián)網(wǎng)分析引擎比互聯(lián)網(wǎng)搜索引擎和OLAP系統(tǒng)更復(fù)雜,涉及一系列需要解決的研究難點問題,具有廣闊的研究和發(fā)展空間。