蔣翀 費洪曉 張嘯
摘 要: 針對目前主流搜索引擎?zhèn)€性化程度低的問題,通過分析用戶的瀏覽行為和瀏覽內(nèi)容來獲取用戶的興趣類別以及關(guān)鍵詞,用一組帶權(quán)重的關(guān)鍵詞組成的向量集來表示用戶興趣模型,利用更新算法對模型進行更新與優(yōu)化。將用戶興趣模型與開源搜索引擎Nutch相結(jié)合,加入中文分詞組件IKAnalyzer,實現(xiàn)了個性化搜索引擎。進行了傳統(tǒng)搜索和個性化搜索對比實驗,結(jié)果證明,Nutch個性化搜索引擎結(jié)果更符合用戶興趣。
關(guān)鍵詞: 用戶興趣模型; 個性化; 搜索引擎; Nutch
中圖分類號:TP393 文獻標志碼:A 文章編號:1006-8228(2015)09-26-03
Research of personalized search engine based on user profile
Jiang Chong1, Fei Hongxiao2, Zhang Xiao2
(1. Modern Education Technology Center, HunanWoman's Vocational University, Changsha, Hunan 410004, China;
2. School of Software, Central South University of China)
Abstract: In order to improve the degree of personalization for popular search engine, the user's interest categories and keywords were got by analyzing user's browsing behavior and content. User profile was represented by a vector set which consisted of a set of weighted keywords and updated by correlated algorithm. By embedding in user profile and IKAnalyzer, Nutch became a personalized search engine. Comparative experiments were carried out with the traditional search and the personalized search. The results show that, the personalized search engine got more relevant result with user interest than traditional research engine and was proved to be effective.
Key words: user profile; personalized; search engine; Nutch
0 引言
飛速發(fā)展的互聯(lián)網(wǎng)在帶給人們海量信息的同時,也產(chǎn)生了難以讓用戶快速準確獲取有效信息的問題[1]。目前,占市場主導(dǎo)地位的搜索引擎查詢結(jié)果僅僅跟用戶輸入的關(guān)鍵詞有關(guān),并未考慮在相同關(guān)鍵字中所隱藏的用戶個性化需求。這一類的搜索引擎以自動抓取信息和自動排序查找為主要特征[2]。目前,主流的搜索引擎均未實現(xiàn)面向客戶需求和興趣的個性化搜索。在這種情況下,個性化搜索引擎的研究和發(fā)展逐漸興起。在這一代的搜索引擎中,公認的應(yīng)該具備的特征是個性化和智能[3]。
為了根據(jù)用戶需求和興趣產(chǎn)生搜索結(jié)果,搜索引擎需要以用戶興趣模型的構(gòu)建為基礎(chǔ)。本文中采用隱式反饋的方式,通過分析用戶的瀏覽行為和瀏覽內(nèi)容,獲取用戶的興趣類別和關(guān)鍵詞,用一組帶權(quán)重的關(guān)鍵詞組成的向量集表示用戶興趣,利用更新算法對模型進行優(yōu)化,使用戶模型的構(gòu)建能在指導(dǎo)的條件下進行,實現(xiàn)智能化的搜索。在個性化搜索引擎的實現(xiàn)部分,以Lucene為基礎(chǔ),使用Nutch實現(xiàn)了個性化搜索引擎,以此為實驗平臺,驗證了用戶興趣模型的有效性。
1 用戶興趣模型的建立和應(yīng)用
通常來說,個性化搜索引擎的結(jié)果取決于用戶興趣模型的表示,所以,用戶興趣模型的構(gòu)建在個性化搜索引擎研究和實現(xiàn)中十分關(guān)鍵[4]。
本文在傳統(tǒng)向量空間的基礎(chǔ)上,使用一種改進的多層次向量空間模型表示用戶興趣。由于用戶興趣的多樣性,對用戶的興趣進行類別劃分,可有效減少不同類別之間的相互干擾,提高檢索的準確度。具體來說,就是“用戶→興趣類別→興趣詞條”的層狀樹型結(jié)構(gòu),如圖1所示。
[用戶][興趣類別1][KW11][……][KW1n] [……][興趣類別m] [KWm1][……][KWmn]
圖1 多層次向量空間的用戶興趣模型
在圖1中,第一層是用戶,第二層是興趣的類別,第三層由用戶興趣的詞條組成。假設(shè)有m個領(lǐng)域是用戶感興趣的,那么興趣模型(Interest Profile)也可以用以下向量來表示:
IPro={(C1,H1,Q1,T1),(C2,H2,Q2,T2),…,(Cm,Hm,Qm,Tm)}
其中,(Ck,Hk,Qk,Tk)是用戶的第k類興趣的節(jié)點,Ck表示興趣類別的名稱;Hk表示類別的權(quán)重,是對Ck類的所有樣本的興趣程度的乘積。Qk表示的是樣本的數(shù)量,Tk表示的是興趣詞條的列表。
如果Ck 類有n個興趣的詞條,那么Tk可以表示為:
Tk={(KWk1,WTk1),……(KWkn,WTkn)}
其中,(KWkn,WTkn)是第n個詞條,KWkn是關(guān)鍵詞,WTkn是它的權(quán)重。
用戶興趣模型構(gòu)建之初,需要主動輸入一些興趣類別,這部分主要是用戶的穩(wěn)定興趣。在使用過程中,搜索引擎需要具備隱式獲取用戶興趣的能力,自動處理用戶興趣模型的更新。根據(jù)人類的行為和心理特征,將用戶興趣分為實時興趣和穩(wěn)定興趣,分別指代用戶短期內(nèi)和長期不變的興趣傾向。
用戶實時興趣主要從用戶短期內(nèi)所訪問的頁面獲取。假設(shè)用戶在一天內(nèi)訪問了w個頁面,那么可以使用m維的向量Ptd來描述這一天的興趣:
ptd=(,,…… ,)
其中,每一項可表示為:
=
用戶的穩(wěn)定興趣可以通過用戶n天內(nèi)的訪問歷史來獲取,在本文中,將n的值作為天數(shù)窗口尺度,定義了Sj為用戶在前j天瀏覽的頁面數(shù),其中s0表示的是用戶當天瀏覽的頁面數(shù)。在此基礎(chǔ)上,通過設(shè)置窗口的尺度n來構(gòu)造用戶的穩(wěn)定興趣模型,在這里將n定義為60。與構(gòu)造Ptd相類似,用一個m維的向量來表示用戶的穩(wěn)定興趣,具體表示如下:
psd=(,,…… ,)
根據(jù)以上分析,公式中每一項可表示為:
=
其中,是衰減因子,表示穩(wěn)定興趣的遺忘速率,正如人的大腦會遺忘事情一樣,用戶穩(wěn)定興趣中的元素權(quán)值也會隨著時間的流逝而有所下降,所以說用戶模型中的衰減因子的應(yīng)用保證了模型的時間可靠性。在此遺忘因子中,hl是生命周期參數(shù),根據(jù)經(jīng)驗,人所接受的新知識一般都在一周后便開始遺忘,所以將hl的值設(shè)置為7;din表示關(guān)鍵詞t(k)第一次出現(xiàn)的日期,d表示當前日期,d-din表示的就是關(guān)鍵詞tk在模型中存儲的天數(shù),也就是用戶對其感興趣的天數(shù)。最后,由于用戶每天訪問的頁面數(shù)量不等,通過每天訪問的頁面總數(shù)Sn對其規(guī)范化。
隨著用戶訪問網(wǎng)絡(luò)時間的累積,所訪問頁面數(shù)量的持續(xù)增加,用戶穩(wěn)定興趣模型會自動進行更新。結(jié)合用戶實時興趣,可構(gòu)成用戶的興趣模型,表示如下:
P= a×ptd+c×b×psd
其中,a+b=1,c是一個常量,定義如下:
其中,dur表示用戶花費在每個關(guān)鍵詞上的平均時間,通過初步實驗分析研究,本文確定閾值Th=0.317。
Web頁面與用戶興趣模型一樣,都可以用向量空間表示,所以也就能運用向量的相似度計算來對它們進行統(tǒng)一處理。假設(shè)頁面ri是使用搜索引擎查詢到的第i個頁面,用戶興趣模型P與ri的向量形式的相似度計算方法公式表示如下:
利用這個公式可計算出搜索引擎查詢到的頁面ri 與用戶興趣模型P之間的相似度。也就是說,搜索引擎得到一般搜索結(jié)果后,可以按照相似度大小對檢索結(jié)果進行降序排列并顯示,從而達到個性化搜索的目的。
2 基于Nutch的個性化搜索引擎實現(xiàn)
與一般的搜索引擎類似,Nutch最主要的兩大功能是爬取跟查詢。Nutch中爬蟲的主要職責(zé)是從網(wǎng)絡(luò)上爬取web頁面并且建立數(shù)據(jù)結(jié)構(gòu)良好的索引。查詢則是根據(jù)用戶的查詢關(guān)鍵詞返回符合要求的網(wǎng)頁[5]。由于Nutch的中文分詞采用默認的單字切分,這會直接影響到檢索結(jié)果的排序和檢索的效率,以及準確度,所以本文在Nutch中加入了IKAnalyzer中文分詞組件。
個性化搜索引擎的關(guān)鍵就是高質(zhì)量、高精度的用戶興趣模型應(yīng)用到普通的搜索引擎中去[6]。引擎匹配模塊就是基于此原理來發(fā)揮作用的,計算用戶搜索到的網(wǎng)頁文本跟用戶的興趣的相關(guān)度,并且進行排序。本文編寫了Java代碼實現(xiàn)了用戶興趣模型中用戶興趣的提取。具體來說,首先構(gòu)建一個對象,實現(xiàn)映射,打開建立好的索引文件,新建爬蟲對象,得到最基本的用戶興趣類別;然后根據(jù)用戶的輸入關(guān)鍵詞,得到匹配結(jié)果鏈表,返回與查詢關(guān)鍵詞相匹配的興趣類別;接著對得到的興趣類別賦予權(quán)值,得到興趣類別的關(guān)鍵詞鏈表,并輸出;最后,返回提取的用戶興趣。
個性化搜索引擎的接口界面是提供給用戶檢索并且返回查詢結(jié)果的地方,也是直接給用戶提供服務(wù)的地方,所以簡潔、方便是最基本的要求。最后實現(xiàn)的個性化搜索引擎界面采用Nutch系統(tǒng)自帶的頁面,如圖2所示。
圖2 個性化搜索引擎界面
3 實驗結(jié)果
實驗中需要先根據(jù)用戶興趣模型得到用戶興趣類別。通過索引得到的文本文檔存放在/nutch-1.2/vipcrawl下,vipcrawl是通過nutch自帶的爬蟲爬取同一目錄下的vipurls.txt得到的。vipurls.txt中存放了一百個左右網(wǎng)頁比較多的網(wǎng)站的鏈接,爬取深度為2,得到的頁面具有代表性。分析了用戶的瀏覽行為和內(nèi)容之后,對網(wǎng)頁進行文本分類的結(jié)果如表1。
表1 對網(wǎng)頁進行文本分類的結(jié)果
[主題類別\&文檔總數(shù)T\&查準數(shù)N1\&查錯數(shù)N2\&查準率P\&足球\&300\&245\&55\&0.817\&IT\&800\&756\&44\&0.945\&手機\&200\&175\&25\&0.875\&旅游\&600\&564\&36\&0.940\&]
表1中,P=N1/T。完成了對文本的分類之后,所分成的主題類別就是用戶的興趣類別所在。由于網(wǎng)頁的興趣度已經(jīng)計算出來了,所以可以根據(jù)公式得到用戶每個興趣類別的權(quán)重,計算出的結(jié)果如表2。
表2 用戶興趣類別及權(quán)重
[用戶興趣的類別\&權(quán)重\&足球\&0.32\&IT\&0.26\&手機\&0.17\&旅游\&0.09\&]
由此可以得到具體用戶的興趣模型,模型的形象化表示如圖3所示。
[用戶][足球(0.32)][英超
10.85][德甲
5.65][西甲
3.26] [IT(0.26)][手機(0.17)] [蘋果
12.36][三星
8.36][小米
6.32]
圖3 用戶興趣模型的圖形表示
圖3中,在每個興趣類別下,有若干個興趣詞條,是用“關(guān)鍵詞(其權(quán)重)”來表示的。從圖3模型中可以看出,用戶最感興趣的三個領(lǐng)域分別是“足球”、“IT”、“手機”。其中在“足球”這個類別中,描述用戶興趣的關(guān)鍵詞分別是“英超”、“德甲”、“西甲”,關(guān)鍵詞“英超”所占的比例又是最大的。
在實驗中,輸入的關(guān)鍵詞與預(yù)期的與用戶興趣相關(guān)的內(nèi)容如表3。
表3 預(yù)期的用戶興趣相關(guān)的搜索結(jié)果
[關(guān)鍵詞\&預(yù)期的與用戶興趣相關(guān)的內(nèi)容\&安德森\&與英超球員安德森相關(guān)的內(nèi)容\&蘋果\&與蘋果產(chǎn)品和公司相關(guān)的內(nèi)容\&小米\&與小米公司和產(chǎn)品相關(guān)的內(nèi)容\&小跳蚤\&與巴薩球星梅西(綽號小跳蚤)相關(guān)的內(nèi)容\&]
分別根據(jù)以上四個關(guān)鍵詞進行個性化搜索和百度搜索,根據(jù)表3,統(tǒng)計每個關(guān)鍵詞每次搜索結(jié)果的前30個頁面是否與用戶興趣相關(guān),得到的搜索結(jié)果對比如圖4所示。
圖4 百度搜索與Nutch個性化搜索結(jié)果對比
從圖4結(jié)果對比可以看出,基于用戶興趣模型的Nutch個性化搜索引擎獲得了更多的符合用戶興趣的搜索結(jié)果。在百度搜索的前30個結(jié)果中,符合用戶興趣的分別占到了10%,30%,96.7%和10%;在Nutch個性化搜索的前30個結(jié)果中,符合用戶興趣的分別占到了60%,60%,100%和100%。通過實驗證明,個性化搜索引擎能夠在一定程度上提供更符合用戶興趣的搜索結(jié)果。
4 小結(jié)
本文以用戶興趣模型的構(gòu)建作為切入點和研究重點,建立了分層的向量空間模型表示用戶興趣,構(gòu)建了Nutch個性化搜索引擎,實現(xiàn)了引擎匹配模塊與搜索接口模塊。在實驗中,使用百度搜索引擎和Nutch個性化搜索引擎,針對相同的關(guān)鍵字分別進行頁面搜索,根據(jù)預(yù)期的用戶興趣相關(guān)內(nèi)容,對搜索結(jié)果進行分析和比較。實驗結(jié)果證明,構(gòu)建的用戶興趣模型可以在一定程度上達到個性化搜索的目的,驗證了用戶興趣模型的有效性。但是,在研究過程中,還存在著一些需要改進和完善的方面。這主要包括:用戶興趣模型中信息的隱式獲取需要更高效的方式;搜索結(jié)果的個性化程度還需要進一步提高;用戶興趣更新的有效性需要更長期和頻繁的實驗來證明。所以,在下一步的工作中,將針對所發(fā)現(xiàn)的問題,對個性化搜索引擎的核心——用戶興趣模型進行優(yōu)化,設(shè)計和進行更長期、更高頻次的實驗,對用戶興趣更新的有效性進行驗證,進一步提升搜索引擎的個性化程度。
參考文獻:
[1] 費洪曉,莫天池,秦啟飛等.社交網(wǎng)絡(luò)相關(guān)機制應(yīng)用于搜索引擎的研究綜述[J].計算技術(shù)與自動化,2014.33(1):1-9
[2] Lu D, Li Q. Personalized search on Flickr based on searcher's preference prediction[C]//Proceedings of the 20th international conference companion on World wide web. ACM,2011:81-82
[3] 袁柳,張龍波.個性化搜索中的用戶特征模型研究[J].計算機工程與應(yīng)用,2011.47(15):19-24
[4] 李清華,康海燕,苑曉姣等.個性化搜索中用戶興趣模型匿名化研究[J].西安交通大學(xué)學(xué)報,2013.47(4):131-136
[5] 丁兆貴,金敏.基于Lucene的個性化搜索引擎研究與實現(xiàn)[J].計算機技術(shù)與發(fā)展,2011.21(2).
[6] Kim H N, Rawashdeh M, Alghamdi A, et al. Folksonomy-basedpersonalized search and ranking in social media services[J]. Information Systems,2012.37(1):61-76