最近由於.......你懂得,需要一些搜尋方面的知識,於是乎我重新複習了一下上半年讀的那本書《數學之美》dr吳軍老師寫的。
感覺讀完這種書還是寫一下比較好,因為將來說不定就會忘記了。
接下來幾篇就像寫一下搜尋演算法的各種原理了。
雖然在公司我們使用過solr,雖然使用solr之前也知道solr使用的是tf-idf值來建立的索引。但這只是龐大搜尋體系中的乙個小部分,
裡面的內容還是很多的。
下面廢話就不多說了,咱們開始講pagerank演算法的計算方法啦。
pagerank演算法的核心思想是:
在網際網路上,如果乙個網頁被很多其他網頁所鏈結,說明它收到普遍的承認和信賴,那麼它的排名就高。這就是pagerank的核心思想
是由谷歌的創始人 拉里佩奇 和 謝爾蓋布林 一起發明的。個人覺得就是天才啊
pagerank的計算方法:
假定向量b=(b1,b2,......,bn)t為第一,第二,第n個網頁的網頁排名。矩陣
為網頁之間連線的數目,其中amn代表第m個網頁指向第n個網頁的鏈結數。
a是已知的,b是未知的,是我們所要計算的。
假定bi是第i次迭代的結果,那麼
初始假設:所有網頁的排名都是1/n,即
顯然通過(10-3)簡單(但是計算量非常大)的矩陣運算,可以得到b1,b2.... 可以證明最終bi會收斂,即bi無限趨近於b,
此時:b=b*a
因此當兩次迭代的結果bi和bi-1之間的差異非常小,接近於0時,停止迭代運算,演算法結束。
一般來講,只要10次左右的迭代基本上就收斂了
由於網頁之間連線的數量相比網際網路的規模非常稀疏,因此計算網頁的排名也需要對0概率或者小概率事件進行平滑處理。
網頁的排名是乙個一維向量,對它的平滑處理只能利用乙個小的常熟α 這時公式變成如下:
其中n是網際網路網頁的數量
α 是乙個較小的常數。i是單位矩陣。
網頁排名的計算主要是矩陣相乘,這種計算很容易分解成許多小任務,在多台計算機上進行並行處理。就是mapreduce
97 PageRank演算法學習
最近由於.你懂得,需要一些搜尋方面的知識,於是乎我重新複習了一下上半年讀的那本書 數學之美 dr吳軍老師寫的。感覺讀完這種書還是寫一下比較好,因為將來說不定就會忘記了。接下來幾篇就像寫一下搜尋演算法的各種原理了。雖然在公司我們使用過solr,雖然使用solr之前也知道solr使用的是tf idf值來...
演算法學習 PageRank
pagerank是google創始人拉里 佩奇和謝爾蓋 布林提出的鏈結分析演算法。pagerank的核心思想是兩條 網頁搜尋時,就可以將搜尋結果通過pagerank值排序,過濾掉那些包含關鍵字但是價值低 被鏈結或引用少 的網頁,將pagerank值較高的網頁放在最前面返回,往往是使用者感興趣的結果。...
演算法學習 Union Find演算法
union find演算法有它的實際用途。多用於動態連通的應用場景。union find演算法是 給出兩個節點,判斷它們是否連通,如果連通,是不需要給出具體的路徑的 舉兩個例子作為主要表現 1 在網路連線中,當發現沒有連線的兩個節點,可以把他們連線起來,一旦節點都連線起來,又能把多餘的線拆除,這時候...