谷歌人工智能算法RankBrain運行原理解析
近日,新聞爆料說谷歌正在使用一個機器學習人工智能系統“RankBrain”來對搜索結果排序。想知道它的工作原理以及如何在谷歌排序系統上運行嗎?以下是我們對RankBrain的全部了解。
下面的信息來自于三個不同的地方。第一個, Bloomberg story ,昨天發布了谷歌RankBrain的新聞(也可以看看我們寫的 文章 )。第二個,谷歌目前直接提供給Search Engine Land的其他信息。第三個,我們自己的知識,和對谷歌沒有回答的問題的猜測。在必要時,我們要明確任何一個來源不會作為背景資料使用。
什么是RankBrain?
Bloomberg報道說,RankBrain是一個谷歌機器學習人工智能系統的名稱,用于幫助處理搜索結果,這得到了谷歌的肯定。
什么是機器學習?
機器學習是計算機教自己如何處理事情,而不是由人類告知或是遵循固定的程序。
什么是人工智能?
真正的人工智能,或簡稱AI,是計算機能和人類一樣聰明,至少在獲取知識方面,通過學習或者建立在知識庫的基礎上得到新的聯系。
當然,真正的AI只存在于科幻小說里。事實上,AI是設計成能夠學習和做出聯系的計算機系統。
AI與機器學習有什么不同呢?就RankBrain而言,給我們的感覺好像是它們是等同的。你可能會聽到它們交替使用,或是聽到使用機器學習來描述人工智能方法的使用。
那么RankBrain是谷歌Ranks搜索結果的新方式嗎?
不,RankBrain只是谷歌眾多搜索算法的一部分,它是一套計算機程序,能把知識庫中上十億個頁面進行排序,然后找到與特定查詢最相關的結果。
谷歌搜索算法的名字是什么?
我們過去報道過,它叫做 蜂鳥 ( Hummingbird)。許多年來,整個算法沒有一個正式的名稱。但在2013年中,谷歌對這個算法進行了徹底檢修,并命名它為蜂鳥。
那么RankBrain是谷歌蜂鳥搜索算法的一部分么?
這是我們的理解。蜂鳥是整個搜索算法,就好比車里面有個引擎。引擎本身可能由許多部分組成,比如濾油器,燃油泵,散熱器等。同理,蜂鳥也由多個部分組成,RankBrain就是其中一個最新組成部分。
特別指出,我們知道RankBrain是整個蜂鳥算法的一部分是因為Bloomberg文章明確指出RankBrain不能處理所有的搜索,只有整個算法可以。
蜂鳥同時包含其他的部分,這些名字對 SEO 圈的人來說已經耳熟能詳了,比如 Panda , Penguin 和 Payday ,用于垃圾郵件過濾, Pigeon 用于優化本地結果, Top Heavy 用于給廣告太多的頁面降級, Mobile Friendly 用于給移動友好型頁面加分, Pirate 用于打擊版權侵犯。
我認為谷歌算法曾被稱為PageRank
PageRank 是整個蜂鳥算法的一部分,它使用特定的方式給網頁信用排序,基于其他頁面指向此頁面的鏈接來計算。
PageRank比較特別,因為它是谷歌有史以來給它的排序算法賦予的第一個名字,這個名字早在1998年谷歌創立的時候就有了。
谷歌用于排序的“信號”是什么?
谷歌使用信號來決定如何為網頁排序。比如,它會讀取網頁上的詞語,那么詞語就是一個信號。如果某些詞語是粗體,那么這又是一個值得注意的信號。計 算的結果作為PageRank的一部分,給一個網頁設定一個PageRank分數,這作為一個信號。如果一張網頁被檢測到是移動友好型的,那么這又會成為 一個信號。
所有的這些信號都由蜂鳥算法中的各個部分處理,最后決定針對不同搜索返回哪些網頁。
一共有多少種信號?
谷歌稱進行評估的主要排序信號大約有 200多種 ,反過來, 可能有上萬種變種信號或者子信號 。但通常是說幾百種,正如昨天Bloomberg文章中說的那樣。
如果你想有一個更直觀的排序信號向導,來看看我們的 SEO成功因素元素周期表 :
我們認為這是個非常好的向導,說明了類似谷歌的搜索引擎對網頁排序使用的東西。
RankBrain是第三個最重要的信號?
沒錯。這個新的系統突然冒出來,已經成為網頁排序第三個最重要的因素。以下摘自Bloomberg 文章 :
Corrado說,RankBrain是上百個信號中的一個,用于在算法中決定哪些結果該展示在谷歌搜索頁面,該排在第幾位。他還表示,在RankBrain部署的這幾個月里,它已經成為為搜索查詢提供結果的第三個最重要的信號。
第一和第二個最重要的信號是什么?
我們詢問了兩次,但是谷歌還是不愿意告訴我們第一和第二個最重要的信號是什么。
這很煩人而且有點誤導人。Bloomberg文章也不出意外沒能得到答案。谷歌想要提高一些性能需求來作為機器學習的突破。
但是真正評估這種突破,有助于了解谷歌現在使用的其他最重要的因素,包括被RankBrain超過的因素。這就是為什么谷歌要來解釋這些因素來襯托前兩個最重要的信號的性能。
順便提一下,我個人猜測鏈接仍然是最重要的信號。谷歌以投票的形式統計這些鏈接。這也是一個非常老的系統,我在以前的一篇文章里做了介紹: The Broken “Ballot Box” Used By Google & Bing 。
至于第二個最重要的信號,我認為是“詞語”,詞語將會包含一切信息,從網頁上的詞語到RankBrain分析之外的人們字搜索框輸入的關鍵字。
RankBrain到底做什么?
從與谷歌的來往電子郵件之中,我了解到RankBrain主要用于翻譯人們可能不清楚該輸入什么確切詞語的搜索詞條。
難道谷歌之前沒有處理沒有確切查詢詞條的方式嗎?
有,谷歌很早就找到不根據具體詞條搜索頁面的方式。比如,許多年前,如果你輸入“鞋”(shoe),谷歌可能不會找到那些有“鞋”(shoes) 的頁面,因為從技術上來說這是兩個不同的詞匯,但是“stemming”使得谷歌變得更聰明,讓引擎了解shoes的詞根是shoe,就像 “running”的詞根是“run”。谷歌同樣了解同義詞,因此,如果你搜索“運動鞋”,它可能知道你想找“跑鞋”。它甚至有概念性的知識,知道哪些網 頁是關于“蘋果”公司,哪些是關于水果“蘋果”的。
Knowledge Graph是什么?
Knowledge Graph 在2012年推出,使谷歌在處理詞匯關聯方面更出色。更重要的是,谷歌說它學會如何搜索事物而不是蒼白的字符串。
字符串意味著只按照字符串本身搜索,比如搜索匹配“Obama”字符串的網頁。而事物則是谷歌知道當某人搜索“Obama”的時候,他們可能想找的是美利堅總統巴拉克奧巴馬,一個與其他人物和事物關聯的實實在在的人物。
Knowledge Graph是一個事實數據庫,包含世上萬物的內在聯系。這就是為什么當你輸入“when was the wife of obama born”的時候,你可以在下面看到關于米歇爾奧巴馬的信息,而不需要特定輸入她的名字:
RankBrain如何幫助提煉搜索?
谷歌目前提煉搜索的方法一般都是由人工處理,無論是創建詞干列表或者同義詞列表或者創建事物關聯數據庫。當然,這其中有一些自動化的操作,但是很多時候都是靠人工來完成。
問題是, 谷歌每天要處理30億條搜索 。2007年, 谷歌表示 ,有20%至25%的搜索是從來沒見過的。2013年這個數字 降至15% ,這也引用在了昨天的Bloomberg 文章中,我們也得到了谷歌的重新證實。但是30億之中,15%的從未搜索過的詞條仍然是非常大的數目——每天4.5億條。
這些可能是很復雜的搜索,多字查詢,或者是“long-tail”查詢。RankBrain旨在幫助更好地解釋這些查詢,并有效地翻譯它們,通過查詢關鍵字背后的信息,找到最合適的網頁。
谷歌告訴我們,它可以觀察到看似無關復雜搜索之間的模式,并理解它們實際上是如何彼此關聯的。這種學習方式,又讓它更好地理解未來復雜搜索,以及知道它們是否與特定主題相關。最重要的是,它還可以將這些搜索組與它認為最匹配的搜索結果關聯起來。
谷歌并沒有給出搜索組的例子,也沒詳細說明RankBrain如何猜到哪些是最匹配的頁面。后者可能是因為如果它可以將模糊搜索轉化成某些更具體的東西,那么它就可以得到更好的答案。
來看看一個例子?
雖然谷歌并沒有給出搜索組的例子,但是Bloomberg文章里有一個單個搜索的例子,假設得到了RankBrain的幫助。如下:
What’s the title of the consumer at the highest level of a food chain
像我這樣的外行,“consumer”聽起來像是買東西的人。然而,這也是個科學術語,表示消耗食物的東西。在食物鏈中同樣有不同等級的消費者。最高等級的消費者?就叫做“捕食者”(predator)。
把這個輸入谷歌中,我們得到了不錯的答案,雖然這個查詢語句本身看起來十分古怪:
現在來看看搜索“top level of the food chain”的結果相似性,如下:
設想下,RankBrain將原本那條冗長且復雜的查詢關聯到了這條更短的上面,這可能是最常見的做法。它知道它們非常相似。所以結果是,谷歌可以利用它所知的一切,從更常見的查詢中尋找答案,然后將它提供給不常見的查詢。
我要強調,我并不知道RankBrain關聯了這兩條查詢。我只知道谷歌給出了第一個例子。而這只是對RankBrain如何將不常見搜索與常見搜索聯系來提高搜索質量的一種說明而已。
Bing使用RankNet同樣可以達到這種效果嗎?
回到2005年 ,微軟開始使用自己的機器學習系統,名叫RankNet,如今已是Bing搜索引擎的一部分。事實上,RankNet的首席研究員和創始人 最近才被肯定 。但這些年來,微軟幾乎沒有談到RankNet。
你可以打賭,這將有可能改變。有趣的是,當我在Bing中輸入同樣的詞條的時候,Bing得到了不錯的結果,其中一條與谷歌返回的結果一致。
一條查詢并不意味著Bing的RankNet和谷歌的RankBrain同樣出色,反之亦然。不幸的是,很難拿出一份清單來做這種比較。
還有更多的例子嗎?
谷歌的確給出了一個新的案例:“How many tablespoons in a cup?”谷歌表示,對來自于澳大利亞和美國搜索會有不同的結果,因為兩個國家的度量標準不同,盡管名稱類似。
為了測試這點,我在Google.com和澳大利亞版本的Google上分別搜索。我并沒有發現太多的不同。即使沒有RankBrain,結果通常會不同,僅僅因為使用“老土”的方式,從澳大利亞網站中為使用澳大利亞版本Google搜索的用戶呈現頁面。
RankBrain真的有幫助嗎?
盡管我上面給出的兩個例子不足以說明RankBrain的強大,但我確實相信它可能正在產生巨大的影響,正如谷歌宣稱的那樣。谷歌在選擇什么算法來排序方面相當保守。谷歌總是在做小測試。但是當對此算法有很大信心時,使用這個算法會帶來極大的突破。
整合RankBrain,把它作為第三個最重要的信號,是一個巨大的變化。我認為,如果它沒有幫助的話谷歌也不會使用它。
RankBrain什么時候開始的?
谷歌告訴我們,在2015年初的時候就在逐步推出RankBrain,現已全面部署了好幾個月了。
哪些查詢受到影響?
谷歌告訴Bloomberg說,有相當一部分的查詢將由RankBrain來處理。我們詢問具體數字,但還是得到同樣的答案。
RankBrain一直在學習嗎?
谷歌說,RankBrain所有的學習都是離線完成的。輸入多批次歷史搜索記錄,然后學習使用這些數據做出預測。
測試這些預測,如果預測效果準確,那么學習之后的RankBrain版本就上線。然后離線學習測試的過程重復進行。
RankBrain除了做查詢優化還做了其他的嗎?
通常情況下,一條查詢如何優化的——無論是通過提取詞根,同義詞還是RankBrain——不會作為排序因素或信號。
信號是綁定內容的典型因素,比如網頁上的詞語,指向頁面的鏈接,網頁是否部署在安全的服務器上等。它們也可以綁定用戶,比如用戶地理位置信息或搜索瀏覽歷史。
那么當谷歌提及RankBrain是第三個最重要的信號時,它真的是一個排序信號嗎?是的,谷歌再次確認說,他們有一個組件,RankBrain以某種方式直接來計算網頁的排名。
具體如何做的呢?是否有某種“RankBrain分數”的因子可能來評估網頁質量呢?有可能吧,但RankBrain似乎更可能基于網頁包含的內容以某種方式幫助谷歌更好地分類頁面。RankBrain可能比谷歌已有的系統更好地總結網頁內容。
或許也不是這樣,谷歌只是說有某種排序組件。
我怎么了解RankBrain更多的信息?
谷歌告訴我們說,如果想要了解詞語“向量”——單詞和短語用數學連接的方式——應該看看這個 博客 ,這篇博客講述了系統(文章中沒有說明是RankBrain)如何僅僅通過掃描新聞學習到國家的省會城市:
有一篇更長的研究論文,基于 此 。你可以使用谷歌的 word2vec 工具玩轉自己的機器學習工程。另外,谷歌有 一整塊區域 是關于人工智能和機器學習論文的,微軟 也一樣 。
原文鏈接: FAQ: All About The New Google RankBrain Algorithm (譯者/劉翔宇 審校/劉帝偉、朱正貴 責編/周建丁)
關于譯者: 劉翔宇,中通軟開發工程師,關注機器學習、神經網絡、模式識別。