以人工智能為基礎的搜索算法是什么樣的?

三年前,Googled的AlphaGo橫空出世時,我寫了《AlphaGo、深度學習及SEO》這篇帖子,在那之后,我一直非常關注人工智能與搜索算法的進展。

人工智能與搜索算法

我不知道搜索算法什么時候會大規模以AI為基礎,也不知道目前AI技術在搜索算法中應用到了什么程度。由于目前人工智能技術的不可解釋性,搜索引擎以AI作為算法基礎會是非常謹慎的,不然很不容易debug。

不過算法中的一些模塊應用AI是肯定的,以前介紹過百度的DNN模型和Google的RankBrain算法,都是AI在搜索算法中的應用。

那么完全以人工智能為基礎的搜索算法是什么樣的?工作原理和流程是什么?簡單說一下我的理解。

人工智能的優勢與搜索

目前實現人工智能的主流方法是機器學習中的深度學習分支,在這篇帖子里就不加嚴格區分了。

簡單說,人工智能是給予系統大量訓練數據,人工智能自己從中尋找模式和規律。給予AI系統的數據是打了標簽的,或者說是告訴了AI系統結果。比如,在圍棋中,AI系統有了大量歷史棋局數據(后來的Alpha連歷史棋局都不需要了,自我對局的數據就行了),以及這些棋局的輸贏結果,這個結果就是標簽。然后AI系統自我學習棋局盤面與結果(輸贏)之間的關系。

在搜索中,AI系統有了頁面的大量數據,也就是搜索引擎本身的索引庫,還需要標簽,也就是要知道哪些頁面是高質量的?針對一個查詢詞,哪些搜索結果是用戶滿意的?然后AI算法自己學習頁面特征(也就是排名因素)和排名之間的關系。

傳統的搜索算法是搜索工程師人工選擇排名因素,人工給予排名因素一定的權重,根據給定公式,計算出排名。這種方法的弊端是,當數據量大了,排名因素多了的時候,調整排名因素的權重是件很困難的事。最初的權重很可能就是根據常識,再加上拍腦袋,具有很大的主觀隨意性。當有幾百個因素,這些因素又互相影響時,調整這些因素的權重就變成混亂、無法預見結果的事了。

而從海量數據中找模式正是AI的擅長。AI可以快速尋找可能的排名因素,調整排名因素權重,自動迭代計算,擬合出排名因素和用戶滿意的搜索結果之間的計算公式。

通過訓練數據訓練出來的計算公式就是AI搜索算法,可以應用于用戶更多的搜索了。

誰來打標簽?

既然訓練AI搜索算法時需要打了標簽的數據,那么這些標簽數據是從哪來的?這就是搜索引擎質量評估員的作用了。

前不久Google質量評估指南帖子里詳細介紹了質量評估員的工作。這些真實用戶(他們不是Google員工),在學習質量評估指南后,Google在評估系統中給評估員真實網站、真實查詢詞數據,評估員進行相關評估,最主要的就是:

  • 給頁面質量打分
  • 給特定查詢詞的搜索結果打分

Google的質量評估員很早就存在了,應該不是為了開發AI算法招募的,而是用來評估傳統算法質量的。但他們的評估數據剛好可以被人工智能系統有效使用。

這樣,AI系統就知道,針對某個查詢詞,用戶滿意的搜索結果是哪些頁面,是按什么順序排名的。

現在,AI系統有了海量頁面特征數據,也知道什么樣的搜索結果是真實用戶滿意的,下一步就是訓練系統,尋找頁面特征和搜索排名之間的關系。

訓練人工智能搜索算法

搜索引擎可以把打了標簽的搜索結果數據分成兩組。一組訓練用,一組驗證用。

AI算法檢查訓練組搜索結果中的頁面有哪些特征,這些特征又應該給予什么樣的權重,根據什么樣的計算公式,才能計算出用戶滿意的(打過標簽的)搜索結果。

與傳統算法不同的是,需要哪些特征(排名因素),這些特征給予多少權重,不是工程師決定的,是AI系統自己尋找和評估的。這些因素也許是工程師想得到、早就在用的,比如:

  • 頁面的關鍵詞密度
  • 頁面內容長度
  • 頁面上有沒有廣告
  • 頁面有多少外部鏈接
  • 頁面有多少內部鏈接
  • 頁面有多少以查詢詞為錨文字的鏈接
  • 頁面所在域名有多少外鏈
  • 頁面打開速度多快
  • 等等等等,可能有幾百上千個

也許是工程師壓根兒沒想過的,也許有些是表面上看起來毫無關系、毫無道理的,比如:

  • 頁面正文用的幾號字
  • 文章作者名字是三個字
  • 頁面第一次被抓取是星期幾
  • 頁面外鏈數是單數偶數

以上只是舉例,為了說明,AI尋找的不是因果關系,而是相關關系。只要AI看到排名好的頁面有哪些特征就夠了,至于把這些特征與排名聯系起來是不是看著有道理,并不是AI關心的,也是不必要關心的。

當然,有些因素可能是負面的,比如域名長度,很可能與高排名是負相關的。

AI系統被訓練的過程就是找到這些排名因素(無論人類看著是否有道理),給予這些因素一定權重,擬合出一個計算公式,剛好能排出用戶滿意的那個搜索結果。這個擬合過程應該是迭代的,一個權重數值、一個公式不行,自動調整,再次計算,直到比較完美擬合出評估員打過標簽的搜索結果。這個訓練過程也許要幾天,也許幾個星期,要看數據量。

AI搜索算法驗證

被訓練過的AI搜索算法就可以應用于其它沒在訓練數據里的查詢詞了。

首先用前面提到的驗證組數據驗證一下,如果新訓練出來的算法給出的搜索結果與驗證組數據(同樣是評估員打過標簽的)吻合,說明算法不錯,可以上線了。如果AI算法給出的搜索結果與驗證組搜索結果里的頁面不同,或者頁面基本相同但排序差別很大,可能就要重新訓練AI系統了。

當然,要做到所有查詢詞,AI算法給出的搜索結果與評估員打過最滿意標簽的搜索結果完全一樣,是不大可能的。估計只要排在前面,比如前20名的頁面順序差異在一定的容錯范圍內就可以了。排在越前面,需要越低的容錯率,比如排在第一第二的頁面不對,比排在第三頁之后的頁面不對嚴重多了。

驗證過的算法就可以上線,接受真實用戶的檢驗了。這里很可能牽扯到一個SEO們普遍認為與排名有關、但搜索引擎一直否認的排名因素:用戶體驗數據是否是排名因素?

很多SEO排名因素統計表明,頁面點擊率、跳出率、用戶停留時間、訪問深度與排名有很高的相關性,但Google一直明確否認這些數據是排名因素。當然,對百度來說,點擊率顯然是排名因素。

原因很可能就是,搜索引擎需要用這些用戶體驗數據驗證搜索算法質量,如果用戶普遍點擊率降低、跳出率提高,說明新上線的算法有問題,需要調整。雖然搜索引擎沒有直接使用用戶數據來排名,但算法的目標就是提高用戶數據,使得這兩者之間高度相關。

新的AI算法上線后,搜索引擎監控的用戶數據說明用戶滿意,算法就成功了,等待下一輪的優化。

以上純屬猜測。

作者: Zac@SEO每天一貼
版權屬于: 中新虛擬主機
版權所有。轉載時必須以鏈接形式注明作者和原始出處及本聲明。

26 條評論 “以人工智能為基礎的搜索算法是什么樣的?

  1. 雖然谷歌可能不會在算法中使用用戶體驗數據, 但是可以確定的是,谷歌驗證算法的時候一定會關注用戶體驗數據(比如點擊率,跳出率,停留時間等),只有當用戶體驗數據表現更好的時候, 新的算法才會被推出, 或者說谷歌的人工智能算法才會迭代。 既然人工智能算法具有不可解釋性,作為SEO人員,關注用戶體驗數據或許是最好的選擇。

    很巧的是, 昨天剛好在學習谷歌的RankBrain, 然后寫了一篇學習筆記, 發布在我的公眾號《賽門的運營進化論》上, 歡迎大家一起交流學習。

  2. 老師你好,感謝無私分享。
    想問一個簡單卻有些困惑的問題:
    什么是收錄?什么是索引?之前我也沒怎么細分這個概念,看到有人說先收錄后索引,有人說先索引再收錄,有人說百度說過索引就是收錄,把我整糊涂了。
    到底是哪個先?還是是一樣的。如果不一樣,索引怎么查詢數量,收錄怎么查詢數量呢?

  3. 就怕太過依賴AI算法導致以后自己不會弄了,再加上每代人的想法不一樣,搜索習慣千差萬別,都需要AI算法不斷的訓練,中間不知道要出多少問題,且行且珍惜!

留個言唄:

您的郵箱不會被顯示在頁面上。標有*的是必填項。