一種結(jié)果緩存替換的優(yōu)化方法
【專利摘要】本發(fā)明公開了一種結(jié)果緩存替換的優(yōu)化方法,屬于計算機網(wǎng)絡(luò)【技術(shù)領(lǐng)域】。本方法為:1)以系統(tǒng)搜索日志中的用戶ID為鍵、用戶發(fā)起的請求為鍵值建立一哈希表h2;2)將同一用戶ID發(fā)起的所有請求進行拼接,得到一字符串,對所有用戶的拼接字符串構(gòu)成的文檔集進行話題模型分析,獲得話題集合M及關(guān)聯(lián)度;3)計算與某話題相關(guān)的搜索請求出現(xiàn)次數(shù)與同一時間段內(nèi)所有請求出現(xiàn)次數(shù)的比值,計算該請求的權(quán)重貢獻值;4)當(dāng)收到一請求q時,查找匹配的結(jié)果緩存并返回和更新h2;如果沒有,則在h2中查找對應(yīng)的鍵值并與q拼接,計算q的權(quán)重貢獻值;5)將結(jié)果緩存中權(quán)重較低的結(jié)果項替換出去,并加入新的緩存項。本發(fā)明可大大提高緩存命中率的效果。
【專利說明】一種結(jié)果緩存替換的優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種搜索引擎和全文檢索系統(tǒng)中,提高結(jié)果緩存命中率的方法,具體是利用結(jié)果質(zhì)量和搜索請求的語義特征來提高結(jié)果緩存的命中率的方法,屬于計算機網(wǎng)絡(luò)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]現(xiàn)代搜索引擎每天要處理數(shù)億到數(shù)十億的搜索請求,因此,對搜索請求的快速處理是一個至關(guān)重要的問題。在現(xiàn)代搜索引擎中,結(jié)果緩存是一個非常重要的性能部件。因此,如何有效的提高結(jié)果緩存的效率,是一個在學(xué)術(shù)界和產(chǎn)業(yè)界備受關(guān)注的問題。
[0003]結(jié)果緩存作為緩存的一種,滿足緩存機制的基本假設(shè),即搜索請求的局部性原則,即曾經(jīng)出現(xiàn)過的搜索請求,在短時間內(nèi)可能會再次出現(xiàn)。對于搜索引擎來說,這代表了有些用戶可能會對自己剛剛搜索過的內(nèi)容再次搜索,或者在某段時間內(nèi),不同的用戶對于某些熱點事件發(fā)出了相同的搜索請求。結(jié)果緩存作為搜索引擎的最上層,存儲了在過去某段時間內(nèi),搜索引擎系統(tǒng)認為可能會再次出現(xiàn)的搜索請求及其結(jié)果,包括相關(guān)應(yīng)該返回的網(wǎng)頁信息和對這些結(jié)果的評價。
[0004]對于結(jié)果緩存來說,影響其性能的一個最重要的指標(biāo)就是緩存命中率(Cache HitRatio)。對于緩存來說,如果我們某次請求查詢的數(shù)據(jù)已經(jīng)存在于緩存之中了,則稱為一次緩存命中(Cache Hit),反之則稱為未命中(Cache Miss)。在緩存持續(xù)提供服務(wù)的過程中,緩存命中的百分比稱為緩存命中率。如果某次對某一數(shù)據(jù)項的查詢沒有命中,則需要對該搜索請求進行重新計算。因此,在給定緩存存儲空間大小的情況下,緩存命中率越高,則需要重新計算的搜索請求也就越少,從而就降低了計算代價。
[0005]在整個系統(tǒng)開始提供服務(wù)后,搜索引擎會針對不同的搜索請求,不斷的計算出新的結(jié)果,此時,如果結(jié)果緩存空間沒有被占滿,則計算結(jié)果將被不斷的存儲到結(jié)果緩存之中。當(dāng)結(jié)果緩存中存滿了結(jié)果之后,如果再出現(xiàn)了新的結(jié)果,則需要對結(jié)果緩存中的所有結(jié)果項進行評估,從中選擇一些結(jié)果項并將其清理出結(jié)果緩存,并將新計算的結(jié)果項放入結(jié)果緩存之中,以上過程稱為緩存替換(Cache Replacement),緩存替換中遵循的原則或算法則稱為緩存替換策略(Cache Replacement Policy)。為了提高緩存命中率,國內(nèi)外的專家學(xué)者提出了很多種針對不同情況的緩存替換策略,例如LRU(Least Recently Used)和LFU(Least Frequently Used)等等。這些算法著眼于搜索請求的局部性,分析搜索請求的自身特征,將一段時間內(nèi)使用頻繁的搜索請求的結(jié)果項在結(jié)果緩存中盡量保存較長的時間。
[0006]這些方法對于提高結(jié)果緩存的命中率非常有意義,然而他們大多數(shù)只考慮搜索請求的自身特征,沒有考慮搜索結(jié)果的質(zhì)量對搜索請求再次出現(xiàn)的概率的影響,也沒有考慮搜索請求的語義特征,使得結(jié)果緩存的命中率距離可以獲得的最好命中率之間還有很大距離。
【發(fā)明內(nèi)容】
[0007]本發(fā)明針對上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種結(jié)果緩存替換的優(yōu)化方法,該方法可提高結(jié)果緩存命中率,通過分析結(jié)果的質(zhì)量以及搜索請求的語義特征,進一步提高預(yù)測結(jié)果項可能會再次出現(xiàn)的概率的準(zhǔn)確度,從而達到提高緩存命中率的效果。
[0008]本發(fā)明的技術(shù)方案為:
[0009]一種結(jié)果緩存替換的優(yōu)化方法,其步驟為:
[0010]1)初始化一結(jié)果緩存空間;
[0011]2)讀取系統(tǒng)搜索日志,以系統(tǒng)搜索日志中的用戶ID為鍵、用戶發(fā)起的請求為鍵值建立一哈希表h2 ;
[0012]3)將同一用戶ID發(fā)起的所有請求進行拼接,得到一字符串;將每條字符串作為一個文檔,對所有用戶的拼接字符串構(gòu)成的文檔集進行話題模型分析,獲得話題集合M及文檔與每個話題mi之間的關(guān)聯(lián)度pi ;
[0013]4)計算一段時間內(nèi),與話題mi相關(guān)的搜索請求出現(xiàn)次數(shù)與這一時間段內(nèi)所有請求出現(xiàn)次數(shù)的比值hi,根據(jù)比值hi和關(guān)聯(lián)度pi計算該請求的權(quán)重貢獻值,并將結(jié)果緩存存入結(jié)果緩存空間中,直到結(jié)果緩存空間存滿;
[0014]5)當(dāng)收到一用戶請求q時,在結(jié)果緩存空間中查找匹配的結(jié)果緩存并返回和更新h2 ;如果沒有匹配結(jié)果緩存,則根據(jù)當(dāng)前用戶請求q的用戶ID,在哈希表h2中查找對應(yīng)的鍵值并與q拼接,計算q的權(quán)重貢獻值;如果哈希表h2中沒有對應(yīng)的用戶ID,則將其作為新的項添加到h2,并計算q的權(quán)重貢獻值;
[0015]6)如果請求q對應(yīng)結(jié)果緩存的權(quán)重小于緩存空間中當(dāng)前權(quán)重最小的結(jié)果緩存的權(quán)重,則不緩存請求q的結(jié)果緩存;否則將請求q的結(jié)果緩存替換當(dāng)前權(quán)重最小的結(jié)果緩存。
[0016]進一步的,所述步驟2)中,提取系統(tǒng)日志中頁面的URL,以URL為鍵、頁面點擊次數(shù)和頁面在結(jié)果中出現(xiàn)的次數(shù)為鍵值建立一哈希表hi。
[0017]進一步的,對于請求q,利用其結(jié)果緩存及用戶反饋,更新哈希表hi。
[0018]進一步的,對于請求q,將哈希表hi中的用戶點擊歸一化后,計算搜索結(jié)果質(zhì)量重要度Fl的值。
[0019]進一步的,采用公式
【權(quán)利要求】
1.一種結(jié)果緩存替換的優(yōu)化方法,其步驟為: 1)初始化一結(jié)果緩存空間; 2)讀取系統(tǒng)搜索日志,以系統(tǒng)搜索日志中的用戶ID為鍵、用戶發(fā)起的請求為鍵值建立一哈希表h2 ; 3)將同一用戶ID發(fā)起的所有請求進行拼接,得到一字符串;將每條字符串作為一個文檔,對所有用戶的拼接字符串構(gòu)成的文檔集進行話題模型分析,獲得話題集合M及文檔與每個話題mi之間的關(guān)聯(lián)度pi ; 4)計算一段時間內(nèi),與話題mi相關(guān)的搜索請求出現(xiàn)次數(shù)與這一時間段內(nèi)所有請求出現(xiàn)次數(shù)的比值hi,根據(jù)比值hi和關(guān)聯(lián)度pi計算該請求的權(quán)重貢獻值,并將結(jié)果緩存存入結(jié)果緩存空間中,直到結(jié)果緩存空間存滿; 5)當(dāng)收到一用戶請求q時,在結(jié)果緩存空間中查找匹配的結(jié)果緩存并返回和更新h2;如果沒有匹配結(jié)果緩存,則根據(jù)當(dāng)前用戶請求q的用戶ID,在哈希表h2中查找對應(yīng)的鍵值并與q拼接,計算q的權(quán)重貢獻值;如果哈希表h2中沒有對應(yīng)的用戶ID,則將其作為新的項添加到h2,并計算q的權(quán)重貢獻值; 6)如果請求q對應(yīng)結(jié)果緩存的權(quán)重小于緩存空間中當(dāng)前權(quán)重最小的結(jié)果緩存的權(quán)重,則不緩存請求q的結(jié)果緩存;否則將請求q的結(jié)果緩存替換當(dāng)前權(quán)重最小的結(jié)果緩存。
2.如權(quán)利要求1所述的方法,其特征在于所述步驟2)中,提取系統(tǒng)日志中頁面的URL,以URL為鍵、頁面點擊次數(shù)和頁面在結(jié)果中出現(xiàn)的次數(shù)為鍵值建立一哈希表hi。
3.如權(quán)利要求2所述的方法,其特征在于對于請求q,利用其結(jié)果緩存及用戶反饋,更新哈希表hi。
4.如權(quán)利要求3所述的方法,其特征在于對于請求q,將哈希表hi中的用戶點擊歸一化后,計算搜索結(jié)果質(zhì)量重要度Fl的值。
5.如權(quán)利要求1或4所述的方法,其特征在于采用公式hi= 1Zyn t計算比
—
6.如權(quán)利要求5所述的方法,其特征在于計算某一請求的權(quán)重貢獻值F2的公式為
?
J.F2= ~ ~~ο 1—2, pjhi
7.如權(quán)利要求6所述的方法,其特征在于每一請求的結(jié)果緩存權(quán)重W為該請求緩存項權(quán)重、 該請求搜索結(jié)果質(zhì)量重要度Fl值、請求的權(quán)重貢獻值F2值三者之和。
8.如權(quán)利要求4所述的方法,其特征在于應(yīng)用公式Fl= I/(1-ρ1)*(1-ρ2)計算搜索質(zhì)量重要度Fl的值,pi為網(wǎng)頁在搜索日志結(jié)果中出現(xiàn)的次數(shù)比例、ρ2為網(wǎng)頁被用戶點擊的次數(shù)比例。
9.如權(quán)利要求1所述的方法,其特征在于采用LDA模型對文檔集進行話題模型分析,獲得話題集合M及文檔與每個話題mi之間的關(guān)聯(lián)度pi。
【文檔編號】G06F17/30GK103488638SQ201210191976
【公開日】2014年1月1日 申請日期:2012年6月11日 優(yōu)先權(quán)日:2012年6月11日
【發(fā)明者】宗朗, 陳薇, 王騰蛟, 楊冬青 申請人:北京大學(xué)