劉曉
(暨南大學(xué) 信息科學(xué)技術(shù)學(xué)院,廣東 廣州 510000)
隨著信息技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為人們獲知信息的重要渠道。面對(duì)一些門(mén)戶(hù)網(wǎng)站龐大復(fù)雜的信息資源,僅依靠瀏覽器瀏覽的方式來(lái)獲得所關(guān)心的信息是非常困難的,這就促使了站內(nèi)搜索引擎的出現(xiàn)和快速發(fā)展。搜索引擎起到了信息導(dǎo)航的作用,已成為人們獲取信息的有效工具。但是網(wǎng)站的信息量呈爆炸趨勢(shì)增長(zhǎng),每天都有大量新的網(wǎng)頁(yè)出現(xiàn),使得搜索引擎對(duì)信息的覆蓋率和搜索出結(jié)果的相關(guān)性、準(zhǔn)確性在整體上呈下降趨勢(shì)。檢索出的結(jié)果集數(shù)量之多,經(jīng)常都是幾十萬(wàn)條甚至是幾百萬(wàn)條記錄,其中存在著大量的重復(fù)信息或是與檢索主題無(wú)關(guān)的信息,要想從中快速、準(zhǔn)確地找出所需要的信息變得越來(lái)越困難。
目前簡(jiǎn)單關(guān)鍵字搜索已經(jīng)無(wú)法滿(mǎn)足需要,智能化搜索是未來(lái)發(fā)展的必然趨勢(shì)[1]。本文通過(guò)對(duì)BP神經(jīng)網(wǎng)絡(luò)的深入了解,設(shè)計(jì)并實(shí)現(xiàn)了用BP神經(jīng)網(wǎng)絡(luò)對(duì)站內(nèi)搜索結(jié)果進(jìn)行排名,讓用戶(hù)得到更好的體驗(yàn)。
神經(jīng)網(wǎng)絡(luò)最早是由心理學(xué)家和神經(jīng)學(xué)家提出的,旨在尋求開(kāi)發(fā)和測(cè)試神經(jīng)的計(jì)算模擬。粗略地說(shuō),神經(jīng)網(wǎng)絡(luò)是一組連接的輸入/輸出單元,其中每個(gè)連接都與一個(gè)權(quán)相相聯(lián)。在學(xué)習(xí)階段,通過(guò)調(diào)整神經(jīng)網(wǎng)絡(luò)的權(quán),使得能夠預(yù)測(cè)輸入樣本的正確類(lèi)標(biāo)號(hào)來(lái)學(xué)習(xí)。由于單元之間的連接,神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)又稱(chēng)連接者學(xué)習(xí)。神經(jīng)網(wǎng)絡(luò)需要很長(zhǎng)的訓(xùn)練時(shí)間,因而對(duì)于有足夠長(zhǎng)訓(xùn)練時(shí)間的應(yīng)用更合適。它需要大量的參數(shù),這些通常主要靠經(jīng)驗(yàn)確定,如網(wǎng)絡(luò)拓?fù)浠颉敖Y(jié)構(gòu)”[2]。
神經(jīng)網(wǎng)絡(luò)的一個(gè)例子如圖1所示。輸入對(duì)應(yīng)于對(duì)每個(gè)訓(xùn)練樣本度量的屬性,輸入同時(shí)提供給稱(chēng)作輸入層的單元層。這些單元的加權(quán)輸出依次同時(shí)地提供給稱(chēng)作隱藏層的“類(lèi)神經(jīng)元的”第二層;該隱藏層的加權(quán)輸出可以輸入到另一個(gè)隱藏層;如此下去。隱藏層的數(shù)量是任意的,盡管實(shí)踐中通常只用一層。最后一個(gè)隱藏層的加權(quán)輸出作為構(gòu)成輸出層的單元的輸入。輸出層發(fā)布給定樣本的網(wǎng)絡(luò)預(yù)測(cè)。
神經(jīng)網(wǎng)絡(luò)可以有多個(gè)中間層,不過(guò)在本文中,只使用一層。對(duì)輸入的組合結(jié)果就是一組單詞,因此可以將這一層看作是“查詢(xún)層”。圖2是本文神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。所有位于輸入層中的節(jié)點(diǎn)都與所有位于隱藏層中的節(jié)點(diǎn)相連,而所有位于隱藏層中的節(jié)點(diǎn)也都與所有位于輸出層中的節(jié)點(diǎn)相連。
圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2 本文神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
為了讓神經(jīng)網(wǎng)絡(luò)得到最佳查詢(xún)結(jié)果,本文將與查詢(xún)條件中出現(xiàn)的單詞對(duì)應(yīng)的輸入節(jié)點(diǎn)設(shè)值為1。這些節(jié)點(diǎn)的輸出端開(kāi)啟后,會(huì)試圖激活隱藏層,相應(yīng)地位于隱藏層中的節(jié)點(diǎn)如果得到一個(gè)足夠強(qiáng)力的輸入,就會(huì)觸發(fā)其輸出端,并試圖激活位于輸出層中的節(jié)點(diǎn)。位于輸出層中的節(jié)點(diǎn)將處于不同程度的活躍狀態(tài),可以利用其活躍程度來(lái)判斷一個(gè)URL與原查詢(xún)中出現(xiàn)的單詞在相關(guān)性上的緊密程度[3]。最終的結(jié)果取決于被逐漸糾正的連接強(qiáng)度,因此只要有人執(zhí)行搜索,并從結(jié)果中選擇鏈接,就對(duì)該網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
如圖 3所示,許多人已在搜索“apple iphone”之后,點(diǎn)擊過(guò)有關(guān)apple iphone的相關(guān)結(jié)果,而這一點(diǎn)加強(qiáng)了單詞與URL的聯(lián)系。
圖3 應(yīng)用示例
BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)用戶(hù)搜索習(xí)慣過(guò)程如下:
(1)用戶(hù)輸入查詢(xún)?cè)~ word 1(或者查詢(xún)?cè)~組 word 1,word 2…),搜索引擎根據(jù)該詞與查詢(xún)層之間的連接權(quán)重計(jì)算隱層節(jié)點(diǎn)的輸出(實(shí)際上表示的是第i個(gè)搜索詞與第j個(gè)查詢(xún)層之間的關(guān)聯(lián)程度)[4]。作用函數(shù)采用經(jīng)驗(yàn)函數(shù):
隱藏層節(jié)點(diǎn)的輸出為:
其中,Oi表示第i個(gè)輸入點(diǎn)的取值,但一般認(rèn)為搜索詞之間沒(méi)有重要性的差別,所以輸入值均為1。因此輸出調(diào)整為:
此時(shí),實(shí)際上表示的是搜索詞word1+KeyWords[i]對(duì)排名的影響權(quán)重,表示的是關(guān)鍵詞節(jié)點(diǎn)的閾值。
(2)計(jì)算網(wǎng)頁(yè)的排名權(quán)重:
其中,Oi表示第1個(gè)網(wǎng)頁(yè)的排名權(quán)重,表示的是Word 1+KeyWords[i]與第1個(gè)網(wǎng)頁(yè)的連接權(quán);i表示的是網(wǎng)頁(yè)節(jié)點(diǎn)的閾值。
(3)訓(xùn)練網(wǎng)絡(luò),根據(jù)計(jì)算的輸出值與真實(shí)值之間的誤差修正連接權(quán)和影響權(quán)。這里的真實(shí)值是用戶(hù)對(duì)搜索到的網(wǎng)頁(yè)的點(diǎn)擊順序(或者點(diǎn)擊頻率)歸一化后的結(jié)果。
誤差控制為:
其中,p為訓(xùn)練樣本的個(gè)數(shù),n為網(wǎng)頁(yè)節(jié)點(diǎn)的個(gè)數(shù),tl為該網(wǎng)頁(yè)節(jié)點(diǎn)的真實(shí)值(歸一化后的實(shí)際權(quán)重)。
輸出層到隱層的修正。誤差公式為:
影響權(quán)修正:
其中,k為迭代次數(shù)。閾值修正:
隱藏層到輸入層的修正,誤差公式為:
影響權(quán)修正:
閾值修正:
本文討論了BP神經(jīng)網(wǎng)絡(luò)在搜索結(jié)果排名中應(yīng)用,反向推理出搜索詞與隱藏層在相關(guān)性上的緊密程度以及隱藏層對(duì)搜索結(jié)果排序的影響權(quán)重,使搜索引擎更具智能化,提高了搜索的精度與靈活性。
[1]HATCHER E,GOSPODNETIC O.Lucene in action[M].Manning Publications,2004.
[2]Han Jiawei,KAMBER M.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小鋒,譯.北京:機(jī)械工業(yè)出版社,2007.
[3]SEGARAN T.Programming collective intelligence[M].O′Reilly Media,2007.
[4]王紅霞.神經(jīng)網(wǎng)絡(luò)BP算法在網(wǎng)絡(luò)搜索中的應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(15):53.