張曉飛 余建橋
摘要:為準確有效地識別出用戶感興趣的信息,該文構建了一個簡單的基于用戶興趣模型的個性化搜索系統(tǒng)。該系統(tǒng)借助開源搜索引擎Nutch和Solr全文搜索服務器挖掘用戶的瀏覽數(shù)據(jù)和點擊行為,設計基于用戶點擊行為的個性化PageRank算法,實現(xiàn)了面向用戶的個性化搜索。實驗過程中,通過和未使用個性化搜索算法的系統(tǒng)比較,實驗結果得出:基于用戶興趣模型構建的個性化搜索系統(tǒng)會根據(jù)用戶興趣模型和個性化搜索算法對搜索的結果進行優(yōu)化和排序,能更加注重用戶的興趣體驗,可以提高搜索引擎的準確度,使用戶對查詢結果更加滿意。
關鍵詞:用戶興趣模型;個性化搜索;動態(tài)更新策略
中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2016)18-0001-04
1 概述
隨著Internet技術的快速發(fā)展,人們通過Internet可以快速、便捷地獲取大量信息。然而,目前存在的搜索引擎仍然存在同步性差、檢索方式單一、信息服務方式被動等不足,沒有考慮到不同的用戶有著各自的興趣愛好,使查詢結果不能根據(jù)不同用戶進行優(yōu)化,而個性化搜索可以幫助用戶最快最簡單地找到自己需要的內容或網站。因此,個性化搜索服務成為當前一個熱門的研究課題。
個性化搜索對于提高搜索信息的準確度具有重要意義,研究人員已做了一些有意義的工作。中南民族大學的張小琴、王曉輝[1]等人對現(xiàn)有的主題信息搜索系統(tǒng)進行了改進,使其具有動態(tài)學習功能,能夠通過分析用戶訪問數(shù)據(jù)來建立用戶興趣模型,并利用該模型對搜索結果進行個性化處理和篩選,從而達到個性化搜索的目的,但是,其由于搜索引擎不能準確理解網頁內容的語義,簡單的利用詞語匹配、統(tǒng)計分析和相關分析等算法在一定程度上會造成理解錯誤。董富江、楊紅等人[2]設計的Web頁面?zhèn)€性化搜索系統(tǒng)提出了一個Web頁面搜索系統(tǒng)架構,給出了系統(tǒng)中用戶個性化信息存儲方法。但是,該系統(tǒng)難以使用戶有效表達查詢需求,導致出現(xiàn)搜索結果不理想的情況。因此,如何建立成熟的用戶興趣模型和個性化結果排序算法已成為個性化服務研究的熱門課題。
本文針對目前搜索引擎不能根據(jù)不同用戶調整搜索頁面的缺陷,在現(xiàn)有搜索引擎技術為基礎上進行改進,以減少用戶使用的復雜度為原則,提出了一種用戶興趣模型,它通過搜集用戶瀏覽頁面的歷史記錄和點擊行為,并對傳統(tǒng)的個性化搜索算法進行改進,以此來解決目前搜索引擎存在的不足,從而提高搜索引擎的準確度,使用戶對搜索結果更加滿意。
2 相關技術
2.1 個性化檢索模塊
個性化檢索模塊可以對各個用戶在不同時間段的興趣愛好,為用戶提供更高質量的搜索結果。通常的個性化檢索模塊主要包括:網絡爬蟲、索引、查詢機、接口模塊、個性化模塊、過濾器、用戶興趣模型數(shù)據(jù)分析等。[3]在此基礎上,本文增加了個性化排序、個性化模塊、用戶興趣模型三個模塊,其中個性化排序模塊和個性化興趣庫是本模型的關鍵部分,其功能分別如下:
1)個性化模塊:通過用戶興趣庫中的數(shù)據(jù)分析各個用戶的查詢請求,從而使搜索引擎能夠根據(jù)不同用戶的行為進行相應的數(shù)據(jù)處理。
2)個性化興趣庫:主要用于存儲各個用戶的興趣愛好數(shù)據(jù)。
3)個性化排序模塊:對搜索后的結果重排序,使用戶對搜索結果更加滿意。
2.2 Nutch技術
Nutch[4]是一個開源搜索引擎,主要通過Java 來實現(xiàn),其結構主要由爬蟲、索引和搜索三個模塊組成。Nutch旨在讓使用者能夠快速簡便地配置高質量的Web搜索引擎。爬蟲模塊[5]用于為從網絡中抓取的網頁建立索引,索引模塊是其余兩個模塊的接口,而搜索模塊主要利用用戶查詢的關鍵詞得到搜索結果。
2.3 Solr技術
Solr[6]是基于Lucene的共性能的全文搜索服務器,主要通過Java來實現(xiàn)。它利用Lucene的可擴展功能,形成一個單獨的高質量的企業(yè)級搜素服務器。其可以通過豐富的查詢語言實現(xiàn)系統(tǒng)的可擴展性。另外,Solr通過優(yōu)化信息查詢功能,使用戶對Web應用程序的開發(fā)使用更加便捷,其主要具有垂直搜索、緩存高效靈活、搜索結果高亮顯示、分布式搜索、支持數(shù)據(jù)庫導入、易于操作管理等特點。
2.4 中文分詞技術
由于計算機不能直接識別搜索到的自然語言,所以必須把搜索結果轉換成計算機可理解的格式。在中文文檔中,單位是以單個漢字為基礎,而在自然語言中,詞是最小的、不可分割的數(shù)據(jù),因而需要把每個語句分解成有意義的詞。所以在處理中文數(shù)據(jù)時,必須解決中文分詞的問題。
目前,IKAnalyzer中文分詞系統(tǒng)已經發(fā)展到為基于Java的通用分詞模塊,同時它獨立于Lucene,并提供了對Lucene的默認優(yōu)化實現(xiàn)[7]。它采用特有的“正向迭代最細粒度切分算法”,具有80萬字/秒的高速處理能力。另外,針對Lucene全文檢索優(yōu)化的查詢分析器IKQueryParser,采用歧義分析算法優(yōu)化對搜索關鍵字進行排序,極大地提高了Lucene搜索的準確度。
由于本文研究重點是用戶興趣模型的構建,中文分詞技術僅作為其中的一種工具。所以本文直接使用了目前使用最廣泛的IKAnalyzer中文分詞系統(tǒng)對文本進行分詞。
3 用戶興趣模型構建與個性化搜索排序算法改進
3.1 基于動態(tài)更新策略的用戶興趣模型構建
本文通過系統(tǒng)自動記錄用戶的瀏覽歷史記錄和點擊行為,并通過持續(xù)搜索用戶的瀏覽行為作為模型的數(shù)據(jù)來源。由于整個過程都是系統(tǒng)自動完成的,所以不會影響用戶的使用體驗。系統(tǒng)首先挖掘存儲在瀏覽器中用戶的歷史記錄數(shù)據(jù)信息,得到用戶的興趣愛好,而后分析用戶對查詢結果的動態(tài)點擊行為,并考慮用戶對檢索信息的關注度可能會隨著時間而發(fā)生變化,因此在挖掘出的興趣愛好數(shù)據(jù)中添加時間標簽,以此來更新用戶不再關注的興趣愛好點[8]。由于文檔是使用自然語言表達的,所以為了使文檔在系統(tǒng)中具有可比性,本文使用向量空間模型來構建“用戶興趣模型”,其設計流程如圖1所示:
圖1 用戶建模的設計流程
利用IKAnaylyzer中文分詞系統(tǒng)完成中文分詞工作后,采用基于TF-IDF(term frequency–inverse document frequency)算法來構建向量空間模型,通過TF-IDF的計算公式,通過關鍵詞在文檔中的出現(xiàn)次數(shù)和頻率得到其權值:
其中,表示關鍵詞在所有生成文本中出現(xiàn)的頻率,表示在所有生成文本中的倒序排列文本的頻率,其計算方法如下:
其中,為生成文本的數(shù)量,為含有關鍵詞的所有文本的數(shù)量。
考慮關鍵詞的時間因素,在每個關鍵詞添加時間標簽,更符合用戶搜索行為的實際。可將計算關鍵詞的權值方法調整如下:
其中,是分析當日和對關鍵詞的最近查詢時間的差值(以天為單位)。則網頁的特征向量表示如下:
其中,表示頁面的特征向量,表示當前網頁中的第個關鍵字,表示頁面中關鍵字的權重。
當對用戶興趣模型和文檔兩者的數(shù)據(jù)進行對比時,可通過計算用戶興趣度向量和文檔的特征向量的夾角來評估,夾角的大小與用戶關注程度成反比,即越小,該文檔與用戶的興趣愛好點的關聯(lián)度越高。其計算公式如下所示:
3.2 基于動態(tài)用戶興趣模型的PageRank個性化搜索排序算法
PageRank算法是Google創(chuàng)始人L.Page和S.Brin[9]提出的用來評價頁面級別和重要程度的一種方法。它對頁面權值計算的基本思路是:頁面的重要性程度取決于其他網頁的重要性程度,并依賴于它。即一個頁面的重要性與其他頁面對其的引用次數(shù)和鏈接次數(shù)有很大關系。
隨著不同系統(tǒng)的需要,現(xiàn)在已經衍生出了許多改進后的PageRank算法,常見的改進有基于內容改進的PageRank算法、基于時間改進的PageRank算法等[10]。本文采用的是基于用戶點擊行為的PageRank算法,其大致思路是將用戶的點擊行為作為對頁面的重要考慮因素,并將其添加到PageRank算法中。
通過PageRank算法得到的數(shù)值是衡量頁面關聯(lián)程度的一個重要指標,但如果只依靠PageRank算法得到的數(shù)值并不能得到用戶滿意的結果。即使一個頁面的重要性程度再高,如果和用戶的瀏覽記錄和點擊行為不匹配,也是沒有任何實際意義的。基于用戶興趣模型的個性化排序算法需要網頁內容相關度計算和基于用戶點擊行為的PageRank值計算兩個階段來完成。
3.2.1 頁面內容關聯(lián)度計算
頁面內容關聯(lián)度計算目的是從初始的系統(tǒng)查詢結果中篩選出一部分和用戶查找數(shù)據(jù)關聯(lián)程度較高的頁面文檔,也就是計算頁面的相關度,以此來確保頁面內容的高關聯(lián)度。
3.2.2 融入用戶點擊行為的PageRank算法優(yōu)化
本系統(tǒng)以通過PageRank算法得到的數(shù)值為依據(jù),在頁面內容關聯(lián)度計算的基礎上,篩選出與接近用戶興趣愛好點的頁面。雖然不同用戶有可能在不同時間點查詢得到相同的頁面集合,但是由于通過PageRank算法得到的數(shù)值不同,因此可以計算出不同的排序結果。融入用戶點擊行為的PageRank算法優(yōu)化,不僅對頁面重要性權重進行了計算,同時融入了用戶動態(tài)點擊行為,把內容重要性程度高的頁面中用戶興趣愛好點更高的頁面的排序更加靠前,從而實現(xiàn)個性化排序的結果。
結合3.2.1和3.2.2的分析,本文的個性化排序算法表示如下:
其中,是3.2.1中查詢的初始系統(tǒng)查詢結果與用戶興趣模型的相似度值,而是3.2.2中計算文檔中融入用戶點擊行為的通過PageRank算法得到的數(shù)值,是兩者的比重系數(shù)。兩個階段得分的總和相加得到查詢和文檔的相似度值,根據(jù)該相似度值的大小以降序的形式對查詢結果重新排序,從而得到融入用戶點擊行為的通過PageRank算法得到的數(shù)值降序列表。
4 系統(tǒng)有效性檢驗
在前面介紹的個性化搜索運用到的有關技術、用戶興趣模型構建方法和基于用戶興趣模型的PageRank算法的基礎上,提出融入用戶點擊行為的PageRank優(yōu)化算法,通過Nutch和Solr兩種搜索引擎開源框架,設計并實現(xiàn)了基于用戶興趣模型的個性化搜索排序模型。
4.1實驗環(huán)境
實驗利用 MyEclipse 7.0、MySql 5.1.35、Nutch1.4、Solr3.5.0等工具,采用JAVA語言實現(xiàn)構建系統(tǒng),運行在Intel(R) Core(TM) i5 CPU 2.67GHZ 、8GB內存、Window Win7 64位操作系統(tǒng)的PC之上。選取對比的兩個系統(tǒng)分別為張小琴、王曉輝[1]等人改進的主題信息搜索系統(tǒng)和董富江、楊紅等人[2]設計的Web頁面?zhèn)€性化搜索系統(tǒng)。
4.2 模塊設計
4.2.1抓取頁面
抓取頁面通過Nutch搜索引擎開源框架實現(xiàn)。其過程為:首先在Nutch目錄下新建一個名為url的記事本文件,在url文件中寫入要抓取頁面的頂級域名,即要抓取數(shù)據(jù)的初始頁面。url文件中中一行只能寫入一個頁面的URL值,然后系統(tǒng)將從url文件中獲取站點的域名,然后通過編輯Nutch內置的url過濾器文件,對url中搜索得到的結果進行過濾處理。
4.2.2 檢索界面
因為Nutch 1.4中沒有用戶搜索界面操作功能,而Solr可以給設計者提供基于HTTP的可視化操作頁面,所以設計用戶興趣模型系統(tǒng)時,本文采用了Nutch和Solr結合的方式。其實現(xiàn)過程如下:
開啟Tomcat,在瀏覽器中輸入http://localhost:8080/solr/admin進入檢索界面,在“Query String”選項中輸入檢索詞,即可獲取和檢索詞有關的檢索結果,并可以將所有檢索結果以XML格式保存。
4.2.3 中文分詞
由于Solr是在全英文操作開發(fā)的,所以無法對檢索結果進行中文分詞。因此,本系統(tǒng)使用IKAnalyzer中文分詞系統(tǒng)來實現(xiàn)系統(tǒng)的中文分詞功能。其實現(xiàn)過程如下:
將IKAnalyzer3.2.8配置的java包拷貝到home/solr/WEB-INF/lib中,并在solr/conf/schema.xml中添加如下代碼:
Class = “org.w Itea.analyzer.lucene.IKAnalyzer”/> Class=”org.Itea.analyzer.lucene.IKAnalyzer”/>
4.2.4 用戶興趣模型
通過讀取index.dat文件來獲得用戶訪問網頁的各類數(shù)據(jù)信息(如瀏覽次數(shù)、瀏覽時間等),并把這些數(shù)據(jù)信息存放在數(shù)據(jù)庫中。
通過IKAnalyzer中文分詞系統(tǒng)對檢索結果進行中文分詞處理,并統(tǒng)計中文分詞后每個詞在各個文本中出現(xiàn)的次數(shù),通過TF-IDF公式,計算出每個詞的權重。
4.2.5 個性化重排序模塊
主要通過四個步驟完成:首先,計算所有頁面的PageRank算法數(shù)值;然后,系統(tǒng)調用Solr來檢索每個關鍵字,得到初始檢索結果;再根據(jù)夾角余弦公式計算各個網頁中的結果和在用戶興趣模型中的相似度,從而得到相似度分值;最后計算融入用戶點擊行為的PageRank優(yōu)化算法得到的數(shù)值,對初始檢索結果進行篩選和重排序,從而得到最終經過優(yōu)化的排序結果。
4.3實驗結果及分析
4.3.1 排列位置比較
如圖3是Web頁面?zhèn)€性化搜索系統(tǒng)、主題信息搜索系統(tǒng)和個性化搜索同時檢索關鍵詞“網易”后,對檢索結果比較。
由圖3可以看出,在Web頁面?zhèn)€性化搜索系統(tǒng)結果中,“云閱讀”排在第六位,在主題信息搜索系統(tǒng)結果中,“云閱讀”排在第五位。當用戶點擊之后,在個性化搜索結果中此條搜索結果被放在第三位,說明用戶點擊過的頁面更靠前了。同理,本系統(tǒng)中的“通行證”、“傳真”、“地圖”、“免費郵箱”等分地址的位置較另外兩種系統(tǒng)均有不同程度地前移,說明本系統(tǒng)較其他兩種系統(tǒng)的查詢更為準確。
根據(jù)圖3,得到查詢結果分析,如表1所示。
表1的分析結果表明:與主題信息搜索系統(tǒng)和Web頁面?zhèn)€性化搜索系統(tǒng)的結果相比,本文設計的個性化搜索系統(tǒng)的搜索結果中,用戶感興趣的網頁最多,而且排序位置比較集中靠前,這在一定程度上減少了用戶的篩選時間。但是由于加入個性化模塊后需要與用戶興趣模型匹配以及搜索結果重排序,所以在查詢時耗費的時間比另外兩種搜索系統(tǒng)稍長,但并不影響用戶體驗。由此可得,本文設計的個性化搜索系統(tǒng)更值得推薦使用。
4.3.2 查準率比較
查準率是目前使用最多的搜索評價數(shù)據(jù),它是指以檢索結果滿足用戶需求的數(shù)量和檢索結果的總量之比。
其中,是檢索結果滿足用戶需求的數(shù)量,是檢索結果的總量。
我們把本模型的個性化搜索與主題信息搜索系統(tǒng)和Web頁面?zhèn)€性化搜索系統(tǒng)進行對比,通過7種不同的檢索詞來試驗,對15次實驗中得到的檢索結果都取前10個頁面,利用公式7計算各自的查準率,實驗結果如表2所示。
從上述實驗結果可得,使用本系統(tǒng)的搜索算法查準率明顯比主題信息搜索系統(tǒng)和Web頁面?zhèn)€性化搜索系統(tǒng)效果更好,并且隨著用戶使用該系統(tǒng)的頻率,查準率的優(yōu)勢就更加明顯。由表2可以看出,在用戶存在興趣的前提下,采用本文的搜索模型系統(tǒng),效率也要明顯比另外兩種搜索引擎系統(tǒng)高;如果用戶的興趣愛好點越明顯,采用本模型搜索引擎系統(tǒng)的優(yōu)勢也就更加明顯。
總結分析以上的實驗運行結果,說明用戶興趣模型在搜索引擎系統(tǒng)中發(fā)揮了突出作用,它可以讓系統(tǒng)更好地“理解”用戶興趣愛好點,從而能為用戶創(chuàng)造更優(yōu)化的體驗環(huán)境,使用戶能夠獲取自己感興趣的信息,從而來提高用戶查詢信息的滿意程度。
5 總結
隨著信息技術的快速發(fā)展,搜索引擎已經逐漸成為用戶搜集網絡信息的主要方式。本文首先對用戶查詢信息數(shù)據(jù)進行分詞,然后利用TF-IDF算法計算每個特征詞的權重,并將其權重進行疊加,最后根據(jù)權重的大小選擇一定數(shù)量的關鍵詞構建用戶興趣模型。同時,把相關性提取策略作為影響網頁權重的一個因素,將PageRank算法改進,并設計了個性化搜索系統(tǒng)。通過實驗對比得出,本文的用戶興趣模型通過個性化模塊和排序算法的改進,能夠更好地體現(xiàn)用戶的興趣偏好,提高搜索引擎的準確度,使用戶對查詢結果更加滿意。但是,系統(tǒng)引入的個性化模塊降低了搜索速度。利用分布式系統(tǒng)提高檢索速度將作為以后的研究方向繼續(xù)探索。
參考文獻:
[1] 張小琴,王曉輝. 主題信息搜索系統(tǒng)中的搜索策略研究[J].軟件導刊,2014(1).
[2] 董富江,楊紅. Web頁面?zhèn)€性化搜索系統(tǒng)設計[J].軟件導刊,2015(1).
[3] 茹立云,李智超,馬少平. 搜索引擎索引網頁集合選取方法研究[J].計算機研究與發(fā)展,2014(10).