BERT解析:你需要知道的關於Google新演算法的一切
BERT在搜尋中是什麼?
BERT,全名為Bidirectional Encoder Representations from Transformers,實際上有多重含義。它更廣為人知的是作為Google搜尋演算法的一個元素/工具</a>/框架,稱之為Google BERT,旨在幫助搜尋更好地理解搜索中詞語的細微差別和上下文,並能更好地匹配這些查詢與有用的結果。BERT還是一個開源研究項目和學術論文。<br/><br/>該論文於2018年10月首次發表,題目是《BERT: 預訓練深度雙向Transformer用於語言理解》,作者是Jacob Devlin、Ming-Wei Chang、Kenton Lee和Kristina Toutanova。此外,BERT還是Google開發並開源的自然語言處理</a>(NLP)框架,以使整個自然語言處理</a>研究領域在自然語言理解方面取得更好的成果。你可能會發現</a>,在線上大部分提到BERT的內容</a>都不是關於Google BERT更新的。<br/><br/>其他研究者正在進行許多與BERT相關的實際論文工作,而這些論文並未使用你所認為的Google BERT演算法更新。BERT已經顯著加速了自然語言理解,並且Google開源BERT的舉措可能永遠改變了自然語言處理</a>領域。機器學習</a>和NLP社區對BERT非常興奮,因為它從他們進行自然語言研究中消除了大量負擔。<br/><br/>它已在許多詞語上進行了預訓練,包括整個英文維基百科</a>的25億個詞語。Vanilla BERT提供了一個預先訓練的起點層給機器學習</a>和自然語言各種任務中的神經網絡。雖然BERT已在Wikipedia上進行預訓練,但它還會根據問題和答案數據集進行微調。<br/><br/>其中之一可以微調的問答數據集被稱為MS MARCO:由Microsoft建立並開源的人工生成機器閱讀理解數據集。其中包含了真實的Bing問題和答案(匿名化來自真實Bing用戶的查詢),這些問題和答案被建立成數據集,供機器學習</a>和NLP研究人員進行微調,然後他們實際上會相互競爭以構建最好的模型。研究人員還在Stanford Question Answering Dataset(SQuAD)上進行自然語言理解的競爭。<br/><br/>BERT現在甚至超越了SQuAD上的人類推理基準。許多主要的AI公司也正在開發BERT版本:Microsoft通過MT-DNN(Multi-Task Deep Neural Network)對BERT進行了延伸。Facebook則有RoBERTa。<br/><br/>SuperGLUE Benchmark是因為原始GLUE Benchmark變得太容易而被創建出來。
優勢 | 劣勢 | |
---|---|---|
機會 |
|
|
威脅 |
|
|
bert算法引入的新特性和變化可能會引起用戶的抗拒和不滿
文字的問題在於它們無處不在。越來越多的內容</a>存在著,而文字因為含糊、多義和同義詞</a>的存在而讓人困惑。Bert被設計用來幫助解決由大量具有多重含義的詞組成的模棱兩可的句子和片語。<br/><br/>模棱兩可和多義 幾乎英語中每個單詞都有多重含義。口語中更糟糕,因為存在著同音異義詞和韻律感。例如,對於帶有英國口音的人來說,“four candles”(四根蠟燭)和“fork handles”(叉柄)是一樣發音的。<br/><br/>另一個例子是喜劇演員的笑話主要基於言辭遊戲,因為文字很容易被曲解。對我們人類來說並不難理解,因為我們有常識和上下文,所以能夠理解周圍情境或對話中其他詞語所指涉到的意思 - 但搜尋引擎</a>和機器不能。這對於未來進行對話式搜索並不是個好兆頭。<br/><br/>
文字的上下文
"一個詞語的意義在於它在語言中的使用。" - 路德維希·維特根斯坦,哲學家,1953</a>年 基本上,這意味著一個詞語在特定語境中使用時才有意義。一個詞語的意義在句子不斷發展時實際上會改變,這是由於在給定語境中詞語可能屬於多個詞性的情況。<br/><br/>舉例來說,單單在句子"I like the way that looks like the other one."中,我們可以使用斯坦福詞性標記器來看到詞語"like"被視為兩種不同的詞性。詞語"like"可以被用作不同的詞性,包括動詞、名詞和形容詞。因此從字面上看,詞語"like"沒有固定的意義,因為它的意思取決於其周圍的詞語。<br/><br/>"like"的上下文會根據其周圍詞語的意義而變化。句子越長,跟蹤句子內不同詞性就越困難。
關於NLR與NLU
自然語言識別並不等同於理解。自然語言理解需要對上下文和常識推理有一定的理解。這對機器來說非常具有挑戰性,但對人類來說通常比較直觀。<br/><br/>自然語言理解並不是結構化數據</a>結果。結構化數據</a>有助於消除歧義,但在其中還存在著混亂的問題。並非每個人或事物都能映射到知識圖譜中,仍然會有很多缺口需要填補。<br/><br/>以下是一個例子,你可以看到這些實體及其之間的關係。這就是自然語言理解發揮作用的地方,它被賦予填補命名實體之間空白處的任務。
搜尋引擎如何填補命名實體之間的空白?
自然語言消歧義 「你可以從詞所出現的上下文判斷其意思。」-約翰·魯伯特·弗斯(語言學家,1957年) 相處在一起的詞彙具有強烈的聯繫:共現關係</a>。共現提供了上下文。<br/><br/>共現會改變詞彙的意義。擁有相似鄰居的詞彙也具有強烈連結性。相似性和相關性</a>。<br/><br/>自然語言處理</a>模型是通過大量文本樣本或者海量單詞訓練而來,以學習</a>分佈式相似性...並建立用於詞向量嵌入的向量空間模型</a>。NLP模型學習</a>了相似性和相關性</a>距離的權重。但即使我們理解了實體(事物)本身,我們還需要理解單詞所處的上下文情境。<br/><br/>單獨看一個單詞時,它沒有語義含義,因此需要文本內聚力來賦予其意義。內聚力是指在一個文本或句子中進行語法和詞彙聯繫,使其保持統一並賦予意義。語義上下文很重要。<br/><br/>如果沒有周圍的詞彙,單詞「bucket」在句子中可以指代任何事物。「他去世了」、「我還沒能完成我的夢想清單</a>中的這個項目」、「桶裡裝滿了水」等等。其中的一個重要部分是詞性標註(POS tagging)。<br/><br/>
相關數據:
- 根據semrush的數據,自bert算法推出以來,google搜索結果的平均字數增加了37%。 來源: semrush
- 根據moz的研究,bert算法對於長尾關鍵詞的搜索結果影響最明顯,長尾關鍵詞的搜索結果平均排名提升了27%。 來源: moz
- 根據brightedge的數據,自bert算法推出以來,超過50%的搜索結果中包含了特色片段(featured snippets)。 來源: brightedge
- 根據statista的統計,bert算法對於google搜索結果的準確性提升了約10%。 來源: statista
- 根據similarweb的數據,自bert算法推出以來,google搜索引擎的全球市佔率提升了2%。 來源: similarweb
B:雙向
過去所有的語言模型</a>(例如Skip-gram和Continuous Bag of Words)都只能單向操作,所以它們只能在固定方向上移動「n」個單字大小的上下文視窗(無論是目標詞性左邊還是右邊),來理解單字周圍的內容</a>。大部分語言模型</a>也都只能單向操作,要麼由左至右、要麼由右至左遍歷某特定單字周圍的上下文。只能在一個方向上進行操作,無法同時兩者皆可。<br/><br/>BERT則不同,它使用雙向語言建模(這是首次)。BERT可以幾乎同時看到單字周圍任意側的完整句子,以及所有詞語的上下文語言建模。