前半生和后半生的分界線是在哪里了罪?
此時此刻。
----------------------------
那網(wǎng)頁搜索結(jié)果的分界線又在哪里?
前面討論了google的搜索引擎技術(shù),今天來聊聊google的網(wǎng)頁排名方法。
總的來說痰催,一個搜索的排名依賴于兩個信息:
1,是網(wǎng)頁的質(zhì)量信息迎瞧;
2夸溶,查詢與之的相關(guān)性。
google的“PageRank”算法就是要解決如何判斷網(wǎng)頁質(zhì)量信息的問題凶硅。此算法的出現(xiàn)直接導(dǎo)致了搜索技術(shù)質(zhì)的飛躍缝裁。
“PageRank”原理是通過民主表決的方式,如果一個網(wǎng)頁被很多其他網(wǎng)頁所鏈接足绅,說明它價值就越高捷绑。同時,因為被那些排名更高的網(wǎng)站所鏈接更說明其價值氢妈,所以還要考慮網(wǎng)頁排名越高的網(wǎng)站貢獻(xiàn)的鏈接權(quán)重越大粹污。
這個計算問題可以轉(zhuǎn)換為二維矩陣相乘的問題,并可以用迭代的方式解決首量。
初始化時壮吩,可以假定所有網(wǎng)站的排名都是相同的进苍,算出第一次迭代排名,再往下繼續(xù)算出幾次的迭代排名鸭叙。
可以從理論上證明觉啊,排名值能夠收斂到真實值。而且這迭代次數(shù)大概是10次沈贝,就能達(dá)到收斂的效果杠人。
使用二維矩陣相乘計算還有個問題,其元素數(shù)量是網(wǎng)頁的2次方個宋下。這么大的矩陣相乘搜吧,其計算量是非常大的。
從而引出了稀疏矩陣計算和并行計算工具M(jìn)apReduce杨凑。
MapReduce!
MapReduce摆昧!
MapReduce撩满!
注意到了沒有,大名鼎鼎的大數(shù)據(jù)計算框架MapReduce就來源于此绅你。
因為是矩陣相乘伺帘,很容易分解成許多小任務(wù),就可以在多臺計算機(jī)上并行處理忌锯。
MapReduce不是本章的重點伪嫁,后面會再進(jìn)行介紹。
在計算網(wǎng)頁的網(wǎng)頁排名的時候偶垮,網(wǎng)頁之間的鏈接非常稀疏张咳,因此,還需要對零概率或者小概率事件進(jìn)行平滑處理似舵。有一個平滑公式脚猾,不關(guān)鍵,就不在這里闡述了砚哗。
至此google搜索算法成熟后龙助,其他搜索新技術(shù)帶來的提升空間都非常有限,用戶難以體察到差別蛛芥。這也是后來的公司在搜索領(lǐng)域上很難繼續(xù)有所作為的原因提鸟。