為什麼谷歌搜尋要用 BERT?「如果要讓我說出一條這些年學到的東西,那我會說『人類的好奇心是永無止境的』,」在谷歌搜尋部門工作了 15 年的搜尋副總裁在谷歌部落格中寫道。谷歌每天的搜尋量多達數十億,其中有 15% 是從未見過的,所以必須構建一些方法來應對這些無法預料的查詢。使用者在搜尋的時候往往很難確定一個最好的查詢組合:我們不知道用哪些詞,也不知道怎麼拼。因為有時他們開啟搜尋引擎就是為了學習的,所以查到結果之前未必具備相應的知識。搜尋的核心是理解語言。搜尋引擎的使命是弄清楚使用者的搜尋意圖並從網上找到有用資訊,無論查詢語句中的單詞如何拼寫或組合。複雜或會話性的查詢通常很難處理。人們會輸入他們以為搜尋引擎可以理解的問題,但其實他們用的方式並非他們在現實中自然而然使用的方式。為了解決這些問題,谷歌的研究人員決定在搜尋引擎中引入更加強大的自然語言處理模型——BERT。BERT 對於搜尋引擎有何作用?去年,谷歌開源了用於自然語言處理的預訓練模型——BERT 。一經推出,BERT 就重新整理了 11 項 NLP 任務的 SOTA 記錄,登頂 GLUE 基準排行榜。雖然榜首早已易主,但後續的很多 NLP 模型都是基於 BERT 的改進。其影響力可見一斑。BERT 的突破基於谷歌在 Transformer 架構上的成功。Transformer 處理一個句子中與所有其他單詞相關的單詞,而不是按順序逐個處理。基於此,BERT 模型就可以藉助某個單詞前後的詞來考慮其所處的完整語境,這對於理解查詢語句背後的意圖非常有用。但只有軟體方面的成功還不夠。用 BERT 構建的模型非常複雜,超出了傳統硬體的能力範疇。因此,谷歌選擇使用最新的 Cloud TPU 結果來提供搜尋結果,以達到更好的效果。用上 BERT 意味著什麼?BERT 在谷歌搜尋中的應用體現在排名和精選摘要(featured snippet)兩個方面。將 BERT 應用於搜尋排名之後,谷歌宣稱它可以幫助搜尋引擎更好地理解美國(英文)10% 的搜尋。谷歌表示,隨著時間的推移,他們還會將結果擴充套件至更多語言和地區。用上 BERT 之後,對於比較長、會話性比較強的查詢,或者在「for」、「to」等介詞比較重要的語句中,谷歌搜尋引擎將能夠理解查詢語句中詞的上下文。使用者可以用更加自然的方式進行搜尋。為了啟用這些改進,谷歌進行了大量測試,以確保這些改變更加有用。以下是一些評估示例,可以證明 BERT 在理解意圖方面的強大能力。在以下示例中,使用者搜尋的語句是「2019 brazil traveler to usa need a visa」。在這個句子中,「to」及其與其他單詞的關係對於理解句子含義非常重要。這是一個巴西人要去美國旅遊的事件,而不是一個美國人去巴西旅遊。在此之前,谷歌的搜尋演算法無法理解這種連線詞的重要性,所以會返回美國公民去巴西旅遊的結果。在 BERT 的幫助下,搜尋引擎將能夠理解搜尋語句的核心含義,知道「to」這種簡單詞在句子中發揮的重要作用,因此能夠返回相關性更強的結果。
我們來看另一個搜尋語句「do estheticians stand a lot at work」。用上 BERT 之前,谷歌搜尋引擎用的是匹配關鍵詞的方法,用搜尋結果中的「stand-alone」匹配查詢語句中的「stand」。但根據語境,「stand」在搜尋語句中的含義並非如此。但 BERT 能夠理解此處的「stand」是與工作相關的一種身體素質要求,因此會給出更加有用的答案。