繼 5 月的文件泄露事件后,谷歌的搜索引擎又被掀了個底朝天。不僅 DeepMind 發(fā)論文解釋了 Vizier 系統(tǒng)的機制,博客作者 Mario Fischer 還對近百份文檔做了徹底的調研分析,為我們還原了這個互聯網巨獸的全貌。
谷歌發(fā)表的論文又開始揭自家技術的老底了。
DeepMind 高級研究科學家 Xingyou (Richard) Song 等人最近發(fā)表的論文中,解釋了谷歌 Vizier 服務背后的算法秘密。
作為一個運行過數百萬次的黑盒優(yōu)化器,Vizier 幫助谷歌內部優(yōu)化了很多研究和系統(tǒng);同時,谷歌云和 Vertex 也上線了 Vizier 服務,幫助研究者和開發(fā)人員進行超參數調整或黑盒優(yōu)化。
Song 表示,與 Ax / BoTorch、HEBO、Optuna、HyperOpt、SkOpt 等其他行業(yè)基線相比,Vizier 在很多用戶場景中都有更穩(wěn)健的表現,比如高維度、批查詢、多目標問題等。
趁著論文發(fā)布,谷歌元老 Jeff Dean 也發(fā)推贊揚 Vizier 系統(tǒng)。
他提到的開源版 Vizier 已經托管在 GitHub 倉庫上,有非常詳細的文檔說明,并且最近仍在持續(xù)維護更新。
倉庫地址:https://github.com/google/vizier
OSS Vizier 的分布式客戶端-服務器系統(tǒng)
雖然谷歌研究院早在 2017 年就發(fā)文討論過整個 Vizier 系統(tǒng),但內容遠沒有最新的這篇詳實。
論文地址:https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46180.pdf
這篇技術報告包含了大量研究工作的成果和用戶反饋,在描述開源 Vizier 算法的實現細節(jié)和設計選擇的同時,用標準化基準的實驗表現了 Vizier 在多種實用模式上的穩(wěn)健性和多功能性。
論文地址:https://arxiv.org/abs/2408.11527
其中,Vizier 系統(tǒng)迭代過程的經驗教訓也被一一展示,這對學界和行業(yè)都有很大的借鑒意義,值得一觀。
Vizier 系統(tǒng)所用貝葉斯算法的核心組件
文章的主要貢獻如下:
- 正式確認了 Vizier 當前版本的默認算法并解釋其功能、設計選擇,以及整個迭代過程中吸取的經驗教訓
- 在原始的 C++ 實現基礎上提供了開源的 Python 和 JAX 框架實現
- 使用行業(yè)通用基準進行測試,體現了 Vizier 在高維、分類、批量和多目標優(yōu)化等模式下的穩(wěn)健性
- 對零階進化采集優(yōu)化器(zeroth-order evolutionary acquisition optimizer)這個非常規(guī)的設計選擇進行了消融實驗,展示并討論了其中的關鍵優(yōu)勢
論文作者列表中排名前二的是兩個 Richard——
Xingyou (Richard) Song 曾在 OpenAI 擔任強化學習泛化方面的研究員,2019 年以高級研究科學家的身份加入 Google Brain,并從 2023 年起擔任 DeepMind 高級研究科學家,從事 GenAI 方面的工作。
Qiuyi (Richard) Zhang 目前在 DeepMind Vizier 團隊中工作,也是開源版 Vizier 的共同創(chuàng)建者,他的研究主要關注超參數優(yōu)化、貝葉斯校準和理論機器學習方向,此外在 AI 對齊、反事實 / 公平性等方面也有涉足。
2014 年,Zhang 以優(yōu)秀畢業(yè)生的身份從普林斯頓大學獲得學士學位,之后在加州大學伯克利分校獲得獲得應用數學和計算機科學的博士學位。
搜索引擎機制大起底
作為絕對的行業(yè)巨頭,谷歌很多未被披露的核心技術都讓外界好奇已久,比如,搜索引擎。
十多年來超過 90% 的市場份額,讓谷歌搜索成為了或許是整個互聯網上最具影響力的系統(tǒng),它決定了網站的生死存亡及網絡內容的呈現形態(tài)。
但谷歌究竟是如何對網站進行排名的具體細節(jié),從來都是「黑匣子」。
不像 Vizier 這類產品,搜索引擎既是谷歌的財富密碼,也是看家技術,官方發(fā)論文披露是不可能的。
雖然也有媒體、研究人員以及從事搜索引擎優(yōu)化工作的人士進行過種種猜測,但也只是盲人摸象。
曠日持久的谷歌反壟斷訴訟最近宣布判決,美國的各級檢察官搜羅了約 500 萬頁的文件,變成公開的呈堂證供。
然而,谷歌內部文檔泄露和反壟斷聽證會的公開文件等等,并沒有真正告訴我們排名的具體工作原理。
并且,由于機器學習的使用,自然搜索結果的結構非常復雜,以至于參與排名算法開發(fā)的谷歌員工也表示,他們并不能完全理解許多信號權重的相互作用,無法解釋為什么某個結果會排在第一或第二。
5 月 27 日,一位匿名消息人士(后證實為搜索引擎優(yōu)化行業(yè)資深從業(yè)者 Erfan Azimi)曾向 SparkToro 公司的 CEO Rand Fishkin 提供了一份 2500 頁的谷歌搜索 API 泄露文檔,揭示了谷歌搜索引擎內部排名算法的詳細信息。
但這還不是全部。
專門報道搜索引擎行業(yè)的新聞網站 Search Engine Land 最近還發(fā)表了一篇博客,根據數千份泄露的谷歌法庭文件進行逆向工程,首次揭秘谷歌網絡搜索排名的核心技術原理。
原文鏈接:https://searchengineland.com/how-google-search-ranking-works-445141
這篇博文是原作者在幾周的工作中對近 100 份文檔經過多次查看、分析、結構化、丟棄和重組之后才誕生的,雖然并不一定嚴格準確或面面俱到,但可以說是了解谷歌搜索引擎絕無僅有的全面且詳細的資料。
作者的省流版結構示意圖如下:
毫無疑問,谷歌搜索引擎是一個龐大而復雜的工程。從爬蟲系統(tǒng)、存儲庫 Alexandria、粗排名 Mustang,再到過濾和細排名系統(tǒng) Superroot 以及負責最終呈現頁面的 GWS,這些都會影響網站頁面最終的呈現和曝光。
新文件:等待 Googlebot 訪問
當一個新網站發(fā)布時,它不會立刻被谷歌索引,谷歌如何通過收集和更新網頁信息呢?
第一步就是爬蟲和數據收集,谷歌首先需要知道該網站 URL 的存在,網站地圖的更新或放置 URL 鏈接可以讓谷歌抓取到新網站。
并且,頻繁被訪問的頁面鏈接能更快地引起谷歌的注意。
爬蟲系統(tǒng)(trawler system)會抓取新內容,并記錄何時重新訪問 URL 以檢查網站更新,這由一個稱為調度器的組件管理。
接著,存儲服務器決定是否轉發(fā)該 URL 或是否將其放到沙箱(sandbox)中。
谷歌之前一直否認沙箱的存在,但最近的泄露信息表明,(可疑的)垃圾網站和低價值網站也會被放入沙箱,谷歌顯然會轉發(fā)一些垃圾網站,可能是為了進一步分析內容和訓練算法。
然后,圖像鏈接被傳輸到 ImageBot 中,以便后續(xù)的搜索調用,有時會出現延遲的情況,ImageBot 有分類功能,能夠將相同或相似的圖片放置在一個圖像容器中。
爬蟲系統(tǒng)似乎使用自己的 PageRank 來調整信息抓取頻率,如果一個網站的流量更大,這個抓取頻率就會增加(ClientTrafficFraction)。
Alexandria:谷歌索引系統(tǒng)
谷歌的索引系統(tǒng)被稱為 Alexandria,為每個網頁內容分配唯一的 DocID。如果出現內容重復的情況,則不會創(chuàng)建新的 ID,而是將 URL 鏈接到已有的 DocID。
谷歌會明確區(qū)分 URL 和文檔:一個文檔可以由多個包含相似內容的 URL 構成,包括不同語言版本,所有這些 URL 都由同一個 DocID 進行調用。
如果碰到不同域名的重復內容,谷歌會選擇在搜索排名中會顯示規(guī)范版本。這也解釋了為什么其他的 URL 有時可能會有相似的排名。并且,所謂「規(guī)范」版本的 URL 也不是一錘子買賣,而是會隨著時間發(fā)生變化。
Alexandria 收集文檔的 URL
作者的文檔在網上只有一個版本,因此它被系統(tǒng)賦予了自己的 DocID。
有了 DocID 之后,文檔的各個部分都會搜索出關鍵詞并匯總到搜索索引(search index)中?!笩嵩~列表」(hit list)中匯總了每頁多次出現的關鍵詞,會先被發(fā)送到直接索引(direct index)中。
以作者的網頁為例,由于其中多次出現「pencil」一詞,在詞匯索引(word index)中,DocID 就列在「pencil」條目下。
算法會根據各種文本特征計算出文檔中「鉛筆」一詞的 IR(信息檢索)分數并分配給 DocID,稍后用于發(fā)布列表(Posting List)。
比如,文檔中「pencil」一詞被加粗,并包含在一級標題中(存儲在 AvrTermWeight 中),這類信號都會增加 IR 得分。
谷歌會將重要的文檔移至 HiveMind,即主內存系統(tǒng),同時使用快速 SSD 和傳統(tǒng) HDD(稱為 TeraGoogle)來長期存儲不需要快速訪問的信息。
值得注意的是,專家估計,在最近的 AI 熱潮之前,谷歌掌握了全球約半數的網絡服務器。
一個龐大的互聯集群網絡能夠讓數百萬個主存單元一起工作,一位谷歌工程師曾在一次會議上指出,理論上,谷歌的主存儲器可以存儲整個網絡。
有趣的是,存儲在 HiveMind 中的重要文檔的鏈接以及反向鏈接似乎有更高的權重,而 HDD(TeraGoogle)中的 URL 鏈接可能權重較低,甚至可能不被考慮。
每個 DocID 的附加信息和信號都以動態(tài)方式存儲在 PerDocData 中,這個存儲庫保存了每個文檔最近的 20 個版本(通過 CrawlerChangerateURLHistory),許多系統(tǒng)在調整相關性時都會訪問這些信息。
并且,谷歌有能力隨著時間變化評估不同的版本。如果想要完全更改文檔的內容或主題,理論上需要創(chuàng)建 20 個過渡版本來完全覆蓋掉舊的版本。
這就是為什么恢復一個過期域名(一個曾經活躍,但之后由于破產或其他原因被放棄或出售的域名)不會保留原來域名的排名優(yōu)勢。
如果一個域名的 Admin-C 和其主題內容同時發(fā)生變化,機器可以輕松識別出這一點。
此時,谷歌會將所有信號置零,曾經有流量價值的舊域名不再提供任何優(yōu)勢,與全新注冊的域名無異,接手舊域名并不意味著接手原本的流量和排名。
除了泄密事件之外,美國司法機構針對谷歌的聽證會和審判的證據文件也是有用的研究來源,甚至包含內部電子郵件
QBST:有人在搜索「pencil」
當有人在谷歌中輸入搜索詞「pencil」時,QBST(Query Based Salient Terms)開始工作。
QBST 負責分析用戶輸入的搜索詞,根據重要性和相關性為其中包含的各個詞語分配不同的權重,并分別進行相關 DocID 的查詢。
詞匯加權過程相當復雜,涉及 RankBrain、DeepRank(前身為 BERT)和 RankEmbeddedBERT 等系統(tǒng)。
QBST 對于 SEO 很重要,因為它會影響 Google 對搜索結果的排名,從而影響網站可以獲得多少流量和可見度。
如果網站包含與用戶查詢匹配最常用的術語,QBST 就會讓網站排名更高。
經過 QBST 后,相關詞匯如「pencil」,會被傳遞給 Ascorer 做進一步處理。
Ascorer:創(chuàng)建「綠環(huán)」
Ascorer 從倒排索引(即詞匯索引)中提取「pencil」條目下的前 1000 個 DocID,按 IR 得分排名。
根據內部文件,這個列表稱為「綠環(huán)」。在業(yè)內,這被稱為發(fā)布列表(posting list)。
在我們關于「鉛筆」例子中,相應文檔在發(fā)布列表中排名第 132 位。如果沒有其他系統(tǒng)的介入,這將是它的最終位次。
Superroot:「千里挑十」
Superroot 負責對剛剛 Mustang 篩選出的 1000 個候選網頁重新排名,將 1000 個 DocID 的「綠環(huán)」縮減為 10 個結果的「藍環(huán)」。
這個任務具體由 Twiddlers 和 NavBoost 執(zhí)行,其他系統(tǒng)可能也有參與,但由于信息不準確,具體細節(jié)尚不清楚。
Mustang 生成 1000 個潛在結果,Superroot 將其過濾為 10 個
Twiddlers:層層過濾
各種文件表明,谷歌使用了數百個 Twiddler 系統(tǒng),我們可以將其視為類似于 WordPress 插件中的過濾器。
每個 Twiddler 都有自己特定的過濾目標,可以調整 IR 分數或者排名位次。
之所以用這種方式設計,是因為 Twiddler 相對容易創(chuàng)建,而且無需修改 Ascorer 中復雜的排名算法。
排名算法的修改非常具有挑戰(zhàn)性,因為涉及潛在的副作用,需要大量的規(guī)劃和編程。相反,多個 Twiddler 并行或順序操作,并不知道其他 Twiddler 的活動。
Twiddler 基本可以分為兩種類型:
-PreDoc Twiddlers 可以處理幾百個 DocID 的集合,因為它們幾乎不需要額外的信息;
-相反,「Lazy」類型的 Twiddler 需要更多的信息,例如來自 PerDocData 數據庫的信息,需要相對更長的時間和更復雜的過程。
因此,PreDocs 先接收發(fā)布列表并減少網頁條目,然后再使用較慢的「Lazy」類型的過濾器,兩者結合使用大大節(jié)省了算力和時間。
兩種類型的、超過 100 個 Twiddler 負責減少潛在的搜索結果數量并重新排序
經過測試,Twiddler 有多種用途,開發(fā)者可以嘗試使用新的過濾器、乘數或特定位置限制,甚至可以做到非常精準的操控,將一個特定的搜索結果排名到另一個結果的前面或后面。
谷歌的一份泄露的內部文件顯示,某些 Twiddler 功能應僅由專家與核心搜索團隊協商后使用。
如果您認為自己了解 Twidder 的工作原理,請相信我們:您不了解。我們也不確定自己是否了解
還有一些 Twiddlers 僅用于創(chuàng)建注釋,并將這些注釋添加到 DocID 中。
在 COIVD 期間,為什么你所在國家的衛(wèi)生部門在 COVID-19 搜索中總是排在第一位?
那正是因為 Twiddler 會根據語言和地區(qū),使用 queriesForWhichOfficial 來促進官方資源的精確分配。
雖然開發(fā)者無法控制 Twiddler 重新排序的結果,但了解其機制可以更好地解釋排名波動和那些「無法解釋的排名」。
質量評估員和 RankLab 實驗室
全球范圍內有數千名質量評估員負責為谷歌評估搜索結果,對新算法或過濾器進行上線前的測試。
谷歌表示,他們的評分僅供參考,不會直接影響排名。
這本質上是正確的,但他們的評分和投標票的確對排名產生了極大的間接影響。
評估員通常在移動設備上進行評估,從系統(tǒng)接收 URL 或搜索短語,并回答預設的問題。
例如,他們會被問到,「這篇內容作者和創(chuàng)作實踐是否清晰?作者是否擁有該主題的專業(yè)知識?」
這些答案會被存儲起來并用于訓練機器學習算法,讓算法能夠更好地識別高質量、值得信賴的頁面,和不太可靠的頁面。
也就是說,人類評估者提供的結果成為深度學習算法的重要標準,谷歌搜索團隊創(chuàng)建的排名標準反而沒那么重要。
想象一下,什么樣的網頁會讓人類評估者覺得可信?
如果某個網頁包含作者的照片、全名和 LinkedIn 鏈接,通常會顯得令人信服。反之,缺乏這些特征的網頁會被判定為不那么可信。
接著,神經網絡將識別這一特征為關鍵因素,經過至少 30 天的積極測試運行,模型可能開始自動將此特征用作排名標準。
因此,具有作者照片、全名和 LinkedIn 鏈接的頁面可能會通過 Twiddler 機制獲得排名提升,而缺乏這些特征的頁面則會出現排名下降。
另外,根據谷歌泄露的信息,通過 isAuthor 屬性和 AuthorVectors 屬性(類似于「作者指紋識別」),可以讓系統(tǒng)識別并區(qū)分出作者的獨特用詞和表達方式(即個人語言特征)。
評估員的評價被匯總成「信息滿意度」(IS)分數。盡管有許多評估員參與,但 IS 評分僅適用于少數 URL。
谷歌指出,許多沒有被點擊的文檔可能也很重要。當系統(tǒng)無法進行推斷時,文檔會被自動發(fā)送給評估員并生成評分。
評估員相關的術語中提到了「黃金」,這表明某些文檔可能有一個「黃金標準」,符合人類評估員的預期可能有助于文檔達到「黃金」標準。
此外,一個或多個 Twiddler 系統(tǒng)可能會將符合「黃金標準」的 DocID 推進排名前十。
質量評估員通常不是谷歌的全職員工,而是隸屬于外包公司。
相比之下,谷歌自己的專家在 RankLab 實驗室中工作,負責進行實驗、開發(fā)新的 Twiddler 以及進行評估和改進,看 Twiddler 能否提高結果質量還是僅僅只能過濾掉垃圾郵件。
經過驗證并有效的 Twiddler 隨后被集成到 Mustang 系統(tǒng)中,使用了復雜、互連且計算密集型的算法。
NavBoost:用戶喜歡什么?
在 Superroot 中,另一個核心系統(tǒng) NavBoost 在搜索結果排名方面也發(fā)揮著重要作用。
Navboost 主要用于收集用戶與搜索結果交互的數據,特別是他們對不同查詢結果的點擊量。
盡管谷歌官方否認將用戶點擊數據用于排名,但聯邦貿易委員會(FTC)披露的一封內部電子郵件指示,點擊數據的處理方式必須保密。
谷歌對此進行否認涉及兩方面的原因。
首先,站在用戶的角度來看,谷歌作為搜索平臺無時無刻監(jiān)視用戶的在線活動,這會引起媒體對于隱私問題的憤怒。
但站在谷歌的角度來看,使用點擊數據是為了獲得具有統(tǒng)計意義的數據指標,而不是監(jiān)控單個用戶。
FTC 文件確認了點擊數據將會影響排名,并頻繁提到 NavBoost 系統(tǒng)(在 2023 年 4 月 18 日的聽證會上提到 54 次),2012 年的一次官方聽證會也證明了這一點。
自 2012 年 8 月起,官方明確表示點擊數據會影響排名
搜索結果頁面上的各種用戶行為,包括搜索、點擊、重復搜索和重復點擊,以及網站或網頁的流量都會影響排名。
對用戶隱私的擔憂只是原因之一。另一種擔憂是,通過點擊數據和流量進行評估,可能會鼓勵垃圾郵件發(fā)送者和騙子使用機器人系統(tǒng)偽造流量來操縱排名。
谷歌也有反制這種情況的方法,例如通過多方面的評估將用戶點擊區(qū)分為不良點擊和良好點擊。
所使用的指標包括在目標頁面的停留時間、在什么時間段查看網頁、搜索的起始頁面、用戶搜索歷史中最近一次「良好點擊」的記錄等等。
對于每個在搜索結果頁面(SERPs)中的排名,都有一個平均預期點擊率(CTR)作為基準線。
例如,根據 Johannes Beus 在今年柏林 CAMPIXX 大會上的分析指出,自然搜索結果的第 1 位平均獲得 26.2% 的點擊,第 2 位獲得 15.5% 的點擊。
如果一個 CTR 顯著低于預期的比率,NavBoost 系統(tǒng)會記錄下這一差距,并相應地調整 DocID 的排名。
如果「expected_CRT」與實際值偏差較大,則排名會相應調整
用戶的點擊量基本上代表了用戶對結果相關性的意見,包括標題、描述和域名。
根據 SEO 專家和數據分析師的報告,當全面監(jiān)控點擊率時,他們注意到了以下現象:
如果一個文檔在搜索查詢中進入前 10 名,而 CTR 顯著低于預期,可以觀察到排名將在幾天內下降(取決于搜索量)。
相反,如果 CTR 相對于排名來說高得多,排名通常會上升。如果 CTR 較差,網站需要在短時間內調整和優(yōu)化標題和內容描述,以便獲得更多的點擊。
計算和更新 PageRank 是耗時且計算密集的,這就是使用 PageRank_NS 指標的原因。NS 代表「最近的種子」,一組相關頁面共享一個 PageRank 值,該值暫時或永久地應用于新頁面。
谷歌在一次聽證會上就如何提供最新信息樹立了一個良好典范。例如,當用戶搜索「斯坦利杯」時,搜索結果通常會顯示一個水杯。
然而,當斯坦利杯冰球比賽正在進行時,NavBoost 會調整結果以優(yōu)先顯示關于比賽的實時信息。
根據最新發(fā)現,文檔的點擊指標包含了 13 個月的數據,有一個月的重疊,以便與前一年進行比較。
出乎意料的是,谷歌實際上并沒有提供太多個性化的搜索結果。測試結果已經表明,對用戶行為進行建模并調整,比評估單個用戶的個人偏好更能帶來優(yōu)質的結果。
然而,個人偏好,例如對搜索和視頻內容的偏好,仍然包含在個性化結果中。
GWS:搜索的結尾和開端
谷歌網絡服務器(GWS)負責呈現搜索結果頁面(SERP),包括 10 個「藍色鏈接」,以及廣告、圖片、Google 地圖視圖、「People also ask」和其他元素。
FreshnessNode、InstantGlue(在 24 小時內反應,延遲約 10 分鐘)和 InstantNavBoost 等這些組件可以在頁面顯示前的最后時刻調整排名。
FreshnessNode 可以實時監(jiān)測用戶搜索行為的變化,并根據這些變化調整排名,確保搜索結果與最新的搜索意圖匹配。
InstantNavBoost 和 InstantGlue 在最終呈現搜索結果之前,對排名進行最后的調整,例如根據突發(fā)新聞和熱門話題調整排名等。
因此,要想取得高排名,一個優(yōu)秀的文檔內容還得加上正確的 SEO 措施。
排名可能會受到多種因素的影響,包括搜索行為的變化、其他文檔的出現和實時信息的更新。因此,必須認識到,擁有高質量的內容和做好 SEO 只是動態(tài)排名格局中的一部分。
谷歌的 John Mueller 強調,排名下降通常并不意味著內容質量不佳,用戶行為的變化或其他因素可能會改變結果的表現。
例如,如果用戶開始偏好更簡短的文本,NavBoost 將自動相應地調整排名。然而,Alexandria 系統(tǒng)或 Ascorer 中的 IR 分數是保持不變的。
這告訴我們,必須在更廣泛的意義上理解 SEO。如果文檔內容與用戶搜索意圖不一致,僅僅優(yōu)化標題或內容是無效的。
參考資料:
https://searchengineland.com/how-google-search-ranking-works-445141
https://arxiv.org/abs/2408.11527
本文來自微信公眾號:微信公眾號(ID:null),作者:新智元
廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。