【關鍵詞】專利信息抽取 負載均衡。
1 引 言
1.1 需求分析。
德溫特創新索引(Derwent Innovation Index,DII)[1]是專利研究領域重要的數據來源,在課題組研究中,發現并總結了專利數據獲取過程中的問題如下: 雖然德溫特專利數據庫提供多種檢索方式,但檢索結果導出的形式卻比較有限(例如 HTML 或純文本格式) ,不利于數據分析階段的處理; 從所包含內容的角度,德溫特專利數據庫僅為摘要庫,不包含專利文檔原文; 專利分析與研究領域大數據的特征日益顯著,信息獲取的速度和效率需要提升。
針對上述實際問題和現有專利信息獲取軟件的功能,確定系統需求如下:
(1) 基于多 Agent(Mutil - Agent) 平臺,構建德溫特專利信息抽取系統。以用戶下載到本地的專利 HTML 文檔作為系統輸入,抽取文檔中的信息并存儲到本地數據庫中;
(2) 主要面向 USPTO[2]專利數據庫提供專利詳細信息的抽取,通過多 Agent 系統的消息機制實現上述過程的協同;
(3) 針對大數據處理效率的問題,設計并構建分布式系統。其中,本地服務器用于德溫特專利信息抽取,異地服務器負載的計算和任務分發,部署在異地的服務器用于任務接收、負載情況反饋和面向 USPTO 專利數據庫的專利詳細信息獲取。
1.2 國內外研究現狀。
在信息抽取領域中多 Agent 系統的研究方面,Bedi等[3]基于多 Agent 系統的體系結構,提出將定制 Web 搜索與信息線索相整合,設計并實現了網頁信息檢索與抽取系統。Pavlin 等[4]提出了支持構建模塊化的貝葉斯融合系統的設計策略和方法論,面向大量異構的含噪聲信息,使用多 Agent 系統完成分布式的信息抽取和貝葉斯信息融合。Jumadinova 等[5]研究了多 Agent 系統用戶獲取、分析相關數據用以對市場進行預測。國內方面,張俊等[6]將多 Agent 系統應用于數據處理(數據抽取、轉換、加載) 領域,基于 Agent 之間的協作機制進行實時ETL(Extract - Transform - Load) ,提高了數據加載和更新的效率; 翟東升等[7]基于多 Agent 系統,使用 XML 模板,設計并實現了 USPTO 專利抽取系統。綜上,多 Agent系統具有模塊化程度高、結構開放程度高、并行性等優勢,適合用于解決信息抽取領域并行處理多目標的任務,且當前的應用范圍較為廣泛。隨著大數據特征的日益凸顯,將多 Agent 系統分布式計算與抽取規則引擎相結合完成信息抽取可以大大提升專利信息獲取的效率和靈活性,滿足迅速增長的數據采集需求。
在分布式系統的負載均衡機制研究方面,Kunz[8]認為,采用簡單因子進行負載均衡就可以使系統效率顯著提升,并且不同因子對系統效率的影響具有較大差異; 針對服務器計算能力不同但各通信參數一致的情況,Bahi[9]提出異步負載均衡迭代算法并驗證了算法的有效性。國內方面,馬雪梅[10]認為,對一個分布式系統而言,負載均衡的實現是系統整體效率提升的關鍵,并提出了負載均衡指標體系建立的方法論; 王春娟[11]提出了一種針對 Web 集群的負載均衡算法。綜上,當前的文獻表明,存在一些具有普適性的指標,例如網絡速度、內存空閑率和 CPU 使用率等。并且,分布式系統的負載均衡指標選擇應考慮簡單性以及低耦合性。上述負載均衡調度算法的應用對象是一般分布式系統(如分布式網絡服務器等) ,但基于 Agent 系統的專利信息抽取工作具有其自身特點(如 Agent 的協作情況等) ,因此在研究中需要結合實際情況對負載均衡機制進行重新設計和應用。另外,基于 Agent 的分布式系統調度特性具有與人類感官直覺相類似的特點,有利于負載均衡機制的設計與效率提升。
2 系統流程與架構
明確系統開發需求后,構建系統工作流程與系統架構。系統工作流程如圖 1 所示:
(1) 用戶在德溫特專利數據庫中檢索所需專利并下載 HTML 格式的專利信息頁面作為系統輸入;
(2) 進行專利抽取并將信息存儲在本地數據庫,向用戶反饋專利信息,并由用戶選擇需要獲取詳細信息的專利;
(3) 將詳細信息抽取任務分發給部署在異地的服務器,即詳細信息采集集群,任務分發的策略須考慮負載均衡;
(4) 各詳細信息抽取模塊構造在 USPTO 專利數據庫中的原始專利信息頁面的 URL,并將詳細的專利信息下載至本地數據庫,提供相關統計信息作為系統輸出。
系統總體架構如圖 2 所示:
由底層向上,分別為硬件資源層、軟件平臺層、核心組件層和系統功能層。硬件資源即為系統硬件基礎,以它為基礎搭建軟件平臺層,即系統的若干相關技術和開發平臺; 核心組件層是將系統功能與關鍵技術相關聯的核心中間件,根據系統的應用實際,將該部分抽象為 4 個模塊,便于未來增加其他功能或功能升級;系統功能層為與核心組件層的模塊相對應的工具包,為用戶提供相關服務。
3 系統設計
系統劃分為如下功能模塊: DII 專利信息抽取模塊、任務分發模塊和 USPTO 專利信息抽取模塊,如表1 所示:
上述功能模塊中,本文主要研究內容是模塊 1 和模塊 2,模塊 3 部分重用課題組的研究成果[12],對相關內容進行改寫。模塊開發策略方面,使用多 Agent.
3.1 DII 專利信息抽取模塊設計。
模塊輸入為用戶下載的德溫特專利信息文檔,格式為 HTML! 基于模板對文檔中的專利信息進行抽取,并將抽取結果存入本地數據庫。
為實現該模塊功能設計如下 Agent:
①用戶接口 Agent,用于用戶與系統間的信息交互,提供GUI,便于用戶對系統進行操作。
②中心控制 Agent,是本模塊的控制核心,它將用戶的操作指令提交至相關二級調度 Agent! 并在任務完成后,向下一通信節點轉發相關信息。
③爬行控制 Agent,用于接收任務消息后及時進行任務分發,綜合調度爬行 Agent,使其完成頁面信息爬取任務,并上報最終結果。
④抽取控制 Agent,用于依據抽取 Agent 的實時情況分配抽取任務。
⑤爬行 Agent,為該系統功能模塊的實際任務完成者之一。用于解析流文件形式的專利信息 HTML 頁面,并轉換為StringBuffer 形式存儲在內存中以便于后期的信息抽取。
⑥抽取 Agent,為該系統功能模塊的實際任務完成者之一。用于預處理內存中的專利信息,將其格式轉化為標注的XML 文件,然后抽取其中信息映射到本地數據庫。
該模塊整體架構如圖 3 所示:
(1) 用戶接口 Agent.
用戶接口 Agent 包括兩個組成部分: 前臺界面 GUI和后臺控制 Agent 類。前臺 GUI 用于實現用戶交互,后臺 Agent 用于傳送用戶請求,即通過 Jade 平臺的黃頁服務與中心控制 Agent 進行通信,轉發用戶請求至中心控制 Agent,并由其進行調度以實現系統功能。
(2) 中心控制 Agent.
中心控制 Agent 是系統的一級調度模塊,也是本模塊控制的核心。其主要任務為用戶接口 Agent 與二級調度 Agent 之間的通信。其信息時序圖如圖4 所示。
在接收到用戶接口 Agent 發送的構建 Agent 任務后,中心控制 Agent 首先將消息內容進行切分。將構建參數中的信息分類,并按照其所需構造 Agent 的種類將消息打包,轉發給爬行控制 Agent 及抽取控制Agent.當接收到 Agent 構造完成的消息后,中心控制Agent將其整合,并發送給用戶接口 Agent,以示完成Agent的構造過程。當接收到用戶接口 Agent 發送的抽取任務消息時,中心控制 Agent 對其進行解析,若任務參數路徑正確,則向爬行控制 Agent 轉發此消息,由其完成專利頁面爬行任務。當接收到頁面爬行任務完成的信息時,中心控制 Agent 向抽取控制 Agent 轉發該消息,由其基于頁面爬行的結果實現數據抽取任務。抽取任務完成后,抽取控制 Agent 發送信息抽取完畢的消息,中心控制 Agent 將其轉發至用戶接口 Agent,向用戶反饋抽取任務完成。
(3) 爬行子模塊。
爬行子模塊主要包含爬行控制 Agent 和爬行Agent兩類。爬行控制 Agent,用于注冊爬行 Agent,并調度其完成頁面信息爬??; 爬行 Agent,用于接收相關專利信息爬取任務,并上報爬取結果。該子模塊的基本信息流時序圖如圖 5 所示:
在接收到構造爬行 Agent 任務后,爬行控制 Agent將獲取到相關構造參數,并將其傳送至動態創建 Agent的方法中,以實現爬行 Agent 的構建。當接收到中心控制 Agent 發送的任務時,爬行控制 Agent 通過其 Cy-clicBehaviour 行為進行任務分發。當爬行 Agent 任務完成后,將狀態修改為空閑并發送消息。最后,由爬行控制 Agent 向中心控制 Agent 發送頁面爬行任務完成的消息。
(4) 抽取子模塊。
抽取子模塊包含抽取控制 Agent 和抽取 Agent.其中,抽取控制 Agent 主要用于接收消息并調度抽取Agent 完成對爬行 Agent 所爬取頁面信息進行格式轉換和面向本地數據庫的數據映射。其調度過程與爬行子模塊類似,這里不再贅述。
3.2 任務分發模塊設計。
任務分發模塊由用戶接口 Agent 和任務控制Agent兩部分構成。其中,用戶接口 Agent 用于將抽取的德溫特專利信息向用戶展示,提供 GUI 供用戶選擇所需的專利詳細內容,用戶對相關專利做出選擇后,向任務控制 Agent 傳送該信息。任務控制 Agent 主要用于接收用戶接口 Agent 發送的任務信息,并在自身任務池中存儲待抽取詳細信息的專利號。對部署在異地的服務器進行狀態輪詢,并計算其負載情況,依據此分發任務。該模塊的總體設計如圖 6 所示:
任務控制 Agent 是分布式系統負載情況的計算核心以及與異地服務器進行通信的核心。它與異地服務器之間的信息交互時序圖如圖 7 所示。
部署在異地的服務器在注冊中心控制 Agent 時,會首先向任務控制 Agent 發送相關消息,以示自身注冊已完成并可以接受任務。在接收到來自于用戶接口Agent 的任務執行消息時,任務控制 Agent 從接收到的信息中抽取出相關任務數據并進行格式處理,然后將處理后的具體任務信息排入任務隊列中。之后,對異地服務器狀態進行輪詢,異地服務器會及時反饋自身負載狀態。接收到狀態消息后,任務控制 Agent 將相應服務器的信息加入狀態管道之中并計算全部異地服務器負載狀況,依據此進行任務分配。異地服務器完成詳細信息抽取任務后,返回抽取結果,由任務控制 Agent 轉發至用戶接口 Agent 實現抽取任務完成的反饋。
3.3 分布式多 Agent 系統通信設計。
(1) 任務控制 Agent 與異地服務器的通信機制。
異地通信使用 Agent 平臺的 AMS(Agent Manage-ment System) 服務,這是一個負責管理 Agent 平臺并提供用戶信息數據庫服務的管理 Agent.
其通信方式的步驟如下:
①定位 AMS 通信參數(主機名稱、IP 地址、通信端口);
②使用 AMS 服務獲取其所在容器;
③通過 AMS 服務的靜態方法 Search,獲取該容器中的Agent 列表;
④對列表進行遍歷,搜索到需要通信的異地 Agent.
(2) 異地中心控制 Agent 的消息上報機制。
對 USPTO 專利抽取系統[12]的中心控制 Agent 實施相應改寫。為滿足當前系統要求,為其增加新的行為變量。異地中心控制 Agent 的消息上報機制如圖8 所示:
注冊之后,它將其 IP 地址和端口號等信息打包并發送至任務控制 Agent! 接收信息后,任務控制 Agent將該中心控制 Agent 的 Agent ID(AID) 及通信參數加入 CentreAgentList 列表中,表示該服務器已完成注冊并可以執行任務。當異地中心控制 Agent 注銷時,該Agent 向任務控制Agent上報注銷消息,接收消息后,任務控制 Agent 根據 AID 查詢 CentreAgentList 列表,移除該異地服務器的全部信息,表示該服務器已注銷,不再執行詳細信息抽取任務。
3.4 分布式多 Agent 系統的負載評估體系。
依據多 Agent 系統的特點,使用理論分析結合反復實驗的研究方法,本文確定了如下系統負載均衡的評價指標。
(1) 空閑爬行 Agent 數量(LSa) .根據本系統設計的調度機制,當沒有空閑的爬行 Agent 時,系統會將任務掛起,直到有爬行 Agent 執行完現有任務后,才能為其再次分發任務。因此,在進行負載計算時,空閑爬行Agent 數量是一個重要的指標。
(2) 空閑抽取 Agent 數量(LEa) .系統對于抽取Agent的調度機制與爬行 Agent 的調度機制相似,并且,其任務執行過程涉及若干步驟,較為復雜。因此,在進行負載計算時,空閑抽取 Agent 數量同樣是一個重要的指標。
(3) 空閑引用抽取 Agent 數量(LRa) .引用抽取Agent同樣是系統的任務級 Agent.在 USPTO 的頁面中,將某一專利所引用的其他專利存放于深網頁面中,需要設計引用抽取 Agent,用于動態構建深網頁面的URL 地址,并將相關引用信息暫時存儲于內存中,最終映射至本地數據庫中。因此,也應將其作為負載均衡評價指標之一。
(4) 空閑內存大?。↙Fm) .基于專利研究領域大數據量的特征,系統往往需要處理大規模的專利抽取任務。因此,計算機的性能會較為顯著地影響系統效率。
(5) 異地瞬時網速(LWs) .由于異地服務器需要在線檢索并抽取相關專利詳細信息,網絡速度造成的延遲對系統效率影響較大。
上述 5 個指標均是獨立有效的。其中,前三個指標之間存在多任務間的協作關系,但由于建立了基于調度 Agent 的任務緩沖機制,對于某一隨機任務而言,三個指標仍舊是獨立有效的。
負載均衡算法方面,主要參考王春娟[11]提出的動態反饋負載均衡算法的思想,并基于多 Agent 系統的調度與通信機制做出改進,將其自主反饋機制修改為輪詢式的負載均衡算法,以有效降低系統的通信開銷。
輪詢式負載均衡算法流程如圖 9 所示:
任務控制 Agent 異步輪詢系統的負載情況,在特定情況下觸發其輪詢事件; 輪詢事件被觸發后,任務控制 Agent 向異地中心控制 Agent 問詢 5 個負載均衡評價指標; 針對這些指標,任務控制 Agent 在設計時封裝了它們的最低閾值,這些閾值通過反復實驗得到。若某服務器存在低于閾值的指標數值,則將其掛起,且將空載量記為 0.
對于可以接受任務的服務器(即其未被掛起) ,系統對 5 個指標進行歸一化處理,轉化為 LSa',LEa',LRa',LFm',LWs'! 然后依據預先設定的各項權重值,使用如下公式計算服務器空載 Pi:
其中,指標權重為系統內置,經由反復試驗調整至較好的運行狀態。
最后依據 Pi值進行按比例的任務分發,即 Pi值越高,就被分配越多的詳細抽取任務。
4 原型系統實現與分析
4.1 系統運行平臺。
采用分布式的系統結構和多 Agent 設計模式,開發運行環境如表 2 所示。
4.2 實驗與分析。
(1) DII 專利信息抽取。
共計進行 5 次實驗,檢驗 DII 專利信息抽取模塊的有效性、抽準率和抽取效率。實驗中將爬行 Agent和抽取 Agent 的數量設定為 20,實驗結果如表 3 所示:
從表 3 數據可以看出,DII 專利信息抽取模塊可以從本地的專利信息 HTML 格式文檔中抽取相關信息,并存儲在本地數據庫中; 另外,該模塊的數據處理效率較高,可以支持數據量較大的專利信息抽取。
(2) 任務分發與詳細信息抽取。
使用 DII 專利信息抽取實驗獲取專利信息,進行任務分發與詳細信息抽取的實驗,使用虛擬機模擬三個分布式系統的異地服務器,即詳細信息抽取模塊 1至模塊 3.實驗共進行 6 組,各組具有不同的專利條數,各詳細信息抽取模塊的空載率也通過預設指標值的變化做出改變以驗證詳細任務分發模塊的運行情況,即是否實現了負載均衡。實驗結果如表 4 所示:
從表 4 的實驗數據可以看出:
①對于每個詳細信息抽取模塊,任務條數與其空載率成正比,且二者的增長或減少趨勢大致相同。
②第 6 組實驗中,詳細信息抽取模塊 1 的空載率為 0.這是因為系統預定義的空閑爬行 Agent 和空閑抽取 Agent 數量的下限閾值為 5,而實驗中上述兩類 Agent 的數量為 2 和3,所以該異地服務器處于掛起狀態,不再接受任務。
③每組實驗中,各模塊的任務量分配不一,但用時大致相同。
上述三點能夠說明該分布式多 Agent 系統的負載均衡評價體系的有效性。但由于整體網絡環境以及服務器的運行情況在實驗過程中不能保持恒定,從而導致在有些實驗中任務完成時間的不穩定,這在系統運行中是可以接受的。
通過對比實驗進一步驗證系統負載均衡的有效性。由于目前尚無專門針對分布式多 Agent 信息抽取系統負載均衡算法的相關研究,因此這里采用 Kunz[8]提出的方法,以空閑內存大小這一簡單指標的模型進行對比實驗。實驗結果如表 5 所示:
從表 5 實驗數據可以看出,6 組實驗中三個詳細信息抽取模塊完成任務的時間分布較為離散,其完成任務的最終用時較長,兩種負載均衡算法實驗的任務完成時間對比如圖 10 所示:
其中,實驗完成時間為由三個抽取模塊共同完成專利信息抽取任務的時間,由于三個模塊的工作是并行的,所以任務完成時間即為用時最長的詳細信息抽取模塊所用的時間。經分析認為,這是因為對比實驗中,異地服務器的實際負載沒有實現精確計算,即無法有效實現系統資源的優化配置,出現資源閑置的現象,從而導致系統效率不穩定。
通過對比實驗,可以看出本文提出的負載均衡算法能夠較為準確地反映基于多 Agent 平臺的分布式專利信息抽取系統的負載情況,從而有效地使系統達到負載均衡。
5 結 語
本文設計并實現了分布式的德溫特專利信息抽取系統,系統基于多 Agent 技術構建,以用戶下載的德溫特專利 HTML 文檔作為系統輸入,利用模板進行信息抽取并存儲在本地數據庫中; 針對德溫特專利信息中僅包含摘要信息的局限性,面向 USPTO 專利數據庫,提供用戶可自主選擇的專利詳細信息自動獲取功能。
實驗證明,系統的信息抽取效率較高,且分布式多Agent系統的負載均衡計算方法和通信機制較為有效,可以提供高效、準確的專利信息獲取服務。在未來的研究中,考慮面向更多的專利數據庫提供詳細信息抽取服務; 另外,設想為用戶提供進一步的專利信息預處理,以及統計和分析等服務,擴充系統功能,更好地為專利研究做出有力支撐。
參考文獻:
[1]Derwent Innovations Index[DB/OL].[2013 - 04 - 02].
[2]USPTO Patent Full - Text and Image Database[DB/OL].[2013 -04 - 02].
[3]Bedi P,Chawla S.Agent Based Information Retrieval System UsingInformation Scent[J].Journal of Artificial Intelligence,2010,3(4) : 220 -238.
[4]Pavlin G,de Oude P,Maris M,et al.A Multi - Agent SystemsApproach to Distributed Bayesian Information Fusion[J].Agent -Based Information Fusion,2010,11(3) : 267 - 282.
[5]Jumadinova J,Dasgupta P.A Multi - Agent System for Analyzingthe Effect of Information on Prediction Markets[J].InternationalJournal of Intelligent Systems,2011,26(5) : 383 - 409.
[6]張俊,陳宏剛?;诙?Agent 的實時 ETL 系統模型研究[J].信息技術,2010(2) : 71 - 73.(Zhang Jun,Chen Honggang.Re-search on Real - Time ETL System Model Based on Multi - Agent[J].Information Technology,2010(2) : 71 -73.)
[7]翟東升,楊洋?;?XML 技術的 USPTO 專利抽取系統[J].北京工業大學學報,2011,37(4) : 628 - 633.(Zhai Dongsheng,Yang Yang.USPTO Patent Information Extraction System Based onXML[J].Journal of Beijing University of Technology,2011,37(4) : 628 -633.)
[8] Kunz T.The Influence of Different Workload Descriptions on aHeuristic Load Balancing Scheme[J].IEEE Transactions on Soft-ware Engineering,1991,17(7) : 725 - 730.
[9]Bahi J M.Dynamic Load Balancing and Efficient Load Estimatorsfor Asynchronous Iterative Algorithms[J].IEEE Transactions onParallel and Distributed Systems,2005,16(4) : 289 - 299.
[10]馬雪梅。分布式系統中主機負載預測[D].長春: 吉林大學,2005.(Ma Xuemei.Loading Prediction of Host Computer in Dis-tributed System[D].Changchun: Jilin University,2005.)
[11]王春娟。Web 集群負載均衡算法的分析與研究[J].電腦知識與技術,2008,3(26) : 1623 - 1624.(Wang Chunjuan.Analysisand Research of Load Balancing Algorithm Based on Web ClusterSystem[J].Computer Knowledge and Technology,2008,3 (26 ) :1623 - 1624.)
[12]楊洋?;诙?Agent 系統的專利采集系統研究[D].北京: 北京工業大學,2010.(Yang Yang.Research on Patent InformationAcquisition System Based on Multi - Agent System[D].Beijing:Beijing University of Technology,2010.)