訪問博客查看 本文 最新內(nèi)容,排版更美觀ヾ(?ω?`)o 如有錯誤歡迎指出~
IR 信息檢索系列筆記:
- IR學(xué)習(xí)筆記 #1 概論&布爾模型
- IR學(xué)習(xí)筆記 #2 統(tǒng)計語言模型
- IR學(xué)習(xí)筆記 #3 向量空間模型
- IR學(xué)習(xí)筆記 #4 概率模型
- IR學(xué)習(xí)筆記 #5 檢索系統(tǒng)評價
- IR學(xué)習(xí)筆記 #6 網(wǎng)絡(luò)信息檢索
- IR學(xué)習(xí)筆記 #7 IRLbot
- IR學(xué)習(xí)筆記 #8 倒排索引模型
- IR學(xué)習(xí)筆記 #9 網(wǎng)頁排序
- IR學(xué)習(xí)筆記 #10 查詢相關(guān)反饋
- IR學(xué)習(xí)筆記 #11 問答系統(tǒng)
- IR課程項目-文學(xué)檢索-開發(fā)文檔
當(dāng)我們在一個小的文檔庫中查詢時修然,即使 query 很模糊徊哑,我們只要返回所有相關(guān)文檔即可袜刷,甚至不需要猜測用戶的查詢需求。
但如果在一個大的文檔集中查詢時(比如谷歌)莺丑,往往可以返回大量的相關(guān)文檔著蟹。如果基于相關(guān)度的 ranking,往往無法區(qū)分哪些文檔該呈現(xiàn)在最前面梢莽,甚至可能時一些低質(zhì)量的網(wǎng)頁對于某些詞的詞頻很高萧豆,從而排在了前面。
此時我們就不能只聚焦與「相關(guān)度」昏名,PageRank 算法通過計算一個頁面的「重要度」涮雷,從而判別網(wǎng)頁質(zhì)量,得到排序轻局。
基本思想
如何衡量「重要度」洪鸭?用點擊率、權(quán)威性仑扑?然而览爵,這些數(shù)據(jù)都是爬蟲無法爬取到的,同時也難以正確衡量镇饮。
科學(xué)家們從 Bibliometrics (文獻計量學(xué)) 中借鑒了如下觀點:
- Bibliographic coupling (引文耦合):兩篇文章具有相近的引用蜓竹。
- Co-citation (協(xié)同引用):兩篇文章被大量其他文章同時引用该互。
- Impact factor (影響因子):一個期刊中的文章的年平均被引次數(shù),衡量了一個期刊的「重要度」奔穿。
例如番挺,最權(quán)威的 SCI 往往只收錄其認(rèn)為重要的期刊,也只記錄其中的期刊相互引用的次數(shù)簇秒。當(dāng)一篇文章被 SCI 收錄的文章引用時,通常也可以說明其有一定的影響力——即重要度的「傳遞」。
對于文獻引用的可視化肺缕,我們通常稱為 Citation Graph,通常是一個 Directed Acyclic Graph (有向無環(huán)圖,DAG)同木,因為較早的文章無法修改而引用后來的文章浮梢。
在網(wǎng)頁中,我們可以 Hyperlinks (超鏈接) 來類比引用彤路,從而形成一個 Hyperlink Graph秕硝,區(qū)別是這類圖中可以有環(huán)路。
從而引出網(wǎng)頁排序的基本假設(shè):
- The rank of a web page is higher if many pages link to it.
- Links from highly ranked pages are given greater weight than links from less highly ranked pages.
PageRank Algorithm
基于上述假設(shè)洲尊,我們很容易可以得到當(dāng)前頁面的鏈入远豺、鏈出數(shù)。但是坞嘀,要怎么知道鏈入當(dāng)前頁面的前序頁面躯护,其重要度是多少呢?
隨機游走模型 | Random Walk Model
在一個封閉的 Hyperlink Graph 中丽涩,隨機選取一個頁面作為訪問起點棺滞,隨機選取其鏈出的頁面進行訪問,再對下一個頁面重復(fù)上述操作矢渊。
大量重復(fù)后继准,統(tǒng)計每個結(jié)點被訪問的頻率,用頻率近似概率后矮男,我們可以發(fā)現(xiàn)訪問概率較大者通常有著較多的鏈入锰瘸,或者其鏈入頁面也有著較大的訪問概率。用公式表示就是:
其中 表示從編號為 1 的網(wǎng)頁跳轉(zhuǎn)到編號為 i 的網(wǎng)頁的概率昂灵,其計算方式為:
矩陣表示 | Matrix Representation
令 眨补,則
管削,再令
,則有:
特別地撑螺,當(dāng) i 取遍 1 到 N 的所有值后含思, 得到矩陣形式:
其中 B 稱作標(biāo)準(zhǔn)化鏈接矩陣,矩陣中的每個元素代表列號對應(yīng)的 Page 鏈入行號對應(yīng)的 Page 的概率甘晤,每列之和為 1含潘。當(dāng)一個頁面沒有鏈出時,這一列全為 0线婚。
于是我們可以用迭代方法求解這個方程的穩(wěn)定解 ——即我們想求的訪問概率向量遏弱,也就是重要度向量。只需要將
設(shè)為全 1 向量(因為一開始隨機訪問到每個頁面的概率都相同)塞弊,不斷代入即可漱逸。
阻尼迭代 | PageRank with Damping
然而泪姨,現(xiàn)在存在的問題是,上面的所有推導(dǎo)都是建立在理想狀態(tài)下的饰抒,即假設(shè)所有網(wǎng)頁組成的這個有向圖是強連通的肮砾。
當(dāng) Hyperlink Graph 存在 link loops (循環(huán)陷阱),即存在一個小的子圖袋坑,只有鏈入沒有鏈出仗处,所有隨機游走的用戶到了這幾個網(wǎng)頁后,就如同進了黑洞一般枣宫,一直在里面“打轉(zhuǎn)”婆誓,出不來了。
這樣就使得當(dāng)游走次數(shù)趨于無窮時镶柱,最終陷阱中結(jié)點的訪問次數(shù)遠大于其他結(jié)點旷档。這樣會使得計算出的 向量中,陷阱外的結(jié)點訪問概率都為 0歇拆。
PageRank 算法最終采用了阻尼因子(damping factor)的修正鞋屈,使得進入陷阱后仍有機會跳出循環(huán)。
其中 為全 1 向量故觅,d 是實驗確定的常數(shù)厂庇,通常取 0.15。
結(jié)合相關(guān)度 | Combined Method
有了重要度向量后输吏,當(dāng)有查詢時权旷,我們只需要先確定命中文檔(至少有一個 term 與 query 相同的文檔),再將其用重要度排序即可贯溅。
然而拄氯,這樣做的缺點是,沒有考慮到查詢和文檔的相關(guān)性——即它浅,有可能一篇文檔雖然有相同的 term译柏,但主題卻相去甚遠。
于是姐霍,有人提出了結(jié)合 Term Weighting 和 PageRank 的方法鄙麦,在確定命中文檔后,利用傳統(tǒng)的權(quán)重計算方法镊折,計算出 query 和每個 doc 的相似度 胯府。再和重要度
線性加權(quán)算出排序指標(biāo):
其中 為實驗確定的常數(shù)。
PageRank 算法缺點
忽略了查詢恨胚,則忽略了 query 和 doc 主題相關(guān)性骂因,導(dǎo)致結(jié)果的相關(guān)性降低。
沒有過濾廣告鏈接和功能鏈接(例如常見的分享鏈接)与纽。這些鏈接通常沒有什么實際價值侣签,前者鏈接到廣告頁面塘装,后者常常鏈接到某個社交網(wǎng)站首頁急迂。
對新網(wǎng)頁不友好影所。因為即使是非常好的新頁面也不會有很多鏈入,要成為一個高重要度的頁面仍需要很長時間的推廣僚碎。
主題敏感 PR | Topic-Sensitive PageRank
在實際的網(wǎng)絡(luò)中猴娩,PageRank 算法還存在「主題漂移」問題,特別對于大量隨意交互外鏈的站點勺阐,會導(dǎo)致搜索引擎返回主題無關(guān)結(jié)果卷中。
同時,前面的討論提到渊抽,PageRank 忽略了 query 的主題相關(guān)性蟆豫,也導(dǎo)致了結(jié)果的相關(guān)性降低。同一查詢詞在不同語境下懒闷,語義上指向的可能是不同的主題十减,但 PageRank 無論如何都是返回「重要度」最高的頁面。
理想情況下愤估,應(yīng)為每個用戶的偏好維護一套專用的「主題重要度」向量帮辟,但面對海量用戶這種方法顯然不可行。所以搜索引擎一般會選擇一種稱為主題敏感的折中方案玩焰。
基本思想 | Basic Idea
基本假設(shè):在 PageRank 的隨機游走模型中由驹,用戶傾向于選擇具有同一個主題的鏈出網(wǎng)頁。
基于這個假設(shè)昔园,可以預(yù)定義幾個話題類別蔓榄,例如體育、娛樂默刚、科技等等甥郑,對于某個網(wǎng)頁來說,對應(yīng)某個主題類型都有相應(yīng)的 PageRank 分值羡棵,然后想辦法關(guān)聯(lián)用戶的話題傾向壹若,根據(jù)用戶的話題傾向排序結(jié)果。
矩陣形式 | Matrix Form
與原始的 PageRank 不同皂冰,新的算法對出度為 0 的網(wǎng)站加以處理以保證收斂性店展。引入了向量 來指示某一個網(wǎng)頁是否出度為 0,若為 0 則對應(yīng)項為 1秃流。
向量 來表示訪問各個網(wǎng)頁的概率均等赂蕴,代替
的寫法:
兩個矩陣的乘積所得的矩陣 D 表示出度為 0 的網(wǎng)頁將以均等概率訪問其他網(wǎng)頁。與前述提到的矩陣 具有互補的特性舶胀,補充了在隨機游走模型中概说,一個網(wǎng)頁出度為 0 時的訪問頁面的情況碧注。這樣做使得最終矩陣的每一列之和都為 1。
則最終排名的計算方法為:
偏置向量 | ODP-Biasing
主題的預(yù)定義參考了 ODP (Open Directory Project) 網(wǎng)站糖赔,利用 ODP 中 16 個頂級分類下的 URLs 生成了 16 組偏置 PageRank 向量 (biased PageRank vectors)萍丐。
為了實現(xiàn)這一點,算法中采用了新的向量 放典,針對每個主題有:
其中 表示在契合第 j 個主題的網(wǎng)頁集合逝变。包含在這些網(wǎng)頁中的頁面被賦予較大的跳轉(zhuǎn)概率值,而其他網(wǎng)站則相對減少奋构。
查詢打分 | Query-Time Importance Score
此外壳影,還需要在給定一個查詢 q 的時候,估算出該查詢落在某個主題 的概率弥臼。文章使用了樸素貝葉斯分類器(naive-Bayes classifier)宴咧,將查詢 q 中的每個 term 分詞記作
,利用貝葉斯公式:
而 則容易用統(tǒng)計的方法估計出來径缅,對于
則采用先驗概率的方法掺栅,根據(jù)用戶的查詢歷史(上下文)進行動態(tài)調(diào)整。
計算出了查詢落在各個主題的概率后芥驳,再用這個概率對各個主題下的 Rank 向量進行線性加權(quán)柿冲,即可得到最終排序用的評分:
HITS: Hyperlink-Induced Topic Search
這里再介紹一種基礎(chǔ)的網(wǎng)頁排序算法——基于超鏈接追敏的主題排序,對于一個查詢兆旬,不再返回單一的網(wǎng)頁排名假抄,而是同時返回兩個列表:
- 包含鏈接的 Hub 網(wǎng)頁,收錄了主題相關(guān)的權(quán)威網(wǎng)頁鏈接丽猬。
- 包含內(nèi)容的 Authority 網(wǎng)頁宿饱,有著與主題相關(guān)的高質(zhì)量內(nèi)容。
那么脚祟,如何排序這兩個列表呢谬以?
基本假設(shè):
- 一個好的 Hub 網(wǎng)頁指向該主題的許多 Authority 網(wǎng)頁。
- 一個好的 Authority 網(wǎng)頁被許多好的 Hub 網(wǎng)頁指向由桌。
基于這兩個假設(shè)为黎,我們可以提出兩個指標(biāo)來衡量每個頁面:樞紐值(Hub Scores)和權(quán)威值(Authority Scores),這兩種值是互相依存行您、互相影響的铭乾。
- 樞紐值,指的是頁面上所有出鏈指向頁面的權(quán)威值之和娃循。
- 權(quán)威值炕檩,指的是頁面的所有入鏈所在的原頁面的樞紐值之和。
算法步驟 | HITS Algorithm
找出 root set:根據(jù)用戶 query 中的 term捌斧,在文檔集中找出包含至少一個 term 的的文檔笛质,使他們構(gòu)成 root set泉沾。
找出 base set:在 root set 的基礎(chǔ)上,找出集合中網(wǎng)頁鏈入或鏈出并且不在 root set 中的網(wǎng)頁妇押,并把他們加入到集合中跷究,從而構(gòu)成 base set。
計算每一個網(wǎng)頁的樞紐值 h(x) 和權(quán)威值 a(x)舆吮,初始時揭朝,所有 h 值和 a 值均為 1队贱。
迭代更新兩個值直至收斂色冀。為了防止兩個值太大,可以在每次迭代后歸一化柱嫌。歸一化的指標(biāo)不重要锋恬,因為我們只關(guān)注相對排名。
返回兩個值分別排序的列表编丘。
HITS 算法缺點
- 盡管限制了計算對象在 base set 中与学,但在線計算效率還是太低,不如 PR 快嘉抓。
- 主題漂移現(xiàn)象仍未解決索守。如果在集合里包含與查詢主題無關(guān)的頁面,且含有大量相互鏈接抑片,可能會排到前列卵佛。這種現(xiàn)象被稱為緊密鏈接社區(qū)現(xiàn)象。