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