本發(fā)明涉及搜索排序技術(shù)領(lǐng)域,特別是涉及一種快速迭代的搜索引擎排序方法及系統(tǒng)。
背景技術(shù):
隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,搜索引擎系統(tǒng)中對(duì)特征的使用越來(lái)越深入,文本相關(guān)性、網(wǎng)頁(yè)P(yáng)ageRank值和URL鏈接長(zhǎng)度都是很好的排序特征。選取的特征越多,越有可能客觀的反應(yīng)用戶的行為偏好。Google的搜索引擎排序系統(tǒng)更是使用了多達(dá)200余種特征,并且這些特征并不是簡(jiǎn)單的線性相加,而是通過(guò)復(fù)雜的神經(jīng)網(wǎng)絡(luò)來(lái)表征,這樣不僅能充分利用文檔的每個(gè)特征,還能利用特征與特征之間的關(guān)系。然而此時(shí)指望人工擬合出各特征的權(quán)重甚至復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型已經(jīng)變得不現(xiàn)實(shí),排序?qū)W習(xí)技術(shù)變應(yīng)運(yùn)而生。
排序?qū)W習(xí)基于傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù),把文檔是否相關(guān)和文檔在各維度上的取值或神經(jīng)網(wǎng)絡(luò)的參數(shù)作為訓(xùn)練樣本,與文檔實(shí)際的相關(guān)性比較設(shè)定損失函數(shù),再基于最優(yōu)化技術(shù)如梯度下降等使損失函數(shù)最小。這樣就能夠在大量的數(shù)據(jù)中,根據(jù)每篇文檔和查詢的相關(guān)性以及每篇文檔各個(gè)特征上的得分,計(jì)算出優(yōu)化的搜索引擎排序公式。
算法的訓(xùn)練分為在線訓(xùn)練和離線訓(xùn)練兩種。在線訓(xùn)練的全部過(guò)程由計(jì)算機(jī)程序完成,訓(xùn)練開(kāi)始時(shí)讀取用戶點(diǎn)擊記錄生成訓(xùn)練集,然后用預(yù)先寫好的訓(xùn)練算法訓(xùn)練出排序模型,更新線上排序算法,最后根據(jù)計(jì)算好的評(píng)價(jià)指標(biāo)人工評(píng)價(jià)算法性能。這種訓(xùn)練方法的實(shí)現(xiàn)自動(dòng)化程度更高、不易出故障,人工干預(yù)較少。但是訓(xùn)練過(guò)程中較為重要的交叉驗(yàn)證過(guò)程不得不省略,因?yàn)橛?jì)算機(jī)很難根據(jù)交叉驗(yàn)證結(jié)果給出合適的解決方案。離線學(xué)習(xí)由人工控制學(xué)習(xí)的時(shí)間、參數(shù)等,可以在模型上線以前判斷模型是否合適,并能根據(jù)交叉驗(yàn)證結(jié)果動(dòng)態(tài)調(diào)整訓(xùn)練參數(shù),保證上線算法的質(zhì)量。但是離線學(xué)習(xí)算法每次算法模型的更新都需要中斷服務(wù),流程較為繁瑣,使項(xiàng)目的迭代周期大幅延長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)缺陷,而提供一種快速迭代的搜索引擎排序方法及系統(tǒng)。
為實(shí)現(xiàn)本發(fā)明的目的所采用的技術(shù)方案是:
一種快速迭代的搜索引擎排序方法,包括離線步驟和在線步驟,
所述的離線步驟包括,
訓(xùn)練出多個(gè)候選上線排序模型,
對(duì)各排序模型存儲(chǔ)和比例分配,定時(shí)將排序模型及比例存入搜索服務(wù)器緩存數(shù)據(jù)庫(kù)以備在線步驟讀取;
所述的在線步驟包括,
接收用戶請(qǐng)求并根據(jù)用戶信息分配排序模型,
從索引中檢索出相關(guān)文件,讀取搜索服務(wù)器緩存數(shù)據(jù)庫(kù)中的排序模型并計(jì)算排序然后返回給用戶,
統(tǒng)計(jì)本次用戶的搜索行為。
定時(shí)將排序模型及比例存入搜索服務(wù)器的key-value數(shù)據(jù)庫(kù)。
所述的訓(xùn)練出多個(gè)候選上線排序模型包括以下子步驟,
收集用戶點(diǎn)擊記錄,
根據(jù)用戶點(diǎn)擊記錄還原用戶搜索場(chǎng)景生成訓(xùn)練數(shù)據(jù),
采用預(yù)定的不同算法和訓(xùn)練參數(shù)訓(xùn)練出多個(gè)候選上線排序模型。
所述的在線步驟根據(jù)用戶的cookie為用戶分配排序模型以保證同一個(gè)用戶分配固定的排序模型。
所述的搜索行為包括用戶查詢?cè)~、用戶點(diǎn)擊的文件和該文件在輸出文件列表中的位置。
一種快速迭代的搜索引擎排序系統(tǒng),包括,
包括離線模塊和在線模塊,
所述的離線模塊包括,
訓(xùn)練子模塊,用以訓(xùn)練出多個(gè)候選上線排序模型,
模型管理子模塊,用以對(duì)各排序模型存儲(chǔ)和比例分配,并定時(shí)將排序模型及比例存入搜索服務(wù)器緩存數(shù)據(jù)庫(kù)以備在線模塊讀取;
所述的在線步驟包括,
A/B測(cè)試子模塊,用以接收用戶請(qǐng)求并根據(jù)用戶信息分配排序模型,
信息檢索子模塊,用以從索引中檢索出相關(guān)文件,根據(jù)排序模型計(jì)算排序然后返回給用戶,
統(tǒng)計(jì)子模塊,用以統(tǒng)計(jì)本次用戶的搜索行為。
定時(shí)將排序模型及比例存入搜索服務(wù)器的key-value數(shù)據(jù)庫(kù)。
所述的訓(xùn)練子模塊,
收集模塊,用以收集用戶點(diǎn)擊記錄,
信息處理模塊;用以根據(jù)用戶點(diǎn)擊記錄還原用戶搜索場(chǎng)景并生成訓(xùn)練數(shù)據(jù),
生成模塊,用以采用預(yù)定的不同算法和訓(xùn)練參數(shù)訓(xùn)練出多個(gè)候選上線排序模型。
所述的在線步驟根據(jù)用戶的cookie為用戶分配排序模型以保證同一個(gè)用戶分配固定的排序模型。
所述的搜索行為包括用戶查詢?cè)~、用戶點(diǎn)擊的文件和該文件在輸出文件列表中的位置。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明設(shè)計(jì)通過(guò)既定的排序模型描述方式,能夠用字符串來(lái)描述一個(gè)排序模型。然后將該模型通過(guò)圖形界面和定時(shí)任務(wù)依次存入關(guān)系型數(shù)據(jù)庫(kù)和key-value數(shù)據(jù)庫(kù),這樣既能保證數(shù)據(jù)存儲(chǔ)的持久性、又能讓線上服務(wù)快速獲取數(shù)據(jù)。線上搜索服務(wù)定時(shí)讀取key-value數(shù)據(jù)庫(kù),根據(jù)讀取的字符串還原排序模型并更新既有排序模型,同時(shí)廢棄掉過(guò)期的模型,這樣就能不更新代碼和中斷服務(wù)控制線上的排序。當(dāng)用戶發(fā)起訪問(wèn)請(qǐng)求時(shí),根據(jù)前面還原的排序模型和各模型的比例,就能為用戶提供正確的排序結(jié)果。
附圖說(shuō)明
圖1所示為本發(fā)明的快速迭代的搜索引擎排序系統(tǒng)的結(jié)構(gòu)示意圖;
圖2所示為流程控制圖。
具體實(shí)施方式
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖所示,本發(fā)明快速迭代的搜索引擎排序方法包括離線步驟和在線步驟,
所述的離線步驟包括,
步驟101,訓(xùn)練出多個(gè)候選上線排序模型,
該步驟中,包括以下子步驟,
收集用戶點(diǎn)擊記錄;搜集的用戶點(diǎn)擊記錄包括用戶原搜索關(guān)鍵詞、用戶點(diǎn)擊的文檔,為相同的搜索關(guān)鍵詞分組,根據(jù)用戶點(diǎn)擊量的多少為文檔計(jì)算出該查詢下的相關(guān)度。
根據(jù)用戶點(diǎn)擊記錄還原用戶搜索場(chǎng)景,生成訓(xùn)練數(shù)據(jù);其中要同時(shí)計(jì)算相關(guān)和不相關(guān)文檔各個(gè)維度上的得分,完全真實(shí)的恢復(fù)用戶搜索場(chǎng)景,以用訓(xùn)練數(shù)據(jù)訓(xùn)練;
使用多種訓(xùn)練算法和訓(xùn)練參數(shù),得到若干候選上線排序模型,
然后用交叉驗(yàn)證的方式判斷訓(xùn)練出的排序模型是否符合要求;
如果不符合要求,調(diào)整之前的訓(xùn)練參數(shù),可調(diào)整的參數(shù)包括向量維度、神經(jīng)網(wǎng)絡(luò)層數(shù)和選用算法等,符合要求的排序模型,需要在訓(xùn)練集和測(cè)試集上的指標(biāo)都達(dá)到某個(gè)閾值,且訓(xùn)練集和測(cè)試集的指標(biāo)之差小于某個(gè)閾值。
步驟102,對(duì)各排序模型存儲(chǔ)和比例分配,定時(shí)將排序模型及比例存入搜索服務(wù)器緩存數(shù)據(jù)庫(kù)以備在線步驟讀??;
在該步驟中,首先通過(guò)后臺(tái)界面將該模型的比例和字符描述寫入關(guān)系型數(shù)據(jù)庫(kù);然后由定時(shí)任務(wù)等策略定時(shí)將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)寫入key-value數(shù)據(jù)庫(kù);利用key-value數(shù)據(jù)庫(kù)存模型的比例和字符描述,目的是提高熱點(diǎn)數(shù)據(jù)的訪問(wèn)速度。本發(fā)明中將key-value數(shù)據(jù)庫(kù)用于排序模型的存儲(chǔ),作為離線部分和在線部分的接口,離線部分負(fù)責(zé)寫入、在線部分負(fù)責(zé)讀取,是不中斷服務(wù)更新在線排序模型的關(guān)鍵步驟。
所述的在線步驟包括,
步驟201,接收用戶請(qǐng)求并根據(jù)用戶信息分配排序模型,
其中,無(wú)論采用哪種排序算法和評(píng)價(jià)指標(biāo),都需要實(shí)際系統(tǒng)的測(cè)試。A/B測(cè)試系統(tǒng)通過(guò)單一變量原則,為一部分用戶分配A算法,為另一部分用戶分配B算法,在其它變量相同的條件下對(duì)比A、B兩種算法的性能。A/B測(cè)試系統(tǒng)中最關(guān)鍵的部分為分流部分,如何為兩種算法分配條件一樣的用戶是測(cè)試是否成功的關(guān)鍵。因?yàn)樗阉饕嬗蟹?yè)的需求,所以必須要求為每個(gè)用戶分配相同的排序算法。本發(fā)明采用cookie的方式,為每個(gè)用戶分配唯一的用戶ID,根據(jù)此ID完成算法的分配。這樣既保證分配的均勻、又保證分配的算法固定。
步驟202,從索引中檢索出相關(guān)文件,讀取搜索服務(wù)器緩存數(shù)據(jù)庫(kù)中的排序模型并計(jì)算排序然后返回給用戶,相關(guān)文件為文檔、視頻網(wǎng)頁(yè)等,
在該步驟中,要先計(jì)算出文件各個(gè)維度上的得分,即將文件向量化,再用排序模型計(jì)算每個(gè)文件的最終得分以作為排序的基礎(chǔ)。
步驟203,統(tǒng)計(jì)本次用戶的搜索行為。統(tǒng)計(jì)內(nèi)容包括用戶查詢?cè)~、用戶點(diǎn)擊的文檔和該文檔在輸出文檔列表中的位置。
本發(fā)明設(shè)計(jì)通過(guò)既定的排序模型描述方式,能夠用字符串來(lái)描述一個(gè)排序模型。然后將該模型通過(guò)圖形界面和定時(shí)任務(wù)依次存入關(guān)系型數(shù)據(jù)庫(kù)和key-value數(shù)據(jù)庫(kù),這樣既能保證數(shù)據(jù)存儲(chǔ)的持久性、又能讓線上服務(wù)快速獲取數(shù)據(jù)。線上搜索服務(wù)定時(shí)讀取key-value數(shù)據(jù)庫(kù),根據(jù)讀取的字符串還原排序模型并更新既有排序模型,同時(shí)廢棄掉過(guò)期的模型,這樣就能不更新代碼和中斷服務(wù)控制線上的排序。當(dāng)用戶發(fā)起訪問(wèn)請(qǐng)求時(shí),根據(jù)前面還原的排序模型和各模型的比例,就能為用戶提供正確的排序結(jié)果。
傳統(tǒng)的離線訓(xùn)練模型質(zhì)量可控,但迭代周期較長(zhǎng);在線訓(xùn)練迭代周期較短,但模型質(zhì)量不可控。本發(fā)明采用了離線訓(xùn)練的方式,在模型訓(xùn)練完成后可以通過(guò)交叉驗(yàn)證的方式人工把控模型的質(zhì)量,線上模型更新時(shí)也不需要修改代碼和中斷服務(wù),能夠在以較快的迭代周期上線高質(zhì)量的排序模型。
本發(fā)明還同時(shí)公開(kāi)了快速迭代的搜索引擎排序系統(tǒng),包括,
包括離線模塊和在線模塊,
所述的離線模塊包括,
訓(xùn)練子模塊,用以訓(xùn)練出多個(gè)候選上線排序模型,
模型管理子模塊,用以對(duì)各排序模型存儲(chǔ)和比例分配,并定時(shí)將排序模型及比例存入搜索服務(wù)器緩存key-value數(shù)據(jù)庫(kù)以備在線模塊讀??;
所述的訓(xùn)練子模塊,
收集模塊,用以收集用戶點(diǎn)擊記錄,
信息處理模塊;用以根據(jù)用戶點(diǎn)擊記錄還原用戶搜索場(chǎng)景并生成訓(xùn)練數(shù)據(jù),
生成模塊,用以采用預(yù)定的不同算法和訓(xùn)練參數(shù)訓(xùn)練出多個(gè)候選上線模型。
所述的在線步驟包括,
A/B測(cè)試子模塊,用以接收用戶請(qǐng)求并根據(jù)用戶信息分配排序模型,
信息檢索子模塊,用以從索引中檢索出相關(guān)文件,根據(jù)排序模型計(jì)算排序然后返回給用戶,
統(tǒng)計(jì)子模塊,用以統(tǒng)計(jì)本次用戶的搜索行為。
提出了一種搜索引擎排序系統(tǒng)的架構(gòu),通過(guò)關(guān)系型數(shù)據(jù)庫(kù)和key-value數(shù)據(jù)庫(kù)的使用使線上搜索引擎定時(shí)更新自己的排序模型和比例。本發(fā)明能夠由人工來(lái)把控線上排序模型的質(zhì)量,動(dòng)態(tài)調(diào)整上線模型的比例,同時(shí)在更新模型時(shí)又不需要修改代碼和中斷服務(wù),達(dá)到縮短迭代周期的目的。
本發(fā)明采用離線學(xué)習(xí)的方式,既可以人工把控上線模型,又能在更新線上模型時(shí)不需要修改代碼和中斷服務(wù),還能動(dòng)態(tài)調(diào)整各模型的比例,達(dá)到縮短迭代周期的目的。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出的是,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。