翻译: 网页排名PageRank算法的来龙去脉 以及 Python实现
PageRank ( PR ) 是Google 搜索用來在其搜索引擎結果中對網頁進行排名的算法。它以“網頁”一詞和聯合創始人拉里佩奇的名字命名。PageRank 是衡量網站頁面重要性的一種方法。根據谷歌:
PageRank 通過計算頁面鏈接的數量和質量來確定網站重要性的粗略估計。基本假設是更重要的網站可能會收到更多來自其他網站的鏈接。[1]
目前,PageRank 不是谷歌用來排序搜索結果的唯一算法,但它是該公司使用的第一個算法,也是最知名的。[2] [3]截至 2019 年 9 月 24 日,PageRank 和所有相關專利均已過期。[4]
簡單網絡的數學 PageRank 以百分比表示。(Google 使用對數刻度。)頁面 C 的 PageRank 比頁面 E 高,即使指向 C 的鏈接更少;指向 C 的一個鏈接來自一個重要頁面,因此具有很高的價值。如果從隨機頁面開始的網絡沖浪者有 82.5% 的可能性從他們當前訪問的頁面中選擇隨機鏈接,并且有 17.5% 的可能性跳轉到從整個網絡中隨機選擇的頁面,他們將到達頁面 E 8.1% 的時間。(跳轉到任意頁面的 17.5% 的可能性對應于阻尼因子82.5%。)如果沒有阻尼,所有網絡沖浪者最終都會出現在頁面 A、B 或 C 上,而所有其他頁面的 PageRank 將為零。在存在阻尼的情況下,頁面 A 有效地鏈接到網絡中的所有頁面,即使它沒有自己的傳出鏈接。
1. 說明
PageRank 是一種鏈接分析算法,它為一組超鏈接文檔(如萬維網)中的每個元素分配一個數值權重,目的是“測量”其在集合中的相對重要性。該算法可以應用于具有相互引用和引用的任何實體集合。它分配給任何給定元素E的數值權重稱為 E 的PageRank并表示為 {\displaystyle PR(E).}公關(E)。
PageRank 源自基于webgraph的數學算法,由所有萬維網頁面作為節點創建,超鏈接作為邊緣創建,同時考慮了cnn.com或mayoclinic.org等權威中心。排名值表示特定頁面的重要性。指向頁面的超鏈接算作支持投票。一個頁面的 PageRank 是遞歸定義的,它取決于鏈接到它的所有頁面的數量和 PageRank 度量(“傳入鏈接”)。由許多 PageRank 高的頁面鏈接到的頁面本身會獲得高排名。
自 Page 和 Brin 的原始論文以來,已經發表了許多關于 PageRank 的學術論文。[5]在實踐中,PageRank 概念可能容易受到操縱。已經進行了研究以識別受到錯誤影響的 PageRank 排名。目標是找到一種有效的方法來忽略具有錯誤影響 PageRank 的文檔中的鏈接。[6]
其他基于鏈接的網頁排名算法包括Jon Kleinberg發明的HITS 算法(Teoma和現在的Ask.com使用)、IBM CLEVER 項目、TrustRank算法和Hummingbird算法。[7]
說明 PageRank 基本原理的漫畫。每個面的大小與指向它的其他面的總大小成正比。
2. 歷史
加布里埃爾平斯基和弗朗西斯納林在 1976年提出了特征值問題,他們在科學計量學排名科學期刊上工作,[8] 1977 年由Thomas Saaty在他的分析層次過程的概念中提出,該概念加權替代選擇,[9]和 1995 年由布拉德利提出Love和Steven Sloman作為概念的認知模型,中心性算法。[10] [11]
1996 年由李彥宏設計的 IDD Information Services 的名為“ RankDex ”的搜索引擎制定了網站評分和頁面排名策略。[12]李將他的搜索機制稱為“鏈接分析”,它涉及根據鏈接到該網站的其他網站的數量對網站的受歡迎程度進行排名。[13] RankDex 是第一個具有頁面排名和站點評分算法的搜索引擎,于 1996 年推出。[14] Li 于 1997 年在 RankDex 中申請了該技術的專利;它于 1999 年被授予。[15]后來他在 2000 年在中國創立百度時使用了它。 [16] [17]谷歌創始人拉里佩奇在他的一些美國 PageRank 專利中引用了 Li 的工作作為引用。[18] [14] [19]
拉里佩奇和謝爾蓋布林于 1996 年在斯坦福大學開發了 PageRank,作為關于一種新型搜索引擎的研究項目的一部分。對Héctor García-Molina的采訪:斯坦福計算機科學教授和 Sergey 的顧問[20] 提供了頁面排名算法開發的背景。[21] Sergey Brin 的想法是,網絡上的信息可以通過“鏈接流行度”在層次結構中排序:一個頁面的排名越高,因為它有更多的鏈接。[22]該系統是在 Scott Hassan 和 Alan Steremberg 的幫助下開發的,Page 和 Brin 都認為他們對 Google 的發展至關重要。[5] 拉吉夫·莫特瓦尼和Terry Winograd與 Page 和 Brin 共同撰寫了關于該項目的第一篇論文,描述了 PageRank 和Google 搜索引擎的初始原型,發表于 1998 年。[5]不久之后,Page 和 Brin 創立了Google Inc.,該公司背后的公司谷歌搜索引擎。雖然只是決定 Google 搜索結果排名的眾多因素之一,但 PageRank 繼續為 Google 的所有網絡搜索工具提供基礎。[23]
“PageRank”這個名字來源于開發者拉里佩奇的名字,以及網頁的概念。[24] [25]這個詞是谷歌的商標,PageRank 過程已獲得專利(美國專利 6,285,999)。然而,該專利被轉讓給斯坦福大學而不是谷歌。谷歌擁有斯坦福大學專利的獨家許可權。該大學獲得了 180 萬股谷歌股票以換取該專利的使用;2005年以3.36億美元出售股份。[26] [27]
PageRank 受到引文分析的影響,該分析由賓夕法尼亞大學的Eugene Garfield在 1950 年代早期開發,并受到帕多瓦大學的Massimo Marchiori開發的Hyper Search的影響。在 PageRank 推出的同一年(1998 年),Jon Kleinberg發表了他關于HITS的作品。Google 的創始人在他們的原始論文中引用了 Garfield、Marchiori 和 Kleinberg。[5] [28]
3. 算法
PageRank 算法輸出一個概率分布,用于表示一個人隨機點擊鏈接將到達任何特定頁面的可能性。可以為任何大小的文檔集合計算 PageRank。在幾篇研究論文中假設分布在計算過程開始時在集合中的所有文檔中平均分配。PageRank 計算需要多次通過,稱為“迭代”,通過集合來調整近似的 PageRank 值以更接近地反映理論真實值。
概率表示為 0 到 1 之間的數值。0.5 的概率通常表示為某事發生的“50% 機會”。因此,PageRank 為 0.5 的文檔意味著點擊隨機鏈接的人有 50% 的機會被定向到該文檔。
3.1 簡化算法
假設有四個網頁的小宇宙:A、B、C和D。從頁面到自身的鏈接將被忽略。從一個頁面到另一個頁面的多個出站鏈接被視為單個鏈接。PageRank 被初始化為所有頁面的相同值。在 PageRank 的原始形式中,所有頁面的 PageRank 之和是當時網絡上的頁面總數,因此本示例中的每個頁面的初始值都為 1。但是,更高版本的 PageRank,以及本節的其余部分,假設概率分布在 0 和 1 之間。因此,本示例中每一頁的初始值為 0.25。
在下一次迭代中,從給定頁面轉移到其出站鏈接目標的 PageRank 在所有出站鏈接中平均分配。
如果系統中唯一的鏈接是從頁面B、C和D到A,則每個鏈接將在下一次迭代時將 0.25 PageRank 轉移到A,總共 0.75。
PR(A)=PR(B)+PR(C)+PR(D)假設頁面B具有指向頁面C和A的鏈接,頁面C具有指向頁面A的鏈接,頁面D具有指向所有三個頁面的鏈接。因此,在第一次迭代時,頁面B會將其現有值的一半(即 0.125)轉移到頁面A,而將另一半(即 0.125)轉移到頁面C。頁面C會將其所有現有值 0.25 轉移到它鏈接到的唯一頁面A。由于D有 3 個出站鏈路,它會將其現有值的三分之一(大約 0.083)轉移到A. 在此迭代完成時,頁面A的 PageRank 大約為 0.458。
PR(A)=PR(B) / 2 + PR(C) / 1 + PR(D) / 3換句話說,出站鏈接賦予的 PageRank 等于文檔自己的 PageRank 分數除以出站鏈接的數量L(·)。
PR(A)= PR(B) / L(B) + PR(C) / L(C) + PR(D) / L(D)在一般情況下,任何頁面u的 PageRank 值都可以表示為:
即頁面u的 PageRank 值取決于集合B u(包含鏈接到頁面u的所有頁面的集合)中包含的每個頁面v的 PageRank 值除以來自頁面v的鏈接數L ( v ) 。
3.2 阻尼系數
PageRank 理論認為,一個想象中的隨機點擊鏈接的沖浪者最終會停止點擊。在任何一步,該人將繼續的概率是阻尼因子d。各種研究已經測試了不同的阻尼系數,但通常假設阻尼系數將設置在 0.85 左右。[5]
從 1 中減去阻尼因子(在算法的某些變體中,結果除以集合中的文檔數 ( N )),然后將該項添加到阻尼因子和總和的乘積中傳入的 PageRank 分數。那是,
因此,任何頁面的 PageRank 很大程度上都來源于其他頁面的 PageRank。阻尼因子將導出值向下調整。然而,原始論文給出了以下公式,這導致了一些混亂:
它們之間的區別在于,第一個公式中的 PageRank 值總和為 1,而在第二個公式中,每個 PageRank 乘以N,總和變為N。Page 和 Brin 的論文中聲明“所有 PageRank 的總和為 1” [5]以及其他 Google 員工[29]的聲明支持上述公式的第一個變體。
Page 和 Brin 在他們最受歡迎的論文“大規模超文本 Web 搜索引擎的剖析”中混淆了這兩個公式,他們錯誤地聲稱后一個公式形成了網頁上的概率分布。[5]
每次爬網并重建其索引時,Google 都會重新計算 PageRank 分數。隨著 Google 增加其集合中的文檔數量,所有文檔的 PageRank 的初始近似值都會降低。
該公式使用隨機沖浪者的模型,該模型在幾次點擊后到達目標站點,然后切換到隨機頁面。頁面的 PageRank 值反映了隨機瀏覽者通過單擊鏈接登陸該頁面的機會。可以理解為一個馬爾可夫鏈,其中狀態是頁面,轉換是頁面之間的鏈接——所有這些都是等概率的。
如果一個頁面沒有指向其他頁面的鏈接,它就會成為一個接收器,因此終止隨機沖浪過程。如果隨機沖浪者到達接收器頁面,它會隨機選擇另一個URL并繼續再次沖浪。
在計算 PageRank 時,假定沒有出站鏈接的頁面鏈接到集合中的所有其他頁面。因此,他們的 PageRank 分數在所有其他頁面之間平均分配。換句話說,為了公平對待不是接收器的頁面,這些隨機轉換被添加到 Web 中的所有節點。這個殘差概率d通常設置為 0.85,根據普通沖浪者使用他或她的瀏覽器書簽功能的頻率估計。所以,方程如下:
在哪里p1, p2, ..., pn是正在考慮的頁面,M§是鏈接到的一組頁面pi, L(pj)是頁面上的出站鏈接數pj, 和N是總頁數。
PageRank 值是修改后的鄰接矩陣的主要右特征向量的條目,經過重新縮放,每列加起來為 1。這使得 PageRank 成為一個特別優雅的度量:特征向量是
其中R是方程的解
其中鄰接函數l(pi,pj)是從頁面 j 到頁面 i 的出站鏈接數與頁面 j 的出站鏈接總數的比率。如果頁面鄰接函數為0pj不鏈接到pi, 并歸一化,使得對于每個j
即每列的元素總和為1,所以矩陣是一個隨機矩陣(更多細節見下面的計算部分)。因此,這是網絡分析中常用的特征向量中心性度量的變體。
由于上述修改后的鄰接矩陣的大特征間隙,[ 30] PageRank 特征向量的值可以在僅幾次迭代內以高精度逼近。
Google 的創始人在他們的原始論文[28]中報告說,由 3.22 億個鏈接(入邊和出邊)組成的網絡的 PageRank 算法在 52 次迭代中收斂到可容忍的限制內。在上述一半大小的網絡中收斂大約需要 45 次迭代。通過這些數據,他們得出結論,該算法可以很好地縮放,并且超大型網絡的縮放因子在{\displaystyle \log n}\日志n,其中 n 是網絡的大小。
作為馬爾可夫理論的結果,可以證明一個頁面的PageRank是經過大量點擊后到達該頁面的概率。這恰好等于{\displaystyle t{-1}}t{-1}在哪里{\displaystyle t}噸是從頁面返回到自身所需的點擊次數(或隨機跳轉) 的期望值。
PageRank 的一個主要缺點是它偏愛舊頁面。一個新頁面,即使是一個非常好的頁面,也不會有很多鏈接,除非它是現有站點的一部分(一個站點是一組緊密連接的頁面,例如Wikipedia)。
已經提出了幾種策略來加速 PageRank 的計算。[31]
為了提高搜索結果排名和通過廣告鏈接獲利,已經采用了各種操縱 PageRank 的策略。這些策略嚴重影響了 PageRank 概念的可靠性,[引用需要]旨在確定哪些文檔實際上受到 Web 社區的高度重視。
自 2007 年 12 月開始積極懲罰銷售付費文本鏈接的網站以來,Google 一直在打擊鏈接農場和其他旨在人為抬高 PageRank 的計劃。Google 如何識別鏈接農場和其他 PageRank 操縱工具屬于 Google 的商業機密。
3.3 python 實現代碼
"""PageRank algorithm with explicit number of iterations.Returns ------- ranking of nodes (pages) in the adjacency matrix"""import numpy as npdef pagerank(M, num_iterations: int = 100, d: float = 0.85):"""PageRank: The trillion dollar algorithm.Parameters----------M : numpy arrayadjacency matrix where M_i,j represents the link from 'j' to 'i', such that for all 'j'sum(i, M_i,j) = 1num_iterations : int, optionalnumber of iterations, by default 100d : float, optionaldamping factor, by default 0.85Returns-------numpy arraya vector of ranks such that v_i is the i-th rank from [0, 1],v sums to 1"""N = M.shape[1]v = np.ones(N) / NM_hat = (d * M + (1 - d) / N)for i in range(num_iterations):v = v @ M_hatreturn vM = np.array([[0, 0, 0, 0, 1],[0.5, 0, 0, 0, 0],[0.5, 0, 0, 0, 0],[0, 1, 0.5, 0, 0],[0, 0, 0.5, 1, 0]]) v = pagerank(M, 100, 0.85)4. 變體
4. 1 無向圖的 PageRank
無向圖的 PageRank G在統計上接近圖的度分布 G, [36]但它們通常不相同:如果R是上面定義的 PageRank 向量,并且D是度分布向量
也就是說,無向圖的PageRank等于度分布向量當且僅當圖是規則的,即每個頂點具有相同的度。
4. 2 兩種排序對象的 PageRank 和特征向量中心性的推廣
Daugulis 描述了對兩個交互對象組進行排名的情況下的 PageRank 推廣。[38]在應用程序中,可能需要對具有兩種對象的系統進行建模,其中在對象對上定義了加權關系。這導致考慮二分圖。對于這樣的圖,可以定義對應于頂點劃分集的兩個相關的正或非負不可約矩陣。可以將兩組中對象的排名計算為對應于這些矩陣的最大正特征值的特征向量。根據 Perron 或 Perron-Frobenius 定理,范數特征向量存在并且是唯一的。例如:消費者和產品。關系權重是產品消耗率。
4. 3 PageRank計算的分布式算法
薩爾馬等人。描述了兩種基于隨機游走的分布式算法,用于計算網絡中節點的 PageRank。
4. 4 谷歌工具欄
長期以來,Google 工具欄都有一個 PageRank 功能,可以將訪問頁面的 PageRank 顯示為一個介于 0(最不受歡迎)和 10(最受歡迎)之間的整數。谷歌沒有透露確定工具欄 PageRank 值的具體方法,這被認為只是網站價值的粗略指示。通過 Google 網站管理員工具界面,經過驗證的網站維護者可以使用“工具欄 Pagerank”。然而,在 2009 年 10 月 15 日,一名 Google 員工證實該公司已將 PageRank 從其網站管理員工具部分中刪除,稱“我們長期以來一直在告訴人們,他們不應該如此關注 PageRank。許多網站業主似乎認為這是最重要的指標讓他們跟蹤,這根本不是真的。” [40]
“工具欄 Pagerank”很少更新。它最后一次更新是在 2013 年 11 月。2014 年 10 月,Matt Cutts 宣布不會再出現另一個可見的 pagerank 更新。[41] 2016 年 3 月,Google 宣布將不再支持此功能,并且底層 API 將很快停止運行。[42] 2016 年 4 月 15 日,Google 關閉了在 Google 工具欄中顯示 PageRank 數據,[43]盡管 PageRank 繼續在內部用于對搜索結果中的內容進行排名。
4. 5 SERP 排名
搜索引擎結果頁面(SERP)是搜索引擎響應關鍵字查詢返回的實際結果。SERP 包含一個鏈接到網頁的列表以及相關的文本片段。網頁的 SERP 排名是指相應鏈接在 SERP 上的位置,位置越高意味著 SERP 排名越高。網頁的 SERP 排名不僅是其 PageRank 的函數,而且是一組相對較大且不斷調整的因素(超過 200 個)的函數。[45] [來源不可靠?] 搜索引擎優化(SEO) 旨在影響一個網站或一組網頁的 SERP 排名。
網頁在 Google SERP 上的關鍵字定位取決于相關性和聲譽,也稱為權威和流行度。PageRank 是 Google 對網頁聲譽評估的指標:它與關鍵字無關。谷歌使用網頁和網站權限的組合來確定競爭關鍵字的網頁的整體權限。[46]網站主頁的 PageRank 是谷歌為網站權威提供的最佳指標。[47]
在將Google Places引入主流有機 SERP 之后,除了 PageRank 之外,還有許多其他因素會影響企業在本地業務結果中的排名。[48]當 Google 在 2016 年 3 月的問答環節中詳細闡述棄用 PageRank 的原因時,他們宣布鏈接和內容是排名靠前的因素。RankBrain 在 2015 年 10 月早些時候被宣布為排名第三的因素,因此前 3 名因素已被 Google 正式確認。
4.6 Google 目錄 PageRank
Google Directory PageRank 是一個 8 個單位的度量。與將鼠標懸停在綠色欄上時顯示數字 PageRank 值的 Google 工具欄不同,Google 目錄只顯示欄,從不顯示數值。Google 目錄于 2011 年 7 月 20 日關閉。
4.7 虛假或欺騙的 PageRank
眾所周知,工具欄中顯示的 PageRank 很容易被 欺騙。通過HTTP 302響應或“刷新”元標記從一個頁面重定向到另一個頁面,導致源頁面獲取目標頁面的 PageRank。因此,具有 PR 0 且沒有傳入鏈接的新頁面可以通過重定向到 Google 主頁獲得 PR 10。欺騙通常可以通過對源 URL 執行 Google 搜索來檢測;如果結果中顯示的是完全不同站點的 URL,則后一個 URL 可能代表重定向的目標。
4.8 操縱 PageRank
出于搜索引擎優化的目的,一些公司提供向網站管理員出售高 PageRank 鏈接。[51]由于來自更高公關頁面的鏈接被認為更有價值,它們往往更昂貴。在優質的內容頁面和相關網站上購買鏈接廣告以增加流量并增加網站管理員的鏈接受歡迎程度是一種有效且可行的營銷策略。然而,谷歌已公開警告網站管理員,如果他們正在或被發現出售鏈接以授予 PageRank 和聲譽,他們的鏈接將被貶值(在計算其他頁面的 PageRank 時忽略)。買賣[52]的做法在網站管理員社區中引起了激烈的爭論。Google 建議網站管理員使用 付費鏈接上的nofollow HTML 屬性值。根據Matt Cutts的說法,谷歌擔心那些試圖玩弄系統的網站管理員,從而??降低谷歌搜索結果的質量和相關性。[51]
2019 年,Google 提供了一種新型標簽,它不傳遞“鏈接汁”,因此對 SEO 鏈接操作沒有價值:rel=“ugc” 作為用戶生成內容的標簽,例如評論;和 rel=“贊助” 標簽用于廣告或其他類型的贊助內容。[53]
盡管 PageRank 對于 SEO 目的變得不那么重要,但來自更受歡迎網站的反向鏈接的存在繼續推動網頁在搜索排名中更高。
4.9 定向沖浪者模型
一個更智能的沖浪者,它可以根據頁面內容和沖浪者正在尋找的查詢詞來概率地從一個頁面跳到另一個頁面。該模型基于頁面的查詢相關的 PageRank 分數,顧名思義,它也是查詢的函數。當給定一個多詞查詢時,{\displaystyle Q={q1,q2,\cdots }}{\displaystyle Q={q1,q2,\cdots }},沖浪者選擇一個{\displaystyle q}q根據某種概率分布,{\displaystyle P(q)}P(q),并使用該術語來指導其大量步驟的行為。然后它根據分布選擇另一個術語來確定其行為,依此類推。所訪問網頁上的結果分布是 QD-PageRank。
4.10 社交組件
Katja Mayer 將 PageRank 視為一個社交網絡,因為它將不同的觀點和想法連接在一個地方。[56] 人們去 PageRank 獲取信息,并被其他作者的引用淹沒,這些作者也對該主題有意見。這創造了一個社交方面,可以討論和收集所有內容以激發思考。PageRank 與使用它的人之間存在著一種社會關系,因為它不斷適應和改變現代社會的變化。通過社會統計查看 PageRank 與個人之間的關系,可以深入了解產生的聯系。
[57] Matteo Pasquinelli 認為,PageRank 具有社會成分的信念的基礎在于注意力經濟的概念。. 在注意力經濟中,人們重視那些獲得更多人類關注的產品,并且 PageRank 頂部的結果比后續頁面上的結果更受關注。因此,PageRank 較高的結果將更大程度地進入人類意識。這些想法可以影響決策,并且查看者的行為與 PageRank 有直接關系。他們擁有更高的潛力來吸引用戶的注意力,因為他們的位置增加了與網站相關的注意力經濟。有了這個位置,他們可以獲得更多的流量,他們的在線市場將有更多的購買。這些網站的 PageRank 使他們受到信任,并且他們能夠利用這種信任來增加業務。
4.11 其他用途
PageRank 的數學是完全通用的,適用于任何領域的任何圖形或網絡。因此,PageRank 現在經常用于文獻計量學、社會和信息網絡分析,以及鏈接預測和推薦。它用于道路網絡的系統分析,以及生物學、化學、神經科學和物理學。
5. 科學研究和學術界
PageRank 已被用于量化研究人員的科學影響。底層引用和協作網絡與 pagerank 算法結合使用,以便為傳播給單個作者的單個出版物提供一個排名系統。在 h-index 表現出的許多缺點的背景下,被稱為 pagerank-index (Pi) 的新索引被證明比 h-index 更公平。[59]
對于生物學中的蛋白質網絡分析,PageRank 也是一個有用的工具。[60] [61]
在任何生態系統中,PageRank 的修改版本可用于確定對環境持續健康至關重要的物種。[62]
PageRank 的一個類似的新用途是根據他們將畢業生安置在教師職位上的記錄對學術博士課程進行排名。在 PageRank 術語中,學術部門通過相互(和他們自己)雇用教師來相互聯系。[63]
最近提出了一個 PageRank 版本來替代傳統的科學信息研究所(ISI)影響因子[64],并在Eigenfactor和SCImago中實施。不是僅僅計算對期刊的總引用次數,而是以 PageRank 方式確定每次引用的“重要性”。
在神經科學中,已發現神經網絡中神經元的 PageRank與其相對放電率相關。
6. 互聯網使用
-
Twitter使用個性化 PageRank向用戶展示他們可能希望關注的其他帳戶。[66]
-
Swiftype的網站搜索產品??通過查看每個網站的重要性信號并根據主頁鏈接數量等因素對內容進行優先排序,從而構建“特定于各個網站的 PageRank”。[67]
-
Web 爬蟲可以使用PageRank 作為其用于確定在 Web 爬網期間訪問哪個 URL 的多個重要性指標之一。用于創建 Google的早期工作論文之一[68]是Efficient crawling through URL ordering,[69]討論了使用許多不同的重要性指標來確定 Google 網站的深度和多少會爬行。PageRank 被表示為這些重要性指標之一,盡管還列出了其他一些指標,例如 URL 的入站和出站鏈接的數量,以及從站點上的根目錄到 URL 的距離。
-
PageRank 也可以用作衡量像博客圈這樣的社區對整個 Web 本身的明顯影響的方法。因此,這種方法使用 PageRank 來衡量注意力的分布,以反映無標度網絡范式。
7. 其他應用
2005 年,在巴基斯坦的一項試點研究中,結構性深層民主,SD2 [70] [71]被用于一個名為 Contact Youth 的可持續農業組織的領導層選拔。SD2 使用PageRank來處理傳遞代理投票,附加約束要求每個選民至少有兩個初始代理,并且所有選民都是代理候選人。可以在 SD2 之上構建更復雜的變體,例如添加專家代理和對特定問題的直接投票,但 SD2 作為底層的傘式系統,要求始終使用通才代理。
在體育運動中,PageRank 算法已被用于對以下球隊的表現進行排名: 美國國家橄欖球聯盟 (NFL) 球隊;[72] 個人足球運動員;[73]和鉆石聯賽的運動員。[74]
PageRank 已用于對空間或街道進行排名,以預測有多少人(行人或車輛)來到各個空間或街道。[75] [76]在詞匯語義中,它已被用于執行詞義消歧、[77] 語義相似性、[78],還可以根據WordNet 同義詞集具有給定語義屬性的強度(例如積極性或消極性。
8. nofollow
005 年初,Google為 HTML 鏈接和錨元素的rel屬性實施了一個新值,“ nofollow ”,[80],以便網站開發人員和博主可以創建 Google 不會出于 PageRank 目的考慮的鏈接——它們是在 PageRank 系統中不再構成“投票”的鏈接。添加 nofollow 關系是為了幫助打擊垃圾郵件索引。
例如,人們以前可以創建許多帶有指向其網站的鏈接的留言板帖子,以人為地抬高他們的 PageRank。使用 nofollow 值,留言板管理員可以修改他們的代碼以自動將“rel=‘nofollow’”插入帖子中的所有超鏈接,從而防止 PageRank 受到這些特定帖子的影響。然而,這種避免方法也有各種缺點,例如降低合法評論的鏈接價值。(請參閱:博客中的垃圾郵件#nofollow)
為了手動控制網站內頁面之間的 PageRank 流量,許多網站管理員實踐了所謂的 PageRank Sculpting [81] ——這是一種策略性地將 nofollow 屬性放置在網站的某些內部鏈接上以便漏斗的行為網站管理員認為最重要的那些頁面的 PageRank。這種策略自 nofollow 屬性開始就已使用,但可能不再有效,因為 Google 宣布使用 nofollow 阻止 PageRank 傳輸不會將該 PageRank 重定向到其他鏈接。
9. 參考
https://en.wikipedia.org/wiki/PageRank
總結
以上是生活随笔為你收集整理的翻译: 网页排名PageRank算法的来龙去脉 以及 Python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩一个钓鱼网站
- 下一篇: python 数字+.的含义