人工智能在搜索算法中的應用
2016年以來,IT行業(yè)最大的技術突破應該是人工智能了,不僅在一年左右時間,在最后一個人類曾經自以為機器很難戰(zhàn)勝人類的游戲項目上完勝人類,前幾天更是出現了逆天的AlphaGo Zero,完全不用借鑒人類知識,自學3天就超越了人類。
人工智能領域最牛X的公司,國外是Google,國內是百度。都是搜索引擎。這恐怕也不是什么巧合,而是因為搜索引擎是最適合開發(fā)人工智能的公司,他們擁有最大量的數據,包括文字、圖片、視頻,還有地圖、路況、用戶使用數據等等。
搜索引擎公司的AI成果在多大程度上運用到了他們的核心業(yè)務-搜索中?他們都沒有明確地對外說明,從搜索工程師的零碎發(fā)言中猜測,至少目前還沒有大規(guī)模使用,并沒有改變搜索算法的基礎。畢竟人工智能雖然概念存在了幾十年,但效果突飛猛進只是近幾年的事,還沒有出現通用人工智能,在圍棋這種規(guī)則簡單明確的領域中牛X,遷移到規(guī)則模糊的系統(tǒng)中,比如搜索,還需要一些時間。
但我想,人工智能大規(guī)模應用于搜索算法是早晚的事。據說以前百度大搜索部門和人工智能/深度學習部門之間是有些矛盾的,現在吳恩達離開了百度,陸奇對百度又進行了很多人事調整,搜索部門對人工智能的排斥也許就大大降低了。
其實人工智能已經在搜索算法中有所運用。舉兩個例子。
百度DNN模型
前幾個月看到了百度朱凱華的一篇《AI賦能的搜索和對話交互》演講報道。數年前和朱凱華還做過一次訪談,那時候他還是Google的主任架構師,是著名的熊貓算法的主要參與者之一,現在他是百度的首席架構師了。演講內容很多,感興趣的搜索標題就能找到全文,很值得深入讀一下。這么長時間SEO行業(yè)很少人注意到這篇這么有價值的關于搜索算法的公開信息,還是挺意外的。
演講里提到了百度2013年上線的DNN模型,極大提高了語義相關性的判斷范圍和準確性,2013年百度相關性提高的34%來自于DNN模型,2014年全年相關性提升的25%來自DNN模型。DNN模型使用的就是深度學習方法,通過100億的用戶點擊數據訓練模型,有超過1億個參數。下面介紹的Google RankBrain是2015年上線的,所以百度是世界上第一個將人工智能應用到實際搜索算法中的公司。
下圖是DNN訓練的示意圖:
百度DNN模型是人工智能在算法中的第一次應用
簡單說,就是對同一個查詢詞,模型分析了真實用戶點擊了的頁面的標題,和沒有點擊的頁面標題,從而更深入理解哪些標題是滿足了用戶需求的。經常出現的情況是,頁面標題并不包含查詢詞,用戶卻更愿意點擊這些頁面,說明這些頁面滿足了用戶需求,這些頁面的標題,即使不包含查詢詞,也是與查詢詞語義相關的。這是經典的頁面-關鍵詞相關性算法無法計算出來的。
演講中提到的例子:
百度DNN模型案例
在DNN上線之前,用戶搜索“ghibli車頭如何放置車牌“時,由于相關信息很少,沒有什么頁面是以這個查詢詞為標題或者頁面出現這些關鍵詞的,所以搜索結果質量不高,傳統(tǒng)搜索算法只能按關鍵詞匹配返回一些ghibli相關信息,卻沒幾乎有“車頭如何放置車牌”的信息。
(注:看到這里的讀者不用去百度搜索“ghibli車頭如何放置車牌”了,您看到的將是被這篇帖子污染的搜索結果,會看到本帖,以及被轉載、抄襲的本帖。)
DNN上線之后的搜索結果是這樣的:
百度DNN模型上線效果
可以看到,搜索結果中還是沒有以“ghibli車頭如何放置車牌“為標題的頁面,但解決了用戶的需要,算法理解了“前”、“前面”和“車頭”是一個意思,“放哪里啊”、“怎么裝”、“咋掛”和“任何放置“是一個意思,所以”ghibli車牌咋掛“這種頁面回答了“ghibli車頭如何放置車牌“這個查詢,雖然他們包含的關鍵詞是不一樣的。
這種對相關性的理解不是傳統(tǒng)以關鍵詞匹配為基礎的搜索算法能算出來的,而是真實用戶的點擊數據告訴搜索算法的。用戶搜索“ghibli車頭如何放置車牌“時,經常點擊”ghibli車牌咋掛“、”ghibli前面車牌照怎么裝“這些頁面,DNN模型被訓練后知道,這些詞之間是語義相關的。
Google RankBrain
2015年上線的Google RankBrain解決的也是對查詢詞的深入理解問題,尤其是比較長尾的詞,找到與用戶查詢詞不完全匹配、但其實很好回答了用戶查詢的那些頁面。和百度DNN是非常類似的。Google沒有具體說明RankBrain的訓練方法,估計和百度DNN也是類似的。
2015年RankBrain上線時,15%的查詢詞經過RankBrain處理,2016年所有查詢詞都要結果RankBrain處理。
Google自己經常舉的RankBrain例子是這個查詢:
What’s the title of the consumer at the highest level of a food chain
這個查詢詞相當長尾,完全匹配的結果比較少,而且查詢中的幾個詞容易有歧義,比如consumer通常是消費者的意思,food chain也可以理解為餐飲連鎖,但這個完整的查詢和商場、消費者、飯館之類的意思沒有任何關系,RankBrain能理解其實用戶問的是食物鏈頂端的物種是什么名字。同樣,搜索結果不能按照傳統(tǒng)的關鍵詞匹配來處理。
這種長尾查詢數量很大,每天Google收到的查詢里有15%是以前都沒出現過的。這種查詢要靠關鍵詞匹配就比較難以找到高質量頁面,數量太少,甚至沒有,但理解了查詢的語義和意圖,就能找到滿足用戶需求的、關鍵詞并不完全匹配的頁面。
對SEO的影響以后再詳細寫,這里只是先簡單提示一下:頁面要包含關鍵詞,這在目前的關鍵詞優(yōu)化過程中是必然的,現在搜索引擎能理解兩句不同的話意思是一樣的了,以后創(chuàng)作或編輯頁面內容時,是不是還一定要包含關鍵詞呢?
2019年2月10號更新:Google工程師Gary Illyes在Reddit上舉辦的一次問答活動上這樣描述RankBrain的工作原理:
RankBrain is a PR-sexy machine learning ranking component that uses historical search data to predict what would a user most likely click on for a previously unseen query. It is a really cool piece of engineering that saved our butts countless times whenever traditional algos were like, e.g. “oh look a “not” in the query string! let’s ignore the hell out of it!”, but it’s generally just relying on (sometimes) months old data about what happened on the results page itself, not on the landing page
就我的理解,基本上和百度DNN模型一樣,對某些查詢量很小,甚至以前沒出現過的查詢詞,RankBrain使用歷史搜索數據(搜索結果頁面上的點擊數據,不是網頁本身數據)預測用戶最可能點擊哪個頁面。
來源:SEO每天一貼 Zac 昝輝