閱讀英文文章時,最困擾的是什麼?遇到一詞多意時不知道該選哪個解釋,還是長句難以整理的結構?Google 搜尋引擎其實也跟人一樣困擾。
為了「照顧」Google 搜尋引擎,很多人使用「關鍵詞搜尋法」(keyword-ese)──只輸入關鍵詞,不使用完整句子。如有人會輸入「痣」、「臀部」、「癌症」,其實他想問的是「我屁股上的痣是不是癌症徵兆?」
(Source:Unsplash)
最近 Google 為搜尋引擎引入「BERT」(Bidirectional Encoder Representations from Transformers)的機器學習演算法,幫助前者更理解使用者的問題。
引擎更新後有什麼改變?
簡單來說,加入 BERT 後的 Google 搜尋引擎,更能理解接近自然對話的長句子,因能分析了解句子單詞間的關係。和傳統演算法不同的是,BERT 分析詞語時,並不是依次從左到右或從右到左逐詞分析,而是藉助Google 研發的 Transformer 模型並行分析詞語在整個句子的關係。
如搜尋「math practice books for adults」(給成年人的數學練習冊),更新前搜尋結果會將「adults」(成年人)變成「young adults」(年輕人),更新後不會。
此外,介詞對整個句子意思影響較大的情況下,加入 BERT 後理解能力明顯優於從前。搜尋「2019 Brazil traveler to usa need a visa」(2019 巴西旅客到美國需要簽證),更新前搜尋引擎沒有將「to」考慮在內,更多出現美國旅客到巴西旅行的資訊。加入 BERT 後,「to」就沒有忽略。
Google 副總裁 Pandu Nayak 在官方部落格稱「代表 5 年最大跨越,也是搜尋史上最大改進」。BERT 已應用到 Google 搜尋英文版,未來將擴展到更多不同語言。
BERT 或能讓演算法更會「聊天」
《Fastcompany》報導,為了訓練 BERT,Google 輸入了 11,038 本未經標註的書籍文本和合計 25 億字維基百科英文版的內容。且研究人員隨機「掩蓋」文本單詞,讓演算法模型自行想方法「填空」。
學完所有文本後,演算法開始找到同文本經常出現的句子和詞語規律,建立對詞語的基本理解,且還似乎開始「明白」詞語背後代表的事物關係,就像「常識」。
舉例以前在 Google 裡搜尋「do estheticians stand a lot at work」(美容師在工作時需要站很久嗎?)搜尋引擎會將「stand」(站)詞語套入「stand-alone」(獨立)之意,無法得出搜尋者想知道的結果。加入 BERT 後,搜尋引擎能理解使用者指的是「站立」動作,再進一步擴大理解為「美容師這個職業的體力勞動量」。
在處理過程中,系統需要表述它所理解的詞語意思,還有句子的結構及整體內容。結果就是,從某個程度來說,它對語言有一定了解。
這挺奇怪的,因為它對現實世界一無所知。它看不到,聽不到,什麼都沒有。
人工智慧科學家 Yann LeCun 說道。身為 Facebook 副總裁,LeCun 帶領團隊,透過最佳化 BERT,並輸入更大量學習資料,研發出自有模型「RoBERTa」。Google 原有 BERT 準確率為 80.5%,RoBERTa 可做到 88.5%。
但為什麼 Facebook 也要研究這個?
如果說搜尋引擎更理解使用者輸入的自然語言,回饋更有幫助的內容,改進移植到智慧語音助理也可預見。和很多科技巨頭公司一樣,Facebook 也在研發智慧語音助理,提升演算法對自然語言的處理能力也是必須。
▲ Facebook 今年宣布將為 Portal 研發語音助手。(Source:Digital Trends)
但語音助理之前,先從相對簡單文本對話入手,做好聊天機器人,且準備於 RoBERTa 的基礎上擴展更多功能,讓演算法和人聊天更自然。據 LeCun 介紹,很多聊天機器人都會「把天聊死」。
如很多機器人講話自相矛盾。前一分鐘可能說「XXX 太棒了,趕緊一起去下架」,下一分鐘又說「追星的人都傻」。這主要是背後為固定資料庫,偵測到特定關鍵詞就會出現預設回答。真的自己生出答案的機器人,又會為了規避矛盾而使用模糊答案,顯得冷冰冰。
此外,現有聊天機器人大多知識領域很局限。一旦聊天的人改話題,聊到它不認識的事物,機器人就接不了話。Facebook 現在正為演算法輸入各種領域大量資訊,並嘗試將這些資訊以更自然的方式加入對話。未來還計劃教導機器人「引導話題」──當聊天者將話題扯到較廣泛的領域,可將內容拉回特定焦點。
我們相信,已很接近創造出能和人們聊天的機器人。
Facebook 研究人員 Jason Weston 告訴《Fastcompany》。那天到來前,希望人類已練就不被聊天機器帶著走的技能。