如何讓搜尋引擎呈現使用者想要的結果是困擾谷歌工程師的一大難題。最近,谷歌宣佈,他們的搜尋引擎用上了強大的 BERT 預訓練模型,可以讓搜尋引擎結合語境理解使用者的搜尋意圖,甚至能理解一些不起眼的介詞在搜尋語句中的重要含義。有了 BERT 的加持,使用者能在谷歌中搜到相關性更強的結果。

為什麼谷歌搜尋要用 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」是與工作相關的一種身體素質要求,因此會給出更加有用的答案。

下面還有一些例子,從中可以看出,BERT 能夠幫助幫助我們掌握語言的細微含義,這些是計算機理解不了的。

能用上 BERT 的不止英語搜尋
谷歌表示,他們會將 BERT 應用到全球各種語言的搜尋中。這種模型的一大特點就是能將從一種語言中學到的東西應用到其他語言中。因此,他們可以將從英語中得到的改進模型應用於其他語言。
他們還用 BERT 改進了 20 多個國家的精選摘要,在韓語、印地語、葡萄牙語中取得了顯著進展。
搜尋問題,永無止境
無論你想要搜尋什麼東西,無論你使用哪種語言,谷歌希望人們都可以使用最自然的方式進行搜尋。但即使是 BERT 加持,谷歌搜尋或許仍然無法讓人能夠獲得 100% 完美的結果。未來,谷歌仍會持續改進自己的搜尋系統。
原文連結:https://blog.google/products/search/search-language-understanding-bert
來自:機器學習研究會訂閱號