專利名稱:一種高效的關(guān)聯(lián)主題模型數(shù)據(jù)處理方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種文本表示方法及其系統(tǒng),尤其涉及一種基于隱含主題文本表示的高效 數(shù)據(jù)處理方法及其系統(tǒng),屬于計(jì)算機(jī)信息檢索領(lǐng)域。
背景技術(shù):
計(jì)算機(jī)信息檢索是信息社會的重要基礎(chǔ)設(shè)施之一,所提供的服務(wù)貫穿了從基本的網(wǎng)絡(luò) 信息搜索到信息的過濾、分類以致各種高級的數(shù)據(jù)挖掘。在計(jì)算機(jī)信息檢索中,文本的表 示方法是一個(gè)具有根本重要性的問題首先,計(jì)算機(jī)信息檢索的處理對象主要是文本信息, 其他類型的信息一般也必須依賴于文本信息或附加文本信息而存在;再者,文本表示方法 是計(jì)算機(jī)信息檢索服務(wù)的先決條件,因?yàn)橛?jì)算機(jī)信息檢索的基本手段是利用自然語言文本向搜索引擎進(jìn)行提問和應(yīng)答,必須首先要將文本從無結(jié)構(gòu)的原始形式轉(zhuǎn)化為計(jì)算機(jī)能夠理 解的結(jié)構(gòu)化形式,然后才能進(jìn)行分析與處理;還有,文本表示方法是和計(jì)算機(jī)信息檢索中 的處理算法緊密關(guān)聯(lián)在一起的,所以文本表示方法很大程度上決定了處理算法的設(shè)計(jì)。常見的文本表示方法主要分為向量空間方法(Vector Space Model)(參考Salton,G. The SMART Retrieval System. Englewood Cliffs, Prentice-Hall, 1971.)、概率方汰(Probability Model)(參考Van Rijsbergen,C丄A new theoretical framework for information retrieval. In proceedings of SIGIR'86, pp.194-200, 1986.)和語言模型方法(Language Model)(參考 J.Ponte, Crpft,W.B. A Language Modeling Approach to Informational. In proceedings of SIGIR,98,Pp.257-281, 1998.)三類。關(guān)聯(lián)主題模型(Correlated Topic Model)是一種基于隱 含主題的概率文本表示方法(參考Blei, D., Lafferty, J. Correlated Topic Models[J]. yWv"wces/w wewa//"ybww"'o"procew/"g5^fe附s, 2006, 18: 147-154.), 另夕卜由于其輸出可 以方便地嵌入到向量空間和語言模型中,因而對于計(jì)算機(jī)信息檢索中的分析、處理算法具 有廣泛的適應(yīng)性。該方法的主要功能是通過對一定數(shù)量的文本利用統(tǒng)計(jì)手段進(jìn)行分析后, 不但能挖掘出該文本集合論述的若干主題以及各個(gè)主題在每篇文本中的分布,而且非常重 要的是該方法還可以度量這些主題之間的關(guān)聯(lián)程度。這樣,就使文本信息處理擺脫了以往 完全依賴于詞匯的低級處理方式,可以在主題這個(gè)更高的層次上進(jìn)行。雖然關(guān)聯(lián)主題模型從功能上提供了一種高層次文本表示的理想手段,但是目前還主要限于小量數(shù)據(jù)上,難以在現(xiàn)實(shí)環(huán)境下的大規(guī)模數(shù)據(jù)上使用,根本原因在于其求解方法存在 嚴(yán)重的瓶頸首先,其經(jīng)典的實(shí)現(xiàn)是基于常規(guī)的串行計(jì)算方法,也就是計(jì)算任務(wù)的每一步 必須前后相繼地順序地進(jìn)行,前一步處理的結(jié)果是后一步處理的開始。這樣在任一時(shí)間點(diǎn) 上,全部的計(jì)算任務(wù)只能在一個(gè)硬件計(jì)算單元上執(zhí)行,所以即便是將其放到具有多個(gè)硬件 計(jì)算單元(如多核、多處理器)的高性能計(jì)算機(jī)上,也不能加快任務(wù)求解的速度。再者, 由于串行方式下計(jì)算過程自身不可拆分,所以被處理的數(shù)據(jù)也就必須集中在一起供給計(jì)算 過程隨時(shí)訪問,這樣就加大了系統(tǒng)的存儲負(fù)荷,如硬盤、內(nèi)存,特別是內(nèi)存方面的影響非 常明顯,過大的內(nèi)存占用會導(dǎo)致計(jì)算速度急劇下降甚至導(dǎo)致系統(tǒng)拒絕計(jì)算任務(wù)的執(zhí)行。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種高效的關(guān)聯(lián)主題模型數(shù)據(jù)處理方法及其系統(tǒng),該方法能夠 充分利用單機(jī)上的多處理器-多核并行架構(gòu)和計(jì)算機(jī)集群的大規(guī)模并行能力,進(jìn)而實(shí)現(xiàn)對 大規(guī)模文檔集合的高速處理,也即達(dá)到將關(guān)聯(lián)主題模型文本表示方法推向?qū)嵱没哪康摹?本發(fā)明的技術(shù)方案如下1. 任務(wù)初始化l丄在每個(gè)節(jié)點(diǎn)計(jì)算機(jī)上(包括主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)),根據(jù)該節(jié)點(diǎn)的硬件并發(fā)能 力自動(dòng)生成具有相應(yīng)數(shù)量工作線程的計(jì)算服務(wù);1.2. 在主控節(jié)點(diǎn)上,利用隨機(jī)過程給出初始模型7i^,并將Mo復(fù)制到所有的計(jì)算 節(jié)點(diǎn)上;1.3. 在主控節(jié)點(diǎn)上,將任務(wù)文檔全集等量劃分成若干計(jì)算節(jié)點(diǎn)文檔子集,并逐一 分配到相應(yīng)的計(jì)算節(jié)點(diǎn)上;2. 任務(wù)的執(zhí)行(記本輪迭代次數(shù)為第i次迭代,再用k表示計(jì)算節(jié)點(diǎn)的編號)2丄在每個(gè)計(jì)算節(jié)點(diǎn)上,將該節(jié)點(diǎn)文檔子集劃分成若干工作塊,各工作線程進(jìn)行 局部并行計(jì)算首先獲得在本次迭代過程上該節(jié)點(diǎn)文檔子集的處理結(jié)果D(k,i),即該 節(jié)點(diǎn)文檔子集中每篇文檔的主題分布,進(jìn)而利用這部分文檔的主題分布求得關(guān)于 該節(jié)點(diǎn)文檔子集的模型統(tǒng)計(jì)量;2.2. 在每個(gè)計(jì)算節(jié)點(diǎn)上,將其節(jié)點(diǎn)文檔子集的處理結(jié)果D(k,i)、模型統(tǒng)計(jì)量和文檔計(jì)算時(shí)間傳送到主控節(jié)點(diǎn);2.3. 在主控節(jié)點(diǎn)上,用文檔計(jì)算時(shí)間判斷計(jì)算節(jié)點(diǎn)文檔子集的劃分的均衡性。如 有必要?jiǎng)t重新調(diào)整計(jì)算節(jié)點(diǎn)文檔子集的劃分并分配到相應(yīng)的計(jì)算節(jié)點(diǎn)上;2.4.在主控節(jié)點(diǎn)上,先匯總所有計(jì)算節(jié)點(diǎn)文檔子集的模型統(tǒng)計(jì)量,然后估計(jì)本次 迭代的模型Mi (即進(jìn)行模型參數(shù)估計(jì),求解出關(guān)聯(lián)主題模型)。如果模型沒有收斂 則將M,復(fù)制到所有的計(jì)算節(jié)點(diǎn)上進(jìn)行下一輪計(jì)算和模型迭代;否則終止數(shù)據(jù)處理 過程,此時(shí)在每個(gè)計(jì)算節(jié)點(diǎn)上即可得到其最終的數(shù)據(jù)處理結(jié)果D(k,,ast),將之匯總既 得文檔全集最終的數(shù)據(jù)處理結(jié)果Aast,即文檔全集中每篇文檔的主題分布;同時(shí)也 得到了最終的收斂模型M^。 本發(fā)明涉及以下所述的關(guān)鍵要素一) 本發(fā)明采用分級的高性能求解體系結(jié)構(gòu)集群分布式計(jì)算、機(jī)內(nèi)并行計(jì)算。集群 級別由2個(gè)基本的組成部分構(gòu)成的,分別是 一個(gè)主控節(jié)點(diǎn)和若干個(gè)計(jì)算節(jié)點(diǎn)。主控節(jié)點(diǎn) 只有一個(gè),該節(jié)點(diǎn)可以使用普通的PC機(jī),主要負(fù)責(zé)界面交互、數(shù)據(jù)分發(fā)、結(jié)果匯總,模 型參數(shù)估計(jì)等功能。計(jì)算節(jié)點(diǎn)有多個(gè)(原則上沒有數(shù)量限制)而且可以選用不同類型的計(jì) 算機(jī),計(jì)算節(jié)點(diǎn)承擔(dān)求解任務(wù)的主要計(jì)算工作負(fù)荷。主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過網(wǎng)絡(luò)連接起 來,數(shù)據(jù)僅需要在主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)直接傳輸,計(jì)算節(jié)點(diǎn)之間沒有通信。節(jié)點(diǎn)級別采用 機(jī)內(nèi)并行計(jì)算即跨線程的計(jì)算,不同的計(jì)算節(jié)點(diǎn)具有不同的并行度,如具有多處理器的 高性能服務(wù)器可以有效支持和處理器數(shù)量成正比的并行線程,雙核工作站可以有效支持雙 線程并行計(jì)算,而單核的PC機(jī)一般只支持單線程計(jì)算。二) 節(jié)點(diǎn)并發(fā)線程數(shù)量的自主確定在每個(gè)節(jié)點(diǎn)上(包括主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)),都 通過獲得這個(gè)節(jié)點(diǎn)計(jì)算機(jī)的處理器的數(shù)量和每個(gè)處理器所含的內(nèi)核數(shù)量或支持的超線程 數(shù)量來自動(dòng)確定有效線程的數(shù)量在windows平臺上利用匯編指令直接獲得硬件系統(tǒng)的處 理器信息,在limxx平臺上通過對硬件抽象層HAL的功能調(diào)用獲得硬件系統(tǒng)的處理器信息。 這樣在采用集群分布式計(jì)算的環(huán)境下避免了手工配置每個(gè)節(jié)點(diǎn)的工作線程數(shù)量的繁瑣。三) 本發(fā)明采用分級的負(fù)載均衡技術(shù)集群級別上工作集的自適應(yīng)分配,計(jì)算節(jié)點(diǎn)級別上工作集的自動(dòng)分配。這不同于一般的高性能計(jì)算任務(wù)所采用的單一負(fù)載均衡模式。集群級別上工作集的自適應(yīng)分配方法是由于每個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算能力不一致,我們在主控 節(jié)點(diǎn)上對各個(gè)計(jì)算節(jié)點(diǎn)本次迭代進(jìn)行評估并及時(shí)調(diào)整的策略,讓工作集按照計(jì)算節(jié)點(diǎn)的計(jì) 算能力合理分布以使得各計(jì)算節(jié)點(diǎn)在近似接近的時(shí)間內(nèi)完成以避免部分節(jié)點(diǎn)空閑等待,從 而實(shí)現(xiàn)最大化利用整個(gè)集群的計(jì)算效能。評估和調(diào)整計(jì)算節(jié)點(diǎn)工作集的具體方法-評估方法第一,將所有計(jì)算節(jié)點(diǎn)的計(jì)算時(shí)間組成一個(gè)列表7 ^第二,找出最長的計(jì)算時(shí)間Mox(r!'me)和最短的計(jì)算時(shí)間M"(:nwe),并計(jì)算時(shí)間差77weS^fl"-Mox(7 we)-M/"(77附e)。 第三,將r!'me印cm和預(yù)定的閾值7V^2oW (默認(rèn)是5秒)進(jìn)行比較,如果7^&; flw〉77/r^/wW,則需要調(diào)整工作集的劃分,否則保留先前的劃分。調(diào)整方法-.令77me (/)表示第/個(gè)計(jì)算節(jié)點(diǎn)所用的計(jì)算時(shí)間,令5fee表示工作集全集的大小而 相應(yīng)的S!i(0表示第i個(gè)計(jì)算節(jié)點(diǎn)所處理的節(jié)點(diǎn)工作集的大小(即所處理的文檔數(shù)量),則有第一,計(jì)算各個(gè)節(jié)點(diǎn)的文檔處理速度,5^e《z')=5Vze(0/7yme (0第二,計(jì)算各個(gè)節(jié)點(diǎn)的文檔分配比例,,0/wW/0"W =第三,計(jì)算各個(gè)節(jié)點(diǎn)的文檔分配份額,^worie"《0,ropoW/o"(0"/ze第四,依據(jù)各個(gè)節(jié)點(diǎn)的文檔分配份額從全集中依次取出相應(yīng)數(shù)量的文檔進(jìn)行分配。計(jì)算節(jié)點(diǎn)級別上工作集的自動(dòng)分配方法是由于一個(gè)節(jié)點(diǎn)上的工作線程計(jì)算能力是一 致的,所以采用每個(gè)線程自動(dòng)申請近似等量的工作塊,使得各線程在近似接近的時(shí)間內(nèi)完 成以避免部分線程空閑,從而實(shí)現(xiàn)最大化利用整個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算效能。四)計(jì)算節(jié)點(diǎn)級別上工作集的高并發(fā)訪問方法當(dāng)計(jì)算節(jié)點(diǎn)的工作集(即接收到的文 檔子集)載入內(nèi)存后,各并發(fā)線程是利用索引結(jié)構(gòu)來劃分各自處理的文本對象的,劃分之 后進(jìn)行計(jì)算時(shí)所有的線程同時(shí)訪問工作集而不用將該工作集鎖定,這樣使得多條工作線程 在執(zhí)行計(jì)算任務(wù)時(shí)獲得了完全的并行,這種索引方法的詳細(xì)說明如下在內(nèi)存中文檔是分散存儲的,通過一個(gè)連續(xù)的索引數(shù)組將文檔的地址集中起來存放。 利用索引方法方法提高并發(fā)訪問的關(guān)鍵是第一,設(shè)置工作塊的尺寸(默認(rèn)為100個(gè)文檔)第二,設(shè)置一個(gè)索引數(shù)組的頂端指針,并為之設(shè)置一個(gè)鎖(臨界區(qū)互斥量),該指針 初始位置在數(shù)組首元素;第三,所有線程在鎖的保護(hù)下互斥訪問索引數(shù)組的頂端指針而獲得本線程所處理的文 檔的地址(即在索引數(shù)組中一段連續(xù)的元素)第四,線程通過工作塊的地址來訪問相應(yīng)的文檔并進(jìn)行處理,此時(shí)所有線程是完全并 行的。所以,該方法僅要求線程在一個(gè)整數(shù)(索引數(shù)組的頂端指針)上進(jìn)行鎖定的互斥訪問, 而無須對索引本身進(jìn)行鎖定的互斥掃描,更無須對文檔集本身進(jìn)行鎖定的互斥掃描,從而 獲得了最大的并發(fā)效率,避免了由于在大數(shù)據(jù)結(jié)構(gòu)上掃描時(shí)使用鎖成本而導(dǎo)致的開銷。五) 本發(fā)明采用分級的工作集傳遞模式集群工作集的"推"式傳遞模式、節(jié)點(diǎn)并發(fā) 線程工作集的"拉"式傳遞模式。工作集全集要進(jìn)行分級劃分,首先在集群級別要將工作 集分成計(jì)算節(jié)點(diǎn)文檔子集,這個(gè)任務(wù)由主控節(jié)點(diǎn)完成,主控節(jié)點(diǎn)按照各個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算 能力將工作集全集劃分并對應(yīng)復(fù)制給相應(yīng)計(jì)算節(jié)點(diǎn),這是"推"式傳遞模式;在計(jì)算節(jié)點(diǎn) 上,各個(gè)工作線程主動(dòng)申請從節(jié)點(diǎn)工作子集中獲得工作塊來進(jìn)行計(jì)算,這是"拉"式傳遞 模式。六) 主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)同步方式計(jì)算和傳輸分離,計(jì)算任務(wù)不考慮數(shù)據(jù)的遠(yuǎn)程訪 問而是采用本地讀寫的模式,傳輸任務(wù)由基于進(jìn)程外文件傳輸服務(wù)(FTP)或網(wǎng)絡(luò)文件系統(tǒng)服務(wù)(NFS)承擔(dān)。這樣提高系統(tǒng)的可伸縮性、可維護(hù)性。同時(shí),數(shù)據(jù)傳輸?shù)臄?shù)值格式 采用文本表示格式,這樣避免了不同硬件平臺、操作系統(tǒng)平臺和開發(fā)工具平臺導(dǎo)致的二進(jìn) 制表示格式的差異,使得系統(tǒng)可以在混合平臺環(huán)境下開發(fā)和運(yùn)行七) 關(guān)聯(lián)主題模型估計(jì)中采用模型統(tǒng)計(jì)量匯總技術(shù)-關(guān)聯(lián)主題模型主要由3個(gè)參數(shù)矩陣來定義,分別是主題均值參數(shù)矩陣^p,主題方差參 數(shù)矩陣Cp,主題的用詞分布(特征分布)參數(shù)矩陣『p;模型估計(jì)關(guān)鍵步驟是通過文檔計(jì) 算出模型統(tǒng)計(jì)量(對應(yīng)有3個(gè)統(tǒng)計(jì)量矩陣主題均值統(tǒng)計(jì)量矩陣A,主題方差統(tǒng)計(jì)量矩陣cs,主題的用詞分布(特征分布)統(tǒng)計(jì)量矩陣『s),通過模型統(tǒng)計(jì)量計(jì)算出模型參數(shù),這個(gè)過程是迭代收斂的。在串行和并行模式該過程的差異在于串行數(shù)據(jù)處理方法下,由于所有數(shù)據(jù)均在一臺 計(jì)算機(jī)上,所以模型統(tǒng)計(jì)量是被集中存放的,但是分布式數(shù)據(jù)處理時(shí),每臺計(jì)算機(jī)上單獨(dú) 計(jì)算自己那部分模型統(tǒng)計(jì)量,所以必須要匯總在一起,具體地講Cf=^>WC,(/),其中仰6}(/)表示一個(gè)計(jì)算節(jié)點(diǎn)的模型統(tǒng)計(jì)量 本發(fā)明的積極效果與現(xiàn)有技術(shù)相比,本發(fā)明通過挖掘關(guān)聯(lián)主題模型求解方法的內(nèi)在結(jié)構(gòu),采用分而治之 的策略,將整個(gè)計(jì)算任務(wù)分割成不同尺度的子任務(wù),每個(gè)子任務(wù)獨(dú)立執(zhí)行的并且是僅需處理自身相關(guān)的數(shù)據(jù),所以從整體上看,計(jì)算任務(wù)的存儲壓力被消解和單一計(jì)算單元的限制 被突破;該方法在實(shí)施時(shí),通過利用多處理器、多核單計(jì)算機(jī)高性能硬件提供的計(jì)算能力, 以及利用集群大規(guī)模并行等先進(jìn)體系結(jié)構(gòu)來實(shí)現(xiàn)求解,從而實(shí)現(xiàn)提高計(jì)算速度和擴(kuò)大計(jì)算 規(guī)模的目標(biāo)。
圖l.本發(fā)明的網(wǎng)絡(luò)結(jié)構(gòu)示意圖; 圖2.本發(fā)明的方法流程示意圖; 圖3.本發(fā)明的動(dòng)態(tài)執(zhí)行結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖具體說描述本發(fā)明方法的實(shí)施方式本發(fā)明的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是一個(gè)計(jì)算機(jī)集群,如圖1所示,它由2個(gè)基本的組成部分構(gòu) 成的,分別是 一個(gè)主控節(jié)點(diǎn)和若干個(gè)計(jì)算節(jié)點(diǎn)。主控節(jié)點(diǎn)只有一個(gè),該節(jié)點(diǎn)可以使用普 通的PC機(jī),主要負(fù)責(zé)界面交互、數(shù)據(jù)分發(fā)、結(jié)果匯總等功能。計(jì)算節(jié)點(diǎn)有多個(gè)(原則上 沒有數(shù)量限制)而且可以選用不同類型的計(jì)算機(jī),計(jì)算節(jié)點(diǎn)承擔(dān)求解任務(wù)的主要計(jì)算工作 負(fù)荷。主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過網(wǎng)絡(luò)連接起來,數(shù)據(jù)僅需要在主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)直接傳 輸,計(jì)算節(jié)點(diǎn)之間沒有通信。本發(fā)明的方法流程如圖2所示縱向表示的是順序的步驟,而橫向表示的是每一個(gè)步 驟中可以并行的成分。順序的步驟主要分為初始化和迭代執(zhí)行兩大步驟,進(jìn)而迭代執(zhí)行又 可以分為計(jì)算節(jié)點(diǎn)的執(zhí)行步驟(包含計(jì)算和傳送兩個(gè)子步驟)和主控節(jié)點(diǎn)的執(zhí)行步驟(包 含計(jì)算和傳送兩個(gè)子步驟)。圖中顯式表示的并行成分主要有(1)初始化中的模型初始 化、文檔集合劃分2個(gè)并行成分;(2)多個(gè)計(jì)算節(jié)點(diǎn)獨(dú)立計(jì)算的并行成分;(3)主控節(jié)點(diǎn) 上估計(jì)模型和調(diào)整工作集劃分獨(dú)立執(zhí)行的并行成分。另外,除了圖中顯式表示的并行成分 外,實(shí)際上還有很重要的一種并行成分,即單個(gè)計(jì)算節(jié)點(diǎn)上的多條執(zhí)行線程的并行成分, 這將在下面高性能求解方法的動(dòng)態(tài)執(zhí)行結(jié)構(gòu)示意圖中展示,如圖3所示。本發(fā)明的動(dòng)態(tài)執(zhí)行結(jié)構(gòu)如圖3所示是一種雙層體系結(jié)構(gòu),宏觀分布式計(jì)算和微觀并 行計(jì)算。宏觀分布式計(jì)算是跨計(jì)算機(jī)的,在主控節(jié)點(diǎn)的協(xié)調(diào)下,計(jì)算任務(wù)被分配到不同的 計(jì)算節(jié)點(diǎn)上,由于不同計(jì)算節(jié)點(diǎn)的計(jì)算能力不一樣,所以主控節(jié)點(diǎn)需要管理計(jì)算節(jié)點(diǎn)之間 的負(fù)載均衡,本發(fā)明通過設(shè)計(jì)自適應(yīng)方法來自動(dòng)調(diào)整各節(jié)點(diǎn)工作集的大小,無須人工干預(yù)。微觀并行計(jì)算是跨線程的,不同的計(jì)算節(jié)點(diǎn)具有不同的并行度,如具有多處理器的高性能 服務(wù)器可以有效支持和處理器等數(shù)量的并行線程,雙核工作站可以有效支持雙線程并行計(jì) 算,而單核的PC機(jī)一般只支持單線程計(jì)算。所以,針對不同并行度的計(jì)算節(jié)點(diǎn)要運(yùn)行不 同數(shù)量的線程,過多或過少都不利于發(fā)揮該節(jié)點(diǎn)的最大計(jì)算能力,本發(fā)明通過自動(dòng)檢測系 統(tǒng)硬件來計(jì)算可支持線程數(shù)量,無須手工指定。下面結(jié)合具體的應(yīng)用領(lǐng)域描述本發(fā)明的應(yīng)用 1.文檔聚類文檔聚類是指將文檔集合中的文檔進(jìn)行分組,使得在同一個(gè)組中的文檔內(nèi)容具有較高 的相似度,而不同組中的文檔內(nèi)容差別較大。經(jīng)過這樣的處理后,由于文檔集合具有合理 分組的結(jié)構(gòu),使得文檔集合更便于管理;更重要的是通過將大的文檔集合細(xì)分可以極大地 減輕用戶查找特定文檔的工作量,提高了文檔使用效率。在信息檢索中文檔聚類技術(shù)具有 重要用途,最典型的就是對檢索結(jié)果依據(jù)主題進(jìn)行分組,這樣用戶就可以集中在自己關(guān)心 的主題方面的網(wǎng)頁,也就是自動(dòng)過濾掉了大量無關(guān)的査詢結(jié)果,所以文檔聚類可以進(jìn)一步 提高通用搜索引擎的可用性。關(guān)聯(lián)主題模型可以用來做文本聚類從而實(shí)現(xiàn)搜索引擎的檢索結(jié)果依據(jù)主題分組的功 能。其具體的實(shí)施方式是一) 將搜索引擎的檢索結(jié)果組織成文檔全集,其中每個(gè)文檔就對應(yīng)一條搜索結(jié)果的標(biāo) 題和摘要的內(nèi)容。二) 用本發(fā)明的高效的關(guān)聯(lián)主題模型數(shù)據(jù)處理方法及其系統(tǒng)對該文檔全集進(jìn)行處理, 以獲得到每個(gè)文本所屬的主題,具體過程如下1.任務(wù)初始化l丄在每個(gè)節(jié)點(diǎn)計(jì)算機(jī)上(包括主控節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)),根據(jù)該節(jié)點(diǎn)的硬件并發(fā) 能力自動(dòng)生成具有相應(yīng)數(shù)量工作線程的計(jì)算服務(wù);1.2. 在主控節(jié)點(diǎn)上,利用隨機(jī)過程給出初始模型MQ,并將Mo復(fù)制到所有的計(jì) 算節(jié)點(diǎn)上;1.3. 在主控節(jié)點(diǎn)上,將任務(wù)文檔全集等量劃分成若干計(jì)算節(jié)點(diǎn)文檔子集,并逐 一分配到相應(yīng)的計(jì)算節(jié)點(diǎn)上;2.任務(wù)的執(zhí)行(記本輪迭代次數(shù)為第i次迭代,再用k表示計(jì)算節(jié)點(diǎn)的編號)2丄在每個(gè)計(jì)算節(jié)點(diǎn)上,將該節(jié)點(diǎn)文檔子集劃分成若干工作塊,各工作線程進(jìn) 行局部并行計(jì)算首先獲得在本次迭代過程上該節(jié)點(diǎn)文檔子集的處理結(jié)果"(k,i),即該節(jié)點(diǎn)文檔子集中每篇文檔的主題分布,進(jìn)而利用這部分文檔的主題分布求 得關(guān)于該節(jié)點(diǎn)文檔子集的模型統(tǒng)計(jì)量;同時(shí)記錄每個(gè)節(jié)點(diǎn)計(jì)算本節(jié)點(diǎn)文檔子集 時(shí)所用的文檔計(jì)算時(shí)間。2.2. 在每個(gè)計(jì)算節(jié)點(diǎn)上,將其節(jié)點(diǎn)文檔子集的處理結(jié)果D(k,i)、模型統(tǒng)計(jì)量和文 檔計(jì)算時(shí)間傳送到主控節(jié)點(diǎn);2.3. 在主控節(jié)點(diǎn)上,用文檔計(jì)算時(shí)間評估計(jì)算節(jié)點(diǎn)文檔子集的劃分的均衡性。 如有必要?jiǎng)t重新調(diào)整計(jì)算節(jié)點(diǎn)文檔子集的劃分并分配到相應(yīng)的計(jì)算節(jié)點(diǎn)上;2.4. 在主控節(jié)點(diǎn)上,先匯總所有計(jì)算節(jié)點(diǎn)的模型統(tǒng)計(jì)量,然后估計(jì)本次迭代的 模型M,(即進(jìn)行模型參數(shù)估計(jì),求解出關(guān)聯(lián)主題模型)。如果模型沒有收斂則將 M,復(fù)制到所有的計(jì)算節(jié)點(diǎn)上進(jìn)行下一輪計(jì)算和模型迭代;否則終止數(shù)據(jù)處理過 程,此時(shí)即可得到最終的數(shù)據(jù)處理結(jié)果,此時(shí)在每個(gè)計(jì)算節(jié)點(diǎn)上即可得到其最 終的數(shù)據(jù)處理結(jié)果D(k,to),將之匯總既得文檔全集最終的數(shù)據(jù)處理結(jié)果Aast,即 文檔全集中每篇文檔的主題分布;同時(shí)也得到了最終的收斂模型Mlast。三)從每篇文檔的主題分布中可以得到該文檔包含的最大主題(也即該文檔最集中論 述的主題),進(jìn)而就將該篇文檔分配到相應(yīng)主題的那個(gè)組去,這樣就得到了搜索引擎的 檢索結(jié)果的依據(jù)主題的分組。 2.郵件過濾電子郵件是最基本的網(wǎng)絡(luò)服務(wù)之一,它是人們工作、生活中必不可少的工具。在充分 享受電子郵件帶來的便捷、實(shí)時(shí)和廉價(jià)的同時(shí),網(wǎng)絡(luò)時(shí)代的人們也飽嘗垃圾郵件帶來的煩 惱。幾乎每個(gè)人的信箱都充斥著大量來歷不明的垃圾郵件,據(jù)統(tǒng)計(jì)95%的郵件是垃圾郵件, 這嚴(yán)重污染網(wǎng)絡(luò)環(huán)境,影響網(wǎng)絡(luò)的正常通信。所以垃圾郵件過濾是電子郵件系統(tǒng)的必備功 能,除了傳統(tǒng)的基于身份認(rèn)證和敏感詞過濾的技術(shù)外,各種對郵件內(nèi)容進(jìn)行智能分析的過 濾技術(shù)也逐漸發(fā)展起來,成為對付精細(xì)偽裝的垃圾郵件的主要手段。關(guān)聯(lián)主題模型可以用來對電子郵件的內(nèi)容做主題分析從而實(shí)現(xiàn)依據(jù)郵件主題進(jìn)行過濾的功能。其具體的實(shí)施方式是一) 將已有的全部電子郵件分成兩個(gè)對立的集合正常郵件集合與垃圾郵件集合。二) 用本發(fā)明的關(guān)聯(lián)主題模型對正常郵件集合與垃圾郵件集合分別進(jìn)行計(jì)算,得到兩 個(gè)關(guān)聯(lián)主題模型。三) 對于新收到的一封電子郵件計(jì)算它與兩個(gè)關(guān)聯(lián)主題模型的相似度,即可作出該郵 件是否是垃圾郵件的判定。3.商品推薦商品推薦功能在電子商務(wù)中非常重要,它可以幫助顧客發(fā)現(xiàn)真正感興趣的商品,從而 既提升客戶的購物體驗(yàn)又提升了經(jīng)銷商的利潤。所以幾乎所有大型的電子商務(wù)系統(tǒng),都不 同程度地使用了各種形式的推薦系統(tǒng)(軟件所內(nèi)刊)。商品推薦的基本原理是根據(jù)大量 的購買記錄數(shù)據(jù),分析客戶的購買行為,總結(jié)客戶群體的購買模式,當(dāng)新的客戶購提交商 品購買信息后,通過將該信息與以往的購買模式進(jìn)行匹配從而預(yù)測該用戶還可能需要的商 品,進(jìn)而推薦給客戶。關(guān)聯(lián)主題模型可以用來從歷史購買記錄中對客戶的購買模式進(jìn)行分析,從而支持為新 客戶提供商品推薦的功能。其具體的實(shí)施方式是一) 將全部歷史購買記錄組織成文本集合,將每條購買記錄看作一個(gè)"文本",而購 買的商品看作文本中的"詞"。二) 用本發(fā)明的關(guān)聯(lián)主題模型對該文本集合進(jìn)行計(jì)算,可以發(fā)現(xiàn)具有不同購買模式的 客戶群體。三) 對于一個(gè)新的購買信息,利用本發(fā)明的關(guān)聯(lián)主題模型計(jì)算它所屬的客戶群體,最 后即可根據(jù)該客戶群體的購買模式提出商品推薦。
權(quán)利要求
1.一種高效的關(guān)聯(lián)主題模型數(shù)據(jù)處理方法,其步驟為初始化階段1)在每個(gè)節(jié)點(diǎn)計(jì)算機(jī)上根據(jù)該節(jié)點(diǎn)的硬件并發(fā)能力自動(dòng)生成具有相應(yīng)數(shù)量工作線程的計(jì)算服務(wù);2)主控節(jié)點(diǎn)給出初始模型并將其復(fù)制到所有的計(jì)算節(jié)點(diǎn)上;3)主控節(jié)點(diǎn)將任務(wù)文檔全集劃分成若干計(jì)算節(jié)點(diǎn)文檔子集,并分配給相應(yīng)計(jì)算節(jié)點(diǎn);迭代階段1)各計(jì)算節(jié)點(diǎn)對接收到的節(jié)點(diǎn)文檔子集進(jìn)行數(shù)據(jù)處理,得到該節(jié)點(diǎn)文檔子集中每篇文檔的主題分布和該節(jié)點(diǎn)文檔子集的模型統(tǒng)計(jì)量;2)各計(jì)算節(jié)點(diǎn)將數(shù)據(jù)結(jié)果返回給主控節(jié)點(diǎn)進(jìn)行匯總,得到任務(wù)文檔全集的主題分布;3)主控節(jié)點(diǎn)根據(jù)模型統(tǒng)計(jì)量的匯總,迭代本次模型并判斷其收斂性如未收斂則重復(fù)迭代階段,否則結(jié)束數(shù)據(jù)處理。
2. 如權(quán)利要求l所述的方法,其特征在于所述節(jié)點(diǎn)計(jì)算機(jī)硬件并發(fā)能力的獲得方法為(1) 在windows平臺上利用匯編指令直接獲得硬件系統(tǒng)的處理器信息,在linux平臺上 通過對硬件抽象層HAL的功能調(diào)用獲得硬件系統(tǒng)的處理器信息首先獲取每個(gè)節(jié) 點(diǎn)計(jì)算機(jī)的處理器的數(shù)量,然后獲取每個(gè)處理器所含的內(nèi)核數(shù)量;(2) 合計(jì)節(jié)點(diǎn)計(jì)算機(jī)的所有處理器的包含的內(nèi)核數(shù)量,自動(dòng)確定該計(jì)算節(jié)點(diǎn)支持的有效線程的數(shù)量。
3. 如權(quán)利要求1所述的方法,其特征在于主控節(jié)點(diǎn)判斷所述計(jì)算節(jié)點(diǎn)文檔子集劃分的均 衡性,其方法為-(1) 將所有計(jì)算節(jié)點(diǎn)的計(jì)算時(shí)間組成一個(gè)列表Time;(2) 找出最長的節(jié)點(diǎn)計(jì)算時(shí)間Max(Time)和最短的節(jié)點(diǎn)計(jì)算時(shí)間Min(Tkne),并計(jì)算時(shí) 間差TimeSpan=Max(Time)-Min(Time);(3) 將TimeSpan和預(yù)定的閾值Threshold進(jìn)行比較,如果TimeSpan>Threshold,則需要調(diào)整節(jié)點(diǎn)文檔子集劃分,否則保留先前的劃分。
4. 如權(quán)利要求3所述的方法,其特征在于所述調(diào)整計(jì)算節(jié)點(diǎn)文檔子集劃分的方法為(1)每個(gè)計(jì)算節(jié)點(diǎn)對接收到的節(jié)點(diǎn)文檔子集進(jìn)行數(shù)據(jù)數(shù)據(jù)處理時(shí)記錄該節(jié)點(diǎn)處理文檔 子集的所用的時(shí)間;作為一種實(shí)施方式,當(dāng)所述文件檢索模塊未從存儲模塊中獲得所述索引以及文件集合時(shí),上述本發(fā)明實(shí)施例的文件的檢索方法還可以包括如下流程 總控模塊獲得文件檢索模塊返回的獲得結(jié)果信息,該獲得結(jié)果信息指 示所述文件檢索模塊未從所述存儲模塊中獲得所述索引以及文件集合; 總控模塊控制文件生成模塊生成所述用戶的帳單文件; 總控模塊同時(shí)控制文件組織模塊進(jìn)行圖1所示的將所述生成的帳單文 件進(jìn)行組織處理; 總控模塊將所述生成的帳單文件對應(yīng)的索引發(fā)送到文件檢索模塊; 文件生成模塊將生成的所述用戶的帳單文件發(fā)送到文件組織模塊,文 件組織才莫塊即可根據(jù)圖1所示的文件的組織方法的流程對生成的帳單文件進(jìn)行 處理; 文件組織模塊將處理后的帳單文件發(fā)送到存儲模塊進(jìn)行存儲。在312之后,文件檢索模塊即可從所述存儲模塊獲得上述生成的帳單文件, 加總控模塊在310發(fā)送的索引,文件檢索模塊即可執(zhí)行304的對應(yīng)功能,完成 帳單展現(xiàn)。 ,作為一種實(shí)施方式,當(dāng)所述帳單文件以壓縮包形式存在時(shí),即各文件集合 被打包壓縮時(shí),上述步驟305具體為文件輸出模塊讀入文件檢索模塊傳來的文件集合及索引(該文件集合中的 帳單文件以壓縮包形式存在)后,解壓縮所述文件集合中與所述索引對應(yīng)的帳 單文件,然后以所述解壓縮得到的帳單文件進(jìn)行306的處理,為提高效率,此 處可根據(jù)索引進(jìn)行索引對應(yīng)帳單文件的部分解壓縮,而不需要對所述文件集合 全部進(jìn)行解壓縮。實(shí)施如圖3所示的本發(fā)明實(shí)施例的文件的檢索方法,通過接收對存儲節(jié)點(diǎn) 下合并的文件集合中的文件進(jìn)行讀取的讀取請求,根據(jù)用于檢索所述存儲節(jié)點(diǎn) 下合并的文件集合中的文件的索引,獲得并輸出所述讀取請求對應(yīng)的文件,可 文件定位效率低的問題;采用了總控與模塊調(diào)度機(jī)制,更能實(shí)現(xiàn)按需的快速調(diào) 度,提高了用戶的體驗(yàn)滿意度。相應(yīng)地,下面對本發(fā)明實(shí)施例的才莫塊及系統(tǒng)進(jìn)行說明。圖4是本發(fā)明實(shí)施例的文件組織模塊的示意圖,參照該圖,該文件組織模 塊包括有分類子模塊41、目錄建立子模塊42、獲取子模塊43、合并子模塊4全文摘要
本發(fā)明公開了一種高效的關(guān)聯(lián)主題模型數(shù)據(jù)處理方法及其系統(tǒng),其方法為在任務(wù)初始化階段,首先通過主控節(jié)點(diǎn)給出初始模型M<sub>0</sub>并將其同步到所有的計(jì)算節(jié)點(diǎn)上,然后劃分任務(wù)集并將其分布到多個(gè)計(jì)算節(jié)點(diǎn)上進(jìn)行計(jì)算;在任務(wù)執(zhí)行階段,需要進(jìn)行若干數(shù)據(jù)處理,每一輪中首先是每個(gè)計(jì)算節(jié)點(diǎn)的工作線程進(jìn)行局部并行計(jì)算獲得關(guān)于該節(jié)點(diǎn)文檔子集的主題分布和模型統(tǒng)計(jì)量,并傳送到主控節(jié)點(diǎn)進(jìn)行匯總并判斷數(shù)據(jù)處理結(jié)果是否收斂。本發(fā)明的系統(tǒng)包括一個(gè)主控節(jié)點(diǎn)和多個(gè)計(jì)算節(jié)點(diǎn),構(gòu)成一個(gè)集群計(jì)算機(jī)系統(tǒng)進(jìn)行并行計(jì)算。本發(fā)明可以顯著提高計(jì)算速度和擴(kuò)大計(jì)算目標(biāo)。
文檔編號G06F17/30GK101226557SQ200810057989
公開日2008年7月23日 申請日期2008年2月22日 優(yōu)先權(quán)日2008年2月22日
發(fā)明者樂 孫, 李文波 申請人:中國科學(xué)院軟件研究所