專利名稱:在大型有向圖中對節(jié)點進行排級的改進方法
技術領域:
本發(fā)明通常涉及用于分析大型有向圖的改進技術。更具體地說,本發(fā)明 涉及用于減少向在諸如萬維網或者任何其它超媒體數據庫之類的大型鏈接數 據庫中的節(jié)點分配排級的計算復雜度的方法。
背景技術:
鏈接數據庫(即,包含相互引用'的文檔的任何數據庫,諸如萬維網或者其
它超^^某體歸檔)可以被表示為N節(jié)點的有向圖,其中每個節(jié)點對應于一個文 檔,而且其中在節(jié)點之間的有向連接對應于從一個文檔到另一個文檔的有向 鏈接。 一個給定節(jié)點具有一組將它連接到子節(jié)點的前向鏈接,以及一組將它 連接到父(pa ren t)節(jié)點的后向鏈接。
排級或者向節(jié)點分配重要值經常是有用的。例如,可以通過依據所檢索 文檔的排級對所檢索文檔進行排序、并且首先給出最重要的文檔,來改善數 據庫搜索結果的相關性。 一種進行排級的方法是依據文檔的內部內容、或者 根據它的父文檔的標記文本(anchor text)來確定排級。當數據庫具有數百萬 或者數十億個節(jié)點時,但是這種方法變得在計算上是不可實現(xiàn)的。另一種更 有效的方法是依據在節(jié)點之間的外在關系,即依據有向圖的鏈接結構來確定 排級。這類方法被稱為基于鏈接的排級。例如,美國專利第6,285,999號公 開了由Google搜索引擎使用的、用于向網頁分配排級的基于鏈接的排級技 術。頁面排級(page rank)是頁重要性的尺度,其遞歸地定義為它的父文檔的 排級的函數??紤]另一種方法,網頁的排級是網絡沖浪者在隨機地沿著大量 鏈接之后到達該頁面的穩(wěn)態(tài)概率。因此,如果頁面具有許多父鏈接,或者如 果它的父本身具有較高的排級,則它將傾向于具有較高的排級。通過查找N x N鏈接矩陣A的主本征向量來計算數據庫的頁面排級,其中A的每個元素 aij表示N個節(jié)點的有向圖中的、從節(jié)點i移動到節(jié)點j的概率??梢允褂贸?方方法來計算主本征向量,該乘方方法是計算定義為向量的穩(wěn)態(tài)概率向量x 的迭代過程,隨著n變得非常大,xn = A。x。收斂,其中x。是初始n維向量,
例如為均勻分布。節(jié)點k的排級Xk僅僅是向量X的第k個分量。在美國專利
第6, 112, 202號中公開的、類似的基于鏈接的排級技術計算A的奇異值分解 (singular value decomposition),并且將節(jié)點的排級定義為奇異向量的相 應分量。 一種簡易但不是非常精細的技術通過簡單地統(tǒng)計節(jié)點所具有的父節(jié) 點的數目來對節(jié)點進行排級。
雖然這些基于鏈接的排級技術較現(xiàn)有技術有所改進,但是在非常大的數 據庫、諸如包含幾十億個頁面的萬維網的情況下,為所有頁面計算排級可能 花費相當多的時間。因此,提供利用更高的計算效率來計算頁面排級的技術 將是有價值的。
發(fā)明內容
本發(fā)明人已經發(fā)現(xiàn)通過利用用于數據庫的有向圖的結構特性,有可能加 速在非常大型鏈接數據庫中的排級的計算。更具體地說,本發(fā)明人已經意識 到,在鏈接數據庫中的大多數鏈接是在共享共同的自然分類或者類型的節(jié)點 之間。例如,在web數據庫的情況下,頁面可以由域名分類,而且在web中 的大多數鏈接是在同 一域中的頁面之間。在鏈接數據庫中的節(jié)點的這個分類 可用于對節(jié)點進行劃分,以便用于數據庫的鏈接矩陣具有主要為塊對角線的 形式,其中塊對應于用于形成劃分的類別。此外,在每個類別內可以有子類, 結果形成鏈"f妄矩陣的相應子塊。
本發(fā)明人已經發(fā)現(xiàn)鏈接矩陣的這個嵌套塊結構可用于將排級的計算分解 和簡化為可分離的步驟,其顯著地提高了基于鏈接進行排級的速度。實際上, 鏈接矩陣的塊對角線結構是指,對于一個好的近似,可以彼此去耦(decouple) 這些塊,而且這些塊可以作為局部化的鏈4^矩陣:故單獨處理。這允許將排級 的計算分解成分別單獨行、每塊一個的計算。然后可以把用于各種局部化塊 的這些單獨計算的結果與塊級別的排級計算組合起來,以產生用于每個節(jié)點 的近似全局排級值。具體地說,在每個塊內,可以為在塊中每個節(jié)點計算局 部排級。此外,為每個塊計算塊級別的排級。通過將節(jié)點的局部排級與包含 該節(jié)點的塊的塊排級進行組合,可以為該節(jié)點計算全局排級。這些全局排級 是對實際排級的良好近似。因此,它們可以用作近似排級,或者用作估計的 全局排級以形成初始向量,以便開始實際全局排級的迭代計算。迭代計算將 更加快速地收斂到實際排級,這是因為和均勻分布相比,該初始向量更靠近
迭代計算的極限值。
除加速排級計算之外,這種方式還具有這樣的優(yōu)點,即在每個塊內局部 排級的計算與其它塊無關。因此,局部排級可以使用不同的計算機、在不同 的時間、使用不同的排級方案來進行計算。 一旦確定了數據庫的劃分,就可 以開始與分析每個節(jié)點塊的鏈接結構相關聯(lián)的計算。此外,可以在分開的處 理器上并行分析這些塊,例如,可以在不同的計算機處計算局部排級向量, 然后不同的計算機將這些向量發(fā)送到中央計算機,其將它們與塊排級向量進 行組合以計算全局排級向量。因此,可以以高度分布式方式實現(xiàn)該技術,從 而提供非??斓乃俣?。這個技術還允許在數據庫的所選^^塊被更新或者改變
了之后有效地更新排級。另一個優(yōu)點是,那些塊或者子塊比整個web矩陣小
很多,而且可以,例如通過將當前的塊或者子塊數據全部存儲在主存儲器中, 更加有效地對它們進行逐一分析。塊結構還提供了實現(xiàn)定制排級值的實際方 法。具體地說,可以使用一組對應于節(jié)點劃分的子集的塊權重來計算定制的 塊排級。然后可以使用普通的局部頁面排級和這些定制的塊排級來計算定制 的全局排級向量
圖l是依據本發(fā)明的教義、表示簡單的鏈接數據庫的有向圖的說明,其 中數據庫的節(jié)點被劃分為兩種類型。
圖2是依據本發(fā)明的教義、表示對應于圖1中的有向圖的鏈接矩陣A的 表格,其中兩種類型的節(jié)點結果形成兩個相應的塊。
圖3是依據本發(fā)明的教義的有向圖的說明,其中每個節(jié)點表示來自圖1 中的圖形的節(jié)點的子集,而且每個鏈接表示在兩個子集之間的鏈接集合。
圖4是依據本發(fā)明的教義、表示對應于圖3中的有向圖的鏈接矩陣的表 格,其中元素對應于在圖3中的節(jié)點之間的鏈接。
圖5是依據本發(fā)明的教義、用于大型鏈接數據庫的鏈接矩陣的略圖,其 中節(jié)點被劃分類別和子類,并結果形成具有沿著對角線的塊和子塊的鏈接矩 陣。
圖6是依據本發(fā)明的教義、說明用于在鏈接數據庫中計算節(jié)點排級的技 術的流程圖。
具體實施例方式
下面參考附圖對本發(fā)明的特定實施例進行詳細描述。雖然為了說明的目 的,這些詳細描述包含許多細節(jié),但是本領域技術人員將理解,可以在本發(fā) 明的范圍內對那些細節(jié)進行許多^f'務改和替換。因此,本發(fā)明這些實施例的闡 述沒有對本發(fā)明的通用性造成任何損失,也沒有對本發(fā)明強加限制。
依據本發(fā)明的實施例,提供了 一種用于在鏈接數據庫中有效地對節(jié)點進 行排級的方法。通常,鏈接數據庫具有N個鏈接節(jié)點的有向圖的結構,其中 這些節(jié)點表示文檔、記錄、或者其它數據單元,而且在節(jié)點之間的鏈接表示 在節(jié)點之間的引用、參考、或者其它鏈接。鏈接數據庫的示例包括鏈接的電 子超文本文檔、相互引用的雜志文章、引用其它專利的專利、彼此引用的新 聞組發(fā)布或者電子郵件消息、以及通過某種類型的關聯(lián)或者估計彼此鏈接的 個人或者組織的網絡。圖1示出了表示鏈接數據庫的有向圖。僅僅為了簡化 說明,圖1中的圖形表示僅僅具有十個節(jié)點的小數據庫。但是,本發(fā)明的原 理適用于任何大小的數據庫。與本發(fā)明的實施例一起使用的數據庫可以具有 數千、數百萬、乃至數十億個節(jié)點,每個節(jié)點可以通過鏈接連接到其它節(jié)點。
例如,節(jié)點100和節(jié)點110通過鏈接120連接。鏈接從節(jié)點IOO指向節(jié)點110, 所以節(jié)點IOO被稱作節(jié)點IIO的父節(jié)點,而且節(jié)點IIO被稱作節(jié)點100的子 節(jié)點。鏈接120被稱作節(jié)點100的前向鏈接或者外出鏈接,以及被稱作節(jié)點 110的后向鏈接或者進入鏈接。
為了便于節(jié)點的排級計算,將數據庫中的節(jié)點劃分為類別或者子集。例 如,圖1中的節(jié)點被劃分為兩個子集,節(jié)點的第一子集130以及節(jié)點的第二 子集150。通常,劃分可以產生許多數目的子集。存在有各種劃分節(jié)點的可 能方法??梢酝ㄟ^先前存在的分類來先驗預先確定該劃分,和/或通過數據庫 的計算分析來計算該劃分。例如,在諸如web的國際互聯(lián)網絡超文本數據庫 的情況下,可以通過包含在與節(jié)點相關聯(lián)的統(tǒng)一資源定位符(URL)中的先前存 在信息,例如域名、主機名、和/或超文本文檔的目錄路徑名稱,來對節(jié)點進 行分類。在學術文章數據庫的情況下,可以通過研究領域、和/或雜志對節(jié)點 進行劃分。對于專利數據庫,可以由類和/或子類對節(jié)點進行劃分。如果沒有 提供用于自然地劃分節(jié)點的基礎的適當的預定分類信息可用,則可以使用各 種方法來創(chuàng)建該劃分,這些方法包括但不局限于,譜系合并聚類 (hierarchical agglomerative clustering)方法、區(qū)分聚類方法、以及k均
值(k-means)或者其它迭代聚類方法。
優(yōu)選為,這樣對節(jié)點進行劃分,以便在每個子集內的節(jié)點主要是互相鏈 接,即在同一子集內的節(jié)點之間存在有許多耦合(coupling)或者鏈接,而在 不同子集的節(jié)點之間具有相對少數的耦合或者鏈接。因此,每個子集表示彼 此強耦合但是與在其它子集中的節(jié)點僅僅弱耦合的相關節(jié)點組。例如,從圖 1中顯然可以看出,在子集130中的節(jié)點主要通過諸如鏈接140之類的鏈接 彼此鏈接,而且在子集150中的節(jié)點主要通過諸如鏈接160之類的鏈接彼此 鏈接,但是在子集130中的節(jié)點和在子集150中的節(jié)點通過相對少的鏈接 僅僅單個鏈接120,進行連接。在其中節(jié)點與特定主題有關的文檔相關聯(lián)的 鏈接數據庫中,這個劃分將依據主題分類劃分節(jié)點,這是因為文檔趨向于引 用屬于緊密相關主題的其它文檔,并且趨向于不引用屬于無關主題的其它文 檔。
N節(jié)點的鏈接數據庫的有向圖具有表示有向圖的鏈接結構的關聯(lián)N x N鏈 接矩陣A。 A中的元素a;j的值表示從節(jié)點i到節(jié)點j的鏈接的權重。圖2是 表示對應于圖1中的有向圖的鏈接矩陣A的表格。該表格的每個單元表示從 父節(jié)點i到子節(jié)點j的鏈接的權重
存在有許多確定這些權重的方法。例如,如果節(jié)點i鏈接到節(jié)點j則aij 可以為1,否則為0。在另一個示例中,aij可以被設置為等于從節(jié)點i連接到 節(jié)點j的前向鏈接的分數。做為選擇,如果F是這個分數,則aij可以被設置 為等于cP +(l-c)/N,其中c表示鏈接耦合系數。a^的值可以涉及其它項, 以便同樣考慮其它的鏈接影響。通常,如果從節(jié)點i到節(jié)點j沒有鏈接,則 相應的權重aij通常為零,或者與其它權重相比至少是最小的。較大、非零的 權重對應于具有在它們之間的鏈接的節(jié)點對。
因為節(jié)點的劃分把它們劃分成為主要去耦的節(jié)點子集,所以可以依據節(jié) 點的劃分來組織鏈接矩陣A的列和行,以便把矩陣A放置到主要是塊對角線 的形式中。換句話說,較大、非零的權重將大部分存在于沿著對角線的正方 塊內,而在這些塊之外的大多數權重將為最小或者零。例如,圖2示出了沿 著對角線的兩個塊(對應于圖1所示的兩個組130和150)。第一塊包含在節(jié) 點0到5之間的鏈接,而且第二塊包含在節(jié)點6到9之間的鏈接。因此,依 據節(jié)點的劃分,用于鏈接數據庫的矩陣A可以被分解成主要為塊對角線的形 式。做為選擇,節(jié)點到子集的劃分可用于直接形成用于每個子集的局部化鏈
接矩陣,而不是首先創(chuàng)建整個矩陣A、然后將它分解成塊以獲得局部化鏈接 矩陣。
取決于數據庫的本性以及實現(xiàn)的具體細節(jié),鏈接矩陣的每個塊可以依據 屬于該塊的節(jié)點的子劃分、被進一步分解成子塊。如同原有的劃分一樣,可 以由先前存在的分類信息預定子劃分,或者由根據鏈接數據庫的計算確定該 子劃分。如圖5所示,子塊可以又被類似地分解,以產生用于鏈接矩陣的嵌 套塊對角線結構。取決于它們的結構,與其它塊相比,某些塊可以被更進一
步地疊代分解。例如,在web上的某些域具有許多到自身的鏈接,而其中域 不呈現(xiàn)出去耦性直到主機級別或者指揮站(director)級別。 一般地說,只要 由這樣的分解產生的非零非對角線元素的數目低于預定閾值,則塊可以被進 一步分解成子塊。換句話說,如果通過分解充分地去耦了子塊,則可以進一 步分解塊。給出這種技術的一個特定說明,如果塊分解導致超過90°/ 的鏈接 包含在子塊中(在除去懸擺節(jié)點之后),則將該塊分解成子塊。在諸如web的 分布式超級本數據庫的情況下,與整個web相比較,最小的塊通常是非常小 的。 一旦完成分解過程,則確定節(jié)點的最終劃分。
因為在A的塊對角線分解中的局部鏈接矩陣塊主要被去耦了 ,所以可以 獨立地分析和處理這些塊以在計算效率方面提供各種優(yōu)點。特別是,可以與 其它塊以及它們節(jié)點的排級完全無關地使用任何排級方法計算在每個塊中節(jié) 點的排級。例如,基于鏈接的排級技術可以與其它塊相隔離地、才艮據所考慮 的一個塊的局部鏈接矩陣計算局部鏈接向量。每個節(jié)點塊可以使用不同的排 級方案,而且可以在不同的時間執(zhí)行。在節(jié)點子集中的這個節(jié)點局部排級的 結杲是局部排級向量,該向量的分量是在該子集中的節(jié)點的局部排級值(或者 得分)。當為數據庫中的所有K個塊執(zhí)行時,結果是對應于K個塊的一組K個 局部排級向量x,,…,xK。局部排級可以是用于對鏈接數據庫中的節(jié)點進行 排級的任何技術,包括諸如查找矩陣的主本征向量、執(zhí)行鏈接矩陣的奇異值 分解、或者簡單地統(tǒng)計后向鏈接之類的基于鏈接的方法。同樣還可以使用其 它排級技術計算局部排級。例如,可以基于節(jié)點訪問統(tǒng)計數計算在節(jié)點子集 中節(jié)點的局部排級,或者可以基于一組條件或者標準向節(jié)點子集中的節(jié)點分 配局部排級。同樣可以使用這些排級技術的各種組合。
在用于鏈接l史據庫的有向圖中的節(jié)點劃分可以用來形成K x K個簡化的 鏈接矩陣B,其中K是在劃分中的子集數目。筒化的鏈接矩陣是用于由劃分
而導致的簡化有向圖的鏈接矩陣。具體地說,通過劃分創(chuàng)建的節(jié)點子集對應 于簡化有向圖中的節(jié)點。例如,圖3是簡化有向圖的說明,其中節(jié)點300和
310表示來自圖1中的有向圖的節(jié)點子集130和150。圖3中的鏈接320表示 在圖1的子集130和150之間的鏈接120。如果在子集130和150的節(jié)點之 間存在更多的鏈接,則這些鏈接將組合成單個鏈接320。塊鏈接矩陣B表示 簡化圖的鏈接結構。例如,圖4是表示對應于圖3中的有向圖的鏈接矩陣的 表格。矩陣B的對角元素對應于沿著矩陣A的對角線的塊。B的非對角線元 素表示在節(jié)點子集之間的鏈接。
可以以各種可選4奪的方法計算矩陣B。例如,在子集I和J之間的鏈接 的權重BIJ可以計算為從塊I中的節(jié)點到塊J中的節(jié)點的鏈接的權重aij的總 和,其中每個鏈接由在塊I中的節(jié)點i的局部排級進行加權。也就是說,B = !^aij(xJi,其中(xOi是局部排級向量Xi的第i個分量(即,在塊I中的節(jié)點 i的排級),而且其中在塊J中的所有節(jié)點j以及在塊I中的所有節(jié)點i上進 行總和。做為選擇,這個塊鏈接矩陣分量可以計算為從子集I到子集J的鏈 接數目對來自子集I的外出鏈接數目的比率。鏈接矩陣權重還可以取決于個 性化的權重,導致定制到個人的塊排級。例如,K個個性化權重V:,…,Vt 可以用來從普通的鏈接矩陣B中導出定制的鏈接矩陣B',這通過:J巴它的元素 等于為B, (1-c)V完成。這個的效果是改變從任何其它子集I到
子集J的鏈接的耦合強度。在網絡沖浪的情況下,這可以解釋為在沖浪者將 隨機決定跳到塊J的概率的加權改變。所以,通過選擇K個權重以反映在與 該K個塊相關聯(lián)的主題中、個人興趣的等級,將改變產生的塊鏈接矩陣,以 <更該變換更準確地反映個人的偏愛。
使用基于鏈接的排級技術,可以從簡化的鏈接矩陣B中計算出塊排級向 量b—h,…,bK),其中向量b的每個分量bK是用于節(jié)點的第k個子集的塊 級別排級?;阪溄拥呐偶売嬎愕氖纠ú檎益溄泳仃嚨闹鞅菊飨蛄?、執(zhí) 行鏈接矩陣的奇異值分解、或者簡單地統(tǒng)計后向鏈接。在這個步驟中使用的 基于鏈接的排級技術不需要與在計算局部排級中使用的一個或者多個基于鏈 接的排級技術的任何一個相同。如果已經定制了塊鏈接矩陣,則從這個定制 的鏈接矩陣中計算得到塊排級向量也將反映個人偏愛。特別是,與沒有偏愛 定制進行排級相比,偏愛的塊將具有更高的排級。
一旦獲得了子集的局部排級向量x!,…,xK,以及獲得了簡化圖的塊排
級向量b,則可以計算全局排級向量g。例如,可以把在塊I中的節(jié)點i的全 局排級gi定義為由該節(jié)點所屬的塊的塊排級縮放了的節(jié)點的局部排級。也就
是說,gi-(x丄b"顯而易見,同樣可以以其它方法組合局部和塊排級??梢?br>
為所有節(jié)點執(zhí)行這個,以獲得全局排級向量,該向量的元素是整個鏈接數據 庫的節(jié)點的排級。然而,為了獲得僅僅一個節(jié)點的全局排級,不需要計算整 個全局排級向量。組合用于該節(jié)點的局部排級和用于該節(jié)點的塊排級是足夠 的。在任何情況下, 一旦已經計算了該全局排級,則它可以用作該節(jié)點的排 級,或者作為在排級更精確計算中的高級起始點。在后者的情況下, 一般計 算整個全局排級向量,然后使用迭代的、基于鏈接的排級計算來改進它。然 后可以通過簡單地選擇對應于所選擇節(jié)點的、全局排級向量的適當分量,查 找所選擇節(jié)點的特定全局排級。
通過計算局部排級和塊排級、然后組合它們以產生全局排級的兩級處理 來計算排級的方法具有幾個重要的優(yōu)點。因為可以獨立地計算局部排級,所 以可以由單獨的處理器并行計算局部排級。即使計算不是分布式的,在將鏈 接矩陣分離為單獨塊方面也本來就有計算的益處。此外,因為局部鏈接矩陣 小于用于整個數據庫的鏈接矩陣,在局部鏈接矩陣可以全部包含在存儲器中 的情況下,可以更有效地對局部鏈接矩陣進行計算。另一個優(yōu)點是當數據庫 的一部分更新或者修改了是,僅僅需要再計算相關聯(lián)的局部排級,而且可以 利用先前的局部排級向量進行重新計算。這種方式還簡化了個性化或者定制 排級的計算。例如,當計算塊排級時可以使用個性化的權重向量(每個子集一 個權重)??梢詮亩ㄖ频膲K排級和局部排級中容易地計算定制的全局排級,這 提供了一種用最小的額外計算開銷定制全局排級的簡單方法。此外,每次計 算新定制的排級時不需要重新計算局部排級。可以存儲和重新使用局部排級, 以便基于各種個性化的權向量計算各種不同的定制排級。
圖6為一個流程圖,其提供了依據發(fā)明的一個實施例、用于計算在鏈接 數據庫中的節(jié)點排級的技術的概述。在步驟600,確定在鏈接數據庫中節(jié)點 的分類。如果分類基于在數據庫中節(jié)點的先前存在的分類,則可以省略步驟 600。否則,分析該鏈接數據庫以對節(jié)點進行分類,以便產生的類別基本上是 彼此分離的。在步驟610,該分類用于將節(jié)點劃分為K個子集。在其中節(jié)點 早已經依據劃分分成子集的情況下(例如,在其中子集對應于存儲了數據庫的 不同部分的各種計算機系統(tǒng)的分布式數據庫的情況下),可以省略這個步驟。
否則,依據該劃分組織或者排序節(jié)點,以創(chuàng)建K個子集。在步驟620,為第 一節(jié)點子集形成第一局部鏈接矩陣,并且在步驟630,從第一局部鏈接矩陣 中計算第一局部排級向量L。為其它的子集執(zhí)行類似的步驟,直至并且包括 其中為第K個子集形成第K個局部鏈接矩陣的步驟640,以及其中計算第K 個局部排級向量XK的步驟650為止。這些步驟可以在單獨的處理器上獨立地 執(zhí)行(例如,在分布式數據庫的各種計算機系統(tǒng)上執(zhí)行)。在步驟660,形成 簡化鏈接矩陣B,并且在步驟670,從鏈接矩陣B中計算塊排級向量b。在步 驟68G中,通過將局部排級向量與塊排級向量組合,計算全局排級向量。
全局排級向量可以用來排級搜索結果,或者可以用作在用于凄t據庫鏈接 矩陣A的、基于鏈接的排級技術中的初始向量,該技術用于計算最終的全局 排級向量。全局排級向量還可以在該方法的后續(xù)應用中使用,以-提供局部排 級向量而不需要再次從局部鏈接矩陣中計算每個局部排級向量??梢酝ㄟ^把 全局排級向量劃分為對應于劃分的K個子集,獲得局部排級向量。這些局部 排級向量中的一個或多個可以在全局排級向量的后續(xù)重新計算中使用。因此, 通常不需要從局部鏈接矩陣中計算局部排級向量,而是可以通過劃分先前存 在的全局排級向量計算得到,或者通過使用用于節(jié)點子集的任何節(jié)點排級技 術計算得到。
上述技術可以有利地與用于加速頁面排級計算的其它技術如二次外插法 以及高斯-塞德耳(Gauss - Seidel)算法,組合、集合或者分離。
權利要求
1、一種用于在鏈接數據庫中計算排級的方法,該方法包含獲得與在鏈接數據庫中的選定節(jié)點子集相關聯(lián)的局部排級向量,其中局部排級向量的每個分量表示在該選定節(jié)點子集中的節(jié)點的局部排級;獲得與鏈接數據庫相關聯(lián)的塊排級向量,其中塊排級向量中的每個分量表示在鏈接數據庫中的節(jié)點子集的塊排級,其中所述子集是由在鏈接數據庫中的節(jié)點的劃分所定義的多個節(jié)點子集之一;選擇塊排級向量的分量,該分量對應于所選擇的節(jié)點子集;選擇局部排級向量的分量,該分量對應于在選擇節(jié)點子集中的選定節(jié)點;將塊排級向量的選定分量和局部排級向量的選定分量組合起來,以獲得用于選定節(jié)點的全局排級。
2、 如權利要求l所述的方法,其中,獲得局部排級向量包含從計算了 局部排級向量的計算機接收局部排級向量。
3、 如權利要求l所述的方法,其中,獲得局部排級向量包含選擇先前 存在的全局排級向量的分量。
4、 如權利要求l所述的方法,其中,獲得局部排級向量包含形成局部 鏈接矩陣以及從該局部鏈接矩陣中計算該局部排級向量,其中該局部鏈接矩 陣包含在所選擇子集的節(jié)點之間的鏈接權重。
5、 如權利要求l所述的方法,還包含將鏈接數據庫中的節(jié)點分類為主 題類別,并且依據該主題類別將節(jié)點的劃分創(chuàng)建為多個子集。
6、 如權利要求l所述的方法,還包含獲得與多個子集相關聯(lián)的多個局 部排級向量。
7、 如權利要求l所述的方法,其中,獲得塊排級向量包含形成用于鏈 接數據庫的簡化鏈接矩陣,并且從該筒化鏈接矩陣中計算塊排級向量。
8、 如權利要求7所述的方法,其中,形成所述簡化鏈接矩陣包含使用一 組與子集相關聯(lián)的偏愛權重來改變所述簡化鏈接矩陣的元素,以便依據該偏 愛權重定制塊排級向量。
9、 如權利要求l所述的方法,還包含使用迭代的、基于鏈接的排級技 術從該全局排級中計算最終排級。
10、 如權利要求l所述的方法,還包含使用全局排級來確定在其它節(jié)點當中所選擇節(jié)點的呈現(xiàn)次序。
11、 一種用于計算在鏈接數據庫中的節(jié)點的排級值的方法,該方法包含 依據節(jié)點的類別將鏈接數據庫的節(jié)點劃分為K個子集;為K個節(jié)點子集計算K個局部排級向量; 從K x K簡化鏈接矩陣中計算塊排級向量;從局部排級向量和塊排級向量中計算全局排級向量;以及 選擇對應于該節(jié)點的全局排級向量的分量,以獲得用于該節(jié)點的排級值。
12、 如權利要求11所述的方法,其中,計算K個局部排級向量包含將 用于鏈接數據庫的鏈接矩陣布置為對應于將節(jié)點劃分為子集的塊對角線形 式;從鏈接矩陣的塊中形成K個局部鏈接矩陣;以及從該K個局部鏈接矩陣 中計算K個局部排級向量。
13、 如權利要求11所述的方法,其中,計算K個局部排級向量包含對 局部鏈接矩陣執(zhí)行基于鏈接的排級算法。
14、 如權利要求13所述的方法,其中,基于鏈接的排級算法包含計算 局部鏈接矩陣的主要本征向量。
15、 如權利要求13所述的方法,其中,基于鏈接的排級算法包含執(zhí)行 局部鏈接矩陣的奇異值分解。
16、 如權利要求13所述的方法,其中,基于鏈接的排級算法包含形成 表示矩陣的行總和或列總和的向量。
17、 如權利要求11所述的方法,其中,計算K個局部排級向量包含將 先前存在的全局排級向量劃分為K個部分。
18、 如權利要求11所述的方法,其中,計算塊排級向量包含形成筒化 鏈接矩陣,以及從該簡化鏈接矩陣中計算塊排級向量,其中該簡化鏈接矩陣 的元素表示在劃分的子集之間的鏈接。
19、 如權利要求18所述的方法,其中,形成簡化鏈接矩陣包含通過將 從在第一塊中的節(jié)點到在第二塊中的節(jié)點的鏈接權重相加在一起,來計算在 第 一塊和第二塊之間的塊鏈接權重。
20、 如權利要求18所述的方法,還包含使用與子集相關聯(lián)的一組偏愛 權重來定制簡化鏈接矩陣。
21、 如權利要求11所述的方法,其中,從局部排級向量和塊排級向量中 計算全局排級向量包含從局部排級向量和塊排級向量中計算估計的全局排級向量;使用迭代的、基于鏈接的排級技術來從估計的全局排級向量中計算全局 排級向量。
22、 如權利要求11所述的方法,其中,計算K個局部排級向量是在K 個分布式計算機處被執(zhí)行,而且其中計算全局排級向量是在中央計算機處被 執(zhí)行。
23、 如權利要求11所述的方法,其中,鏈接數據庫是超文本文檔的分布 式集合,而且節(jié)點的類別是基于節(jié)點的URL地址的。
24、 如權利要求11所述的方法,其中,節(jié)點的類別是在鏈接數據庫中的 文檔的預定主題類別。
25、 如權利要求11所述的方法,其中,根據鏈接數據庫的鏈接結構來計 算確定節(jié)點的類別。
26、 如權利要求11所述的方法,其中,根據與節(jié)點相關聯(lián)的內容相似性來計算確定節(jié)點的類別。
27、 一種用于計算在鏈接數據庫中的節(jié)點塊的排級值的方法,該方法包含依據節(jié)點的類別將鏈接數據庫的節(jié)點劃分為子集; 形成簡化鏈接矩陣,該簡化鏈接矩陣的元素表示在該劃分的子集之間的 鏈接;從該筒化鏈接矩陣中計算塊排級向量;選擇對應于該節(jié)點塊的塊排級向量的分量,以獲得用于該節(jié)點塊的排級值。
28、 如權利要求27所述的方法,其中,形成簡化鏈接矩陣包含通過將 從在第 一塊中的節(jié)點到在第二塊中的節(jié)點的鏈接權重相加在一起,來計算在 第一塊和第二塊之間的塊鏈接權重。
全文摘要
用于將排級分配給在諸如萬維網或者任何其它超媒體數據庫之類的大型鏈接數據庫中的節(jié)點的技術,對這些節(jié)點進行劃分以便鏈接矩陣具有主要為塊對角線的形式。在每個塊內,有可能由在分布式計算環(huán)境中的不同計算機計算在塊中節(jié)點的局部排級。然后為作為整體的每個塊估算塊排級,并且可以可選地包括塊級別的權重以實現(xiàn)定制的排級。然后將局部排級和塊排級組合起來以形成全局排級,其可以用于對節(jié)點進行排級。作為選擇,用于數據庫的全局排級向量可以用作在迭代的、基于鏈接的排級方案中的初始向量,以獲得用于節(jié)點的更準確全局排級。可以對全局排級向量進行劃分,以提供用于在該方法的后續(xù)應用中使用的局部排級向量。
文檔編號G06F17/30GK101176092SQ200480014642
公開日2008年5月7日 申請日期2004年3月26日 優(yōu)先權日2003年3月28日
發(fā)明者吉恩·戈拉布, 塞潘達·D·坎瓦爾, 格倫·杰, 泰爾·H·哈夫利瓦拉 申請人:小利蘭斯坦福大學理事會