日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

PageRank 笔记

發布時間:2024/3/12 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PageRank 笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PageRank

要說到 PageRank 算法的來源,這個要從搜索引擎的發展講起。最早的搜索引擎采用的是分類目錄的方法,即通過人工進行網頁分類并整理出高質量的網站。那時 Yahoo 和國內的 hao123 就是使用這種方法。

后來網頁越來越多,人工分類已經不現實了。搜索引擎進入了文本檢索的時代,即計算用戶查詢關鍵詞與網頁內容的相關程度來返回搜索結果。這種方法突破了數量的限制,但是搜索結果不是很好。因為總有某些網頁來回地倒騰某些關鍵詞使自己的搜索排名靠前。

于是我們的主角登場了。谷歌的兩位創始人,當時還是美國斯坦福大學研究生的佩奇和布林開始了對網頁排序問題的研究。他們借鑒了學術界評判學術論文重要性的通用方法,那就是看論文的引用次數。由此想到網頁的重要性也可以根據這種方法來評價。于是 PageRank 的核心思想就誕生了。

  • 如果一個網頁被很多其他網頁鏈接到的話,說明這個網頁比較重要,也就是 PageRank 值會相對較高。
  • 如果一個 PageRank 值很高的網頁鏈接到一個其他的網頁,那么鏈接到的網頁的 PageRank 值也會相應地提高。

PageRank 算法計算每一個網頁的 PageRank 值,然后根據這個值的大小對網頁的重要性進行排序。它的思想是模擬一個悠閑的上網者,上網者首先隨機選擇一個網頁打開,然后在這個網頁上呆了幾分鐘,跳轉到該網頁所指向的鏈接,這樣無所事事、漫無目的地在網頁上跳來跳去,PageRank 就是估計這個悠閑的上網者分布在各個網頁上的概率。

PageRank 背后的兩個基本假設:

  • 數量假設:更重要的網頁可能被更多的網頁鏈接到。
  • 質量假設:有更高的 PageRank 的網頁將會傳遞更高的權重。

PageRank 模型

我們可以將 Web 作如下抽象:

  • 將每個網頁抽象成一個節點;
  • 如果一個頁面 A 有鏈接直接鏈向 B,則存在一條有向邊從 A 到 B。

因此,整個 Web 被抽象為一張有向圖。

此時,我們需要用一種合適的數據結構來表示頁面以及頁面間的連接關系。假設當一個用戶停留在某頁面時,跳轉到它所鏈接的所有頁面的概率是相同的。例如,上圖中 A 頁面鏈向 B、C、D,所以用戶從 A 頁面跳轉到 B、C、D 的概率各為 1/3。設一共有 N 個網頁,則可以組織這樣一個 N 維矩陣:其中 i 行 j 列的值表示用戶從頁面 j 跳轉到頁面 i 的概率。這樣的一個矩陣叫做轉移矩陣(Transition Matrix)。
M=[A→AB→AC→AD→AA→BB→BC→BD→BA→CB→CC→CD→CA→DB→DC→DD→D]M=[01201213001213120013010]M = \begin{bmatrix} A \rightarrow A && B \rightarrow A && C \rightarrow A && D \rightarrow A \\ A \rightarrow B && B \rightarrow B && C \rightarrow B && D \rightarrow B \\ A \rightarrow C && B \rightarrow C && C \rightarrow C && D \rightarrow C \\ A \rightarrow D && B \rightarrow D && C \rightarrow D && D \rightarrow D \\ \end{bmatrix} \quad M = \begin{bmatrix} 0 && \frac{1}{2} && 0 && \frac{1}{2} \\ \frac{1}{3} && 0 && 0 && \frac{1}{2} \\ \frac{1}{3} && \frac{1}{2} && 0 && 0 \\ \frac{1}{3} && 0 && 1 && 0 \\ \end{bmatrix} M=?????AAABACAD??BABBBCBD??CACBCCCD??DADBDCDD??????M=?????031?31?31???21?021?0??0001??21?21?00??????
觀察轉移矩陣可以發現:

  • 矩陣的每一列代表一個具體網頁的出鏈,簡單地說就是當前網頁向其他網頁的鏈接;
  • 矩陣的每一行代表一個具體網頁的入鏈,簡單地說就是其他網頁向當前網頁的鏈接。

PageRank 初始化

PageRank 值的物理意義是一個網頁被訪問的概率,初始時用戶訪問每個頁面的概率均等,假設一共有 N 個網頁,每個網頁的初始 PR 值 = 1 / N。我們可以將這些網頁的初始 PR 值保存到一個向量中。

繼續沿用先前的圖,初始 PR 值向量 P0=(PRA,PRB,PRC,PRD)T=(14,14,14,14)TP_0 = (PR_A, PR_B, PR_C, PR_D)^T = (\frac{1}{4}, \frac{1}{4}, \frac{1}{4}, \frac{1}{4})^TP0?=(PRA?,PRB?,PRC?,PRD?)T=(41?,41?,41?,41?)T

PageRank 計算

繼續使用先前的例子,由 A、B、C、D 四個頁面組成的 Web。

對于頁面 A 來說,有 B、D 頁面鏈向它,那么 A 的 PR 值(PageRank 值)將是 B、D 頁面 PR 值之和。
PR(A)=PR(B)+PR(D)PR(A) = PR(B) + PR(D) PR(A)=PR(B)+PR(D)
由于頁面 B 也有鏈接到頁面 C,一個頁面不能投票 2 次,所以 B 給每個頁面半票。同樣的,D 投出的票也只有 1/2 算到了 A 的 PageRank 上。
PR(A)=PR(B)2+PR(D)2PR(A) = \frac{PR(B)}{2} + \frac{PR(D)}{2} PR(A)=2PR(B)?+2PR(D)?
換句話說,根據鏈出總數平分一個頁面的 PR 值,令 L(X) 表示 X 頁面的鏈出總數,那么 A 的 PageRank 值計算公式可寫成如下統一形式。
PR(A)=PR(B)L(B)+PR(D)L(D)PR(A) = \frac{PR(B)}{L(B)} + \frac{PR(D)}{L(D)} PR(A)=L(B)PR(B)?+L(D)PR(D)?
我們再把上面的公式簡化一下,將其推廣到更大的范圍。
PRi=∑j∈BiPRjLjPR_i = \sum_{j \in B_i}\frac{PR_j}{L_j} PRi?=jBi??Lj?PRj??
其中 PRiPR_iPRi? 表示網頁 i 的 pagerank 值,PRjPR_jPRj? 表示網頁 j 的 pagerank 值,LjL_jLj? 表示網頁 j 鏈出的鏈接數,BiB_iBi? 表示鏈接到網頁 i 的網頁集合。

這樣,我們就可以計算任意一個網頁的 pagerank 值。那么要怎么計算呢?觀察 PR(A) 的計算公式我們可以發現,PR(A) 實際上等于轉移矩陣 M 的第一行乘上初始 PR 值。我們回想一下轉移矩陣的性質,每一行表示其他網頁鏈接到當前網頁的概率,這一行的概率指相加實際上就是我們上述推導的公式。所以,如果要同時計算 Web 上的所有頁面,我們可以直接計算轉移矩陣 M 每一行的概率值累加和。
[1565643]\begin{bmatrix} 1 && \frac{5}{6} && \frac{5}{6} && \frac{4}{3} \end{bmatrix} [1??65???65???34??]
由于我們計算的是概率值,且初始每個頁面的概率都相等,因此我們可求出在經過上述出鏈和入鏈后,各個頁面的停留概率。
P1=M?P0=[01201213001213120013010]?[14141414]=[1452452413]P_1 = M \cdot P_0 = \begin{bmatrix} 0 && \frac{1}{2} && 0 && \frac{1}{2} \\ \frac{1}{3} && 0 && 0 && \frac{1}{2} \\ \frac{1}{3} && \frac{1}{2} && 0 && 0 \\ \frac{1}{3} && 0 && 1 && 0 \\ \end{bmatrix} \cdot \begin{bmatrix} \frac{1}{4} \\ \frac{1}{4} \\ \frac{1}{4} \\ \frac{1}{4} \\ \end{bmatrix} = \begin{bmatrix} \frac{1}{4} \\ \frac{5}{24} \\ \frac{5}{24} \\ \frac{1}{3} \\ \end{bmatrix} P1?=M?P0?=?????031?31?31???21?021?0??0001??21?21?00????????????41?41?41?41???????=?????41?245?245?31???????

終止點問題

先前所舉的例子是一個理想狀態:假設所有網頁組成的有向圖是強連通的,即從一個網頁可以到達任意網頁。但實際的網絡鏈接環境沒有這么理想,有一些網頁不指向任何網頁,或不存在指向自己的鏈接。

【終止點】:一個沒有任何出鏈的網頁,例如上圖的 C 點。上網者瀏覽到 C 網頁將終止于該網頁,而無法繼續瀏覽其他網頁。

根據上圖我們可以寫出轉移矩陣 M:
M=[01200130012130012131200]M = \begin{bmatrix} 0 & \frac{1}{2} & 0 & 0 \\ \frac{1}{3} & 0 & 0 & \frac{1}{2} \\ \frac{1}{3} & 0 & 0 & \frac{1}{2} \\ \frac{1}{3} & \frac{1}{2} & 0 & 0 \\ \end{bmatrix} M=?????031?31?31??21?0021??0000?021?21?0??????

然后根據公式 Pn=M?Pn?1=Mn?P0P_n = M \cdot P_{n-1} = M^n \cdot P_0Pn?=M?Pn?1?=Mn?P0? 迭代計算出 PR 值向量。
P0=[1/41/41/41/4]P1=M?P0=[3/245/245/245/24]P2=M?P1=[5/487/487/487/48]?Pn=M?Pn?1=[0000]P_0 = \begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ \end{bmatrix} \quad P_1 = M \cdot P_0 = \begin{bmatrix} 3/24 \\ 5/24 \\ 5/24 \\ 5/24 \\ \end{bmatrix} P_2 = M \cdot P_1 = \begin{bmatrix} 5/48 \\ 7/48 \\ 7/48 \\ 7/48 \\ \end{bmatrix} \quad \cdots \quad P_n = M \cdot P_{n-1} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \\ \end{bmatrix} P0?=?????1/41/41/41/4??????P1?=M?P0?=?????3/245/245/245/24??????P2?=M?P1?=?????5/487/487/487/48???????Pn?=M?Pn?1?=?????0000??????
可以看到,經過多次跳轉之后,所有網頁的 PR 值都是 0,這樣的計算結果是無意義的。為什么會這樣?因為轉移矩陣 M 的第 3 列全為 0,這是導致迭代結果最終歸零的“罪魁禍首”。

【解決方案】:當訪問到終止點 C 而“走投無路”時,以等概率隨機跳轉到下一個網頁,從而開啟一次新的訪問。

  • 改造終止點 C,使它能夠等概率地游走到網絡中的所有頁面,即添加從 C 到包括它本身的所有頁面的鏈接。
  • 在上例中就是將轉移矩陣 M 的第三列的每一項改為 1/4。這樣改造后,每一個節點都有出鏈,相應的 M 的每一列的列累加和都為 1。

陷阱問題

陷阱指的是只有指向自身鏈接的網頁,見下圖 C。

上網者瀏覽到 C 網頁將陷入無休止的循環之中,根據上圖我們可以寫出轉移矩陣 M:
M=[01200130012130112131200]M = \begin{bmatrix} 0 & \frac{1}{2} & 0 & 0 \\ \frac{1}{3} & 0 & 0 & \frac{1}{2} \\ \frac{1}{3} & 0 & 1 & \frac{1}{2} \\ \frac{1}{3} & \frac{1}{2} & 0 & 0 \\ \end{bmatrix} M=?????031?31?31??21?0021??0010?021?21?0??????

根據公式 Pn=M?Pn?1=Mn?P0P_n = M \cdot P_{n-1} = M^n \cdot P_0Pn?=M?Pn?1?=Mn?P0?,迭代計算出 PR 值向量。
[1/41/41/41/4][3/245/2411/245/24][5/487/4829/487/48]?[0010]\begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ \end{bmatrix} \quad \begin{bmatrix} 3/24 \\ 5/24 \\ 11/24 \\ 5/24 \\ \end{bmatrix} \quad \begin{bmatrix} 5/48 \\ 7/48 \\ 29/48 \\ 7/48 \\ \end{bmatrix} \quad \cdots \begin{bmatrix} 0 \\ 0 \\ 1 \\ 0 \\ \end{bmatrix} ?????1/41/41/41/4???????????3/245/2411/245/24???????????5/487/4829/487/48????????????0010??????
可以看到經過多次跳轉,跳轉到陷阱頁面的概率值為 1,而跳轉到其他正常網頁的概率值為 0,這樣的計算結果也是無意義的。

除了自己只鏈接自己這一種形式的陷阱,還存在一種多個頁面相互鏈接的陷阱。

上圖中 5、6、7 三個頁面構成一個閉環,它們緊密鏈接成環而沒有外出的鏈接,最終也會導致上網者“深陷于此”。同樣的,經過多次跳轉,陷阱網頁的概率值之和為 1,而其他正常網頁的概率值為 0。

當用戶遇到終止點或者陷阱的話,他不會不知所措,也不會無休止地自己打轉,他會通過瀏覽器的地址欄輸入新的地址,以逃離這個網頁。也就是說,用戶以一個網頁跳轉至另一個網頁的過程中,會以一定概率不點擊當前網頁的鏈接,而是在地址欄中輸入一個新的地址。

【解決方案】:隨機瀏覽模型。

隨機瀏覽模型

假定一個上網者從一個隨機的網頁開始瀏覽,此時有兩種選擇:

  • 通過點擊當前頁面的其他鏈接開始下一次瀏覽;
  • 通過在瀏覽器的地址欄輸入新的地址以開啟一個新的網頁。

其中,上網者通過點擊鏈接開啟新頁面的概率為 d(d 也稱阻尼系數,通常取 0.85)。此時,我們的 PageRank 模型變為:在每一個頁面,用戶都有 d 的概率通過點擊鏈接進入下一個頁面;此外,還有 1 - d 的概率隨機跳轉,此時跳轉到其他頁面的概率為 1 / N(當前頁面的其他鏈接數)。

【隨機瀏覽模型公式】:
PRi=d∑j∈BiPRjLj+1?dNPR_i = d\sum_{j\in B_i}\frac{PR_j}{L_j} + \frac{1 - d}{N} PRi?=djBi??Lj?PRj??+N1?d?
【概率轉移公式】:
Pn=dM?Pn?1+(1?d)P0Pn=APn?1A=dM+(1?d)eeT/NP_n = dM \cdot P_{n-1} + (1-d)P_0 \\ P_n = AP_{n-1} \quad A = dM + (1-d)ee^T/N Pn?=dM?Pn?1?+(1?d)P0?Pn?=APn?1?A=dM+(1?d)eeT/N

如何通過隨機瀏覽模型解決陷阱問題呢?仍然以先前的實例為例。

先使用概率轉移公式計算跳轉到每個頁面的概率值。
P0=[1/41/41/41/4]P1=0.85?[01/2001/3001/21/3011/21/31/200][1/41/41/41/4]+0.15?[1/41/41/41/4]P_0 = \begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ \end{bmatrix} \quad P_1 = 0.85 * \begin{bmatrix} 0 & 1/2 & 0 & 0 \\ 1/3 & 0 & 0 & 1/2 \\ 1/3 & 0 & 1 & 1/2 \\ 1/3 & 1/2 & 0 & 0 \\ \end{bmatrix} \qquad \begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ \end{bmatrix} + 0.15 * \begin{bmatrix} 1/4 \\ 1/4 \\ 1/4 \\ 1/4 \\ \end{bmatrix} P0?=?????1/41/41/41/4??????P1?=0.85??????01/31/31/3?1/2001/2?0010?01/21/20???????????1/41/41/41/4??????+0.15??????1/41/41/41/4??????

由于存在一定的概率跳出循環,因此可以避免陷阱問題。

隨機瀏覽模型的收斂性

PageRank 模型的前提:假設用戶選擇瀏覽的下一個網頁與過去瀏覽過哪些網頁無關,而僅依賴于當前所在的頁面,則該過程可以認為是一個有限狀態、離散時間的隨機過程。

這種“將來”的情況與“過去”無關,而只與“當前”狀態有關的性質稱為馬爾可夫性。具有馬爾可夫性的隨機過程稱為馬爾可夫過程。時間和狀態都是離散的馬爾可夫過程稱為馬爾可夫鏈—— P0,P1,P2,?,PnP_0, P_1, P_2, \cdots, P_nP0?,P1?,P2?,?,Pn? 是一個馬爾可夫鏈。

對于馬爾可夫鏈 Pn=APn?1P_n = AP_{n-1}Pn?=APn?1?,當概率轉移矩陣 A 滿足以下 3 個條件時,PnP_nPn? 最終收斂,保持在一個穩定值附近。

  • A 為隨機矩陣:即所有 A[i][j] >= 0,且 A 的所有列向量的元素和為 1;
  • A 是不可約的:A 是不可約的當且僅當 A 所對應的圖是強連通的。
  • A 是非周期的:對某個不等于 1 的自然數 K,如果 Ak=EA^k = EAk=E,則稱 A 為周期矩陣,K 是矩陣 A 的周期。而 A 的每個元素都是正數,所以無論 A 與自身相乘多少次所得到的矩陣,其元素都不可能出現 0,自然也不可能為 E,所以 A 是非周期的。

Link Spam 與反作弊

首先介紹兩個新的概念——鏈接農場和黃金鏈。

  • 鏈接農場:是指由互聯網中的一部分網頁組成,這些網頁非常密集地互相連接在一起。通過創建一個堆砌大量鏈接而沒有實質內容的網頁,這些鏈接彼此互鏈,或指向特定網站,以提高某個或者某些特定網頁的 PageRank 值。
  • 黃金鏈:指一些高權重的網站出售首頁的鏈接給作弊網站,以提高作弊網站的 PageRank 值。

鏈接作弊者眼中的 Web 組成結構:

  • 不可達網頁:作弊者無法影響的網頁。Web 中的大部分網頁都屬于這一類。
  • 可達網頁:雖然不受作弊者控制,但作弊者可以影響它們。
  • 自有網頁:作弊者擁有并完全控制的網頁。

假設目標網頁 T 的總 PageRank 值為 y,則 y 由三部分組成:

  • 可達網頁的貢獻,設為 x;
  • Web 中所有網頁平均分到的貢獻:(1 - β)/n,這部分值很小,可以忽略。
  • 自有網頁的貢獻:設有 m 個自有網頁,每個自有網頁的 PageRank 值為 βy/m+(1?β)/n\beta y/m + (1-\beta)/nβy/m+(1?β)/n。

綜上所述
y=x+βm(βym+(1?β)n)=x+β2y+β(1?β)mny = x + \beta m(\frac{\beta y}{m} + \frac{(1-\beta)}{n}) = x + \beta^2 y + \frac{\beta(1-\beta)m}{n} y=x+βm(mβy?+n(1?β)?)=x+β2y+nβ(1?β)m?
解得
y=x1?β2+βm(1+β)ny = \frac{x}{1-\beta^2} + \frac{\beta m}{(1+\beta)n} y=1?β2x?+(1+β)nβm?
(注:之前上述公式的后一項分母寫成了 (1?β)n(1-\beta)n(1?β)n,經 ershitianxia 同學的指正,已修改為(1+β)n(1+\beta)n(1+β)n,對先前閱讀過該篇文章而造成誤解的讀者表示歉意,也很感謝 ershitianxia 同學的評論,說明我寫的文章還是能夠讓讀者讀下去的。)

如果選擇 β = 0.85,那么 1/(1?β2)=3.6,β/(1+β)=0.461 / (1-β^2) = 3.6, \beta/(1+\beta) = 0.461/(1?β2)=3.6,β/(1+β)=0.46。也就是說,上述結構能夠把可達網頁的 PageRank 貢獻放大到 3.6 倍,并且還可以獲得自有網頁數目和總網頁數目比值(m/n)的 46%。

那么要如何針對這一種作弊行為呢?搜索引擎可以修改 PageRank 算法的定義來自動降低鏈接作弊網頁的重要度。

【TrustRank】:如果一個網頁的 PageRank 值遠高于可信網頁的值,則很可能這個網頁被 Spam 了。

  • 設一個頁面的 PageRank 值為 P,TrustRank(可信網頁的 PageRank 值) 為 T,則定義網頁的垃圾質量(Spam Mass)為:(P - T) / P。
  • Spam Mass 越大,說明此頁面被 Spam 的可能性越大。那么我們就可以通過降低該網頁的 PageRank 值來避免作弊行為。

PageRank 算法缺點

  • 主題漂移問題:PageRank 算法僅利用網絡的鏈接結構,無法判斷網頁內容上的相似性;且算法根據向外鏈接平均分配權值使得主題不相關的網頁獲得與主題相關的網頁同樣的重視度,出現主題漂移。
  • 沒有過濾廣告鏈接和功能鏈接:例如常見的“分享到微博”,這些鏈接通常沒有什么實際價值,前者鏈接到廣告頁面,后者常常鏈接到某個社交網站首頁。
  • 對新網頁不友好:一個新網頁的入鏈相對較少,即便它的內容質量很高,但要成為一個高 PR 值的頁面仍需要很長時間的推廣。

其他:搜索引擎的發展趨勢

社會化搜索

隨著Facebook的流行,社交網絡平臺和應用占據了互聯網的主流,社交網絡平臺強調用戶之間的聯系和交互,這對傳統的搜索技術提出了新的挑戰。

傳統搜索技術強調搜索結果和用戶需求的相關性,社會化搜索除了相關性外,還額外增加了一個維社交網絡內其他用戶發布的信息、點評或驗證過的信息則更容易信賴,這是與用戶度,即搜索結果的可信賴性。對某個搜索結果,傳統的結果可能成千上萬,但如果處于用戶的心里密切相關的。社會化搜索為用戶提供更準確、更值得信任的搜索結果。

實時搜索

隨著微博的個人媒體平臺興起,對搜索引擎的實時性要求日益增高,我想這也是搜索時引擎未來的一個發展方向。

實時搜索最突出的特點是時效性強,越來越多的突發事件首次發布在微博上,實時搜索核心強調的就是“快”,用戶發布的信息第一時間能被搜索引擎搜索到。

不過在國內,實時搜索由于各方面的原因無法普及使用,比如 Google 的實時搜索是被重置的,百度也沒有明顯的實時搜索入口。

多媒體搜索

目前搜索引擎的查詢還是基于文字的,即使是圖片和視頻搜索也是基于文本方式。那么未來的多媒體搜索技術則會彌補查詢這一缺失。多媒體形式除了文字,主要包括圖片、音頻、視頻。

多媒體搜索比純文本搜索要復雜許多,一般多媒體搜索包含 4 個主要步驟:多媒體特征提取、多媒體數據流分割、多媒體數據分類和多媒體數據搜索引擎。

思維導圖

總結

以上是生活随笔為你收集整理的PageRank 笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。