摘要:針對當前文獻搜索系統不能理解用戶實時需求的問題,提出了一種面向文獻搜索系統的用戶實時需求發現方法。首先,分析用戶瀏覽、下載等個性化搜索行為;其次,根據用戶搜索行為與用戶需求的關系構建用戶實時需求文檔(RD);然后,從用戶需求文檔中提取用戶需求關鍵詞網絡;最后,運用隨機游走的方法提取出關鍵詞網絡的核心節點構成用戶需求圖。實驗結果表明:在模擬用戶需求的環境下,提取需求圖的方法比算法在檢索指標F值上平均高2.5%;在用戶搜索文獻真實情況下,提取需求圖的方法比算法在檢索指標F值上平均高5.3%,因此,在用戶需求比較穩定的文獻搜索中,該方法能夠獲取用戶需求從而提升用戶體驗。
關鍵詞:用戶行為分析;實時需求;文獻搜索系統;個性化;關鍵詞網絡
中圖分類號:TP391.3文獻標志碼:A
0引言
隨著互聯網技術的發展,在線文獻數量急劇增長,學術研究者可以通過使用文獻搜索系統來減少獲取文獻的時間和成本。然而當前文獻搜索系統呈現出搜索不準確、返回結果有效信息稀疏等缺點,而用戶潛意識地希望只付出較少的檢索代價就能準確獲得想要的結果,因此,用戶希望搜索系統能夠提供從有效信息稀疏的返回結果中挑選出用戶所需要文獻的個性化檢索服務。為用戶不同的檢索需求定制個性化檢索結果來提高搜索質量的個性化的搜索將是一種有發展前景的方法[1]。
造成文獻搜索系統呈現出上述缺點的主要原因在于搜索系統不能理解用戶的實時需求。目前大多數文獻搜索系統的入口都是條件搜索框,而用戶在向系統輸入需求時由于他們的表述能力的不足和搜索框的功能限制,通常只以少數檢索詞來表示自己的需求。而目前搜索系統的重點仍然停留在關鍵詞的匹配方面,因此對于不同用戶不同場景搜索,搜索系統仍然提供相同的結果。特別地,在學術搜索系統中,用戶大部分是學術研究者,他們有著各自的研究領域,每個用戶熟悉的專業知識也不一樣,對相同的查詢詞匯,不同用戶有著不同的理解,因此要提高用戶的搜索體驗為用戶提供個性化服務,首先就要對用戶的查詢意圖進行識別和提取出用戶的需求。
1研究現狀
目前很多研究者都對學術文獻搜索方面進行了研究:Kaya等[2]著重從個性化、可伸縮性和探索性搜索的三個重要屬性方面改進學術推薦服務來提供更好的學術搜索。文獻[3]通過采用能夠區別文檔相關性和位置偏好的檢驗假設來建立用戶點擊模型,觀察用戶點擊行為是否能被相關性和位置偏好完全解釋。等[4]在作者主題模型[5]的基礎上提出作者會議主題連接(,ACTC)模型來研究學術網絡,該模型在作者會議主題(c,ACT)模型上增加了會議主題和主題之間的潛在映射信息。文獻[6]在處理個性化信息檢索時進行了用戶興趣建模,分析真實可以代表用戶興趣的瀏覽、保存、收集或打印網頁的用戶訪問行為;文章闡述了用戶興趣和訪問行為的關系,通過對文檔量化探討了文檔結構和遺忘因子對用戶興趣度的影響,通過興趣模型來對結構過濾,最終提高用戶的滿意度。
上述的工作大都是對文獻或用戶的研究,而本文研究的目的是增強文獻搜索系統對用戶需求的理解,從而為用戶提供個性化服務,提高用戶的搜索體驗,因此本文的研究重點是用戶實時需求的獲取。用戶搜索文獻是一種有較強目的的行為,因此用戶的搜索過程存在著一定的規律,而目前搜索系統在理解用戶需求時通常忽略了用戶檢索文獻的個性化行為。用戶的搜索行為包括瀏覽、下載、略過、翻頁、收藏、分享等操作;這些行為準確地反映了用戶的需求,而記錄這些行為只會增加很小負擔,分析這些行為有助于更好地理解用戶的偏好[7]。另一方面由于文獻文本有著半結構化的特殊的形式,文獻搜索系統對文獻呈現方式也存在著特點,通常搜索系統將文獻的標題、摘要、關鍵詞、引用、正文等都分開顯示,因此學術搜索系統的返回對象的格式十分統一。
由于用戶搜索文獻的行為和搜索系統返回文獻的格式都比較統一,因此可以在搜索系統的基礎上增加用戶需求分析模塊,在用戶搜索文獻時對用戶進行需求分析并為用戶提供個性化服務。整個需求獲取流程如圖1所示,在文獻列表呈現后增加用戶需求分析模塊,該模塊首先對用戶瀏覽、下載的行為以及相應的文獻進行分析,并根據用戶搜索行為建立需求文檔并提取其關鍵詞網絡,再提取出用戶關鍵詞網絡的核心語義以圖的形式呈現給用戶并對用戶需求的表達進行提示。從用戶搜索過程可以看出,在搜索系統呈現出文獻列表之后,不管用戶進行了哪些操作,搜索系統都不會對用戶有任何響應。而在增加需求分析模塊后,充分利用了用戶與搜索系統的交互信息,對用戶的每種檢索行為都能給出響應和提示和當前頁面文獻列表更新。
2用戶需求提取方法
用戶需求的提取過程包含3個步驟:首先,是能夠形式化的表示出文獻文本;其次,對用戶的搜索行為和與行為相關的文獻進行分析;最后,提取并形式化地表示出用戶需求。
2.1文獻文本的表示
2.1.1文獻文本的特點
文獻文本不同于一般的長文本:1)文獻文本中關鍵詞會隨所處領域的不同而表現出不同的含義,比如“LDA”在文本表示中就是潛在狄利克雷分布(ation,LDA)的主題模型,而在模式識別領域一般為線性判別式分析(,LDA)。2)文獻文本由標題、摘要、正文等多部分組成,每個部分的意義和作用都不一樣,通常標題部分的信息比摘要部分的信息重要,而摘要部分的信息又比正文中的信息重要。
為了能夠合理地表示文獻文本,針對文獻文本的第一個特點本文使用圖表示模型,以關鍵詞作為圖的節點,關鍵詞與關鍵詞的關系作為圖的邊。關鍵詞的具體意義通過該關鍵詞與周邊詞匯的關系來體現。為了體現出文獻文本的半結構化的特性,本文提出了基于結構權重的文本表示方法,該方法把一篇文獻分為幾部分,每個部分賦予不同的權重,越重要的部分結構權重越大。對標題、摘要和正文處要賦予合理的權值將是一個難點,文獻[7]中的方法是對不同位置賦予人為的權重,那種方法太主觀,本文結合文獻文本的自身特點最終使用“關鍵詞密度”作為權值的衡量標準,某部分“關鍵詞密度”反映了該部分關鍵詞的密集程度,越重要的部分關鍵詞越密集。最終密度公式為:
其中:為該部分關鍵詞的密度,n為該部分所有關鍵詞的個數,N為該部分的所有詞的個數。結合以上兩種因素最后通過建立關鍵詞網絡來表示文獻文本。
2.1.2關鍵詞網絡的形式化表示
在獲得一篇文獻的標題、摘要、關鍵詞、正文等信息后就很容易建立該篇文獻的關鍵詞網絡,最終關鍵詞網絡用四元組表示:
2.1.3關鍵詞網絡相似度
傳統的圖文本表示模型的相似度計算方法大都是將圖的節點與邊分開來考慮的,這樣很難表現出節點與邊對相似度的共同影響,本文在文獻[8]的基礎上提出了基于最大公共子圖的相似度計算方法,通過動態地改變節點與邊的權衡因子,關鍵詞網絡相似度較小時主要考慮節點之間的關系,相似度較大時邊的影響就會較大,這樣使之在相似度較低的文獻中和相似度較高的文獻中都有很好的分辨能力,最終得到相似度計算公式:
2.2用戶需求文檔構建方法
用戶在搜索文獻時總是按照自己的需求對搜索系統返回的結果進行挑選,略過自己不感興趣的論文,瀏覽自己感興趣的論文,下載自己所需要的論文。用戶與搜索系統交互所產生的文獻序列就是用戶需求的一種體現,因此可以通過用戶的瀏覽、下載的文獻來表達出用戶的實時需求。然而用戶的需求是一種很模糊的抽象概念,面臨的問題就是如何通過用戶瀏覽、下載的文獻序列來合理地構建出用戶需求。用戶搜索文獻的行為通常包含略過、瀏覽、下載、收藏、分享、保存等操作。文獻[9]通過提出了一種基于訪問時間的方法來區分這些行為,訪問時間越長則認為越重要;而文獻[10]在訪問時間的基礎上結合頁面大小和歷史記錄來計算用戶行為的重要程度。
用戶在搜索文獻時下載一篇文獻,說明該篇文獻內容符合用戶的需求;用戶瀏覽一篇文獻時說明該篇文獻Title部分內容用戶比較感興趣,而用戶放棄下載該篇文獻則說明部分內容不是用戶的主要需求。用戶的收藏、分享、保存行為都是文獻內容符合用戶的需求的表現歸屬于下載操作。最終為了能夠充分體現用戶的需求,本文根據用戶檢索流程采用文檔構造法來建立用戶需求文檔(,RD),再提取出用戶的需求。需求文檔可用四元組表示如下:
構建過程如圖2所示,首先把用戶下載的所有文獻的Title合成為Part1;把用戶下載的所有文獻的部分合成Part2;把用戶只瀏覽未下載的所有文獻的Title部分合成Part3。這3部分最終構成一個新的文檔為D。該文檔D的關鍵詞為所有下載的文獻關鍵詞的集合。最后提取出需求文檔關鍵詞網絡KWND。
2.3需求圖的提取方法
需求文檔的關鍵詞網絡雖然能夠反映出用戶的需求,但是節點比較多并且包含很多冗余信息,如果直接用來作為用戶查詢意圖的上下文計算,不但計算量很大而且不能突出用戶的主要需求點,因此本文從需求文檔的關鍵詞網絡中提取核心節點來構成需求圖作為用戶的需求上下文。提取思想:把關鍵詞網絡節點按重要程度進行排序,選取前K個節點作為需求圖的節點。
關鍵詞網絡節點重要程度取決于兩個因素:1)節點的權重,節點權重越高則越重要。2)網絡拓撲結構中節點的關鍵程度。目前傳統的網絡節點排序方法很多,例如局部中心性排序方法[11]、k殼分解法[12]以及[13]等方法。這些方法大都只考慮網絡的某一指標,而且關鍵詞網絡邊和節點都含有權重,很難直接運用上述方法。本文為了綜合考慮節點權重和拓撲結構關鍵程度兩種因素,最終使用隨機游走方法對網絡節點進行排序,方法描述如下:
假設一個Agent在關鍵詞網絡節點間隨機游走,Agent只能選擇跳轉和游走。當Agent處于節點vi,則Agent下一步選擇跳轉的概率為pvi→jump=1/((vi)+1);如果Agent選擇跳轉,則跳到節點vj的概率為pjump→vj=wvj;如果選擇游走則只能游走到相鄰節點,游走到節點vj的概率為pwalk→vj=weij/(∑wei·)這個“we.”中的點號表示什么含義,請明確一下。,其中∑wei·為節點vi組成的所有的邊權重之和。
節點重要度求取步驟如下:
1)Agent以概率pjump→vi跳轉到某一節點vi,Agent經過節點vi次數加1。
2)Agent以概率pvi→jump選擇跳轉或以1-pvi→jump選擇游走,如果選擇跳轉則轉到步驟1),選擇游走則轉到步驟3)。
3)Agent以概率pwalk→vj從當前節點vi游走到鄰節點vj,Agent經過節點vj次數加1,轉到步驟2)。
一直循環上述步驟并記錄Agent經過每個節點vi次數為n(vi),估算出Agent經過該節點概率p(vi),在Agent經過每個節點的概率波動小于閾值時停止循環。最后p(vi)就為該節點的Rank值。
該隨機游走方法在循環過程直接運用關鍵詞網絡節點的權重作為跳轉概率,不存在跳轉概率的更新因此計算規模只和關鍵詞網絡的規模相關,相比傳統的隨機游走方法[14],該方法收斂速度更快。
提取出前K大個此處語句不通順搜索引擎系統需求分析,請作相應調整。Rank值的節點
將所有的節點按照Rank值從大到小排序,提取出前K個節點
以及這些節點之間的邊來構成需求圖,然后可以將需求圖直接展示給用戶,對用戶下一個查詢詞進行提示;計算當前頁面文獻列表的文獻與需求圖的相似度,對文獻列表進行排序。
3實驗分析
3.1實驗設置
需求圖的提取是一種半監督學習。為了驗證需求圖代表用戶需求的能力,實驗采用一種比較需求圖的分類效果和半監督聚類效果的方法。由于實驗驗證涉及到用戶的需求因此實驗采用了兩種方案。
第1種方案描述如下。
實驗數據選取了7個領域的論文,分別是在領域的論文;在領域的論文;在領域的論文;在領域的論文;W.在領域的論文;在領域的論文和在領域的論文,每類各50篇和50篇每類各50篇總共350篇,另外加上50篇
此處語句不太通順,容易讓人產生共700篇的論文,故請對此句進行調整。作為實驗數據雜質的其余類別的論文,共計400篇論文,每領域的論文都是同一作者在同一研究課題所寫的文獻;每一類論文作為用戶的同一需求。
實驗方案采用需求圖分類方法。每類隨機選擇n篇論文作為用戶下載的論文來模擬用戶行為,構建需求文檔提取出需求圖;得到所有類的需求圖后,計算剩余論文與各需求圖的相似度,把論文歸到與之相似度最大的需求圖類別。半監督聚類:每類也隨機選擇n篇論文,將400篇論文聚成7類,采用聚類方法,要求每類選擇的n篇論文必須聚到同一類,不同類論文不能聚到一類。最后,比較兩種方法在n分別取2,3,5,10的情況下檢索的準確率、召回率和F值。
第2種方案描述如下。
實驗數據獲取多名用戶在rary搜索文獻的日志,選取20個下載量較高的查詢的前50篇文獻,其中包含用戶略過、瀏覽和下載的文獻。平均每個查詢50篇文獻中有7.4篇被下載。
實驗方案采用需求圖分類方法。在用戶下載了n篇論文時,從日志中獲取用戶在該次搜索中前面下載和瀏覽的所有文獻,結合用戶下載和瀏覽的行為與相關文獻提取出需求圖;計算需求圖與列表中文獻的相似度,將相似度大于閾值的論文歸為用戶需求類。半監督聚類:用()[15]聚類方法將文獻列表中50篇文獻聚成若干個類。聚類時增加約束,保證下載的前n篇論文必須聚到同一類作為需求類;在下載的第n篇論文前的所有瀏覽和略過的論文都不能聚到需求類中。兩種方法都是把日志中用戶下載的所有論文作為用戶的需求標準論文集,比較需求類和需求標準集中的文獻,計算檢索的準確率、召回率和F值。最后在n分別取1,2,3,4,5的情況下對這兩種方法進行對比。
3.2實驗結果分析
第1種方案實驗效果如圖3所示,從實驗結果可以看出搜索引擎系統需求分析,在總體趨勢上隨著選取的論文數目n的增加,需求圖和半監督聚類的效果均越來越好。在論文篇數n=2時,半監督聚類方法比需求圖分類效果要好。當選擇論文數量大于3篇時,需求圖的分類效果就要好于半監督聚類,最終在n取3,5時可計算得到需求圖的效果比半監督聚類效果在F值上平均高2.5%。
第2種方案實驗效果如圖4所示,當用戶下載了一篇論文時,半監督聚類和需求圖兩種方法效果都普遍偏低,但半監督聚類要比需求圖方法好很多。當n=2時需求圖方法的結果F值就已經好于半監督聚類;在n=3時需求圖檢索F值比半監督聚類高5.3%。隨著n的增大,需求圖方法的精度、召回率和F值均有所增加,而半監督聚類下載了幾篇論文后精度呈現下降趨勢,最終F值不會有很大的提升。
兩種方案實驗的趨勢表明,提取需求圖的方法比半監督聚類方法效果更好,在用戶進行文獻搜索時,隨著用戶交互的增加,需求圖將越來越接近用戶的實時需求。
4結語
本文在文獻搜索系統的基礎上,結合文獻文本的特點提出了基于結構權重的文本表示模型;通過對用戶搜索文獻時的交互行為進行深入研究,分析并提取用戶與搜索系統交互所反映的與用戶需求相關的信息,構建需求文檔來進一步明確用戶檢索意圖。最后提取出用戶搜索的核心需求,以圖的形式對用戶的下一步搜索進行提示,從而節約用戶搜索文獻的成本。