鏈接分析算法之:主題敏感PageRank

  前面的討論提到。PageRank忽略了主題相關性,導致結果的相關性和主題性降低,對于不同的用戶,甚至有很大的差別。例如,當搜索“蘋果”時,一個數碼愛好者可能是想要看 iphone 的信息,一個果農可能是想看蘋果的價格走勢和種植技巧,而一個小朋友可能在找蘋果的簡筆畫。理想情況下,應該為每個用戶維護一套專用向量,但面對海量用戶這種方法顯然不可行。所以搜索引擎一般會選擇一種稱為主題敏感PageRank(Topic-Sensitive PageRank )的折中方案。主題敏感PageRank的做法是預定義幾個話題類別,例如體育、娛樂、科技等等,為每個話題單獨維護一個向量,然后想辦法關聯用戶的話題傾向,根據用戶的話題傾向排序結果。

      主題敏感PageRankPageRank算法的改進版本,該算法已被Google使用在個性化搜索服務中。

1. 基本思想

基本思想:

       通過離線計算出一個與某一主題相關的PageRank向量集合,即計算某個頁面關于不同主題的得分。主要分為兩個階段:主題相關的PageRank向量集合的計算和在線查詢時主題的確定(即在線相似度的計算)。 

2. 主題敏感PageRank計算流程

1、確定話題分類

           主題敏感PageRank參考ODP網站(www.dmoz.org),定義了16個大的主題類別,包括體育、商業、科技等。ODP(Open Directory Project)是人工整理的多層級網頁分類導航站點(參見圖1),在頂級的16個大分類下還有更細致的小

                   1.gif

     

                                                                   圖1  ODP首頁

粒度分類結構,在最底層目錄下,人工收集了符合該目錄主題的精選高質量網頁地址,以供互聯網用戶導航尋址。主題敏感PageRank采用了ODP最高級別的16個分類類別作為事先定義的主題類型。 

2、網頁topic 歸屬

       這一步需要將每個頁面歸入最合適的分類,具體歸類有很多算法,例如可以使用 TF-IDF 基于詞素歸類,也可以聚類后人工歸類。這一步最終的結果是每個網頁被歸到其中一個 topic。

3、分topic 向量計算

      在PageRank的向量迭代公式:

         2.png

        

     即R = q  × P * R + ( 1 一 q) * e/N  (e單位向量)

     而在主題敏感PageRank中,向量迭代公式為:

       3.jpg

          首先是單位向量e變為了s。

          而s是這樣一個向量:對于某 topic 的s,如果網頁k在此 topic 中,則s中第k個元素為1,否則為0。注意對于每一個 topic 都有一個不同的s。而|s |表示s中 1 的數量。

        假設有頁面A,B,C, D,假設頁面A歸為 Arts,B歸為 Computers,C歸為 Computers,D歸為 Sports。那么對于 Computers 這個 topic,s就是:

         4.gif  

     假設我們設置阻尼系數q=0.8, 而|s|=2, 因此,迭代公式為:

       5.jpg

       最后算出的向量就是 Computers 這個 topic 的 rank。如果實際計算一下,會發現B、C頁在這個 topic 下的權重相比上面非 Topic-Sensitive 的 rank 會升高,這說明如果用戶是一個傾向于 Computers topic 的人(例如程序員),那么在給他呈現的結果中B、C會更重要,因此可能排名更靠前。

4. 在線相似度計算

        最后一步就是在用戶提交搜索時,確定用戶的 topic 傾向,以選擇合適的 rank 向量。主要方法有兩種:

       一種是列出所有 topic 讓用戶自己選擇感興趣的項目,這種方法在一些社交問答網站注冊時經常使用;

       另外一種方法利用“用戶查詢分類器”對查詢進行分類,即搜索引擎會通過某種手段(如 cookie 跟蹤)跟蹤用戶的行為,進行數據分析判斷用戶的傾向。

       如2,假設用戶輸入了查詢請求“喬丹”,查詢詞“喬丹”隸屬于體育類別的概率為0.6,娛樂類別的概率為0.1,商業類別的概率為0.3。                                              

6.jpg

                                            2 在線相似度計算

       在進行上述用戶查詢分類計算的同時,搜索系統讀取索引,找出包含了用戶查詢“喬丹”的所有網頁,并獲得已計算好的各個分類主題的PageRank值,在圖6-21的例子里,假設某個網頁A的各個主題PageRank值分別為體育0.2,娛樂0.3以及商業0.1。

      得到用戶查詢的類別向量和某個網頁的主題PageRank向量后,即可計算這個網頁和查詢的相似度。通過計算兩個向量的乘積就可以得出兩者之間的相關性。在圖6-21的例子里,網頁A和用戶查詢“喬丹”的相似度為:

Sim(“喬丹”,A)= 0.6*0.2+0.1*0.3+0.3*0.1=0.18

      對包含“喬丹”這個關鍵詞的網頁,都根據以上方法計算,得出其與用戶查詢的相似度后,就可以按照相似度由高到低排序輸出,作為本次搜索的搜索結果返回給用戶。

3. 利用主題敏感PageRank構造個性化搜索    

       以上內容介紹的是主題敏感PageRank的基本思想和計算流程,從其內在機制來說,這個算法非常適合作為個性化搜索的技術方案。

    在圖2所示例子里,計算相似度使用的只有用戶當前輸入的查詢詞“喬丹”,如果能夠對此進行擴展,即不僅僅使用當前查詢詞,也考慮利用用戶過去的搜索記錄等個性化信息。比如用戶之前搜索過“耐克”,則可以推斷用戶輸入“喬丹”是想購買運動服飾,而如果之前搜索過“姚明”,則很可能用戶希望獲得體育方面的信息。通過這種方式,可以將用戶的個性化信息和當前查詢相融合來構造搜索系統,以此達到個性化搜索的目的,更精準的提供搜索服務。

4. 主題敏感PageRank與PageRank的差異 

      PageRank算法基本遵循前面章節提到的“隨機游走模型”,即用戶在瀏覽某個網頁時,如果希望跳轉到其它頁面,則隨機選擇本網頁包含的某個鏈接,進入另外一個頁面。主題敏感PageRank則對該概念模型做出改進,引入了更符合現實的假設。一般來說用戶會對某些領域感興趣,同時,當瀏覽某個頁面時,這個頁面也是與某個主題相關的(比如體育報道或者娛樂新聞),所以,當用戶看完當前頁面,希望跳轉時,更傾向于點擊和當前頁面主題類似的鏈接,即主題敏感PageRank是將用戶興趣、頁面主題以及鏈接所指向網頁與當前網頁主題的相似程度綜合考慮而建立的模型。很明顯,這更符合真實用戶的瀏覽過程。

     PageRank是全局性的網頁重要性衡量標準,每個網頁會根據鏈接情況,被賦予一個唯一的PageRank分值。主題敏感PageRank在此點有所不同,該算法引入16種主題類型,對于某個網頁來說,對應某個主題類型都有相應的PageRank分值,即每個網頁會被賦予16個主題相關PageRank分值。

     在接受到用戶查詢后,兩個算法在處理方式上也有較大差異。PageRank算法與查詢無關,只能作為相似度計算的一個計算因子體現作用,無法獨立使用。而主題敏感PageRank是查詢相關的,可單獨作為相似度計算公式使用。而且,在接收到用戶查詢后,主題敏感PageRank還需要利用分類器,計算該查詢隸屬于事先定義好的16個主題的隸屬度,并在相似度計算時的排序公式中利用此信息。

轉自:http://blog.csdn.net/hguisu/article/details/8005192

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/2724

(0)
s19930811s19930811
上一篇 2016-02-14
下一篇 2016-02-17

相關推薦

  • 激情的魅力samba服務(熱舞篇)

    正如名稱一樣的迷人的一個服務,充滿了激情?;馃岬奶鞖庵懈砑右环旨聞?,本章就嘗試對下面火熱的samba服務是要如何破解并掌握于手心中。(本篇當中借鑒了鳥哥私房菜和linux就該這么學還有傳說中的中華小題庫,通過做題來對于samba進行初步的了解)后續還會添加一篇關于samba服務的文章,作為深度了解。 首先了解下samba的來源,聽說作者老道(Tridgwe…

    Linux干貨 2017-08-19
  • raid介紹及邏輯卷與邏輯卷快照應用

    高級文件系統管理 配置配額系統 綜述 在內核中執行,以文件系統為單位啟用,對不同組或者用戶的策略不同,如將home單獨分區,但是并不意味著每個用戶都可以無上限使用該分區的空間,所以系統管理員要據塊或者節點進行限制,限制每個用戶使用磁盤的空間,當到達執行軟限制( soft limit  )  會警報提醒用戶;當硬限制( hard limit…

    Linux干貨 2016-09-02
  • linux上的文本三劍客之grep和文本查看工具

    linux上文本處理三劍客 grep,egrep,fgrep:文本過濾工具(模式:pattern)工具:     grep:基本正則表達式,-E:支持擴展正則表達式,-F:不支持正則表達式     egrep:擴展正則表達式,-G:支持基本正則表達式 ,-F:不支持正則表達式 &…

    Linux干貨 2016-08-07
  • Linux任務計劃

    Linux任務計劃主要分為分為兩種分別是一次性任務計劃和周期性任務計劃實現工具主要是at和crontab下面將詳細介紹任務計劃工具的使用。 1、at命令一次性任務計劃 at命令是由atd服務提供的其主程序包是atd在CentOS6上可以使用service atd start命令來啟動在CentOS7上需要使用systemctl start atd.servi…

    Linux干貨 2016-09-11
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行…

    Linux干貨 2016-08-10
  • 使用mysql-mmm實現高可用mysql讀寫分離

    MMM介紹:  MMM全稱為Multi-Master Replication Manager for MySQL,即為主主復制管理器;根據MMM官網介紹,其工作原理類似于lvs,都是利用vip地址;但lvs只有一個組件便可以正常工作,而MMM則使用三個組件,分別是mysql-mmm、mysql-mmm-agent、mysql-mmm-monitor…

    Linux干貨 2015-08-04
欧美性久久久久