專利名稱:用于有效預(yù)先計算的可分解的分級的制作方法
技術(shù)領(lǐng)域:
本申請涉及信息和文件搜索領(lǐng)域。
背景技術(shù):
在互聯(lián)網(wǎng)上可得到的信息和內(nèi)容的數(shù)量非??焖俚爻掷m(xù)增長。給定巨大數(shù)量的信息,搜索引擎已經(jīng)被開發(fā)以便于搜索電子文件。特別地,用戶可以通過輸入搜索查詢以搜索信息和文件,該查詢包括用戶可能感興趣的一個或多個術(shù)語(term)。在從用戶接收到搜索查詢后,搜索引擎基于該搜索查詢識別相關(guān)的文件和/或網(wǎng)頁。因為其有用,網(wǎng)頁搜索,即對于用戶發(fā)出的搜索查詢尋找相關(guān)網(wǎng)頁和文件的過程,可以說已經(jīng)成為互聯(lián)網(wǎng)上當(dāng)今最流行的業(yè)務(wù)。搜索引擎通過如下方式運(yùn)行使用爬蟲技術(shù)搜集(crawling)文件和在搜索索引中給關(guān)于該文件的信息編索引。當(dāng)接收到搜索查詢時,搜索引擎使用搜索索引以識別與該搜索查詢相關(guān)的文件。例如,可以使用分級(ranking)功能以基于檢索查詢確定最相關(guān)的文件以呈現(xiàn)給用戶。然而,分級功能已經(jīng)變得日益復(fù)雜,這樣數(shù)以百計的特征被用來分級文件。當(dāng)單獨(dú)使用時,復(fù)雜的分級功能由于成本和時間的約束是無效的。發(fā)明概述
提供這個概述以按照簡化的形式介紹概念的選擇,所述概念將在下面的詳細(xì)描述部分被進(jìn)一步描述。這個概述其意不在標(biāo)識所請求保護(hù)的主題的關(guān)鍵特征或者必要特征,也不在被用來幫助確定所請求保護(hù)的主題的范圍。本發(fā)明的實施方式涉及與整個分級過程的初步分級階段結(jié)合使用的算法的生成。 如下面進(jìn)一步描述的,整個分級過程可以包括匹配階段、初步分級階段和最終分級階段??梢越o數(shù)以億計或者甚至萬億計的文件編索引。因為最終分級功能通常比初步分級功能更加昂貴并且耗費(fèi)時間,所以匹配階段和初步分級階段需要起作用以限制最終分級功能需要分級的候選文件的數(shù)量。通常,在初步分級階段使用的初步分級功能是在最終分級階段使用的最終分級功能的簡化版本。這樣,最終分級功能被分析以識別能夠被預(yù)先計算的或者在接收查詢后不容易被實時計算的分級特征(例如文件分級特征)以及容易被實時計算的分級特征。不在最終分級功能中使用的分級特征還可以在初步分級功能中被使用。一旦生成算法,其能夠被用來計算文件的初步分級。附圖簡述
下面參考附圖詳細(xì)描述本發(fā)明,其中
圖1是適于用來實現(xiàn)本發(fā)明實施方式的示例性計算環(huán)境的框圖; 圖2是在其中可以使用本發(fā)明的實施方式的示例性系統(tǒng)的框圖; 圖3是示出根據(jù)本發(fā)明的實施方式生成用于為多個文件提供初步分級的算法的方法的流程圖4是示出根據(jù)本發(fā)明的實施方式計算文件的初步分級的方法的流程圖;和圖5是示出根據(jù)本發(fā)明的實施方式在初步分級階段中利用來自最終分級階段的分級特征以確定文件的初步分級方法的流程圖。詳細(xì)描述
在這里帶有特殊性地描述了本發(fā)明的主題以滿足法定的要求。然而,該描述其自身并不意圖限制本專利的范圍。相反地,發(fā)明人已經(jīng)預(yù)期到還可以結(jié)合其它現(xiàn)有或未來的技術(shù)按照其它方式具體化所請求保護(hù)的主題,以包括與本文檔中描述的內(nèi)容類似的不同步驟或步驟組合。此外,雖然在此處可以使用術(shù)語“步驟”和/或“框”表示所使用的方法的不同元素,但是該術(shù)語不被解釋為意味了在此處公開的多個步驟之中或步驟之間有任何特定的順序,除非明確描述了個別步驟間的順序。如上面提及的,本發(fā)明的實施方式提供用于生成在整個分級過程的初步分級階段中使用的算法。實施方式還提供用于使用該算法計算文件的初步分級,這樣發(fā)送至最終分級組件的文件數(shù)量被極大地減少。如所提到的,初步分級功能通常是快速并且低成本的計算,其是最終分級功能的有用估計。初步分級功能在識別減少的相關(guān)文件集方面是能夠被信任的,其對于更多代價的最終分級階段是有價值的。這樣,能夠被預(yù)先計算的(例如文件分級特征)或者在接收到查詢后不容易被實時計算的分級特征,諸如能夠被最終分級功能使用的靜態(tài)特征和動態(tài)原子隔離組件(atom-isolated component),被識別為由初步分級功能使用的潛在分級特征。這些識別的分級特征包括以下的組合在查詢匹配時刻容易被計算的那些特征、在查詢匹配時刻不容易被計算的并且能夠被預(yù)先計算的那些特征、對于根據(jù)在估計最終分級中的逼真度(fidelity)度量的測量有用的那些特征、和即使初步分級功能被更改時仍保持有用方面有適用性的那些特征。對于原子(atom)/文件對的預(yù)先計算的分?jǐn)?shù)被存儲在搜索索引中并且在初步分級的計算期間被提取。被發(fā)現(xiàn)是最相關(guān)的文件被發(fā)送至最終分級階段。利用逼真度測量以確保最終分級功能和初步分級功能相類似地分級文件以確定在兩個分級階段之間的逼真度和低錯誤率。因此,在一個方面,本發(fā)明的實施方式指向一種生成算法的方法,該算法被用來提供對多個文件的初步分級。該方法包括分析最終分級功能,該最終分級功能用于為多個文件計算最終分級。從最終分級功能中,該方法進(jìn)一步包括識別包括一個或多個靜態(tài)分級特征和一個或多個動態(tài)原子隔離組件的潛在初步分級特征,該靜態(tài)分級特征是獨(dú)立于查詢的,該動態(tài)原子隔離組件與單個原子相關(guān)。附加地,該方法包括從潛在初步分級特征中選擇一個或多個初步分級特征以用于初步分級功能,并使用至少一個或多個初步分級特征以生成一種用于提供對多個文件的初步分級的算法。在另一個實施方式中,本發(fā)明的一個方面指向一種用于計算文件的初步分級的方法。該方法包括識別獨(dú)立于查詢的靜態(tài)分級特征,并識別與單個原子相關(guān)的動態(tài)原子隔離組件。進(jìn)一步地,該方法包括選擇一組初步分級特征,包括一個或多個靜態(tài)分級特征和一個或多個動態(tài)原子隔離組件。對于第一文件,該方法從搜索索引中提取相應(yīng)于初步分級特征的集合的數(shù)據(jù)?;谒阉鞑樵儯摲椒ㄊ褂迷撎崛〕龅臄?shù)據(jù)以計算第一文件的初步分級。本發(fā)明的另一個實施方式指向一個或多個計算機(jī)存儲介質(zhì),存儲有計算機(jī)可使用指令,當(dāng)由計算設(shè)備使用時,其使得該計算設(shè)備執(zhí)行用于在初步分級階段中利用來自最終分級階段的分級特征來確定文件的初步分級的方法。該方法包括分析最終分級功能以識別分級特征的第一子集,包括獨(dú)立于查詢的分級特征和單個原子分級特征,并選擇在最終分級功能中未使用的分級特征的第二子集。進(jìn)一步地,該方法包括從分級特征的第一子集和
5第二子集中選擇一個或多個初步分級特征以供使用初步分級功能計算多個文件的初步分級時使用,該初步分級功能限制了使用最終分級功能分級的文件的數(shù)量。至少基于從搜索索引中提取的與分級特征的第一子集和第二子集關(guān)聯(lián)的數(shù)據(jù),該方法使用初步分級功能算法化地識別多個文件的子集。該方法附加地包括將相應(yīng)于多個文件的子集的文件標(biāo)識通信至最終分級階段,其使用最終分級功能以計算該多個文件的子集中的每個文件的最終分級。已經(jīng)簡要地描述了本發(fā)明實施方式的概況,在下面描述一種可以在其中實現(xiàn)本發(fā)明實施方式的示例性操作環(huán)境,以便為本發(fā)明的各個方面提供一種一般的背景。特別地,初步參考圖1,示出了一種用于實現(xiàn)本發(fā)明實施方式的示例性操作環(huán)境,一般地指定為計算設(shè)備100。計算設(shè)備100僅是合適的計算環(huán)境的一個例子,并不意圖暗示對本發(fā)明用途或功能性的范圍的限制。計算設(shè)備100也不應(yīng)被解釋為對于所圖示的組件中任意一個或其組合有任何依賴或要求。本發(fā)明可以在由計算機(jī)或其它機(jī)器(諸如個人數(shù)據(jù)助理或者其它手持設(shè)備)執(zhí)行的計算機(jī)代碼或包括計算機(jī)可執(zhí)行指令(諸如程序模塊)的機(jī)器可使用指令的一般背景下描述。通常,包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等的程序模塊指的是執(zhí)行特定任務(wù)或者實現(xiàn)特定抽象數(shù)據(jù)類型的代碼。本發(fā)明可以在多種系統(tǒng)配置中實行,包括手持設(shè)備、消費(fèi)電子、通用計算機(jī)、更專用的計算設(shè)備等。本發(fā)明還可以在分布式計算環(huán)境中實行,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。參考圖1,計算設(shè)備100包括總線110,其直接或間接地耦合下述設(shè)備存儲器 112、一個或多個處理器114、一個或多個呈現(xiàn)組件116、輸入/輸出(I/O)端口 118、輸入/ 輸出組件120和圖示的電源122??偩€110代表一條或多條總線(諸如地址總線、數(shù)據(jù)總線或其組合)。雖然為了清楚的目的使用線條示出了圖1中的多個框,但是事實上,描繪各個組件不是那么清楚,打個比方,線條更精確地將是灰色和模糊的。例如,可以認(rèn)為諸如顯示設(shè)備的呈現(xiàn)組件是I/O組件。而且,處理器具有存儲器。發(fā)明人認(rèn)識到這是現(xiàn)有技術(shù)的特征,并且重申圖1的圖僅是能夠結(jié)合本發(fā)明的一個或多個實施方式使用的示例性計算設(shè)備的圖示。在諸如“工作站”、“服務(wù)器”、“膝上型電腦”、“手持設(shè)備”等種類之間并不進(jìn)行區(qū)分, 因為所有這些都預(yù)期在圖1的范圍中并都被稱為“計算設(shè)備”。計算設(shè)備100典型地包括多種計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)能夠是可以由計算設(shè)備100存取的任何可用介質(zhì),并且包括易失和非易失的介質(zhì)、可移除和非可移除的介質(zhì)。通過示例和非限制的,計算機(jī)可讀介質(zhì)可以包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)包括以任意方法或技術(shù)實現(xiàn)的易失和非易失、可移除和非可移除的介質(zhì),用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)之類的信息。計算機(jī)存儲介質(zhì)包括但不限于RAM、ROM、EEPR0M、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能光盤DVD或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲或其它磁存儲設(shè)備或者能夠用來存儲所需要的信息并且能夠由計算設(shè)備100存取的任意其它介質(zhì)。通信介質(zhì)典型地具體化為在已調(diào)制數(shù)據(jù)信號中的計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),該已調(diào)制數(shù)據(jù)信號例如是載波或其它傳輸機(jī)制,并且包括任意信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”意指這樣的信號,該信號的特性中的一個或多個以將信息編碼在該信號中的方式被設(shè)置或者改變。通過示例而非限制地,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或者直接有線連接的有線介質(zhì)和諸如聲音、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。以上的任意組合也將被包括在計算機(jī)可讀介質(zhì)的范圍內(nèi)。存儲器112包括以易失和/或非易失形式的計算機(jī)存儲介質(zhì)。存儲器可以是可移除的、非可移除的或者其組合。示例性的硬件設(shè)備包括固態(tài)存儲器、硬盤驅(qū)動器、光盤驅(qū)動器等。計算設(shè)備100包括一個或多個處理器,從諸如存儲器112或I/O組件120的多種實體中讀取數(shù)據(jù)。(多個)呈現(xiàn)組件116將數(shù)據(jù)指示呈現(xiàn)給用戶或其它設(shè)備。示例性呈現(xiàn)組件包括顯示設(shè)備、揚(yáng)聲器、打印組件、振動組件等。I/O端口 118允許計算設(shè)備100邏輯地耦合至包括I/O組件120的其它設(shè)備,I/O 組件120中的一些可以是內(nèi)建的。圖示的組件包括麥克風(fēng)、操縱桿、游戲手柄、碟形衛(wèi)星天線、掃描儀、打印機(jī)、無線設(shè)備等?,F(xiàn)在參考圖2,提供一種框圖以圖示其中可以使用本發(fā)明實施方式的示例性系統(tǒng) 200。應(yīng)當(dāng)理解此處描述的這些和其它設(shè)置只是作為例子而提出。在所示出的那些之外或代替示出的那些,能夠使用其它設(shè)置和元素(例如機(jī)器、接口、功能、次序和功能組合等),并且一些元素能夠被一起省略。進(jìn)一步地,此處描述的許多元素是功能實體,其能夠?qū)崿F(xiàn)為分離的或者分布式組件或者與其它組件相結(jié)合,并在任何合適的組合和位置中。此處描述的由一個或多個實體執(zhí)行的各種功能可以由硬件、固件和/或軟件完成。例如,多種功能可以通過處理器執(zhí)行存儲在存儲器中的指令而完成。除了未示出的其它組件,系統(tǒng)200包括用戶設(shè)備202、數(shù)據(jù)存儲器204、分級服務(wù)器 206和搜索索引220。在圖2中示出的組件的每一個可以是任意類型的計算設(shè)備,諸如例如參考圖1描述的計算設(shè)備100。組件可以經(jīng)由網(wǎng)絡(luò)208彼此通信,網(wǎng)絡(luò)208可以包括但不限于一個或多個局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN)。在辦公室、企業(yè)計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)中,該聯(lián)網(wǎng)環(huán)境是普通的。應(yīng)當(dāng)理解在本發(fā)明的范圍內(nèi),在系統(tǒng)200中可以使用任意數(shù)量的用戶設(shè)備、分級服務(wù)器、分級生成器、數(shù)據(jù)存儲器和搜索索引。每個可以包括單個設(shè)備或者在分布式環(huán)境中協(xié)作的多個設(shè)備。例如,分級服務(wù)器206可以包括布置在分布式環(huán)境中的多個設(shè)備,其共同地提供此處描述的分級服務(wù)器206的功能。另外,未示出的其它組件也可以被包括在系統(tǒng)200中,同時在圖2中示出的組件在一些實施方式中可以被省略。本發(fā)明實施方式使用的搜索索引220給文件中更高階的原語(higher order primitive)或“原子”編索引,與簡單地給單個術(shù)語編索引成對比。如此處使用,“原子” 可以指查詢或文件的多種單元。這些單元可以包括例如術(shù)語、n-gram(n元語法),η元組, k-near η元組等。術(shù)語向下映射至通過所使用的特定記號化裝置(tokenizer)技術(shù)定義的單個符號或單詞。術(shù)語在一個實施方式中是單個字符。在另一個實施方式中,術(shù)語是單個單詞或一組單詞。n-gram是可以從文件中提取出來的“η”個連續(xù)的或者幾乎連續(xù)的術(shù)語的序列。如果它相應(yīng)于連續(xù)術(shù)語的游程(rim),n-gram被稱為“緊的(tight)”,如果它以術(shù)語在文件中出現(xiàn)的順序包含術(shù)語,但該術(shù)語不是必須連續(xù)的,則被稱為“松的(loose)”。 松n-gram典型地被用于表示等同的短語的類,等同的短語其差別在于無意義的詞語(例如 "if it rains I,11 get wet (如果下雨我將被淋濕)”和 “if it rains then I,11 get wet (如果下雨則我將被淋濕)”)。如此處使用的,η元組是文件中同時出現(xiàn)(獨(dú)立于順序或者依賴于順序)的“η”個術(shù)語的集合。進(jìn)一步地,如此處使用的,k-near η元組指的是在文件中“k”個術(shù)語的窗口之內(nèi)同時出現(xiàn)的“η”個術(shù)語的集合。因此,原子通常被定義為以上所有的概括。實現(xiàn)本發(fā)明的實施方式可以使用不同種類的原子,但是如此處使用的,原子通
7常描述上述種類中的每一個。用戶設(shè)備202可以是能夠接入網(wǎng)絡(luò)208的終端用戶擁有和/或操作的任意類型的計算設(shè)備。例如,用戶設(shè)備202可以是桌面計算機(jī)、膝上型電腦、平板電腦、移動設(shè)備或具有網(wǎng)絡(luò)接入的任意其它設(shè)備。通常,除了別的之外,終端用戶還可以使用用戶設(shè)備202以訪問系統(tǒng)維持的電子文件,系統(tǒng)例如是分級服務(wù)器206或類似的。例如,終端用戶可以使用用戶設(shè)備202上的網(wǎng)頁瀏覽器以訪問并觀看來自分級服務(wù)器206的電子文件。在其它實施方式中,文件沒有被存儲在分級服務(wù)器206上,而是可以被存儲在數(shù)據(jù)存儲器204中。分級服務(wù)器206通常負(fù)責(zé)選擇分級特征以用于整個分級過程的初步分級階段。通常,整個分級過程包括兩個或多個分級階段,諸如初步分級階段和最終分級階段。在此處描述的實施方式中,初步分級階段利用在最終分級階段中使用的一個或多個分級特征,諸如不具有原子相互依賴性的那些分級特征。而第二分級階段被命名為“最終分級過程”的“最終分級階段”,在這個階段之后還可能有其它分級階段,這樣詞語“最終”的使用并不意味著暗示了它是最后的階段。例如,初步分級階段可以是第一分級階段,最終分級階段可以是第二分級階段。在特定實施方式中可以使用特殊化的第三分級階段,這預(yù)期也包括在本發(fā)明的范圍內(nèi)。如上面簡要提及的,當(dāng)接收到搜索查詢時,采用整個分級過程以將匹配文件的數(shù)量降低到易處理的規(guī)模。在一些實施方式中,搜索引擎可以采用階段化的過程以選擇搜索查詢的搜索結(jié)果。當(dāng)接收到搜索查詢時,分析該搜索查詢以識別原子。然后在整個分級過程的各個階段期間使用該原子。這些階段可以被稱為LO階段(匹配階段)以查詢搜索索引并識別包含來自搜索查詢的該原子或原子中至少一些的匹配文件的初步集合。這個初步的過程可以將候選文件的數(shù)量從搜索索引中編了索引的全部文件減少到與來自搜索查詢的原子相匹配的那些文件。例如,搜索引擎可以在百萬甚至數(shù)兆文件中搜索以確定與特定搜索查詢最相關(guān)的那些。一旦LO匹配階段完成,候選文件的數(shù)量被大大地減少。然而,用于定位最相關(guān)文件的許多算法成本高并且浪費(fèi)時間。這樣,也可以采用兩個或更多階段(N階段),包括初步分級階段和最終分級階段。初步分級階段常常比使用最終分級階段成本有效地深度分析的能識別更多候選文件。當(dāng)在整個分級過程中采用N個階段時,每個早期的階段可以利用在后期階段中使用的特征的子集,并且還可以使用在后期階段中未使用的特征。這樣,每個早期階段基本是后期階段提供的分級的近似,但是較不昂貴并且可能是簡化的。初步分級階段,也被稱為Ll階段,采用簡化的計分功能,用于為上面描述的LO匹配階段中保留的候選文件計算初步得分或分級。這樣,初步分級組件210負(fù)責(zé)為LO匹配階段中保留的每個候選文件提供初步分級。與最終分級階段相比較,初步分級階段是簡化的,因為它只采用最終分級階段使用的分級特征的子集。例如,在最終分級階段中使用分級特征中的一個或多個,但很可能不是全部,被初步分級階段采用。另外,初步分級階段也可以采用最終分級階段不采用的特征。在本發(fā)明的實施方式中,初步分級階段使用的分級特征不具有原子相互依賴性,諸如術(shù)語緊密和術(shù)語共存。例如,在初步分級階段中使用的分級特征可以包括,僅為了示例的目的,靜態(tài)特征和動態(tài)原子隔離的組件。靜態(tài)特征通常是那些只針對獨(dú)立于查詢的特征的組件。靜態(tài)特征的例子包括頁面分級、特定網(wǎng)頁的垃圾郵件評分等。動態(tài)原子隔離的組件是一次只關(guān)注與單個原子相關(guān)的特征的組件。例子包括例如BM25f,文件中特定原子的頻率,文件中原子的位置(上下文)(例如標(biāo)題、URL、作者、頭部、主體、業(yè)務(wù)、類、屬性)等。一旦候選文件的數(shù)量已經(jīng)被初步分級階段再次地減少,最終分級階段,也被稱作 L2階段,分級由初步分級階段提供給它的候選文件。與最終分級階段共同使用的算法是更昂貴的操作,與初步分級階段使用的分級特征相比其使用更大數(shù)量的分級特征。然而,最終分級算法被應(yīng)用于數(shù)量少得多的候選文件。最終分級算法提供了已分級文件的集合,基于該已分級文件的集合,響應(yīng)于原始搜索查詢提供了搜索結(jié)果。回到分級服務(wù)器206,分級服務(wù)器206包括多種組件,其中每個為計算候選文件的初步分級和通過分級和削減只選擇與搜索查詢相關(guān)的那些文件傳送給最終分級階段的過程提供了功能性。這些組件包括初步分級組件210、最終分級組件212、特征選擇組件214、 算法生成組件216和數(shù)據(jù)提取組件218。在圖2中未圖示的可以被用于為文件提供初步分級并將保留的文件數(shù)量削減到可管理的規(guī)模的組件也預(yù)想被包括在本發(fā)明的范圍內(nèi)。進(jìn)一步地,并不是與分級服務(wù)器206相關(guān)示出的所有組件都被使用,或者在一些實施方式中,可以與其它組件結(jié)合。如上面簡要描述的,初步分級組件210負(fù)責(zé)分級一個候選文件集合并且因此減少將被傳送至最終分級階段的候選文件的數(shù)量,該最終分級階段利用最終分級功能212以分級該較小的候選文件集合。例如,在LO匹配階段搜索到上億或者甚至上兆的文件。在初步分級階段之后,相關(guān)文件的數(shù)量可以被削減到數(shù)千文件,并且在最終分級階段之后被進(jìn)一步削減至幾十個文件。然后這些文件可以在搜索結(jié)果頁面上被呈現(xiàn)給用戶。在一些實施方式中,簡化的計分功能可以作為將最終被用來分級文件的最終分級算法的近似而起作用。 然而,該簡化的計分功能提供了比最終分級算法較不昂貴的操作,允許更大數(shù)量的候選文件被快速地處理?;谠摮醪降梅?,候選文件被削減。例如,只有具有最高初步得分的前N 個文件可以被保留。為了計算文件的分級,初步分級組件210利用初步分級特征,其中一些也在最終分級階段中被使用。除了別的之外,初步計分在存儲在搜索索引中為文件/原子對預(yù)先計算的得分上操作。如所提及的,靜態(tài)特征和諸如動態(tài)原子隔離組件之類隔離的特征可以被初步分級組件210使用。在實施方式中,初步分級組件210通過數(shù)據(jù)提取組件218訪問搜索索引220或諸如在數(shù)據(jù)存儲204中存儲的數(shù)據(jù)之類的其它數(shù)據(jù),以提取與初步分級組件 210使用的初步特征相關(guān)聯(lián)的數(shù)據(jù)。在一些實例中,該數(shù)據(jù)可以以預(yù)先計算的分?jǐn)?shù)的形式被存儲。例如,特定原子可以具有與其關(guān)聯(lián)的一個或多個預(yù)先計算的得分,與對應(yīng)于特定文件的各種屬性相關(guān)。例如,在特定文件中,第一原子可能被重復(fù)10次,在那個同樣的文件中, 第二原子可能被重復(fù)55次。該第二原子可以具有比第一原子更高的得分,因為在那個文件中它被更多次地找到。或者,系統(tǒng)可以被這樣設(shè)置,在標(biāo)題中找到的原子被給出比只在URL 中找到的原子更高的分?jǐn)?shù)。多種規(guī)則可以被結(jié)合到初步計分功能。這樣,預(yù)先計算的分?jǐn)?shù)被存儲在搜索索引中或者其它數(shù)據(jù)存儲器中,在初步計分功能中這個數(shù)據(jù)能夠被提取出來并使用。在實施方式中,雖然第一輪(Li)特征或者初步分級特征是獨(dú)立于查詢的,Ll或者初步分級功能可以不是獨(dú)立于查詢的。例如初步分級功能依賴于在特定查詢中有多少原子,是否有可替代的解釋或拼寫,我們對那些因素有多么肯定,查詢看起來是來自什么語言和國度等。所以,初步分級功能非常依賴預(yù)先計算的、作為每個原子的概要分級而傳遞的獨(dú)立于查詢的特征,初步分級功能也可以按照依賴于查詢的方式組合它們。在一個實施方式中,對于每個原子/文件對只有一個預(yù)先計算的分?jǐn)?shù),這樣對于特定的原子預(yù)先計算的分?jǐn)?shù)考慮多個特征。例如,預(yù)先計算的分?jǐn)?shù)可以考慮文件中特定原子的頻率、原子的多個實例彼此之間有多靠近、原子的上下文,諸如它在文件中所處的位置,等等。在可替代的實施方式中,原子具有與特定文件關(guān)聯(lián)的多于一個預(yù)先計算的分?jǐn)?shù)。 例如,原子可以具有一個考慮文件中原子的頻率的預(yù)先計算的分?jǐn)?shù),和對于文件中找到原子的部分具有另一個預(yù)先計算的分?jǐn)?shù)。在初步分級功能計算文件的初步分?jǐn)?shù)之前,確定初步分級特征。如在前提及的,初步分級特征可以來自多種源。在一個實例中,最終分級組件212使用的分級特征被分析。 最終分級組件212使用的分級特征通常被分為三個主要的種類。這些種類至少包括靜態(tài)特征、動態(tài)原子隔離的組件和動態(tài)原子互相關(guān)組件,或者具有原子相互依賴性的那些。在一個實施方式中,特征選擇組件214執(zhí)行將特征分為這些種類的功能。特征選擇組件214可以選擇屬于靜態(tài)特征或者動態(tài)原子隔離組件的那些特征作為潛在的初步分級特征。這些特征甚至被進(jìn)一步分析,因為不是所有這些特征都可以被選擇在初步分級功能中使用。最后被選擇的那些特征可以是易于計算的(例如易于在初步分級功能中使用)、由在初步分級和最終分級之間的逼真度測量而確定有用的、以及在初步分級功能被更改時分級特征執(zhí)行方面是可適應(yīng)的、等等。進(jìn)一步地,相比于其它分級特征,所選擇的特征可以被低成本地計算。雖然這些特征可以是易于計算的,當(dāng)接收到查詢時一些特征可能是難以實時計算的,因此可以在初步分級功能中使用,這樣它們能夠被預(yù)先計算并存儲在搜索索引中作為預(yù)先計算的分?jǐn)?shù)。在一個實施方式中,在初步分級功能中使用的一個或多個初步特征是手動選擇的。這樣,這個選擇過程至少需要一些用戶交互??商娲鼗蛘吲c在前的實施方式相結(jié)合地,至少一些初步特征被自動地選擇,諸如通過機(jī)器學(xué)習(xí)工具。在一個實施方式中,機(jī)器學(xué)習(xí)工具可以被結(jié)合到特征選擇組件214中。手動選擇和機(jī)器學(xué)習(xí)工具可以彼此結(jié)合地使用以選擇初步特征?;蛘?,特征可以被手動地選擇,然后機(jī)器學(xué)習(xí)工具可以確定那些特征在計算文件分級中是否有幫助。這種機(jī)器學(xué)習(xí)環(huán)境慮及初步分級功能中每個特征的有用性。如果特定特征被發(fā)現(xiàn)不是特別有用,它可以從初步分級功能中被移除。一旦已經(jīng)由特征選擇組件214選擇了特征,算法生成組件216生成為每個文件計算分級的算法。使用所識別的初步分級特征,諸如由于易于計算和有用而從最終分級功能中選擇的那些,生成該算法。在一個實施方式中,在最終分級功能中未必使用但是被證明在初步分級功能中有用的特征也被使用。為了確定特征在初步分級功能中是多么有用,可以使用一些類型的逼真度測量。 該逼真度測量可以比較與特定文件關(guān)聯(lián)的最終分級和初步分級以確定所述分級有多接近。 在實施方式中,第一或初步分級階段操作作為第二或者最終分級階段的估計。在最理想的情況中,初步分級將一直匹配最終分級。然而,這通常不是真實情況。能夠以許多方式測量逼真度,此處沒有描述其全部,但是預(yù)期都包括在本發(fā)明的范圍內(nèi)。例如,對于一些有效的最前數(shù)量(例如,10、100),可以通過以下來定義逼真度初步分級功能將建議與最終分級功能被用于對初步分級功能分級的所有同樣的文件進(jìn)行分級所找到的元素或文件相同的元素或文件。這樣,可以通過取由最終分級功能分級的最前十個已分級的文件,并確定這些文件中有多少個被分級在由初步分級功能而分級的最前十個已分級的文件中,從而測量逼真度。因此,如果初步分級功能將最終分級功能的最前十個文件中的八個分級在它的最前十個文件中,則逼真度可以被計算為80%(8/10)。由初步分級功能產(chǎn)生的最前十個結(jié)果中的八個可以不是以與最終分級功能產(chǎn)生的最前十個結(jié)果同樣的順序。在一些實例中,關(guān)于逼真度分級而考慮這個,但是在其它實例中不考慮。類似地,逼真度測量可以確定有多少候選文件需要從初步分級計算中被返回,從而足夠數(shù)量的結(jié)果(例如候選文件)被返回作為最終分級計算的結(jié)果??商鎿Q地,逼真度測量可以被用來確定從初步分級功能返回的候選文件的數(shù)量以保證最終分級功能返回初步分級功能的最前十個結(jié)果的全部。再另一種利用逼真度測量的方式是設(shè)置閾值,諸如99%。 因此,例如,目標(biāo)可以是99%的時間,最終分級功能返回的最前十個結(jié)果位于初步分級功能返回的最前50個文件中。當(dāng)然,這些數(shù)字能夠變化并且只是為了闡釋的目的而給定。此處描述的實施方式使得最終分級功能能夠具有靈活性,不需要全部重建用于初步分級階段的預(yù)先計算的數(shù)據(jù)。通過測量在已有的初步階段計算和最終分級功能的新的候選之間的逼真度,可以對于期望的誤差范圍確定初步分級階段的新的削減閾值。例如,99% 的時間,初步分級階段在其最前50個文件中得到最終分級階段的最前十個被分級的文件。 可以確定新的分級特征以便增加最終分級功能的精確度。在新的最終分級功能和初步分級功能的結(jié)果之間的任何不一致可以被很好地調(diào)整,不需要重新計算預(yù)先計算的分?jǐn)?shù)。只要初步分級階段已經(jīng)通過舊的標(biāo)準(zhǔn)實現(xiàn)很好的工作,很可能通過新的標(biāo)準(zhǔn)或者新的/更新的最終分級功能就也會完成很好的工作?,F(xiàn)在轉(zhuǎn)向圖3,示出了用于生成算法的方法300的流程圖,該算法用于提供多個文件的初步分級。開始,在步驟310分析最終分級功能。如上面描述的,該最終分級功能被用于計算多個文件的最終分級。在實施方式中,最終分級功能的執(zhí)行是昂貴的并且因此對于有限數(shù)量的候選文件而使用,諸如從初步分級功能返回的那些文件。在一個實施方式中,雖然最終分級功能被稱作“最終”,但是在最終分級階段之后可以采用一個或多個分級階段。 其被命名為“最終”是因為其是此處涉及的最后的階段。在步驟312,從最終分級功能中識別潛在的初步分級特征。這些識別的特征可以包括獨(dú)立于查詢的靜態(tài)分級特征和只與單個原子相關(guān)的動態(tài)原子隔離的組件。沒有被識別作為潛在初步分級特征的那些分級特征可以是具有原子相互依賴性(例如術(shù)語接近、術(shù)語共存等)的動態(tài)原子互相關(guān)組件的那些分級特征。如所提及的,靜態(tài)分級特征(例如頁面分級、垃圾郵件打分)是獨(dú)立于查詢的分級特征和不依賴查詢和甚至可以在接收查詢之前被計算的那些特征。動態(tài)原子隔離組件只考慮一次與單個原子相關(guān)的那些特征(例如頻率、上下文)。在步驟314,從步驟312中識別的潛在初步分級特征中選擇初步分級特征。初步分級特征被使用在初步分級功能中以計算候選文件的分級。在一個實施方式中,初步分級特征包括在步驟314中識別的分級特征中的一些,但是也包括在最終分級功能中未使用, 但是已經(jīng)被證明在初步分級功能中是有用的和精確的一些特征。進(jìn)一步地,初步分級特征可以是手動識別的,因此需要用戶交互(例如,人機(jī)工程)??商娲鼗蛘吲c上述組合地,可以在機(jī)器學(xué)習(xí)工具的輔助下選擇初步分級特征,該機(jī)器學(xué)習(xí)工具估計特定特征的計算容易度、有用性、適應(yīng)性等,并然后確定該特征是否應(yīng)當(dāng)在初步分級功能中被使用。在一個實施方式中,人工選擇和機(jī)器學(xué)習(xí)工具的組合被利用來選擇初步分級特征。如上面簡要提及的, 基于許多因素選擇初步分級特征。這些因素可以包括(僅為了示例的目的)在初步分級功能中分級特征使用的容易度、通過在文件的初步分級和最終分級之間的逼真度測量而確定的分級特征的有用性,當(dāng)初步分級功能更改時分級特征的適應(yīng)性,計算特征的成本等等。在一些實例中,雖然初步分級特征容易被計算,但是它們也可能是在接收到查詢時難以實時計算的,并因此可以用于初步分級,因為它們能夠被預(yù)先計算,消除對它們實時計算的需要。 這些因素的組合可以被考慮。在步驟316,從初步分級特征生成算法以計算文件的初步分級。一旦分級被分配給每個文件,最高分級的文件(例如最前100個、1000個、2000個)被發(fā)送給最終分級功能用于最終分級。來自最終分級功能的最高分級的文件是響應(yīng)于用戶的搜索查詢而呈現(xiàn)給用戶的那些。在一個實施方式中,從用戶接收搜索查詢。在步驟316生成的用于初步分級功能的算法被用于算法化地識別與搜索查詢最相關(guān)的文件的子集。這些候選文件被傳送(例如通過文件標(biāo)識)至最終分級階段,這樣最終分級功能能夠給候選文件分配最終分級并確定與搜索查詢最相關(guān)的那些。這些結(jié)果被呈現(xiàn)給用戶。圖4是示出了用于為文件計算初步分級的方法400的流程圖。開始,在步驟410識別靜態(tài)分級特征。靜態(tài)分級特征是獨(dú)立于查詢的那些,并且在一些實例中,可以是與搜索查詢完全不相關(guān)的。例如,靜態(tài)特征可以包括頁面分級、垃圾郵件評分、頁面語言等。在步驟 412,識別動態(tài)原子隔離的組件。動態(tài)原子隔離的組件是一次與單個原子相關(guān)以及與在特定文件的上下文中原子如何出現(xiàn)相關(guān)的分級特征,這樣在接收搜索查詢之前,預(yù)先計算的分?jǐn)?shù)能夠被分配給原子/文件對,并且能夠被存儲在例如搜索索引中。在一個實施方式中,靜態(tài)特征和動態(tài)原子隔離的組件至少部分地從最終分級功能中被識別,這樣初步分級功能基本是最終分級功能的簡化形式。最終分級功能未使用的特征也可以被用于初步分級功能。在步驟414選擇初步分級特征的集合。這些初步分級特征可以是靜態(tài)分級特征和 /或動態(tài)原子隔離的組件。對于第一文件,在步驟416提取相應(yīng)于初步分級特征的集合的數(shù)據(jù)。該數(shù)據(jù)例如可以從搜索索引中被提取出。進(jìn)一步地,提取出的數(shù)據(jù)可以包括與多個文件關(guān)聯(lián)的對于該初步分級特征的集合的預(yù)先計算的分?jǐn)?shù)。預(yù)先計算的分?jǐn)?shù)可以是針對特定原子/文件對,這樣預(yù)先計算的分?jǐn)?shù)考慮多種因素,或者預(yù)先計算的分?jǐn)?shù)可以是僅僅對于特定特征針對一種原子/文件對,該特定特征例如是原子在特定文件中出現(xiàn)了多少次。預(yù)先計算的分?jǐn)?shù)可以被存儲在搜索索引中。基于搜索查詢,在步驟418利用提取出的數(shù)據(jù)以計算第一文件的初步分級。例如,如前面描述的,初步分級功能可以利用用于計算文件的初步分級的算法。在一個實施方式中,一旦已經(jīng)為候選文件計算了初步分級,最前N個最高分級的文件能夠被識別,并且被發(fā)送至最終分級階段,其中N能夠是任何數(shù)量并可以改變。例如, 可以確定由初步分級確定的第一文件的相關(guān)性是否超過閾值。基于第一文件超過閾值的相關(guān)性,第一文件的文件標(biāo)識可以被發(fā)送至最終分級階段,其為第一文件分配最終分級。如所提及的,除了靜態(tài)特征和動態(tài)原子隔離的組件,最終分級階段利用依賴查詢的動態(tài)原子互相關(guān)組件以確定文件的最終分級。動態(tài)原子互相關(guān)組件可以是文件中特定原子的頻率或者文件中特定原子的上下文位置。例如,上下文位置包括文件的標(biāo)題、作者、頭部、主體、業(yè)務(wù)分類、屬性和統(tǒng)一資源定位符(URL)。
參考圖5,流程示了用于在初步分級階段利用來自最終分級階段的分級特征以為文件確定初步分級的方法500。在步驟510,分析最終分級功能。識別分級特征的第一子集,包括獨(dú)立于查詢的分級特征和單個原子分級特征。在步驟512,選擇分級特征的第二子集。這些分級特征在最終分級功能中不使用。在步驟514,從分級特征的第一和第二子集中選擇初步分級特征。這些被選擇的初步分級特征被用于使用初步分級功能計算文件的初步分級,初步分級功能限制將使用最終分級功能最終分級的文件數(shù)量?;诔醪椒旨壒δ埽诓襟E516算法化地識別文件的子集。初步分級功能利用與分級特征的第一和第二子集關(guān)聯(lián)的數(shù)據(jù),諸如預(yù)先計算的原子/文件對的分?jǐn)?shù),包括與特定文件關(guān)聯(lián)的關(guān)于獨(dú)立于查詢的分級特征(例如靜態(tài)特征)的分?jǐn)?shù)。數(shù)據(jù)可以從搜索索引中被提取,諸如正向索引 (forward index)(例如根據(jù)文件標(biāo)識編索引)或者反向索引(例如根據(jù)原子編索引)。在步驟518,相應(yīng)于初步分級階段產(chǎn)生的文件子集的文件標(biāo)識被傳送至最終分級階段,其計算文件子集的最終分級,這樣基于用戶的搜索查詢,來自最終分級階段的最高分級的文件被呈現(xiàn)給用戶。在實施方式中,對于一組文件,在初步分級和最終分級之間的逼真度度量被計算以確定初步分級階段的精度,該初步分級階段通常是最終分級階段的簡化版本。在上面更詳細(xì)描述了逼真度測量。已經(jīng)關(guān)于特定實施方式描述了本發(fā)明,特定實施方式在所有方面都意圖作為說明性而非限制性的。對于本發(fā)明所屬領(lǐng)域的技術(shù)人員,可替代的實施方式是明顯的,而不脫離本發(fā)明的范圍。根據(jù)前述內(nèi)容,將看出本發(fā)明很好地適用于獲得上面提出的所有目的和目標(biāo),以及其它優(yōu)勢,其對于該系統(tǒng)和方法是明顯并固有的??梢岳斫馓囟ㄌ卣骱妥咏M合是有用的并且可以被采用而不涉及其它特征和子組合。這被權(quán)利要求所預(yù)期并且包括在權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種用于生成算法的方法,該算法被用于為多個文件提供初步分級,該方法包括 分析(310)用于為多個文件計算最終分級的最終分級功能;從最終分級功能中,識別(312)潛在的初步分級特征,包括一個或多個獨(dú)立于查詢的靜態(tài)分級特征和一個或多個與單個原子相關(guān)的動態(tài)原子隔離的組件;從潛在的初步分級特征中選擇(314) —個或多個初步分級特征以用于初步分級功能;以及使用至少一個或多個初步分級特征,生成(316)用于為多個文件提供初步分級的算法。
2.如權(quán)利要求1所述的方法,其中一個或多個初步分級特征是手動選擇的,因此需要用戶交互作用。
3.如權(quán)利要求1所述的方法,其中一個或多個初步分級特征是至少部分地通過機(jī)器學(xué)習(xí)工具選擇的。
4.如權(quán)利要求1所述的方法,其中一個或多個初步分級特征是基于以下的一個或多個而選擇(1)將分級特征用于初步分級功能的容易度,(2)由在該多個文件的初步分級和最終分級之間的逼真度測量確定的分級特征的有用性,(3)當(dāng)初步分級功能被改變時,分級特征的適應(yīng)性,或(4)相比于其它分級特征,計算該分級特征的低成本。
5.如權(quán)利要求1所述的方法,其中初步分級功能識別多個文件的子集,其被發(fā)送至用于最終分級的最終分級功能。
6.如權(quán)利要求1所述的方法,進(jìn)一步包括 接收搜索查詢;利用該算法,算法化地識別與該搜索查詢最相關(guān)的多個文件的子集;和將與該多個文件的子集關(guān)聯(lián)的文件標(biāo)識傳送至用于最終分級的最終分級功能。
7.如權(quán)利要求1所述的方法,其中提供初步分級的算法使用未在最終分級功能中使用的一個或多個分級特征。
8.一種用于為文件計算初步分級的方法,該方法包括 識別(410)獨(dú)立于查詢的靜態(tài)分級特征;識別(412)與單個原子相關(guān)的動態(tài)原子隔離的組件;選擇(414)初步分級特征的集合,其包括一個或多個靜態(tài)分級特征和一個或多個動態(tài)原子隔離的組件;對于第一文件,從搜索索引中提取(416)相應(yīng)于該初步分級特征的集合的數(shù)據(jù);和基于搜索查詢,利用(418)該提取出的數(shù)據(jù)計算第一文件的初步分級。
9.如權(quán)利要求8所述的方法,進(jìn)一步包括基于其它文件的初步分級,確定第一文件的相關(guān)度超過閾值;并基于該第一文件的相關(guān)性超過閾值,將第一文件的標(biāo)識發(fā)送至最終分級階段,其為第一文件分配最終分級。
10.如權(quán)利要求9所述的方法,其中最終分級階段利用動態(tài)原子互相關(guān)組件以確定第一文件的最終分級。
11.如權(quán)利要求9所述的方法,其中計算第一文件的初步分級的初步分級階段利用在最終分級階段中利用的一個或多個分級特征以計算第一文件的最終分級。
12.如權(quán)利要求8所述的方法,其中提取出的數(shù)據(jù)包括與多個文件關(guān)聯(lián)針對初步分級特征的集合預(yù)先計算的分?jǐn)?shù)。
13.如權(quán)利要求12所述的方法,其中預(yù)先計算的分?jǐn)?shù)被存儲在搜索索引中。
14.如權(quán)利要求8所述的方法,其中動態(tài)原子的組件每個都與單個原子相關(guān)。
15.—個或多個計算機(jī)存儲介質(zhì),存儲有計算機(jī)可用指令,當(dāng)由計算設(shè)備使用時,該指令使得計算設(shè)備執(zhí)行方法,該方法用于在初步分級階段中利用來自最終分級階段的分級特征來確定對于文件的初步分級,該方法包括分析(510)最終分級功能以識別分級特征的第一子集,其包括獨(dú)立于查詢的分級特征和單個原子分級特征;選擇(512)分級特征的第二子集,其未在最終分級功能中使用;從分級特征的第一子集和第二子集中,選擇(514)—個或多個初步分級特征以在使用初步分級功能計算多個文件的初步分級中使用,該初步分級功能限制使用最終分級功能分級的文件的數(shù)量;至少基于從搜索索引中提取出的與分級特征的第一子集和第二子集關(guān)聯(lián)的數(shù)據(jù),使用初步分級功能算法化地識別(516)多個文件的子集;并將相應(yīng)于該多個文件的子集的文檔標(biāo)識傳送(518)至最終分級階段,最終分級階段使用最終分級功能來計算該多個文件的子集中的每個文件的最終分級。
全文摘要
本發(fā)明涉及用于有效預(yù)先計算的可分解的分級。提供了方法和計算機(jī)存儲介質(zhì)以生成用于為候選文件提供初步分級的算法。為文件提供最終分級的最終分級功能被分析以識別潛在的初步分級特征,例如查詢獨(dú)立的靜態(tài)分級特征和與單個原子相關(guān)的動態(tài)原子隔離的組件?;诙喾N因素從潛在的初步分級特征中選擇初步分級特征。使用這些選擇的特征,生成一種算法以在將最相關(guān)的文件傳送至最終分級階段之前為候選文件提供初步分級。
文檔編號G06F17/30GK102521270SQ20111037334
公開日2012年6月27日 申請日期2011年11月22日 優(yōu)先權(quán)日2010年11月22日
發(fā)明者J.G.貝內(nèi)特, K.M.里斯維克, K.卡爾亞納拉曼, M.霍普克羅夫特, T.基林比, V.帕里克 申請人:微軟公司