費馬圖計算助力搜狗提升百倍搜索精度 優化搜索體驗
搜狗搜索是國內 TOP 級的搜索引擎,其搜索排序是基于 PageRank 算法實現(PR 值), 數據體量達到萬億級別,常規 hadoop 分布式計算方法無法實現全部網頁的檢索排序。因此 長期以來只能將“網頁級”縮減到“網站級”或“目錄級”,減少到 hadoop 能夠處理的百億 級數據量。與費馬科技合作后,依托費馬圖計算產品,搜狗搜索實現全量網頁 PageRank 算 法計算,從而為搜索用戶提供更精準更高效的信息搜索體驗。
面臨挑戰
搜狗搜索是搜狐旗下的子公司,負責搜索業務,成立于 2004 年,是全球首個百億規模 中文搜索引擎,收錄網站達百億規模。搜狗 2018 年其搜索相關廣告營收為 10.23 億美元, 占比 91.01%,因此網頁排序的質量對搜狗公司至關重要。PageRank 是網頁排序的基礎算法, 重要性不言而喻。
由于網頁數量非常多(中文網頁數規模是千億級別,鏈接數則達到了數十萬億),用 hadoop 處理萬億級別的網頁 PageRank 是幾乎不可能的挑戰。因此,搜狗只能將網頁級 別,縮減到目錄級別,或者進一步縮減到網站級別。縮到原始數據的 1%左右,降到 hadoop 可處理的規模。這種做法的代價是犧牲了 PageRank 的精度,造成網頁質量的降低。
然而隨著自媒體數量的攀升、博客/問答等 UGC 內容的擴大,同一站點不同網頁的權重 差別相去甚遠,舉例來說,同一網站不同博主提供的內容搜索權重也理應不同。加之搜狗搜 索對 UGC 內容的覆蓋較為全面,不斷鞏固和增強搜狗搜索獨家內容優勢,在提供優質精準的 全平臺搜索服務時,其縮減的 PageRank 數據處理規模成為了瓶頸。
方案詳述
PageRank 算法是由 Goole 創建人 Larry Page 提出的,它的基本假設是,對于任意一個 網頁:1)指向它的網頁越多,那么它就越權威;2)指向它的那些網頁越權威,那么它就越 權威;3)它指向的網頁越多,每個網頁從它這里獲得的權威值就越少。在實現中,將每個 網頁抽象成圖中的一個頂點,網頁之間的鏈接則抽象成頂點之間的有向邊,然后 PageRank 算法就可以轉化成一個在有向圖上延著邊傳播“權威值”的迭代算法。由于數據量巨大, PageRank 算法往往需要大量的服務器配合進行分布式計算。而目前比較常見的,也是搜狗 一直采用的做法,就是使用 Hadoop 的編寫 MapReduce 程序來實現。
Hadoop 平臺是一個通用的大數據計算平臺,它使用 Java 編寫,可以支持高達上千臺機 器的集群。但是 Hadoop 有個巨大的問題就是速度很慢,一方面是 MapReduce 模型本身對迭 代計算不友好,另一方面它的實現也沒有太多考慮效率。因此,對于全中文網頁 PageRank 排序這種越大規模的計算問題,Hadoop 是無法滿足的。
費馬科技自主研發的 PandaGraph 是一個大規模圖計算平臺,它能夠高效的處理超大規 模圖計算問題。開發 PandaGraph 的團隊曾經開發出世界上最快的單機圖計算系統 GridGraph, 最快的分布式圖計算系統 Gemini,以及規模最大的圖計算系統 ShenTu。他們在 PandaGraph 北京費馬科技有限公司 中應用了大量前沿科研成果,使得 PandaGraph 成為目前市場上最快的,支持規模最大的圖 計算系統。同時 PandaGraph 還能與 Hadoop 平臺無縫集成,直接利用 Hadoop 集群中的服務 器進行計算。因此,PandaGraph 完美的契合了搜狗對中文網頁全量 PageRank 的計算需求。
有了 PandaGraph,搜狗就不再需要對網頁規模進行縮減,而可以直接在全量數據上進 行 PageRank。在使用 100 臺服務器規模的情況下,PandaGraph 在一天內完成了萬億級頂點, 十萬億級邊的超大規模數據的 PageRank。
搜狗搜索資深研究員田偉表示,“網頁數據的量級是十分龐大的,目前業界只有通過圖 計算的方式能夠實現全量數據的 PageRank,我們很榮幸的與業界頂尖的團隊費馬科技合作, 不僅將網站級 PageRank 擴展到了網頁級,大幅的節省了計算資源,同時其友好、強大的計 算力,為搜狗在其他功能和業務的開拓方面,在底層支持系統層面帶來了更多可能性,幫助 我們不斷創新。”